/* Client mockup 2026-08-29, completion layer. No commerce state or data changes. */
/* The retired fixed header reserves 104px and hides search on mobile. The
   client header is sticky/in-flow: remove that obsolete reservation, not content. */
body:has(.kluzko-header), body:has(.kluzo-checkout-header) { padding-top:0 !important; }
body .kluzko-header { height:auto !important; min-height:0 !important; padding:20px 24px !important; }
body .kluzko-header__inner { height:auto !important; min-height:0 !important; padding:0 !important; }
body .kluzko-header__search-details { display:block !important; }
body .kluzko-header__search { min-width:0 !important; min-height:0 !important; height:auto !important; padding:0 !important; }
@media(max-width:768px) { body .kluzko-header { padding:16px !important; } }

body .wp-site-blocks { padding-block: 0; }
body .wp-site-blocks > * { margin-block-start: 0; }
body .wp-block-template-part:has(.kluzko-header) { display: contents; }
.kluzko-header { color:var(--ink); min-height:0; }
.kluzko-header__inner { min-height:0; }
.kluzko-header .kluzko-header__wordmark { flex-direction:row; gap:6px; color:var(--ink); }
.kluzko-header .kluzko-header__wordmark span { color:var(--ink); font:600 18px/1.5 var(--font-body); letter-spacing:5px; }
.kluzko-header .kluzko-header__actions { gap:24px; color:var(--ink); }
.kluzko-header .kluzko-header__icon,.kluzko-header .kluzko-icon { color:var(--ink); }
.kluzko-header .kluzko-header__icon { width:auto; height:auto; min-width:0; padding:0; border:0; gap:4px; font:400 13px/1.6 var(--font-body); text-decoration:none; }
.kluzo-header-contact { font:400 13px/1.6 var(--font-body); color:var(--ink); text-decoration:none; }
.kluzko-header__actions .kluzko-header__wishlist,.kluzko-header__actions .kluzko-header__account { display:none; }
.kluzko-header .kluzko-header__nav-toggle { background:none; color:var(--ink); border:0; padding:0; min-height:0; font:400 13px/1.6 var(--font-body); letter-spacing:.3px; text-transform:none; }
.kluzko-header .kluzko-header__nav { margin:0; padding:0; }
.kluzko-header .kluzko-header__nav a { color:var(--ink); }
/* Both states share one geometry: the designed header reveals the zero badge
   (see the [hidden] rule further down), and a revealed badge must sit inline
   after "Кошик" instead of falling back to the shared absolute pin, which
   printed it on top of the label. */
.kluzko-header .kluzko-count--cart { display:inline-flex; position:static; background:var(--ink); color:var(--white); border-radius:50%; width:18px; height:18px; align-items:center; justify-content:center; font:500 10px var(--font-body); margin-left:4px; }
@media(min-width:769px) { .kluzko-header__actions .kluzko-icon { display:none; } }
.kluzo-header-cart-content { display:contents; }
/* Original inline word/space/badge baseline inside the unchanged native44px link.
   Summary is block-level so details does not add an anonymous inline strut. */
@media(min-width:769px) {
  body .kluzko-header__search-details > summary { display:flex; }
  body .kluzko-header__cart .kluzo-header-cart-content { display:block; line-height:1.6; }
  body .kluzko-header .kluzo-header-cart-content .kluzko-count--cart { font-weight:400; line-height:1.6; padding:0; }
}

.kluzo-client-home { padding:0; max-width:none; margin:0; background:var(--white); }
.kluzo-home-hero { position:relative; height:85vh; min-height:600px; max-height:900px; overflow:hidden; background:var(--milk); }
.kluzo-home-hero__photo { position:absolute; inset:0; background:#d4c4b8; }
.kluzo-home-media__image { display:block; width:100%; height:100%; object-fit:cover; }
/* The original hero specifies its focus at center 20%. These HOME-only
 * positions retain the approved portrait compositions when their responsive
 * full-bleed slots crop them; editor-selected attachments keep the same slot
 * geometry and may be replaced without an attachment-id dependency. */
.kluzo-home-hero__photo[data-kluzo-media-state="fallback"] .kluzo-home-media__image { object-position:center 20%; }
.kluzo-home-editorial__photo[data-kluzo-media-state="fallback"] .kluzo-home-media__image { object-position:center top; }
.kluzo-home-hero__content { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:24px; }
.kluzo-home-hero__content h1 { margin:0 0 24px; color:white; font:400 clamp(28px,4.5vw,48px)/1.4 var(--font-display); letter-spacing:0; text-transform:none; }
.kluzo-home-hero__cta { display:inline-block; padding:14px 36px; background:white; color:var(--ink); font:500 13px/1.6 var(--font-body); letter-spacing:.5px; text-transform:uppercase; text-decoration:none; }
.kluzo-home-hero__cta:hover { background:var(--ink); color:white; }
.kluzo-home-products { padding:80px 0; }
.kluzo-home-products--milk { background:var(--milk); }
.kluzo-section-heading { margin:0 0 48px; text-align:center; }
.kluzo-section-heading p { margin:0 0 8px; font:400 11px/1.6 var(--font-body); letter-spacing:2px; color:var(--stone); text-transform:uppercase; }
/* Original combined HTML line2038 supersedes its earlier36px cap with32px. */
.kluzo-section-heading h2 { margin:0; font:400 clamp(24px,3vw,32px)/1.6 var(--font-display); color:var(--ink); letter-spacing:0; text-transform:none; }
/* Original HOME: 48px wrapper gap + the link's 16px top margin. */
.kluzo-section-link { display:table; margin:64px auto 0; font:500 13px/1.6 var(--font-body); color:var(--ink); text-transform:none; letter-spacing:.5px; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }
.kluzo-home-products .kluzko-product-grid { margin:0; padding:0; }
.kluzo-home-editorial { width:100%; aspect-ratio:21 / 9; min-height:400px; position:relative; background:#e8e4dc; }
.kluzo-home-editorial__photo { position:absolute; inset:0; }
.kluzo-home-instagram { padding:80px 0 0; }
.kluzo-home-instagram__grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:4px; }
.kluzo-home-instagram__slot { position:relative; aspect-ratio:1; background:var(--milk); display:grid; place-items:center; }
.kluzo-home-instagram__slot { overflow:hidden; }
.kluzo-home-instagram__slot > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.kluzo-home-instagram__slot:focus-visible .kluzo-home-instagram__overlay { opacity:1; }
/* Only the observed empty wpautop node; real caption/content stays visible. */
.kluzo-home-instagram__slot > p:empty { display:none; }
.kluzo-home-instagram__slot span { color:var(--stone); font:400 12px var(--font-body); text-transform:uppercase; letter-spacing:1px; }
/* Original IG hover changes the overlay only, never the milk underneath. */
.kluzo-home-instagram__slot:hover { background:var(--milk); }
/* Original CSS 430-445: full-bleed rgba(26,26,26,.3) tint revealed on tile hover. */
.kluzo-home-instagram__overlay { position:absolute; inset:0; background:rgba(26,26,26,.3); opacity:0; transition:opacity .3s; display:flex; align-items:center; justify-content:center; }
.kluzo-home-instagram__slot:hover .kluzo-home-instagram__overlay { opacity:1; }
@media (prefers-reduced-motion: reduce) { .kluzo-home-instagram__overlay { transition:none; } }
/* Original CSS 441-445: the revealed caption is white 12px with 1px tracking,
 * not the stone placeholder label under it. */
.kluzo-home-instagram__overlay span { color:#fff; font:400 12px/1.6 var(--font-body); letter-spacing:1px; text-transform:none; }
/* The original draws no note under the grid, so a visible one is height we
 * added. The explanation stays in the accessibility tree — the grid's own
 * aria-label and the CTA's title say the same thing to every user. */
.kluzo-home-instagram__note { position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
/* Original CSS 446-451 / markup 2669: `.instagram-handle` block, 24px vertical
 * padding, 13px. The inert variant keeps the same box so the section geometry
 * does not depend on whether a channel is configured. */
.kluzo-home-instagram__handle { text-align:center; padding:24px 0; font:400 13px/1.6 var(--font-body); letter-spacing:.5px; }
/* Original markup 2669 renders `.section-link` inside that box with its
 * border-bottom removed inline: inline-block, 16px top margin, 2px bottom
 * padding, 13px/500/.5px. */
.kluzo-home-instagram__cta { display:inline-block; margin-top:16px; padding-bottom:2px; color:var(--ink); text-decoration:none; font-weight:500; letter-spacing:.5px; }
.kluzo-home-instagram__cta[aria-disabled="true"] { color:var(--ink); cursor:default; }
.kluzo-brand-newsletter { padding:80px 24px; text-align:center; background:var(--white); }
.kluzo-brand-newsletter .newsletter-inner { max-width:480px; margin:0 auto; }
/* Original CSS 455-500: h3 is 24px Prata with margin-bottom 8 (--space-xs) and
 * no line-height of its own, so it inherits `body { line-height: 1.6 }` —
 * measured 24px/38.4px on the normalized original (author/original-lower-metrics.json).
 * The 1.2 figure carried in lower-findings.md is a misreading and is not used. */
.kluzo-brand-newsletter h3 { margin:0 0 8px; font:400 24px/1.6 var(--font-display); color:var(--ink); }
.kluzo-brand-newsletter p { margin:0 0 24px; font:400 13px/1.6 var(--font-body); color:var(--stone); }
.kluzo-brand-newsletter .newsletter-form { display:flex; border:1px solid var(--ink); text-align:left; }
.kluzo-brand-newsletter .newsletter-form input { flex:1; min-width:0; width:0; border:0; margin:0; padding:14px 16px; background:transparent; color:var(--ink); font:400 14px var(--font-body); border-radius:0; }
.kluzo-brand-newsletter .newsletter-form button { margin:0; padding:14px 28px; border:0; border-radius:0; background:var(--ink); color:white; font:500 12px/1.6 var(--font-body); letter-spacing:1px; text-transform:uppercase; opacity:1; }
.kluzo-brand-newsletter .newsletter-note { font-size:11px; margin:12px 0 0; }
/* HOME only — the shared shell above is the Brand page's and stays byte-stable.
 * The original declares no line-height on either control, so on HOME both keep
 * the form-control `normal` the UA gives them (measured: 46px input, 48px
 * form); the shared 1.6 made the button the tallest item and grew the row. */
.kluzo-brand-newsletter--home .newsletter-form button { line-height:normal; }
/* HOME only: the original's newsletter band ends at the form, so the inactive
 * explanation may not add height there. It stays in the DOM and in the
 * accessibility tree, and the disabled controls point at it through
 * aria-describedby. The Brand page keeps its visible note. */
.kluzo-brand-newsletter--home .newsletter-note { position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.kluzo-client-footer { padding:80px 24px 48px; color:var(--milk); background:var(--ink); }
.kluzo-client-footer__inner { max-width:1280px; margin:auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; }
.kluzo-client-footer__brand > a { display:block; color:var(--milk); text-decoration:none; font:600 32px/1.15 var(--font-body); }
.kluzo-client-footer__brand > a span { display:block; letter-spacing:6px; }
.kluzo-client-footer__brand > a span + span { letter-spacing:2px; }
/* Original CSS 500-545: brand description 13px/1.6 with the 16px gap coming
 * from `.footer-brand h3 { margin-bottom: var(--space-sm) }`, column headings
 * margin-bottom 16, list items margin-bottom 10. */
.kluzo-client-footer__brand > a { margin-bottom:16px; }
.kluzo-client-footer__brand p { max-width:280px; margin:0; color:var(--stone); font:400 13px/1.6 var(--font-body); }
.kluzo-client-footer__column h2 { margin:0 0 16px; font:500 11px/1.6 var(--font-body); letter-spacing:2px; text-transform:uppercase; color:var(--milk); }
.kluzo-client-footer__column ul { margin:0; padding:0; list-style:none; }
/* Original li inherits the body's 16px line box; only its link is 13px. */
.kluzo-client-footer__column li { margin-bottom:10px; font:400 16px/1.6 var(--font-body); }
.kluzo-client-footer__column a,.kluzo-client-footer__column span { color:var(--stone); font-size:13px; text-decoration:none; }
.kluzo-client-footer__column a:hover { color:var(--white); }
.kluzo-client-footer__bottom { max-width:1280px; margin:48px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; align-items:center; gap:24px; color:var(--stone); font:400 12px/1.6 var(--font-body); }
/* wpautop wraps the shortcode's footer output and leaves one empty <p> between
 * the copyright and the socials, which then becomes a third flex item and the
 * large blank gap this row shows on mobile. Only the verified-empty paragraph is
 * removed from layout; any paragraph with real copy is untouched. */
.kluzo-client-footer__bottom > p:empty { display:none; }
.kluzo-client-footer__socials { display:flex; flex-wrap:wrap; gap:16px; }
.kluzo-client-footer__socials a,.kluzo-client-footer__socials span { color:var(--stone); text-decoration:none; font-size:13px; }
.kluzo-checkout-header { padding:24px; border-bottom:1px solid var(--border); background:white; }
.kluzo-checkout-header > div { max-width:1200px; margin:auto; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.kluzo-checkout-header a { color:var(--ink); text-decoration:none; font:400 12px/1.6 var(--font-body); }
.kluzo-checkout-header a.kluzo-checkout-logo { font:600 18px/1.5 var(--font-body); letter-spacing:5px; }
.kluzo-checkout-progress { list-style:none; display:flex; justify-content:center; flex-wrap:wrap; gap:20px; padding:28px 16px; margin:0; border-bottom:1px solid var(--border); font:400 11px/1.6 var(--font-body); letter-spacing:1px; color:var(--stone); }
.kluzo-checkout-progress li { margin:0; }
.kluzo-checkout-progress li[aria-current] { color:var(--ink); font-weight:600; }
.kluzo-checkout-progress li + li::before { content:'—'; margin-right:20px; color:var(--border); }
.kluzo-checkout-page { margin:0; padding:0; max-width:none; background:white; }
.kluzo-checkout-page .wp-block-woocommerce-checkout { max-width:1280px; margin:0 auto; padding:0 24px; }
.kluzo-checkout-page .wc-block-components-sidebar-layout { display:grid; grid-template-columns:minmax(0,1fr) 400px; gap:0; margin:0; }
.kluzo-checkout-page .wc-block-components-main { width:auto; min-width:0; padding:48px 48px 48px 0; }
.kluzo-checkout-page .wc-block-components-sidebar { width:auto; padding:40px 32px; margin:0; background:var(--milk); }
.kluzo-checkout-page .wc-block-components-title { font:400 22px/1.5 var(--font-display); text-transform:none; letter-spacing:0; }
.kluzo-checkout-page .wc-block-components-order-summary-item__image img { width:56px; height:74px; object-fit:cover; border-radius:0; }
.kluzo-checkout-footer { padding:24px; text-align:center; font:400 11px/1.6 var(--font-body); color:var(--stone); border-top:1px solid var(--border); }
.woocommerce-cart .wc-block-components-sidebar-layout { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:48px; }
.woocommerce-cart .wc-block-components-main,.woocommerce-cart .wc-block-components-sidebar { width:auto; min-width:0; padding:0; margin:0; }
.woocommerce-cart .wc-block-components-sidebar { background:var(--milk); padding:32px; align-self:start; }
.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image { width:120px; }
.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image img { width:120px; height:160px; object-fit:cover; border-radius:0; }
.woocommerce-account .woocommerce-form-login { max-width:460px; margin:32px auto 80px; border:0; padding:0; border-radius:0; }
.woocommerce-account .woocommerce-MyAccount-navigation { width:220px; }
.woocommerce-account .woocommerce-MyAccount-content { width:calc(100% - 280px); }
.kluzko-pdp__gallery-column { position:relative; }

/* PDP — the approved source keeps a true half-and-half product grid: a 3:4
 * native Woo gallery followed by five real thumbnail controls, never a second
 * gallery-derived editorial tile block.  Woo's default 48% floats and the old
 * PDP layer's 4:5 crop narrowed the actual image and hid the native rail. */
body .kluzko-pdp__layout {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:48px;
  margin-top:-30px;
  padding:0 24px 80px;
}
body main.kluzko-pdp > .page-header { padding-inline:24px; }
body .kluzko-pdp .kluzko-breadcrumbs__item + .kluzko-breadcrumbs__item::before { content:'·'; }
body .kluzko-pdp__gallery-col { position:sticky; top:90px; }
body .kluzko-pdp__media-overlay { position:absolute; inset:0 0 auto; width:100%; height:auto; padding:16px; justify-content:flex-start; pointer-events:none; }
body .kluzko-pdp__badge-slot .kluzko-badge { padding:5px 14px; font-size:10px; font-weight:400; line-height:1.6; letter-spacing:.5px; text-transform:uppercase; border:1px solid var(--ink); background:var(--white); color:var(--ink); border-radius:20px; }
body .kluzko-pdp__gallery .woocommerce-product-gallery__wrapper { border:0 !important; border-radius:0 !important; }
body .kluzko-pdp__gallery,
body .kluzko-pdp__gallery .woocommerce-product-gallery {
  width:100% !important;
  max-width:none !important;
  float:none !important;
  margin:0 !important;
}
body .kluzko-pdp__gallery .flex-viewport { overflow:hidden !important; }
body .kluzko-pdp__gallery .woocommerce-product-gallery__image,
body .kluzko-pdp__gallery .woocommerce-product-gallery__image:first-child,
body .kluzko-pdp__gallery .woocommerce-product-gallery__image.flex-active-slide {
  width:100% !important;
  aspect-ratio:3 / 4 !important;
  margin:0 !important;
}
/* Flexslider marks the active slide. The old first-child fallback must not
 * remain painted after Woo switches gallery media for a real variation. */
body .kluzko-pdp__gallery .woocommerce-product-gallery__image:first-child:not(.flex-active-slide) {
  display:none !important;
}
body .kluzko-pdp__gallery .woocommerce-product-gallery__image > a,
body .kluzko-pdp__gallery .woocommerce-product-gallery__image > a img,
body .kluzko-pdp__gallery .woocommerce-product-gallery__wrapper img {
  width:100% !important;
  height:auto !important;
  aspect-ratio:3 / 4 !important;
  object-fit:cover;
}
body .kluzko-pdp__gallery .flex-control-thumbs {
  display:grid !important;
  grid-template-columns:repeat(5,calc((100% - 32px) / 5));
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 32px) / 5);
  overflow-x:auto;
  scrollbar-width:none;
  gap:8px;
  margin:16px 0 0 !important;
  padding:0;
  list-style:none;
}
body .kluzko-pdp .flex-control-thumbs li,
body .kluzko-pdp .flex-control-thumbs li:nth-child(n + 5) {
  display:block !important;
  width:auto !important;
  flex:none !important;
  margin:0 !important;
  aspect-ratio:3 / 4;
}
body .kluzko-pdp .flex-control-thumbs li { border:2px solid transparent; }
body .kluzko-pdp .flex-control-thumbs li:has(img.flex-active) { border-color:var(--ink); }
body .kluzko-pdp .flex-control-thumbs::-webkit-scrollbar { display:none; }
body .kluzko-pdp .flex-control-thumbs li img {
  opacity:1 !important;
  width:100% !important;
  height:100% !important;
  aspect-ratio:3 / 4;
  object-fit:cover;
}
body .kluzko-pdp__summary {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  justify-self:start;
  padding-top:16px;
}
/* Original #page-product purchase summary; native fields/events are retained. */
body .kluzko-pdp__summary .kluzko-pdp__title { font-size:clamp(24px,2.5vw,32px) !important; line-height:1.3 !important; font-weight:400; margin:0 0 8px !important; }
body .kluzko-pdp__summary .wp-block-woocommerce-product-price { margin:0 0 24px !important; }
body .kluzko-pdp__summary .wc-block-components-product-price,
body .kluzko-pdp__summary .woocommerce-Price-amount { color:var(--ink) !important; font-family:var(--font-body); font-size:20px !important; font-weight:500 !important; line-height:1.6; letter-spacing:0 !important; }
body .kluzko-pdp__summary .kluzko-pdp__atc { width:100%; max-width:440px; margin:0 !important; }
body .kluzko-pdp__summary form.cart { display:block; width:100%; margin:0 !important; }
body .kluzko-pdp__summary form.cart .variations { width:100%; margin:0 !important; border:0; }
body .kluzko-pdp__summary form.cart .variations tbody,
body .kluzko-pdp__summary form.cart .variations tr { display:block; }
body .kluzko-pdp__summary form.cart .variations tr { margin:0 0 24px; }
body .kluzko-pdp__summary form.cart .variations th.label { font-size:12px; line-height:1.6 !important; display:block !important; position:static; width:auto; height:auto; clip-path:none; padding:0 0 8px; text-align:left; }
body .kluzko-pdp__summary form.cart .variations th.label label,
body .kluzko-pdp__summary .kluzko-sizes__label { font-size:12px; font-weight:500; line-height:1.6; letter-spacing:1px; text-transform:uppercase; color:var(--stone); }
body .kluzko-pdp__summary .kluzko-selected-color { color:var(--ink); font-weight:400; letter-spacing:0; text-transform:none; }
body .kluzko-pdp__summary form.cart .variations td.value { display:block; padding:0; }
body .kluzko-pdp__summary form.cart .variations tr:has(.kluzko-sizes__head) th.label { display:none !important; }
body .kluzko-pdp__summary .kluzko-swatches { margin:0; gap:10px; }
body .kluzko-pdp__summary .kluzko-swatch { box-shadow:none !important; width:32px; height:32px; min-width:32px; padding:3px; border:2px solid transparent; border-radius:50%; }
body .kluzko-pdp__summary .kluzko-swatch.is-selected,
body .kluzko-pdp__summary .kluzko-swatch:hover { border-color:var(--ink); }
body .kluzko-pdp__summary .kluzko-swatch__dot { width:100%; height:100%; border:1px solid var(--border); border-radius:50%; }
body .kluzko-pdp__summary .reset_variations { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body .kluzko-pdp__summary .reset_variations:focus-visible { position:static; width:auto; height:auto; clip-path:none; }
body .kluzko-pdp__summary .woocommerce-variation-add-to-cart { margin:0 !important; display:flex; flex-direction:column; align-items:stretch; gap:0; }
body .kluzko-pdp__summary .kluzko-pdp__one-size { margin:0; }
body .kluzko-pdp__summary .kluzko-sizes__head { margin:0 0 8px; }
body .kluzko-pdp__summary .kluzko-sizes { gap:8px; margin:0; }
body .kluzko-pdp__summary .kluzko-size { height:38px; border-radius:0 !important; min-width:52px; min-height:0; padding:10px 14px; font-size:13px; font-weight:400; line-height:16px; border:1px solid var(--border); }
body .kluzko-pdp__summary .kluzko-size.is-selected { border-color:var(--ink); background:var(--ink); color:var(--white); }
body .kluzko-pdp__summary .kluzko-pdp__size-guide { display:block; width:fit-content; margin:8px 0 24px; padding:0 0 1px; border:0; border-bottom:1px solid var(--stone); background:transparent; color:var(--stone); font-size:12px; font-weight:400; line-height:1.6; letter-spacing:0; text-transform:none; text-decoration:none; cursor:pointer; list-style:none; }
body .kluzko-pdp__summary .kluzko-pdp__size-guide::-webkit-details-marker { display:none; }
body .kluzko-pdp__summary .kluzko-pdp__size-guide:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
body .kluzko-pdp__summary .kluzko-pdp__guide-disclosure { display:flow-root; width:100%; max-width:440px; }
body .kluzko-pdp__summary .kluzko-pdp__guide-content { margin:0 0 24px; padding:16px; border:1px solid var(--border); color:var(--ink); font-size:13px; line-height:1.6; }
body .kluzko-pdp__summary .kluzko-pdp__guide-content p { margin:0; }
/* Quantity still submits natively as one; native cart owns quantity editing. */
.single-product main.kluzko-pdp .kluzko-pdp__summary .kluzko-pdp__atc form.cart .quantity { display:none !important; }
body .kluzko-pdp__summary .single_add_to_cart_button { height:auto !important; min-height:0; width:100% !important; max-width:440px; margin:0 0 16px !important; padding:16px !important; border:0 !important; border-radius:0 !important; font-size:14px !important; font-weight:500; line-height:18px !important; letter-spacing:.5px; text-transform:uppercase; }
body .kluzko-pdp__accordions { max-width:440px; margin:0 !important; border-top:1px solid var(--border); }
body .kluzko-pdp__accordions .kluzko-acc { margin:0; border:0; border-bottom:1px solid var(--border); }
body .kluzko-pdp__accordions .kluzko-acc__summary { display:flex; justify-content:space-between; align-items:center; list-style:none; padding:16px 0; font-size:13px; line-height:1.6; font-weight:500; letter-spacing:.5px; text-transform:uppercase; color:var(--ink); }
body .kluzko-pdp__accordions .kluzko-acc__summary::-webkit-details-marker { display:none; }
body .kluzko-pdp__accordions .kluzko-acc__summary::after { content:'+'; color:var(--stone); font-size:18px; line-height:1; font-weight:300; }
body .kluzko-pdp__accordions .kluzko-acc[open] > .kluzko-acc__summary::after { content:'+'; transform:rotate(45deg); }
body .kluzko-pdp__accordions .kluzko-acc__body { padding:0 0 24px; font-size:13px; line-height:1.8; color:var(--stone); }
body .kluzko-pdp__accordions .kluzko-acc__body p { margin:0 0 8px; color:inherit; font:inherit; }
body .kluzko-pdp__accordions .kluzko-acc__body p:last-child { margin-bottom:0; }
body .kluzko-pdp__accordions .kluzko-acc__body table { width:100%; border-collapse:collapse; border:0; margin:0 0 12px; }
body .kluzko-pdp__accordions .kluzko-acc__body td { padding:6px 0; border:0; font:inherit; color:inherit; vertical-align:top; }
body .kluzko-pdp__accordions .kluzko-acc__body td:first-child { width:40%; color:var(--ink); padding-right:16px; }
@media(max-width:768px) {
 .kluzko-header { padding:16px; }
 .kluzko-header__inner { grid-template-columns:auto minmax(0,1fr) auto; gap:12px; }
 .kluzko-header .kluzko-header__wordmark { justify-content:center; gap:4px; }
 .kluzko-header .kluzko-header__wordmark span { font-size:15px; letter-spacing:4px; }
 .kluzko-header .kluzko-header__actions { gap:16px; }
 .kluzo-header-contact,.kluzo-header-action-label,.kluzko-header__menu-label { display:none; }
 .kluzko-header .kluzko-header__menu { color:var(--ink); padding:0; width:28px; }
 .kluzko-header .kluzko-header__menu .kluzko-icon { width:28px; height:20px; }
 .kluzo-home-instagram__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .kluzo-client-footer__inner { grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; }
 .kluzo-client-footer__brand { grid-column:1/-1; }
 /* The original keeps this a single row (CSS 556-570). At 390px the row's own
  * content is wider than the viewport, so it wraps instead of stacking: every
  * label survives and nothing is clipped. Documented delta, not a waiver. */
 .kluzo-client-footer__bottom { flex-wrap:wrap; row-gap:16px; }
 /* Shared Brand shell: the narrower button keeps the 390px row inside the
  * viewport. HOME overrides it back to the original 28px below. */
 .kluzo-brand-newsletter .newsletter-form button { padding-inline:16px; }
 .kluzo-brand-newsletter--home .newsletter-form button { padding-inline:28px; }
 /* Mobile fit adaptation: keep the original button padding without forcing
  * the input's intrinsic width beyond the viewport. Not a visual waiver. */
 body.home .kluzo-brand-newsletter--home .newsletter-form input { min-width:0; width:0; }
 .kluzo-checkout-header > div { gap:12px; }
 .kluzo-checkout-header a.kluzo-checkout-logo { font-size:14px; letter-spacing:3px; }
 .kluzo-checkout-header a:not(.kluzo-checkout-logo) { font-size:10px; max-width:130px; text-align:right; }
 .kluzo-checkout-page .wc-block-components-sidebar-layout,.woocommerce-cart .wc-block-components-sidebar-layout { display:flex; flex-direction:column; gap:24px; }
 .kluzo-checkout-page .wc-block-components-main { padding:24px 0; width:100%; }
 .kluzo-checkout-page .wc-block-components-sidebar { width:100%; padding:24px; }
 .woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image { width:80px; }
 .woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image img { width:80px; height:110px; }
 .woocommerce-account .woocommerce-MyAccount-navigation,.woocommerce-account .woocommerce-MyAccount-content { width:100%; }
 .kluzko-pdp__affordance--zoom { max-width:calc(100% - 32px); font-size:10px; }
 .kluzko-pdp__page-header .kluzko-breadcrumbs { position:relative; inset:auto; height:auto; margin:0; }
}

/* HOME/chrome: original-derived geometry. core/shortcode wpautop wrappers
 * around known inline controls must not become unintended layout items. */
body .kluzko-header__inner > p,
body .kluzko-header__left > p,
body .kluzko-header__actions > p,
body .kluzko-catalog-menu__panel > p,
body .kluzo-home-hero__content > p,
/* The rendered container is `.kluzko-container` and the link class is
 * `.kluzo-section-link` (inc/client-layout.php) — the older selector pair
 * matched nothing, so the shortcode's wpautop paragraph stayed a real block
 * around the section CTA. */
body .kluzo-home-products .kluzko-container > p:has(> .kluzo-section-link) { display:contents; }
body .kluzko-header { font-size:16px; line-height:1.6; }
body .kluzko-header__inner { min-height:0; }
body .kluzko-header__left,
body .kluzko-header__actions,
body .kluzko-header__search-details { min-height:0 !important; height:auto !important; }
body .kluzko-header .kluzko-header__wordmark {
  position:static !important; inset:auto !important; transform:none !important;
  display:block !important; width:auto !important; height:auto !important;
  margin:0; justify-self:center; white-space:nowrap;
  font:600 18px/1.6 var(--font-body) !important; letter-spacing:5px;
}
body .kluzko-header__wordmark span { display:contents !important; font:inherit !important; letter-spacing:inherit !important; }
body .kluzko-header__search-details > summary,
body .kluzko-header__nav-toggle { min-height:0 !important; height:auto !important; }
/* Keep the native 44px cart hit area inside the header's 20px padding,
 * without making its 13px/1.6 text line enlarge the wordmark-led row. */
@media (min-width:769px) {
  body .kluzko-header__cart { margin-block:calc((1.6em - 44px) / 2); }
}
body .kluzko-header__cart .kluzko-count--cart[hidden] { display:inline-flex !important; }
body .kluzo-home-hero__content { line-height:1.6; }
body .kluzo-home-hero h1 { line-height:1.2; }
body .kluzo-home-products .kluzko-card {
  display:block !important; gap:0; border:0; border-radius:0; box-shadow:none; background:transparent; padding:0;
}
body .kluzo-home-products .kluzko-card__image-wrap { margin-bottom:16px; border-radius:0; border:0; }
/* Original CSS 962-969 + HOME markup 2505-2683: a product whose photo has not
 * been delivered yet occupies the plain 3:4 slot in its band's own colour —
 * milk in the NEW band, #e8e4df in the bestseller band — with nothing drawn in
 * it. inc/product-card.php emits this only for HOME and only for a product that
 * really owns no image, so genuine product photography is never hidden. */
body .kluzo-home-products .kluzko-card__img--pending { display:block; width:100%; height:100%; background:var(--milk); }
body .kluzo-home-products--milk .kluzko-card__img--pending { background:#e8e4df; }
/* Original HOME 348-363: one 12px offset, 10px/16px regular type. The old
 * absolutely positioned slot plus the client's absolute badge doubled the
 * offset, while the retired badge's line-height:1 flattened the pill. */
body .kluzo-home-products .kluzko-card__badge-slot { position:static; }
body .kluzo-home-products .kluzko-card__badge-slot > .kluzko-badge {
  top:12px; left:12px; padding:4px 12px; margin:0;
  font:400 10px/1.6 var(--font-body); letter-spacing:.5px;
  color:var(--ink); background:var(--white); border:1px solid var(--ink); border-radius:20px;
}
body .kluzo-home-products .kluzko-card__badge-slot > .kluzko-badge--sale {
  color:var(--signal); border-color:var(--signal);
}
/* The original photo has no gradient veil. Keep the native wishlist control;
 * dark ink makes it readable without the superseded white-icon scrim. */
body .kluzo-home-products .kluzko-card__scrim { display:none; }
body .kluzo-home-products .kluzko-wishlist { color:var(--ink); }
body .kluzo-home-products .kluzko-card__info { display:block !important; padding:0 2px !important; }
body .kluzo-home-products .kluzko-card__title a { font:inherit !important; letter-spacing:inherit; color:var(--ink); }
body .kluzo-home-products .kluzko-card__price { float:none !important; width:100% !important; justify-self:start !important; text-align:left !important; color:var(--ink) !important; letter-spacing:0; }
body .kluzo-home-products .kluzko-card__price .amount { font:inherit; color:inherit !important; text-align:inherit; letter-spacing:inherit; }
body .kluzo-home-products .kluzko-card__title { font:400 14px/1.6 var(--font-body) !important; margin:0 0 4px !important; letter-spacing:0; }
body .kluzo-home-products .kluzko-card__price { font:500 14px/1.6 var(--font-body) !important; margin:0; }
/* Original markup 2626 + CSS 1010-1015: the current price is printed first and
 * the old one follows it, struck through in stone at 400 with an 8px gap.
 * WooCommerce's own price html is <del> then <ins>, so only the *presentation*
 * order is flipped here — no price value, tax or price-html logic is involved.
 * `:has(del)` keeps the flex container off the ordinary single/range price,
 * whose " – " separator is a bare text node and must keep its spaces. */
body .kluzo-home-products .kluzko-card__price:has(del) { display:flex; flex-wrap:wrap; align-items:baseline; }
body .kluzo-home-products .kluzko-card__price ins { order:1; background:none; color:inherit; font-weight:500; text-decoration:none; }
body .kluzo-home-products .kluzko-card__price del { order:2; margin-left:8px; color:var(--stone); font-weight:400; text-decoration:line-through; opacity:1; }
/* Original CSS 1016-1025: `.product-colors { gap:6px; margin-top:8px }` over
 * 14px dots. The shared catalog rule reserves only 2px above the row. */
body .kluzo-home-products .kluzko-card__swatches { margin-top:8px; }
/* Original HOME markup 2595-2652: bestseller cards omit the color row.
 * Keep native product data and the new-products/catalog/PDP colors unchanged. */
body .kluzo-client-home [data-client-section="bestsellers"] .kluzko-card__swatches { display:none; }
/* Original CSS 983-991: the second photo is a full-bleed layer over the first
 * that cross-fades in on card hover. inc/product-card.php emits it only for a
 * product that really owns a second gallery attachment, so a card with one
 * photo keeps exactly one <img> and never fakes the transition. */
body .kluzo-home-products .kluzko-card__image-wrap .kluzko-card__img--hover {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center; opacity:0; transition:opacity .5s ease;
}
body .kluzo-home-products .kluzko-card:hover .kluzko-card__img--hover,
body .kluzo-home-products .kluzko-card:focus-within .kluzko-card__img--hover { opacity:1; }
@media (prefers-reduced-motion:reduce) {
  body .kluzo-home-products .kluzko-card__image-wrap .kluzko-card__img--hover { transition:none; }
}
body .kluzo-home-editorial { background:#d4c4b8; }
/* Original CSS (mockup 610-641) is a grid: `.catalog-dropdown-inner` is
 * `3fr 2fr` with an 80px gap and `.catalog-categories` three equal columns with
 * a 48px gap, and `.catalog-featured` has no width of its own. The flex/`460px`
 * override that used to live here only reproduced that grid's 1440px result
 * (measured 691.19px / 460.80px), so it broke at every other width and pushed
 * the third link column out of the equal-column rhythm. The authoritative
 * declarations already sit in kluzo-client-2026-08-29.css:256-281 — this block
 * now only carries what the original states and that file does not. */
body .kluzko-catalog-menu__featured { margin:0; }
body .kluzko-catalog-menu__featured-image { width:100%; aspect-ratio:4/5; background:#d4c4b8; }
body .kluzko-catalog-menu__featured-caption { font-size:12px; font-style:normal; color:var(--stone); margin-top:8px; text-align:left; }
body .kluzko-catalog-menu__pending { font-size:13px; color:var(--stone); }
/* Original CSS (mockup lines 575-668): `.catalog-sale { color: var(--signal) }`. */
body .kluzko-catalog-menu__list a.is-sale { color:var(--signal); }
/* The panel is only ever hidden by opacity/visibility now (JS no longer sets
 * [hidden] once this stylesheet is present), so the 0.3s entry the original
 * declares actually runs. Reduced motion drops straight to the end state. */
@media (prefers-reduced-motion: reduce) {
  body .kluzko-catalog-menu__panel,
  body .kluzko-catalog-menu__scrim { transition:none !important; }
}
/* The scrim is now a sibling of the header (inc/navigation.php), where the
 * original's `z-index: -1` would sink it behind the page. 99 puts it above page
 * content and below the header's own z-index:100 — so below the panel too. */
body .kluzko-catalog-menu__scrim { z-index:99; }
/* HOME original presentation (mockup 315-392, 546-570, 610-678).
 * No extra wishlist heart in the designed HOME cards; named account/wishlist
 * footer entries and all non-HOME controls remain native and unchanged.
 * Reset the actual source of the dropdown link shift: UA list padding, not
 * the already-correct panel grid. The HOME header wrapper contains its scrim.
 */
body.home .kluzo-home-products .kluzko-card__wishlist-slot { display:none; }
body.home .kluzko-catalog-menu__list { margin:0; padding:0; }
body.home .kluzko-header > .kluzko-catalog-menu__scrim { z-index:-1; }
/* Resolved original cascade, not its superseded first .placeholder rule:
 * mockup 1653-1660 sets 11px/.5px; body supplies unitless 1.6 line height.
 * Only decorative labels change — the separate hover caption stays intact. */
body.home .kluzo-home-instagram__slot > span { font-size:11px; line-height:1.6; letter-spacing:.5px; }
body.home .kluzo-brand-newsletter--home { border-top:1px solid var(--border); }
/* Retain disabled/inert semantics without fading the designed input pixels. */
body.home .kluzo-brand-newsletter--home .newsletter-form--inert input { opacity:1; }
@media (max-width:768px) {
  /* Approved shared-footer supplement owns HOME wrapping too; no page-specific override. */
  /* Both axes stay visible, as in the original: the newsletter's intrinsic
   * mobile overflow must remain reachable, not be cropped at the body/root.
   * No overflow-y:auto scroll ancestor: sticky remains intact. Exclude the
   * native lock class so menu/search/popup locks keep their authority. */
  html:has(body.home):not(.kluzko-scroll-locked), body.home:not(.kluzko-scroll-locked) { overflow-x:visible; overflow-y:visible; }
}
/* Original draws no open-state on the Каталог item — it is an <a> there. The
 * theme's trigger is a <button>, and the open panel needs the same affordance
 * the original gives on hover (`.header-nav a:hover::after { width:100% }`,
 * mockup 185-195). Documented delta, derived from that rule. */
body .kluzko-header__nav .kluzko-header__nav-toggle { position:relative; }
body .kluzko-header__nav .kluzko-header__nav-toggle::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:1px; background:var(--ink); transition:width .3s;
}
body .kluzko-header__nav .kluzko-header__nav-toggle:hover::after,
body .kluzko-header__nav .kluzko-header__nav-toggle[aria-expanded="true"]::after { width:100%; }
/* ---------------------------------------------------------------------------
 * Mobile header — client spec §0.5.
 *
 * Logo 15px/4px, 18x18 SVG search and bag, 16x16/9px counter. The 2026-08-29
 * client layer sizes this row for a 13px wordmark and a single 44px action, so
 * the overrides below are deliberately specific: they change type and icon
 * geometry only, and every control keeps a >=44px hit area.
 * ------------------------------------------------------------------------ */
@media (max-width:768px) {
  body .kluzko-header__inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
  body .kluzko-header .kluzko-header__wordmark { font-size:15px !important; letter-spacing:4px !important; }
  body .kluzko-header .kluzko-header__menu { width:44px !important; min-width:44px !important; height:44px !important; padding:0 !important; justify-content:center !important; }
  body .kluzko-header .kluzko-header__menu .kluzko-icon { width:28px !important; height:20px !important; }
  body .kluzko-header__actions { width:auto !important; height:auto !important; gap:8px !important; align-items:center !important; }
  body .kluzko-header__actions .kluzko-icon { width:18px !important; height:18px !important; }
  body .kluzko-header__search-details > summary,
  body .kluzko-header__cart {
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
    width:44px !important; min-width:44px !important; height:44px !important; padding:0 !important; list-style:none;
  }
  body .kluzko-header__search-details > summary::-webkit-details-marker { display:none; }
  body .kluzko-header__cart { position:relative; }
  /* The original chrome renders a real "0" badge (mockup line ~2465). Only this
   * designed header reveals it; kluzko_fse_cart_count_markup() keeps its
   * hidden-zero attribute, so every other surface and the Woo AJAX fragment
   * still default to hidden-zero. */
  body .kluzko-header__cart .kluzko-count--cart,
  body .kluzko-header__cart .kluzko-count--cart[hidden] {
    display:inline-flex !important; position:absolute; top:4px; right:0; margin:0;
    width:16px; height:16px; min-width:16px; font-size:9px; line-height:1;
    align-items:center; justify-content:center; background:var(--ink); color:var(--white); border-radius:50%;
  }
}

/* ---------------------------------------------------------------------------
 * Mobile menu — client spec §0.7.
 *
 * Full-screen white panel at z-index 200, translateX(-100%) -> 0 over .35s.
 * This replaces the superseded 280px nested side sheet; the dialog mechanics
 * (focus trap, body scroll lock, Escape, focus return) stay in
 * assets/js/kluzko-final.js and are untouched.
 * ------------------------------------------------------------------------ */
body .kluzo-mobile-menu { z-index:200; }
/* The panel is opaque and full-bleed, so the scrim has nothing left to dim. */
body .kluzo-mobile-menu .kluzko-panel__scrim { background:transparent; z-index:auto; }
body .kluzo-mobile-menu .kluzo-mobile-menu__sheet {
  position:fixed; inset:0; width:100%; max-width:none; height:100%; z-index:200;
  background:var(--white); color:var(--ink); padding:0;
  display:flex; flex-direction:column; overflow:hidden;
  transform:translateX(-100%); transition:transform .35s ease;
}
body .kluzo-mobile-menu:not([hidden]) .kluzo-mobile-menu__sheet { transform:translateX(0); }
body .kluzo-mobile-menu .kluzko-panel__view { display:flex; flex-direction:column; flex:1; min-height:0; gap:0; }
body .kluzo-mobile-menu__head {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 16px 12px 24px; border-bottom:1px solid var(--border); flex:0 0 auto;
}
body .kluzo-mobile-menu__logo { color:var(--ink); text-decoration:none; white-space:nowrap; font:600 15px/1.6 var(--font-body); letter-spacing:4px; }
body .kluzo-mobile-menu__logo span { font:inherit; letter-spacing:inherit; }
body .kluzo-mobile-menu__close {
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; min-width:44px; height:44px; min-height:44px; padding:0;
  background:none; border:0; cursor:pointer; font-size:18px; line-height:1; color:var(--stone);
}
body .kluzo-mobile-menu__close:hover { color:var(--ink); }
/* Long menus scroll here, inside the panel: the locked document behind never
   gains a scrollbar and nothing runs past the viewport. */
body .kluzo-mobile-menu__scroll { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:24px; }
body .kluzo-mobile-menu__hero { display:flex; gap:12px; margin:0 0 32px; }
body .kluzo-mobile-menu__hero-link {
  flex:1; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:8px;
  min-height:44px; padding:14px 18px; border:1px solid var(--ink); color:var(--ink);
  text-decoration:none; font:500 15px/1.4 var(--font-body);
}
body .kluzo-mobile-menu__hero-link:hover { background:var(--ink); color:var(--white); }
body .kluzo-mobile-menu__hero-link.is-sale { border-color:var(--signal); color:var(--signal); }
body .kluzo-mobile-menu__hero-link.is-sale:hover { background:var(--signal); color:var(--white); }
body .kluzo-mobile-menu__hero-arrow { transition:transform .2s; }
body .kluzo-mobile-menu__hero-link:hover .kluzo-mobile-menu__hero-arrow { transform:translateX(4px); }
body .kluzo-mobile-menu__section { margin:0 0 32px; }
body .kluzo-mobile-menu__label { margin:0 0 8px; font:500 11px/1.6 var(--font-body); letter-spacing:2px; text-transform:uppercase; color:var(--stone); }
body .kluzo-mobile-menu__list { list-style:none; margin:0; padding:0; }
body .kluzo-mobile-menu__list li { margin:0; }
body .kluzo-mobile-menu__link {
  display:flex; align-items:center; gap:8px; min-height:44px;
  color:var(--ink); text-decoration:none; font:400 15px/1.6 var(--font-body);
}
body .kluzo-mobile-menu__link:hover { opacity:.5; }
body .kluzo-mobile-menu__pending { display:flex; align-items:center; min-height:44px; color:var(--stone); font:400 13px/1.6 var(--font-body); }
body .kluzo-mobile-menu__list--secondary { border-top:1px solid var(--border); padding-top:8px; margin-top:8px; }
body .kluzo-mobile-menu__foot {
  flex:0 0 auto; display:flex; flex-wrap:wrap; gap:20px;
  padding:8px 24px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top:1px solid var(--border);
}
body .kluzo-mobile-menu__social {
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  color:var(--ink); text-decoration:none; font:400 12px/1.6 var(--font-body); letter-spacing:1px;
}
/* Unconfigured channel: visible, readable, inert — never a guessed URL. */
body .kluzo-mobile-menu__social.is-disabled { color:var(--stone); opacity:1; cursor:default; }

/* Real entry frames, not merely a transition on a display:none descendant. */
@starting-style {
  body .kluzo-mobile-menu:not([hidden]) .kluzo-mobile-menu__sheet { transform:translateX(-100%); }
}
@media (prefers-reduced-motion:reduce) {
  body .kluzo-mobile-menu .kluzo-mobile-menu__sheet { transition:none; }
}
/* Retired mobile64px/full-viewport rules must not remove header insets. */
@media(max-width:768px) {
  body #kluzko-header.kluzko-header { padding:16px !important; height:auto !important; min-height:0 !important; }
  body #kluzko-header.kluzko-header .kluzko-header__inner { width:auto !important; height:auto !important; min-height:0 !important; gap:4px !important; }
  body #kluzko-header.kluzko-header .kluzko-header__actions { gap:0 !important; }
}

/* Original catalog panel, mockup1059–1191. Native Woo GET state is unchanged. */
/* Retired desktop sidebar CSS must not hide the original modal backdrop.
 * Keep the native hidden attribute authoritative when the panel is closed. */
body .kluzko-filters.is-open .kluzko-filters__scrim:not([hidden]) { display:block; }
body .kluzko-filters .kluzko-filters__panel {
  inset:0 0 0 auto !important; width:380px !important; max-width:90vw !important;
  height:100dvh !important; max-height:none !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; background:var(--white) !important;
  display:flex !important; flex-direction:column; overflow:hidden !important;
}
body .kluzko-filters .kluzko-filters__head {
  flex:0 0 auto; padding:24px !important; margin:0 !important; min-height:0;
  display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border);
}
body .kluzko-filters .kluzko-filters__title { font:500 14px/1.6 var(--font-body); letter-spacing:1px; text-transform:uppercase; }
body .kluzko-filters .kluzko-filters__close { padding:4px; border:0; border-radius:0; background:none; color:var(--stone); font:400 18px/normal var(--font-body); width:auto; height:auto; min-width:0; min-height:0; }
body .kluzko-filters .kluzko-filters__form { display:flex !important; flex-direction:column; flex:1; min-height:0; gap:0 !important; margin:0; padding:0 !important; overflow:hidden; }
body .kluzko-filters .kluzko-filters__body { flex:1; min-height:0; overflow-y:auto; padding:24px; }
body .kluzko-filters .kluzko-filters__body > p:empty,
body .kluzko-filters .kluzko-filters__form > p:empty { display:none; }
body .kluzko-filters .kluzko-filters__summary { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body .kluzko-filters .kluzko-filter { display:block; min-width:0; border:0; border-bottom:1px solid var(--border); padding:0 0 24px; margin:0 0 24px; }
body .kluzko-filters .kluzko-filter:last-child { border-bottom:0; }
body .kluzko-filters .kluzko-filter__legend { display:block; width:100%; padding:0; margin:0 0 16px; font:500 12px/1.6 var(--font-body); letter-spacing:1px; text-transform:uppercase; color:var(--stone); }
body .kluzko-filters .kluzko-filter__list,
body .kluzko-filters .kluzko-price-presets { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
body .kluzko-filters .kluzko-filter__item { padding:0; margin:0; width:auto; }
body .kluzko-filters .kluzko-filter__option,
body .kluzko-filters .kluzko-price-preset {
  position:relative; display:inline-flex; align-items:center; width:auto; min-width:0; min-height:0;
  padding:6px 14px; margin:0; border:1px solid var(--border); border-radius:20px;
  background:transparent; color:var(--ink); font:400 13px/normal var(--font-body); letter-spacing:0;
  text-decoration:none; cursor:pointer; transition:background .2s,color .2s,border-color .2s;
}
body .kluzko-filters .kluzko-filter__option input[type=checkbox] { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
body .kluzko-filters .kluzko-filter__option-count { display:none; }
body .kluzko-filters .kluzko-filter__option:has(input:checked),
body .kluzko-filters .kluzko-price-preset[aria-pressed=true] { background:var(--ink); color:var(--white); border-color:var(--ink); }
body .kluzko-filters .kluzko-filter__option:hover,
body .kluzko-filters .kluzko-price-preset:hover { border-color:var(--ink); }
body .kluzko-filters .kluzko-filter__option:has(input:focus-visible),
body .kluzko-filters .kluzko-price-preset:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
body .kluzko-filters .kluzko-filter--filter_color .kluzko-filter__list { gap:10px; }
body .kluzko-filters .kluzko-filter__option--color { width:28px; height:28px; padding:2px; border:2px solid transparent; border-radius:50%; background:transparent !important; }
body .kluzko-filters .kluzko-filter__color { display:block; width:100%; height:100%; border:1px solid var(--border); border-radius:50%; }
body .kluzko-filters .kluzko-filter__option--color .kluzko-filter__option-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body .kluzko-filters .has-price-presets .kluzko-price-slider,
body .kluzko-filters .has-price-presets .kluzko-price-bounds,
body .kluzko-filters .has-price-presets:not(.has-custom-price) .kluzko-price-fields { display:none; }
body .kluzko-filters .has-custom-price .kluzko-price-fields { margin-top:16px; }
body .kluzko-filters .kluzko-filter__pending { font:400 12px/1.6 var(--font-body); color:var(--stone); }
body .kluzko-filters .kluzko-filters__actions { flex:0 0 auto; display:flex !important; align-items:stretch; gap:16px; padding:24px; margin:0 !important; border-top:1px solid var(--border); }
body .kluzko-filters .kluzko-filters__reset { flex:0 0 auto; display:flex; align-items:center; justify-content:center; padding:14px 20px; border:1px solid var(--border); border-radius:0; text-decoration:none; font:400 13px/normal var(--font-body); color:var(--stone); }
body .kluzko-filters .kluzko-filters__apply { flex:1; display:block; height:auto; min-height:0; min-width:0; width:auto; padding:14px; border:0; border-radius:0 !important; font:500 13px/normal var(--font-body); letter-spacing:.5px; white-space:normal; text-transform:uppercase; background:var(--ink); color:var(--white); }
@media (max-width:420px) {
  /* Original1173–1190 yields a 60px two-line button on the narrow panel.
   * Reserve its box even with our shorter, truthful count-free caption. */
  body .kluzko-filters .kluzko-filters__apply { min-height:60px; }
}

/* Catalog default composition — original page-catalog, CSS 833–846, 956–1040.
 * The canonical real catalogue replaces sample content, not its layout. */
body main.kluzko-catalog { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; font:400 16px/1.6 var(--font-body); }
body .kluzko-catalog .kluzko-catalog__head { display:block; width:calc(100% - 48px) !important; max-width:1232px !important; margin:0 auto !important; padding:80px 0 48px; text-align:center; }
body .kluzko-catalog .kluzko-catalog__title { margin:0 0 8px; font:400 clamp(28px,3.5vw,40px)/1.6 var(--font-display) !important; letter-spacing:0; }
body .kluzko-catalog__head .kluzko-filter-count { display:block; margin:0; font:400 13px/1.6 var(--font-body); color:var(--stone); letter-spacing:0; text-transform:none; }
body .kluzko-catalog .kluzko-rail__link { min-height:0; height:32px; padding:7px 18px; font:400 13px/normal var(--font-body); }
body .kluzko-catalog .kluzko-filters__trigger,
body .kluzko-catalog .woocommerce-ordering select { min-height:0; height:32px; border:1px solid var(--border); border-radius:24px; padding:0 16px; font:400 13px/normal var(--font-body); letter-spacing:0; text-transform:none; background-color:transparent; }
body .kluzko-catalog .kluzko-filters__trigger { display:inline-flex; align-items:center; gap:6px; }
body .kluzko-catalog .woocommerce-ordering select { display:block; height:32px !important; min-height:0 !important; border:1px solid var(--border) !important; border-radius:24px !important; padding:0 30px 0 16px !important; font:400 13px/normal var(--font-body) !important; }
body .kluzko-catalog .kluzko-filters__trigger::before { content:""; display:block; width:14px; height:14px; background:currentColor; mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%3E%3Cline%20x1%3D%224%22%20y1%3D%227%22%20x2%3D%2220%22%20y2%3D%227%22%2F%3E%3Cline%20x1%3D%224%22%20y1%3D%2212%22%20x2%3D%2220%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%224%22%20y1%3D%2217%22%20x2%3D%2220%22%20y2%3D%2217%22%2F%3E%3Ccircle%20cx%3D%228%22%20cy%3D%227%22%20r%3D%222%22%20fill%3D%22black%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%2212%22%20r%3D%222%22%20fill%3D%22black%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%2217%22%20r%3D%222%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat; }
@media(max-width:600px) { body .kluzko-catalog .kluzko-filters__bar-inner { gap:24px; } }
body .kluzko-catalog .kluzko-filters__bar-inner { max-width:1280px; margin:0 auto; padding:0 24px; }
body .kluzko-catalog__grid { width:100%; max-width:1280px; margin:0 auto !important; padding:0 24px !important; }
body .kluzko-catalog__grid .kluzko-card { display:block !important; border:0; border-radius:0; background:transparent; box-shadow:none; }
body .kluzko-catalog__grid .kluzko-card__image-wrap { border:0; border-radius:0; margin:0 0 16px; }
body .kluzko-catalog__grid .kluzko-card__image-link { border:0; border-radius:0; }
body .kluzko-catalog__grid .kluzko-card__info { display:block !important; padding:0 2px !important; }
body .kluzko-catalog__grid .kluzko-card__title { font:400 14px/1.6 var(--font-body) !important; margin:0 0 4px !important; letter-spacing:0; }
body .kluzko-catalog__grid .kluzko-card__title a { font:inherit !important; letter-spacing:inherit; }
body .kluzko-catalog__grid .kluzko-card__price { width:100% !important; float:none !important; text-align:left !important; margin:0; font:500 14px/1.6 var(--font-body) !important; letter-spacing:0; color:var(--ink) !important; }
body .kluzko-catalog__grid .kluzko-card__price .amount { font:inherit !important; letter-spacing:inherit; color:inherit !important; }
body .kluzko-catalog__grid .kluzko-card__badge-slot { position:static; }
body .kluzko-catalog__grid .kluzko-card__badge-slot > .kluzko-badge { top:12px; left:12px; margin:0; padding:4px 12px; border:1px solid var(--ink); border-radius:20px; background:var(--white); color:var(--ink); font:400 10px/1.6 var(--font-body); letter-spacing:.5px; }
body .kluzko-catalog__grid .kluzko-card__badge-slot > .kluzko-badge--sale { border-color:var(--signal); color:var(--signal); }
body .kluzko-catalog__grid .kluzko-card__scrim { display:none; }
body .kluzko-catalog__grid .kluzko-wishlist { color:var(--ink); }

/* ==========================================================================
   BRAND + CONTACTS BODY — original presentation
   Source of truth: docs/requirements/2026-08-29-kluzo-client-mockup/
   kluzo-full-mockup.html (sha256 32014603…fb0d5), CSS 1751–1926 / 2320–2423,
   markup 3423–3546 / 4006–4146.

   Everything here is scoped to .kluzo-brand-client / .kluzo-contacts-client.
   No global token and no body typography is touched, so the reviewed HOME,
   catalog, filter and Woo surfaces keep the styles they were accepted with.
   ========================================================================== */

/* The original's body rhythm is 16px/1.6 (mockup 1722). The theme's own body
   size is fluid and larger, and it leaked into every band that inherits — and,
   through UA em-based margins, into the spacing between them. Restore the
   original inherited pair for these two page bodies only. */
.kluzo-brand-client,
.kluzo-contacts-client { font-size:16px; line-height:1.6; }

/* Brand runs its own narrow column token (mockup 1717); the theme's global is
   960 and stretched the intro two paragraphs wider than the design. */
.kluzo-brand-client { --max-w-narrow:720px; }

/* The original clears every margin and padding first (mockup 1720). Without
   that reset the theme inherits the UA's em margins — ~1em above each heading
   and around each paragraph — which is what made these sections tall. :where()
   keeps the reset at zero specificity, so every component rule still wins, and
   it also absorbs the empty paragraph wpautop leaves inside each FAQ row. */
:where(.kluzo-brand-client, .kluzo-contacts-client)
  :is(h1, h2, h3, h4, p, blockquote, figure, ul, ol, li) { margin:0; padding:0; }

/* `.kluzko-page h1…h3` (0,1,1) outranks the original's per-class line box and
   adds 0.01em tracking. Re-state the original values at matching specificity,
   from a sheet that loads later; the two headings the original gives a tighter
   line box then win on their own class. */
.kluzo-brand-client :is(h1, h2, h3, h4),
.kluzo-contacts-client :is(h1, h2, h3, h4) { line-height:1.6; letter-spacing:normal; }
.kluzo-brand-client .brand-hero-title { line-height:1.2; }
.kluzo-brand-client .split-title { line-height:1.4; }

/* mockup 1725 — a button takes the page font. Without it the FAQ questions and
   the contact submit fall back to the UA face, whose `normal` line box is
   shorter, and every row loses a pixel of height. */
.kluzo-brand-client button,
.kluzo-contacts-client button { font-family:inherit; }

/* -------------------------------------------------- BRAND newsletter ----- */
/* The original band is transparent with a hairline above it (mockup 1902) and
   its form inherits the band's centring. HOME was reviewed with its own shell;
   this scopes the same parity to the Brand page without touching it. */
.kluzo-brand-client .kluzo-brand-newsletter {
  background:transparent;
  border-top:1px solid var(--border);
}
.kluzo-brand-client .kluzo-brand-newsletter .newsletter-form {
  max-width:none;
  text-align:inherit;
}
/* The original's button line box is the form-control `normal`, not 1.6 — the
   same measurement already recorded for the HOME band. */
.kluzo-brand-client .kluzo-brand-newsletter .newsletter-form button { line-height:normal; }
/* Inert, but not dimmed: `disabled` and the note below carry the meaning, so
   the field keeps the original's contrast instead of inventing a faded state. */
.kluzo-brand-client .kluzo-brand-newsletter .newsletter-form--inert input { opacity:1; }
/* The note stays in the accessibility tree — both controls reference it through
   aria-describedby — but it no longer grows a band the original ended at the
   form. */
.kluzo-brand-client .kluzo-brand-newsletter .newsletter-note {
  position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap;
}

/* ------------------------------------------------------ CONTACTS body ---- */
/* mockup 2347 / 2404: neither row is a gap container in the original. */
.kluzo-contacts-client .contact-hours-row { gap:normal; }
.kluzo-contacts-client .faq-question { gap:normal; }

/* mockup 2152 + 2379 together give the submit 8px above and 16px below. */
.kluzo-contacts-client .form-submit { margin-bottom:var(--space-sm); }

/* mockup 2387 — the map shell has no padding; flex does the centring. */
.kluzo-contacts-client .map-section { padding:0; text-align:start; }

/* Same treatment as the newsletter note: the submit's aria-describedby keeps
   pointing at it, so the reason the form is inert is still announced, while the
   milk shell returns to the original's height. */
.kluzo-contacts-client .kluzo-contact-form-note {
  position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap;
}

@media (max-width:768px) {
  /* The original's 768 block changes only the column count (mockup 2419); the
     80px gap and the 280px hours row survive it. */
  .kluzo-contacts-client .contacts-layout { gap:var(--space-xl); }
  .kluzo-contacts-client .contact-hours-row { max-width:280px; }
}

/* Controller full-page residuals: the original split placeholder has no
   product-card aspect ratio, and its caption has no 32ch cap/inset (1823,1948).
   Do not let a 390px-wide photo band grow to 520px instead of the drawn 500px. */
.kluzo-brand-client .split-image .kluzo-brand-photo { aspect-ratio:auto; min-height:500px; }
.kluzo-brand-client .kluzo-brand-photo__caption {
  max-width:none; padding:0; text-align:inherit; text-transform:uppercase;
}
.kluzo-contacts-client .form-submit:disabled { opacity:1; }
/* Native select can cache a 44px first-layout fallback and become 46px on
   full-page capture. The unchanged original is 46px at both target widths. */
.kluzo-contacts-client select.form-input { min-height:46px; }
@media (max-width:768px) {
  /* Original Brand newsletter 1923–1925: intrinsic input and 28px button
     padding survive mobile. Overflow is real source behavior, not a new fit. */
  .kluzo-brand-client .newsletter-form input { min-width:auto; width:auto; }
  .kluzo-brand-client .newsletter-form button { padding-inline:28px; }
  html:has(.kluzo-brand-client):not(.kluzko-scroll-locked),
  body:has(.kluzo-brand-client):not(.kluzko-scroll-locked) {
    overflow-x:visible; overflow-y:visible;
  }

  /* PDP source: 24px mobile content edge, gallery then five 3:4 controls. */
  body .kluzko-pdp__layout {
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    width:calc(100% - 7px) !important;
    margin-top:-21px;
    padding:0 0 80px;
  }
  body .kluzko-pdp__gallery-col { position:relative; top:auto; }
  body .kluzko-pdp__summary { padding-top:0; }
  body .kluzko-pdp__summary,
  body .kluzko-pdp__accordions {
    width:100%;
    max-width:none !important;
  }
  body .kluzko-pdp__summary { margin-inline:0 !important; }
}

/* Original #page-product .related-section: not the legacy catalog card layout. */
.kluzko-pdp .kluzko-pdp__related { width: min(calc(100vw - 48px), 1232px) !important; max-width: 1232px !important; margin-inline: auto !important; padding: 80px 0 !important; }
.kluzko-pdp .kluzko-pdp__related-eyebrow { display: block !important; margin: 0 0 8px !important; text-align: center; font: 400 11px/1.6 var(--font-body); letter-spacing: 2px; text-transform: uppercase; color: var(--stone); }
.kluzko-pdp .kluzko-pdp__related h2.kluzko-pdp__related-heading { margin: 0 0 48px !important; font: 400 clamp(24px,3vw,32px)/1.6 var(--font-display) !important; letter-spacing: normal !important; text-align: center; }
.kluzko-pdp .kluzko-pdp__related-grid { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 24px !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
.kluzko-pdp .kluzko-pdp__related-grid .kluzko-card { display: block !important; width: 100% !important; max-width: none !important; min-width: 0; margin: 0 !important; padding: 0 !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__info { display: block !important; padding: 0 2px !important; margin: 0 !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__title { font: 400 14px/1.6 var(--font-body) !important; letter-spacing: normal !important; margin: 0 0 4px !important; padding: 0 !important; text-transform: none !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__price { width: auto !important; justify-self: stretch !important; font: 500 14px/1.6 var(--font-body) !important; letter-spacing: normal !important; color: var(--ink) !important; margin: 0 !important; text-align: left !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__price * { text-align: inherit !important; font: inherit !important; letter-spacing: inherit !important; color: inherit !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__swatches,
.kluzko-pdp .kluzko-pdp__related .kluzko-card__wishlist-slot,
.kluzko-pdp .kluzko-pdp__related .kluzko-card__scrim,
.kluzko-pdp .kluzko-pdp__related p:empty { display: none !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__badge-slot { top: 12px !important; left: 12px !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-card__image-wrap { border: 0 !important; }
.kluzko-pdp .kluzko-pdp__related .kluzko-badge { top: 0 !important; left: 0 !important; font: 400 10px/1.6 var(--font-body) !important; letter-spacing: .5px !important; padding: 4px 12px !important; border-radius: 20px !important; }
@media (max-width: 768px) {
 .kluzko-pdp .kluzko-pdp__related-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 16px !important; }
}
