/*
 * PZ Dubrava frontend architecture
 * 1. Tokens
 * 2. Base and accessibility
 * 3. Layout and rhythm primitives
 * 4. Typography, links, buttons and forms
 * 5. Shared components
 * 6. Site chrome
 * 7. Existing page compositions
 * 8. WooCommerce compatibility
 * 9. Responsive rules
 * 10. P0 regression guards
 *
 * WordPress presets and local @font-face registration live in theme.json.
 */

/* 1. Tokens -------------------------------------------------------------- */

:root {
  --pz-color-forest: var(--wp--preset--color--forest, #183127);
  --pz-color-ink: var(--wp--preset--color--ink, #17211d);
  --pz-color-olive: var(--wp--preset--color--olive, #56652f);
  --pz-color-leaf: var(--wp--preset--color--leaf, #9caf70);
  --pz-color-fig: var(--wp--preset--color--fig, #78506f);
  --pz-color-cherry: var(--wp--preset--color--cherry, #a34242);
  --pz-color-paper: var(--wp--preset--color--paper, #fffdf8);
  --pz-color-cream: var(--wp--preset--color--cream, #f7f3e9);
  --pz-color-sand: var(--wp--preset--color--sand, #e8dfcf);
  --pz-color-border: var(--wp--preset--color--border, #d8d8cc);
  --pz-color-muted: var(--wp--preset--color--muted, #596860);
  --pz-color-success: var(--wp--preset--color--success, #2f6b4d);
  --pz-color-warning: var(--wp--preset--color--warning, #8a5b12);
  --pz-color-error: var(--wp--preset--color--error, #a13b3b);
  --pz-color-focus: var(--wp--preset--color--focus, #b45f38);
  --pz-color-white: var(--wp--preset--color--white, #fff);
  --pz-color-forest-hover: #10271f;
  --pz-color-forest-active: #0c1f18;

  /* Backward-compatible aliases used by existing compositions. */
  --pz-forest: var(--pz-color-forest);
  --pz-ink: var(--pz-color-ink);
  --pz-olive: var(--pz-color-olive);
  --pz-leaf: var(--pz-color-leaf);
  --pz-fig: var(--pz-color-fig);
  --pz-cherry: var(--pz-color-cherry);
  --pz-paper: var(--pz-color-paper);
  --pz-cream: var(--pz-color-cream);
  --pz-sand: var(--pz-color-sand);
  --pz-muted: var(--pz-color-muted);

  --pz-font-display: var(--wp--preset--font-family--heading, "Literata", Georgia, serif);
  --pz-font-body: var(--wp--preset--font-family--body, "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);

  --pz-text-meta: 0.875rem;
  --pz-text-body: 1rem;
  --pz-text-lead: clamp(1.0625rem, 1.5vw, 1.25rem);
  --pz-text-h4: clamp(1.125rem, 1.5vw, 1.25rem);
  --pz-text-h3: clamp(1.375rem, 2vw, 1.75rem);
  --pz-text-h2: clamp(2rem, 4vw, 3.5rem);
  --pz-text-h1: clamp(2.75rem, 5.5vw, 5.25rem);
  --pz-text-display: clamp(3rem, 6.5vw, 6.25rem);
  --pz-text-button: 0.9rem;
  --pz-text-label: 0.875rem;
  --pz-text-breadcrumb: 0.875rem;
  --pz-text-price: clamp(1rem, 1.3vw, 1.25rem);

  --pz-space-1: 0.25rem;
  --pz-space-2: 0.5rem;
  --pz-space-3: 0.75rem;
  --pz-space-4: 1rem;
  --pz-space-5: 1.5rem;
  --pz-space-6: 2rem;
  --pz-space-7: 3rem;
  --pz-space-8: 4rem;
  --pz-space-9: 5rem;
  --pz-space-10: 6rem;

  --pz-gap-component: var(--pz-space-4);
  --pz-gap-card: var(--pz-space-5);
  --pz-gap-form: var(--pz-space-4);
  --pz-gap-content: clamp(var(--pz-space-5), 3vw, var(--pz-space-7));
  --pz-gap-grid: clamp(var(--pz-space-4), 2vw, var(--pz-space-5));
  --pz-section-compact: clamp(var(--pz-space-6), 4vw, var(--pz-space-7));
  --pz-section-standard: clamp(var(--pz-space-7), 6vw, var(--pz-space-9));
  --pz-section-spacious: clamp(var(--pz-space-8), 8vw, var(--pz-space-10));
  --pz-page-block: clamp(var(--pz-space-7), 7vw, var(--pz-space-9));

  --pz-gutter: clamp(1rem, 4vw, 4rem);
  --pz-container-text: 760px;
  --pz-container-content: 1240px;
  --pz-container-wide: 1440px;

  --pz-radius-small: 10px;
  --pz-radius-medium: 16px;
  --pz-radius-large: 24px;
  --pz-radius-pill: 999px;
  --pz-border: 1px solid var(--pz-color-border);
  --pz-shadow-float: 0 18px 48px rgba(24, 49, 39, 0.1);

  --pz-duration: 180ms;
  --pz-easing: cubic-bezier(0.2, 0.7, 0.2, 1);
  --pz-focus-ring: 3px solid var(--pz-color-focus);
  --pz-focus-offset: 3px;
}

/* 2. Base and accessibility ---------------------------------------------- */

html {
  scroll-behavior: smooth;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  min-width: 0;
  color: var(--pz-color-ink);
  background: var(--pz-color-cream);
  font-family: var(--pz-font-body);
  font-size: var(--pz-text-body);
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
}

body.admin-bar .pz-site-header {
  top: 32px;
}

::selection {
  color: var(--pz-color-white);
  background: var(--pz-color-fig);
}

img:not([hidden]),
svg:not([hidden]),
video:not([hidden]) {
  display: block;
  max-width: 100%;
}

/* Author styles must not override the native hidden contract used by
   WooCommerce Blocks while an image or interactive view is inactive. */
[hidden] {
  display: none !important;
}

img {
  height: auto;
}

button,
input,
select,
textarea {
  max-width: 100%;
  font: inherit;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--pz-focus-ring);
  outline-offset: var(--pz-focus-offset);
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wc-block-mini-cart__button,
.wc-block-components-drawer__close {
  min-width: 44px;
  min-height: 44px;
}

.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > main,
.wp-site-blocks > footer {
  margin-block-start: 0;
}

.wp-site-blocks .screen-reader-text:focus,
.wp-site-blocks .skip-link:focus {
  z-index: 100000;
  top: var(--pz-space-3);
  left: var(--pz-space-3);
  width: auto;
  height: auto;
  padding: var(--pz-space-3) var(--pz-space-4);
  clip: auto;
  color: var(--pz-color-white);
  background: var(--pz-color-forest);
}

/* 3. Layout and rhythm primitives --------------------------------------- */

.pz-site-shell,
.pz-container,
.pz-container-wide,
.pz-container-content,
.pz-container-text {
  width: calc(100% - (2 * var(--pz-gutter)));
  margin-inline: auto;
}

.pz-site-shell,
.pz-container-wide {
  max-width: var(--pz-container-wide);
}

.pz-container,
.pz-container-content {
  max-width: var(--pz-container-content);
}

.pz-container-text {
  max-width: var(--pz-container-text);
}

:where(
  .pz-topbar-inner,
  .pz-header-inner,
  .pz-home-hero-grid,
  .pz-benefits-grid,
  .pz-products-heading,
  .pz-oil-story > .pz-split,
  .pz-story-teaser > .pz-split,
  .pz-seasonal-inner,
  .pz-footer-cta-inner,
  .pz-footer-grid,
  .pz-footer-bottom
) {
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-wide);
  margin-inline: auto;
}

:where(
  .pz-products-section > .woocommerce,
  .pz-shop-main,
  .pz-product-main,
  .pz-commerce-page,
  .pz-single-main,
  .pz-archive-main
) {
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
}

.pz-section,
.pz-section-standard {
  padding-block: var(--pz-section-standard);
}

.pz-section-compact {
  padding-block: var(--pz-section-compact);
}

.pz-section-spacious {
  padding-block: var(--pz-section-spacious);
}

.pz-stack-small > * + * {
  margin-block-start: var(--pz-space-3);
}

.pz-stack-medium > * + * {
  margin-block-start: var(--pz-space-5);
}

.pz-stack-large > * + * {
  margin-block-start: var(--pz-space-7);
}

.pz-grid {
  display: grid;
  gap: var(--pz-gap-grid);
}

.pz-main {
  min-width: 0;
  min-height: 48vh;
}

.home .pz-main > .wp-block-post-content,
.home .pz-main > .wp-block-post-content > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

.pz-page-main,
.pz-single-main,
.pz-archive-main,
.pz-error-page,
.pz-commerce-page {
  padding-block: var(--pz-page-block);
}

.pz-page-main {
  padding-inline: var(--pz-gutter);
}

.pz-page-main > .wp-block-post-title,
.pz-single-main > .wp-block-post-title,
.pz-archive-main > .wp-block-query-title {
  max-width: var(--pz-container-content);
  margin-block: 0 var(--pz-space-7);
}

/* 4. Typography, links, buttons and forms ------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
  margin-block: 0 var(--pz-space-4);
  color: var(--pz-color-forest);
  text-wrap: balance;
}

h1,
h2,
.wp-block-heading:is(h1, h2) {
  font-family: var(--pz-font-display);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.03em;
}

h1,
.wp-block-heading:is(h1) {
  font-size: var(--pz-text-h1);
}

h2,
.wp-block-heading:is(h2) {
  font-size: var(--pz-text-h2);
}

h3,
.wp-block-heading:is(h3) {
  font-family: var(--pz-font-body);
  font-size: var(--pz-text-h3);
  font-weight: 750;
  line-height: 1.2;
}

h4,
.wp-block-heading:is(h4) {
  font-family: var(--pz-font-body);
  font-size: var(--pz-text-h4);
  font-weight: 750;
  line-height: 1.3;
}

p,
ul,
ol {
  margin-block: 0 var(--pz-space-4);
}

:where(main) :where(p, li) {
  max-width: 75ch;
}

small,
.has-small-font-size,
.pz-meta {
  font-size: var(--pz-text-meta);
  line-height: 1.55;
}

.has-large-font-size,
.pz-lead {
  font-size: var(--pz-text-lead) !important;
  line-height: 1.6;
}

a {
  color: var(--pz-color-forest);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
  transition: color var(--pz-duration) var(--pz-easing), text-decoration-color var(--pz-duration) var(--pz-easing);
}

a:not(:where(.wp-element-button, .wp-block-button__link, .button, .wc-block-components-button)):hover {
  color: var(--pz-color-fig);
}

:where(.pz-primary-nav, .pz-header-actions, .wp-block-buttons, .pz-text-link) a {
  text-decoration: none;
}

.pz-eyebrow {
  margin-block: 0 var(--pz-space-3);
  color: var(--pz-color-olive);
  font-family: var(--pz-font-body);
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pz-text-link {
  margin: 0;
  font-size: var(--pz-text-meta);
  font-weight: 750;
}

:where(
  .wp-element-button,
  .wp-block-button__link,
  .woocommerce #respond input#submit,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-components-button:not(.is-link)
) {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: var(--pz-space-2);
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--pz-color-forest);
  border-radius: var(--pz-radius-small);
  color: var(--pz-color-white);
  background: var(--pz-color-forest);
  font-family: var(--pz-font-body);
  font-size: var(--pz-text-button);
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: color var(--pz-duration) var(--pz-easing), background-color var(--pz-duration) var(--pz-easing), border-color var(--pz-duration) var(--pz-easing), transform var(--pz-duration) var(--pz-easing);
}

:where(
  .wp-element-button,
  .wp-block-button__link,
  .woocommerce #respond input#submit,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-components-button:not(.is-link)
):hover {
  color: var(--pz-color-white);
  border-color: var(--pz-color-forest-hover);
  background: var(--pz-color-forest-hover);
}

:where(
  .wp-element-button,
  .wp-block-button__link,
  .woocommerce #respond input#submit,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-components-button:not(.is-link)
):active {
  color: var(--pz-color-white);
  border-color: var(--pz-color-forest-active);
  background: var(--pz-color-forest-active);
  transform: translateY(1px);
}

.wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--pz-color-forest);
  border-color: rgba(24, 49, 39, 0.35);
  background: transparent;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  color: var(--pz-color-forest);
  border-color: var(--pz-color-forest);
  background: #eef0df;
}

.wp-block-button.is-style-outline .wp-block-button__link:active {
  color: var(--pz-color-forest-active);
  border-color: var(--pz-color-forest-active);
  background: #e3e8cf;
}

:where(button, input, select, textarea, .wp-element-button, .wp-block-button__link)[disabled],
:where(button, input, select, textarea, .wp-element-button, .wp-block-button__link).disabled,
.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.wc-block-components-button:disabled,
:where(.wp-element-button, .wp-block-button__link)[aria-disabled="true"] {
  border-color: var(--pz-color-border);
  color: var(--pz-color-muted);
  background: #ecece5;
  cursor: not-allowed;
  opacity: 0.72;
  transform: none;
}

:where(
  button,
  .wp-element-button,
  .wp-block-button__link,
  .woocommerce a.button,
  .woocommerce button.button,
  .wc-block-components-button
):where([disabled], .disabled, [aria-disabled="true"]):hover {
  border-color: var(--pz-color-border);
  color: var(--pz-color-muted);
  background: #ecece5;
  transform: none;
}

.is-loading,
.wc-block-components-button[aria-busy="true"] {
  cursor: progress;
}

label,
.woocommerce form .form-row label,
.wc-block-components-text-input label,
.wc-block-components-combobox label {
  color: var(--pz-color-ink);
  font-size: var(--pz-text-label);
  font-weight: 700;
}

:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not(.qty):not(.wc-block-components-quantity-selector__input),
  select,
  textarea,
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row textarea,
  .wc-block-components-text-input input,
  .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input
) {
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 0.9rem;
  border: var(--pz-border);
  border-radius: var(--pz-radius-small);
  color: var(--pz-color-ink);
  background: var(--pz-color-paper);
  font-size: var(--pz-text-body);
  line-height: 1.4;
  transition: border-color var(--pz-duration) var(--pz-easing), box-shadow var(--pz-duration) var(--pz-easing), background-color var(--pz-duration) var(--pz-easing);
}

textarea {
  min-height: 8rem;
  resize: vertical;
}

:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  select,
  textarea
):focus {
  border-color: var(--pz-color-focus);
  box-shadow: 0 0 0 3px rgba(180, 95, 56, 0.16);
}

input[type="checkbox"],
input[type="radio"] {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--pz-color-forest);
}

:where(input, select, textarea):disabled {
  color: var(--pz-color-muted);
  background: #efefe9;
}

.woocommerce .password-input {
  position: relative;
  display: block;
}

.woocommerce .show-password-input {
  top: 50%;
  right: 0;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  transform: translateY(-50%);
}

.pz-help-text,
.description,
.woocommerce form .form-row .description {
  color: var(--pz-color-muted);
  font-size: var(--pz-text-meta);
}

.woocommerce-invalid :where(input, select, textarea),
:where(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--pz-color-error);
}

/* 5. Shared components --------------------------------------------------- */

.pz-section-heading {
  max-width: var(--pz-container-text);
  margin-bottom: clamp(var(--pz-space-6), 5vw, var(--pz-space-8));
}

.pz-section-heading h2 {
  margin-bottom: var(--pz-space-4);
}

.pz-card,
.pz-card-grid .wp-block-column,
.pz-post-card {
  min-width: 0;
  overflow: hidden;
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: var(--pz-color-paper);
}

.pz-card-floating {
  box-shadow: var(--pz-shadow-float);
}

.pz-media-frame,
.pz-rounded-image {
  overflow: hidden;
  border-radius: var(--pz-radius-large);
}

.pz-media-frame img,
.pz-rounded-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pz-badge,
.woocommerce span.onsale {
  display: inline-flex;
  min-width: 0;
  min-height: 0;
  align-items: center;
  padding: 0.4rem 0.7rem;
  border-radius: var(--pz-radius-pill);
  color: var(--pz-color-white);
  background: var(--pz-color-fig);
  font-size: 0.75rem;
  font-weight: 750;
  line-height: 1;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner,
.pz-notice {
  margin-block: 0 var(--pz-space-5);
  padding: var(--pz-space-4) var(--pz-space-5);
  border: var(--pz-border);
  border-top: 3px solid var(--pz-color-olive);
  border-radius: var(--pz-radius-small);
  color: var(--pz-color-ink);
  background: var(--pz-color-paper);
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error,
.pz-notice--error {
  border-top-color: var(--pz-color-error);
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success,
.pz-notice--success {
  border-top-color: var(--pz-color-success);
}

.woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb,
.pz-breadcrumb {
  margin-bottom: var(--pz-space-5);
  color: var(--pz-color-muted);
  font-size: var(--pz-text-breadcrumb);
}

.woocommerce nav.woocommerce-pagination ul,
.wp-block-query-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pz-space-2);
  align-items: center;
  justify-content: center;
}

.woocommerce nav.woocommerce-pagination ul {
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.wp-block-query-pagination a,
.wp-block-query-pagination .current {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: var(--pz-border);
  border-radius: var(--pz-radius-small);
  background: var(--pz-color-paper);
  text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  color: var(--pz-color-white);
  background: var(--pz-color-forest);
}

.price,
.woocommerce-Price-amount,
.wc-block-components-product-price {
  color: var(--pz-color-olive);
  font-size: var(--pz-text-price);
  font-weight: 800;
}

.pz-empty-state,
.wp-block-woocommerce-empty-cart-block,
.wc-block-mini-cart__empty-cart-wrapper {
  width: 100%;
  padding: clamp(var(--pz-space-6), 6vw, var(--pz-space-9));
  text-align: center;
}

/* 6. Site chrome --------------------------------------------------------- */

.pz-topbar {
  color: #304237;
  background: #eef0df;
}

.pz-topbar-inner {
  min-height: 36px;
  gap: var(--pz-space-6);
}

.pz-topbar p {
  margin: 0;
  padding: 0;
  font-size: 0.75rem;
  font-weight: 650;
  line-height: 1.35;
}

.pz-topbar a {
  color: inherit;
  text-decoration: none;
}

.pz-topbar-delivery {
  margin-inline: auto;
}

.pz-topbar-delivery span {
  margin-right: var(--pz-space-2);
  color: var(--pz-color-olive);
}

.pz-topbar-links {
  gap: var(--pz-space-5);
}

.pz-site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(24, 49, 39, 0.08);
  background: rgba(255, 253, 248, 0.98);
  backdrop-filter: blur(18px);
}

.pz-header-inner {
  position: relative;
  min-height: 76px;
  gap: clamp(var(--pz-space-3), 2.4vw, var(--pz-space-6));
  align-items: center;
}

.pz-site-logo {
  flex: 0 0 auto;
}

.pz-site-logo img,
.pz-checkout-header .wp-block-site-logo img {
  width: clamp(158px, 12.5vw, 190px);
  max-height: 60px;
  object-fit: contain;
}

.pz-primary-nav {
  margin: 0 auto 0 clamp(var(--pz-space-2), 2vw, var(--pz-space-6));
}

.pz-primary-nav .wp-block-navigation__container {
  column-gap: clamp(var(--pz-space-4), 2vw, var(--pz-space-6));
}

.pz-primary-nav .wp-block-navigation-item__content {
  padding-block: var(--pz-space-2);
  font-size: 0.925rem;
  font-weight: 650;
}

.pz-primary-nav .wp-block-navigation__submenu-container {
  min-width: 190px;
  padding: var(--pz-space-2);
  border: var(--pz-border);
  border-radius: var(--pz-radius-small);
  background: var(--pz-color-paper);
  box-shadow: var(--pz-shadow-float);
}

.pz-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 0.65rem 0.8rem;
  border-radius: 8px;
}

.pz-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
  background: var(--pz-color-cream);
}

.pz-header-actions {
  min-width: max-content;
  gap: var(--pz-space-2);
  align-items: center;
}

.pz-primary-nav .pz-mobile-account-link {
  display: none;
}

.pz-header-actions :where(.wp-block-search, .wp-block-woocommerce-customer-account, .wp-block-woocommerce-mini-cart) {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  margin: 0;
}

.pz-header-search {
  width: auto;
}

.pz-header-search .wp-block-search__button,
.pz-header-actions .wc-block-customer-account__link,
.pz-header-actions .wc-block-customer-account__toggle,
.pz-header-actions .wc-block-mini-cart__button {
  display: flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--pz-color-forest);
  background: transparent;
}

.pz-header-search .wp-block-search__inside-wrapper {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
}

.pz-header-search svg,
.pz-header-actions :where(.wc-block-customer-account__account-icon, .wc-block-mini-cart__icon),
.pz-primary-nav .wp-block-navigation__responsive-container-open svg {
  width: 22px;
  height: 22px;
}

.pz-header-search .wp-block-search__button:hover,
.pz-header-actions .wc-block-customer-account__link:hover,
.pz-header-actions .wc-block-customer-account__toggle:hover,
.pz-header-actions .wc-block-mini-cart__button:hover {
  color: var(--pz-color-forest);
  background: #eef0df;
}

/* WooCommerce Blocks renders the mini-cart wrapper with visibility:hidden on
   the cart and checkout pages (MiniCart.php:841).  Override that here so the
   icon is always visible in the header action group for navigation context. */
body.woocommerce-cart .pz-header-actions .wp-block-woocommerce-mini-cart,
body.woocommerce-checkout .pz-header-actions .wp-block-woocommerce-mini-cart {
  visibility: visible !important;
}

/* Badge colour override: WC Blocks resets badge colours to transparent via
   :where() with 0 specificity.  Provide brand colours without using
   !important so any per-block colour attribute still wins. */
.pz-header-actions .wc-block-mini-cart__badge {
  background: var(--pz-color-forest);
  color: var(--pz-color-white);
}

/* Page-based active state — indicates the current section, not cart contents.
   Discrete: thin 1.5 px forest ring + light tint; clearly green, not gray. */
body.woocommerce-cart .pz-header-actions .wc-block-mini-cart__button,
body.woocommerce-account .pz-header-actions .wc-block-customer-account__link,
body.woocommerce-account .pz-header-actions .wc-block-customer-account__toggle {
  background: rgba(24, 49, 39, 0.10);
  outline: 1.5px solid var(--pz-color-forest);
  outline-offset: -2px;
  border-radius: 50%;
}

.pz-header-search .wp-block-search__input {
  height: 40px;
  min-height: 0;
  line-height: normal;
  border-radius: var(--pz-radius-pill);
}

.pz-header-actions :where(.wc-block-customer-account__account-icon, .wc-block-mini-cart__icon) {
  width: 22px;
  height: 22px;
}

/* Expanded search stays in the same header row and grows leftward: the
   search wrapper becomes a flex-growing item while Account/Cart keep their
   fixed 44px slots and stay pinned to the row's trailing edge. Container-
   level room for that growth is provided per breakpoint below, since the
   header uses a different layout (flex vs. grid) at each range. */
.pz-header-actions:has(.wp-block-search__button[aria-expanded="true"]) {
  justify-content: flex-end;
  /* Override the closed-state `min-width: max-content` (below): once the
     search item is a flex-growing child, max-content would include its
     grown size and can force the whole actions row past its grid/flex
     track, overflowing the header at narrower desktop widths. */
  min-width: 0;
}

.pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}

.pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__inside-wrapper {
  width: 100%;
  gap: 6px;
}

.pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__input {
  width: 100%;
  min-width: 0;
}

/* The global form-control focus style (outline + box-shadow ring) is sized
   for standalone inputs. With the icon button sitting flush against the
   input's right edge here, that ring bled outward onto the button. Collapse
   it to a single, tighter ring so the two elements read as separate controls
   instead of overlapping. */
.pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__input {
  outline: none;
  box-shadow: none;
}

.pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__input:focus,
.pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__input:focus-visible {
  outline: none;
  border-color: var(--pz-color-focus);
  box-shadow: 0 0 0 2px rgba(180, 95, 56, 0.16);
}

@media (min-width: 782px) {
  /* Core's `.is-layout-flex` utility is printed after theme styles. The
     additional site-header context keeps this explicit desktop grid in
     control without an `!important` override. */
  .pz-site-header .pz-header-inner {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
    justify-content: stretch;
  }

  .pz-site-logo {
    justify-self: start;
  }

  .pz-primary-nav {
    justify-self: center;
    margin: 0;
  }

  .pz-header-actions {
    justify-self: end;
  }

  /* Give the actions group room to grow inside its own grid track (up to
     the full minmax(180px, 1fr) column) instead of staying content-sized,
     so the search item below has real space to flex-grow into. */
  .pz-header-actions:has(.wp-block-search__button[aria-expanded="true"]) {
    justify-self: stretch;
  }

  .pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) {
    width: min(260px, 100%);
    max-width: 260px;
  }
}

.pz-checkout-header {
  padding-block: var(--pz-space-4);
  border-bottom: var(--pz-border);
  background: var(--pz-color-paper);
}

.pz-checkout-header > .wp-block-group {
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
}

.pz-footer-cta {
  padding-block: var(--pz-section-compact);
  background: #f0efe2;
}

.pz-footer-cta-inner {
  gap: var(--pz-space-7);
}

.pz-footer-cta h2 {
  margin-bottom: var(--pz-space-2);
  font-size: clamp(1.8rem, 2.7vw, 2.55rem);
}

.pz-footer-cta p:not(.pz-eyebrow) {
  margin: 0;
  color: var(--pz-color-muted);
}

.pz-footer-contact-card {
  padding-left: var(--pz-space-7);
  border-left: 1px solid rgba(24, 49, 39, 0.14);
}

.pz-footer-contact-card h3 {
  margin-bottom: var(--pz-space-4);
  font-size: 1.15rem;
}

.pz-site-footer {
  padding: var(--pz-space-6) 0 var(--pz-space-3);
  color: rgba(255, 255, 255, 0.78);
  background: var(--pz-color-ink);
}

.pz-site-footer :where(h2, h3, a) {
  color: var(--pz-color-white);
}

.pz-footer-grid {
  gap: var(--pz-space-5);
  margin-bottom: 0;
}

.pz-footer-logo {
  margin: 0 0 var(--pz-space-2);
}

.pz-footer-logo img {
  width: 160px;
  filter: brightness(0) invert(1);
  opacity: 0.96;
}

.pz-site-footer h3 {
  margin-bottom: var(--pz-space-2);
  font-size: 1rem;
}

.pz-site-footer p,
.pz-site-footer li {
  font-size: var(--pz-text-meta);
  line-height: 1.55;
}

.pz-footer-links {
  padding: 0;
  list-style: none;
}

.pz-footer-links li {
  margin-bottom: var(--pz-space-1);
}

.pz-footer-bottom {
  margin-top: var(--pz-space-4);
  padding-top: var(--pz-space-3);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

/* 7. Existing page compositions ----------------------------------------- */

.pz-home-hero {
  padding-inline: var(--pz-gutter);
  background: var(--pz-color-paper);
}

.pz-home-hero-grid {
  min-height: clamp(520px, 42vw, 610px);
  gap: 0;
  overflow: hidden;
  border-radius: 0 0 var(--pz-radius-large) var(--pz-radius-large);
}

.pz-home-hero-copy {
  align-self: stretch;
  justify-content: center;
  padding: clamp(var(--pz-space-7), 5.5vw, 6.5rem) clamp(var(--pz-space-6), 5vw, 6.5rem);
  background: linear-gradient(135deg, #f8f4e9 0%, var(--pz-color-paper) 100%);
}

.pz-home-hero-copy h1 {
  max-width: 680px;
  margin-bottom: var(--pz-space-5);
  font-size: clamp(3.2rem, 4.25vw, 5.45rem);
  line-height: 1.02;
}

.pz-home-hero-copy > p:not(.pz-eyebrow) {
  max-width: 570px;
  margin-bottom: var(--pz-space-5);
  color: var(--pz-color-muted);
  font-size: var(--pz-text-lead);
  line-height: 1.65;
}

.pz-home-hero-copy .wp-block-buttons {
  gap: var(--pz-space-3);
}

.pz-home-hero-media,
.pz-home-hero-media figure {
  min-height: clamp(520px, 42vw, 610px);
  margin: 0;
}

.pz-home-hero-media img {
  width: 100%;
  height: 100%;
  min-height: clamp(520px, 42vw, 610px);
  object-fit: cover;
  object-position: 68% center;
}

.pz-benefits {
  padding-top: var(--pz-space-7);
  background: var(--pz-color-cream);
}

.pz-benefits-grid {
  padding: var(--pz-space-5);
  gap: 0;
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: rgba(255, 253, 248, 0.97);
  box-shadow: var(--pz-shadow-float);
}

.pz-benefit {
  position: relative;
  display: flex;
  min-height: 68px;
  flex-direction: column;
  justify-content: center;
  padding: var(--pz-space-2) var(--pz-space-5) var(--pz-space-2) 4.75rem;
  border-left: 1px solid rgba(24, 49, 39, 0.12);
}

.pz-benefit:first-child {
  border-left: 0;
}

.pz-benefit::before {
  position: absolute;
  top: 50%;
  left: var(--pz-space-4);
  width: 38px;
  height: 38px;
  content: "";
  transform: translateY(-50%);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.pz-benefit-natural::before {
  background-image: url("../images/motif-leaves.png");
}

.pz-benefit-grove::before {
  background-image: url("../images/motif-olive.png");
}

.pz-benefit-packed::before {
  border: 2px solid var(--pz-color-olive);
  border-radius: 7px;
  background-image: linear-gradient(135deg, transparent 46%, var(--pz-color-olive) 47%, var(--pz-color-olive) 53%, transparent 54%);
  transform: translateY(-50%) scale(0.68);
}

.pz-benefit-local::before {
  content: "♡";
  color: var(--pz-color-olive);
  font-family: Georgia, serif;
  font-size: 2.2rem;
  line-height: 1;
}

.pz-benefit h3 {
  margin-bottom: var(--pz-space-1);
  font-size: 1.025rem;
}

.pz-benefit p {
  margin: 0;
  color: var(--pz-color-muted);
  font-size: 0.825rem;
  line-height: 1.4;
}

.pz-products-section {
  padding-block: clamp(var(--pz-space-8), 6vw, var(--pz-space-9));
}

.pz-products-section > .woocommerce {
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
}

.pz-products-heading {
  margin-bottom: var(--pz-space-5);
  align-items: flex-end;
}

.pz-products-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 3.4vw, 3rem);
}

.pz-oil-story,
.pz-story-teaser {
  padding-block: var(--pz-section-standard);
}

.pz-oil-story {
  background: var(--pz-color-paper);
}

.pz-story-teaser {
  position: relative;
  overflow: hidden;
  background: #eef0df;
}

.pz-story-teaser::after {
  position: absolute;
  right: -55px;
  bottom: -42px;
  width: 260px;
  height: 210px;
  content: "";
  opacity: 0.2;
  background: url("../images/motif-leaves.png") center / contain no-repeat;
}

.pz-oil-story .pz-split,
.pz-story-teaser .pz-split {
  gap: clamp(var(--pz-space-6), 6vw, var(--pz-space-10));
}

.pz-copy-panel {
  max-width: 650px;
}

.pz-oil-story h2,
.pz-story-teaser h2 {
  font-size: clamp(2rem, 3.4vw, 3.25rem);
}

.pz-oil-story .pz-rounded-image,
.pz-story-teaser .pz-rounded-image {
  height: 390px;
}

.pz-oil-story .pz-rounded-image img {
  object-position: center 64%;
}

.pz-seasonal {
  position: relative;
  overflow: hidden;
  padding-block: var(--pz-section-compact);
  color: rgba(255, 255, 255, 0.86);
  background: linear-gradient(110deg, #142b22 0%, #1c3b2f 55%, #142b22 100%);
}

.pz-seasonal::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.55;
  background-image: url("../images/motif-olive.png"), url("../images/motif-cherry.png"), url("../images/motif-leaves.png");
  background-position: 5% 72%, 92% 58%, 108% 115%;
  background-repeat: no-repeat;
  background-size: 120px, 120px, 240px;
}

.pz-seasonal-inner {
  position: relative;
  z-index: 1;
  max-width: 660px;
  text-align: center;
}

.pz-seasonal .pz-eyebrow {
  color: #cbd7a3;
}

.pz-seasonal h2 {
  margin-bottom: var(--pz-space-3);
  color: var(--pz-color-white);
  font-size: clamp(2rem, 3.6vw, 3.15rem);
}

.pz-seasonal p:not(.pz-eyebrow) {
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.82);
}

.pz-seasonal .pz-text-link a {
  color: var(--pz-color-white);
}

.pz-page-hero,
.pz-shop-hero {
  position: relative;
  overflow: hidden;
  padding-block: var(--pz-section-standard);
  background: linear-gradient(115deg, #e7eed7 0%, var(--pz-color-cream) 72%);
}

.pz-page-hero::after,
.pz-shop-hero::after {
  position: absolute;
  right: 6%;
  bottom: -40%;
  width: 310px;
  height: 245px;
  content: "";
  pointer-events: none;
  opacity: 0.3;
  background: url("../images/motif-leaves.png") center / contain no-repeat;
}

.pz-page-hero > .wp-block-group,
.pz-shop-hero > .wp-block-group {
  position: relative;
  z-index: 1;
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
}

.pz-page-hero h1,
.pz-shop-hero h1 {
  max-width: 780px;
  margin-inline: 0;
  font-size: clamp(3rem, 4.8vw, 4.5rem);
}

.pz-page-hero p.has-large-font-size,
.pz-shop-hero p.has-large-font-size {
  max-width: 680px;
  margin-inline: 0;
  color: var(--pz-color-muted);
}

.pz-shop-hero .has-text-align-center {
  text-align: left;
}

.pz-shop-main,
.pz-product-main {
  padding-block: var(--pz-page-block);
}

.pz-shop-main .site-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--pz-space-5);
}

.pz-shop-main .woocommerce-products-header {
  position: relative;
  grid-column: 1 / -1;
  margin-bottom: var(--pz-space-5);
  padding: clamp(var(--pz-space-7), 6vw, var(--pz-space-9));
  overflow: hidden;
  border-radius: var(--pz-radius-large);
  background: linear-gradient(115deg, #e7eed7 0%, var(--pz-color-paper) 76%);
  order: 1;
}

.pz-shop-main .woocommerce-products-header::before {
  display: block;
  margin-bottom: var(--pz-space-3);
  content: "Iz vlastitih nasada";
  color: var(--pz-color-olive);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pz-shop-main .woocommerce-products-header::after {
  position: absolute;
  right: -45px;
  bottom: -70px;
  width: 250px;
  height: 205px;
  content: "";
  opacity: 0.22;
  background: url("../images/motif-leaves.png") center / contain no-repeat;
}

.pz-shop-main .woocommerce-products-header__title {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: clamp(2.75rem, 5vw, 4.5rem);
}

.pz-shop-main .term-description {
  position: relative;
  z-index: 1;
  max-width: 680px;
  margin-top: var(--pz-space-4);
  color: var(--pz-color-muted);
  font-size: var(--pz-text-lead);
}

.pz-shop-main .woocommerce-breadcrumb,
.pz-shop-main .woocommerce-notices-wrapper,
.pz-shop-main ul.products,
.pz-shop-main nav.woocommerce-pagination {
  grid-column: 1 / -1;
}

.pz-shop-main .woocommerce-breadcrumb {
  margin: 0 0 var(--pz-space-6);
  order: 2;
}

.pz-shop-main .woocommerce-notices-wrapper {
  order: 3;
}

.pz-shop-main .woocommerce-result-count,
.pz-shop-main .woocommerce-ordering {
  order: 4;
}

.pz-shop-main ul.products {
  order: 5;
}

.pz-shop-main nav.woocommerce-pagination {
  order: 6;
}

.pz-card-grid,
.pz-contact-grid,
.pz-split {
  gap: var(--pz-gap-content);
  align-items: center;
}

.pz-card-grid .wp-block-image {
  margin-bottom: var(--pz-space-5);
}

.pz-card-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.pz-card-grid :where(h2, p) {
  margin-inline: var(--pz-space-5);
}

.pz-card-grid p {
  margin-bottom: var(--pz-space-5);
}

.pz-post-card {
  margin-bottom: var(--pz-space-5);
  padding: var(--pz-space-6);
}

.pz-error-page {
  display: flex;
  min-height: 65vh;
  flex-direction: column;
  justify-content: center;
}

/* 8. WooCommerce compatibility ----------------------------------------- */

.pz-products-section ul.products,
.pz-shop-main ul.products,
.woocommerce-shop .wc-block-product-template,
.woocommerce div.product .related.products ul.products,
.woocommerce div.product .upsells.products ul.products,
.woocommerce .cross-sells ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pz-gap-grid);
  margin: 0;
}

.pz-products-section ul.products::before,
.pz-products-section ul.products::after,
.pz-shop-main ul.products::before,
.pz-shop-main ul.products::after,
.woocommerce div.product .related.products ul.products::before,
.woocommerce div.product .related.products ul.products::after,
.woocommerce div.product .upsells.products ul.products::before,
.woocommerce div.product .upsells.products ul.products::after,
.woocommerce .cross-sells ul.products::before,
.woocommerce .cross-sells ul.products::after {
  display: none;
}

/* Product Search Results use WooCommerce's block product template instead of
   the legacy loop. Keep it on the same card contract as the storefront. */
.woocommerce-shop .wc-block-product-template {
  padding: 0;
  list-style: none;
}

.woocommerce-shop .wc-block-product-template .wc-block-product {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 0 0 var(--pz-space-5);
  flex-direction: column;
  overflow: hidden;
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: var(--pz-color-paper);
  box-shadow: 0 10px 30px rgba(24, 49, 39, 0.055);
  transition: border-color var(--pz-duration) var(--pz-easing), box-shadow var(--pz-duration) var(--pz-easing), transform var(--pz-duration) var(--pz-easing);
}

.woocommerce-shop .wc-block-product-template .wc-block-product:hover {
  border-color: rgba(24, 49, 39, 0.28);
  box-shadow: 0 16px 38px rgba(24, 49, 39, 0.09);
  transform: translateY(-2px);
}

.woocommerce-shop .wc-block-product-template .wc-block-components-product-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 var(--pz-space-5);
  overflow: hidden;
  background: #f5f1e7;
}

.woocommerce-shop .wc-block-product-template .wc-block-components-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.woocommerce-shop .wc-block-product-template .wp-block-post-title,
.woocommerce-shop .wc-block-product-template .wp-block-woocommerce-product-price,
.woocommerce-shop .wc-block-product-template .wp-block-woocommerce-product-button {
  width: auto;
  margin-inline: var(--pz-space-5);
  text-align: left;
}

.woocommerce-shop .wc-block-product-template .wp-block-post-title {
  display: -webkit-box;
  min-height: 2.6em;
  overflow: hidden;
  margin-bottom: var(--pz-space-3);
  color: var(--pz-color-forest);
  font-family: var(--pz-font-body);
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  font-weight: 750;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.woocommerce-shop .wc-block-product-template .wp-block-post-title a {
  color: inherit;
  text-decoration: none;
}

.woocommerce-shop .wc-block-product-template .wp-block-woocommerce-product-price {
  margin-top: auto;
  margin-bottom: 0 !important;
  color: var(--pz-color-olive);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
}

.woocommerce-shop .wc-block-product-template .woocommerce-price-suffix {
  display: block;
  margin-top: var(--pz-space-1);
  color: var(--pz-color-muted);
  font-size: 0.78rem;
  font-weight: 650;
}

.woocommerce-shop .wc-block-product-template .wp-block-woocommerce-product-button {
  align-self: flex-start;
  margin-top: var(--pz-space-4);
  margin-bottom: 0;
}

.woocommerce-shop .wc-block-product-template .wp-block-button__link {
  min-height: 44px;
  margin: 0;
  padding: 0.7rem 1rem;
  white-space: nowrap;
  font-size: 0.825rem;
}

.pz-products-section .woocommerce ul.products li.product,
.woocommerce-page .pz-shop-main ul.products li.product,
.woocommerce div.product .related.products ul.products li.product,
.woocommerce div.product .upsells.products ul.products li.product,
.woocommerce .cross-sells ul.products li.product {
  float: none;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  display: flex;
  padding: 0 0 var(--pz-space-5);
  flex-direction: column;
  overflow: hidden;
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: var(--pz-color-paper);
  box-shadow: 0 10px 30px rgba(24, 49, 39, 0.055);
  transition: border-color var(--pz-duration) var(--pz-easing), box-shadow var(--pz-duration) var(--pz-easing), transform var(--pz-duration) var(--pz-easing);
}

.pz-products-section .woocommerce ul.products li.product:hover,
.woocommerce-page .pz-shop-main ul.products li.product:hover,
.woocommerce div.product .related.products ul.products li.product:hover,
.woocommerce div.product .upsells.products ul.products li.product:hover,
.woocommerce .cross-sells ul.products li.product:hover {
  border-color: rgba(24, 49, 39, 0.28);
  box-shadow: 0 16px 38px rgba(24, 49, 39, 0.09);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
}

.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 var(--pz-space-5);
  border-radius: 0;
  background: #f5f1e7;
  object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .star-rating {
  margin-inline: var(--pz-space-5);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box;
  min-height: 2.6em;
  margin-bottom: var(--pz-space-3);
  padding: 0;
  overflow: hidden;
  color: var(--pz-color-forest);
  font-family: var(--pz-font-body);
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  font-weight: 750;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.woocommerce ul.products li.product .price {
  margin-top: auto;
  margin-bottom: 0;
  font-size: 1rem;
  line-height: 1.45;
}

.woocommerce ul.products li.product .woocommerce-price-suffix {
  display: block;
  margin-top: var(--pz-space-1);
  color: var(--pz-color-muted);
  font-size: 0.78rem;
  font-weight: 650;
}

.woocommerce ul.products li.product .button {
  align-self: flex-start;
  margin: var(--pz-space-5) var(--pz-space-5) 0;
  padding: 0.7rem 1rem;
  white-space: nowrap;
  font-size: 0.825rem;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin-bottom: var(--pz-space-6);
}

.pz-shop-main .woocommerce-result-count {
  margin: 0 0 var(--pz-space-6);
}

.pz-shop-main .woocommerce-ordering {
  margin: 0 0 var(--pz-space-6);
}

.woocommerce .woocommerce-ordering select {
  width: auto;
  min-width: 220px;
}

.woocommerce div.product {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
  column-gap: clamp(var(--pz-space-6), 5vw, var(--pz-space-8));
  row-gap: var(--pz-space-7);
  color: var(--pz-color-ink);
}

.woocommerce div.product::before,
.woocommerce div.product::after {
  display: none;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  float: none;
  width: auto;
  margin: 0;
}

.woocommerce div.product .product_title {
  color: var(--pz-color-forest);
  font-family: var(--pz-font-display);
  font-size: clamp(2.4rem, 5vw, 4.6rem);
  font-weight: 600;
  line-height: 1.05;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--pz-color-olive);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 800;
}

.woocommerce div.product .summary {
  min-width: 0;
  padding-top: var(--pz-space-5);
}

.woocommerce div.product .woocommerce-product-details__short-description {
  margin-block: var(--pz-space-5) var(--pz-space-6);
  color: var(--pz-color-muted);
  font-size: var(--pz-text-lead);
}

.woocommerce div.product form.cart {
  margin-bottom: var(--pz-space-5);
}

.woocommerce div.product form.cart .variations {
  width: min(100%, 380px);
  margin-bottom: var(--pz-space-4);
}

.woocommerce div.product form.cart .variations select {
  min-width: 0;
}

.woocommerce div.product .single_variation_wrap {
  padding-top: var(--pz-space-2);
}

.woocommerce div.product .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pz-space-3);
  align-items: center;
}

.woocommerce div.product form.cart div.quantity {
  float: none;
  margin: 0;
}

.woocommerce div.product form.cart .qty {
  width: 76px;
  min-width: 76px;
  min-height: 48px;
  padding: var(--pz-space-2);
  border: var(--pz-border);
  border-radius: var(--pz-radius-small);
  color: var(--pz-color-ink);
  background: var(--pz-color-paper);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
  min-height: 48px;
  margin: 0;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
  display: block;
  width: 100%;
  padding: 0 0 var(--pz-space-3);
  text-align: left;
}

.woocommerce div.product form.cart .variations label {
  font-size: var(--pz-text-label);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs {
  grid-column: 1 / -1;
  padding-top: var(--pz-space-7);
}

.woocommerce div.product .woocommerce-tabs .panel {
  max-width: 900px;
  padding-top: var(--pz-space-4);
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.woocommerce div.product :where(.related.products, .upsells.products) {
  grid-column: 1 / -1;
  padding-top: var(--pz-space-5);
}

.woocommerce div.product :where(.related.products, .upsells.products) > h2 {
  margin-bottom: var(--pz-space-5);
  font-size: clamp(1.9rem, 3vw, 2.75rem);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0;
  border-bottom: var(--pz-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0 var(--pz-space-5) 0 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  min-height: 44px;
  padding-block: var(--pz-space-3);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--pz-color-forest);
  box-shadow: inset 0 -2px 0 var(--pz-color-olive);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--pz-color-forest);
  background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:focus-visible {
  border-radius: var(--pz-radius-small);
  outline: var(--pz-focus-ring);
  outline-offset: var(--pz-focus-offset);
}

.pz-commerce-page {
  min-height: 60vh;
}

.pz-checkout-page {
  padding-top: var(--pz-space-7);
}

.wc-block-cart,
.wc-block-checkout,
.woocommerce-account .woocommerce {
  color: var(--pz-color-ink);
}

.woocommerce-account .woocommerce {
  display: flow-root;
}

/* The logged-out account screen is legacy Woo markup. Replace its floats with
   the same centered, equal-column layout used by the rest of the theme. */
body:not(.logged-in).woocommerce-account .entry-content > .woocommerce {
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
  padding-block: var(--pz-page-block);
}

body:not(.logged-in).woocommerce-account #customer_login {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(var(--pz-space-6), 4vw, var(--pz-space-7));
  max-width: 1120px;
  margin-inline: auto;
}

body:not(.logged-in).woocommerce-account #customer_login::before,
body:not(.logged-in).woocommerce-account #customer_login::after {
  display: none;
}

body:not(.logged-in).woocommerce-account #customer_login > :where(.u-column1, .u-column2) {
  display: grid;
  float: none;
  width: auto;
  min-width: 0;
  grid-template-rows: auto 1fr;
}

body:not(.logged-in).woocommerce-account #customer_login > :where(.u-column1, .u-column2) > h2 {
  margin-bottom: var(--pz-space-5);
  font-size: clamp(2rem, 4vw, 3.4rem);
}

body:not(.logged-in).woocommerce-account #customer_login form {
  height: 100%;
  margin: 0;
  padding: clamp(var(--pz-space-5), 3vw, var(--pz-space-6));
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: rgba(255, 253, 248, 0.48);
}

body:not(.logged-in).woocommerce-account #customer_login .form-row-wide,
body:not(.logged-in).woocommerce-account #customer_login :where(input.input-text, .password-input) {
  width: 100%;
}

/* Logged-in account endpoints keep native Woo content and endpoint logic;
   only the shell, navigation spacing and address columns are normalized. */
body.logged-in.woocommerce-account .entry-content > .woocommerce {
  display: grid;
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
  padding-block: var(--pz-page-block);
  grid-template-columns: minmax(240px, 260px) minmax(0, 1fr);
  gap: clamp(var(--pz-space-7), 4vw, 3.5rem);
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation,
body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: auto;
  min-width: 0;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation {
  align-self: start;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content {
  width: 100%;
  max-width: none;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}

body.logged-in.woocommerce-account .woocommerce-MyAccount-content :where(p, .woocommerce-info, .woocommerce-message, .woocommerce-error) {
  max-width: none;
}

body.logged-in.woocommerce-account .woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(var(--pz-space-5), 3vw, var(--pz-space-7));
}

body.logged-in.woocommerce-account .woocommerce-Addresses::before,
body.logged-in.woocommerce-account .woocommerce-Addresses::after {
  display: none;
}

body.logged-in.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
  float: none;
  width: auto;
  min-width: 0;
  padding: var(--pz-space-5);
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: var(--pz-color-paper);
}

body.logged-in.woocommerce-account .woocommerce-Addresses :where(h2, h3, address, p, a) {
  overflow-wrap: normal;
  word-break: normal;
}

body.logged-in.woocommerce-account .woocommerce-Address-title {
  display: flex;
  gap: var(--pz-space-3);
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--pz-space-4);
}

body.logged-in.woocommerce-account .woocommerce-Address-title h2 {
  margin: 0;
  font-size: var(--pz-text-h3);
}

/* Empty Cart keeps the core block and store state, but presents its existing
   message, CTA and recommendations as one compact composition. */
.pz-empty-cart-cta {
  display: none;
}

.woocommerce-cart .pz-commerce-page:has(.wp-block-woocommerce-empty-cart-block) {
  display: grid;
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-wide);
  margin-inline: auto;
  padding-block: var(--pz-section-compact) var(--pz-section-standard);
  grid-template-columns: minmax(0, 1fr);
}

.woocommerce-cart .pz-commerce-page:has(.wp-block-woocommerce-empty-cart-block) > .entry-content,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
  display: contents;
}

.woocommerce-cart .pz-commerce-page:has(.wp-block-woocommerce-empty-cart-block) > .wp-block-post-title {
  order: 0;
  margin: 0 0 var(--pz-space-6);
}

.woocommerce-cart .wc-block-cart__empty-cart__title {
  order: 1;
  margin: 0 auto var(--pz-space-4);
  color: var(--pz-color-forest);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.15;
}

.woocommerce-cart .wc-block-cart__empty-cart__title::before {
  display: block;
  width: clamp(64px, 8vw, 84px);
  height: clamp(64px, 8vw, 84px);
  margin: 0 auto var(--pz-space-4);
  mask-size: contain;
  -webkit-mask-size: contain;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block > .pz-empty-cart-cta {
  display: flex;
  order: 2;
  justify-content: center;
  margin: 0 0 var(--pz-section-compact);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block > .wp-block-separator {
  display: none;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block > .wp-block-heading:not(.wc-block-cart__empty-cart__title) {
  order: 3;
  width: 100%;
  max-width: var(--pz-container-content);
  margin: 0 auto var(--pz-space-6);
  text-align: left;
  font-size: clamp(1.75rem, 3vw, 2.75rem);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new {
  width: 100%;
  max-width: var(--pz-container-content);
  order: 4;
  margin: 0 auto;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pz-gap-grid);
  margin: 0;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid.has-4-columns .wc-block-grid__product {
  display: flex;
  width: 100%;
  max-width: none;
  min-width: 0;
  padding: 0 0 var(--pz-space-5);
  flex-direction: column;
  overflow: hidden;
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: var(--pz-color-paper);
  box-shadow: 0 10px 30px rgba(24, 49, 39, 0.055);
  text-align: left;
  transition: border-color var(--pz-duration) var(--pz-easing), box-shadow var(--pz-duration) var(--pz-easing), transform var(--pz-duration) var(--pz-easing);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover {
  border-color: rgba(24, 49, 39, 0.28);
  box-shadow: 0 16px 38px rgba(24, 49, 39, 0.09);
  transform: translateY(-2px);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 0 var(--pz-space-5);
  overflow: hidden;
  background: #f5f1e7;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart {
  margin-inline: var(--pz-space-5);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
  display: -webkit-box;
  min-height: 2.6em;
  margin-bottom: var(--pz-space-3);
  overflow: hidden;
  color: var(--pz-color-forest);
  font-family: var(--pz-font-body);
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  font-weight: 750;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
  margin-top: auto;
  margin-bottom: 0;
  color: var(--pz-color-olive);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.45;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .woocommerce-price-suffix {
  display: block;
  margin-top: var(--pz-space-1);
  color: var(--pz-color-muted);
  font-size: 0.78rem;
  font-weight: 650;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart {
  align-self: flex-start;
  margin-top: var(--pz-space-5);
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
  min-height: 44px;
  padding: 0.7rem 1rem;
  white-space: nowrap;
  font-size: 0.825rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: var(--pz-color-paper);
  list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: flex;
  min-height: 44px;
  align-items: center;
  padding: var(--pz-space-3) var(--pz-space-4);
  border-bottom: var(--pz-border);
  color: var(--pz-color-forest);
  font-weight: 700;
  text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a {
  border-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation :where(a:hover, a:focus-visible),
.woocommerce-account .woocommerce-MyAccount-navigation .is-active > a {
  color: var(--pz-color-forest);
  background: #eef0df;
}

.woocommerce-account .woocommerce-MyAccount-content :where(.woocommerce-info, .woocommerce-message, .woocommerce-error) {
  width: 100%;
  margin: 0 0 var(--pz-space-5);
}

.woocommerce-account .woocommerce-MyAccount-content form {
  width: 100%;
  max-width: none;
}

.woocommerce-account .woocommerce-MyAccount-content :where(.form-row, input.input-text, select, textarea, .password-input) {
  max-width: none;
}

.woocommerce table.shop_table {
  border: var(--pz-border);
  border-radius: var(--pz-radius-small);
  background: var(--pz-color-paper);
}

/* Cart block keeps Woo store state and controls; the theme owns only the
   centered commerce shell, column rhythm and narrow-screen row geometry. */
.woocommerce-cart .pz-commerce-page:not(:has(.wp-block-woocommerce-empty-cart-block)) {
  width: calc(100% - (2 * var(--pz-gutter)));
  max-width: var(--pz-container-content);
  margin-inline: auto;
  padding-block: var(--pz-page-block);
}

.woocommerce-cart .pz-commerce-page:not(:has(.wp-block-woocommerce-empty-cart-block)) > .wp-block-post-title {
  margin: 0 0 var(--pz-space-7);
}

.woocommerce-cart .wc-block-cart {
  display: grid;
  width: 100%;
  max-width: var(--pz-container-content);
  grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr);
  gap: clamp(var(--pz-space-6), 4vw, var(--pz-space-7));
}

.woocommerce-cart .wc-block-cart .wc-block-cart__main,
.woocommerce-cart .wc-block-cart .wc-block-cart__sidebar,
.woocommerce-cart .wc-block-cart .wc-block-cart-items {
  width: 100%;
  min-width: 0;
}

.woocommerce-cart .wc-block-cart__sidebar {
  align-self: start;
  padding: var(--pz-space-5);
  border: var(--pz-border);
  border-radius: var(--pz-radius-medium);
  background: rgba(255, 253, 248, 0.52);
}

.woocommerce-cart .wc-block-cart-items__row {
  column-gap: var(--pz-space-4);
}

.woocommerce-cart .wc-block-cart-item__image img {
  border-radius: var(--pz-radius-small);
}

/* WooCommerce 11 renders the cart item <img> without the [hidden] attribute,
   so the previous :not([hidden]) fix had no effect. Image visibility and
   dimensions are now handled inside the @media (max-width: 781px) block
   using explicit pixel sizes — the same pattern used by the working mini-cart. */

.woocommerce-cart .wc-block-cart-item__wrap {
  min-width: 0;
}

.woocommerce-cart .wc-block-components-product-name {
  overflow-wrap: normal;
  word-break: normal;
}

.woocommerce-cart .wc-block-cart__submit-button {
  width: 100%;
}

/* 9. Responsive rules ---------------------------------------------------- */

@media (max-width: 1023px) {
  :root {
    --pz-gutter: clamp(1.5rem, 3.5vw, 2rem);
  }

  .pz-topbar-origin,
  .pz-topbar .pz-topbar-links {
    display: none;
  }

  .pz-topbar-delivery {
    margin-inline: auto;
  }

  .pz-header-inner {
    gap: var(--pz-space-4);
  }

  .pz-primary-nav .wp-block-navigation__container {
    column-gap: var(--pz-space-4);
  }

  .pz-home-hero-copy {
    padding-inline: var(--pz-space-6);
  }

  .pz-benefit {
    padding-right: var(--pz-space-3);
    padding-left: 4rem;
  }

  .pz-benefit::before {
    left: var(--pz-space-3);
  }

  .pz-products-section ul.products,
  .pz-shop-main ul.products,
  .woocommerce-shop .wc-block-product-template,
  .woocommerce div.product .related.products ul.products,
  .woocommerce div.product .upsells.products ul.products,
  .woocommerce .cross-sells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.logged-in.woocommerce-account .entry-content > .woocommerce {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pz-space-6);
  }

  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation li:nth-child(3n) a {
    border-right: 0;
  }

  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation a {
    height: 100%;
    border-right: var(--pz-border);
  }

  .woocommerce-cart .wc-block-cart {
    grid-template-columns: minmax(0, 1.65fr) minmax(250px, 1fr);
    gap: var(--pz-space-5);
  }
}

@media (min-width: 782px) and (max-width: 1023px) {
  .pz-site-header .pz-header-inner {
    display: flex;
    gap: var(--pz-space-3);
  }

  .pz-site-logo img {
    width: 132px;
  }

  .pz-primary-nav {
    margin: 0 auto;
  }

  .pz-primary-nav .wp-block-navigation__container {
    column-gap: var(--pz-space-3);
  }

  .pz-primary-nav .wp-block-navigation-item__content {
    font-size: 0.85rem;
  }

  .pz-header-actions {
    gap: var(--pz-space-1);
  }
}

/* Gutenberg navigation and Columns use 782px as their desktop boundary. */
@media (max-width: 781px) {
  :root {
    --pz-gutter: clamp(1rem, 4.5vw, 1.25rem);
  }

  .pz-site-header {
    backdrop-filter: none;
  }

  body.admin-bar .pz-site-header {
    top: 46px;
  }

  .pz-topbar-inner {
    min-height: 30px;
  }

  .pz-topbar p {
    font-size: 0.75rem;
  }

  .pz-header-inner {
    position: relative;
    display: flex;
    min-height: 68px;
    justify-content: flex-start;
    gap: 0;
  }

  .pz-site-logo img {
    width: clamp(96px, 29vw, 116px);
    max-height: 50px;
  }

  .pz-site-logo {
    margin-right: 0;
  }

  .pz-primary-nav {
    order: 4;
    flex: 0 0 44px;
    margin: 0;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-open {
    width: 44px;
    height: 44px;
    padding: 10px;
    border-radius: 50%;
  }

  .pz-header-actions {
    display: flex;
    min-width: 132px;
    flex: 0 0 132px;
    order: 3;
    margin-left: auto;
    gap: 0;
  }

  body:not(.logged-in).woocommerce-account #customer_login,
  body.logged-in.woocommerce-account .entry-content > .woocommerce,
  body.logged-in.woocommerce-account .woocommerce-Addresses {
    grid-template-columns: minmax(0, 1fr);
  }

  body:not(.logged-in).woocommerce-account #customer_login {
    gap: var(--pz-space-7);
  }

  body.logged-in.woocommerce-account .entry-content > .woocommerce {
    gap: var(--pz-space-6);
  }

  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: minmax(0, 1fr);
  }

  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation a {
    border-right: 0;
  }

  .woocommerce-cart .wc-block-cart {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pz-space-6);
  }

  .woocommerce-cart .wc-block-cart__sidebar {
    padding: var(--pz-space-4);
  }

  /* WC 11 already applies display:grid to <tr> unconditionally via:
     .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { display:grid; grid-template-columns:80px 132px }
     Setting display:block on <table> and display:grid on <tbody> created a
     double-nesting conflict that collapsed the image column on iOS Safari.
     We override ONLY the column widths to fill the viewport responsively. */
  .woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
    grid-template-columns: 72px minmax(0, 1fr);
    column-gap: var(--pz-space-4);
  }

  /* WC 11 sets grid-column-end:4 on the product td, which creates an implicit
     3rd column and can shrink the 1fr track. Clamp it to the explicit grid. */
  .woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product {
    grid-column: 2 / -1;
    min-width: 0;
  }

  /* Remove WC's padding-right:16px that shrinks the 72px image cell. */
  .woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
    padding-right: 0;
  }

  /* Block-level <a> wrapper + explicit pixel dimensions — same approach as the
     working mini-cart. No percentage widths that could resolve to 0. */
  .woocommerce-cart .wc-block-cart .wc-block-cart-item__image > a {
    display: block;
    line-height: 0;
  }

  .woocommerce-cart .wc-block-cart .wc-block-cart-item__image img {
    display: block;
    width: 72px;
    height: 72px;
    object-fit: cover;
    object-position: center;
    border-radius: var(--pz-radius-small);
  }

  .woocommerce-cart .wc-block-cart .wc-block-cart-item__total {
    display: none;
  }

  .woocommerce-cart .wc-block-cart-item__wrap {
    width: 100%;
  }

  .pz-primary-nav .pz-mobile-account-link {
    display: flex;
  }

  /* Let the actions group itself grow inside the header's flex row (this
     rule is a no-op at ≤600px, where .pz-header-inner switches to grid and
     the grid-template override below provides the extra room instead). */
  .pz-header-actions:has(.wp-block-search__button[aria-expanded="true"]) {
    flex: 1 1 auto;
    margin-left: 0;
  }

  .pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) {
    width: min(260px, 100%);
    max-width: 260px;
  }

  .pz-header-search .wp-block-search__input {
    height: 34px;
    font-size: 0.8rem;
    padding-inline: 6px;
  }

  .pz-header-search .wp-block-search__button,
  .pz-header-actions .wc-block-customer-account__link,
  .pz-header-actions .wc-block-customer-account__toggle,
  .pz-header-actions .wc-block-mini-cart__button {
    width: 44px;
    height: 44px;
  }

  .pz-home-hero {
    padding: 0;
  }

  .pz-home-hero-grid {
    display: flex;
    width: 100%;
    min-height: 0;
    flex-direction: column;
    border-radius: 0;
  }

  .pz-home-hero-grid > .wp-block-column {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
  }

  .pz-home-hero-copy {
    order: 2;
    padding: 2.5rem var(--pz-gutter) 3rem;
  }

  .pz-home-hero-copy h1 {
    max-width: 390px;
    font-size: clamp(2.7rem, 12vw, 3.7rem);
  }

  .pz-home-hero-copy > p:not(.pz-eyebrow) {
    font-size: 1rem;
  }

  .pz-home-hero-media,
  .pz-home-hero-media figure,
  .pz-home-hero-media img {
    min-height: 0;
    height: 330px;
  }

  .pz-home-hero-media {
    order: 1;
  }

  .pz-home-hero-media img {
    object-position: 70% center;
  }

  .pz-benefits {
    padding: var(--pz-space-6) var(--pz-gutter) 0;
    background: var(--pz-color-paper);
  }

  .wp-block-columns.pz-benefits-grid {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: var(--pz-space-4);
  }

  .pz-benefits-grid > .wp-block-column {
    width: auto;
    flex-basis: auto;
  }

  .pz-benefit,
  .pz-benefit:first-child {
    min-height: 122px;
    align-items: center;
    padding: 3.35rem var(--pz-space-3) var(--pz-space-4);
    border: 0;
    text-align: center;
  }

  .pz-benefit:nth-child(even) {
    border-left: 1px solid rgba(24, 49, 39, 0.12);
  }

  .pz-benefit:nth-child(n + 3) {
    border-top: 1px solid rgba(24, 49, 39, 0.12);
  }

  .pz-benefit::before {
    top: var(--pz-space-4);
    left: 50%;
    width: 30px;
    height: 30px;
    transform: translateX(-50%);
  }

  .pz-benefit-packed::before {
    transform: translateX(-50%) scale(0.68);
  }

  .pz-products-heading,
  .pz-products-section > .woocommerce,
  .pz-oil-story > .pz-split,
  .pz-story-teaser > .pz-split,
  .pz-seasonal-inner,
  .pz-footer-cta-inner,
  .pz-footer-grid,
  .pz-footer-bottom {
    width: calc(100% - (2 * var(--pz-gutter)));
  }

  .pz-oil-story .pz-rounded-image,
  .pz-story-teaser .pz-rounded-image {
    height: 280px;
  }

  .pz-page-hero::after,
  .pz-shop-hero::after {
    right: -60px;
    bottom: -65px;
    width: 210px;
    height: 166px;
  }

  .pz-footer-cta-inner {
    gap: var(--pz-space-5);
  }

  .pz-footer-contact-card {
    padding: var(--pz-space-5) 0 0;
    border-top: 1px solid rgba(24, 49, 39, 0.14);
    border-left: 0;
  }

  .pz-shop-main .site-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .pz-shop-main .woocommerce-products-header {
    padding: var(--pz-space-7) var(--pz-space-5);
  }

  .pz-shop-main .woocommerce-products-header,
  .pz-shop-main .woocommerce-breadcrumb,
  .pz-shop-main .woocommerce-result-count,
  .pz-shop-main .woocommerce-ordering,
  .pz-shop-main ul.products,
  .pz-shop-main nav.woocommerce-pagination {
    grid-column: 1;
  }

  .pz-shop-main .woocommerce-ordering,
  .pz-shop-main .woocommerce-ordering select {
    width: 100%;
  }

  .woocommerce div.product {
    display: block;
  }

  .woocommerce div.product div.summary {
    margin-top: var(--pz-space-6);
    padding-top: 0;
  }

  .woocommerce div.product .product_title {
    font-size: clamp(2.35rem, 11vw, 3.4rem);
  }

  .woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 1rem;
  }

  .woocommerce div.product .woocommerce-tabs,
  .woocommerce div.product :where(.related.products, .upsells.products) {
    margin-top: var(--pz-space-7);
  }
}

@media (max-width: 600px) {
  .pz-site-header .pz-header-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
  }

  .pz-site-logo {
    grid-column: 1;
  }

  .pz-header-actions {
    grid-column: 3;
  }

  .pz-primary-nav {
    grid-column: 4;
  }

  /* Collapse the empty spacer column and hand that room to the actions
     column so the search item (inside .pz-header-actions) has real space
     to flex-grow into, still in the same header row. */
  .pz-header-inner:has(.wp-block-search__button[aria-expanded="true"]) {
    grid-template-columns: auto 0 minmax(0, 1fr) auto;
  }

  .pz-products-section ul.products,
  .pz-shop-main ul.products,
  .woocommerce-shop .wc-block-product-template,
  .woocommerce div.product .related.products ul.products,
  .woocommerce div.product .upsells.products ul.products,
  .woocommerce .cross-sells ul.products {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr);
  }

  /* WooCommerce smallscreen.css sets products to 48%. These selectors carry
     enough component context to restore one full-width card per grid row. */
  .pz-products-section .woocommerce ul.products[class*="columns-"] li.product,
  .woocommerce-page .pz-shop-main ul.products[class*="columns-"] li.product,
  .woocommerce div.product .related.products ul.products[class*="columns-"] li.product,
  .woocommerce div.product .upsells.products ul.products[class*="columns-"] li.product,
  .woocommerce .cross-sells ul.products[class*="columns-"] li.product {
    display: flex;
    width: 100%;
    min-height: 0;
    flex-direction: column;
    float: none;
    clear: none;
    margin: 0;
    padding-bottom: var(--pz-space-5);
  }

  .pz-products-section ul.products li.product > a.woocommerce-LoopProduct-link,
  .pz-shop-main ul.products li.product > a.woocommerce-LoopProduct-link,
  .woocommerce div.product .related.products ul.products li.product > a.woocommerce-LoopProduct-link,
  .woocommerce div.product .upsells.products ul.products li.product > a.woocommerce-LoopProduct-link,
  .woocommerce .cross-sells ul.products li.product > a.woocommerce-LoopProduct-link {
    display: block;
    width: 100%;
  }

  .pz-products-section ul.products li.product a img,
  .pz-shop-main ul.products li.product a img,
  .woocommerce div.product .related.products ul.products li.product a img,
  .woocommerce div.product .upsells.products ul.products li.product a img,
  .woocommerce .cross-sells ul.products li.product a img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    margin-bottom: var(--pz-space-4);
    object-fit: cover;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 0;
  }

  .woocommerce ul.products li.product .button {
    align-self: flex-start;
    white-space: nowrap;
  }

  .woocommerce div.product form.cart .variations,
  .woocommerce div.product form.cart .variations select {
    width: 100%;
  }

  .woocommerce div.product .woocommerce-variation-add-to-cart {
    align-items: stretch;
  }

  .woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1 1 190px;
  }
}

@media (max-width: 520px) {
  .pz-home-hero-media,
  .pz-home-hero-media figure,
  .pz-home-hero-media img {
    height: 270px;
  }

  .pz-benefit h3 {
    font-size: 0.95rem;
  }

  .pz-benefit p {
    font-size: 0.8rem;
  }

  .pz-footer-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--pz-space-4) var(--pz-space-5);
  }

  .pz-footer-grid > .wp-block-column:first-child,
  .pz-footer-grid > .wp-block-column:last-child {
    grid-column: 1 / -1;
  }

  .pz-footer-cta {
    padding-block: var(--pz-space-6);
  }

  .pz-site-footer {
    padding-top: var(--pz-space-5);
  }

  .pz-footer-grid p,
  .pz-footer-grid li {
    margin-bottom: var(--pz-space-1);
  }

  .pz-footer-bottom {
    margin-top: var(--pz-space-3);
  }

  .woocommerce div.product .woocommerce-tabs ul.tabs li {
    display: block;
    margin-right: 0;
  }
}

@media (max-width: 359px) {
  .wp-block-columns.pz-benefits-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .pz-header-actions {
    gap: 0;
  }

  .pz-header-search .wp-block-search__button,
  .pz-header-actions .wc-block-customer-account__link,
  .pz-header-actions .wc-block-customer-account__toggle,
  .pz-header-actions .wc-block-mini-cart__button,
  .pz-primary-nav .wp-block-navigation__responsive-container-open {
    width: 44px;
    min-width: 44px;
  }

  .pz-benefit:nth-child(even) {
    border-left: 0;
  }

  .pz-benefit:nth-child(n + 2) {
    border-top: 1px solid rgba(24, 49, 39, 0.12);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}

/* 10. P0 regression guards ---------------------------------------------- */

/* FlexSlider owns the track and slide widths. Only the visible media frame
   receives a stable ratio; no fixed gallery height or slide width override. */
.woocommerce div.product div.images {
  min-width: 0;
  max-width: 100%;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  margin: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image {
  overflow: hidden;
  border-radius: var(--pz-radius-large);
  background: #eee8dc;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image > a {
  display: flex;
  aspect-ratio: 1 / 1;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--pz-color-paper);
}

.woocommerce div.product div.images .woocommerce-product-gallery__image > a > img:not(.zoomImg) {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: contain;
}

.woocommerce div.product div.images .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--pz-space-2);
  margin-top: var(--pz-space-3);
}

.woocommerce div.product div.images .flex-control-thumbs li {
  width: 100%;
  min-width: 0;
}

.woocommerce div.product div.images .flex-control-thumbs img {
  aspect-ratio: 1 / 1;
  border: 2px solid transparent;
  border-radius: var(--pz-radius-small);
  object-fit: cover;
  opacity: 0.7;
  transition: border-color var(--pz-duration) var(--pz-easing), opacity var(--pz-duration) var(--pz-easing);
}

.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
  border-color: var(--pz-color-olive);
  opacity: 1;
}

.woocommerce div.product .related.products ul.products,
.woocommerce div.product .upsells.products ul.products,
.woocommerce .cross-sells ul.products {
  width: 100%;
  max-width: var(--pz-container-content);
}

/* Core navigation switches to its overlay at 600px. Keep these rules aligned
   with the core breakpoint so tablet-width desktop navigation is not styled
   as an open overlay. */
@media (max-width: 600px) {
  /* WordPress 7 adds a later white default-overlay rule with higher
     specificity. Match that state explicitly so the intended dark surface
     and its light links remain a valid pair. */
  /* Safety-net: force column layout on the overlay even if WP generates
     per-block flex CSS that inherits a different direction. The block no
     longer carries justifyContent:center (removed from header.html) so the
     CSS-var defaults are already safe, but !important guards against any
     future inline-style or high-specificity override. */
  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content,
  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content
    .wp-block-navigation__container {
    flex-direction: column !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content
    .wp-block-navigation__container {
    align-items: stretch !important;
    width: 100% !important;
  }

  .pz-primary-nav.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay),
  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
    inset: 0;
    height: 100dvh;
    min-height: 0;
    max-height: 100dvh;
    padding: 0;
    overflow: hidden;
    color: var(--pz-color-paper);
    background-color: var(--pz-color-forest);
    background-image: url("../images/motif-fig.png"), url("../images/motif-cherry.png"), url("../images/motif-leaves.png");
    background-repeat: no-repeat;
    background-position: -105px calc(100% - 14px), calc(100% + 85px) calc(100% - 74px), 116% 3%;
    background-size: 118px, 102px, 188px;
  }

  .pz-primary-nav.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
    color: var(--pz-color-paper);
  }

  .pz-primary-nav .wp-block-navigation__responsive-dialog {
    width: 100%;
    height: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content {
    display: block;
    width: min(100%, 340px);
    /* Use 100% (not 100vw) so the content obeys the overlay's visual-viewport
       width rather than the potentially wider layout viewport. */
    max-width: calc(100% - (2 * var(--pz-gutter)));
    height: 100%;
    max-height: 100dvh;
    margin-inline: auto;
    padding: max(4.5rem, calc(env(safe-area-inset-top) + 3.75rem)) 0 max(1.25rem, env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content::before {
    display: block;
    width: 100%;
    margin-bottom: var(--pz-space-4);
    padding-bottom: var(--pz-space-3);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    content: "PZ Dubrava · Ravni kotari";
    color: #cbd7a3;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-close {
    top: max(1rem, env(safe-area-inset-top));
    right: max(1rem, env(safe-area-inset-right));
    width: 44px;
    height: 44px;
    padding: 10px;
    color: var(--pz-color-paper);
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-close svg {
    color: currentColor;
    fill: currentColor;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item,
  .pz-primary-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-submenu {
    width: 100%;
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
  .pz-primary-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content {
    display: block;
    width: 100%;
    padding: 0.72rem 0;
    color: var(--pz-color-paper);
    font-family: var(--pz-font-display);
    font-size: clamp(1.25rem, 6vw, 1.55rem);
    font-weight: 600;
    line-height: 1.1;
    text-align: left;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-submenu {
    padding-bottom: var(--pz-space-1);
    align-items: stretch;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
    position: static;
    display: flex;
    /* Column direction ensures submenu items stack vertically inside the overlay,
       not horizontally (the default row direction would push items off-screen
       to the right on narrow viewports). */
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 0 0 var(--pz-space-2) var(--pz-space-5);
    align-items: stretch;
    justify-content: flex-start;
    visibility: visible;
    opacity: 1;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item,
  .pz-primary-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 0.55rem 0;
    color: rgba(255, 255, 255, 0.82);
    font-family: var(--pz-font-body);
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.35;
    text-align: left;
  }

  .woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    grid-template-columns: minmax(0, 1fr);
  }

  .woocommerce-cart .pz-commerce-page:has(.wp-block-woocommerce-empty-cart-block) {
    padding-block: var(--pz-space-6) var(--pz-section-standard);
  }

  .woocommerce-cart .pz-commerce-page:has(.wp-block-woocommerce-empty-cart-block) > .wp-block-post-title {
    margin-bottom: var(--pz-space-5);
  }

  .woocommerce-cart .wc-block-cart__empty-cart__title {
    max-width: 16ch;
  }

  .woocommerce-cart .wp-block-woocommerce-empty-cart-block > .pz-empty-cart-cta {
    margin-bottom: var(--pz-space-7);
  }

  body:not(.logged-in).woocommerce-account .entry-content > .woocommerce,
  body.logged-in.woocommerce-account .entry-content > .woocommerce {
    width: calc(100% - (2 * var(--pz-gutter)));
    padding-block: var(--pz-space-7) var(--pz-section-standard);
  }

  body:not(.logged-in).woocommerce-account #customer_login form {
    padding: var(--pz-space-5);
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:hover,
  .pz-primary-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:focus-visible,
  .pz-primary-nav .wp-block-navigation__responsive-container-content .current-menu-item > .wp-block-navigation-item__content {
    color: #dce8b7;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content .pz-mobile-account-link {
    margin-top: var(--pz-space-3);
    border: 0;
    border-radius: 0;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container-content .pz-mobile-account-link > .wp-block-navigation-item__content {
    padding-inline: 0;
    font-family: var(--pz-font-display);
    font-size: clamp(1.25rem, 6vw, 1.55rem);
    font-weight: 600;
  }

  /* Woo Blocks mini-cart drawer remains inside narrow viewports. */
  .wc-block-mini-cart__drawer {
    width: min(100vw, 480px) !important;
    max-width: 100vw !important;
    overflow-x: hidden;
  }

  .wc-block-mini-cart__drawer :where(.wc-block-mini-cart__empty-cart-wrapper, .wc-block-mini-cart__items, .wc-block-mini-cart__footer) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .wc-block-mini-cart__drawer .wc-block-components-drawer__close {
    top: max(0.75rem, env(safe-area-inset-top));
    right: max(0.75rem, env(safe-area-inset-right));
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 10px;
  }

  .wc-block-mini-cart__drawer .wc-block-mini-cart__title {
    min-height: 66px;
    margin: 0;
    padding: var(--pz-space-4) 4.5rem var(--pz-space-3) var(--pz-space-4);
    font-size: clamp(1.5rem, 7vw, 1.9rem);
    line-height: 1.12;
  }

  .wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-title-items-counter-block {
    display: block;
    margin-top: var(--pz-space-1);
    color: var(--pz-color-muted);
    font-family: var(--pz-font-body);
    font-size: var(--pz-text-meta);
    font-weight: 650;
    line-height: 1.3;
  }

  .wc-block-mini-cart__drawer .wc-block-mini-cart__items {
    overflow-x: hidden;
    overflow-y: auto;
  }

  .wc-block-mini-cart__drawer .wc-block-cart-items__row {
    grid-template-columns: 64px minmax(0, 1fr) auto;
  }

  .wc-block-mini-cart__drawer .wc-block-cart-item__image img:not([hidden]) {
    width: 64px;
    height: 64px;
    object-fit: cover;
  }

  .wc-block-mini-cart__drawer .wc-block-components-product-name {
    overflow-wrap: normal;
    word-break: normal;
  }

  .wc-block-mini-cart__drawer .wc-block-mini-cart__footer {
    padding: var(--pz-space-4);
  }

  .pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__inside-wrapper {
    gap: var(--pz-space-2);
    padding: 0;
    border: 0;
  }

  .pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__input {
    min-width: 0;
    box-shadow: none;
  }

  .pz-header-search:has(.wp-block-search__button[aria-expanded="true"]) .wp-block-search__input:focus {
    border-color: var(--pz-color-focus);
    box-shadow: 0 0 0 2px rgba(180, 95, 56, 0.16);
  }
}

@media (min-width: 601px) and (max-width: 781px) {
  .pz-primary-nav {
    order: 0;
    margin: 0 auto 0 var(--pz-space-3);
  }

  .pz-primary-nav .pz-mobile-account-link {
    display: none;
  }
}

/* ── Mobile navigation overlay: absolute override (≤1023 px) ──────────────
   All !important here defeats WordPress auto-generated per-block layout CSS
   (class wp-block-navigation--is-layout-flex) which can load after site.css.
   Scoped exclusively to .is-menu-open and its navigation descendants.
   Desktop navigation (>1023 px) is untouched.
   ────────────────────────────────────────────────────────────────────────── */
@media (max-width: 1023px) {
  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    overflow: hidden !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-dialog {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item,
  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-submenu {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }

  .pz-primary-nav .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
  }
}
