/* ==========================================================================
   Koregen — editorial WooCommerce styling (purple / white)
   Tokens come from theme.json presets (--wp--preset--color--*, --font-family--*)
   ========================================================================== */

:root{
  --kg-white:#FFFFFF;
  --kg-lilac-soft:#FBFAFE;
  --kg-lilac:#F4F2FB;
  --kg-border:#E7E4F2;
  --kg-violet:#534AB7;
  --kg-violet-deep:#3B3494;
  --kg-ink:#26215C;
  --kg-text:#211E38;
  --kg-muted:#6B6785;
  --kg-serif:"Fraunces", Georgia, "Times New Roman", serif;
  --kg-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --kg-shadow:0 1px 2px rgba(38,33,92,.04), 0 12px 30px -18px rgba(38,33,92,.22);
  --kg-radius:10px;
}

body{ font-family:var(--kg-sans); color:var(--kg-text); background:var(--kg-white); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6{ font-family:var(--kg-serif); color:var(--kg-ink); font-weight:500; letter-spacing:-.02em; }
a{ color:var(--kg-violet); text-decoration:none; }
a:hover{ color:var(--kg-violet-deep); }
.kg-main{ min-height:50vh; }

/* ---- Header ------------------------------------------------------------- */
.kg-header{ border-bottom:1px solid var(--kg-border); background:var(--kg-white); }
.kg-header__inner{ align-items:center; }
.kg-logo{ display:flex; align-items:center; line-height:0; }
.kg-logo img{ height:52px; width:auto; max-width:none; display:block; }
.kg-logo a{ display:flex; align-items:center; }
.kg-header__right{ gap:1.5rem!important; align-items:center; }
.kg-nav a{ color:var(--kg-text); font-weight:500; }
.kg-nav a:hover{ color:var(--kg-violet); }
.kg-nav .wp-block-navigation-item__content{ padding:.2rem 0; }
.kg-quote-btn a{ background:var(--kg-violet); color:#fff; border-radius:6px; padding:.62rem 1.15rem; font-weight:600; font-size:.95rem; }
.kg-quote-btn a:hover{ background:var(--kg-violet-deep); color:#fff; }

/* ---- Footer ------------------------------------------------------------- */
.kg-footer{ margin-top:5rem; }
.kg-footer a{ color:#D9D5F2; }
.kg-footer a:hover{ color:#fff; }
.kg-footer__logo a,.kg-footer__logo{ font-family:var(--kg-serif)!important; font-weight:600; font-size:1.35rem; color:#fff!important; }
.kg-footer__tag{ color:#C9C4E6; margin-top:.9rem; }
.kg-footer__h{ color:#B7B1DB!important; margin-bottom:.4rem; }
.kg-footer__bottom{ border-top:1px solid rgba(255,255,255,.14); color:#B7B1DB; }
.kg-footer__nav .wp-block-navigation{ gap:.35rem; }

/* ---- Buttons (global woo) ---------------------------------------------- */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.wp-element-button,
.yith-ywraq-add-to-quote .add-request-quote-button,
.single_add_to_cart_button{
  background:var(--kg-violet); color:#fff; border:none; border-radius:6px;
  font-family:var(--kg-sans); font-weight:600; letter-spacing:0; line-height:1.2;
  padding:.85rem 1.6rem; transition:background .15s ease, transform .15s ease;
  text-transform:none; font-size:1rem; cursor:pointer;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.wp-element-button:hover,
.yith-ywraq-add-to-quote .add-request-quote-button:hover,.single_add_to_cart_button:hover{
  background:var(--kg-violet-deep); color:#fff;
}
.woocommerce a.button.kg-ghost, a.button.alt.kg-ghost{ background:transparent; color:var(--kg-violet); box-shadow:inset 0 0 0 1.5px var(--kg-border); }

/* ---- Breadcrumb --------------------------------------------------------- */
.woocommerce-breadcrumb{ font-size:.85rem; color:var(--kg-muted); margin-bottom:1.6rem; letter-spacing:.01em; }
.woocommerce-breadcrumb a{ color:var(--kg-muted); }
.woocommerce-breadcrumb a:hover{ color:var(--kg-violet); }

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */
.single-product div.product{
  display:grid; grid-template-columns:1.02fr .98fr; gap:2.5rem 3.5rem; align-items:start;
}
.single-product div.product .woocommerce-product-gallery{ width:100%!important; float:none; margin:0; grid-column:1; position:sticky; top:1.5rem; }
.single-product div.product .summary{ width:100%!important; float:none; margin:0; grid-column:2; }
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells{ grid-column:1 / -1; }

/* Gallery */
.woocommerce-product-gallery{ border:1px solid var(--kg-border); border-radius:var(--kg-radius); padding:1.25rem; background:var(--kg-lilac-soft); }
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery__image img{ border-radius:8px; background:#fff; }
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{ background:#fff; border-radius:8px; }
.woocommerce-product-gallery ol.flex-control-thumbs{ margin-top:1rem; gap:.6rem; display:flex; padding:0; }
.woocommerce-product-gallery ol.flex-control-thumbs li{ margin:0; width:64px!important; }
.woocommerce-product-gallery ol.flex-control-thumbs img{ border-radius:6px; border:1px solid var(--kg-border); opacity:.7; }
.woocommerce-product-gallery ol.flex-control-thumbs img.flex-active,
.woocommerce-product-gallery ol.flex-control-thumbs img:hover{ opacity:1; border-color:var(--kg-violet); }
.woocommerce-product-gallery__trigger{ background:#fff!important; border:1px solid var(--kg-border); border-radius:50%; }

/* Summary */
.single-product .product_title{ font-size:clamp(2rem,1.4rem+1.8vw,2.9rem); line-height:1.08; margin:.1rem 0 1rem; color:var(--kg-ink); }
.single-product .woocommerce-product-details__short-description{ font-size:1.06rem; line-height:1.66; color:#413C5C; }
.single-product .woocommerce-product-details__short-description p{ margin:0 0 .8rem; }
.single-product .price{ display:none!important; } /* quote-only */

/* Quote button block (YITH) */
.summary .yith-ywraq-add-to-quote{ margin:1.4rem 0 .4rem; }
.summary .yith-ywraq-add-to-quote .add-request-quote-button{ display:inline-flex; align-items:center; gap:.5rem; font-size:1.02rem; padding:.95rem 2rem; }
.summary .quantity{ display:none; } /* quote flow: no quantity on catalogue */

/* Product meta (SKU / category) */
.single-product .product_meta{ margin-top:1.6rem; padding-top:1.2rem; border-top:1px solid var(--kg-border); font-size:.86rem; color:var(--kg-muted); }
.single-product .product_meta > span{ display:block; margin:.25rem 0; }
.single-product .product_meta .sku_wrapper,.single-product .product_meta .posted_in{ color:var(--kg-muted); }
.single-product .product_meta a{ color:var(--kg-violet); }

/* ---- Tabs --------------------------------------------------------------- */
.woocommerce-tabs{ margin-top:3.5rem; }
.woocommerce-tabs ul.tabs{ display:flex; gap:.4rem; margin:0 0 0; padding:0; border-bottom:1px solid var(--kg-border); list-style:none; }
.woocommerce-tabs ul.tabs::before,.woocommerce-tabs ul.tabs::after{ display:none; }
.woocommerce-tabs ul.tabs li{ background:none; border:none; border-radius:0; margin:0; padding:0; }
.woocommerce-tabs ul.tabs li a{ display:block; padding:.85rem 1.1rem; font-family:var(--kg-sans); font-weight:600; font-size:.98rem; color:var(--kg-muted); border-bottom:2px solid transparent; margin-bottom:-1px; }
.woocommerce-tabs ul.tabs li.active a,.woocommerce-tabs ul.tabs li a:hover{ color:var(--kg-ink); border-bottom-color:var(--kg-violet); }
.woocommerce-tabs .panel{ padding-top:2rem; max-width:900px; }
.woocommerce-tabs .panel > h2:first-child{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); } /* hide duplicate "Description" heading */

/* ---- Product description (our editorial content) ----------------------- */
.woocommerce-Tabs-panel--description{ font-size:1.05rem; line-height:1.72; color:var(--kg-text); }
.woocommerce-Tabs-panel--description h2{ font-size:1.55rem; color:var(--kg-violet); margin:2.2rem 0 .9rem; }
.woocommerce-Tabs-panel--description h2:first-child{ margin-top:0; }
.woocommerce-Tabs-panel--description h3{ font-size:1.22rem; color:var(--kg-ink); margin:1.8rem 0 .5rem; padding-left:.9rem; border-left:3px solid var(--kg-violet); }
.woocommerce-Tabs-panel--description h4{ font-size:1rem; color:var(--kg-ink); margin:1.3rem 0 .4rem; font-family:var(--kg-sans); font-weight:700; letter-spacing:.01em; }
.woocommerce-Tabs-panel--description p{ margin:0 0 1rem; }
.woocommerce-Tabs-panel--description strong{ color:var(--kg-ink); }
.woocommerce-Tabs-panel--description ul{ list-style:none; margin:.4rem 0 1.4rem; padding:0; }
.woocommerce-Tabs-panel--description ul li{ position:relative; padding-left:1.4rem; margin:.4rem 0; }
.woocommerce-Tabs-panel--description ul li::before{ content:""; position:absolute; left:.15rem; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--kg-violet); }
.woocommerce-Tabs-panel--description img{ display:block; margin:1.5rem auto; max-width:100%; height:auto; border:1px solid var(--kg-border); border-radius:var(--kg-radius); background:#fff; padding:.6rem; box-shadow:var(--kg-shadow); }

/* ---- Specifications table (product attributes) ------------------------- */
.woocommerce-Tabs-panel--additional_information table.shop_attributes,
table.woocommerce-product-attributes.shop_attributes{
  width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--kg-border);
  border-radius:var(--kg-radius); overflow:hidden; font-size:.98rem;
}
table.shop_attributes th{ background:var(--kg-lilac); color:var(--kg-ink); font-family:var(--kg-sans); font-weight:600; text-align:left; padding:.85rem 1.1rem; width:34%; border-bottom:1px solid var(--kg-border); vertical-align:top; }
table.shop_attributes td{ padding:.85rem 1.1rem; color:var(--kg-text); border-bottom:1px solid var(--kg-border); font-style:normal; }
table.shop_attributes tr:last-child th,table.shop_attributes tr:last-child td{ border-bottom:none; }
table.shop_attributes td p{ margin:0; }

/* ---- Related products header ------------------------------------------- */
.related.products > h2,.upsells.products > h2{ font-size:1.6rem; color:var(--kg-ink); margin:3.5rem 0 1.5rem; }

/* ==========================================================================
   SHOP / CATEGORY ARCHIVE
   ========================================================================== */
.woocommerce-products-header{ margin-bottom:1.6rem; }
.woocommerce-products-header__title,.page-title{ font-size:clamp(2rem,1.5rem+2vw,3rem); color:var(--kg-ink); margin:0 0 .4rem; }
.term-description,.woocommerce-products-header p{ color:var(--kg-muted); max-width:70ch; line-height:1.6; }
.woocommerce-result-count{ color:var(--kg-muted); font-size:.88rem; }
.woocommerce-ordering select{ border:1px solid var(--kg-border); border-radius:6px; padding:.5rem 2rem .5rem .8rem; font-family:var(--kg-sans); color:var(--kg-text); background:#fff; }

/* Grid */
.woocommerce ul.products{ display:grid!important; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.6rem; list-style:none; margin:1.5rem 0 0; padding:0; }
.woocommerce ul.products::before,.woocommerce ul.products::after{ display:none; }
.woocommerce ul.products li.product{ width:auto!important; float:none!important; margin:0!important; background:#fff; border:1px solid var(--kg-border); border-radius:var(--kg-radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.woocommerce ul.products li.product:hover{ transform:translateY(-4px); box-shadow:var(--kg-shadow); border-color:#D9D4EE; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{ display:block; }
.woocommerce ul.products li.product img{ width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--kg-lilac-soft); margin:0; padding:1.4rem; border-bottom:1px solid var(--kg-border); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--kg-serif); font-size:1.18rem; font-weight:500; color:var(--kg-ink); padding:.15rem 1.15rem .2rem; line-height:1.25; }
.woocommerce ul.products li.product .price{ display:none!important; }
.woocommerce ul.products li.product .kg-cat{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.11em; color:var(--kg-muted); padding:1rem 1.15rem 0; }
.woocommerce ul.products li.product > a.button,
.woocommerce ul.products li.product .yith-ywraq-add-to-quote,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .button{ margin:auto 1.15rem 1.15rem; align-self:flex-start; }
.woocommerce ul.products li.product .yith-ywraq-add-to-quote .add-request-quote-button{ font-size:.92rem; padding:.6rem 1.2rem; }
.woocommerce ul.products li.product .onsale,.woocommerce span.onsale{ display:none; }

/* Pagination */
.woocommerce nav.woocommerce-pagination{ margin-top:2.5rem; }
.woocommerce nav.woocommerce-pagination ul{ border:none; gap:.4rem; display:flex; justify-content:center; }
.woocommerce nav.woocommerce-pagination ul li{ border:none; }
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{ border:1px solid var(--kg-border); border-radius:6px; color:var(--kg-text); padding:.5rem .85rem; min-width:auto; }
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--kg-violet); color:#fff; border-color:var(--kg-violet); }

/* Notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error{ border-top-color:var(--kg-violet); border-radius:8px; background:var(--kg-lilac-soft); }
.woocommerce-message::before,.woocommerce-info::before{ color:var(--kg-violet); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .woocommerce ul.products{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:820px){
  .single-product div.product{ grid-template-columns:1fr; gap:2rem; }
  .single-product div.product .woocommerce-product-gallery{ position:static; grid-column:1; }
  .single-product div.product .summary{ grid-column:1; }
  .kg-header__right{ gap:.9rem!important; }
}
@media (max-width:560px){
  .woocommerce ul.products{ grid-template-columns:1fr; }
  .woocommerce-tabs ul.tabs{ overflow-x:auto; }
}

/* ==========================================================================
   SHARED SITE HEADER (Regenerative Archive) — used on every page via parts/header.html
   Plain CSS so it renders identically with or without Tailwind (homepage loads Tailwind).
   ========================================================================== */
:root{
  --kx-primary:#170040; --kx-surface:#fcf9f8; --kx-topbar:#f6f3f2;
  --kx-hair:#e2e8f0; --kx-muted:#494550; --kx-tint:#6950a2; --kx-clinical:#f1f3ff;
  --kx-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --kx-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
.kgh-wrap{ max-width:1240px; margin:0 auto; padding-inline:clamp(20px,5vw,64px); }
/* utility bar (scrolls away) */
.kgh-top{ background:var(--kx-topbar); border-bottom:1px solid var(--kx-hair); }
.kgh-top .kgh-wrap{ display:flex; justify-content:space-between; align-items:center; height:34px;
  font-family:var(--kx-sans); font-size:11px; font-weight:500; letter-spacing:.08em; color:var(--kx-muted); text-transform:uppercase; }
.kgh-top__r{ display:inline-flex; align-items:center; gap:12px; }
.kgh-top .sep{ width:1px; height:12px; background:#cbd5e1; display:inline-block; }

/* Language switcher — inherits the topbar's mono/uppercase treatment. */
.kgh-lang{ display:inline-flex; align-items:center; gap:7px; }
.kgh-lang__sep{ width:1px; height:10px; background:#cbd5e1; display:inline-block; }
.kgh-lang__i{ font-family:var(--kx-sans); font-size:11px; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  color:var(--kx-muted); text-decoration:none; line-height:1; padding:3px 2px; border-radius:3px;
  transition:color .15s ease; }
a.kgh-lang__i:hover,
a.kgh-lang__i:focus-visible{ color:var(--kx-primary); text-decoration:underline; text-underline-offset:3px; }
.kgh-lang__i.is-active{ color:var(--kx-primary); font-weight:600; }
/* No translation yet: visible but inert, so the control never lies about where it leads. */
.kgh-lang__i.is-off{ color:var(--kx-muted); opacity:.4; cursor:not-allowed; }
/* Mobile panel: bigger tap targets, sits under the CTA. */
.kgh-m__lang{ margin-top:14px; padding-top:14px; border-top:1px solid var(--kx-hair); }
.kgh-lang--m{ gap:10px; }
.kgh-lang--m .kgh-lang__i{ font-size:13px; padding:8px 6px; }
.kgh-lang--m .kgh-lang__sep{ height:12px; }
/* FLOATING header (matches Stitch: utility bar scrolls away in flow; header bar is FIXED at top:32px,
   so on scroll it floats with a gap above showing the content behind it) */
/* NB: WP inserts a 1.5rem block-gap via logical margin-block-start on top-level blocks AND flow-group children — zero those */
header.wp-block-template-part{ position:relative; z-index:100; margin:0!important; margin-block-start:0!important; }
.kg-archive-home{ margin:0!important; margin-block-start:0!important; }
.wp-site-blocks > .kg-archive-home{ margin-block-start:0!important; }
.kg-archive-home > *{ margin-block-start:0!important; }
.kgh-top{ position:relative; z-index:105; }
.kgh{ position:fixed; top:32px; left:0; right:0; z-index:100; background:rgba(252,249,248,.92);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); border-bottom:1px solid var(--kx-hair); }
/* classic (non-archive) pages must clear the fixed floating header (~112px) */
.kg-main{ padding-top:7.5rem!important; }
/* logged-in WP admin bar (32px) — float the header below it so it isn't clipped */
.admin-bar .kgh{ top:64px; }
@media screen and (max-width:782px){ .admin-bar .kgh{ top:78px; } }
@media screen and (max-width:600px){ .admin-bar .kgh{ top:32px; } }
.kgh > .kgh-wrap{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; height:80px; }
.kgh-logo{ display:flex; align-items:center; flex:none; line-height:0; }
.kgh-logo img{ height:52px; width:auto; max-width:none; display:block; }
.kgh-nav{ display:flex; align-items:center; gap:30px; margin-left:auto; }
.kgh-nav a{ font-family:var(--kx-sans); font-size:12px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--kx-muted); white-space:nowrap; transition:color .2s ease; }
.kgh-nav a:hover{ color:var(--kx-primary); }
.kgh-cta{ display:inline-flex; align-items:center; justify-content:center; font-family:var(--kx-sans);
  font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#fff;
  background:var(--kx-primary); padding:14px 22px; border-radius:4px; white-space:nowrap; transition:opacity .2s ease; }
.kgh-cta:hover{ opacity:.85; color:#fff; }
/* header search (always-visible inline bar) */
.kgh-search{ position:relative; flex:none; display:flex; align-items:center; width:270px;
  background:#fff; border:1px solid var(--kx-hair); border-radius:999px; padding:0 16px; height:44px;
  transition:border-color .2s ease, box-shadow .2s ease; }
.kgh-search:focus-within{ border-color:var(--kx-tint); box-shadow:0 0 0 3px rgba(105,80,162,.12); }
.kgh-search__icon{ display:inline-flex; align-items:center; justify-content:center; flex:none; color:var(--kx-muted); margin-right:10px; }
.kgh-search__icon svg{ width:18px; height:18px; display:block; }
.kgh-search input[type=search]{ flex:1 1 auto; min-width:0; font-family:var(--kx-sans); font-size:14px;
  border:none; background:transparent; color:var(--kx-primary); outline:none; padding:0; }
.kgh-search input[type=search]::placeholder{ color:var(--kx-muted); }
.kgh-search input[type=search]::-webkit-search-cancel-button{ -webkit-appearance:none; }
/* live typeahead results dropdown */
.kgh-search__results{ position:absolute; right:0; left:0; top:calc(100% + 10px); z-index:110;
  background:var(--kx-surface); border:1px solid var(--kx-hair); border-radius:12px; padding:8px;
  box-shadow:0 16px 40px -16px rgba(23,0,64,.28); max-height:360px; overflow-y:auto; }
.kgh-m__results{ margin-bottom:6px; max-height:300px; overflow-y:auto; }
.kgh-live__item{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:6px; text-decoration:none; }
.kgh-live__item:hover{ background:var(--kx-clinical); }
.kgh-live__item img{ width:42px; height:42px; flex:none; object-fit:contain; background:#fff;
  border:1px solid var(--kx-hair); border-radius:4px; mix-blend-mode:multiply; }
.kgh-live__t{ display:flex; flex-direction:column; min-width:0; }
.kgh-live__n{ font-family:var(--kx-sans); font-size:13px; font-weight:600; color:var(--kx-primary);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kgh-live__m{ font-family:var(--kx-mono); font-size:11px; color:var(--kx-muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.kgh-live__empty{ padding:14px 8px; font-family:var(--kx-mono); font-size:12px; color:var(--kx-muted); text-align:center; }
/* search inside mobile menu panel */
.kgh-m__search{ display:flex; margin-bottom:6px; }
.kgh-m__search input[type=search]{ width:100%; font-family:var(--kx-sans); font-size:14px; border:1px solid var(--kx-hair);
  border-radius:4px; padding:11px 12px; color:var(--kx-primary); background:#fff; outline:none; }
.kgh-m__search input[type=search]:focus{ border-color:var(--kx-tint); }
/* mobile menu (pure CSS, no JS) */
.kgh-m{ display:none; margin-left:auto; position:relative; }
.kgh-m > summary{ list-style:none; cursor:pointer; font-family:var(--kx-sans); font-size:12px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--kx-primary); padding:12px 4px; }
.kgh-m > summary::-webkit-details-marker{ display:none; }
.kgh-m__panel{ position:absolute; right:0; top:100%; min-width:230px; display:flex; flex-direction:column;
  background:var(--kx-surface); border:1px solid var(--kx-hair); border-radius:8px; padding:8px;
  box-shadow:0 16px 40px -16px rgba(23,0,64,.28); }
.kgh-m__panel a{ font-family:var(--kx-sans); font-size:13px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--kx-muted); padding:11px 12px; border-radius:4px; }
.kgh-m__panel a:hover{ background:var(--kx-clinical); color:var(--kx-primary); }
.kgh-m__panel .kgh-cta{ margin-top:6px; }
@media (max-width:900px){
  .kgh-nav{ display:none; }
  .kgh > .kgh-wrap > .kgh-cta{ display:none; }
  .kgh-search{ display:none; }
  .kgh-m{ display:block; }
  .kgh-top__l{ display:none; }
}

/* ==========================================================================
   FOOTER (parts/footer.html) — Tailwind-independent, identical on every page
   ========================================================================== */
.kgf{ background:var(--kx-topbar); border-top:1px solid var(--kx-hair); padding:64px 0 40px; }
.kgf-wrap{ max-width:1240px; margin:0 auto; padding-inline:clamp(20px,5vw,64px);
  display:grid; grid-template-columns:1.25fr 2fr; gap:48px; }
.kgf-brand{ display:flex; flex-direction:column; }
.kgf-logo{ font-family:var(--kg-serif); font-size:26px; font-weight:500; color:var(--kx-primary); letter-spacing:-.01em; line-height:1; }
.kgf-logo:hover{ color:var(--kx-primary); opacity:.82; }
.kgf-tag{ font-family:var(--kx-sans); font-size:15px; line-height:1.6; color:var(--kx-muted); max-width:20rem; margin:16px 0 28px; }
.kgf-copy{ font-family:var(--kx-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--kx-muted); margin-top:auto; }
.kgf-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.kgf-h{ font-family:var(--kx-sans); font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--kx-primary); margin:0 0 20px; }
.kgf-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.kgf-col a{ font-family:var(--kx-sans); font-size:15px; color:var(--kx-muted); transition:color .2s ease; }
.kgf-col a:hover{ color:var(--kx-primary); }
.kgf-quote{ display:inline-block; margin-top:8px; border-bottom:1px solid var(--kx-primary); padding-bottom:4px;
  font-size:12px!important; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--kx-primary)!important; }
.kgf-quote:hover{ opacity:.8; }
@media (max-width:860px){
  .kgf-wrap{ grid-template-columns:1fr; gap:40px; }
  .kgf-cols{ grid-template-columns:repeat(3,1fr); gap:32px 24px; }
}
@media (max-width:560px){ .kgf-cols{ grid-template-columns:1fr 1fr; } }

/* ==========================================================================
   HOMEPAGE (front-page.html) — scoped under .kh-home
   ========================================================================== */
.kh-home{ padding-left:0!important; padding-right:0!important; }
.kh-home *{ box-sizing:border-box; }
.kh-wrap{ max-width:1240px; margin:0 auto; padding-inline:clamp(1.25rem,4vw,2.5rem); }
.kh-wrap--narrow{ max-width:820px; }
.kh-home section{ width:100%; }

/* shared bits */
.kh-eyebrow{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--kg-sans); font-size:.8rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--kg-violet); }
.kh-eyebrow i{ width:26px; height:1px; background:var(--kg-violet); opacity:.55; display:inline-block; }
.kh-lead{ color:var(--kg-muted); font-size:1.06rem; line-height:1.6; margin-top:.7rem; max-width:44ch; }
.kh-btn{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--kg-sans); font-weight:600; font-size:1rem; line-height:1; padding:.95rem 1.7rem; border-radius:8px; transition:background .16s ease, box-shadow .16s ease, color .16s ease, transform .16s ease; cursor:pointer; }
.kh-btn--solid{ background:var(--kg-violet); color:#fff; }
.kh-btn--solid:hover{ background:var(--kg-violet-deep); color:#fff; }
.kh-btn--ghost{ background:#fff; color:var(--kg-ink); box-shadow:inset 0 0 0 1.5px var(--kg-border); }
.kh-btn--ghost:hover{ box-shadow:inset 0 0 0 1.5px var(--kg-violet); color:var(--kg-violet); }
.kh-btn--onviolet{ background:#fff; color:var(--kg-violet-deep); }
.kh-btn--onviolet:hover{ background:var(--kg-lilac); color:var(--kg-violet-deep); }
.kh-textlink{ font-family:var(--kg-sans); font-weight:600; font-size:.95rem; color:var(--kg-violet); white-space:nowrap; }
.kh-textlink:hover{ color:var(--kg-violet-deep); }
.kh-sec{ padding-block:clamp(3.5rem,6vw,6rem); }
.kh-sec--tint{ background:var(--kg-lilac-soft); border-block:1px solid var(--kg-border); }
.kh-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; flex-wrap:wrap; margin-bottom:2.6rem; }
.kh-head--center{ justify-content:center; text-align:center; }
.kh-head--center .kh-lead{ margin-inline:auto; }
.kh-head h2, .kh-tech__head h2{ font-size:clamp(1.8rem,1.3rem+1.9vw,2.6rem); line-height:1.12; color:var(--kg-ink); max-width:18ch; }
.kh-head--center h2{ max-width:none; }

/* hero */
.kh-hero{ padding-block:clamp(3rem,5vw,5.5rem) clamp(2.5rem,4vw,4rem); }
.kh-hero__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.kh-hero__title{ font-size:clamp(2.3rem,1.5rem+3.3vw,3.9rem); line-height:1.06; color:var(--kg-ink); margin:1.3rem 0 0; letter-spacing:-.025em; }
.kh-hero__title em{ font-style:italic; color:var(--kg-violet); }
.kh-hero__sub{ font-size:1.14rem; line-height:1.62; color:#4A4568; margin:1.4rem 0 0; max-width:38ch; }
.kh-hero__cta{ display:flex; gap:.9rem; flex-wrap:wrap; margin-top:2rem; }
.kh-hero__trust{ margin-top:1.5rem; font-size:.9rem; color:var(--kg-muted); }
.kh-hero__media{ position:relative; }
.kh-hero__panel{ background:var(--kg-lilac-soft); border:1px solid var(--kg-border); border-radius:16px; aspect-ratio:1/.94; display:grid; place-items:center; padding:2.6rem; box-shadow:var(--kg-shadow); }
.kh-hero__panel img{ max-height:100%; max-width:100%; width:auto; object-fit:contain; mix-blend-mode:multiply; }
.kh-hero__cap{ display:block; margin-top:.9rem; font-size:.82rem; color:var(--kg-muted); text-align:center; letter-spacing:.01em; }

/* value strip */
.kh-values{ background:var(--kg-lilac-soft); border-block:1px solid var(--kg-border); }
.kh-values__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.kh-val{ padding:2.4rem clamp(1rem,2vw,1.8rem); border-right:1px solid var(--kg-border); }
.kh-val:last-child{ border-right:none; }
.kh-val__ic{ display:inline-flex; color:var(--kg-violet); }
.kh-val__ic svg{ width:26px; height:26px; }
.kh-val h3{ font-size:1.16rem; color:var(--kg-ink); margin:1rem 0 .45rem; }
.kh-val p{ font-size:.92rem; line-height:1.5; color:var(--kg-muted); margin:0; }

/* catalogue cards */
.kh-cats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.kh-cat{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--kg-border); border-radius:var(--kg-radius); padding:1.6rem 1.5rem; min-height:210px; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.kh-cat:hover{ transform:translateY(-4px); box-shadow:var(--kg-shadow); border-color:#D6D0EE; }
.kh-cat h3{ font-size:1.3rem; color:var(--kg-ink); margin:0 0 .4rem; }
.kh-cat p{ font-size:.92rem; line-height:1.5; color:var(--kg-muted); margin:0; }
.kh-badge{ align-self:flex-start; font-family:var(--kg-sans); font-size:.74rem; font-weight:600; letter-spacing:.02em; color:var(--kg-violet-deep); background:var(--kg-lilac); padding:.32rem .7rem; border-radius:20px; margin-bottom:1.1rem; }
.kh-badge--soon{ color:var(--kg-muted); background:#F0EEF6; }
.kh-cat__go{ margin-top:auto; padding-top:1.1rem; font-family:var(--kg-sans); font-weight:600; font-size:.9rem; color:var(--kg-violet); }
.kh-cat--soon{ cursor:default; }
.kh-cat--soon:hover{ transform:none; box-shadow:none; border-color:var(--kg-border); }
.kh-cat--soon h3{ color:var(--kg-muted); }
.kh-cat--soon .kh-cat__go{ color:var(--kg-muted); }

/* featured products */
.kh-prods{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.kh-prod{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--kg-border); border-radius:var(--kg-radius); overflow:hidden; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.kh-prod:hover{ transform:translateY(-4px); box-shadow:var(--kg-shadow); border-color:#D6D0EE; }
.kh-prod__img{ aspect-ratio:1.15/1; background:#fff; display:grid; place-items:center; padding:1.9rem; border-bottom:1px solid var(--kg-border); }
.kh-prod__img img{ max-height:100%; max-width:100%; width:auto; object-fit:contain; mix-blend-mode:multiply; }
.kh-prod__body{ padding:1.15rem 1.3rem 1.35rem; }
.kh-prod__cat{ font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; color:var(--kg-muted); font-weight:600; }
.kh-prod h3{ font-size:1.24rem; color:var(--kg-ink); margin:.4rem 0 .35rem; }
.kh-prod__spec{ font-size:.9rem; color:var(--kg-muted); margin:0; }
.kh-prod__q{ display:inline-block; margin-top:1rem; font-family:var(--kg-sans); font-weight:600; font-size:.9rem; color:var(--kg-violet); }

/* technologies */
.kh-tech__grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.kh-tech__head{ position:sticky; top:6rem; }
.kh-tech__head .kh-lead{ max-width:26ch; }
.kh-trow{ display:grid; grid-template-columns:auto 1fr; gap:1.5rem; padding:1.7rem 0; border-top:1px solid var(--kg-border); }
.kh-tech__list .kh-trow:last-child{ border-bottom:1px solid var(--kg-border); }
.kh-ix{ display:grid; place-items:center; width:46px; height:46px; border-radius:12px; background:var(--kg-lilac); color:var(--kg-violet-deep); font-family:var(--kg-sans); font-weight:700; font-size:.85rem; letter-spacing:.04em; }
.kh-trow h3{ font-size:1.28rem; color:var(--kg-ink); margin:0 0 .45rem; }
.kh-trow p{ font-size:1rem; line-height:1.58; color:#4A4568; margin:0; max-width:52ch; }

/* why */
.kh-whygrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.kh-why__i{ padding-top:1.3rem; border-top:2px solid var(--kg-violet); }
.kh-why__i h3{ font-size:1.16rem; color:var(--kg-ink); margin:0 0 .5rem; }
.kh-why__i p{ font-size:.94rem; line-height:1.55; color:var(--kg-muted); margin:0; }

/* faq */
.kh-faq__list{ margin-top:.5rem; }
.kh-faq__list details{ border:1px solid var(--kg-border); border-radius:10px; background:#fff; margin-bottom:.8rem; padding:0 1.4rem; }
.kh-faq__list summary{ list-style:none; cursor:pointer; padding:1.15rem 0; font-family:var(--kg-sans); font-weight:600; font-size:1.05rem; color:var(--kg-ink); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.kh-faq__list summary::-webkit-details-marker{ display:none; }
.kh-pm{ position:relative; width:16px; height:16px; flex:none; }
.kh-pm::before,.kh-pm::after{ content:""; position:absolute; background:var(--kg-violet); transition:transform .2s ease; }
.kh-pm::before{ top:7px; left:0; width:16px; height:2px; }
.kh-pm::after{ left:7px; top:0; width:2px; height:16px; }
.kh-faq__list details[open] .kh-pm::after{ transform:scaleY(0); }
.kh-faq__list details p{ margin:0; padding:0 0 1.3rem; font-size:1rem; line-height:1.6; color:#4A4568; }

/* cta band */
.kh-cta{ background:var(--kg-violet-deep); color:#fff; text-align:center; padding-block:clamp(3.5rem,6vw,5.5rem); }
.kh-cta h2{ color:#fff; font-size:clamp(1.9rem,1.3rem+2.2vw,2.8rem); line-height:1.14; max-width:20ch; margin:0 auto .8rem; }
.kh-cta p{ color:#D7D3F0; font-size:1.08rem; margin:0 auto 1.8rem; }

/* homepage responsive */
@media (max-width:1024px){
  .kh-prods{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .kh-hero__grid{ grid-template-columns:1fr; }
  .kh-hero__media{ order:-1; max-width:460px; }
  .kh-values__grid{ grid-template-columns:1fr 1fr; }
  .kh-val:nth-child(2){ border-right:none; }
  .kh-val:nth-child(-n+2){ border-bottom:1px solid var(--kg-border); }
  .kh-cats,.kh-whygrid{ grid-template-columns:1fr 1fr; }
  .kh-tech__grid{ grid-template-columns:1fr; }
  .kh-tech__head{ position:static; }
}
@media (max-width:560px){
  .kh-values__grid,.kh-cats,.kh-prods,.kh-whygrid{ grid-template-columns:1fr; }
  .kh-val{ border-right:none; border-bottom:1px solid var(--kg-border); }
  .kh-val:last-child{ border-bottom:none; }
  .kh-head{ align-items:flex-start; }
}
