/* =================================================================
   CUSTOM CSS – Kuchniapolowa
   Dodatkowe style i overrides dla Elementor
   ================================================================= */

/* ------------------------------------------------------------------
   TOP UNIT BANNER  (desktop only — mobile header handles this)
   ------------------------------------------------------------------ */
#kp-top-banner {
  width: 100%;
  background: #070907;
  border-bottom: 1px solid rgba(201,168,76,0.22);
  padding: 7px 24px;
  text-align: center;
  font-family: 'Oswald', sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #C9A84C;
  box-sizing: border-box;
  position: relative;
  z-index: 10001;
}

@media (max-width: 767px) {
  #kp-top-banner { display: none; }
}

/* ------------------------------------------------------------------
   HERO DIAGONAL SPLIT  (homepage first section)
   Khaki-green left · Black right · diagonal cut
   ------------------------------------------------------------------ */
body.home .elementor-top-section:first-of-type {
  background: linear-gradient(
    108deg,
    #2D3A12 0%,
    #2D3A12 56%,
    #060606 56%
  ) !important;
  background-attachment: scroll !important;
}

/* Clear any Elementor inline overlay on the hero */
body.home .elementor-top-section:first-of-type > .elementor-background-overlay {
  opacity: 0 !important;
}

/* ------------------------------------------------------------------
   Content removals
   ------------------------------------------------------------------ */

/* Hide bread recipe box (removed per request) */
.recipe-box,
.recipe-box + * {
  display: none !important;
}

/* ------------------------------------------------------------------
   Elementor compatibility overrides + global centering
   ------------------------------------------------------------------ */

/* Dark background on html/body — eliminates white bar at bottom */
html,
body {
  background-color: #0F110C !important;
  margin: 0;
  padding: 0;
  /* overflow-x: clip does NOT block vertical scrolling on iOS (unlike hidden) */
  overflow-x: clip;
}

/* Page wrapper clips horizontal overflow — safe wrapper, not body */
#page.site-wrapper {
  width: 100%;
  margin: 0;
  padding: 0;
  background-color: #0F110C;
  overflow-x: clip;
}

/* No stray spacing around content wrapper */
#content.site-content {
  margin: 0;
  padding: 0;
}

/* All Elementor containers centered */
.elementor-section .elementor-container,
.elementor-section-boxed .elementor-container {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* Elementor flex containers (newer markup) */
.e-con {
  max-width: 1200px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Full-width sections should not constrain their container */
.elementor-section-full_width .elementor-container,
.elementor-section-full_width .e-con {
  max-width: 100%;
}

/* Header always full-width and centered */
.site-header,
.site-header__inner {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Footer sections */
.elementor-location-footer .elementor-container,
.elementor-location-footer .e-con {
  max-width: 1200px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Footer bottom bar text centered on mobile, space-between on desktop */
.elementor-location-footer .elementor-widget-html [style*="justify-content:space-between"] {
  justify-content: space-between;
}

/* Fallback footer layout */
.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.footer-bottom {
  text-align: center;
}

/* General text/heading centering helpers Elementor sometimes misses */
.elementor-widget-heading .elementor-heading-title {
  margin-left: auto;
  margin-right: auto;
}

/* Column inner wrap always fills its column */
.elementor-widget-wrap {
  width: 100%;
}

/* ==================================================================
   MOBILE HEADER  (always defined, hidden above 767px)
   ================================================================== */

#kp-mobile-header {
  display: none;
}

#kp-mobile-drawer {
  display: none;
}

@media (max-width: 767px) {

  /* ── Bar ─────────────────────────────────────────────────────── */
  #kp-mobile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 64px;
    padding: 0 18px;
    background: #0F110C;
    border-bottom: 1px solid rgba(201,168,76,0.18);
    z-index: 10000;
    box-sizing: border-box;
  }

  /* ── Logo ────────────────────────────────────────────────────── */
  .kp-mob-logo {
    display: flex;
    align-items: center;
    gap: 11px;
    text-decoration: none;
  }

  .kp-mob-monogram {
    width: 36px;
    height: 36px;
    border: 2px solid #C9A84C;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Oswald', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #C9A84C;
    letter-spacing: 1px;
    flex-shrink: 0;
  }

  .kp-mob-name {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
  }

  .kp-mob-title {
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    font-weight: 700;
    color: #F0EAD2;
    letter-spacing: 0.3px;
  }

  .kp-mob-sub {
    font-family: 'Oswald', sans-serif;
    font-size: 9px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #C9A84C;
  }

  /* ── Toggle button ───────────────────────────────────────────── */
  .kp-mob-toggle {
    background: transparent;
    border: none;
    padding: 6px;
    cursor: pointer;
    color: #F0EAD2;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .kp-mob-toggle svg {
    width: 24px;
    height: 24px;
    display: block;
    color: #F0EAD2;
    stroke: #F0EAD2;
  }

  /* Show hamburger, hide X by default */
  .kp-mob-close { display: none; }
  #kp-mobile-header.menu-open .kp-mob-close  { display: block; }
  #kp-mobile-header.menu-open svg:first-of-type { display: none; }

  /* ── Drawer ──────────────────────────────────────────────────── */
  #kp-mobile-drawer {
    display: block;
    position: fixed;
    top: 64px;
    left: 0;
    right: 0;
    background: #0F110C;
    border-top: 1px solid rgba(201,168,76,0.2);
    z-index: 9999;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: 0 8px 32px rgba(0,0,0,0.6);
  }

  #kp-mobile-drawer.is-open {
    max-height: 80vh;
    overflow-y: auto;
  }

  #kp-mobile-drawer ul {
    list-style: none;
    margin: 0;
    padding: 8px 0 16px;
  }

  #kp-mobile-drawer li a {
    display: block;
    padding: 14px 24px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.88rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #C8BEA4;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    transition: color 0.2s, padding-left 0.2s;
  }

  #kp-mobile-drawer li a:hover,
  #kp-mobile-drawer li a:active {
    color: #C9A84C;
    padding-left: 30px;
  }

  /* Removed: this compensated for the old fixed #kp-mobile-header, which the
     current sticky .kpx-header replaced. It left a 64px blank band above the
     header on every page at <=767px. */

}

/* ==================================================================
   MOBILE FIXES  (≤ 767px)
   ================================================================== */
@media (max-width: 767px) {

  /* --- Prevent horizontal overflow — but NOT on header elements --- */
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  /* overflow-x only on non-header wrappers to avoid clipping the dropdown */
  #page.site-wrapper,
  #content.site-content,
  .elementor-section:not(.elementor-location-header .elementor-section),
  .elementor-container:not(.elementor-location-header .elementor-container),
  .e-con:not(.elementor-location-header .e-con) {
    max-width: 100% !important;
    overflow-x: clip;
  }

  /* Images and media never overflow */
  img, video, iframe {
    max-width: 100% !important;
    height: auto;
  }

  /* ---- ELEMENTOR HEADER ----------------------------------------- */

  /* Header and all its children must allow overflow for the dropdown */
  .elementor-location-header,
  .elementor-location-header .elementor-section,
  .elementor-location-header .elementor-container,
  .elementor-location-header .elementor-column,
  .elementor-location-header .elementor-widget-wrap {
    overflow: visible !important;
  }

  /* Header container: single flex row */
  .elementor-location-header .elementor-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 16px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Logo column – shrink to content */
  .elementor-location-header .elementor-col-25,
  .elementor-location-header .elementor-element-3d2ffe14 {
    width: auto !important;
    flex: 0 0 auto !important;
    max-width: none !important;
  }

  /* Nav column – shrink to toggle, pushed right */
  .elementor-location-header .elementor-col-55,
  .elementor-location-header .elementor-element-edfd8154 {
    width: auto !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    margin-left: auto !important;
    position: static !important;
  }

  /* CTA column – hidden on mobile */
  .elementor-location-header .elementor-element-c5d68491 {
    display: none !important;
  }

  /* Hamburger: white icon, right-edge, beats Elementor's specificity */
  .elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-menu-toggle,
  .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 0 0 auto !important;
    color: #F0EAD2 !important;
    background: transparent !important;
    border: none !important;
    padding: 6px !important;
    cursor: pointer;
    min-width: 36px;
    min-height: 36px;
  }

  .elementor-location-header .elementor-menu-toggle svg,
  .elementor-location-header .elementor-menu-toggle .e-font-icon-svg {
    fill: #F0EAD2 !important;
    color: #F0EAD2 !important;
    width: 24px !important;
    height: 24px !important;
  }

  /* <header> is the full-width positioning ancestor */
  .elementor-location-header {
    position: relative !important;
  }

  /* Everything inside the header is static — no intermediate positioning context */
  .elementor-location-header .elementor-section,
  .elementor-location-header .elementor-column,
  .elementor-location-header .elementor-widget-wrap,
  .elementor-location-header .elementor-widget-nav-menu {
    position: static !important;
  }

  /* Dropdown: fixed to viewport width, directly below header */
  .elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed !important;
    top: 70px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    background: #0F110C !important;
    border-top: 1px solid rgba(201,168,76,0.25) !important;
    z-index: 9998 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.6) !important;
  }

  .elementor-location-header .elementor-nav-menu--dropdown .elementor-item {
    padding: 14px 24px !important;
    display: block !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    color: #F0EAD2 !important;
    font-family: 'Oswald', sans-serif !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    font-size: 0.85rem !important;
  }

  /* ---- SECTIONS & COLUMNS --------------------------------------- */

  /* All columns stack full-width */
  .elementor-column {
    width: 100% !important;
    flex: 0 0 100% !important;
  }

  /* Reduce excessive section padding on mobile */
  .elementor-section,
  .elementor-top-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .elementor-widget-wrap {
    padding: 0 16px !important;
  }

  /* Hero sections keep tighter vertical padding */
  .elementor-top-section:first-child .elementor-widget-wrap {
    padding: 40px 20px !important;
  }

  /* ---- FOOTER ---------------------------------------------------- */
  .elementor-location-footer .elementor-column {
    width: 100% !important;
  }

  .elementor-location-footer .elementor-widget-html [style*="justify-content:space-between"] {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 12px !important;
  }

  .footer-inner {
    padding: 0 16px;
  }

  /* ---- BACK TO TOP ---------------------------------------------- */
  #back-to-top {
    bottom: 20px !important;
    right: 16px !important;
  }
}

/* Custom Elementor button styles */
.elementor-button.btn-military {
  background: var(--color-accent, #C9A84C);
  color: var(--color-dark, #1C1A17);
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: 2px solid var(--color-accent, #C9A84C);
  border-radius: 0;
  transition: all 0.3s ease;
}

/* ==================================================================
   BATCH 12 — Sub-page uniformity + contrast + mobile
   2026-05-18
   ================================================================== */

/* --- PAGE HEADER (generic page.php): dark military hero to match sub-pages --- */
.page-header {
  background:
    linear-gradient(135deg, rgba(45,58,18,0.97) 0%, rgba(15,17,12,0.97) 60%),
    #0F110C !important;
  padding: clamp(64px, 9vw, 112px) 0 clamp(48px, 6vw, 80px);
  text-align: left;
  border-bottom: 2px solid rgba(201,168,76,0.2);
}

.page-header > .container,
.page-header .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 48px);
}

.page-header__title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.2rem, 5vw, 3.8rem) !important;
  color: #F0EAD2 !important;
  margin: 0 0 16px;
  line-height: 1.15;
}

.page-header .section-label {
  color: #C9A84C;
  margin-bottom: 12px;
}

.page-header .breadcrumbs {
  color: rgba(240,234,210,0.5);
  margin-bottom: 24px;
  display: block;
}

.page-header .breadcrumbs a {
  color: rgba(201,168,76,0.75);
  text-decoration: none;
}
.page-header .breadcrumbs a:hover {
  color: #C9A84C;
  text-decoration: underline;
}

.page-header .divider {
  margin: 20px 0 0;
  width: 48px;
}

/* --- GENERIC CONTENT AREA (page.php non-Elementor): fix invisible text on dark bg --- */
.site-main > .container.section {
  color: #C8BEA4;
  padding-top: clamp(40px, 5vw, 64px);
  padding-bottom: clamp(48px, 6vw, 80px);
}

.site-main > .container.section .entry-content {
  color: #C8BEA4;
}

.site-main > .container.section h1,
.site-main > .container.section h2,
.site-main > .container.section h3,
.site-main > .container.section h4 {
  color: #F0EAD2;
}

.site-main > .container.section a {
  color: #C9A84C;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.site-main > .container.section a:hover {
  color: #F0EAD2;
}

/* Removed: 3px olive/gold rule above cart, checkout and account content.
   It read as a stray bar under the header and is not in any makieta. */

/* WooCommerce page H1 title: stronger military styling */
.kp-cart-page .entry-title,
.kp-checkout-page .entry-title,
.kp-account-page .entry-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem) !important;
  color: #1C1A17 !important;
  padding-bottom: 20px !important;
  border-bottom: 2px solid rgba(201,168,76,0.3) !important;
  margin-bottom: 32px !important;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(16px, 3vw, 48px);
}

/* Elementor header handles mobile via hamburger toggle (built-in responsive) */

/* --- MOBILE: cart+account icons aligned within the 64px custom mobile bar --- */
@media (max-width: 767px) {
  #kp-header-icons {
    top: 0 !important;
    height: 64px !important;
    right: 56px !important;
    z-index: 10001;
  }
  .kp-hicon {
    width: 34px;
    height: 34px;
  }
  .kp-hicon svg {
    width: 17px !important;
    height: 17px !important;
  }
}

/* --- CENTERING: ensure all sub-page containers stay within 1200px --- */
.site-main .container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* WooCommerce shop page: result count + ordering centered */
.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 48px);
}

/* Single product: breadcrumb centering */
.woocommerce .woocommerce-breadcrumb {
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px clamp(16px, 3vw, 48px);
  font-family: 'Oswald', sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7A8070;
}

.woocommerce .woocommerce-breadcrumb a {
  color: var(--kp-olive2, #4A5320);
}
.woocommerce .woocommerce-breadcrumb a:hover {
  color: #7A5A10;
}

.elementor-button.btn-military:hover {
  background: transparent;
  color: var(--color-accent, #C9A84C);
}

/* ------------------------------------------------------------------
   Utility classes usable in Elementor Custom CSS
   ------------------------------------------------------------------ */

.kp-olive-bg   { background-color: #4A5320 !important; }
.kp-dark-bg    { background-color: #1C1A17 !important; }
.kp-parchment  { background-color: #F0EAD2 !important; }
.kp-gold-text  { color: #C9A84C !important; }
.kp-light-text { color: #F0EAD2 !important; }

.kp-border-top    { border-top: 3px solid #C9A84C; }
.kp-border-left   { border-left: 5px solid #C9A84C; }
.kp-border-bottom { border-bottom: 3px solid #C9A84C; }

.kp-military-font {
  font-family: 'Oswald', sans-serif !important;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.kp-serif-font {
  font-family: 'Playfair Display', serif !important;
}

/* ------------------------------------------------------------------
   Animated counters (used via Intersection Observer in JS)
   ------------------------------------------------------------------ */
.kp-counter {
  font-family: 'Oswald', sans-serif;
  font-size: 3.5rem;
  color: #C9A84C;
  line-height: 1;
  display: block;
}

/* ------------------------------------------------------------------
   Image overlay for hero / section backgrounds
   ------------------------------------------------------------------ */
.kp-overlay {
  position: relative;
}

.kp-overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(74,83,32,0.75), rgba(28,26,23,0.65));
  pointer-events: none;
}

.kp-overlay > * {
  position: relative;
  z-index: 1;
}

/* ------------------------------------------------------------------
   Blockquote – wojskowy styl
   ------------------------------------------------------------------ */
blockquote.kp-quote,
.kp-quote {
  border-left: 5px solid #C9A84C;
  padding: 20px 32px;
  margin: 40px 0;
  background: #2A2820;
  color: #F0EAD2;
  font-size: 1.15rem;
  font-style: italic;
}

/* ------------------------------------------------------------------
   Timeline (dla historii)
   ------------------------------------------------------------------ */
.kp-timeline {
  position: relative;
  padding-left: 40px;
}

.kp-timeline::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #C9A84C;
  opacity: 0.4;
}

.kp-timeline-item {
  position: relative;
  margin-bottom: 32px;
}

.kp-timeline-item::before {
  content: '';
  position: absolute;
  left: -34px;
  top: 6px;
  width: 12px;
  height: 12px;
  background: #C9A84C;
  border-radius: 50%;
}

.kp-timeline-year {
  font-family: 'Oswald', sans-serif;
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  color: #C9A84C;
  text-transform: uppercase;
  margin-bottom: 4px;
}

/* ------------------------------------------------------------------
   Scroll reveal animations (triggered by JS)
   ------------------------------------------------------------------ */
.kp-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.kp-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.kp-reveal-delay-1 { transition-delay: 0.1s; }
.kp-reveal-delay-2 { transition-delay: 0.2s; }
.kp-reveal-delay-3 { transition-delay: 0.3s; }
.kp-reveal-delay-4 { transition-delay: 0.4s; }

/* ------------------------------------------------------------------
   WooCommerce dark theme overrides
   ------------------------------------------------------------------ */

/* General shop background */
.woocommerce,
.woocommerce-page {
  background-color: #111411;
  color: #C8BEA4;
}

/* Product grid */
.woocommerce ul.products {
  margin: 0;
}

.woocommerce ul.products li.product {
  background: #191C15;
  border: 1px solid rgba(201,168,76,0.1);
  transition: border-color 0.3s ease, transform 0.3s ease;
  padding: 0 0 20px;
}

.woocommerce ul.products li.product:hover {
  border-color: rgba(201,168,76,0.4);
  transform: translateY(-3px);
}

/* Product image placeholder (no image) */
.woocommerce ul.products li.product .woocommerce-placeholder {
  background: #2D3A12;
  opacity: 0.5;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Oswald', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #F0EAD2;
  padding: 16px 16px 4px;
}

/* Price */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .amount {
  color: #C9A84C;
  font-family: 'Oswald', sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
}

/* Add to cart button */
.woocommerce ul.products li.product .button,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input[type=submit] {
  background: #2D3A12;
  color: #F0EAD2;
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 0;
  border: 1px solid rgba(201,168,76,0.3);
  padding: 10px 24px;
  font-size: 0.8rem;
  transition: all 0.25s ease;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input[type=submit]:hover {
  background: #C9A84C;
  color: #0F110C;
  border-color: #C9A84C;
}

/* Single product page */
.woocommerce div.product .product_title {
  font-family: 'Oswald', sans-serif;
  color: #F0EAD2;
  font-size: 2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: #C9A84C;
  font-family: 'Oswald', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
}

.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-Tabs-panel {
  color: #C8BEA4;
  font-size: 0.95rem;
  line-height: 1.8;
}

.woocommerce div.product .woocommerce-product-gallery {
  border: 1px solid rgba(201,168,76,0.2);
  background: #191C15;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  background: transparent;
  border-bottom: 2px solid rgba(201,168,76,0.2);
  padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: #191C15;
  border-color: rgba(201,168,76,0.15);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: #2D3A12;
  border-bottom-color: #2D3A12;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.8rem;
  color: #C8BEA4;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: #C9A84C;
}

/* Cart & checkout */
.woocommerce table.cart,
.woocommerce-cart-form {
  color: #C8BEA4;
}

.woocommerce table.cart th,
.woocommerce table.shop_table th {
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #C9A84C;
  font-size: 0.8rem;
  border-color: rgba(201,168,76,0.2);
  background: #191C15;
}

.woocommerce table.cart td,
.woocommerce table.shop_table td {
  border-color: rgba(255,255,255,0.06);
  background: #111411;
  color: #C8BEA4;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review {
  background: #191C15;
  border: 1px solid rgba(201,168,76,0.15);
  padding: 24px;
  color: #C8BEA4;
}

/* Checkout form inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  background: #0F110C;
  border: 1px solid rgba(201,168,76,0.2);
  color: #F0EAD2;
  border-radius: 0;
  font-family: 'Open Sans', sans-serif;
  padding: 12px 16px;
  transition: border-color 0.2s;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
  border-color: #C9A84C;
  outline: none;
  box-shadow: 0 0 0 2px rgba(201,168,76,0.15);
}

.woocommerce form .form-row label {
  color: #C8BEA4;
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

/* Notices */
.woocommerce-message,
.woocommerce-info {
  background: #2D3A12;
  border-top-color: #C9A84C;
  color: #F0EAD2;
}

.woocommerce-error {
  background: #3A1212;
  border-top-color: #C94C4C;
  color: #F0EAD2;
}

/* Rating stars */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
  color: #C9A84C;
}

/* Mobile WooCommerce fixes */
@media (max-width: 767px) {
  .woocommerce ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 0 16px !important;
  }
}

/* ------------------------------------------------------------------
   KP PRODUCT CARD  (custom content-product.php template)
   ------------------------------------------------------------------ */
li.kp-product-card {
  list-style: none;
  background: #191C15;
  border: 1px solid rgba(201,168,76,0.1);
  display: flex;
  flex-direction: column;
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
}

li.kp-product-card:hover {
  border-color: rgba(201,168,76,0.45);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.5);
}

/* Image area */
.kp-card-img-link {
  display: block;
  overflow: hidden;
  background: #141710;
  aspect-ratio: 1 / 1;
}

.kp-card-img-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
  display: block;
}

li.kp-product-card:hover .kp-card-img-link img {
  transform: scale(1.04);
}

/* Placeholder when no image */
.kp-card-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1C2410 0%, #0D100A 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.kp-card-monogram {
  width: 64px;
  height: 64px;
  border: 2px solid rgba(201,168,76,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Oswald', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: rgba(201,168,76,0.4);
  letter-spacing: 0.05em;
}

/* Card body */
.kp-card-body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 8px;
}

.kp-card-title {
  font-family: 'Oswald', sans-serif;
  font-size: 0.92rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #F0EAD2;
  text-decoration: none;
  line-height: 1.3;
  transition: color 0.2s;
}

.kp-card-title:hover { color: #C9A84C; }

.kp-card-price {
  font-family: 'Oswald', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: #C9A84C;
}

.kp-card-price .amount { color: inherit; }

.kp-card-excerpt {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.8rem;
  color: #7A8070;
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

/* Actions row */
.kp-card-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 12px;
}

.kp-btn-add-cart,
.kp-btn-add-cart.button {
  background: #2D3A12 !important;
  color: #F0EAD2 !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border: 1px solid rgba(201,168,76,0.25) !important;
  border-radius: 0 !important;
  padding: 9px 16px !important;
  text-decoration: none;
  transition: all 0.22s ease !important;
  flex: 1;
  text-align: center;
}

.kp-btn-add-cart:hover,
.kp-btn-add-cart.button:hover {
  background: #C9A84C !important;
  color: #0F110C !important;
  border-color: #C9A84C !important;
}

.kp-btn-details {
  font-family: 'Oswald', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #5A6050;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s;
}

.kp-btn-details:hover { color: #C9A84C; }

/* Single product page overrides */
#kp-single-product {
  background: #0F110C;
  min-height: 60vh;
}

/* WC single product dark overrides */
.woocommerce div.product form.cart .button {
  background: #2D3A12;
  color: #F0EAD2;
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border-radius: 0;
  border: 1px solid rgba(201,168,76,0.3);
  padding: 14px 32px;
  font-size: 0.85rem;
  transition: all 0.25s ease;
}

.woocommerce div.product form.cart .button:hover {
  background: #C9A84C;
  color: #0F110C;
  border-color: #C9A84C;
}

.woocommerce div.product form.cart .qty {
  background: #191C15;
  border: 1px solid rgba(201,168,76,0.2);
  color: #F0EAD2;
  border-radius: 0;
  width: 64px;
  text-align: center;
}

/* Product tabs dark theme */
.woocommerce div.product .woocommerce-tabs .tabs {
  border-bottom: 1px solid rgba(201,168,76,0.2);
}

.woocommerce div.product .woocommerce-tabs .tabs li {
  background: #191C15;
  border: 1px solid rgba(201,168,76,0.1);
  border-bottom: none;
  margin-right: 4px;
}

.woocommerce div.product .woocommerce-tabs .tabs li.active {
  background: #2D3A12;
}

.woocommerce div.product .woocommerce-tabs .tabs li a {
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.8rem;
  color: #C8BEA4;
}

.woocommerce div.product .woocommerce-tabs .tabs li.active a {
  color: #C9A84C;
}

.woocommerce div.product .woocommerce-tabs .panel {
  background: #191C15;
  border: 1px solid rgba(201,168,76,0.1);
  padding: 32px;
  color: #C8BEA4;
  border-top: none;
}

@media (max-width: 767px) {
  li.kp-product-card { width: 100% !important; float: none !important; margin: 0 0 16px !important; }
  .kp-card-actions { flex-direction: column; }
  .kp-btn-add-cart { width: 100%; }
}

/* ------------------------------------------------------------------
   Contact form overrides
   ------------------------------------------------------------------ */
.wpcf7-form input,
.wpcf7-form textarea {
  border: 1px solid #D4C9A8;
  border-radius: 0;
  padding: 12px 16px;
  font-family: 'Open Sans', sans-serif;
  width: 100%;
  background: #F8F4EC;
  transition: border-color 0.3s ease;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border-color: #4A5320;
  outline: none;
  box-shadow: 0 0 0 3px rgba(74,83,32,0.15);
}

.wpcf7-form .wpcf7-submit {
  background: #4A5320;
  color: #F0EAD2;
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border: none;
  padding: 14px 36px;
  cursor: pointer;
  transition: background 0.3s ease;
}

.wpcf7-form .wpcf7-submit:hover {
  background: #C9A84C;
  color: #1C1A17;
}

/* ------------------------------------------------------------------
   PAGE TRANSITION OVERLAY
   ------------------------------------------------------------------ */
#kp-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  pointer-events: none;
  overflow: hidden;
}

.kp-ov-panel {
  position: absolute;
  inset: 0;
  background: #0F110C;
  transform: translateX(-100%);
  will-change: transform;
}

.kp-ov-needle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 3px;
  background: #C9A84C;
  box-shadow: 0 0 12px rgba(201,168,76,0.6);
  transform: translateX(-4px);
  opacity: 0;
  will-change: transform, opacity;
}

.kp-ov-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  opacity: 0;
  color: #F0EAD2;
  font-family: 'Oswald', sans-serif;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 0.85rem;
  pointer-events: none;
}

.kp-ov-monogram {
  font-size: 2.8rem;
  font-weight: 700;
  color: #C9A84C;
  line-height: 1;
  margin-bottom: 8px;
  letter-spacing: 0.3em;
}

/* ------------------------------------------------------------------
   SCROLL REVEAL – widget-level
   ------------------------------------------------------------------ */
.kp-widget-anim {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.kp-widget-anim.kp-in {
  opacity: 1;
  transform: translateY(0);
}

/* stagger siblings */
.kp-widget-anim:nth-child(2) { transition-delay: 0.08s; }
.kp-widget-anim:nth-child(3) { transition-delay: 0.16s; }
.kp-widget-anim:nth-child(4) { transition-delay: 0.24s; }
.kp-widget-anim:nth-child(5) { transition-delay: 0.32s; }

/* ------------------------------------------------------------------
   SCROLL REVEAL – divider draw effect
   ------------------------------------------------------------------ */
.kp-divider-anim .elementor-divider-separator {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.kp-divider-anim.kp-divider-in .elementor-divider-separator {
  transform: scaleX(1);
}

/* ------------------------------------------------------------------
   SCROLL REVEAL – section fade-in
   ------------------------------------------------------------------ */
.kp-section-anim {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.kp-section-anim.kp-section-in {
  opacity: 1;
  transform: translateY(0);
}

/* ------------------------------------------------------------------
   NAVIGATION MENU FONT
   ------------------------------------------------------------------ */

/* Main horizontal nav links */
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu--main a.elementor-item {
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
}

/* Active / current item */
.elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-nav-menu--main .elementor-item:hover {
  color: #C9A84C !important;
}

/* Dropdown items */
.elementor-nav-menu--dropdown .elementor-item,
.elementor-nav-menu--dropdown a {
  font-family: 'Oswald', sans-serif !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  font-size: 0.78rem !important;
}

/* Mobile toggle nav */
.elementor-nav-menu__toggle,
.elementor-nav-menu__toggle .elementor-icon {
  font-family: 'Oswald', sans-serif !important;
}

/* CTA button in nav (if present) */
.elementor-nav-menu .elementor-button {
  font-family: 'Oswald', sans-serif !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
}

/* Fallback theme header nav */
.main-navigation a,
.footer-nav a {
  font-family: 'Oswald', sans-serif !important;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.8rem;
}

/* ------------------------------------------------------------------
   SECTION HOVER GLOW EFFECT
   ------------------------------------------------------------------ */

/* Applies to all Elementor sections and containers */
.elementor-section,
.e-con {
  position: relative;
  transition: box-shadow 0.4s ease;
}

/* Inner shadow glow on hover — subtle warm vignette */
.elementor-section:hover,
.e-con:hover {
  box-shadow: inset 0 0 80px rgba(201, 168, 76, 0.06),
              inset 0 0 0 1px rgba(201, 168, 76, 0.08);
}

/* Stronger effect on dark sections */
.elementor-section[data-settings*="dark"]:hover,
.elementor-section.has-background:hover {
  box-shadow: inset 0 0 120px rgba(201, 168, 76, 0.09),
              inset 0 0 0 1px rgba(201, 168, 76, 0.12);
}

/* Pseudo-element overlay for a refined corner vignette */
.elementor-section::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at center, transparent 60%, rgba(201,168,76,0.07) 100%);
  transition: opacity 0.5s ease;
  z-index: 1;
}

.elementor-section:hover::after {
  opacity: 1;
}

/* Don't let the overlay cover child content */
.elementor-section > .elementor-container,
.elementor-section > .e-con-inner {
  position: relative;
  z-index: 2;
}

/* ------------------------------------------------------------------
   Back to top button
   ------------------------------------------------------------------ */
#back-to-top {
  position: fixed !important;
  bottom: 32px !important;
  right: 32px !important;
  left: auto !important;
  width: 48px;
  height: 48px;
  background: #4A5320;
  color: #F0EAD2;
  border: none;
  cursor: pointer;
  font-size: 20px;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: background 0.3s ease;
}

#back-to-top:hover {
  background: #C9A84C;
  color: #1C1A17;
}

#back-to-top.visible {
  display: flex;
}

/* ============================================================
   2026-05-17 — DIAGONAL HEADER BG EXTENDS INTO HERO + CONTRAST
   Goal 1: header's diagonal split continues across .hero so they
   read as one surface.
   Goal 2: kill low-contrast text on dark surfaces (inline khaki
   #9C8A5A on near-black, gold on olive, etc).
   ============================================================ */

/* --- Split bg now spans header + hero --- */
body.home .elementor-top-section:first-of-type,
body.home #hero.hero {
  background: linear-gradient(
    108deg,
    #2D3A12 0%,
    #2D3A12 56%,
    #060606 56%
  ) !important;
  background-attachment: fixed !important;
}

/* Hero's own pseudo-overlay would darken the split — disable */
body.home #hero.hero::before { display: none !important; }
/* Image overlay still visible underneath the gradient */
body.home #hero.hero .hero__bg { opacity: 0.35 !important; z-index: 0 !important; }
body.home #hero.hero .hero__content { z-index: 2 !important; }

/* iOS Safari fixed-attachment fallback */
@media (max-width: 768px) {
  body.home .elementor-top-section:first-of-type,
  body.home #hero.hero {
    background-attachment: scroll !important;
  }
}

/* --- DLACZEGO (.section--dark) value-card paragraph contrast ---
   Inline style="color:#9C8A5A" on bg #2A2820 is ratio ~2.5.
   Override to parchment-tone ~7+ on the card bg. */
.section--dark .value-card,
.section--dark .value-card p {
  color: #D8CFB4 !important;
}
.section--dark .value-card .value-card__title,
.section--dark .value-card__title {
  color: #F0EAD2 !important;
}

/* --- AKTYWNOSCI (.section--olive) — gold on olive fails normal text ---
   Switch titles + labels to parchment. Numbers stay gold but
   bump opacity so they remain decorative. */
.section--olive .activity-item__title {
  color: #F0EAD2 !important;
}
.section--olive .activity-item__list li {
  color: #EDE6CE !important;
}
.section--olive .activity-item__list li::before {
  color: #C9A84C !important; /* bullet stays gold for accent */
}
.section--olive .section-label,
.section--olive [class*="section-label"][style*="color:#C9A84C"] {
  color: #F0EAD2 !important;
  letter-spacing: 0.22em;
}

/* --- KONTAKT (.section--olive) same treatment --- */
.section--olive h2,
.section--olive h3 {
  color: #F0EAD2 !important;
}

/* --- Festiwal section: stats labels on white bg already pass.
   But Festiwal title color on white via h2 default = dark, OK.
   Inline italic <p style="color:#4A5320"> = olive on white OK.
   Nothing more to do here unless recipe-box is re-enabled. */

/* If recipe-box ever re-appears, ensure its text wins over any
   inherited body color. Belt-and-braces. */
.recipe-box,
.recipe-box p,
.recipe-box li,
.recipe-box em {
  color: #F0EAD2 !important;
}
.recipe-box h3,
.recipe-box .military-label {
  color: #C9A84C !important;
}

/* ============================================================
   2026-05-17 BATCH PASS — contrast leaks, header breakpoints,
   nav distill, recipe-box relocation, stats overdrive, pakiety,
   entity block, a11y polish. Palette + split bg unchanged.
   ============================================================ */

/* ---------- A. CONTRAST SAFETY NET ----------------------------- */
.section--dark p,
.section--dark .activity-item p,
.section--dark .value-card p,
[id="sprzet"] p {
  color: #D8CFB4 !important;
}
.section--olive p { color: #F0EAD2 !important; }

a[style*="background:#C9A84C"],
a[style*="background:#c9a84c"],
[style*="background:#C9A84C"] a,
[style*="background:#c9a84c"] a {
  color: #0F110C !important;
}
[style*="background:#C9A84C"] a:visited,
[style*="background:#c9a84c"] a:visited { color: #0F110C !important; }

.elementor-location-footer a[style*="color:#3A3830"],
.elementor-location-footer a[style*="color:#3a3830"] {
  color: #B5A98C !important;
}

/* ---------- B. HEADER TABLET BREAKPOINT (768-1023) ------------- */
@media (min-width: 768px) and (max-width: 1023px) {
  .elementor-31 .elementor-element.elementor-element-d6719643 {
    padding: 0 18px !important;
  }
  .elementor-31 .elementor-element.elementor-element-d6719643 > .elementor-container {
    min-height: 64px !important;
  }
  .elementor-31 .elementor-element.elementor-element-c5d68491 {
    display: none !important;
  }
  .elementor-31 .elementor-element.elementor-element-edfd8154 {
    width: 65% !important;
    flex: 0 0 65% !important;
    max-width: 65% !important;
  }
  .elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-nav-menu--main .elementor-item {
    font-size: 0.74rem !important;
    letter-spacing: 0.14em !important;
    padding: 8px 8px !important;
  }
  .elementor-31 .elementor-element.elementor-element-3d2ffe14 {
    width: 35% !important;
    flex: 0 0 35% !important;
    max-width: 35% !important;
  }
}

/* ---------- C. NAV DISTILL: 11 -> 6 ---------------------------- */
.elementor-nav-menu .menu-item-21,
.elementor-nav-menu .menu-item-24,
.elementor-nav-menu .menu-item-25,
.elementor-nav-menu .menu-item-26,
.elementor-nav-menu .menu-item-57 { display: none !important; }

.elementor-nav-menu--dropdown .menu-item-21,
.elementor-nav-menu--dropdown .menu-item-24,
.elementor-nav-menu--dropdown .menu-item-25,
.elementor-nav-menu--dropdown .menu-item-26,
.elementor-nav-menu--dropdown .menu-item-57 { display: none !important; }

/* ---------- D. SCROLL ANCHORS --------------------------------- */
:root { scroll-padding-top: 80px; }
[id="misja"],[id="dlaczego"],[id="aktywnosci"],[id="festiwal"],
[id="pakiety"],[id="edukacja"],[id="sprzet"],[id="konserwy"],
[id="kontakt"],[id="historia-top"],[id="receptury"] {
  scroll-margin-top: 84px;
}
@media (max-width: 767px) {
  :root { scroll-padding-top: 72px; }
  [id="misja"],[id="dlaczego"],[id="aktywnosci"],[id="festiwal"],
  [id="pakiety"],[id="edukacja"],[id="sprzet"],[id="konserwy"],
  [id="kontakt"],[id="historia-top"],[id="receptury"]
  { scroll-margin-top: 72px; }
}

/* ---------- E. NUMBERED VALUE-CARDS ---------------------------- */
.value-card__num {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 2.25rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #C9A84C;
  opacity: 0.55;
  line-height: 1;
  margin-bottom: 20px;
  font-variant-numeric: tabular-nums lining-nums;
}
.value-card .value-card__title {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #F0EAD2;
  margin-bottom: 12px;
}

/* ---------- F. RECIPE-BOX RELOCATION --------------------------- */
.recipe-box { display: none !important; }
.recipe-box.recipe-box--visible { display: block !important; }

.kp-historia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(24px, 4vw, 48px);
  margin-top: var(--space-7, 48px);
}
.kp-historia-grid .recipe-box { margin: 0; }

/* ---------- G. OVERDRIVE FESTIVAL STATS ------------------------ */
.festival-stats {
  border-top: 1px solid rgba(74,83,32,0.22);
  border-bottom: 1px solid rgba(74,83,32,0.22);
  padding: clamp(24px, 4vw, 40px) 0;
  background: transparent;
}
.stat-item {
  text-align: left;
  position: relative;
  padding-left: 0;
}
.stat-item__number {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: clamp(2.5rem, 7vw, 5.5rem);
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: -0.015em;
  color: #4A5320;
  font-variant-numeric: tabular-nums lining-nums;
  display: block;
}
.stat-item__label {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #6B6352;
  margin-top: 6px;
  display: block;
}
.section--dark .stat-item__number,
.section--olive .stat-item__number { color: #C9A84C; }
.section--dark .stat-item__label,
.section--olive .stat-item__label { color: #B5A98C; }

/* ---------- H. PAKIETY SECTION --------------------------------- */
.kp-pakiety__lede {
  max-width: 60ch;
  margin-bottom: var(--space-7, 48px);
  color: #2C2416;
}
.kp-pakiety-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #4A5320;
  border-bottom: 2px solid #4A5320;
  font-family: 'Open Sans', sans-serif;
}
.kp-pakiety-table thead th {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #4A5320;
  text-align: left;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(74,83,32,0.35);
  vertical-align: bottom;
  white-space: nowrap;
}
.kp-pakiety-table tbody th[scope="row"] {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: 1.15rem;
  color: #2C2416;
  padding: 18px 16px;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
  border-bottom: 1px solid rgba(74,83,32,0.18);
}
.kp-pakiety-table tbody td {
  padding: 18px 16px;
  color: #2C2416;
  border-bottom: 1px solid rgba(74,83,32,0.18);
  vertical-align: top;
  font-size: 0.95rem;
  line-height: 1.55;
}
.kp-pakiety-table tbody tr:last-child th,
.kp-pakiety-table tbody tr:last-child td { border-bottom: 0; }
.kp-pakiety-table tbody td:last-child {
  font-family: 'Oswald', Impact, sans-serif;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #4A5320;
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}
.kp-pakiety__note {
  margin-top: var(--space-6, 32px);
  max-width: 60ch;
  font-size: 0.85rem;
  color: #6B6352;
}
.kp-pakiety__cta {
  display: flex;
  gap: 16px;
  margin-top: var(--space-7, 48px);
  flex-wrap: wrap;
}
.btn.btn--outline.kp-btn-on-light {
  color: #4A5320;
  border-color: #4A5320;
}
.btn.btn--outline.kp-btn-on-light:hover {
  background: #4A5320;
  color: #F0EAD2;
}

@media (max-width: 720px) {
  .kp-pakiety-table thead { display: none; }
  .kp-pakiety-table tbody tr {
    display: block;
    padding: 16px 0;
    border-bottom: 1px solid rgba(74,83,32,0.18);
  }
  .kp-pakiety-table tbody tr:last-child { border-bottom: 0; }
  .kp-pakiety-table tbody th[scope="row"],
  .kp-pakiety-table tbody td {
    display: block;
    border: 0;
    padding: 4px 0;
    white-space: normal;
  }
}

/* ---------- I. ENTITY BLOCK (NIP / REGON / KRS) ---------------- */
.kp-entity {
  margin-top: var(--space-9, 80px);
  padding-top: var(--space-6, 32px);
  border-top: 1px solid rgba(240,234,210,0.18);
  text-align: left;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.kp-entity__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 18px 32px;
  margin: 0;
}
.kp-entity__list > div { display: flex; flex-direction: column; }
.kp-entity__list dt {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #B5A98C;
  margin-bottom: 4px;
}
.kp-entity__list dd {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.95rem;
  color: #F0EAD2;
  margin: 0;
  font-variant-numeric: tabular-nums lining-nums;
}

/* ---------- J. ARIA-CURRENT ACTIVE NAV ------------------------- */
.elementor-nav-menu .elementor-item.elementor-item-active,
.elementor-nav-menu a[aria-current="page"] {
  position: relative;
}
.elementor-nav-menu .elementor-item.elementor-item-active::after,
.elementor-nav-menu a[aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 2px;
  background: #C9A84C;
}

/* ---------- K. FOOTER LINK HOVER ------------------------------- */
.elementor-location-footer a { text-decoration: none; }
.elementor-location-footer a:hover { color: #C9A84C !important; }

/* ============================================================
   2026-05-17 BATCH 2 — festiwal/konserwy redo + hamburger
   ============================================================ */

/* ---------- HAMBURGER: gold-boxed, larger, visible -------------
   Old: parchment SVG on dark, no border. Blended into header.
   New: 44px hit area, 2px gold border at 0.6 alpha, gold-fill
   icon. On open state border goes full gold. */
@media (max-width: 1023px) {
  .elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-menu-toggle,
  .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle {
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border: 2px solid rgba(201,168,76,0.65) !important;
    background: rgba(15,17,12,0.55) !important;
    border-radius: 0 !important;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.15s ease;
  }
  .elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-menu-toggle:hover,
  .elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-menu-toggle:focus-visible,
  .elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-menu-toggle.elementor-active {
    border-color: #C9A84C !important;
    background: rgba(201,168,76,0.12) !important;
    outline: none;
  }
  .elementor-location-header .elementor-menu-toggle svg,
  .elementor-location-header .elementor-menu-toggle .e-font-icon-svg {
    width: 22px !important;
    height: 22px !important;
    fill: #C9A84C !important;
    color: #C9A84C !important;
    stroke: #C9A84C !important;
    stroke-width: 1.5 !important;
  }
  .elementor-location-header .elementor-menu-toggle.elementor-active svg {
    transform: scale(0.95);
  }
}

/* Theme fallback hamburger (header.php non-Elementor branch) */
.menu-toggle {
  border: 2px solid rgba(201,168,76,0.65) !important;
  background: rgba(15,17,12,0.55) !important;
  color: #C9A84C !important;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  font-size: 1.1rem !important;
}
.menu-toggle:hover,
.menu-toggle:focus-visible {
  border-color: #C9A84C !important;
  background: rgba(201,168,76,0.12) !important;
  outline: none;
}

/* Mobile custom kp-mobile-header hamburger (if active) */
@media (max-width: 767px) {
  .kp-mob-toggle {
    width: 44px !important;
    height: 44px !important;
    border: 2px solid rgba(201,168,76,0.65) !important;
    background: rgba(15,17,12,0.55) !important;
    color: #C9A84C !important;
  }
  .kp-mob-toggle svg,
  .kp-mob-toggle .kp-mob-close,
  .kp-mob-toggle .kp-mob-open {
    stroke: #C9A84C !important;
    color: #C9A84C !important;
    width: 22px !important;
    height: 22px !important;
  }
  .kp-mob-toggle:hover,
  .kp-mob-toggle:focus-visible,
  #kp-mobile-header.menu-open .kp-mob-toggle {
    border-color: #C9A84C !important;
    background: rgba(201,168,76,0.12) !important;
    outline: none;
  }
}

/* ============================================================
   FESTIWAL section: redone single-column with pull-quote +
   ration card.
   ============================================================ */
.kp-festiwal__inner {
  max-width: 860px;
  margin: 0 auto;
}
.kp-festiwal__intro {
  margin-bottom: clamp(24px, 4vw, 40px);
}
.kp-festiwal__lede {
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.65;
  color: #2C2416;
  max-width: 60ch;
  margin-bottom: 0;
}

/* Pull-quote: large Playfair italic, olive, indented with a
   gold vertical rule at left (1px ONLY, respects the side-stripe
   ban; this is a thin source-attribution rule, not a colored
   accent stripe). */
.kp-pullquote {
  margin: clamp(28px, 5vw, 56px) 0;
  padding: 12px 0 12px 28px;
  border-left: 1px solid #C9A84C;
  max-width: 56ch;
}
.kp-pullquote p {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  line-height: 1.35;
  color: #4A5320;
  margin: 0;
  max-width: 100%;
}

.kp-festiwal__body {
  margin-bottom: clamp(28px, 4vw, 48px);
}
.kp-festiwal__body p {
  max-width: 60ch;
  color: #2C2416;
  line-height: 1.7;
}

/* Ration card: source-material treatment. Lined table of
   weights. Carries the page's "document, not sell" thesis
   without bringing back the hidden recipe-box. */
.kp-ration-card {
  margin: clamp(28px, 4vw, 48px) 0;
  padding: clamp(20px, 3vw, 32px) clamp(20px, 3vw, 32px);
  background: #F8F4EC;
  border: 1px solid #D4C9A8;
  border-top: 2px solid #4A5320;
  border-bottom: 2px solid #4A5320;
  max-width: 640px;
}
.kp-ration-card .military-label {
  color: #8B6F1E !important;
  margin-bottom: 14px;
}
.kp-ration-card__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 32px;
  margin: 0;
}
.kp-ration-card__list > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px dotted rgba(74,83,32,0.35);
  gap: 12px;
}
.kp-ration-card__list dt {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.95rem;
  color: #2C2416;
  margin: 0;
}
.kp-ration-card__list dd {
  font-family: 'Oswald', Impact, sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  color: #4A5320;
  margin: 0;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}
.kp-ration-card__source {
  margin: 16px 0 0;
  font-size: 0.78rem;
  font-style: italic;
  color: #6B6352;
}
.kp-ration-card__source a {
  color: #8B6F1E;
  text-decoration: underline;
}

.kp-festiwal__stats {
  margin: clamp(32px, 5vw, 56px) 0 clamp(24px, 4vw, 40px);
}
.kp-festiwal__cta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

/* ============================================================
   KONSERWY KRAFTOWE: dark-mode product ledger
   3 stamped-monogram cards, real meta (waga / mięso / cena),
   Do koszyka + Szczegóły. No emoji.
   ============================================================ */
.kp-konserwy {
  background-color: #1C1A17;
}
.kp-konserwy__intro {
  max-width: 760px;
  margin-bottom: clamp(32px, 5vw, 56px);
}
.kp-konserwy__lede {
  color: #D8CFB4 !important;
  max-width: 60ch;
  margin-bottom: 0;
}
.kp-konserwy__intro h2 { color: #F0EAD2 !important; }

.kp-konserwy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgba(201,168,76,0.18);
  border-left: 1px solid rgba(201,168,76,0.18);
}
.kp-konserwa {
  border-right: 1px solid rgba(201,168,76,0.18);
  border-bottom: 1px solid rgba(201,168,76,0.18);
  background: transparent;
  display: flex;
  flex-direction: column;
  transition: background 0.3s ease;
}
.kp-konserwa:hover { background: rgba(201,168,76,0.04); }

/* Media: stamped monogram, no emoji, no color block */
.kp-konserwa__media {
  position: relative;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-bottom: 1px solid rgba(201,168,76,0.12);
  overflow: hidden;
  background:
    radial-gradient(circle at 30% 25%, rgba(201,168,76,0.08), transparent 60%),
    linear-gradient(135deg, #2A2820 0%, #0F110C 100%);
  transition: border-color 0.3s ease;
}
.kp-konserwa__media::before {
  content: '';
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(201,168,76,0.22);
  pointer-events: none;
}
.kp-konserwa:hover .kp-konserwa__media {
  border-color: rgba(201,168,76,0.4);
}
.kp-konserwa__monogram {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: clamp(3.2rem, 6vw, 4.5rem);
  letter-spacing: 0.04em;
  color: #C9A84C;
  line-height: 1;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.kp-konserwa:hover .kp-konserwa__monogram {
  transform: translateY(-3px);
}
.kp-konserwa__seria {
  position: absolute;
  top: 14px;
  left: 16px;
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #B5A98C;
  font-variant-numeric: tabular-nums lining-nums;
}

.kp-konserwa__body {
  padding: clamp(20px, 2.5vw, 32px);
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
}
.kp-konserwa__tag {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #C9A84C;
  margin: 0;
}
.kp-konserwa__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  color: #F0EAD2;
}
.kp-konserwa__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.kp-konserwa__title a:hover { color: #C9A84C; }
.kp-konserwa__desc {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.92rem;
  line-height: 1.6;
  color: #D8CFB4 !important;
  margin: 0;
}
.kp-konserwa__meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px 14px;
  margin: 8px 0 4px;
  padding: 14px 0;
  border-top: 1px solid rgba(201,168,76,0.18);
  border-bottom: 1px solid rgba(201,168,76,0.18);
}
.kp-konserwa__meta > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.kp-konserwa__meta dt {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #B5A98C;
  margin: 0;
}
.kp-konserwa__meta dd {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #F0EAD2;
  margin: 0;
  font-variant-numeric: tabular-nums lining-nums;
}
.kp-konserwa__meta > div:last-child dd { color: #C9A84C; }

.kp-konserwa__actions {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
  flex-wrap: wrap;
}
.kp-konserwa__buy {
  padding: 11px 22px !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
}
.kp-konserwa__details {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #B5A98C;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}
.kp-konserwa__details:hover { color: #C9A84C; }

.kp-konserwy__foot {
  margin: clamp(24px, 4vw, 40px) 0 0;
  text-align: right;
}
.kp-konserwy__foot a {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C9A84C;
  text-decoration: none;
  border-bottom: 1px solid rgba(201,168,76,0.4);
  padding-bottom: 4px;
  transition: border-color 0.2s ease;
}
.kp-konserwy__foot a:hover { border-bottom-color: #C9A84C; }

@media (max-width: 767px) {
  .kp-konserwy-grid {
    grid-template-columns: 1fr;
    border-left: 0;
  }
  .kp-konserwa { border-right: 0; }
  .kp-konserwa__meta {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .kp-konserwa__actions { flex-direction: column; align-items: stretch; }
  .kp-konserwa__buy { text-align: center; }
}

/* ============================================================
   2026-05-17 BATCH 3 — Container widened to 1600px
   All container/grid maxima bumped 1200 -> 1600. Per-section
   column tuning so wide screens read as designed, not stretched.
   Inner reading columns stay capped (prose 70ch, festiwal 860).
   ============================================================ */

/* Core container override */
.container,
#page.site-wrapper > .container,
.section > .container,
.footer-inner,
.activities-grid,
.kp-konserwy-grid,
.elementor-location-footer .footer-inner {
  max-width: 1600px !important;
}

/* Elementor containers (header + any Elementor content wraps) */
.elementor-section .elementor-container,
.elementor-section-boxed .elementor-container,
.e-con {
  max-width: 1600px !important;
}
.elementor-section-full_width .elementor-container,
.elementor-section-full_width .e-con {
  max-width: 100% !important;
}

/* Container side padding bumps to keep edges off the viewport
   on very wide screens. */
.container,
.elementor-section .elementor-container,
.elementor-section-boxed .elementor-container,
.e-con {
  padding-left: clamp(20px, 4vw, 64px) !important;
  padding-right: clamp(20px, 4vw, 64px) !important;
}

/* ----- Header bar: keep nav from drifting to the edges ----- */
.site-header__inner {
  max-width: 1600px;
}

/* ============================================================
   PER-SECTION COLUMN TUNING AT 1600
   ============================================================ */

/* Festiwal: inner narrow column stays. Allow more breathing on
   ultra-wide. */
@media (min-width: 1280px) {
  .kp-festiwal__inner { max-width: 920px; }
  .kp-festiwal__lede { max-width: 62ch; }
}

/* Two-col asymmetric grids: at ≥1280 give them more column gap
   so the 1600 container doesn't feel like spread-out 1fr 1fr. */
@media (min-width: 1280px) {
  #edukacja .container > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 5fr 7fr !important;
    column-gap: clamp(64px, 6vw, 112px) !important;
  }
  #sprzet .container > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 7fr 5fr !important;
    column-gap: clamp(64px, 6vw, 112px) !important;
  }
}

/* Values grid (dlaczego): 4 columns at ≥1024, first card spans 2.
   At ≥1280 the 5-card row breathes; bump gap. */
@media (min-width: 1024px) {
  .values-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(24px, 2.5vw, 40px);
  }
}
@media (min-width: 1440px) {
  .values-grid { gap: 40px; }
}

/* Activities grid: 4 columns on wide screens (currently auto-fit
   minmax 260 → would create 5+ at 1600). Cap to 4. */
@media (min-width: 1024px) {
  .activities-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 1023px) and (min-width: 768px) {
  .activities-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Konserwy grid: 3 columns on desktop. At 1600 don't let it
   collapse to 4 auto-fit columns since each card carries dense
   product meta. */
@media (min-width: 900px) {
  .kp-konserwy-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Products-grid (older Woo grid path): same 3-col cap */
@media (min-width: 900px) {
  .products-grid {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Pakiety table: full width inside 1600 container; first col
   doesn't need to inflate. */
@media (min-width: 1024px) {
  .kp-pakiety-table {
    table-layout: fixed;
  }
  .kp-pakiety-table thead th:nth-child(1),
  .kp-pakiety-table tbody th:nth-child(1) { width: 14%; }
  .kp-pakiety-table thead th:nth-child(2),
  .kp-pakiety-table tbody td:nth-child(2) { width: 44%; }
  .kp-pakiety-table thead th:nth-child(3),
  .kp-pakiety-table tbody td:nth-child(3) { width: 14%; white-space: nowrap; }
  .kp-pakiety-table thead th:nth-child(4),
  .kp-pakiety-table tbody td:nth-child(4) { width: 10%; white-space: nowrap; }
  .kp-pakiety-table thead th:nth-child(5),
  .kp-pakiety-table tbody td:nth-child(5) { width: 18%; }
}

/* Footer asymmetric 3-col stays 5fr/3fr/4fr; at 1600 just widen
   the gap. */
@media (min-width: 1280px) {
  .footer-inner {
    column-gap: clamp(64px, 6vw, 112px);
  }
}

/* ============================================================
   HERO: at 1600 the centred content shouldn't drift too far
   off the diagonal split. Anchor left of the 56% wedge.
   ============================================================ */
@media (min-width: 1280px) {
  .hero__content {
    max-width: 820px;
    padding-left: clamp(56px, 9vw, 144px);
  }
}

/* ============================================================
   Misja / Dlaczego / Kontakt centered sections: keep prose
   capped so they don't read as a 1500px paragraph.
   ============================================================ */
[id="misja"] .container > p,
[id="dlaczego"] .container > p,
[id="kontakt"] .container > p {
  max-width: 70ch;
  margin-left: auto;
  margin-right: auto;
}

/* Dlaczego heading + label stay centered, body capped */
[id="dlaczego"] .container > h2,
[id="dlaczego"] .container > .section-label {
  text-align: center;
}

/* Section dividers on centered sections: re-center */
[id="dlaczego"] .divider,
[id="kontakt"] .divider {
  margin-left: auto;
  margin-right: auto;
}
.divider:not(.divider--left) {
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   2026-05-17 BATCH 4 — center alignment + festiwal dark mode
   + footer bottom-bar fix
   ============================================================ */

/* ---------- A. CENTER SECTION HEADERS WITHIN 1600 CONTAINER ----
   Cap headline groups (label + h2 + divider + intro paragraph)
   to a centered band so the section doesn't read left-aligned
   against the wide container. Grids/tables stay full width. */

.section .container > .section-label,
.section .container > h2,
.section .container > .divider,
.section .container > p:not(.kp-festiwal__lede):not(.kp-konserwy__lede):not(.kp-pakiety__lede):not(.kp-pakiety__note) {
  max-width: 880px;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

/* Divider centered always (overrides .divider--left site-wide) */
.section .container > .divider,
.section .container > .divider.divider--left {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Sprzęt + Edukacja sections: still asymmetric, but their
   intro p sits ABOVE the two-col grid as a direct child of
   .container — keep it centered too. */
[id="sprzet"] .container > p,
[id="edukacja"] .container > p,
[id="aktywnosci"] .container > p {
  max-width: 880px;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

/* Aktywności section-label override (had inline style) */
[id="aktywnosci"] .container > .section-label,
[id="kontakt"] .container > .section-label {
  text-align: center !important;
}

/* Activities/Konserwy intro stay centered */
.kp-konserwy__intro,
.kp-festiwal__intro {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.kp-konserwy__intro h2,
.kp-festiwal__intro h2,
.kp-konserwy__intro .section-label,
.kp-festiwal__intro .section-label {
  text-align: center;
}
.kp-konserwy__intro .divider,
.kp-festiwal__intro .divider {
  margin-left: auto;
  margin-right: auto;
}

/* Festival/Konserwy lede paragraph: cap reading width centered */
.kp-festiwal__lede,
.kp-konserwy__lede,
.kp-pakiety__lede {
  max-width: 62ch;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

/* Festiwal body + ration card sit centered too */
.kp-festiwal__body p {
  max-width: 60ch;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.kp-ration-card {
  margin-left: auto;
  margin-right: auto;
}
.kp-pullquote {
  margin-left: auto;
  margin-right: auto;
}
.kp-festiwal__cta {
  justify-content: center;
}
.kp-festiwal__inner {
  text-align: center;
}

/* CTA pairs that were left-aligned (festiwal/sprzet/kontakt)
   become center-aligned blocks. */
.kp-pakiety__cta {
  justify-content: center;
}

/* Pakiety table inner: full width, centered caption */
.kp-pakiety__note {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* ---------- B. FESTIWAL: DARK SURFACE + WHITE FONT --------------
   User requested white font. Flip background to regimental
   black (matches design system dark militarna mode). All text
   in the section becomes parchment; ration card stays as inset
   paper artifact (intentional document-on-table contrast). */

.kp-festiwal {
  background-color: #1C1A17 !important;
  color: #F0EAD2;
}
.kp-festiwal .section-label {
  color: #C9A84C !important;
}
.kp-festiwal h2,
.kp-festiwal h2#festiwal-heading {
  color: #F0EAD2 !important;
}
.kp-festiwal .divider {
  background-color: #C9A84C !important;
}
.kp-festiwal__lede,
.kp-festiwal__body p {
  color: #F0EAD2 !important;
}
.kp-pullquote {
  border-left-color: #C9A84C !important;
}
.kp-pullquote p {
  color: #F0EAD2 !important;
  font-weight: 500;
}

/* Stats inside dark festiwal: gold numerals, parchment labels */
.kp-festiwal .stat-item__number {
  color: #C9A84C !important;
}
.kp-festiwal .stat-item__label {
  color: #B5A98C !important;
}
.kp-festiwal .festival-stats {
  border-top-color: rgba(201,168,76,0.22) !important;
  border-bottom-color: rgba(201,168,76,0.22) !important;
}

/* Ration card stays a paper inset on the dark spread */
.kp-festiwal .kp-ration-card {
  background: #F8F4EC;
  border-color: #D4C9A8;
  border-top: 2px solid #4A5320;
  border-bottom: 2px solid #4A5320;
  box-shadow: 0 24px 60px rgba(0,0,0,0.45);
}
.kp-festiwal .kp-ration-card .military-label {
  color: #8B6F1E !important;
}
.kp-festiwal .kp-ration-card__list dt {
  color: #2C2416 !important;
}
.kp-festiwal .kp-ration-card__list dd {
  color: #4A5320 !important;
}
.kp-festiwal .kp-ration-card__source {
  color: #6B6352 !important;
}

/* Festiwal outline button: parchment border + text on dark */
.kp-festiwal .btn--outline.kp-btn-on-light {
  color: #F0EAD2 !important;
  border-color: #F0EAD2 !important;
}
.kp-festiwal .btn--outline.kp-btn-on-light:hover {
  background: #F0EAD2 !important;
  color: #1C1A17 !important;
}

/* ---------- C. FOOTER BOTTOM-BAR: kill the black-bar look ------
   Section e936ae58 had copyright #3A3830 on #0F110C (~1.4
   contrast). Renders as blank black strip. Brighten text +
   collapse vertical padding so it reads as footer extension
   not a separate bar. */
.elementor-location-footer .elementor-element-e936ae58 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: -12px;
  background-color: transparent !important;
}
.elementor-location-footer .elementor-element-e936ae58 .elementor-container {
  min-height: 0 !important;
}
.elementor-location-footer .elementor-element-e936ae58 .elementor-widget-wrap {
  padding: 18px 0 28px !important;
  border-top: 1px solid rgba(201,168,76,0.12);
}

/* Brighten all copyright + polityka text in the bottom bar */
.elementor-location-footer .elementor-element-e936ae58 span,
.elementor-location-footer .elementor-element-e936ae58 a,
.elementor-location-footer span[style*="color:#3A3830"],
.elementor-location-footer span[style*="color:#3a3830"],
.elementor-location-footer span[style*="color:#2E2C28"],
.elementor-location-footer span[style*="color:#2e2c28"] {
  color: #B5A98C !important;
}
.elementor-location-footer .elementor-element-e936ae58 a {
  text-decoration: none;
}
.elementor-location-footer .elementor-element-e936ae58 a:hover {
  color: #C9A84C !important;
}

/* Whole footer: ensure no trailing black gap below */
.elementor-location-footer {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
body, html {
  background-color: #0F110C !important;
}
#page.site-wrapper {
  padding-bottom: 0 !important;
}

/* ---------- D. CENTER ACTIVITY/VALUES GRID HEADERS -------------
   Aktywnosci section had its inline section-label set to
   color:#C9A84C; that's fine on olive. But its alignment
   needs centering at 1600. Same for kontakt. */
[id="aktywnosci"] .container > h2,
[id="aktywnosci"] .container > .divider {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ---------- E. SECTION INNER WIDTH (general) ------------------
   Cap raw section content (heading column) to a centered band
   inside the 1600 container so left-anchored layouts don't read
   as drifted to a corner. */
.section > .container {
  display: block;
}

/* ============================================================
   2026-05-17 BATCH 5 — typography enforcement on store pages,
   header consistency cross-page, mobile parity with desktop
   ============================================================ */

/* ---------- A. FORCE THEME FONTS EVERYWHERE -------------------
   Elementor Kit (post-6.css) defaults to Roboto + Roboto Slab.
   Force the brand stack on every page. Specificity matches
   Elementor Kit's typography selectors. */

body,
html,
.elementor-widget-text-editor,
.elementor-widget-heading,
.elementor-element,
.elementor-default,
.elementor-kit-6,
.woocommerce,
.woocommerce-page,
.woocommerce-page p,
.woocommerce-page li,
.woocommerce-page td,
.woocommerce-page label,
.woocommerce-page input,
.woocommerce-page textarea,
.woocommerce-page select,
.woocommerce-page button {
  font-family: 'Open Sans', 'Helvetica Neue', sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-heading h5.elementor-heading-title,
.elementor-widget-heading h6.elementor-heading-title,
.woocommerce-page h1,
.woocommerce-page h2,
.woocommerce-page h3,
.woocommerce-page .product_title,
.woocommerce-page .woocommerce-loop-product__title,
.woocommerce-page .woocommerce-Tabs-panel h2 {
  font-family: 'Playfair Display', Georgia, serif !important;
}

.elementor-nav-menu .elementor-item,
.elementor-nav-menu a.elementor-item,
.elementor-button,
.elementor-button-text,
.btn,
.kp-konserwa__buy,
.kp-konserwa__details,
.kp-card-title,
.section-label,
.military-label,
.product-card__tag,
.kp-konserwa__tag,
.kp-konserwa__meta dt,
.kp-konserwa__meta dd,
.kp-konserwa__seria,
.footer-nav a,
.footer-bottom,
.kp-pakiety-table th,
.woocommerce-page .button,
.woocommerce-page .price,
.woocommerce .button,
.woocommerce .price {
  font-family: 'Oswald', Impact, sans-serif !important;
}

/* Page titles on store pages: use Playfair, large */
.woocommerce-page .page-title,
.woocommerce-page .product_title.entry-title,
.entry-header .entry-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 700;
  font-size: clamp(2rem, 4vw, 3rem);
  color: #2C2416;
  letter-spacing: -0.005em;
}

/* ---------- B. HEADER MUST WORK ON STORE PAGES ----------------
   Header markup is rendered everywhere. Ensure it sticks +
   carries the same dark surface + visibility as the home. */

.elementor-location-header,
.elementor-location-header .elementor-section.elementor-top-section.elementor-element-d6719643 {
  position: sticky;
  top: 0;
  z-index: var(--z-header, 1000);
}
.elementor-location-header {
  background-color: #0F110C;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

/* On non-home pages, give header section a solid dark fallback
   so the missing diagonal-split rule doesn't expose Elementor
   Kit's default white. */
body:not(.home) .elementor-31 .elementor-element-d6719643:not(.elementor-motion-effects-element-type-background) {
  background-color: #0F110C !important;
  background-image: none !important;
}

/* Store pages: keep the bottom border that signals header end */
.elementor-location-header::after {
  content: '';
  display: block;
  height: 3px;
  background: #C9A84C;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  pointer-events: none;
}

/* Reassert nav typography on store pages */
.elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-nav-menu--main .elementor-item {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  color: #C8BEA4 !important;
}
.elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-nav-menu--main .elementor-item:hover,
.elementor-31 .elementor-element.elementor-element-a7075ec7 .elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: #C9A84C !important;
}

/* Header logo widget: keep brand monogram visible on all pages */
.elementor-location-header .elementor-element-6df33d16 a div,
.elementor-location-header .elementor-element-6df33d16 a span {
  font-family: 'Playfair Display', Georgia, serif;
}
.elementor-location-header .elementor-element-6df33d16 a > div:first-child > span,
.elementor-location-header .elementor-element-6df33d16 a > div:last-child > span:last-child {
  font-family: 'Oswald', Impact, sans-serif !important;
}

/* ---------- C. WOOCOMMERCE STORE PAGE OVERRIDES ----------------
   Make /shop/, /konserwy/, /merch/ feel like the brand, not Woo
   default. Existing custom.css has dark Woo overrides but they
   miss new pages. Tighten globally. */

.woocommerce-page,
body.woocommerce-page {
  background-color: #0F110C !important;
}

.woocommerce-page .site-content,
.woocommerce-page #content {
  background-color: #0F110C;
  color: #D8CFB4;
  padding: clamp(40px, 6vw, 80px) 0;
}

.woocommerce-page .woocommerce-products-header,
.woocommerce-page .woocommerce-breadcrumb,
.woocommerce-page .term-description,
.woocommerce-page p {
  color: #D8CFB4 !important;
}

.woocommerce-page .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb a {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #B5A98C !important;
}
.woocommerce-page .woocommerce-breadcrumb a:hover {
  color: #C9A84C !important;
}

/* Page heading on shop archive */
.woocommerce-page .woocommerce-products-header__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: #F0EAD2 !important;
  font-size: clamp(2.25rem, 5vw, 3.5rem) !important;
  font-weight: 700;
  margin-bottom: 24px;
}

/* Result count + ordering */
.woocommerce-page .woocommerce-result-count,
.woocommerce-page .woocommerce-ordering select {
  color: #B5A98C !important;
  font-family: 'Open Sans', sans-serif !important;
}

/* Product grid container width + alignment on shop archive */
.woocommerce-page ul.products,
.woocommerce-page .woocommerce > ul.products {
  max-width: 1600px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 clamp(20px, 4vw, 64px);
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 0 !important;
  border-top: 1px solid rgba(201,168,76,0.18);
  border-left: 1px solid rgba(201,168,76,0.18);
  list-style: none;
}
.woocommerce-page ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  padding: clamp(20px, 2.5vw, 32px) !important;
  border-right: 1px solid rgba(201,168,76,0.18);
  border-bottom: 1px solid rgba(201,168,76,0.18);
  background: transparent;
}

.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  color: #F0EAD2 !important;
  letter-spacing: -0.005em !important;
  text-transform: none !important;
}

.woocommerce-page ul.products li.product .price,
.woocommerce-page ul.products li.product .price .amount {
  color: #C9A84C !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  font-variant-numeric: tabular-nums lining-nums;
}

/* Container wrap on store pages */
.woocommerce-page .site-content > .container,
.woocommerce-page main {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(20px, 4vw, 64px);
  padding-right: clamp(20px, 4vw, 64px);
}

/* ---------- D. MOBILE PARITY -----------------------------------
   JS fix lives in custom.js (logo + drawer filter). CSS here
   makes the mobile bar match desktop visually. */
@media (max-width: 767px) {
  .kp-mob-monogram {
    width: 38px;
    height: 38px;
    border: 2px solid #C9A84C;
    font-family: 'Oswald', Impact, sans-serif !important;
    font-size: 13px;
    font-weight: 700;
    color: #C9A84C;
    letter-spacing: 1px;
  }
  .kp-mob-title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 15px;
    font-weight: 700;
    color: #F0EAD2;
    letter-spacing: 0.3px;
    line-height: 1.15;
  }
  .kp-mob-sub {
    font-family: 'Oswald', Impact, sans-serif !important;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #C9A84C;
    line-height: 1.4;
  }
}

/* ---------- E. STORE-PAGE BOTTOM PADDING -----------------------
   Avoid the white empty space below short store pages by
   anchoring main content to fill. */
.woocommerce-page main,
.woocommerce-page #content {
  min-height: 60vh;
}

/* ---------- F. Konserwy archive page H1 inherits dark-mode ----- */
body.post-type-archive-product .page-title,
body.tax-product_cat .page-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: #F0EAD2 !important;
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  text-align: center;
  padding: clamp(32px, 5vw, 64px) 0 clamp(16px, 3vw, 32px);
  margin: 0 auto;
  max-width: 1600px;
}

/* Force Elementor Kit's body font setting back to brand */
.elementor-default body,
.elementor-kit-6 body { font-family: 'Open Sans', 'Helvetica Neue', sans-serif !important; }

/* ============================================================
   2026-05-17 BATCH 6 — /konserwy/ page fix (page-id 18)
   ============================================================ */

/* ---------- A. PAGE SURFACE ------------------------------------
   Page id 18 isn't a woocommerce-page; needs explicit dark
   styling so the whole spread reads as the brand, not Elementor
   Kit white. */
body.page-id-18 {
  background-color: #0F110C !important;
  color: #D8CFB4;
}
body.page-id-18 .elementor-section,
body.page-id-18 .elementor-top-section {
  background-color: transparent;
}
/* Set the page hero section (eff2c5cc) bg + spacing */
body.page-id-18 .elementor-element-eff2c5cc {
  background-color: #1C1A17 !important;
  padding: clamp(40px, 6vw, 96px) 0;
}
/* Mid section bg */
body.page-id-18 .elementor-element-16a76012,
body.page-id-18 .elementor-element-cdee1842,
body.page-id-18 .elementor-element-a5e2760d {
  background-color: #0F110C !important;
  padding: clamp(40px, 5vw, 80px) 0;
}

/* Container max-width parity with home */
body.page-id-18 .elementor-section .elementor-container,
body.page-id-18 .e-con {
  max-width: 1600px !important;
  padding-left: clamp(20px, 4vw, 64px) !important;
  padding-right: clamp(20px, 4vw, 64px) !important;
}

/* ---------- B. HEADINGS, TEXT ----------------------------------
   Existing Elementor inline styles set color:#1A190E (near-black)
   on h2/h3 + #3A3420 on body — invisible on the new dark bg.
   Override. */
body.page-id-18 h1,
body.page-id-18 h2,
body.page-id-18 h3,
body.page-id-18 h4,
body.page-id-18 .elementor-heading-title {
  color: #F0EAD2 !important;
  font-family: 'Playfair Display', Georgia, serif !important;
}
body.page-id-18 h1.elementor-heading-title {
  font-size: clamp(2.5rem, 6vw, 5rem) !important;
  line-height: 1.05;
  letter-spacing: -0.012em;
  text-align: center;
  margin: 0 auto;
}
body.page-id-18 h2.elementor-heading-title {
  text-align: center;
  font-size: clamp(1.75rem, 4vw, 2.625rem) !important;
  margin: 0 auto;
}

/* Body text inline-styled paragraphs: force parchment */
body.page-id-18 p[style*="color:#3A3420"],
body.page-id-18 p[style*="color:#3a3420"],
body.page-id-18 div[style*="color:#3A3420"],
body.page-id-18 div[style*="color:#3a3420"] {
  color: #D8CFB4 !important;
}
body.page-id-18 .elementor-widget-html p,
body.page-id-18 .elementor-widget-text-editor p {
  color: #D8CFB4 !important;
}

/* Divider widgets become gold rule on dark */
body.page-id-18 .elementor-widget-divider .elementor-divider-separator {
  border-color: #C9A84C !important;
  background-color: #C9A84C !important;
}

/* ---------- C. JS-REWRITTEN PRODUCT GRID (kp-konserwy-grid--page)
   Reuses the home konserwy card pattern, adds subtitle line and
   ingredient list to keep page denser than the home preview. */
.kp-konserwy-page-fixed .kp-konserwy-grid--page {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid rgba(201,168,76,0.18);
  border-left: 1px solid rgba(201,168,76,0.18);
}
.kp-konserwy-grid--page .kp-konserwa {
  border-right: 1px solid rgba(201,168,76,0.18);
  border-bottom: 1px solid rgba(201,168,76,0.18);
}

/* Subtitle line (italic Open Sans) */
.kp-konserwa__subtitle {
  font-family: 'Open Sans', sans-serif !important;
  font-size: 0.85rem;
  font-style: italic;
  color: #B5A98C !important;
  margin: 0 0 4px;
}

/* Ingredients line: tiny tracked Oswald label + plain text */
.kp-konserwa__ingredients {
  font-family: 'Open Sans', sans-serif !important;
  font-size: 0.78rem;
  color: #B5A98C !important;
  line-height: 1.6;
  margin: 8px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(201,168,76,0.12);
}
.kp-konserwa__ingredients > span {
  display: inline-block;
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #C9A84C;
  margin-right: 10px;
}

/* Tighter card padding on dense page */
.kp-konserwy-grid--page .kp-konserwa__body {
  padding: clamp(20px, 2.5vw, 36px);
}

/* ---------- D. MOBILE FIX -------------------------------------
   Three columns collapse to 1 below 720, 2 at tablet. Header
   section padding tighter on mobile. CTA buttons stack full
   width. */
@media (max-width: 1023px) and (min-width: 720px) {
  .kp-konserwy-page-fixed .kp-konserwy-grid--page {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 719px) {
  .kp-konserwy-page-fixed .kp-konserwy-grid--page {
    grid-template-columns: 1fr;
    border-left: 0;
  }
  .kp-konserwy-grid--page .kp-konserwa {
    border-right: 0;
  }
  body.page-id-18 h1.elementor-heading-title {
    font-size: clamp(2.25rem, 9vw, 3.25rem) !important;
  }
  body.page-id-18 h2.elementor-heading-title {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
  }
  body.page-id-18 .elementor-element-eff2c5cc {
    padding: clamp(64px, 12vw, 96px) 0 clamp(24px, 6vw, 40px);
  }
  .kp-konserwa__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .kp-konserwa__actions .kp-konserwa__buy {
    text-align: center;
    width: 100%;
  }
  .kp-konserwa__meta {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
}

/* ---------- E. HIDE INLINE WIDGET FALLBACKS -------------------
   The Elementor HTML widget had a typo where the @media strings
   leaked into the DOM as text nodes. JS replaces .innerHTML so
   text is gone, but as a belt-and-braces guard, mask any
   residual stray text via grid-area assignment. */
.elementor-element-cc1e9eaa > .elementor-widget-container {
  font-size: 0;
}
.elementor-element-cc1e9eaa > .elementor-widget-container > *,
.elementor-element-cc1e9eaa .kp-konserwy-grid--page,
.elementor-element-cc1e9eaa .kp-konserwy-grid--page * {
  font-size: 1rem;
}

/* ---------- F. "JAK ZAMÓWIĆ" SECTION (a5e2760d) ---------------- */
body.page-id-18 .elementor-element-a5e2760d {
  background-color: #1C1A17 !important;
}
body.page-id-18 .elementor-element-71441e3c p,
body.page-id-18 .elementor-element-71441e3c div,
body.page-id-18 .elementor-element-71441e3c span {
  color: #D8CFB4 !important;
}
body.page-id-18 .elementor-element-71441e3c h3,
body.page-id-18 .elementor-element-71441e3c strong {
  color: #F0EAD2 !important;
}

/* ---------- G. HEADER STILL WORKS ON page-id-18 --------------- */
body.page-id-18 .elementor-location-header {
  background-color: #0F110C !important;
}
body.page-id-18 .elementor-31 .elementor-element-d6719643:not(.elementor-motion-effects-element-type-background) {
  background-color: #0F110C !important;
}

/* ---------- H. SPACING BETWEEN SECTIONS ----------------------- */
body.page-id-18 .elementor-widget-spacer {
  margin: 0 !important;
}
body.page-id-18 .elementor-widget-spacer .elementor-spacer-inner {
  height: clamp(24px, 4vw, 56px) !important;
}

/* ============================================================
   2026-05-17 BATCH 7 — SHOP TWINS + PRODUCT TEMPLATES +
   STORE/ACCOUNT/CART on-brand styling
   ============================================================
   Two pages share .kp-shoppage skeleton on a lighter parchment
   surface. Accent variant injected via .kp-accent-olive (Konserwy
   Poligonowe) or .kp-accent-black (Merch).
   Each variant scopes color tokens locally so a future third twin
   can add its own without touching the shared rules.
   ============================================================ */

:root {
  --kp-shop-surface: #F0EAD2;          /* parchment, lighter than home */
  --kp-shop-surface-card: #FFFFFF;
  --kp-shop-border: #D4C9A8;
  --kp-shop-ink: #2C2416;
  --kp-shop-ink-soft: #6B6352;
}

/* ============================================================
   A. SHARED SHOPPAGE SKELETON
   ============================================================ */

.kp-shoppage {
  background-color: var(--kp-shop-surface) !important;
  padding-top: clamp(64px, 8vw, 112px) !important;
  padding-bottom: clamp(72px, 10vw, 144px) !important;
  color: var(--kp-shop-ink);
  scroll-margin-top: 84px;
}

.kp-shoppage__inner {
  max-width: 1600px;
  margin: 0 auto;
  padding-left: clamp(20px, 4vw, 64px);
  padding-right: clamp(20px, 4vw, 64px);
}

.kp-shoppage__intro {
  text-align: center;
  max-width: 760px;
  margin: 0 auto clamp(40px, 6vw, 72px);
}
.kp-shoppage__intro h1 {
  font-family: 'Playfair Display', Georgia, serif;
  color: var(--kp-shop-ink) !important;
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  letter-spacing: -0.012em;
  line-height: 1.05;
  margin: 0 0 16px;
}
.kp-shoppage__lede {
  color: var(--kp-shop-ink) !important;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.65;
  max-width: 60ch;
  margin: 0 auto;
}
.kp-shoppage__intro .divider {
  margin: 16px auto 24px;
}

.kp-shoppage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
}

.kp-shoppage__foot {
  margin-top: clamp(32px, 5vw, 56px);
  text-align: center;
}
.kp-shoppage__foot a {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--kp-accent);
  text-decoration: none;
  border-bottom: 1px solid var(--kp-accent-faint);
  padding-bottom: 4px;
  transition: border-color 0.2s ease;
}
.kp-shoppage__foot a:hover { border-bottom-color: var(--kp-accent); }

/* ============================================================
   B. SHOPCARD (shared structure)
   ============================================================ */

.kp-shopcard {
  background: var(--kp-shop-surface-card);
  border: 1px solid var(--kp-shop-border);
  margin: -1px 0 0 -1px;            /* collapse shared borders */
  display: flex;
  flex-direction: column;
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.kp-shopcard:hover {
  border-color: var(--kp-accent);
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(28,26,23,0.08);
  z-index: 1;
  position: relative;
}

/* Media area: stamped monogram on accent-tinted gradient */
.kp-shopcard__media {
  position: relative;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: var(--kp-shopcard-media-bg);
  border-bottom: 1px solid var(--kp-shop-border);
  overflow: hidden;
}
.kp-shopcard__media::before {
  content: '';
  position: absolute;
  inset: 16px;
  border: 1px solid var(--kp-accent-faint);
  pointer-events: none;
}
.kp-shopcard__monogram {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: clamp(3.2rem, 6vw, 4.75rem);
  letter-spacing: 0.02em;
  color: var(--kp-accent);
  line-height: 1;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.kp-shopcard:hover .kp-shopcard__monogram { transform: translateY(-3px); }
.kp-shopcard__seria {
  position: absolute;
  top: 14px;
  left: 16px;
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--kp-accent);
  font-variant-numeric: tabular-nums lining-nums;
}

.kp-shopcard__body {
  padding: clamp(20px, 2.5vw, 32px);
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 10px;
}
.kp-shopcard__tag {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--kp-accent);
  margin: 0;
}
.kp-shopcard__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  color: var(--kp-shop-ink);
}
.kp-shopcard__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.kp-shopcard__title a:hover { color: var(--kp-accent); }
.kp-shopcard__desc {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--kp-shop-ink-soft);
  margin: 0;
}
.kp-shopcard__meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px 14px;
  margin: 8px 0 4px;
  padding: 14px 0;
  border-top: 1px solid var(--kp-shop-border);
  border-bottom: 1px solid var(--kp-shop-border);
}
.kp-shopcard__meta > div { display: flex; flex-direction: column; gap: 2px; }
.kp-shopcard__meta dt {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--kp-shop-ink-soft);
  margin: 0;
}
.kp-shopcard__meta dd {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--kp-shop-ink);
  margin: 0;
  font-variant-numeric: tabular-nums lining-nums;
}
.kp-shopcard__meta > div:last-child dd { color: var(--kp-accent); }

.kp-shopcard__actions {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
  flex-wrap: wrap;
}
.kp-shopcard__buy {
  padding: 11px 22px !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.18em !important;
}
.kp-shopcard__details {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--kp-shop-ink-soft);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}
.kp-shopcard__details:hover { color: var(--kp-accent); }

@media (max-width: 767px) {
  .kp-shoppage-grid { grid-template-columns: 1fr; }
  .kp-shopcard { margin: -1px 0 0 0; }
  .kp-shopcard__actions { flex-direction: column; align-items: stretch; }
  .kp-shopcard__buy { width: 100%; text-align: center; }
}

/* ============================================================
   C. ACCENT VARIANTS
   Olive: dark green accent on parchment surface
   Black: regimental ink accent on parchment surface
   ============================================================ */

.kp-accent-olive {
  --kp-accent:        #4A5320;
  --kp-accent-strong: #323A14;
  --kp-accent-faint:  rgba(74,83,32,0.32);
  --kp-shopcard-media-bg: linear-gradient(135deg, #E6E0C6 0%, #DDD4B0 100%);
}
.kp-accent-olive .kp-shopcard__buy.btn--olive {
  background: var(--kp-accent);
  color: #F0EAD2;
  border: 2px solid var(--kp-accent);
}
.kp-accent-olive .kp-shopcard__buy.btn--olive:hover {
  background: transparent;
  color: var(--kp-accent);
}

.kp-accent-black {
  --kp-accent:        #1C1A17;
  --kp-accent-strong: #0F110C;
  --kp-accent-faint:  rgba(28,26,23,0.32);
  --kp-shopcard-media-bg: linear-gradient(135deg, #E6E0C6 0%, #C9C2A6 100%);
}
.kp-accent-black .kp-shopcard__buy.btn--primary {
  background: var(--kp-accent);
  color: #F0EAD2;
  border: 2px solid var(--kp-accent);
}
.kp-accent-black .kp-shopcard__buy.btn--primary:hover {
  background: transparent;
  color: var(--kp-accent);
}

/* Accent override for section-label inside shoppage intro */
.kp-accent-olive .kp-shoppage__intro .section-label { color: var(--kp-accent) !important; }
.kp-accent-black .kp-shoppage__intro .section-label { color: var(--kp-accent) !important; }
.kp-shoppage .divider { background-color: var(--kp-accent) !important; }

/* ============================================================
   D. SINGLE PRODUCT TEMPLATE (Woo single-product.php)
   Shares accent variants via body class .kp-accent-olive
   / .kp-accent-black set by functions.php body_class filter.
   ============================================================ */

.kp-product-page {
  background-color: var(--kp-shop-surface);
  padding: clamp(64px, 8vw, 112px) 0 clamp(72px, 10vw, 144px);
  color: var(--kp-shop-ink);
}
.kp-product-page__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 64px);
}
body.kp-accent-olive { --kp-accent: #4A5320; --kp-accent-strong: #323A14; --kp-accent-faint: rgba(74,83,32,0.32); }
body.kp-accent-black { --kp-accent: #1C1A17; --kp-accent-strong: #0F110C; --kp-accent-faint: rgba(28,26,23,0.32); }

.kp-breadcrumb,
body.kp-accent-olive .woocommerce-breadcrumb,
body.kp-accent-black .woocommerce-breadcrumb {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--kp-shop-ink-soft) !important;
  margin-bottom: clamp(24px, 4vw, 40px);
}
.kp-breadcrumb a,
body.kp-accent-olive .woocommerce-breadcrumb a,
body.kp-accent-black .woocommerce-breadcrumb a {
  color: var(--kp-shop-ink-soft) !important;
  text-decoration: none;
}
.kp-breadcrumb a:hover,
body.kp-accent-olive .woocommerce-breadcrumb a:hover,
body.kp-accent-black .woocommerce-breadcrumb a:hover {
  color: var(--kp-accent) !important;
}

/* Product title */
body.kp-accent-olive .product .product_title,
body.kp-accent-black .product .product_title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 700;
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--kp-shop-ink) !important;
  letter-spacing: -0.01em;
  margin-bottom: 16px;
  text-transform: none !important;
}

/* Price */
body.kp-accent-olive .product p.price,
body.kp-accent-olive .product span.price,
body.kp-accent-black .product p.price,
body.kp-accent-black .product span.price {
  color: var(--kp-accent) !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  font-weight: 700;
  font-size: 1.6rem;
  font-variant-numeric: tabular-nums lining-nums;
}

/* Short description */
body.kp-accent-olive .product .woocommerce-product-details__short-description,
body.kp-accent-black .product .woocommerce-product-details__short-description {
  font-family: 'Open Sans', sans-serif;
  color: var(--kp-shop-ink) !important;
  font-size: 1rem;
  line-height: 1.7;
  max-width: 60ch;
  background: transparent !important;
}

/* Gallery border */
body.kp-accent-olive .product .woocommerce-product-gallery,
body.kp-accent-black .product .woocommerce-product-gallery {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
}

/* Cart form: quantity + add-to-cart */
body.kp-accent-olive .product form.cart .qty,
body.kp-accent-black .product form.cart .qty {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  color: var(--kp-shop-ink) !important;
  border-radius: 0;
  width: 72px;
  text-align: center;
  font-family: 'Oswald', Impact, sans-serif;
  padding: 12px;
}
body.kp-accent-olive .product form.cart .button,
body.kp-accent-black .product form.cart .button {
  background: var(--kp-accent) !important;
  color: #F0EAD2 !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border: 2px solid var(--kp-accent) !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  font-size: 0.85rem !important;
  font-weight: 600;
}
body.kp-accent-olive .product form.cart .button:hover,
body.kp-accent-black .product form.cart .button:hover {
  background: transparent !important;
  color: var(--kp-accent) !important;
}

/* Tabs */
body.kp-accent-olive .woocommerce-tabs .tabs,
body.kp-accent-black .woocommerce-tabs .tabs {
  border-bottom: 2px solid var(--kp-accent-faint) !important;
  padding: 0 !important;
  margin: 32px 0 0 !important;
  background: transparent !important;
}
body.kp-accent-olive .woocommerce-tabs .tabs li,
body.kp-accent-black .woocommerce-tabs .tabs li {
  background: transparent !important;
  border: 0 !important;
  margin: 0 !important;
}
body.kp-accent-olive .woocommerce-tabs .tabs li a,
body.kp-accent-black .woocommerce-tabs .tabs li a {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--kp-shop-ink-soft) !important;
  padding: 14px 20px !important;
  display: inline-block;
  border-bottom: 2px solid transparent;
}
body.kp-accent-olive .woocommerce-tabs .tabs li.active a,
body.kp-accent-black .woocommerce-tabs .tabs li.active a {
  color: var(--kp-accent) !important;
  border-bottom-color: var(--kp-accent) !important;
}
body.kp-accent-olive .woocommerce-tabs .panel,
body.kp-accent-black .woocommerce-tabs .panel {
  background: transparent !important;
  border: 0 !important;
  color: var(--kp-shop-ink) !important;
  padding: 24px 0 !important;
}

/* Related products section */
body.kp-accent-olive .related.products h2,
body.kp-accent-black .related.products h2 {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--kp-shop-ink) !important;
}

/* ============================================================
   E. SHOP ARCHIVE (/shop/, /product-category/*)
   Lighter parchment surface; product grid uses the shopcard
   pattern via Woo's loop classes.
   ============================================================ */

body.kp-shop-archive {
  background-color: var(--kp-shop-surface) !important;
  color: var(--kp-shop-ink);
}
body.kp-shop-archive .site-content,
body.kp-shop-archive #content,
body.kp-shop-archive main {
  background: transparent !important;
  padding: clamp(64px, 8vw, 112px) clamp(20px, 4vw, 64px) clamp(72px, 10vw, 144px);
  max-width: 1600px;
  margin: 0 auto;
  min-height: 60vh;
}
body.kp-shop-archive .woocommerce-products-header {
  text-align: center;
  margin-bottom: clamp(40px, 6vw, 72px);
}
body.kp-shop-archive .woocommerce-products-header__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
  color: var(--kp-shop-ink) !important;
  font-weight: 700;
  letter-spacing: -0.012em;
  margin: 0 0 16px;
}
body.kp-shop-archive .woocommerce-result-count,
body.kp-shop-archive .woocommerce-ordering {
  font-family: 'Open Sans', sans-serif !important;
  color: var(--kp-shop-ink-soft) !important;
}
body.kp-shop-archive .woocommerce-ordering select {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  border-radius: 0;
  padding: 8px 28px 8px 12px;
  font-family: 'Oswald', Impact, sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--kp-shop-ink);
}
body.kp-shop-archive ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 0 !important;
  list-style: none;
  padding: 0;
  margin: 0;
}
body.kp-shop-archive ul.products li.product {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  margin: -1px 0 0 -1px !important;
  padding: 0 !important;
  width: 100% !important;
  float: none !important;
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
body.kp-shop-archive ul.products li.product:hover {
  border-color: #4A5320 !important;
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(28,26,23,0.08);
  z-index: 1;
  position: relative;
}
body.kp-shop-archive ul.products li.product a {
  text-decoration: none;
  color: inherit;
}
body.kp-shop-archive ul.products li.product img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0 !important;
  border-bottom: 1px solid var(--kp-shop-border);
}
body.kp-shop-archive ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  color: var(--kp-shop-ink) !important;
  padding: 20px 24px 4px !important;
  letter-spacing: -0.005em !important;
  text-transform: none !important;
  margin: 0 !important;
}
body.kp-shop-archive ul.products li.product .price,
body.kp-shop-archive ul.products li.product .price .amount {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.15rem !important;
  color: #4A5320 !important;
  padding: 0 24px 16px !important;
  font-variant-numeric: tabular-nums lining-nums;
  display: block;
}
body.kp-shop-archive ul.products li.product .button {
  display: block;
  margin: 0 24px 24px !important;
  text-align: center;
  background: #4A5320 !important;
  color: #F0EAD2 !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-size: 0.78rem !important;
  font-weight: 600;
  padding: 12px 22px !important;
  border: 2px solid #4A5320 !important;
  border-radius: 0 !important;
  transition: all 0.25s ease;
}
body.kp-shop-archive ul.products li.product .button:hover {
  background: transparent !important;
  color: #4A5320 !important;
}
body.kp-shop-archive ul.products li.product .onsale {
  background: #1C1A17 !important;
  color: #C9A84C !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  border-radius: 0;
  padding: 6px 12px;
  top: 12px;
  right: 12px;
  min-width: 0;
  min-height: 0;
}

/* Pagination */
body.kp-shop-archive .woocommerce-pagination ul.page-numbers {
  border: 1px solid var(--kp-shop-border);
  display: inline-flex;
  margin-top: 48px;
}
body.kp-shop-archive .woocommerce-pagination ul.page-numbers li a,
body.kp-shop-archive .woocommerce-pagination ul.page-numbers li span {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kp-shop-ink) !important;
  background: transparent !important;
  padding: 10px 16px;
  border-right: 1px solid var(--kp-shop-border);
}
body.kp-shop-archive .woocommerce-pagination ul.page-numbers li:last-child a,
body.kp-shop-archive .woocommerce-pagination ul.page-numbers li:last-child span {
  border-right: 0;
}
body.kp-shop-archive .woocommerce-pagination ul.page-numbers li .current {
  background: #4A5320 !important;
  color: #F0EAD2 !important;
}

/* ============================================================
   F. CART (/cart/)
   ============================================================ */

body.kp-cart-page {
  background-color: var(--kp-shop-surface) !important;
  color: var(--kp-shop-ink);
}
body.kp-cart-page .site-content,
body.kp-cart-page main {
  background: transparent !important;
  padding: clamp(56px, 7vw, 96px) clamp(20px, 4vw, 64px);
  max-width: 1280px;
  margin: 0 auto;
}
body.kp-cart-page h1,
body.kp-cart-page .entry-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--kp-shop-ink) !important;
  text-align: center;
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  margin-bottom: clamp(32px, 5vw, 56px);
}
body.kp-cart-page .woocommerce-cart-form,
body.kp-cart-page table.cart {
  background: var(--kp-shop-surface-card);
  border: 1px solid var(--kp-shop-border);
}
body.kp-cart-page table.cart th {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--kp-shop-ink) !important;
  background: var(--kp-shop-surface) !important;
  padding: 18px 16px !important;
  border-bottom: 2px solid #4A5320 !important;
  text-align: left;
}
body.kp-cart-page table.cart td {
  background: transparent !important;
  color: var(--kp-shop-ink) !important;
  border-color: var(--kp-shop-border) !important;
  padding: 20px 16px !important;
  font-family: 'Open Sans', sans-serif;
  vertical-align: middle;
}
body.kp-cart-page table.cart td.product-name a {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--kp-shop-ink) !important;
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
}
body.kp-cart-page table.cart td.product-name a:hover { color: #4A5320 !important; }
body.kp-cart-page table.cart td.product-price,
body.kp-cart-page table.cart td.product-subtotal {
  font-family: 'Oswald', Impact, sans-serif;
  font-weight: 600;
  font-variant-numeric: tabular-nums lining-nums;
  color: #4A5320 !important;
}
body.kp-cart-page table.cart td.product-quantity .qty {
  background: var(--kp-shop-surface) !important;
  border: 1px solid var(--kp-shop-border) !important;
  border-radius: 0;
  width: 64px;
  padding: 10px;
  text-align: center;
  font-family: 'Oswald', Impact, sans-serif;
  color: var(--kp-shop-ink) !important;
}
body.kp-cart-page table.cart td.product-remove a {
  color: var(--kp-shop-ink-soft) !important;
  font-size: 1.2rem;
  text-decoration: none;
}
body.kp-cart-page table.cart td.product-remove a:hover { color: #1C1A17 !important; }
body.kp-cart-page table.cart .actions .button,
body.kp-cart-page .button[name="update_cart"] {
  background: transparent !important;
  color: #4A5320 !important;
  border: 2px solid #4A5320 !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-size: 0.78rem !important;
  font-weight: 600;
  border-radius: 0 !important;
  padding: 11px 22px !important;
}
body.kp-cart-page table.cart .actions .button:hover {
  background: #4A5320 !important;
  color: #F0EAD2 !important;
}
body.kp-cart-page table.cart .coupon input.input-text {
  background: var(--kp-shop-surface) !important;
  border: 1px solid var(--kp-shop-border) !important;
  border-radius: 0;
  padding: 11px 16px;
  font-family: 'Open Sans', sans-serif;
  color: var(--kp-shop-ink);
  margin-right: 8px;
}

body.kp-cart-page .cart-collaterals {
  margin-top: clamp(40px, 5vw, 64px);
}
body.kp-cart-page .cart_totals {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  padding: clamp(24px, 3vw, 40px) !important;
}
body.kp-cart-page .cart_totals h2 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.6rem;
  color: var(--kp-shop-ink) !important;
  margin: 0 0 20px;
}
body.kp-cart-page .cart_totals table th {
  font-family: 'Oswald', Impact, sans-serif !important;
  color: var(--kp-shop-ink) !important;
  background: transparent !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-color: var(--kp-shop-border) !important;
}
body.kp-cart-page .cart_totals table td {
  background: transparent !important;
  color: var(--kp-shop-ink) !important;
  border-color: var(--kp-shop-border) !important;
  font-family: 'Oswald', Impact, sans-serif;
  font-variant-numeric: tabular-nums lining-nums;
}
body.kp-cart-page .cart_totals .order-total .amount {
  color: #4A5320 !important;
  font-weight: 700;
  font-size: 1.2rem;
}
body.kp-cart-page .wc-proceed-to-checkout .checkout-button {
  background: #4A5320 !important;
  color: #F0EAD2 !important;
  border: 2px solid #4A5320 !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-size: 0.85rem !important;
  font-weight: 600;
  padding: 16px 32px !important;
  border-radius: 0 !important;
  width: 100%;
  text-align: center;
}
body.kp-cart-page .wc-proceed-to-checkout .checkout-button:hover {
  background: transparent !important;
  color: #4A5320 !important;
}

/* Empty cart state */
body.kp-cart-page .wc-empty-cart-message {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  color: var(--kp-shop-ink) !important;
  padding: clamp(40px, 6vw, 72px) !important;
  text-align: center;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.2rem;
  border-top: 3px solid #4A5320 !important;
}

/* ============================================================
   G. CHECKOUT (/checkout/)
   Reuses cart palette + form treatment.
   ============================================================ */

body.kp-checkout-page {
  background-color: var(--kp-shop-surface) !important;
  color: var(--kp-shop-ink);
}
body.kp-checkout-page .site-content,
body.kp-checkout-page main {
  background: transparent !important;
  padding: clamp(56px, 7vw, 96px) clamp(20px, 4vw, 64px);
  max-width: 1280px;
  margin: 0 auto;
}
body.kp-checkout-page h3 {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--kp-shop-ink) !important;
  font-size: 1.5rem;
  border-bottom: 2px solid var(--kp-shop-border);
  padding-bottom: 12px;
  margin-bottom: 24px;
}
body.kp-checkout-page form .form-row label {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kp-shop-ink) !important;
  font-weight: 600;
}
body.kp-checkout-page form .form-row input.input-text,
body.kp-checkout-page form .form-row textarea,
body.kp-checkout-page form .form-row select,
body.kp-checkout-page form .form-row .select2-selection {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  border-radius: 0 !important;
  color: var(--kp-shop-ink) !important;
  font-family: 'Open Sans', sans-serif !important;
  padding: 12px 16px !important;
  font-size: 1rem;
}
body.kp-checkout-page form .form-row input.input-text:focus,
body.kp-checkout-page form .form-row textarea:focus {
  border-color: #4A5320 !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(74,83,32,0.15) !important;
}
body.kp-checkout-page #order_review,
body.kp-checkout-page #order_review_heading {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  padding: clamp(24px, 3vw, 40px) !important;
  color: var(--kp-shop-ink) !important;
}
body.kp-checkout-page #order_review table.shop_table th,
body.kp-checkout-page #order_review table.shop_table td {
  background: transparent !important;
  color: var(--kp-shop-ink) !important;
  border-color: var(--kp-shop-border) !important;
  font-family: 'Open Sans', sans-serif;
}
body.kp-checkout-page #order_review .order-total .amount {
  color: #4A5320 !important;
  font-family: 'Oswald', Impact, sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
}
body.kp-checkout-page #payment {
  background: transparent !important;
}
body.kp-checkout-page #payment ul.payment_methods {
  background: var(--kp-shop-surface) !important;
  border: 1px solid var(--kp-shop-border) !important;
  padding: 16px 24px !important;
}
body.kp-checkout-page #payment ul.payment_methods li label {
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.85rem;
  color: var(--kp-shop-ink) !important;
}
body.kp-checkout-page #payment #place_order,
body.kp-checkout-page button#place_order {
  background: #4A5320 !important;
  color: #F0EAD2 !important;
  border: 2px solid #4A5320 !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  font-size: 0.9rem !important;
  font-weight: 600;
  padding: 16px 32px !important;
  border-radius: 0 !important;
  width: 100%;
}
body.kp-checkout-page #payment #place_order:hover {
  background: transparent !important;
  color: #4A5320 !important;
}

/* ============================================================
   H. MY ACCOUNT (/my-account/)
   ============================================================ */

body.kp-account-page {
  background-color: var(--kp-shop-surface) !important;
  color: var(--kp-shop-ink);
}
body.kp-account-page .site-content,
body.kp-account-page main {
  background: transparent !important;
  padding: clamp(56px, 7vw, 96px) clamp(20px, 4vw, 64px);
  max-width: 1280px;
  margin: 0 auto;
  min-height: 60vh;
}
body.kp-account-page h1,
body.kp-account-page h2 {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--kp-shop-ink) !important;
}

/* Nav (left column when logged in) */
body.kp-account-page .woocommerce-MyAccount-navigation {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
}
body.kp-account-page .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.kp-account-page .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--kp-shop-border);
}
body.kp-account-page .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.kp-account-page .woocommerce-MyAccount-navigation li a {
  display: block;
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  padding: 16px 20px !important;
  color: var(--kp-shop-ink) !important;
  text-decoration: none;
  border-left: 3px solid transparent;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
body.kp-account-page .woocommerce-MyAccount-navigation li a:hover,
body.kp-account-page .woocommerce-MyAccount-navigation li.is-active > a {
  border-left-color: #4A5320;
  background: var(--kp-shop-surface) !important;
  color: #4A5320 !important;
}

body.kp-account-page .woocommerce-MyAccount-content {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  padding: clamp(24px, 3vw, 40px) !important;
}
body.kp-account-page .woocommerce-MyAccount-content p,
body.kp-account-page .woocommerce-MyAccount-content a {
  font-family: 'Open Sans', sans-serif;
  color: var(--kp-shop-ink) !important;
}
body.kp-account-page .woocommerce-MyAccount-content a:hover { color: #4A5320 !important; }

/* Login + Register forms (logged out state) */
body.kp-account-page .u-columns,
body.kp-account-page form.login,
body.kp-account-page form.register {
  background: var(--kp-shop-surface-card) !important;
  border: 1px solid var(--kp-shop-border) !important;
  padding: clamp(24px, 3vw, 40px) !important;
}
body.kp-account-page form.login h2,
body.kp-account-page form.register h2,
body.kp-account-page .u-column1 > h2,
body.kp-account-page .u-column2 > h2 {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.6rem;
  margin: 0 0 20px;
  border-bottom: 2px solid var(--kp-shop-border);
  padding-bottom: 12px;
  color: var(--kp-shop-ink) !important;
}
body.kp-account-page form.login label,
body.kp-account-page form.register label {
  font-family: 'Oswald', Impact, sans-serif !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kp-shop-ink) !important;
  font-weight: 600;
}
body.kp-account-page form.login input.input-text,
body.kp-account-page form.register input.input-text {
  background: var(--kp-shop-surface) !important;
  border: 1px solid var(--kp-shop-border) !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  font-family: 'Open Sans', sans-serif !important;
  color: var(--kp-shop-ink) !important;
  width: 100%;
  font-size: 1rem;
}
body.kp-account-page form.login input.input-text:focus,
body.kp-account-page form.register input.input-text:focus {
  border-color: #4A5320 !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(74,83,32,0.15);
}
body.kp-account-page form.login button.button,
body.kp-account-page form.register button.button,
body.kp-account-page .woocommerce-form-row button {
  background: #4A5320 !important;
  color: #F0EAD2 !important;
  border: 2px solid #4A5320 !important;
  font-family: 'Oswald', Impact, sans-serif !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  font-size: 0.85rem !important;
  font-weight: 600;
  padding: 14px 28px !important;
  border-radius: 0 !important;
}
body.kp-account-page form.login button.button:hover,
body.kp-account-page form.register button.button:hover {
  background: transparent !important;
  color: #4A5320 !important;
}
body.kp-account-page .lost_password a {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kp-shop-ink-soft) !important;
}

/* My-account responsive: stack nav above content on mobile */
@media (max-width: 767px) {
  body.kp-account-page .woocommerce-MyAccount-navigation,
  body.kp-account-page .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
    margin: 0 0 16px !important;
  }
}

/* ============================================================
   I. WOO NOTICES (cart added, error, info) — on parchment
   ============================================================ */

body.kp-shop-archive .woocommerce-notices-wrapper .woocommerce-message,
body.kp-cart-page .woocommerce-notices-wrapper .woocommerce-message,
body.kp-checkout-page .woocommerce-notices-wrapper .woocommerce-message,
body.kp-account-page .woocommerce-notices-wrapper .woocommerce-message {
  background: var(--kp-shop-surface-card) !important;
  border-top: 3px solid #4A5320 !important;
  color: var(--kp-shop-ink) !important;
  font-family: 'Open Sans', sans-serif;
  padding: 16px 24px !important;
}
body.kp-shop-archive .woocommerce-notices-wrapper .woocommerce-error,
body.kp-cart-page .woocommerce-notices-wrapper .woocommerce-error,
body.kp-checkout-page .woocommerce-notices-wrapper .woocommerce-error,
body.kp-account-page .woocommerce-notices-wrapper .woocommerce-error {
  background: var(--kp-shop-surface-card) !important;
  border-top: 3px solid #8B2222 !important;
  color: var(--kp-shop-ink) !important;
}

/* ============================================================
   2026-05-17 BATCH 8 — Shop-first home: category tiles +
   section lede + trust strip
   ============================================================ */

/* Generic section lede paragraph (centered under H2) */
.kp-section-lede {
  font-family: 'Open Sans', sans-serif;
  font-size: clamp(1rem, 1.3vw, 1.1rem);
  line-height: 1.65;
  color: #2C2416;
  max-width: 60ch;
  margin: 16px auto clamp(32px, 4vw, 48px);
  text-align: center;
}
.section--dark .kp-section-lede,
.section--olive .kp-section-lede { color: #D8CFB4; }

/* ============================================================
   CATEGORY TILES — 3 large clickable blocks under hero
   ============================================================ */
.kp-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  max-width: 1600px;
  margin: clamp(32px, 4vw, 48px) auto 0;
  border-top: 1px solid rgba(201,168,76,0.18);
  border-left: 1px solid rgba(201,168,76,0.18);
}
.kp-cat-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(28px, 4vw, 56px) clamp(24px, 3vw, 44px);
  text-decoration: none;
  color: #F0EAD2;
  border-right: 1px solid rgba(201,168,76,0.18);
  border-bottom: 1px solid rgba(201,168,76,0.18);
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.10), transparent 55%),
    linear-gradient(180deg, #1C1A17 0%, #0F110C 100%);
  transition: background 0.35s ease, transform 0.35s ease;
  min-height: 280px;
  overflow: hidden;
}
.kp-cat-tile:hover {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.18), transparent 55%),
    linear-gradient(180deg, #2A2820 0%, #161613 100%);
  transform: translateY(-2px);
}

.kp-cat-tile__monogram {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  font-size: clamp(4rem, 8vw, 6.5rem);
  line-height: 0.9;
  letter-spacing: -0.01em;
  color: #C9A84C;
  margin-bottom: clamp(16px, 2vw, 24px);
  opacity: 0.95;
}
.kp-cat-tile__title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 700;
  color: #F0EAD2;
  margin: 0 0 12px;
  letter-spacing: -0.005em;
}
.kp-cat-tile__desc {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.92rem;
  line-height: 1.6;
  color: #B5A98C;
  margin: 0 0 clamp(20px, 3vw, 32px);
  max-width: 36ch;
}
.kp-cat-tile__cta {
  margin-top: auto;
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #C9A84C;
  border-bottom: 1px solid rgba(201,168,76,0.5);
  padding-bottom: 4px;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.kp-cat-tile:hover .kp-cat-tile__cta {
  color: #F0EAD2;
  border-bottom-color: #F0EAD2;
}

/* Variants — Olive (Konserwy Kraftowe), Olive-deep (Konserwy Poligonowe), Black (Merch) */
.kp-cat-tile--olive {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.10), transparent 55%),
    linear-gradient(180deg, #2D3614 0%, #1C2410 100%);
}
.kp-cat-tile--olive:hover {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.18), transparent 55%),
    linear-gradient(180deg, #3A4519 0%, #232C12 100%);
}
.kp-cat-tile--olive-deep {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.10), transparent 55%),
    linear-gradient(180deg, #1F2910 0%, #0F140A 100%);
}
.kp-cat-tile--olive-deep:hover {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.18), transparent 55%),
    linear-gradient(180deg, #28341A 0%, #161D0F 100%);
}
.kp-cat-tile--black {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.10), transparent 55%),
    linear-gradient(180deg, #1C1A17 0%, #0A0907 100%);
}
.kp-cat-tile--black:hover {
  background:
    radial-gradient(circle at 80% 20%, rgba(201,168,76,0.18), transparent 55%),
    linear-gradient(180deg, #2A2620 0%, #14110E 100%);
}

@media (max-width: 999px) {
  .kp-cat-grid { grid-template-columns: 1fr; border-left: 0; }
  .kp-cat-tile { border-right: 0; min-height: 220px; }
}

/* ============================================================
   TRUST STRIP — 4-column ledger of trust claims
   ============================================================ */
.kp-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  list-style: none;
  margin: clamp(32px, 4vw, 48px) auto 0;
  padding: 0;
  max-width: 1400px;
  border-top: 1px solid rgba(74,83,32,0.22);
  border-left: 1px solid rgba(74,83,32,0.22);
}
.kp-trust-item {
  border-right: 1px solid rgba(74,83,32,0.22);
  border-bottom: 1px solid rgba(74,83,32,0.22);
  padding: clamp(24px, 3vw, 36px) clamp(20px, 2.5vw, 32px);
  background: transparent;
}
.kp-trust-item__num {
  display: block;
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 1.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #4A5320;
  opacity: 0.55;
  margin-bottom: 14px;
  font-variant-numeric: tabular-nums lining-nums;
}
.kp-trust-item__title {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #2C2416;
  margin: 0 0 12px;
}
.kp-trust-item p {
  font-family: 'Open Sans', sans-serif;
  font-size: 0.92rem;
  line-height: 1.6;
  color: #2C2416;
  margin: 0;
}
.kp-trust__foot {
  text-align: center;
  margin-top: clamp(32px, 4vw, 48px);
}
.kp-trust__foot a {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8B6F1E;
  text-decoration: none;
  border-bottom: 1px solid rgba(139,111,30,0.4);
  padding-bottom: 4px;
}
.kp-trust__foot a:hover { border-bottom-color: #4A5320; color: #4A5320; }

@media (max-width: 1023px) {
  .kp-trust-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 567px) {
  .kp-trust-grid { grid-template-columns: 1fr; border-left: 0; }
  .kp-trust-item { border-right: 0; }
}

/* ============================================================
   BESTSELLERS + LIMITED — match shoppage grid but on parchment
   ============================================================ */
.kp-bestsellers,
.kp-limited {
  padding-top: clamp(56px, 7vw, 96px) !important;
  padding-bottom: clamp(56px, 7vw, 96px) !important;
}
.kp-bestsellers__grid,
.kp-limited__grid {
  margin-top: clamp(32px, 4vw, 48px);
}
.kp-bestsellers .section-label,
.kp-limited .section-label,
.kp-bestsellers h2,
.kp-limited h2,
.kp-bestsellers .divider,
.kp-limited .divider {
  text-align: center;
}
.kp-bestsellers .divider,
.kp-limited .divider {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Bestsellers monogram block uses lighter parchment gradient
   matching the surface tone */
.kp-bestsellers .kp-shopcard__media {
  background: linear-gradient(135deg, #E6E0C6 0%, #DDD4B0 100%);
}
.kp-limited .kp-shopcard__media {
  background: linear-gradient(135deg, #E6E0C6 0%, #C9C2A6 100%);
}

/* Festiwal section compressed: limit inner width so it doesn't
   feel like a big block on shop-first page */
.kp-festiwal__inner { max-width: 920px; margin: 0 auto; text-align: center; }
.kp-festiwal__cta { justify-content: center; }

/* ============================================================
   2026-05-17 BATCH 9 — Shop-first home fit-to-page hardening
   Issue: new sections (kp-bestsellers, kp-cats, kp-limited,
   kp-trust) and their grids rendered left-anchored inside the
   1600 container instead of filling the centered band. Force
   container centering + grids to 100% of container width.
   ============================================================ */

/* Every .section > .container on home: full centered band */
body.home .section > .container {
  width: 100% !important;
  max-width: 1600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

/* Hero content: keep narrow but center the band */
body.home .hero {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.home .hero__content {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* All shop-first grids: fill container, no left bias */
body.home .kp-shoppage-grid,
body.home .kp-bestsellers__grid,
body.home .kp-limited__grid,
body.home .kp-cat-grid,
body.home .kp-trust-grid,
body.home .kp-konserwy-grid,
body.home .kp-pakiety {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

/* Bestsellers + Limited grids: 3-up desktop full-bleed, 2 tablet, 1 mobile */
body.home .kp-bestsellers__grid,
body.home .kp-limited__grid {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
}
@media (max-width: 999px) {
  body.home .kp-bestsellers__grid,
  body.home .kp-limited__grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 599px) {
  body.home .kp-bestsellers__grid,
  body.home .kp-limited__grid {
    grid-template-columns: 1fr !important;
  }
}

/* Bestsellers + Limited: bigger product cards, full-width band */
body.home .kp-bestsellers > .container,
body.home .kp-limited > .container {
  max-width: 1760px !important;
  padding-left: clamp(16px, 2.5vw, 40px) !important;
  padding-right: clamp(16px, 2.5vw, 40px) !important;
}
body.home .kp-bestsellers .kp-shopcard,
body.home .kp-limited .kp-shopcard {
  min-height: 100%;
}
body.home .kp-bestsellers .kp-shopcard__media,
body.home .kp-limited .kp-shopcard__media {
  aspect-ratio: 4 / 3;
  min-height: 280px;
}
body.home .kp-bestsellers .kp-shopcard__monogram,
body.home .kp-limited .kp-shopcard__monogram {
  font-size: clamp(4.5rem, 9vw, 7.5rem) !important;
}
body.home .kp-bestsellers .kp-shopcard__body,
body.home .kp-limited .kp-shopcard__body {
  padding: clamp(28px, 3vw, 44px) clamp(24px, 2.5vw, 36px) !important;
}
body.home .kp-bestsellers .kp-shopcard__title,
body.home .kp-limited .kp-shopcard__title {
  font-size: clamp(1.4rem, 2vw, 1.85rem) !important;
}
body.home .kp-bestsellers .kp-shopcard__desc,
body.home .kp-limited .kp-shopcard__desc {
  font-size: 1rem !important;
  line-height: 1.65 !important;
}

/* Section header band: keep h2/divider/lede centered within 880 cap */
body.home .section > .container > .section-label,
body.home .section > .container > h2,
body.home .section > .container > .divider,
body.home .section > .container > .kp-section-lede,
body.home .section > .container > p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Pakiety table: full width inside its container */
body.home .kp-pakiety table {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Trust strip: full width band */
body.home .kp-trust-grid {
  max-width: 1400px !important;
}

/* Cat grid: edge-to-container, no max constraint smaller than container */
body.home .kp-cat-grid {
  max-width: 100% !important;
}

/* Kontakt section: center its inner content too */
body.home #kontakt .container,
body.home #kontakt .container > * {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Konserwy preview grid: ensure 3-up desktop, full width */
body.home .kp-konserwy-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}
@media (max-width: 999px) {
  body.home .kp-konserwy-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Grids that fill their container 100% — no margin:auto (breaks fr units) */
body.home .kp-shoppage-grid,
body.home .kp-bestsellers__grid,
body.home .kp-limited__grid,
body.home .kp-konserwy-grid {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

/* Grids with own max-width: keep margin:auto for centering */
body.home .kp-cat-grid {
  width: 100% !important;
  max-width: 1600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}
body.home .kp-trust-grid {
  width: 100% !important;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

/* ============================================================
   FULLBLEED GRID — direct child of section, no container
   Sidesteps all centering cascade conflicts. Grid = 100% of
   the section (which is always 100vw). 3-up desktop, responsive.
   ============================================================ */
.kp-fullbleed-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
}
@media (max-width: 999px) {
  .kp-fullbleed-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  .kp-fullbleed-grid { grid-template-columns: 1fr; }
}

/* Media block taller on fullbleed (more visual weight) */
.kp-fullbleed-grid .kp-shopcard__media {
  aspect-ratio: 4 / 3;
  min-height: 280px;
}
.kp-fullbleed-grid .kp-shopcard__monogram {
  font-size: clamp(4.5rem, 9vw, 7.5rem);
}
.kp-fullbleed-grid .kp-shopcard__body {
  padding: clamp(28px, 3vw, 44px) clamp(24px, 2.5vw, 36px);
}
.kp-fullbleed-grid .kp-shopcard__title {
  font-size: clamp(1.4rem, 2vw, 1.85rem);
}

/* Section header + foot still use container for centering */
.kp-section-header.container,
.kp-section-foot.container {
  max-width: 880px;
  padding-top: clamp(48px, 6vw, 80px);
  padding-bottom: clamp(32px, 4vw, 56px);
  text-align: center;
}
.kp-section-foot.container {
  padding-top: clamp(24px, 3vw, 40px);
  padding-bottom: clamp(48px, 6vw, 80px);
}
.kp-section-foot a {
  font-family: 'Oswald', Impact, sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--kp-accent, #C9A84C);
  text-decoration: none;
  border-bottom: 1px solid rgba(201,168,76,0.4);
  padding-bottom: 4px;
}

/* KPX WOO white bg (cart/checkout) */
body.woocommerce-cart,body.woocommerce-checkout,
body.woocommerce-cart .site-content,body.woocommerce-checkout .site-content,
body.woocommerce-cart #content,body.woocommerce-checkout #content,
body.woocommerce-cart main,body.woocommerce-checkout main,
body.woocommerce-cart article,body.woocommerce-checkout article,
body.woocommerce-cart .entry-content,body.woocommerce-checkout .entry-content,
body.woocommerce-cart .woocommerce,body.woocommerce-checkout .woocommerce{background:#fff !important;color:#1a1a1a !important;}
body.woocommerce-cart .woocommerce table.shop_table td,body.woocommerce-cart .woocommerce table.shop_table th,
body.woocommerce-cart .cart_totals,body.woocommerce-cart .cart_totals *,
body.woocommerce-checkout #order_review,body.woocommerce-checkout #order_review *,
body.woocommerce-checkout .woocommerce-billing-fields *{color:#1a1a1a !important;}
body.woocommerce-cart .amount,body.woocommerce-checkout .amount{color:#1a1a1a !important;}

/* KPX checkout layout fixes */
body.woocommerce-checkout #content,body.woocommerce-checkout .content-area,body.woocommerce-checkout .site-main,body.woocommerce-checkout .entry-content,body.woocommerce-checkout article{background:#fff !important;}
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:1fr 400px;gap:40px;align-items:start;}
.woocommerce-checkout #customer_details{grid-column:1;grid-row:1 / span 4;}
.woocommerce-checkout #order_review_heading{grid-column:2;grid-row:1;margin-top:0;}
.woocommerce-checkout #order_review{grid-column:2;grid-row:2;}
.woocommerce #place_order,.woocommerce-checkout #place_order,.woocommerce-checkout button#place_order{background:#8f0733 !important;color:#fff !important;}
.woocommerce #place_order:hover{background:#6d0526 !important;}
@media(max-width:900px){.woocommerce-checkout form.checkout{grid-template-columns:1fr;}.woocommerce-checkout #customer_details,.woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review{grid-column:1;grid-row:auto;}}
/* KPX thankyou */
body.woocommerce-order-received #content,body.woocommerce-order-received .site-content{background:#fff !important;}
.woocommerce-order{max-width:820px;margin:0 auto;padding:40px 30px;}
.woocommerce-thankyou-order-received{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:1.6rem;color:#1a1a1a;text-align:center;border-bottom:1px solid #e3ddd0;padding-bottom:20px;}

/* KPX cart totals polish */
body.woocommerce-cart .cart_totals tr.order-total{display:none;}
body.woocommerce-cart .cart_totals table th,body.woocommerce-cart .cart_totals table td{font-family:Oswald,sans-serif;padding:12px 0;border:none;font-size:.95rem;}
body.woocommerce-cart .cart_totals tr{border-bottom:1px solid #ece7db;}
body.woocommerce-cart .cart_totals td{text-align:right;font-weight:700;}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{white-space:normal;line-height:1.2;font-size:.9rem !important;padding:16px 12px !important;}

/* KPX cart precise labels + button fit */
body.woocommerce-cart table.cart th.product-subtotal{font-size:0 !important;}
body.woocommerce-cart table.cart th.product-subtotal::after{content:"Kwota";font-size:.75rem;letter-spacing:.05em;font-family:Oswald,sans-serif;}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{font-size:.78rem !important;letter-spacing:.02em !important;padding:16px 8px !important;white-space:normal;line-height:1.25;}

/* ===== KPX CART REDESIGN ===== */
/* fix 1: kill black wrappers + excess top space */
body.woocommerce-cart, body.woocommerce-cart #page, body.woocommerce-cart .site-wrapper,
body.woocommerce-cart #content, body.woocommerce-cart .site-content, body.woocommerce-cart main{background:#fff !important;}
body.woocommerce-cart #content, body.woocommerce-cart .site-content{padding-top:24px !important;}
body.woocommerce-cart main{padding-top:0 !important;margin-top:0 !important;}
body.woocommerce-cart .woocommerce{max-width:1200px;margin:0 auto;padding:8px 20px 60px;}

/* layout: card left, summary right */
body.woocommerce-cart .woocommerce-cart-form{float:left;width:calc(100% - 400px);border:1px solid #e3ddd0;border-radius:2px;padding:24px 28px;background:#fff;box-sizing:border-box;}
body.woocommerce-cart .cart-collaterals{float:right;width:370px;}

/* card header */
.kpwc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;}
.kpwc-title{font-family:Oswald,sans-serif;font-weight:600;font-size:1.35rem;margin:0;text-transform:none;color:#1a1a1a;}
.kpwc-sub{color:#8a8577;font-size:.78rem;margin:2px 0 0;}
.kpwc-clear{display:inline-flex;align-items:center;gap:6px;color:#6b6b6b;text-decoration:none;font-size:.82rem;font-family:Oswald,sans-serif;}
.kpwc-clear:hover{color:#8f0733;}

/* borderless rows */
body.woocommerce-cart table.cart{border:none !important;margin:14px 0 0 !important;background:transparent;}
body.woocommerce-cart table.cart thead{display:none !important;}
body.woocommerce-cart table.cart td{border:none !important;border-top:1px solid #ece7db !important;padding:16px 6px !important;vertical-align:middle !important;background:#fff !important;}
body.woocommerce-cart table.cart tr:first-child td{border-top:none !important;}
body.woocommerce-cart table.cart td.product-price{display:none !important;}
body.woocommerce-cart table.cart td.product-remove{width:26px;text-align:center;}
body.woocommerce-cart table.cart td.product-remove a.remove{color:#b7b1a3 !important;font-size:1.25rem;background:none !important;}
body.woocommerce-cart table.cart td.product-remove a.remove:hover{color:#8f0733 !important;}
body.woocommerce-cart table.cart td.product-thumbnail{width:82px;}
body.woocommerce-cart table.cart td.product-thumbnail img{width:64px;height:auto;}
body.woocommerce-cart td.product-name{font-family:Oswald,sans-serif;}
body.woocommerce-cart td.product-name>a{font-weight:600;color:#1a1a1a !important;text-decoration:none;font-size:1.05rem;}
.kpwc-unit{font-family:Oswald,sans-serif;color:#1a1a1a;font-weight:600;margin-top:4px;font-size:.95rem;}
.kpwc-ship{color:#8a8577;font-size:.76rem;margin-top:2px;font-family:'Open Sans',sans-serif;}
body.woocommerce-cart td.product-quantity{text-align:center;}
body.woocommerce-cart td.product-subtotal{text-align:right;font-family:Oswald,sans-serif;font-weight:700;font-size:1.1rem;color:#1a1a1a;}
/* remove coupon + update button row */
body.woocommerce-cart td.actions{display:none !important;}

/* SUMMARY card */
body.woocommerce-cart .cart_totals{border:1px solid #e3ddd0;border-radius:2px;padding:28px 26px;position:relative;overflow:hidden;background:#fff;}
body.woocommerce-cart .cart_totals::before{content:"";position:absolute;inset:0;background:url('https://kuchniapolowa.smmtesting.pl/wp-content/uploads/2026/08/stamp-batalion.png') center 55%/78% no-repeat;opacity:.07;z-index:0;pointer-events:none;}
body.woocommerce-cart .cart_totals h2{text-transform:none !important;font-family:Oswald,sans-serif !important;font-weight:600 !important;font-size:1.3rem !important;text-align:center;margin:0 0 20px !important;position:relative;z-index:1;}
body.woocommerce-cart .cart_totals table{position:relative;z-index:1;border:none;}
body.woocommerce-cart .cart_totals table th{text-transform:none !important;font-weight:400 !important;font-family:'Open Sans',sans-serif !important;font-size:.92rem !important;color:#333 !important;text-align:left !important;padding:14px 0 !important;white-space:normal;letter-spacing:0 !important;}
body.woocommerce-cart .cart_totals table td{font-family:Oswald,sans-serif !important;font-weight:700 !important;text-align:right !important;color:#1a1a1a !important;padding:14px 0 !important;white-space:nowrap;}
body.woocommerce-cart .cart_totals tr{border-bottom:1px solid #ece7db;}
body.woocommerce-cart .cart_totals tr.order-total{display:none;}
body.woocommerce-cart .wc-proceed-to-checkout{position:relative;z-index:1;padding-top:6px;}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{width:100%;text-align:center;padding:16px !important;font-size:.9rem !important;letter-spacing:.06em;}

/* login box buttons (fix 4) */
.kpw-loginbox .kpw-btn--ghost{background:#8f0733 !important;color:#fff !important;border:1px solid #8f0733 !important;}
.kpw-loginbox .kpw-btn--ghost:hover{background:#6d0526 !important;}
.kpw-loginbox .kpw-btn--outline{background:#fff !important;color:#8f0733 !important;border:1px solid #8f0733 !important;}
.kpw-loginbox .kpw-btn--outline:hover{background:#8f0733 !important;color:#fff !important;}

@media(max-width:900px){
	body.woocommerce-cart .woocommerce-cart-form,body.woocommerce-cart .cart-collaterals{float:none;width:100%;}
	body.woocommerce-cart .cart-collaterals{margin-top:24px;}
}

/* KPX CART FIX2 — heading color + summary rows */
body.woocommerce-cart .kpwc-title{color:#1a1a1a !important;}
body.woocommerce-cart .kpwc-clear{color:#6b6b6b !important;}
body.woocommerce-cart .cart_totals h2{color:#1a1a1a !important;}
body.woocommerce-cart .cart_totals table{width:100% !important;table-layout:auto !important;}
body.woocommerce-cart .cart_totals th{white-space:nowrap !important;font-size:.88rem !important;padding-right:14px !important;width:1%;}
body.woocommerce-cart .cart_totals td{white-space:nowrap !important;}

/* KPX CART FIX3 — summary rows as flex (no clip) */
body.woocommerce-cart .cart-collaterals{width:360px !important;}
body.woocommerce-cart .cart_totals{overflow:visible !important;}
body.woocommerce-cart .cart_totals table,
body.woocommerce-cart .cart_totals tbody{display:block !important;width:100% !important;}
body.woocommerce-cart .cart_totals tr{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:14px !important;border-bottom:1px solid #ece7db !important;padding:13px 0 !important;}
body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td{display:block !important;padding:0 !important;border:none !important;width:auto !important;}
body.woocommerce-cart .cart_totals th{white-space:normal !important;font-size:.9rem !important;color:#333 !important;text-align:left !important;line-height:1.25;}
body.woocommerce-cart .cart_totals td{white-space:nowrap !important;text-align:right !important;}

/* KPX CART FIX4 — hide order-total, single-line labels */
body.woocommerce-cart .cart_totals tr.order-total{display:none !important;}
body.woocommerce-cart .cart_totals th{white-space:nowrap !important;}

/* KPX CART FIX5 — 1:1 title, remove per-row X, subtle stepper, wider container */
body.woocommerce-cart .woocommerce{max-width:1340px;}
body.woocommerce-cart .woocommerce-cart-form{width:calc(100% - 400px);}
body.woocommerce-cart .cart-collaterals{width:370px !important;}
.kpwc-cart-title{font-family:Oswald,sans-serif;font-weight:700;text-transform:uppercase;font-size:2.2rem;color:#1a1a1a;margin:4px 0 22px;letter-spacing:.02em;}
/* remove per-row delete icon (reference has none; trash lives in stepper + Wyczyść koszyk) */
body.woocommerce-cart table.cart td.product-remove{display:none !important;}
body.woocommerce-cart table.cart td.product-thumbnail{padding-left:0 !important;}
/* subtle stepper */
body.woocommerce-cart .woocommerce .quantity{border:1px solid #d9d3c6 !important;border-radius:2px;overflow:hidden;background:#fff !important;display:inline-flex;align-items:center;}
body.woocommerce-cart .kpw-qtybtn{background:#fff !important;color:#3a3a32 !important;width:38px;height:38px;border:none !important;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;}
body.woocommerce-cart .kpw-qtybtn:hover{background:#f2ede2 !important;}
body.woocommerce-cart .kpw-qtybtn.is-trash{color:#8f0733 !important;}
body.woocommerce-cart .woocommerce .quantity input.qty{border:none !important;border-left:1px solid #d9d3c6 !important;border-right:1px solid #d9d3c6 !important;width:46px;height:38px;background:#fff !important;font-family:Oswald,sans-serif;}

/* KPX CART FIX6 — left title, constrain container, white qty input */
body.woocommerce-cart .woocommerce{max-width:1280px !important;margin:0 auto !important;padding:8px 24px 60px !important;}
.kpwc-cart-title{text-align:left !important;}
body.woocommerce-cart .woocommerce .quantity input.qty{background:#fff !important;color:#1a1a1a !important;}
body.woocommerce-cart .woocommerce .quantity{background:#fff !important;}

/* KPX CART FIX7 — title font, stamp opacity, top spacing, button one-line */
.kpwc-cart-title{font-family:'Oswald',sans-serif !important;font-weight:700 !important;}
body.woocommerce-cart .cart_totals::before{opacity:.17 !important;background-size:86% auto !important;background-position:center 58% !important;}
body.woocommerce-cart .site-content{padding-top:8px !important;}
body.woocommerce-cart main.site-main{padding-top:14px !important;border-top:none !important;}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{white-space:nowrap !important;font-size:.9rem !important;letter-spacing:.05em;}

/* KPX CART FIX8 — title font specificity + checkout button fit */
body.woocommerce-cart h1.kpwc-cart-title,
body.woocommerce-cart .site-content h1.kpwc-cart-title{font-family:'Oswald',sans-serif !important;font-weight:700 !important;letter-spacing:.02em !important;text-transform:uppercase !important;}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{white-space:nowrap !important;font-size:.78rem !important;letter-spacing:0 !important;padding:15px 8px !important;line-height:1.1 !important;}
