/*
Theme Name: KC Noir
Theme URI: https://kratomcanada.com
Author: Kratom Canada
Description: Dark botanical WooCommerce theme for Kratom Canada. Space Grotesk + Inter, pill components, vein-dot product tags, effect-led blend merchandising. Built custom, no page builder.
Version: 1.3.18
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: kc-noir
*/

/* ============ Tokens ============ */
:root {
  --kc-ground: #0F1712;
  --kc-ground-deep: #0B110D;
  --kc-surface: #18231B;
  --kc-line: #263229;
  --kc-line-strong: #3A4A3E;
  --kc-cream: #F1EFE4;
  --kc-muted: #ADBBAE;
  --kc-leaf: #9BE15D;
  --kc-energy: #F2B34C;
  --kc-focus: #74C7E3;
  --kc-relax: #BD9FEA;
  --kc-red-vein: #E08A7A;
  --kc-white-vein: #EDEDE4;
  --kc-font-display: 'Space Grotesk', sans-serif;
  --kc-font-body: 'Inter', sans-serif;
  --kc-radius: 20px;
  --kc-radius-sm: 14px;
}

/* ============ Base ============ */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--kc-ground);
  color: var(--kc-cream);
  font-family: var(--kc-font-body);
  font-size: 16px;
  line-height: 1.6;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--kc-font-display);
  font-weight: 700;
  line-height: 1.1;
  color: var(--kc-cream);
  margin: 0 0 0.5em 0;
}
h1 { font-size: clamp(36px, 5vw, 56px); }
h2 { font-size: clamp(28px, 4vw, 38px); }
h3 { font-size: 22px; font-weight: 600; }
p { margin: 0 0 1em 0; }
a { color: var(--kc-muted); text-decoration: none; }
a:hover { color: var(--kc-cream); }
img { max-width: 100%; height: auto; }

.kc-container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.kc-section { padding: 72px 0; }
.kc-section--line { border-top: 1px solid var(--kc-line); }
.kc-muted { color: var(--kc-muted); }

/* ============ Buttons & pills ============ */
.kc-btn, .woocommerce #respond input#submit, .woocommerce a.button,
.woocommerce button.button, .woocommerce input.button,
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order,
.wp-element-button {
  display: inline-block;
  background: var(--kc-leaf);
  color: var(--kc-ground) !important;
  font-family: var(--kc-font-body);
  font-weight: 600;
  font-size: 15px;
  line-height: 1.2;
  padding: 14px 28px;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  transition: filter .15s ease;
}
.kc-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover {
  filter: brightness(1.08);
  background: var(--kc-leaf);
  color: var(--kc-ground) !important;
}
.kc-btn--outline {
  background: none;
  color: var(--kc-cream) !important;
  border: 1px solid var(--kc-line-strong);
}
.kc-btn--outline:hover { background: var(--kc-surface); filter: none; }
.kc-pill-tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--kc-ground);
  border-radius: 999px;
  padding: 6px 14px;
  text-transform: uppercase;
}
.kc-pill-tag--energy { background: var(--kc-energy); }
.kc-pill-tag--focus { background: var(--kc-focus); }
.kc-pill-tag--relax { background: var(--kc-relax); }
.kc-vein {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--kc-muted);
  text-transform: uppercase;
}
.kc-vein__dot { width: 9px; height: 9px; border-radius: 999px; display: inline-block; }
.kc-vein__dot--green { background: var(--kc-leaf); }
.kc-vein__dot--red { background: var(--kc-red-vein); }
.kc-vein__dot--white { background: var(--kc-white-vein); }
.kc-vein__dot--yellow { background: var(--kc-energy); }

/* ============ Topbar ============ */
.kc-topbar {
  background: var(--kc-surface);
  text-align: center;
  padding: 11px 16px;
  font-size: 13px;
  color: var(--kc-muted);
  letter-spacing: 0.02em;
}

/* ============ Header ============ */
.kc-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 48px;
  border-bottom: 1px solid var(--kc-line);
}
.kc-header__brand { display: flex; align-items: center; gap: 10px; }
.kc-header__brand img { max-height: 48px; width: auto; }
.kc-header__brand .kc-sitename {
  font-family: var(--kc-font-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 0.14em;
  color: var(--kc-cream);
  text-transform: uppercase;
}
.kc-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 26px; }
.kc-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; }
.kc-nav a { font-size: 15px; font-weight: 500; }
.kc-cart-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--kc-cream);
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  padding: 9px 18px;
  font-size: 15px;
  font-weight: 500;
}
.kc-cart-link:hover { background: var(--kc-surface); color: var(--kc-cream); }

/* ============ Hero (front page) ============ */
.kc-hero { padding: 88px 0 80px 0; }
.kc-hero__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 56px;
  align-items: center;
}
.kc-eyebrow {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--kc-leaf);
  text-transform: uppercase;
}
.kc-hero p.kc-sub { font-size: 18px; color: var(--kc-muted); max-width: 480px; }
.kc-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.kc-size-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.kc-size-chips span {
  font-size: 13px;
  color: var(--kc-muted);
  border: 1px solid var(--kc-line);
  border-radius: 999px;
  padding: 7px 14px;
}
.kc-panel {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: 24px;
  padding: 44px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: flex-start;
}
.kc-panel h3 { font-size: 24px; margin: 0; }
.kc-link-accent { font-size: 15px; font-weight: 600; color: var(--kc-leaf); }
.kc-link-accent:hover { color: var(--kc-cream); }

/* ============ Effect cards ============ */
.kc-effects {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.kc-effect-card {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}
.kc-effect-card h3 { margin: 0; font-size: 24px; }
.kc-effect-card--energy h3, .kc-effect-card--energy .kc-link-accent { color: var(--kc-energy); }
.kc-effect-card--focus h3, .kc-effect-card--focus .kc-link-accent { color: var(--kc-focus); }
.kc-effect-card--relax h3, .kc-effect-card--relax .kc-link-accent { color: var(--kc-relax); }
.kc-effect-card p { margin: 0; font-size: 15px; color: var(--kc-muted); }

/* ============ Product cards (home + Woo loop) ============ */
.kc-products-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 36px;
}
.kc-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}
.kc-product-card, .woocommerce ul.products li.product {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 13px;
  text-align: left;
  margin: 0;
}
.kc-product-card { color: var(--kc-cream); }
.kc-product-card:hover, .woocommerce ul.products li.product:hover { border-color: var(--kc-line-strong); }
.kc-product-card__media, .woocommerce ul.products li.product img {
  background: var(--kc-line);
  border-radius: var(--kc-radius-sm);
  width: 100%;
  object-fit: cover;
  margin: 0 0 4px 0 !important;
}
.kc-product-card__media { min-height: 180px; display: flex; align-items: center; justify-content: center; font-size: 12px; letter-spacing: 0.1em; color: var(--kc-muted); overflow: hidden; }
.kc-product-card__media img { min-height: 0; }
.kc-product-card h3, .woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--kc-font-display);
  font-weight: 600;
  font-size: 20px;
  color: var(--kc-cream);
  padding: 0;
  margin: 0;
}
.kc-price, .woocommerce ul.products li.product .price,
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-weight: 600;
  font-size: 15px;
  color: var(--kc-cream);
}
.woocommerce div.product p.price { font-family: var(--kc-font-display); font-size: 26px; color: var(--kc-leaf); }
.woocommerce ul.products { margin: 0; }
.woocommerce ul.products li.product .button { margin-top: auto; align-self: flex-start; }
.woocommerce span.onsale {
  background: var(--kc-leaf);
  color: var(--kc-ground);
  border-radius: 999px;
  font-weight: 600;
  min-height: 0;
  line-height: 1;
  padding: 8px 14px;
}

/* ============ Trust strip ============ */
.kc-trust {
  background: var(--kc-surface);
  border-top: 1px solid var(--kc-line);
  border-bottom: 1px solid var(--kc-line);
  padding: 56px 0;
}
.kc-trust__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 32px;
}
.kc-trust h3 { font-size: 17px; margin: 0 0 8px 0; }
.kc-trust p { margin: 0; font-size: 14px; color: var(--kc-muted); }

/* ============ Spotlight ============ */
.kc-spotlight {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 56px;
  align-items: center;
}
.kc-spotlight__media {
  background: var(--kc-line);
  border-radius: 24px;
  min-height: 340px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--kc-muted);
  overflow: hidden;
}
.kc-spotlight__media img { width: 100%; height: 100%; object-fit: cover; }
.kc-spotlight h2 { color: var(--kc-relax); }
.kc-btn--relax { background: var(--kc-relax); }

/* ============ Newsletter ============ */
.kc-newsletter { text-align: center; max-width: 640px; margin: 0 auto; }
.kc-newsletter form { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 18px; }
.kc-newsletter input[type="email"] {
  flex: 1 1 260px;
  max-width: 340px;
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  padding: 14px 22px;
  font-size: 15px;
  color: var(--kc-cream);
}
.kc-screen-reader { position: absolute; left: -9999px; }

/* ============ Footer ============ */
.kc-footer {
  background: var(--kc-ground-deep);
  border-top: 1px solid var(--kc-line);
  padding: 64px 0 40px 0;
  margin-top: 72px;
}
.kc-footer__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 40px;
}
.kc-footer__brand img { max-height: 40px; width: auto; }
.kc-footer__brand p { font-size: 14px; color: var(--kc-muted); margin: 12px 0 0 0; }
.kc-footer h4 {
  font-family: var(--kc-font-body);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 12px 0;
}
.kc-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.kc-footer__legal {
  border-top: 1px solid var(--kc-line);
  margin-top: 48px;
  padding-top: 24px;
  font-size: 13px;
  color: var(--kc-muted);
}

/* ============ WooCommerce general dark overrides ============ */
.woocommerce-breadcrumb { font-size: 13px; color: var(--kc-muted) !important; margin-bottom: 24px !important; }
.woocommerce-breadcrumb a { color: var(--kc-muted); }
.woocommerce div.product .product_title { font-size: clamp(32px, 4vw, 44px); }
.woocommerce div.product div.images img { border-radius: var(--kc-radius); }
.woocommerce div.product form.cart div.quantity .qty {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  color: var(--kc-cream);
  padding: 12px 0;
  width: 64px;
}
.woocommerce div.product form.cart .variations select,
.woocommerce select, .woocommerce-page select {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  color: var(--kc-cream);
  padding: 10px 16px;
}
.woocommerce div.product form.cart .variations label { color: var(--kc-muted); font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: 999px;
  margin-right: 10px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--kc-leaf); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--kc-cream); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom: 1px solid var(--kc-line); }
.woocommerce div.product .woocommerce-tabs .panel { color: var(--kc-muted); }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { font-size: 30px; }
.woocommerce table.shop_table {
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius-sm);
  color: var(--kc-cream);
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--kc-line) !important; }
.woocommerce-cart table.cart img { border-radius: 10px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 12px;
  color: var(--kc-cream);
  padding: 12px 16px;
}
.woocommerce form .form-row label { color: var(--kc-muted); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  background: var(--kc-surface);
  color: var(--kc-cream);
  border-top-color: var(--kc-leaf);
  border-radius: 0 0 var(--kc-radius-sm) var(--kc-radius-sm);
}
.woocommerce-message a.button, .woocommerce-info a.button { background: var(--kc-leaf); }
.woocommerce nav.woocommerce-pagination ul { border: none; }
.woocommerce nav.woocommerce-pagination ul li {
  border: 1px solid var(--kc-line);
  border-radius: 10px;
  margin: 0 4px;
  overflow: hidden;
}
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { color: var(--kc-cream); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--kc-leaf); color: var(--kc-ground); }
.woocommerce .woocommerce-result-count { color: var(--kc-muted); }
.woocommerce .woocommerce-ordering select { margin-bottom: 24px; }
.woocommerce .star-rating span::before { color: var(--kc-energy); }
.woocommerce .quantity .qty { background: var(--kc-surface); color: var(--kc-cream); border: 1px solid var(--kc-line-strong); border-radius: 999px; }

/* ============ Content pages / blog ============ */
.kc-content { max-width: 760px; margin: 0 auto; padding: 64px 24px; }
.kc-content h1 { margin-bottom: 24px; }
.kc-content .entry-content { color: var(--kc-muted); }
.kc-content .entry-content h2, .kc-content .entry-content h3 { color: var(--kc-cream); }
.kc-content .entry-content a { color: var(--kc-leaf); }

/* ============ Shop filter pills (category nav) ============ */
.kc-filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 32px 0; }
.kc-filter-row a {
  font-size: 14px;
  font-weight: 500;
  color: var(--kc-cream);
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  padding: 9px 20px;
}
.kc-filter-row a:hover { background: var(--kc-surface); }
.kc-filter-row a.is-active { background: var(--kc-leaf); color: var(--kc-ground); font-weight: 600; border-color: var(--kc-leaf); }

/* ============ Lab Testing template ============ */
.kc-page-hero { padding: 72px 0 56px 0; text-align: center; }
.kc-page-hero .kc-eyebrow { margin-bottom: 14px; }
.kc-page-hero p { font-size: 18px; color: var(--kc-muted); max-width: 620px; margin: 12px auto 0 auto; }
.kc-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 24px; }
.kc-step { background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: var(--kc-radius); padding: 32px; }
.kc-step__num { font-family: var(--kc-font-display); font-weight: 700; font-size: 34px; color: var(--kc-leaf); margin-bottom: 10px; }
.kc-step h3 { margin: 0 0 8px 0; font-size: 21px; }
.kc-step p { margin: 0; font-size: 14px; color: var(--kc-muted); }
.kc-panel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 24px; }
.kc-panel-card { background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: var(--kc-radius); padding: 28px; }
.kc-panel-card h3 { margin: 0 0 8px 0; font-size: 19px; color: var(--kc-leaf); }
.kc-panel-card p { margin: 0; font-size: 14px; color: var(--kc-muted); }
.kc-cta-card { background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: 24px; padding: 44px; max-width: 820px; margin: 0 auto; }
.kc-cta-card h2 { margin: 0 0 10px 0; }
.kc-cta-card p { color: var(--kc-muted); }

/* ============ FAQ template (details/summary accordion) ============ */
.kc-faq-list { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.kc-faq-list details {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: 16px;
  padding: 0;
}
.kc-faq-list details[open] { border-color: var(--kc-leaf); }
.kc-faq-list summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 28px;
  font-family: var(--kc-font-display);
  font-weight: 600;
  font-size: 19px;
  color: var(--kc-cream);
}
.kc-faq-list summary::-webkit-details-marker { display: none; }
.kc-faq-list summary::after { content: "+"; font-size: 22px; color: var(--kc-muted); }
.kc-faq-list details[open] summary::after { content: "\2212"; color: var(--kc-leaf); }
.kc-faq-list details p { margin: 0; padding: 0 28px 24px 28px; font-size: 15px; line-height: 1.65; color: var(--kc-muted); }

/* ============ Contact template ============ */
.kc-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 56px; align-items: start; }
.kc-info-card { background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: var(--kc-radius); padding: 28px; margin-bottom: 20px; }
.kc-info-card .kc-eyebrow { display: block; margin-bottom: 10px; }
.kc-info-card a.kc-big-link { font-family: var(--kc-font-display); font-weight: 600; font-size: 19px; color: var(--kc-cream); }
.kc-form-card { background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: 24px; padding: 40px; }
.kc-form-card label { display: block; font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kc-muted); margin: 0 0 8px 0; }
.kc-form-card input[type="text"], .kc-form-card input[type="email"], .kc-form-card textarea,
.wpforms-container input[type="text"], .wpforms-container input[type="email"], .wpforms-container textarea {
  width: 100%;
  background: var(--kc-ground);
  border: 1px solid var(--kc-line-strong);
  border-radius: 12px;
  padding: 13px 16px;
  font-size: 15px;
  color: var(--kc-cream);
  font-family: var(--kc-font-body);
  margin-bottom: 18px;
  box-sizing: border-box;
}
.kc-form-card button[type="submit"], .wpforms-container button[type="submit"] {
  background: var(--kc-leaf);
  color: var(--kc-ground);
  border: none;
  font-weight: 600;
  font-size: 15px;
  padding: 14px 30px;
  border-radius: 999px;
  cursor: pointer;
}

/* ============ Cart ============ */
.woocommerce-cart table.cart { border: none; }
.woocommerce-cart table.cart td, .woocommerce-cart table.cart th { background: var(--kc-surface); }
.woocommerce-cart table.cart td.product-name a { color: var(--kc-cream); font-family: var(--kc-font-display); font-weight: 600; }
.woocommerce-cart table.cart img { width: 72px; border-radius: 10px; }
.woocommerce-cart .coupon .input-text {
  background: var(--kc-surface) !important;
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  padding: 12px 20px !important;
  color: var(--kc-cream);
  width: 180px !important;
}
.woocommerce .cart_totals {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: 24px;
  padding: 32px;
}
.woocommerce .cart_totals h2 { font-size: 24px; margin-top: 0; }
.woocommerce .cart_totals .order-total .amount { color: var(--kc-leaf); font-family: var(--kc-font-display); font-size: 22px; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  background: var(--kc-leaf) !important;
  color: var(--kc-ground) !important;
  border-radius: 999px;
  font-weight: 600;
}

/* ============ Checkout ============ */
.woocommerce-checkout .kc-nav { display: none; }
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: start; }
.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / 4; }
.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; font-size: 24px; }
.woocommerce-checkout form.checkout #order_review { grid-column: 2; }
@media (max-width: 900px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; }
}
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 {
  float: none; width: 100%;
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: 24px;
  padding: 32px;
  margin-bottom: 24px;
  box-sizing: border-box;
}
.woocommerce-checkout #order_review {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: 24px;
  padding: 32px;
}
.woocommerce-checkout #payment { background: transparent; }
.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid var(--kc-line);
  padding: 0 0 16px 0;
}
.woocommerce-checkout #payment ul.payment_methods li {
  border: 1px solid var(--kc-line-strong);
  border-radius: 16px;
  padding: 16px 20px;
  margin-bottom: 12px;
  list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li label { font-family: var(--kc-font-display); font-weight: 600; color: var(--kc-cream); }
.woocommerce-checkout #payment div.payment_box {
  background: var(--kc-ground);
  color: var(--kc-muted);
  border-radius: 12px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment #place_order {
  width: 100%;
  font-size: 16px;
  padding: 16px 30px;
}
.kc-secure-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--kc-muted); }

/* ============ Responsive ============ */
@media (max-width: 720px) {
  .kc-header { padding: 16px 20px; }
  .kc-hero { padding: 56px 0; }
  .kc-section { padding: 52px 0; }
}

/* ============ 1.1.3 additions (approved features only, KC Noir tokens) ============ */
/* Home: decided subheading <p> above the original kc-sub copy */
.kc-hero p.kc-sub--lead { color: var(--kc-cream); font-size: 20px; margin-bottom: 8px; }
/* Woo price on KC Noir cards (home bestsellers) */
.kc-product-card .price { display: block; }
/* Location: term description in the content column, flush in the container */
.kc-content--flush { padding: 0 0 40px 0; margin: 0; }
/* Resources pagination (KC Noir pill style) */
.kc-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.kc-pagination .page-numbers { border: 1px solid var(--kc-line-strong); border-radius: 999px; padding: 10px 18px; color: var(--kc-cream); font-size: 14px; }
.kc-pagination .page-numbers.current { background: var(--kc-leaf); color: var(--kc-ground); border-color: var(--kc-leaf); }

/* Woo "alt" buttons (single add-to-cart, checkout) use the KC Noir leaf button, not Woo purple */
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce input.button.alt,
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover, .woocommerce input.button.alt:hover,
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled { background: var(--kc-leaf); color: var(--kc-ground) !important; }
/* Review / comment form fields on the dark ground */
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
  width: 100%; background: var(--kc-surface); border: 1px solid var(--kc-line-strong); border-radius: 12px; color: var(--kc-cream); padding: 12px 16px; font: inherit;
}
.comment-form label { color: var(--kc-muted); }

/* ============ v1.1.1 primary menu dropdowns ============ */
.kc-nav { position: relative; }
.kc-menu li { position: relative; }
.kc-menu a { display: inline-block; padding: 6px 0; color: var(--kc-cream); }
.kc-menu a:hover, .kc-menu a:focus-visible, .kc-menu .current-menu-item > a, .kc-menu .current-menu-ancestor > a { color: var(--kc-leaf); }
.kc-menu a:focus-visible, .kc-submenu-toggle:focus-visible, .kc-nav-toggle:focus-visible { outline: 2px solid var(--kc-leaf); outline-offset: 3px; border-radius: 6px; }
.kc-menu .menu-item-has-children { display: flex; align-items: center; flex-wrap: wrap; }
/* Caret: CSS-only before JS loads, a real toggle button after */
.kc-menu .menu-item-has-children > a::after {
  content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 0 3px 8px;
  border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg);
}
.kc-nav--js .kc-menu .menu-item-has-children > a::after { display: none; }
.kc-submenu-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; margin-left: 2px; padding: 0;
  background: none; border: 0; border-radius: 6px; color: var(--kc-muted); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.kc-submenu-toggle::before {
  content: ""; width: 6px; height: 6px; margin-bottom: 3px;
  border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg); transition: transform .15s ease;
}
.kc-submenu-toggle:hover { color: var(--kc-leaf); }
.kc-submenu-toggle[aria-expanded="true"]::before { transform: rotate(-135deg); margin: 3px 0 0; }
.kc-nav-toggle { display: none; }

@media (min-width: 901px) {
  .kc-menu .sub-menu {
    display: none; position: absolute; top: 100%; left: -14px; z-index: 200;
    flex-direction: column; flex-wrap: nowrap; gap: 0; min-width: 230px; padding: 8px;
    background: var(--kc-surface); border: 1px solid var(--kc-line-strong); border-radius: var(--kc-radius-sm);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .45);
  }
  .kc-menu .sub-menu li { width: 100%; justify-content: space-between; flex-wrap: nowrap; }
  .kc-menu .sub-menu a { display: block; flex: 1; padding: 8px 12px; border-radius: 10px; font-size: 14px; white-space: nowrap; }
  .kc-menu .sub-menu a:hover, .kc-menu .sub-menu a:focus-visible { background: var(--kc-ground); }
  /* Third level: flyout to the right (JS flips it left near the viewport edge) */
  .kc-menu .sub-menu .sub-menu { top: -9px; left: 100%; margin-left: 6px; }
  .kc-menu .sub-menu .sub-menu.kc-flip { left: auto; right: 100%; margin: 0 6px 0 0; }
  .kc-menu .sub-menu .kc-submenu-toggle::before, .kc-menu .sub-menu .menu-item-has-children > a::after { transform: rotate(-45deg); }
  .kc-menu .sub-menu .kc-submenu-toggle[aria-expanded="true"]::before { transform: rotate(-45deg); margin-bottom: 3px; }
  /* Hover bridge so the pointer can travel into the panel */
  .kc-menu > li.menu-item-has-children::before { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 10px; }
  .kc-menu li:hover > .sub-menu,
  .kc-menu li:focus-within > .sub-menu,
  .kc-menu li.is-open > .sub-menu { display: flex; }
  .kc-menu li.is-closed > .sub-menu { display: none; }
}

@media (max-width: 900px) {
  .kc-nav { width: 100%; justify-content: space-between; }
  .kc-nav-toggle {
    display: inline-flex; align-items: center; gap: 10px; padding: 9px 16px;
    background: none; color: var(--kc-cream); border: 1px solid var(--kc-line-strong); border-radius: 999px;
    font: 500 15px var(--kc-font-body); cursor: pointer;
  }
  .kc-nav-toggle[hidden] { display: none; }
  .kc-nav-toggle__bars, .kc-nav-toggle__bars::before, .kc-nav-toggle__bars::after {
    display: block; width: 16px; height: 1.6px; background: currentColor; border-radius: 2px; position: relative;
  }
  .kc-nav-toggle__bars::before, .kc-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
  .kc-nav-toggle__bars::before { top: -5px; }
  .kc-nav-toggle__bars::after { top: 5px; }
  .kc-menu { order: 3; flex-basis: 100%; flex-direction: column; flex-wrap: nowrap; gap: 0; padding-top: 8px; }
  .kc-nav--js .kc-menu { display: none; }
  .kc-nav--js.is-open .kc-menu { display: flex; }
  .kc-menu > li { border-top: 1px solid var(--kc-line); }
  .kc-menu li { width: 100%; justify-content: space-between; }
  .kc-menu a { padding: 12px 0; font-size: 16px; flex: 1; }
  .kc-submenu-toggle { width: 44px; height: 44px; }
  /* Nested levels: indented list; expanded without JS, tap-to-expand with JS */
  .kc-menu .sub-menu { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0; width: 100%; padding: 0 0 8px 16px; border-left: 1px solid var(--kc-line-strong); margin-left: 4px; }
  .kc-menu .sub-menu a { padding: 9px 0; font-size: 15px; color: var(--kc-muted); }
  .kc-nav--js .kc-menu .sub-menu { display: none; }
  .kc-nav--js .kc-menu li.is-open > .sub-menu { display: flex; }
}

/* ============ 1.1.3 mobile: tap targets >= 44px (layout unchanged) ============ */
@media (max-width: 900px) {
  .kc-header__brand .kc-sitename, .kc-header__brand .custom-logo-link { display: inline-flex; align-items: center; min-height: 44px; }
  .kc-nav-toggle, .kc-cart-link { min-height: 44px; }
  .kc-link-accent { display: inline-flex; align-items: center; min-height: 44px; }
  .kc-filter-row a { display: inline-flex; align-items: center; min-height: 44px; }
  .kc-footer ul { gap: 0; }
  .kc-footer ul a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
  .woocommerce div.product .product_meta a { display: inline-flex; align-items: center; min-height: 44px; }
  .woocommerce select, .woocommerce .woocommerce-ordering select, .woocommerce .quantity .qty,
  .woocommerce form .form-row input.input-text, .comment-form input[type="text"], .comment-form input[type="email"] { min-height: 44px; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li a { display: inline-flex; align-items: center; min-height: 44px; }
  .woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span,
  .nav-links .page-numbers, .kc-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
  .comment-form input[type="checkbox"] { width: 22px; height: 22px; }
  .woocommerce p.stars a { width: 44px; height: 44px; }
}
@media (max-width: 560px) {
  /* Two-up Woo grid at phone width: tighter cards so "Add to cart" stays on one line */
  .woocommerce ul.products li.product { padding: 14px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
  .woocommerce ul.products li.product .button { padding: 14px 16px; min-height: 44px; white-space: nowrap; font-size: 14px; }
}

/* ============ 1.1.4 spotlight media: keep his box proportions with real (tall) photos ============ */
.kc-spotlight__media { position: relative; width: 100%; aspect-ratio: 4 / 3; }
.kc-spotlight__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
/* 1.1.4 bestseller cards: same square box, whole bag shown when the thumbnail is uncropped */
.kc-product-card__media img { aspect-ratio: 1 / 1; height: auto; object-fit: contain; }

/* ============ 1.2.1 bug fixes (KC Noir tokens only, no redesign) ============ */
/* Woo archive + related grids: real CSS grid like .kc-card-grid instead of Woo's float
   widths (cards touched, right-hand strip, uneven heights). Images use the same square,
   contain-fit media box as .kc-product-card__media img. */
.woocommerce ul.products, .woocommerce-page ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 0 0 32px 0;
  padding: 0;
}
.woocommerce ul.products.columns-3, .woocommerce-page ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-2, .woocommerce-page ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after { display: none; content: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  clear: none !important;
  box-sizing: border-box;
  min-width: 0;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; color: inherit; }
.woocommerce ul.products li.product a img {
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: contain;
}
@media (max-width: 1024px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .woocommerce ul.products, .woocommerce-page ul.products,
  .woocommerce ul.products.columns-3, .woocommerce-page ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* Contact template: WPForms inherits the KC Noir form-card field, label and button styles
   (WPForms' own variables default to dark labels, white fields and a blue button). */
.kc-form-card .wpforms-container {
  --wpforms-label-color: var(--kc-muted);
  --wpforms-label-sublabel-color: var(--kc-muted);
  --wpforms-label-error-color: var(--kc-red-vein);
  --wpforms-field-background-color: var(--kc-ground);
  --wpforms-field-border-color: var(--kc-line-strong);
  --wpforms-field-border-color-spare: var(--kc-line-strong);
  --wpforms-field-text-color: var(--kc-cream);
  --wpforms-field-border-radius: 12px;
  --wpforms-button-background-color: var(--kc-leaf);
  --wpforms-button-border-color: var(--kc-leaf);
  --wpforms-button-text-color: var(--kc-ground);
  --wpforms-button-border-radius: 999px;
  margin: 0;
}
.kc-form-card div.wpforms-container-full .wpforms-form .wpforms-field-label {
  font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--kc-muted); margin: 0 0 8px 0;
}
.kc-form-card div.wpforms-container-full .wpforms-form .wpforms-required-label { color: var(--kc-leaf); }
.kc-form-card div.wpforms-container-full .wpforms-form input[type="text"],
.kc-form-card div.wpforms-container-full .wpforms-form input[type="email"],
.kc-form-card div.wpforms-container-full .wpforms-form textarea {
  background: var(--kc-ground);
  border: 1px solid var(--kc-line-strong);
  border-radius: 12px;
  padding: 13px 16px;
  height: auto;
  font-size: 15px;
  color: var(--kc-cream);
  font-family: var(--kc-font-body);
  box-shadow: none;
  max-width: 100%;
}
.kc-form-card div.wpforms-container-full .wpforms-form input:focus,
.kc-form-card div.wpforms-container-full .wpforms-form textarea:focus {
  border-color: var(--kc-leaf);
  box-shadow: 0 0 0 1px var(--kc-leaf);
  outline: none;
}
.kc-form-card div.wpforms-container-full .wpforms-form .wpforms-field { padding: 0 0 18px 0; }
.kc-form-card div.wpforms-container-full .wpforms-form button[type="submit"] {
  background: var(--kc-leaf);
  color: var(--kc-ground);
  border: none;
  font-weight: 600;
  font-size: 15px;
  font-family: var(--kc-font-body);
  height: auto;
  padding: 14px 30px;
  border-radius: 999px;
  cursor: pointer;
}
.kc-form-card div.wpforms-container-full .wpforms-form button[type="submit"]:hover { background: var(--kc-leaf); filter: brightness(1.08); }
.kc-form-card div.wpforms-container-full .wpforms-form label.wpforms-error,
.kc-form-card div.wpforms-container-full .wpforms-form em.wpforms-error { color: var(--kc-red-vein); }
.kc-form-card div.wpforms-container-full .wpforms-confirmation-container-full { background: var(--kc-ground); border: 1px solid var(--kc-leaf); color: var(--kc-cream); border-radius: 12px; }

/* ============ 1.3.0: Customizer Additional CSS patches v1.2 - v1.2l, merged verbatim and in their
   original order (previously printed inline after this stylesheet). They sit here, before the
   1.2.2 - 1.2.5 fixes, which override them by specificity or !important as before. ============ */
/* === KC Noir v1.2 visual patch (merge into style.css before launch) === */
.kc-product-card__media{aspect-ratio:3/4;min-height:0;height:auto;padding:22px;box-sizing:border-box;overflow:hidden}
.kc-product-card__media img{width:auto;height:100%;max-width:100%;object-fit:contain;margin:0 auto;background:none}
.woocommerce ul.products li.product img{width:auto;height:280px;max-width:100%;object-fit:contain;background:var(--kc-line);border-radius:14px;padding:18px;box-sizing:border-box;display:block;margin:0 auto 6px auto!important}
.kc-spotlight__media{min-height:430px;padding:30px;box-sizing:border-box}
.kc-spotlight__media img{width:auto;height:100%;max-height:370px;object-fit:contain;margin:0 auto}
.kc-footer__brand img{width:auto!important;height:auto!important;max-height:34px}
.kc-header__brand img{width:auto;height:auto;max-height:46px}
.kc-section{padding:56px 0}
.kc-hero{padding:64px 0 56px 0}
h1{font-size:clamp(40px,5.5vw,72px)}
h2{font-size:clamp(30px,4vw,44px)}
.kc-product-card,.woocommerce ul.products li.product{transition:transform .15s ease,border-color .15s ease}
.kc-product-card:hover,.woocommerce ul.products li.product:hover{transform:translateY(-3px);border-color:var(--kc-line-strong)}
.kc-price{color:var(--kc-leaf)}
.kc-eyebrow{letter-spacing:.22em}

/* v1.2b: single product gallery, hero bag, energy spotlight */
.woocommerce div.product div.images img{max-height:520px;width:auto;margin:0 auto;object-fit:contain;background:var(--kc-line);border-radius:20px;padding:26px;box-sizing:border-box;display:block}
.woocommerce div.product div.images .flex-viewport{background:none}
.kc-hero-bag{height:270px;width:auto;object-fit:contain;align-self:center;margin:0 auto}
.kc-spotlight h2{color:var(--kc-energy)}
.kc-btn--energy{background:var(--kc-energy)}
.kc-btn--energy:hover{filter:brightness(1.06)}
/* v1.2c: hero trio composition */
.kc-hero-trio{position:relative;width:100%;height:300px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:6px}
.kc-trio-bag{height:238px;width:auto;object-fit:contain;filter:drop-shadow(0 18px 22px rgba(0,0,0,.5))}
.kc-trio-left{transform:translateX(36px) rotate(-7deg) scale(.86);z-index:1;transform-origin:bottom center}
.kc-trio-center{height:286px;z-index:2}
.kc-trio-right{transform:translateX(-36px) rotate(7deg) scale(.86);z-index:1;transform-origin:bottom center}
.kc-hero-bag{display:none}
/* v1.2d: hero scene image (full-bleed top of panel) */
.kc-panel{padding:0 0 30px 0;overflow:hidden}
.kc-panel > *{margin-left:32px;margin-right:32px}
.kc-panel .kc-hero-scene{width:100%;height:auto;display:block;margin:0 0 6px 0;border-radius:0}
/* v1.2e: spotlight image fills its card + hero panel text centered */
.kc-spotlight__media{padding:0;overflow:hidden}
.kc-spotlight__media img{width:100%;height:auto;max-height:none;object-fit:cover;border-radius:inherit;display:block;margin:0}
.kc-panel h3,.kc-panel p{margin-left:32px;margin-right:32px;text-align:center}
.kc-panel a.kc-link-accent{display:block;margin-left:32px;margin-right:32px;text-align:center}
/* v1.2f: category banner image */
.kc-cat-banner{width:100%;height:auto;display:block;border-radius:24px;margin:0 0 24px 0;border:1px solid var(--kc-line)}
/* v1.2g: category hero — H1 overlaid on banner */
.kc-cat-hero{position:relative;border-radius:24px;overflow:hidden;margin:0 0 24px 0;border:1px solid var(--kc-line)}
.kc-cat-hero .kc-cat-banner{margin:0;border:0;border-radius:0}
.kc-cat-hero__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:34px 40px;background:linear-gradient(90deg,rgba(15,23,18,.86) 0%,rgba(15,23,18,.5) 42%,rgba(15,23,18,0) 68%)}
.kc-cat-hero__overlay h1{margin:0;font-size:clamp(26px,3.2vw,44px);line-height:1.12;max-width:58%}
@media(max-width:700px){.kc-cat-hero .kc-cat-banner{min-height:190px;object-fit:cover}.kc-cat-hero__overlay{padding:16px 18px;background:linear-gradient(0deg,rgba(15,23,18,.85) 0%,rgba(15,23,18,.25) 60%,rgba(15,23,18,0) 100%)}.kc-cat-hero__overlay h1{max-width:100%;font-size:21px}}
/* v1.2h: lab testing split hero with scene image */
.kc-page-hero--split{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;text-align:left}
.kc-lab-scene{width:100%;height:100%;max-height:440px;object-fit:cover;border-radius:24px;border:1px solid var(--kc-line);display:block}
@media(max-width:800px){.kc-page-hero--split{grid-template-columns:1fr;gap:26px}.kc-lab-scene{max-height:320px}}
/* v1.2i: H1 + intro text on category banner; grid layering; mobile text panel */
.kc-cat-hero{display:grid}
.kc-cat-hero > *{grid-area:1/1}
.kc-cat-hero .kc-cat-banner{width:100%;height:100%;max-height:520px;object-fit:cover}
.kc-cat-hero__overlay{position:relative;inset:auto;display:flex;flex-direction:column;justify-content:flex-end;padding:34px 40px;background:linear-gradient(90deg,rgba(15,23,18,.9) 0%,rgba(15,23,18,.62) 42%,rgba(15,23,18,.05) 72%)}
.kc-cat-hero__overlay h1{max-width:54%}
.kc-cat-hero__desc{max-width:46%;margin:12px 0 0 0;color:#DEDFD2;font-size:15px;line-height:1.6}
.kc-cat-hero__desc p{margin:0 0 10px 0}
.kc-cat-hero__desc p:last-child{margin-bottom:0}
@media(max-width:700px){
.kc-cat-hero{display:block}
.kc-cat-hero .kc-cat-banner{height:auto;min-height:0;max-height:260px}
.kc-cat-hero__overlay{background:var(--kc-surface);padding:16px 18px 20px}
.kc-cat-hero__overlay h1{max-width:100%;font-size:21px}
.kc-cat-hero__desc{max-width:100%;font-size:14px}
}
/* v1.2j: lab reports page redesign */
.kc-labr__intro{max-width:780px}
.kc-labr__pills{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 8px}
.kc-vein-pill{display:inline-block;padding:8px 16px;border-radius:999px;border:1px solid var(--kc-line);font-size:14px;text-decoration:none;color:var(--kc-cream)}
.kc-vein-pill:hover{background:var(--kc-surface)}
.kc-vein-pill--green{border-color:rgba(155,225,93,.45)}.kc-vein-pill--white{border-color:rgba(232,230,218,.45)}.kc-vein-pill--red{border-color:rgba(217,138,138,.5)}.kc-vein-pill--gold{border-color:rgba(242,179,76,.5)}
.kc-labr__glance{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0 10px}
.kc-glance{display:flex;flex-direction:column;gap:4px;background:var(--kc-surface);border:1px solid var(--kc-line);border-radius:18px;padding:18px 20px;text-decoration:none;color:var(--kc-cream)}
.kc-glance:hover{border-color:#3A4A3D}
.kc-glance strong{font-size:17px;color:var(--kc-cream)}
.kc-glance__tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#A9B7AA}
.kc-glance__cert{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;color:#A9B7AA}
.kc-glance__num{font-size:30px;font-weight:700;margin-top:6px;line-height:1}
.kc-glance__num small{font-size:12px;font-weight:400;color:#A9B7AA;margin-left:6px}
.kc-glance__sub{font-size:12.5px;color:#A9B7AA}
.kc-glance--green .kc-glance__num{color:#9BE15D}.kc-glance--white .kc-glance__num{color:#E8E6DA}.kc-glance--red .kc-glance__num{color:#D98A8A}.kc-glance--gold .kc-glance__num{color:#F2B34C}
.kc-cert{background:var(--kc-surface);border:1px solid var(--kc-line);border-left:3px solid var(--kc-line);border-radius:18px;padding:26px 30px;margin:26px 0;scroll-margin-top:110px}
.kc-cert--green{border-left-color:#9BE15D}.kc-cert--white{border-left-color:#E8E6DA}.kc-cert--red{border-left-color:#D98A8A}.kc-cert--gold{border-left-color:#F2B34C}
.kc-cert__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:12px}
.kc-cert__head h2{margin:0;font-size:24px}
.kc-vein-tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#A9B7AA;border:1px solid var(--kc-line);border-radius:999px;padding:4px 10px}
.kc-cert--green .kc-vein-tag{color:#9BE15D;border-color:rgba(155,225,93,.4)}.kc-cert--white .kc-vein-tag{color:#E8E6DA;border-color:rgba(232,230,218,.4)}.kc-cert--red .kc-vein-tag{color:#D98A8A;border-color:rgba(217,138,138,.45)}.kc-cert--gold .kc-vein-tag{color:#F2B34C;border-color:rgba(242,179,76,.45)}
.kc-cert__no{font-family:ui-monospace,Menlo,monospace;font-size:13px;color:#A9B7AA}
.kc-cert__date{font-size:13px;color:#A9B7AA}
.kc-cert__window{font-size:13.5px;color:#A9B7AA}
.kc-cert__stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0 14px}
.kc-stat{background:var(--kc-ground);border:1px solid var(--kc-line);border-radius:14px;padding:14px 18px}
.kc-stat__label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#A9B7AA}
.kc-stat__num{display:block;font-size:28px;font-weight:700;margin:4px 0 10px}
.kc-bar{position:relative;height:6px;border-radius:3px;background:#2A3830}
.kc-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:#9BE15D}
.kc-cert--white .kc-bar i{background:#E8E6DA}.kc-cert--red .kc-bar i{background:#D98A8A}.kc-cert--gold .kc-bar i{background:#F2B34C}
.kc-bar b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--kc-cream);opacity:.7}
.kc-stat__limit{display:block;margin-top:9px;font-size:12px;color:#A9B7AA}
.kc-cert__passes{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}
.kc-chip{font-size:12.5px;padding:6px 12px;border-radius:999px;border:1px solid rgba(155,225,93,.35);color:#BFE9A0}
.kc-chip--pass::before{content:"\2713\00a0"}
.kc-chip--note{border-color:rgba(242,179,76,.4);color:#F2CB8C}
.kc-cert__full{border:1px solid var(--kc-line);border-radius:12px;margin:10px 0 16px;background:var(--kc-ground)}
.kc-cert__full summary{cursor:pointer;padding:12px 18px;font-size:14px}
.kc-cert__full[open] summary{border-bottom:1px solid var(--kc-line)}
.kc-cert__full .kc-lab-table{width:calc(100% - 36px);margin:12px 18px 16px;border-collapse:collapse;font-size:14px}
.kc-cert__full .kc-lab-table th,.kc-cert__full .kc-lab-table td{padding:8px 10px;border-bottom:1px solid var(--kc-line);text-align:left}
.kc-cert__full .kc-lab-table tr:last-child td{border-bottom:0}
.kc-cert__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:4px 0 0}
.kc-labr__pointers{margin-top:34px}
.kc-labr__cta{margin-top:26px}
.kc-labr__browse{margin-top:18px;color:#A9B7AA}
@media(max-width:760px){.kc-labr__glance{grid-template-columns:1fr 1fr}.kc-cert{padding:20px 18px}.kc-cert__stats{grid-template-columns:1fr}.kc-cert__full .kc-lab-table{display:block;overflow-x:auto}}
@media(max-width:480px){.kc-labr__glance{grid-template-columns:1fr}}
/* v1.2k: product page lab strip */
.kc-lab-strip{display:block;background:var(--kc-surface);border:1px solid rgba(155,225,93,.32);border-radius:12px;padding:12px 16px;margin:18px 0 6px;font-size:13.5px;line-height:1.55}
.kc-lab-strip__check{color:#9BE15D;font-weight:700;margin-right:8px}
.kc-lab-strip__text{color:var(--kc-cream)}
.kc-lab-strip__text strong{color:var(--kc-cream)}
.kc-lab-strip__links{display:flex;gap:16px;justify-content:flex-end;margin-top:8px}
.kc-lab-strip__links a{color:#9BE15D;text-decoration:none;white-space:nowrap}
.kc-lab-strip__links a:hover{text-decoration:underline}
.kc-lab-strip--request{border-color:var(--kc-line)}
.kc-lab-strip--request .kc-lab-strip__check{color:#A9B7AA}
@media(max-width:600px){.kc-lab-strip__links{justify-content:flex-start}}
/* v1.2l: live search on vendors + resources archives */
.kc-live-search{position:relative;max-width:460px;margin:18px 0 28px}
.kc-live-search__input{width:100%;box-sizing:border-box;background:var(--kc-surface);border:1px solid var(--kc-line);border-radius:999px;padding:12px 20px;color:var(--kc-cream);font-size:15px;font-family:inherit}
.kc-live-search__input::placeholder{color:#A9B7AA}
.kc-live-search__input:focus{outline:none;border-color:rgba(155,225,93,.55)}
.kc-live-search__results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;background:var(--kc-surface);border:1px solid var(--kc-line);border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.45);overflow:hidden}
.kc-live-search__results a{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:11px 18px;text-decoration:none;border-bottom:1px solid var(--kc-line)}
.kc-live-search__results a:last-child{border-bottom:0}
.kc-live-search__results a:hover{background:var(--kc-ground)}
.kc-live-search__t{color:var(--kc-cream);font-size:14px}
.kc-live-search__d{color:#A9B7AA;font-size:12px;white-space:nowrap}
.kc-live-search__note{display:block;padding:12px 18px;color:#A9B7AA;font-size:13.5px}
/* ============ end of merged Additional CSS ============ */

/* ============ 1.2.2 home fixes (override Customizer "v1.2e" rules, KC Noir tokens) ============ */
/* Blend spotlight: show the whole bag (top to bottom) in the photo box. Box goes 4:3 -> 5:4
   and the square photo is anchored slightly above centre; Additional CSS had height:auto,
   which let the square image overflow the 4:3 box and lose its bottom. */
.kc-spotlight .kc-spotlight__media { aspect-ratio: 5 / 4; min-height: 0; }
.kc-spotlight .kc-spotlight__media img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 45%;
}
/* Hero lab card: heading and text left-aligned so they line up with the "How we test" link */
.kc-hero__grid .kc-panel h3,
.kc-hero__grid .kc-panel p,
.kc-hero__grid .kc-panel a.kc-link-accent { text-align: left; }

/* ============ 1.2.3 fixes (override Customizer "v1.2" Additional CSS; KC Noir tokens) ============ */
/* Category + Shop banner hero: one thin, fixed-height band on every archive.
   The photo is a cover background layer; the text sits on top, vertically centred. */
.kc-container .kc-cat-hero {
  position: relative; display: block; overflow: hidden;
  height: 210px; min-height: 0;
  border-radius: 24px; border: 1px solid var(--kc-line); margin: 0 0 24px 0;
}
.kc-container .kc-cat-hero .kc-cat-banner {
  position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; min-height: 0;
  object-fit: cover; object-position: center; margin: 0; border: 0; border-radius: 0;
}
.kc-container .kc-cat-hero .kc-cat-hero__overlay {
  position: absolute; inset: 0; height: 100%; box-sizing: border-box;
  display: flex; flex-direction: column; justify-content: center;
  padding: 22px 40px;
  background: linear-gradient(90deg, rgba(15,23,18,.92) 0%, rgba(15,23,18,.7) 45%, rgba(15,23,18,.08) 75%);
}
.kc-container .kc-cat-hero .kc-cat-hero__overlay h1 { margin: 0; max-width: 56%; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.12; }
.kc-container .kc-cat-hero .kc-cat-hero__desc { max-width: 52%; margin: 10px 0 0 0; font-size: 14px; line-height: 1.5; color: #DEDFD2; }
.kc-container .kc-cat-hero .kc-cat-hero__desc p { margin: 0 0 6px 0; }
.kc-container .kc-cat-hero .kc-cat-hero__desc p:last-child { margin-bottom: 0; }
@media (max-width: 700px) {
  /* Phone: identical 150px photo band with the title on it on every archive;
     the category intro sits under the band as normal text, so nothing is cut. */
  .kc-container .kc-cat-hero { display: grid; grid-template-columns: 100%; grid-template-rows: 150px auto; height: auto; border: 0; border-radius: 0; overflow: visible; }
  .kc-container .kc-cat-hero .kc-cat-hero__overlay { display: contents; }
  .kc-container .kc-cat-hero .kc-cat-banner { position: static; grid-area: 1 / 1; height: 150px; border-radius: 20px; border: 1px solid var(--kc-line); box-sizing: border-box; }
  .kc-container .kc-cat-hero .kc-cat-hero__overlay h1 {
    grid-area: 1 / 1; align-self: stretch; display: flex; align-items: flex-end; box-sizing: border-box;
    max-width: 100%; margin: 0; padding: 0 18px 16px; font-size: 22px; border-radius: 20px;
    background: linear-gradient(0deg, rgba(15,23,18,.88) 0%, rgba(15,23,18,.35) 60%, rgba(15,23,18,0) 100%);
  }
  .kc-container .kc-cat-hero .kc-cat-hero__desc { grid-area: 2 / 1; max-width: 100%; margin: 14px 2px 0; font-size: 14px; }
}

/* Product photos (square scene photos): fill a square box edge to edge, rounded, no inner frame */
.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .woocommerce-product-gallery__image a img {
  width: 100%; height: auto; max-height: none; aspect-ratio: 1 / 1;
  object-fit: cover; padding: 0; margin: 0; background: none;
  border-radius: var(--kc-radius); display: block; box-sizing: border-box;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image { border-radius: var(--kc-radius); overflow: hidden; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { top: 14px; right: 14px; }
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  width: 100%; height: auto; aspect-ratio: 1 / 1;
  object-fit: cover; padding: 0; background: none;
  border-radius: var(--kc-radius-sm); display: block;
  margin: 0 0 4px 0 !important;
}
.kc-product-card .kc-product-card__media { aspect-ratio: 1 / 1; min-height: 0; padding: 0; background: none; border-radius: var(--kc-radius-sm); }
.kc-product-card .kc-product-card__media img { width: 100%; height: 100%; max-width: none; aspect-ratio: 1 / 1; object-fit: cover; margin: 0; border-radius: var(--kc-radius-sm); }

/* Product tabs: Woo's default tab shapes (white active fill, ::before/::after corner
   pieces, overflow:hidden on the list) clipped the KC pill. Plain pills, nothing clipped. */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  overflow: visible; display: flex; flex-wrap: wrap; gap: 10px;
  margin: 0 0 24px 0; padding: 0 0 14px 0; border-bottom: 1px solid var(--kc-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; content: none; border: 0; box-shadow: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  margin: 0; padding: 0 18px; border-radius: 999px;
  background: var(--kc-surface); border: 1px solid var(--kc-line); z-index: auto;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--kc-leaf); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--kc-cream); padding: 10px 0; }

/* 1.2.4: "Blend" pill (Gold Bali), gold tone shared with the yellow-vein dot */
.kc-pill-tag--blend { background: var(--kc-energy); }

/* 1.2.5: Lab Reports "at a glance" cards - percentage figure at the same height
   in every card of a row, even when a cert/date line wraps (overrides Additional CSS). */
.kc-labr__glance { align-items: stretch; }
.kc-labr__glance .kc-glance { height: 100%; box-sizing: border-box; }
.kc-labr__glance .kc-glance__cert { margin-bottom: 6px; }
.kc-labr__glance .kc-glance__num { margin-top: auto; }
/* 1.2.5b: keep the cert/date line on one line in all six cards (Menlo/SF Mono at 12.5px wrapped
   in the 185px card), so it can never push the percentage down. */
.kc-labr__glance .kc-glance__cert { white-space: nowrap; font-size: 11.5px; letter-spacing: 0; }
@media (max-width: 480px) { .kc-labr__glance .kc-glance__cert { font-size: 12.5px; } }

/* 1.3.2: on-site newsletter signup (honeypot + result message) */
.kc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kc-newsletter__msg { margin: 18px auto 0; max-width: 440px; padding: 14px 22px; border-radius: 999px; font-size: 15px; border: 1px solid var(--kc-line-strong); background: var(--kc-surface); color: var(--kc-cream); }
.kc-newsletter__msg.is-ok { border-color: var(--kc-leaf); color: var(--kc-leaf); }
.kc-newsletter__msg.is-err { border-color: var(--kc-red-vein); color: var(--kc-red-vein); }
.kc-newsletter__form[hidden], .kc-newsletter__msg[hidden] { display: none; }

/* ============ 1.3.3: YITH Product Add-ons (strain picker on Kilo / Sampler packs) ============
   Matches the variation selector (AMOUNT row): muted uppercase label column + pill select.
   Scoped to #yith-wapo-container / YITH cart meta, so it does nothing where YITH is not installed. */
html:root {
  --yith-wapo-required-option-color: var(--kc-red-vein);
  --yith-wapo-block-background-color: transparent;
  --yith-wapo-block-padding: 0;
  --yith-wapo-label-font-size: 13px;
  --yith-wapo-description-font-size: 13px;
  --yith-wapo-accent-color-color: var(--kc-leaf);
  --yith-wapo-form-border-color-color: var(--kc-line-strong);
  --yith-wapo-price-box-colors-text: var(--kc-cream);
  --yith-wapo-price-box-colors-background: var(--kc-surface);
  --yith-wapo-tooltip-colors-text: var(--kc-ground);
  --yith-wapo-tooltip-colors-background: var(--kc-leaf);
}
.woocommerce div.product form.cart #yith-wapo-container { margin: 0 0 20px; padding: 0; background: none; }
#yith-wapo-container .yith-wapo-block { margin: 0; padding: 0; background: none !important; }
#yith-wapo-container .yith-wapo-block .yith-wapo-addon {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  align-items: center;
  column-gap: 0;
  margin: 0 0 12px;
  padding: 0 !important;
  background: transparent !important;
  border: 0;
}
#yith-wapo-container .yith-wapo-addon .addon-header { margin: 0; padding: 0; }
#yith-wapo-container .yith-wapo-addon .wapo-addon-title {
  margin: 0;
  padding: 0;
  font-family: var(--kc-font-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 32px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kc-muted);
}
#yith-wapo-container .yith-wapo-addon .wapo-addon-title .required { color: var(--kc-red-vein); margin-left: 2px; }
#yith-wapo-container .yith-wapo-addon .wapo-addon-title.wapo-error { color: var(--kc-red-vein); }
#yith-wapo-container .yith-wapo-addon .options-container { margin: 0; padding: 0; }
#yith-wapo-container .yith-wapo-addon .options { margin: 0; padding: 0; }
#yith-wapo-container .yith-wapo-addon .image-container:empty,
#yith-wapo-container .yith-wapo-addon .option-description:empty,
#yith-wapo-container .yith-wapo-addon p.option-description { display: none; margin: 0; }
#yith-wapo-container .yith-wapo-addon select.yith-wapo-option-value {
  -webkit-appearance: none;
  appearance: none;
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 999px;
  color: var(--kc-cream);
  padding: 10px 16px;
  margin: 0;
  box-shadow: none;
  cursor: pointer;
}
#yith-wapo-container .yith-wapo-addon select.yith-wapo-option-value:focus { outline: 2px solid var(--kc-focus); outline-offset: 2px; }
#yith-wapo-container .yith-wapo-addon select.yith-wapo-option-value option { background: var(--kc-surface); color: var(--kc-cream); }
#yith-wapo-container .yith-wapo-addon.required-min select.yith-wapo-option-value { border-color: var(--kc-red-vein); }
#yith-wapo-container .yith-wapo-addon .min-error { grid-column: 2; margin: 6px 0 0; padding: 0 16px; font-size: 13px; }
#yith-wapo-container .yith-wapo-addon .min-error,
#yith-wapo-container .yith-wapo-addon .min-error * { color: var(--kc-red-vein); }
#yith-wapo-container #wapo-total-price-table { display: none; }
@media (max-width: 560px) {
  #yith-wapo-container .yith-wapo-block .yith-wapo-addon { grid-template-columns: 124px minmax(0, 1fr); }
  #yith-wapo-container .yith-wapo-addon .wapo-addon-title { white-space: nowrap; }
  /* min-width beats YITH's inline width:75% !important so the picker fills the column like AMOUNT */
  #yith-wapo-container .yith-wapo-addon .options,
  #yith-wapo-container .yith-wapo-addon select.yith-wapo-option-value { min-width: 100%; }
  #yith-wapo-container .yith-wapo-addon select.yith-wapo-option-value { min-height: 44px; }
}
/* Chosen strains in cart, mini-cart and checkout review */
.woocommerce td.product-name dl.variation,
.woocommerce-checkout-review-order-table dl.variation,
.woocommerce-mini-cart dl.variation {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 4px 10px;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.5;
}
.woocommerce td.product-name dl.variation dt,
.woocommerce-checkout-review-order-table dl.variation dt,
.woocommerce-mini-cart dl.variation dt {
  float: none; margin: 0; font-weight: 600; color: var(--kc-muted);
  text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px;
}
.woocommerce td.product-name dl.variation dd,
.woocommerce-checkout-review-order-table dl.variation dd,
.woocommerce-mini-cart dl.variation dd { float: none; margin: 0; padding: 0; color: var(--kc-cream); }
.woocommerce td.product-name dl.variation dd p,
.woocommerce-checkout-review-order-table dl.variation dd p,
.woocommerce-mini-cart dl.variation dd p { margin: 0; }
@media (max-width: 560px) {
  /* Narrow checkout review column: stack label over strain so names don't break word-by-word */
  .woocommerce .woocommerce-checkout-review-order-table td.product-name dl.variation { grid-template-columns: 1fr; gap: 0; }
  .woocommerce .woocommerce-checkout-review-order-table td.product-name dl.variation dd { margin-bottom: 6px; }
}

/* ============ 1.3.4: core the_posts_pagination() (Vendors, locations, index) = Articles pills ============ */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
nav.navigation.pagination, nav.navigation.kc-pagination--desktop, nav.navigation.kc-pagination--mobile { margin-top: 40px; }
nav.navigation.pagination .nav-links, nav.navigation.kc-pagination--desktop .nav-links, nav.navigation.kc-pagination--mobile .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
nav.navigation.pagination .page-numbers, nav.navigation.kc-pagination--desktop .page-numbers, nav.navigation.kc-pagination--mobile .page-numbers { border: 1px solid var(--kc-line-strong); border-radius: 999px; padding: 10px 18px; color: var(--kc-cream); font-size: 14px; line-height: inherit; text-decoration: none; }
nav.navigation.pagination .page-numbers.current, nav.navigation.kc-pagination--desktop .page-numbers.current, nav.navigation.kc-pagination--mobile .page-numbers.current { background: var(--kc-leaf); color: var(--kc-ground); border-color: var(--kc-leaf); }
@media (max-width: 560px) {
  nav.navigation.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
}

/* ============ 1.3.5: one-line pagination on phones ============ */
.kc-pagination--mobile { display: none !important; }
@media (max-width: 420px) {
  .kc-pagination--desktop { display: none !important; }
  nav.kc-pagination.kc-pagination--mobile { display: flex !important; flex-wrap: nowrap; gap: 6px; }
  nav.navigation.kc-pagination--mobile { display: block !important; }
  nav.navigation.kc-pagination--mobile .nav-links { flex-wrap: nowrap; gap: 6px; }
  .kc-pagination--mobile .page-numbers, nav.navigation.kc-pagination--mobile .page-numbers { min-width: 38px; min-height: 44px; padding: 10px 12px; display: inline-flex; align-items: center; justify-content: center; }
}

/* ============ 1.3.6: cart, checkout, thank-you and My Account polish ============ */
/* Wider column on cart / checkout / account pages (760px was too cramped for two columns) */
body.woocommerce-cart .kc-content,
body.woocommerce-checkout .kc-content,
body.woocommerce-account .kc-content { max-width: 1180px; }

/* Dark province / country selects (native and selectWoo) and order notes */
.woocommerce form .form-row select,
.woocommerce-checkout select {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 12px;
  color: var(--kc-cream);
  padding: 12px 16px;
  min-height: 46px;
}
.woocommerce form .form-row select option { background: var(--kc-surface); color: var(--kc-cream); }
.woocommerce .select2-container--default .select2-selection--single {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 12px;
  height: 46px;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--kc-cream); line-height: 44px; padding-left: 16px; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; right: 8px; }
.select2-dropdown { background: var(--kc-surface); border-color: var(--kc-line-strong); color: var(--kc-cream); }
.select2-container--default .select2-search--dropdown .select2-search__field { background: var(--kc-ground); border-color: var(--kc-line-strong); color: var(--kc-cream); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--kc-leaf); color: var(--kc-ground); }
.woocommerce form .form-row textarea { min-height: 96px; }
/* WooCommerce core styles .input-text with a higher-specificity white background; match it here */
:root { --wc-form-color-background: var(--kc-surface); --wc-form-color-text: var(--kc-cream); --wc-form-border-color: var(--kc-line-strong); }
.woocommerce form .form-row textarea.input-text,
.woocommerce form .form-row select.select,
.woocommerce form .form-row select.state_select {
  background-color: var(--kc-surface);
  border: 1px solid var(--kc-line-strong);
  border-radius: 12px;
  color: var(--kc-cream);
}
.woocommerce form .form-row input.input-text::placeholder, .woocommerce form .form-row textarea::placeholder { color: #7D8C80; }

/* Shipping method list: one option per line, price on the same line */
.woocommerce ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce ul#shipping_method li { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 8px; text-indent: 0; line-height: 1.35; }
.woocommerce ul#shipping_method li input { margin: 3px 0 0; flex: 0 0 auto; accent-color: var(--kc-leaf); }
.woocommerce ul#shipping_method li label { color: var(--kc-cream); }
.woocommerce-checkout #payment ul.payment_methods li input { accent-color: var(--kc-leaf); }

/* Thank-you page: order overview as a card grid */
.woocommerce ul.order_details,
.woocommerce ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0;
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius-sm);
  overflow: hidden;
}
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li {
  float: none;
  margin: 0;
  padding: 16px 20px;
  border: 0;
  border-right: 1px solid var(--kc-line);
  border-bottom: 1px solid var(--kc-line);
  color: var(--kc-muted);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.5;
}
.woocommerce ul.order_details li strong {
  display: block;
  margin-top: 4px;
  color: var(--kc-cream);
  font-family: var(--kc-font-display);
  font-size: 17px;
  letter-spacing: 0;
  text-transform: none;
}
.woocommerce .woocommerce-notice--success.woocommerce-thankyou-order-received,
.woocommerce-order > p.woocommerce-thankyou-order-received {
  color: var(--kc-leaf);
  font-family: var(--kc-font-display);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 20px;
}

/* Thank-you page: Interac e-Transfer / payment instructions (the gateway prints inline grey #4A4A4A text) */
.woocommerce-order > p[style*="4A4A4A"],
.woocommerce-order > p[style*="4a4a4a"] { color: var(--kc-cream) !important; margin-bottom: 0.6em; }
.woocommerce-order > p[style*="4A4A4A"] b,
.woocommerce-order > p[style*="4a4a4a"] b { color: var(--kc-cream); }
.woocommerce-order > p[style*="font-weight: bold"]:first-of-type { color: var(--kc-leaf) !important; font-family: var(--kc-font-display); font-size: 20px; }

/* Order details / addresses: section headings sized for the content column */
.woocommerce .woocommerce-order-details__title,
.woocommerce .woocommerce-column__title,
.woocommerce .woocommerce-customer-details h2,
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 { font-size: 24px; margin: 28px 0 14px; }
.woocommerce .woocommerce-customer-details address {
  background: var(--kc-surface);
  border: 1px solid var(--kc-line) !important;
  border-radius: var(--kc-radius-sm);
  color: var(--kc-cream);
  padding: 16px 20px;
  overflow-wrap: anywhere;
}
.woocommerce table.shop_table td.product-name a { color: var(--kc-leaf); }

/* My Account: navigation as a card of pills */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 10px;
  list-style: none;
  background: var(--kc-surface);
  border: 1px solid var(--kc-line);
  border-radius: var(--kc-radius-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0 0 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { margin-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 10px 16px;
  border-radius: 999px;
  color: var(--kc-cream);
  font-family: var(--kc-font-display);
  font-weight: 600;
  font-size: 15px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { background: var(--kc-line); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { background: var(--kc-leaf); color: var(--kc-ground); }
.woocommerce-account .woocommerce-MyAccount-content { color: var(--kc-muted); }
.woocommerce-account .woocommerce-MyAccount-content strong, .woocommerce-account .woocommerce-MyAccount-content mark { color: var(--kc-cream); background: transparent; }
@media (min-width: 769px) {
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; }
  .woocommerce-account .woocommerce-MyAccount-content { width: 72%; }
}
@media (max-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 24px; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 6px; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li a { padding: 8px 14px; font-size: 14px; }
  .woocommerce ul.order_details li { font-size: 10px; padding: 14px 16px; }
}

/* 1.3.6: WPForms "thanks" message was dark grey on the dark card */
div.wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
  background: rgba(155, 225, 93, 0.08);
  border: 1px solid var(--kc-leaf);
  border-radius: 12px;
  color: var(--kc-cream);
  padding: 16px 20px;
}
div.wpforms-confirmation-container-full, div.wpforms-confirmation-container-full p { color: var(--kc-cream) !important; }
div.wpforms-confirmation-container-full p { margin: 0; }

/* ============ 1.3.7: top bar mentions FedEx Ground; short line on phones ============ */
.kc-topbar__short { display: none; }
@media (max-width: 600px) {
  .kc-topbar { padding: 9px 14px; font-size: 12px; line-height: 1.45; }
  .kc-topbar__full { display: none; }
  .kc-topbar__short { display: inline; }
}

/* 1.3.11 — Shipping rates on mobile: one clean aligned list (radio · name · price) */
.kc-rate__price--free { display: none; }
@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals td { text-align: left !important; }
  .woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals td::before { float: none; display: block; margin: 0 0 6px; }
  .woocommerce ul#shipping_method { width: 100%; }
  .woocommerce ul#shipping_method li { align-items: center; gap: 12px; margin: 0; padding: 11px 0; border-top: 1px solid var(--kc-line); }
  .woocommerce ul#shipping_method li:first-child { border-top: 0; }
  .woocommerce ul#shipping_method li input { margin: 0; width: 18px; height: 18px; }
  .woocommerce ul#shipping_method li label { flex: 1 1 auto; min-width: 0; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; text-align: left; margin: 0; }
  .woocommerce ul#shipping_method .kc-rate__sep { display: none; }
  .woocommerce ul#shipping_method .kc-rate__name { min-width: 0; }
  .woocommerce ul#shipping_method .kc-rate__price { flex: 0 0 auto; white-space: nowrap; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
  .woocommerce ul#shipping_method .kc-rate__price--free { display: inline; color: var(--kc-leaf); }
  .woocommerce ul#shipping_method li input:checked + label { color: var(--kc-leaf); }
  .woocommerce ul#shipping_method li input:checked + label .kc-rate__price { color: var(--kc-leaf); }
  .woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals .woocommerce-shipping-destination,
  .woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals .woocommerce-shipping-calculator { text-align: left; }
  .woocommerce-checkout #payment ul.payment_methods li > label { display: inline-block; width: calc(100% - 34px); vertical-align: middle; line-height: 1.35; }
}
@media (max-width: 600px) {
  .woocommerce table.woocommerce-checkout-review-order-table,
  .woocommerce table.woocommerce-checkout-review-order-table thead,
  .woocommerce table.woocommerce-checkout-review-order-table tbody,
  .woocommerce table.woocommerce-checkout-review-order-table tfoot { display: block; width: 100%; }
  .woocommerce table.woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; border-top: 1px solid var(--kc-line); }
  .woocommerce table.woocommerce-checkout-review-order-table thead tr { border-top: 0; }
  .woocommerce table.woocommerce-checkout-review-order-table th,
  .woocommerce table.woocommerce-checkout-review-order-table td { display: block; border: 0 !important; }
  .woocommerce table.woocommerce-checkout-review-order-table td.product-name { flex: 1 1 auto; min-width: 0; }
  .woocommerce table.woocommerce-checkout-review-order-table .product-total,
  .woocommerce table.woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
  .woocommerce table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { flex-wrap: wrap; gap: 0; }
  .woocommerce table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th { flex: 0 0 100%; padding-bottom: 2px; }
  .woocommerce table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { flex: 0 0 100%; text-align: left; white-space: normal; padding-top: 0; }
}

/* 1.3.12 — Vendor review rating: small inline gold stars (replaces the leftover
   Elementor rating SVGs that rendered as one giant black star). */
.kc-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 24px; line-height: 1; }
.kc-rating__stars { position: relative; display: inline-block; flex: none; line-height: 0; white-space: nowrap; }
.kc-rating__empty, .kc-rating__fill { display: inline-flex; gap: 4px; }
.kc-rating__fill { position: absolute; top: 0; left: 0; overflow: hidden; }
.kc-rating svg { display: block; flex: none; width: 18px; height: 18px; }
.kc-rating__empty svg { fill: var(--kc-line-strong); }
.kc-rating__fill svg { fill: var(--kc-energy); }
.kc-rating__label { font-family: var(--kc-font-display); font-size: 16px; font-weight: 600; color: var(--kc-cream); }
.kc-rating__max { color: var(--kc-muted); font-weight: 500; }
.kc-rating--none .kc-rating__label { font-family: var(--kc-font-body); font-size: 14px; font-weight: 500; color: var(--kc-muted); }
/* Safety net: any stray Elementor rating star left in content stays icon-sized. */
.entry-content svg[viewBox="0 0 1000 1000"]:not([width]) { width: 18px; height: 18px; fill: var(--kc-energy); vertical-align: middle; }

/* ============ 1.3.16 — header account link, my-account note heading ============ */
.kc-account-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--kc-cream); font-size: 15px; font-weight: 500; white-space: nowrap;
}
.kc-account-link svg { flex: none; }
.kc-account-link:hover, .kc-account-link:focus-visible { color: var(--kc-leaf); }
.kc-account-link:focus-visible { outline: 2px solid var(--kc-leaf); outline-offset: 3px; border-radius: 6px; }
.woocommerce-checkout .kc-account-link { display: none; }
@media (max-width: 900px) {
  /* Icon only, grouped with the cart pill on the right of the Menu row */
  .kc-account-link { margin-left: auto; justify-content: center; min-width: 44px; min-height: 44px; }
  .kc-account-link__label {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
  }
  .kc-account-link svg { width: 22px; height: 22px; }
  .kc-nav { column-gap: 14px; }
}

/* ============ 1.3.17 — My account (logged out) intro panel, KC Noir surface (inc/kc-account.php) ============ */
.kc-acct-note {
  background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: var(--kc-radius);
  padding: 36px 40px; margin: 0 0 40px; color: var(--kc-muted);
}
.kc-acct-note h2 { font-size: clamp(26px, 3vw, 32px); color: var(--kc-cream); margin: 0 0 12px; }
.kc-acct-note__lead { max-width: 760px; margin: 0 0 24px; font-size: 16px; line-height: 1.65; color: var(--kc-muted); }
.kc-acct-note__lead strong { color: var(--kc-cream); font-weight: 600; }
.woocommerce .kc-acct-note ul.kc-acct-note__tiles, .kc-acct-note__tiles {
  list-style: none; margin: 0 0 28px; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;
}
.kc-acct-note__tile {
  display: flex; align-items: flex-start; gap: 14px; margin: 0;
  background: var(--kc-ground); border: 1px solid var(--kc-line); border-radius: var(--kc-radius-sm); padding: 20px;
}
.kc-acct-note__icon {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 12px;
  background: rgba(155, 225, 93, .1); border: 1px solid rgba(155, 225, 93, .25); color: var(--kc-leaf);
}
.kc-acct-note__tile-body { display: flex; flex-direction: column; gap: 4px; font-size: 14px; line-height: 1.5; color: var(--kc-muted); }
.kc-acct-note__tile-body strong { font-family: var(--kc-font-display); font-weight: 600; font-size: 17px; line-height: 1.25; color: var(--kc-cream); }
.kc-content .entry-content .kc-acct-note a.kc-btn { color: var(--kc-ground) !important; }
@media (max-width: 900px) {
  .woocommerce .kc-acct-note ul.kc-acct-note__tiles, .kc-acct-note__tiles { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 640px) {
  .kc-acct-note { padding: 24px 20px; margin-bottom: 32px; }
  .kc-acct-note__tile { padding: 16px; }
  .kc-acct-note .kc-btn { display: flex; justify-content: center; min-height: 48px; align-items: center; }
}

/* ============ 1.3.18 — My account: login first, both in matching KC Noir panels ============ */
.kc-acct-login {
  background: var(--kc-surface); border: 1px solid var(--kc-line); border-radius: var(--kc-radius);
  padding: 36px 40px; margin: 0; color: var(--kc-muted);
}
.kc-acct-login h2 { font-size: clamp(26px, 3vw, 32px); color: var(--kc-cream); margin: 0 0 20px; }
.woocommerce .kc-acct-login form.login, .woocommerce .kc-acct-login form.register {
  border: 0; border-radius: 0; padding: 0; margin: 0; background: none;
}
.woocommerce .kc-acct-login form.login > :last-child { margin-bottom: 0; }
.kc-acct-note { margin: 24px 0 0; }
@media (max-width: 640px) {
  .kc-acct-login { padding: 24px 20px; }
  .kc-acct-note { margin: 20px 0 0; }
}
