/* =========================================================================
   Kwin Solar — theme.css  v2
   Minimal warm-cream system. Oxblood is a structural accent only: it appears
   in the dark promo band, the footer, and dark pill buttons. Nothing else.
   ========================================================================= */

:root{
  /* Surfaces */
  --kw-bg:        #FDF6EF;
  --kw-card:      #FFFFFF;
  --kw-tint:      #F7EFE6;
  --kw-line:      #EFE4DA;
  --kw-line-soft: #F5EDE5;

  /* Text */
  --kw-ink:       #2A1E1A;
  --kw-body:      #6B5E58;
  --kw-muted:     #94867F;

  /* Brand — used sparingly */
  --kw-maroon:      #3C1213;
  --kw-maroon-900:  #2A0C0D;
  --kw-maroon-600:  #562022;
  --kw-yellow:      #FFDD00;
  --kw-yellow-600:  #EBCB00;
  --kw-yellow-tint: #FFF8D6;

  /* Status */
  --kw-sale:    #C0392B;
  --kw-success: #2E7D4F;

  /* Type */
  --kw-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Metrics */
  --kw-container: 1240px;
  --kw-gutter: 20px;
  --kw-r-sm: 10px;
  --kw-r:    16px;
  --kw-r-lg: 24px;
  --kw-r-pill: 999px;
  --kw-shadow: 0 1px 3px rgba(42,30,26,.04), 0 8px 24px rgba(42,30,26,.05);
  --kw-shadow-lg: 0 18px 44px rgba(42,30,26,.10);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
body{
  margin:0; background:var(--kw-bg); color:var(--kw-body);
  font-family:var(--kw-font); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:var(--kw-ink); text-decoration:none; }
h1,h2,h3,h4,h5,h6{
  font-family:var(--kw-font); color:var(--kw-ink);
  font-weight:800; line-height:1.15; letter-spacing:-.02em; margin:0 0 .5em;
}
h1{ font-size:clamp(2.1rem,4.6vw,3.4rem); }
h2{ font-size:clamp(1.6rem,3vw,2.2rem); }
h3{ font-size:1.15rem; font-weight:700; }
p{ margin:0 0 1rem; }
ul,ol{ margin:0 0 1rem; padding-left:1.2em; }
:focus-visible{ outline:3px solid var(--kw-ink); outline-offset:2px; border-radius:6px; }

.kw-container{ width:100%; max-width:var(--kw-container); margin-inline:auto; padding-inline:var(--kw-gutter); }
.kw-narrow{ max-width:820px; }
.kw-section{ padding-block:64px; }
.kw-section--sm{ padding-block:40px; }
.screen-reader-text{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); white-space:nowrap; }
.skip-link:focus{ position:fixed; top:12px; left:12px; z-index:9999; width:auto; height:auto; clip:auto; clip-path:none; background:var(--kw-yellow); color:var(--kw-maroon); padding:12px 18px; border-radius:8px; font-weight:700; }

/* ---------- Buttons ---------- */
.kw-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:700; font-size:.92rem; line-height:1; padding:14px 24px;
  border-radius:var(--kw-r-pill); border:1.5px solid transparent; cursor:pointer;
  transition:background-color .18s, color .18s, border-color .18s;
  font-family:inherit; text-align:center;
}
.kw-btn--primary{ background:var(--kw-yellow); color:var(--kw-maroon); }
.kw-btn--primary:hover{ background:var(--kw-yellow-600); }
.kw-btn--dark{ background:var(--kw-maroon); color:#fff; }
.kw-btn--dark:hover{ background:var(--kw-maroon-600); color:#fff; }
.kw-btn--ghost{ background:transparent; color:var(--kw-ink); border-color:var(--kw-line); }
.kw-btn--ghost:hover{ border-color:var(--kw-ink); }
.kw-btn--onDark{ background:var(--kw-yellow); color:var(--kw-maroon); }
.kw-btn--sm{ padding:10px 18px; font-size:.84rem; }
.kw-btn--block{ width:100%; }
.kw-btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* ---------- Header ---------- */
.kw-header{ position:sticky; top:0; z-index:200; background:var(--kw-bg); }
.kw-header__bar{ display:flex; align-items:center; gap:24px; min-height:76px; }
.kw-brand{ display:flex; align-items:center; gap:10px; margin-right:auto; }
.kw-brand img{ max-height:46px; width:auto; border-radius:8px; }
.kw-brand__text{ font-weight:800; font-size:1.2rem; letter-spacing:-.03em; color:var(--kw-ink); }
.kw-nav ul{ display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.kw-nav a{ font-size:.93rem; font-weight:500; color:var(--kw-body); padding-block:6px; display:inline-block; }
.kw-nav a:hover{ color:var(--kw-ink); }
.kw-nav .current-menu-item>a,.kw-nav .current_page_item>a{ color:var(--kw-ink); font-weight:700; }
.kw-nav li{ position:relative; }
.kw-nav .sub-menu{
  position:absolute; top:100%; left:0; min-width:220px; flex-direction:column; gap:0;
  background:var(--kw-card); border:1px solid var(--kw-line); border-radius:var(--kw-r-sm);
  box-shadow:var(--kw-shadow); padding:8px; opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .16s, transform .16s, visibility .16s;
}
.kw-nav li:hover>.sub-menu,.kw-nav li:focus-within>.sub-menu{ opacity:1; visibility:visible; transform:none; }
.kw-nav .sub-menu a{ display:block; padding:9px 12px; border-radius:6px; font-size:.88rem; }
.kw-nav .sub-menu a:hover{ background:var(--kw-tint); }

.kw-header__actions{ display:flex; align-items:center; gap:10px; }
.kw-iconbtn{
  width:44px; height:44px; border-radius:var(--kw-r-pill); display:grid; place-items:center;
  background:var(--kw-card); border:1px solid var(--kw-line); color:var(--kw-ink); position:relative;
  cursor:pointer;
}
.kw-iconbtn:hover{ border-color:var(--kw-ink); }
.kw-count{
  position:absolute; top:-3px; right:-3px; min-width:19px; height:19px; padding:0 5px;
  display:grid; place-items:center; border-radius:var(--kw-r-pill);
  background:var(--kw-maroon); color:var(--kw-yellow); font-size:.68rem; font-weight:800;
}
.kw-burger{ display:none; }

/* Search overlay */
.kw-searchbar{ display:none; padding-bottom:16px; }
.kw-searchbar.is-open{ display:block; }

/* Drawer */
.kw-drawer{
  position:fixed; inset:0 0 0 auto; width:min(340px,88vw); background:var(--kw-card);
  z-index:400; transform:translateX(100%); transition:transform .26s; padding:20px; overflow-y:auto;
}
.kw-drawer.is-open{ transform:none; }
.kw-drawer ul{ list-style:none; margin:16px 0 0; padding:0; }
.kw-drawer li{ border-bottom:1px solid var(--kw-line); }
.kw-drawer a{ display:block; padding:13px 2px; font-weight:600; }
.kw-drawer .sub-menu{ margin:0 0 8px 12px; }
.kw-drawer .sub-menu a{ font-weight:400; font-size:.9rem; color:var(--kw-muted); padding:9px 2px; }
.kw-overlay{ position:fixed; inset:0; background:rgba(42,30,26,.45); z-index:390; opacity:0; visibility:hidden; transition:opacity .2s,visibility .2s; }
.kw-overlay.is-open{ opacity:1; visibility:visible; }

/* ---------- Hero ---------- */
.kw-hero{ padding-block:8px 0; }
.kw-hero__inner{ display:grid; grid-template-columns:1fr 1.15fr; gap:40px; align-items:center; }
.kw-hero__copy h1{ margin-bottom:.35em; }
.kw-hero__copy h1 em{ font-style:normal; color:var(--kw-maroon); }
.kw-hero__sub{ font-size:1.02rem; max-width:42ch; margin-bottom:1.7rem; }
.kw-hero__actions{ display:flex; gap:12px; flex-wrap:wrap; }
.kw-hero__media{
  border-radius:var(--kw-r-lg) var(--kw-r-lg) var(--kw-r-lg) 120px;
  overflow:hidden; aspect-ratio:4/3; background:var(--kw-tint);
}
.kw-hero__media img{ width:100%; height:100%; object-fit:cover; }
.kw-hero__stats{ display:flex; gap:30px; margin-top:28px; flex-wrap:wrap; }
.kw-hero__stat b{ display:block; font-size:1.5rem; color:var(--kw-ink); letter-spacing:-.02em; }
.kw-hero__stat span{ font-size:.82rem; color:var(--kw-muted); }

/* ---------- Assurance strip (one white card, dividers) ---------- */
.kw-assure{
  background:var(--kw-card); border-radius:var(--kw-r); box-shadow:var(--kw-shadow);
  display:grid; grid-template-columns:repeat(3,1fr); margin-top:44px;
}
.kw-assure__item{ display:flex; align-items:center; gap:14px; padding:24px 26px; }
.kw-assure__item + .kw-assure__item{ border-left:1px solid var(--kw-line); }
.kw-assure__icon{
  flex:0 0 46px; width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
  background:var(--kw-yellow-tint); color:var(--kw-maroon);
}
.kw-assure__item b{ display:block; color:var(--kw-ink); font-size:.95rem; }
.kw-assure__item span{ font-size:.82rem; color:var(--kw-muted); }

/* ---------- Centred section heading with rules ---------- */
.kw-h2{ display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:8px; }
.kw-h2::before,.kw-h2::after{ content:""; height:1.5px; width:38px; background:var(--kw-yellow-600); }
.kw-h2 h2{ margin:0; }
.kw-sub{ text-align:center; color:var(--kw-muted); max-width:56ch; margin:0 auto 34px; font-size:.94rem; }
.kw-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:26px; }
.kw-head p{ margin:0; color:var(--kw-muted); font-size:.92rem; }
.kw-head h2{ margin:0 0 4px; }

/* ---------- Product cards ---------- */
.kw-grid{ display:grid; gap:20px; }
.kw-grid--2{ grid-template-columns:repeat(2,1fr); }
.kw-grid--3{ grid-template-columns:repeat(3,1fr); }
.kw-grid--4{ grid-template-columns:repeat(4,1fr); }

.kw-card{
  background:var(--kw-card); border-radius:var(--kw-r); overflow:hidden;
  box-shadow:var(--kw-shadow); display:flex; flex-direction:column; position:relative;
  transition:box-shadow .2s, transform .2s;
}
.kw-card:hover{ box-shadow:var(--kw-shadow-lg); transform:translateY(-2px); }
.kw-card__media{ aspect-ratio:1/1; background:var(--kw-tint); overflow:hidden; display:block; }
.kw-card__media img{ width:100%; height:100%; object-fit:cover; }
.kw-card__body{ padding:16px 18px 18px; display:flex; flex-direction:column; flex:1; }
.kw-card__brand{ font-size:.72rem; font-weight:700; letter-spacing:.06em; color:var(--kw-muted); margin-bottom:5px; }
.kw-card__title{ font-size:.96rem; font-weight:700; color:var(--kw-ink); margin:0 0 8px; line-height:1.3; }
.kw-card__title a{ color:inherit; }
.kw-card__rating{ display:flex; align-items:center; gap:5px; margin-bottom:8px; font-size:.76rem; color:var(--kw-muted); }
.kw-card__stars{ display:flex; gap:1px; color:var(--kw-yellow-600); }
.kw-card__stars svg{ fill:currentColor; }
.kw-card__price{ font-size:1.02rem; font-weight:800; color:var(--kw-ink); margin-bottom:14px; letter-spacing:-.01em; }
.kw-card__price del{ font-size:.84rem; font-weight:500; color:var(--kw-muted); margin-left:6px; }
.kw-card__price .kw-was{ color:var(--kw-sale); }
.kw-card__foot{ margin-top:auto; display:flex; gap:8px; align-items:center; }
.kw-card__foot .kw-btn{ flex:1; }
.kw-badge{
  position:absolute; top:12px; left:12px; z-index:2; padding:5px 11px; border-radius:var(--kw-r-pill);
  font-size:.68rem; font-weight:800; letter-spacing:.04em; background:var(--kw-ink); color:#fff;
}
.kw-badge--sale{ background:var(--kw-sale); }
.kw-badge--new{ background:var(--kw-success); }
.kw-fav{
  width:38px; height:38px; flex:0 0 38px; border-radius:var(--kw-r-pill); display:grid; place-items:center;
  border:1px solid var(--kw-line); background:transparent; color:var(--kw-muted); cursor:pointer;
}
.kw-fav:hover,.kw-fav.is-on{ color:var(--kw-sale); border-color:var(--kw-sale); }
.kw-fav.is-on svg{ fill:currentColor; }
.kw-stock{ font-size:.76rem; color:var(--kw-success); font-weight:600; margin-bottom:10px; }
.kw-stock--out{ color:var(--kw-sale); }

/* ---------- Category cards ---------- */
.kw-cat{
  background:var(--kw-card); border-radius:var(--kw-r); overflow:hidden; box-shadow:var(--kw-shadow);
  display:block; transition:box-shadow .2s, transform .2s;
}
.kw-cat:hover{ box-shadow:var(--kw-shadow-lg); transform:translateY(-2px); }
.kw-cat__media{ aspect-ratio:16/11; background:var(--kw-tint); overflow:hidden; }
.kw-cat__media img{ width:100%; height:100%; object-fit:cover; }
.kw-cat__body{ padding:18px; text-align:center; }
.kw-cat__body b{ display:block; font-size:.95rem; font-weight:800; letter-spacing:.02em; color:var(--kw-ink); }
.kw-cat__body span{ font-size:.83rem; color:var(--kw-muted); }
/* wide variant, as in the shop reference */
.kw-cat--wide{ display:flex; align-items:center; gap:18px; padding:16px 20px; text-align:left; }
.kw-cat--wide .kw-cat__media{ flex:0 0 88px; width:88px; aspect-ratio:1/1; border-radius:12px; }
.kw-cat--wide .kw-cat__body{ padding:0; text-align:left; }

/* ---------- Dark promo band (the one bold moment) ---------- */
.kw-promo{ background:var(--kw-maroon); border-radius:var(--kw-r-lg); padding:38px; color:#EFE2E0; }
.kw-promo__inner{ display:grid; grid-template-columns:1fr 1.5fr; gap:34px; align-items:center; }
.kw-promo h2{ color:#fff; }
.kw-promo p{ color:#D6C4C1; font-size:.94rem; }
.kw-promo__cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.kw-promo__card{ background:var(--kw-card); border-radius:var(--kw-r); overflow:hidden; position:relative; }
.kw-promo__card img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.kw-promo__card b{ display:block; padding:14px 12px; text-align:center; font-size:.85rem; color:var(--kw-ink); }
.kw-promo__pill{
  position:absolute; top:calc(100% - 84px); left:50%; transform:translateX(-50%);
  width:40px; height:40px; border-radius:var(--kw-r-pill); background:var(--kw-yellow);
  color:var(--kw-maroon); display:grid; place-items:center;
}

/* ---------- Tabs ---------- */
.kw-tabs{ display:flex; justify-content:center; gap:8px; margin-bottom:28px; flex-wrap:wrap; }
.kw-tab{
  background:transparent; border:0; font-family:inherit; font-size:.92rem; font-weight:600;
  color:var(--kw-muted); padding:10px 18px; border-radius:var(--kw-r-pill); cursor:pointer;
}
.kw-tab:hover{ color:var(--kw-ink); }
.kw-tab.is-active{ background:var(--kw-card); color:var(--kw-ink); box-shadow:var(--kw-shadow); }
.kw-tabpanel[hidden]{ display:none; }

/* ---------- Brand strip ---------- */
.kw-brands{
  background:var(--kw-card); border-radius:var(--kw-r); padding:22px;
  display:grid; grid-template-columns:repeat(6,1fr); gap:14px; align-items:center;
}
.kw-brands span{
  text-align:center; font-size:.8rem; font-weight:800; letter-spacing:.08em;
  color:var(--kw-muted); text-transform:uppercase;
}

/* ---------- Blog ---------- */
.kw-post{ background:var(--kw-card); border-radius:var(--kw-r); overflow:hidden; box-shadow:var(--kw-shadow); }
.kw-post__media{ aspect-ratio:16/10; background:var(--kw-tint); overflow:hidden; display:block; }
.kw-post__media img{ width:100%; height:100%; object-fit:cover; }
.kw-post__body{ padding:18px 20px 22px; }
.kw-post__meta{ font-size:.76rem; color:var(--kw-muted); margin-bottom:7px; }
.kw-post h3{ font-size:1.05rem; margin-bottom:.4em; }
.kw-post p{ font-size:.88rem; color:var(--kw-muted); margin:0; }

/* ---------- Page header + entry ---------- */
.kw-pagehead{ padding-block:46px 10px; }
.kw-crumb{ font-size:.82rem; color:var(--kw-muted); margin-bottom:8px; }
.kw-crumb a{ color:var(--kw-muted); }
.kw-pagehead h1{ margin-bottom:.2em; }
.kw-pagehead p{ color:var(--kw-muted); max-width:62ch; margin:0; }
.kw-entry{ background:var(--kw-card); border-radius:var(--kw-r); padding:36px; box-shadow:var(--kw-shadow); }
.kw-entry > *{ max-width:70ch; }
.kw-entry h2{ margin-top:1.6em; font-size:1.4rem; }
.kw-entry h3{ margin-top:1.4em; }
.kw-entry img{ border-radius:var(--kw-r-sm); }
.kw-entry blockquote{ border-left:3px solid var(--kw-yellow); margin:1.5em 0; padding-left:18px; color:var(--kw-ink); }
.kw-entry table{ width:100%; border-collapse:collapse; font-size:.92rem; }
.kw-entry th,.kw-entry td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--kw-line); }
.kw-entry th{ color:var(--kw-ink); font-weight:700; }

.kw-layout{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:36px; align-items:start; }
.kw-layout--right{ grid-template-columns:minmax(0,1fr) 300px; }
.kw-layout--full{ grid-template-columns:minmax(0,1fr); }

/* ---------- Shop sidebar / toolbar ---------- */
.kw-filters{ background:var(--kw-card); border-radius:var(--kw-r); padding:22px; box-shadow:var(--kw-shadow); position:sticky; top:96px; }
.kw-filters h3{ font-size:.85rem; letter-spacing:.05em; text-transform:uppercase; color:var(--kw-muted); margin:0 0 12px; }
.kw-filters + .kw-filters{ margin-top:18px; }
.kw-filters ul{ list-style:none; margin:0; padding:0; }
.kw-filters li a{ display:flex; justify-content:space-between; gap:10px; padding:8px 0; font-size:.9rem; color:var(--kw-body); }
.kw-filters li a:hover,.kw-filters li.is-active a{ color:var(--kw-ink); font-weight:700; }
.kw-filters li span{ color:var(--kw-muted); font-size:.8rem; }
.kw-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
.kw-toolbar p{ margin:0; font-size:.88rem; color:var(--kw-muted); }
.kw-toolbar select{ width:auto; min-width:190px; }

/* ---------- Single product ---------- */
.kw-product{ display:grid; grid-template-columns:1.1fr 1fr; gap:44px; align-items:start; }
.kw-gallery__main{ border-radius:var(--kw-r); overflow:hidden; background:var(--kw-card); aspect-ratio:1/1; }
.kw-gallery__main img{ width:100%; height:100%; object-fit:cover; }
.kw-gallery__thumbs{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:10px; }
.kw-gallery__thumbs button{ padding:0; border:2px solid transparent; border-radius:var(--kw-r-sm); overflow:hidden; background:var(--kw-card); cursor:pointer; }
.kw-gallery__thumbs button.is-active{ border-color:var(--kw-ink); }
.kw-gallery__thumbs img{ aspect-ratio:1/1; object-fit:cover; }
.kw-summary h1{ font-size:clamp(1.6rem,3vw,2.2rem); }
.kw-price{ font-size:1.8rem; font-weight:800; color:var(--kw-ink); letter-spacing:-.02em; margin-bottom:6px; }
.kw-price del{ font-size:1.05rem; font-weight:500; color:var(--kw-muted); margin-left:10px; }
.kw-addtocart{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:22px 0; }
.kw-qty{ display:flex; align-items:center; border:1px solid var(--kw-line); border-radius:var(--kw-r-pill); background:var(--kw-card); }
.kw-qty button{ width:42px; height:46px; border:0; background:transparent; font-size:1.2rem; cursor:pointer; color:var(--kw-ink); font-family:inherit; }
.kw-qty input{ width:52px; border:0; text-align:center; padding:0; font-weight:700; background:transparent; font-family:inherit; }
.kw-qty input:focus{ box-shadow:none; }
.kw-specs{ width:100%; border-collapse:collapse; font-size:.9rem; margin-top:18px; }
.kw-specs th,.kw-specs td{ text-align:left; padding:9px 0; border-bottom:1px solid var(--kw-line); }
.kw-specs th{ color:var(--kw-muted); font-weight:500; width:42%; }
.kw-trust{ list-style:none; padding:0; margin:20px 0 0; display:grid; gap:9px; }
.kw-trust li{ position:relative; padding-left:26px; font-size:.87rem; }
.kw-trust li::before{ content:""; position:absolute; left:0; top:.42em; width:13px; height:13px; border-radius:50%; background:var(--kw-yellow); box-shadow:inset 0 0 0 3px var(--kw-maroon); }

/* ---------- Cart & checkout ---------- */
.kw-cart{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:30px; align-items:start; }
.kw-panel{ background:var(--kw-card); border-radius:var(--kw-r); padding:24px; box-shadow:var(--kw-shadow); }
.kw-panel h2{ font-size:1.15rem; margin-bottom:16px; }
.kw-line{ display:grid; grid-template-columns:78px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px 0; border-bottom:1px solid var(--kw-line); }
.kw-line:last-child{ border-bottom:0; }
.kw-line img{ width:78px; height:78px; object-fit:cover; border-radius:var(--kw-r-sm); background:var(--kw-tint); }
.kw-line b{ display:block; color:var(--kw-ink); font-size:.94rem; }
.kw-line small{ color:var(--kw-muted); font-size:.8rem; }
.kw-line__right{ text-align:right; font-weight:700; color:var(--kw-ink); white-space:nowrap; }
.kw-remove{ background:none; border:0; color:var(--kw-muted); font-size:.8rem; cursor:pointer; padding:4px 0; font-family:inherit; text-decoration:underline; }
.kw-remove:hover{ color:var(--kw-sale); }
.kw-totals{ list-style:none; margin:0 0 18px; padding:0; }
.kw-totals li{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--kw-line); font-size:.92rem; }
.kw-totals li:last-child{ border-bottom:0; font-size:1.12rem; font-weight:800; color:var(--kw-ink); padding-top:14px; }
.kw-pay{ display:grid; gap:10px; margin:6px 0 18px; }
.kw-pay label{
  display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:1.5px solid var(--kw-line);
  border-radius:var(--kw-r-sm); cursor:pointer; font-weight:500; margin:0; background:var(--kw-card);
}
.kw-pay label:has(input:checked){ border-color:var(--kw-ink); background:var(--kw-tint); }
.kw-pay input{ width:auto; margin-top:3px; }
.kw-pay b{ display:block; color:var(--kw-ink); font-size:.93rem; }
.kw-pay span{ font-size:.82rem; color:var(--kw-muted); }
.kw-empty{ text-align:center; padding:50px 20px; }
.kw-empty svg{ margin:0 auto 16px; color:var(--kw-muted); }

/* ---------- Forms ---------- */
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=search],
input[type=password],input[type=number],select,textarea{
  width:100%; padding:13px 15px; border:1.5px solid var(--kw-line); border-radius:var(--kw-r-sm);
  background:var(--kw-card); font-family:inherit; font-size:.94rem; color:var(--kw-ink);
}
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--kw-ink); box-shadow:0 0 0 3px var(--kw-yellow-tint); }
label{ display:block; font-size:.85rem; font-weight:600; color:var(--kw-ink); margin-bottom:6px; }
.kw-form{ display:grid; gap:16px; }
.kw-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.kw-req{ color:var(--kw-sale); }
.kw-alert{ padding:14px 18px; border-radius:var(--kw-r-sm); margin-bottom:20px; font-size:.92rem; }
.kw-alert--ok{ background:#EAF6EE; border:1px solid #BEE0CB; color:#1F6B3C; }
.kw-alert--bad{ background:#FBECEA; border:1px solid #EBC3BD; color:#96261A; }
.kw-note{ padding:14px 16px; border:1px dashed var(--kw-line); border-radius:var(--kw-r-sm); color:var(--kw-muted); font-size:.88rem; }

/* ---------- Pagination ---------- */
.kw-pagination{ margin-top:38px; display:flex; justify-content:center; }
.kw-pagination ul{ list-style:none; display:flex; gap:6px; padding:0; margin:0; }
.kw-pagination .page-numbers{
  display:inline-grid; place-items:center; min-width:42px; height:42px; padding:0 12px;
  border:1px solid var(--kw-line); border-radius:var(--kw-r-pill); font-weight:600; font-size:.9rem;
  background:var(--kw-card);
}
.kw-pagination .page-numbers.current{ background:var(--kw-ink); color:#fff; border-color:var(--kw-ink); }

/* ---------- Footer ---------- */
.kw-footer{ background:var(--kw-maroon-900); color:#D6C4C1; margin-top:60px; padding-block:56px 0; }
.kw-footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:36px; }
.kw-footer h4{ color:var(--kw-yellow); font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin:0 0 14px; }
.kw-footer a{ color:#D6C4C1; }
.kw-footer a:hover{ color:var(--kw-yellow); }
.kw-footer ul{ list-style:none; margin:0; padding:0; }
.kw-footer li{ margin-bottom:9px; font-size:.89rem; }
.kw-footer p{ font-size:.89rem; }
.kw-footer__brand img{ max-height:56px; border-radius:8px; margin-bottom:14px; }
.kw-social{ display:flex; gap:9px; margin-top:14px; }
.kw-social a{ width:36px; height:36px; border-radius:var(--kw-r-pill); display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); }
.kw-social a:hover{ background:var(--kw-yellow); color:var(--kw-maroon); border-color:var(--kw-yellow); }
.kw-newsletter{ display:flex; gap:8px; margin-top:12px; }
.kw-newsletter input{ flex:1; min-width:0; border-radius:var(--kw-r-pill); border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; padding:12px 16px; }
.kw-newsletter input::placeholder{ color:#AD9391; }
.kw-footer__bottom{
  margin-top:44px; border-top:1px solid rgba(255,255,255,.12); padding-block:18px;
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:.82rem;
}
.kw-footer__bottom ul{ display:flex; gap:18px; flex-wrap:wrap; }

/* ---------- Floating WhatsApp ---------- */
.kw-float{
  position:fixed; right:18px; bottom:18px; z-index:300; display:inline-flex; align-items:center; gap:9px;
  padding:13px 18px; background:var(--kw-maroon); color:var(--kw-yellow); border-radius:var(--kw-r-pill);
  font-weight:700; font-size:.88rem; box-shadow:var(--kw-shadow-lg);
}
.kw-float:hover{ background:var(--kw-maroon-600); color:var(--kw-yellow); }

/* ---------- Toast ---------- */
.kw-toast{
  position:fixed; left:50%; bottom:24px; transform:translate(-50%,140%); z-index:500;
  background:var(--kw-ink); color:#fff; padding:14px 22px; border-radius:var(--kw-r-pill);
  font-size:.9rem; font-weight:600; transition:transform .28s; box-shadow:var(--kw-shadow-lg);
}
.kw-toast.is-on{ transform:translate(-50%,0); }

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .kw-grid--4{ grid-template-columns:repeat(3,1fr); }
  .kw-footer__grid{ grid-template-columns:1fr 1fr; }
  .kw-promo__inner{ grid-template-columns:1fr; }
  .kw-layout{ grid-template-columns:1fr; }
  .kw-filters{ position:static; }
}
@media (max-width:900px){
  .kw-nav{ display:none; }
  .kw-burger{ display:grid; }
  .kw-hero__inner{ grid-template-columns:1fr; gap:28px; }
  .kw-hero__media{ border-radius:var(--kw-r-lg) var(--kw-r-lg) var(--kw-r-lg) 80px; aspect-ratio:16/11; }
  .kw-assure{ grid-template-columns:1fr; }
  .kw-assure__item + .kw-assure__item{ border-left:0; border-top:1px solid var(--kw-line); }
  .kw-product{ grid-template-columns:1fr; gap:28px; }
  .kw-cart{ grid-template-columns:1fr; }
  .kw-layout--right{ grid-template-columns:1fr; }
  .kw-brands{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:720px){
  .kw-section{ padding-block:44px; }
  .kw-grid--3,.kw-grid--4{ grid-template-columns:repeat(2,1fr); }
  .kw-promo{ padding:24px; }
  .kw-promo__cards{ grid-template-columns:1fr; }
  .kw-entry{ padding:24px; }
  .kw-footer__grid{ grid-template-columns:1fr; gap:28px; }
  .kw-form__row{ grid-template-columns:1fr; }
  .kw-hero__stats{ gap:20px; }
}
@media (max-width:520px){
  .kw-grid--2,.kw-grid--3,.kw-grid--4{ grid-template-columns:1fr; }
  .kw-line{ grid-template-columns:60px minmax(0,1fr); }
  .kw-line img{ width:60px; height:60px; }
  .kw-line__right{ grid-column:1/-1; text-align:left; }
  .kw-float span{ display:none; }
  .kw-float{ padding:15px; }
  .kw-brands{ grid-template-columns:repeat(2,1fr); }
}
