/*
Theme Name: NWBK Child
Template: kadence
Description: Brand layer for nonwovenbagking.com. Holds design tokens and presentation only — no product data.
Version: 0.4.0
Text Domain: nwbk
*/

/* ---- Brand tokens (CLAUDE.md §8). Change colours here, nowhere else. ---- */
:root {
  --nwbk-surface-100: #F4F4F0;
  --nwbk-surface-200: #E7E3D6;
  --nwbk-ink: #1C2321;
  --nwbk-ink-muted: #5B6360;
  --nwbk-forest: #1B4B43;
  --nwbk-forest-dark: #123530;
  --nwbk-ember: #D6541C;
  --nwbk-ember-dark: #B4430F;
  --nwbk-line: #C9C4B4;
  --nwbk-success: #2F7A4D;

  --nwbk-space-1: 8px;
  --nwbk-space-2: 16px;
  --nwbk-space-3: 32px;
  --nwbk-space-4: 64px;
  --nwbk-radius-input: 4px;
  --nwbk-radius-card: 8px;

  --nwbk-font-head: "Archivo", system-ui, sans-serif;
  --nwbk-font-body: "Public Sans", system-ui, sans-serif;

  /* Map onto Kadence's global palette so every Kadence component picks them up. */
  --global-palette1: var(--nwbk-forest);        /* links, secondary buttons */
  --global-palette2: var(--nwbk-forest-dark);   /* hover */
  --global-palette3: var(--nwbk-ink);           /* headings */
  --global-palette4: var(--nwbk-ink);           /* body strong */
  --global-palette5: var(--nwbk-ink-muted);     /* body muted */
  --global-palette6: var(--nwbk-ink-muted);
  --global-palette7: var(--nwbk-line);          /* borders */
  --global-palette8: var(--nwbk-surface-100);   /* page background */
  --global-palette9: #FFFFFF;
  --global-body-font-family: var(--nwbk-font-body);
  --global-heading-font-family: var(--nwbk-font-head);
}

body { background: var(--nwbk-surface-100); color: var(--nwbk-ink); font-family: var(--nwbk-font-body); }
h1, h2, h3, h4, .product_title { font-family: var(--nwbk-font-head); font-weight: 800; color: var(--nwbk-ink); letter-spacing: -0.01em; }
h3, h4 { font-weight: 700; }

/* Header, nav, footer */
#masthead, .site-header-row-container-inner { background: var(--nwbk-forest); }
#masthead a, #masthead .site-title, #masthead .site-description, #masthead .header-cart-button { color: #fff; }
.site-footer, .site-footer-row-container-inner { background: var(--nwbk-forest-dark); color: #e9ece9; }
.site-footer a { color: #fff; }

/* Buttons: ember = primary actions only (Add to Cart, Get Quote, checkout). */
.single_add_to_cart_button, .checkout-button, #place_order, .nwbk-btn-primary,
.woocommerce button.button.alt, .woocommerce a.button.alt {
  background: var(--nwbk-ember) !important; color: #fff !important; border-radius: var(--nwbk-radius-card); font-weight: 600;
}
.single_add_to_cart_button:hover, .checkout-button:hover, #place_order:hover, .nwbk-btn-primary:hover,
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: var(--nwbk-ember-dark) !important; }
.button, button, .wp-element-button { border-radius: var(--nwbk-radius-card); }
.button:not(.alt):not(.single_add_to_cart_button), .nwbk-btn-secondary {
  background: var(--nwbk-forest); color: #fff;
}

/* Inputs & tags */
input, select, textarea { border: 1px solid var(--nwbk-line); border-radius: var(--nwbk-radius-input); }

/* Tables: square corners, real rules, tabular numerals */
table, .shop_table, .nwbk-spec-table, .tiered-pricing-table { border-radius: 0 !important; border-collapse: collapse; }
.nwbk-spec-table th, .nwbk-spec-table td, .tiered-pricing-table th, .tiered-pricing-table td { border-bottom: 1px solid var(--nwbk-line); padding: var(--nwbk-space-1) var(--nwbk-space-2); text-align: left; }
.nwbk-spec-table th { color: var(--nwbk-ink-muted); font-weight: 600; width: 40%; }
.price, .amount, .nwbk-spec-table, .tiered-pricing-table, .nwbk-breakdown { font-variant-numeric: tabular-nums; }
.price, .woocommerce-Price-amount { color: var(--nwbk-ink); }
.nwbk-price-highlight { color: var(--nwbk-ember); font-weight: 700; }

/* Photos & cards */
.woocommerce-product-gallery img, .woocommerce ul.products li.product img { border-radius: var(--nwbk-radius-card); }
.stock.in-stock { color: var(--nwbk-success); }

/* ---------- Product configurator ---------- */
.nwbk-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.single_variation_wrap .woocommerce-variation-price, .single_variation_wrap .woocommerce-variation-description { display: none; } /* price lives in the price box; size is explained under the size buttons */
.reset_variations { display: none !important; }

.nwbk-choice { margin: 0 0 var(--nwbk-space-2); }
.nwbk-choice-label { font-weight: 600; margin-bottom: var(--nwbk-space-1); }
.nwbk-guide-link { font-weight: 400; font-size: 0.9em; margin-left: var(--nwbk-space-1); }
.nwbk-choice-buttons { display: flex; flex-wrap: wrap; gap: var(--nwbk-space-1); }
.nwbk-choice-buttons + .nwbk-choice-buttons { margin-top: var(--nwbk-space-1); padding-left: var(--nwbk-space-2); border-left: 2px solid var(--nwbk-line); }
.nwbk-btn-choice {
  background: #fff !important; color: var(--nwbk-ink) !important; border: 1px solid var(--nwbk-line) !important;
  border-radius: var(--nwbk-radius-input) !important; padding: 8px 14px !important; font: inherit; font-size: 0.95em; line-height: 1.3;
  cursor: pointer; box-shadow: none !important; min-height: 40px;
}
.nwbk-btn-choice:hover { border-color: var(--nwbk-forest) !important; }
.nwbk-btn-choice.is-selected { border: 2px solid var(--nwbk-forest) !important; background: #EEF3F1 !important; font-weight: 600; padding: 7px 13px !important; }
.nwbk-btn-choice:disabled { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }
.nwbk-btn-choice:focus-visible { outline: 2px solid var(--nwbk-ember); outline-offset: 2px; }
.nwbk-choice-help { margin: var(--nwbk-space-1) 0 0; color: var(--nwbk-ink-muted); font-size: 0.9em; line-height: 1.45; }

.nwbk-preview { margin: 0 0 var(--nwbk-space-2); display: flex; align-items: center; gap: var(--nwbk-space-2); }
.nwbk-preview svg { width: 120px; flex: none; }
.nwbk-preview figcaption { color: var(--nwbk-ink-muted); font-size: 0.85em; }
.nwbk-bag { fill: #fff; stroke: var(--nwbk-ink-muted); stroke-width: 1.5; }
.nwbk-bag-handle { fill: none; stroke: var(--nwbk-ink-muted); stroke-width: 3; }
.nwbk-print { fill: rgba(214, 84, 28, 0.18); stroke: var(--nwbk-ember); stroke-width: 1.5; }
.nwbk-print.is-max { stroke-dasharray: 5 3; }
.nwbk-print-label { font: 600 10px var(--nwbk-font-body); fill: var(--nwbk-ink); text-anchor: middle; }

.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nwbk-space-1) var(--nwbk-space-2); }
.nwbk-qty-label { flex-basis: 100%; font-weight: 600; margin-top: var(--nwbk-space-1); }
.woocommerce-variation-add-to-cart .nwbk-breakdown { flex-basis: 100%; }
.woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 100%; min-height: 48px; font-size: 1.05em; }
.wapf { flex-basis: 100%; }

/* Price box */
.nwbk-breakdown { background: var(--nwbk-surface-200); border-radius: var(--nwbk-radius-card); padding: var(--nwbk-space-2); margin: var(--nwbk-space-1) 0; }
.nwbk-breakdown table { width: 100%; margin: 0; border: 0; }
.nwbk-breakdown th, .nwbk-breakdown td { padding: 6px 0; border: 0; border-bottom: 1px solid var(--nwbk-line); font-weight: 400; text-align: left; background: none; }
.nwbk-breakdown td { text-align: right; font-variant-numeric: tabular-nums; }
.nwbk-total-row th, .nwbk-total-row td { border-bottom: 0; font-weight: 700; font-size: 1.25em; padding-top: 10px; }
.nwbk-total-row td { color: var(--nwbk-ember); }
.nwbk-next-tier { margin: var(--nwbk-space-1) 0 0; color: var(--nwbk-success); font-size: 0.9em; }
.nwbk-tiers { margin-top: var(--nwbk-space-1); }
.nwbk-tiers summary { cursor: pointer; color: var(--nwbk-forest); font-size: 0.9em; font-weight: 600; }
.nwbk-tier-table { margin-top: var(--nwbk-space-1) !important; font-size: 0.9em; }
.nwbk-tier-table thead th { color: var(--nwbk-ink-muted); font-weight: 600; }
.nwbk-tier-table thead th:last-child { text-align: right; }
.nwbk-tier-table tr.is-active td { font-weight: 700; color: var(--nwbk-forest); }
.nwbk-breakdown-hint, .nwbk-shipping-note { margin: 0; color: var(--nwbk-ink-muted); font-size: 0.9em; }
.nwbk-shipping-note { margin-top: var(--nwbk-space-1); }
.nwbk-price-suffix { color: var(--nwbk-ink-muted); font-size: 0.6em; font-weight: 400; }
.nwbk-from { font-size: 0.6em; font-weight: 400; color: var(--nwbk-ink-muted); }
.nwbk-on-request { color: var(--nwbk-forest); font-weight: 600; }
.nwbk-quote-note { display: flex; gap: var(--nwbk-space-2); align-items: center; flex-wrap: wrap; }

/* Buying guide tab */
.nwbk-guide table { width: 100%; border-collapse: collapse; margin: var(--nwbk-space-2) 0 var(--nwbk-space-3); }
.nwbk-guide th, .nwbk-guide td { border-bottom: 1px solid var(--nwbk-line); padding: var(--nwbk-space-1) var(--nwbk-space-2) var(--nwbk-space-1) 0; text-align: left; vertical-align: top; }
.nwbk-guide thead th { font-family: var(--nwbk-font-head); }
.nwbk-guide tbody th { color: var(--nwbk-ink-muted); font-weight: 600; width: 22%; }
.nwbk-guide h3 { margin-top: var(--nwbk-space-3); }
@media (max-width: 600px) { .nwbk-guide table { font-size: 0.9em; } .nwbk-guide .wp-block-table { overflow-x: auto; } }
.nwbk-tier-table td:first-child { text-align: left; }
.woocommerce-variation-add-to-cart .quantity input.qty { width: 110px; text-align: left; padding: 8px 12px; }
.nwbk-guide .wp-block-table table, .nwbk-guide .wp-block-table th, .nwbk-guide .wp-block-table td { border: 0; }
.nwbk-guide .wp-block-table th, .nwbk-guide .wp-block-table td { border-bottom: 1px solid var(--nwbk-line); padding: 10px 16px 10px 0; }
.nwbk-guide .wp-block-table thead th { border-bottom: 2px solid var(--nwbk-ink); }

/* ---------- Guide illustrations ---------- */
.nwbk-g-svg { display: block; width: 100%; height: auto; overflow: visible; }
.nwbk-g-body, .nwbk-g-face { fill: #fff; stroke: var(--nwbk-ink-muted); stroke-width: 1.5; }
.nwbk-g-bag.is-back .nwbk-g-body { fill: var(--nwbk-surface-100); }
.nwbk-g-handle { fill: none; stroke: var(--nwbk-ink-muted); stroke-width: 3; stroke-linecap: round; }
.nwbk-g-handle.is-back { stroke: var(--nwbk-line); }
.nwbk-g-gusset { fill: var(--nwbk-surface-200); stroke: var(--nwbk-ink-muted); stroke-width: 1.5; }
.nwbk-g-top { fill: var(--nwbk-line); stroke: var(--nwbk-ink-muted); stroke-width: 1.5; }
.nwbk-g-ink { fill: var(--nwbk-forest); }
.nwbk-g-ink2 { fill: var(--nwbk-ember); }
.nwbk-g-frame { fill: none; stroke: var(--nwbk-ink); stroke-width: 3; }
.nwbk-g-frameline { stroke: var(--nwbk-ink); stroke-width: 3; }
.nwbk-g-mesh { stroke: var(--nwbk-line); stroke-width: 1; }
.nwbk-g-squeegee { stroke: var(--nwbk-ember); stroke-width: 5; stroke-linecap: round; }
.nwbk-g-arrow { fill: none; stroke: var(--nwbk-ink); stroke-width: 1.5; }
.nwbk-g-arrowline { stroke: var(--nwbk-ink); stroke-width: 1.5; }
.nwbk-g-fabric { fill: var(--nwbk-surface-200); stroke: var(--nwbk-line); }
.nwbk-g-film { fill: #fff; stroke: var(--nwbk-ink-muted); stroke-dasharray: 4 3; }
.nwbk-g-press { fill: var(--nwbk-ink-muted); }
.nwbk-g-heat { fill: none; stroke: var(--nwbk-ember); stroke-width: 1.5; }
.nwbk-g-cap { font: 11px var(--nwbk-font-body); fill: var(--nwbk-ink-muted); text-anchor: middle; }
.nwbk-g-dim { font: 600 12px var(--nwbk-font-body); fill: var(--nwbk-ink); text-anchor: middle; }
.nwbk-g-dim.is-left { text-anchor: start; }
.nwbk-g-dimline { fill: none; stroke: var(--nwbk-ink); stroke-width: 1; }
.nwbk-g-title { font-family: var(--nwbk-font-head); font-weight: 700; font-size: 1.1em; margin-bottom: var(--nwbk-space-1); }
.nwbk-g-note { color: var(--nwbk-ink-muted); font-size: 0.85em; }

.nwbk-g-methods { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--nwbk-space-3); margin: var(--nwbk-space-2) 0; }
.nwbk-g-method { margin: 0; }
.nwbk-g-pair { display: grid; grid-template-columns: 2fr 3fr; gap: var(--nwbk-space-2); align-items: end; }
.nwbk-g-photo { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--nwbk-radius-card); }
.nwbk-g-points { margin: var(--nwbk-space-1) 0 0; padding-left: 1.1em; }

.nwbk-g-sizes { margin: var(--nwbk-space-2) 0; }
.nwbk-g-tabs { display: flex; gap: var(--nwbk-space-1); margin-bottom: var(--nwbk-space-2); }
.nwbk-g-sizepanel { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: var(--nwbk-space-3); align-items: center; }
.nwbk-g-sizepanel[hidden] { display: none; }
.nwbk-g-area { fill: none; stroke: var(--nwbk-line); stroke-width: 1; stroke-dasharray: 3 2; transition: fill .15s; }
.nwbk-g-area.is-on { fill: rgba(214, 84, 28, 0.2); stroke: var(--nwbk-ember); stroke-width: 2; stroke-dasharray: none; }
.nwbk-g-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.nwbk-g-legend button { width: 100%; text-align: left; background: #fff !important; color: var(--nwbk-ink) !important; border: 1px solid var(--nwbk-line) !important; border-radius: var(--nwbk-radius-input) !important; padding: 8px 12px !important; box-shadow: none !important; font: inherit; cursor: pointer; }
.nwbk-g-legend button span { display: block; color: var(--nwbk-ink-muted); font-size: 0.85em; }
.nwbk-g-legend button.is-selected { border: 2px solid var(--nwbk-ember) !important; padding: 7px 11px !important; }

.nwbk-g-sides { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--nwbk-space-3); max-width: 640px; }
.nwbk-g-side { margin: 0; }
.nwbk-g-anatomy { max-width: 420px; margin: var(--nwbk-space-2) 0; }
.nwbk-g-anatomy figcaption { color: var(--nwbk-ink-muted); font-size: 0.9em; margin-top: var(--nwbk-space-1); }
.nwbk-choice-photo { display: block; width: 160px; aspect-ratio: 1; object-fit: cover; border-radius: var(--nwbk-radius-card); margin-top: var(--nwbk-space-1); }

@media (max-width: 600px) {
  .nwbk-g-sizepanel { grid-template-columns: 1fr; }
  .nwbk-g-sizepanel .nwbk-g-svg { max-width: 260px; margin: 0 auto; }
}
.nwbk-g-slot { aspect-ratio: 4 / 3; border: 2px dashed var(--nwbk-line); border-radius: var(--nwbk-radius-card); display: flex; flex-direction: column; justify-content: center; gap: var(--nwbk-space-1); padding: var(--nwbk-space-2); color: var(--nwbk-ink-muted); font-size: 0.85em; background: var(--nwbk-surface-100); }
.nwbk-g-slot strong { color: var(--nwbk-ink); }
.nwbk-g-photo { aspect-ratio: 4 / 3; }
.nwbk-g-logo { font: 800 20px var(--nwbk-font-head); fill: var(--nwbk-forest); text-anchor: middle; letter-spacing: 0.04em; }
.nwbk-g-logo.is-alt { fill: var(--nwbk-ember); }
.nwbk-print-label { font-family: var(--nwbk-font-head); font-weight: 800; fill: var(--nwbk-ember); text-anchor: middle; }
.nwbk-guide .wp-block-details { border-bottom: 1px solid var(--nwbk-line); padding: var(--nwbk-space-1) 0; }
.nwbk-guide .wp-block-details summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.nwbk-guide .wp-block-details p { margin: var(--nwbk-space-1) 0 var(--nwbk-space-1) 1.1em; color: var(--nwbk-ink); }

/* Guide tables on phones: row label on its own line, answers side by side */
@media (max-width: 600px) {
  .nwbk-guide .wp-block-table tr { display: flex; flex-wrap: wrap; }
  .nwbk-guide .wp-block-table tbody th { flex: 0 0 100%; width: auto; padding: 12px 0 2px; border-bottom: 0; color: var(--nwbk-ink); }
  .nwbk-guide .wp-block-table td, .nwbk-guide .wp-block-table thead th { flex: 1 1 0; min-width: 0; padding: 2px 12px 10px 0; font-size: 0.92em; }
  .nwbk-guide .wp-block-table thead th:empty { display: none; }
}

/* Sticky order bar (phones) */
.nwbk-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; gap: var(--nwbk-space-2); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--nwbk-line); box-shadow: 0 -2px 8px rgba(28, 35, 33, 0.08); transform: translateY(110%); transition: transform .2s; }
.nwbk-sticky.is-on { transform: none; }
.nwbk-sticky-total { flex: 1; line-height: 1.25; font-variant-numeric: tabular-nums; }
.nwbk-sticky-total strong { display: block; color: var(--nwbk-ember); font-size: 1.15em; }
.nwbk-sticky-total span { color: var(--nwbk-ink-muted); font-size: 0.8em; }
.nwbk-sticky .nwbk-btn-primary { border: 0; padding: 12px 20px; font-weight: 600; min-height: 44px; }
@media (min-width: 768px) { .nwbk-sticky { display: none; } }

/* Order facts, WhatsApp, ordering steps */
.nwbk-order-facts { list-style: none; margin: var(--nwbk-space-2) 0 var(--nwbk-space-1); padding: 0; }
.nwbk-order-facts li { margin: 4px 0; }
.nwbk-wa-button { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: #25D366; color: #fff !important; font-weight: 600; text-decoration: none; }
.nwbk-wa-button:hover { background: #1EBE5A; }
.nwbk-wa-button .nwbk-wa-icon { flex: none; }
.nwbk-steps { margin-top: var(--nwbk-space-3); padding-top: var(--nwbk-space-2); border-top: 1px solid var(--nwbk-line); }
.nwbk-steps-title { font-size: 1.1em; margin: 0 0 var(--nwbk-space-1); }
.nwbk-steps ol { margin: 0; padding-left: 1.3em; }
.nwbk-steps li { margin: 6px 0; color: var(--nwbk-ink-muted); }
.nwbk-steps li strong { color: var(--nwbk-ink); display: block; }
.nwbk-cta { margin: var(--nwbk-space-1) var(--nwbk-space-1) var(--nwbk-space-1) 0; display: inline-block; }
.nwbk-cta .nwbk-btn-primary { display: inline-block; padding: 12px 20px; text-decoration: none; min-height: 44px; }
.nwbk-guide .nwbk-wa-button { margin: 0 0 var(--nwbk-space-2); }

/* ---------- Homepage & content pages ---------- */
.home .entry-hero, .home .entry-header, .home .page-title { display: none; }
.home .content-area { margin-top: 0; }
.nwbk-home > * + * { margin-top: var(--nwbk-space-4); }
.nwbk-hero { padding: var(--nwbk-space-3) 0; }
.nwbk-hero h1 { font-size: clamp(2rem, 4.5vw, 3.2rem); line-height: 1.08; max-width: 18ch; margin: 0 0 var(--nwbk-space-2); }
.nwbk-hero .nwbk-lede { font-size: 1.15em; max-width: 56ch; color: var(--nwbk-ink); }
.nwbk-hero .wp-block-buttons { margin: var(--nwbk-space-2) 0; gap: var(--nwbk-space-1); }
.nwbk-hero .wp-block-button__link { border-radius: var(--nwbk-radius-card); padding: 14px 22px; font-weight: 600; }
.nwbk-hero .is-style-outline .wp-block-button__link { background: transparent !important; color: var(--nwbk-forest) !important; border: 2px solid var(--nwbk-forest); }
.nwbk-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--nwbk-ember); color: #fff; }
.nwbk-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--nwbk-ember-dark); }
.nwbk-small { color: var(--nwbk-ink-muted); font-size: 0.9em; }

.nwbk-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; border-top: 1px solid var(--nwbk-line); border-bottom: 1px solid var(--nwbk-line); }
.nwbk-facts > div { padding: var(--nwbk-space-2) var(--nwbk-space-2) var(--nwbk-space-2) 0; }
.nwbk-facts p { margin: 0; }
.nwbk-facts .nwbk-fact-num { font-family: var(--nwbk-font-head); font-weight: 800; font-size: 1.7em; color: var(--nwbk-ink); font-variant-numeric: tabular-nums; }
.nwbk-facts .nwbk-fact-label { color: var(--nwbk-ink-muted); font-size: 0.9em; }

.nwbk-home h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: var(--nwbk-space-2); }
.nwbk-home .nwbk-band { background: var(--nwbk-surface-200); padding: var(--nwbk-space-3); border-radius: var(--nwbk-radius-card); }

.nwbk-sample-prices { margin: 0; }
.nwbk-sample-prices table { width: 100%; max-width: 620px; border-collapse: collapse; }
.nwbk-sample-prices th, .nwbk-sample-prices td { text-align: left; padding: 10px 16px 10px 0; border-bottom: 1px solid var(--nwbk-line); font-variant-numeric: tabular-nums; }
.nwbk-sample-prices thead th { border-bottom: 2px solid var(--nwbk-ink); }
.nwbk-sample-prices tbody th { font-weight: 600; }
.nwbk-sample-prices figcaption { margin-top: var(--nwbk-space-1); color: var(--nwbk-ink-muted); font-size: 0.9em; }

.nwbk-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--nwbk-space-3); }
.nwbk-trust h3 { font-size: 1.1em; margin: 0 0 4px; }
.nwbk-trust p { margin: 0; color: var(--nwbk-ink-muted); }
.nwbk-home .wp-block-details { border-bottom: 1px solid var(--nwbk-line); padding: var(--nwbk-space-1) 0; }
.nwbk-home .wp-block-details summary { cursor: pointer; font-weight: 600; }
.nwbk-cta-band { background: var(--nwbk-forest); color: #fff; padding: var(--nwbk-space-3); border-radius: var(--nwbk-radius-card); }
.nwbk-cta-band h2, .nwbk-cta-band p { color: #fff; }
.nwbk-cta-band .nwbk-wa-button { color: #fff; }
.nwbk-cta-band .nwbk-wa-button:hover { background: #1EBE5A; }
.nwbk-home ul.products { margin-top: var(--nwbk-space-2); }

/* Homepage built from standard blocks (staff edit it in the visual editor) */
.home .entry-content > * + * { margin-top: var(--nwbk-space-4); }
.home .entry-content h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: var(--nwbk-space-2); }
.home .entry-content h3 { font-size: 1.1em; margin: 0 0 4px; }
.nwbk-facts { gap: 0 !important; margin-top: var(--nwbk-space-3) !important; }
.nwbk-facts > .wp-block-column { padding: var(--nwbk-space-2) var(--nwbk-space-2) var(--nwbk-space-2) 0; margin: 0 !important; }
.nwbk-steps-cols, .nwbk-trust { gap: var(--nwbk-space-3) !important; }
.nwbk-steps-cols h3 { color: var(--nwbk-ink); }
.nwbk-steps-cols p, .nwbk-trust p { color: var(--nwbk-ink-muted); margin: 0; }
.nwbk-trust { display: flex !important; }
.nwbk-cta-band .wp-block-button__link { background: #fff !important; color: var(--nwbk-forest) !important; border-radius: var(--nwbk-radius-card); font-weight: 600; padding: 12px 20px; }
.nwbk-cta-band .wp-block-button__link:hover { background: var(--nwbk-surface-100) !important; }
.home .entry-content .wp-block-details { border-bottom: 1px solid var(--nwbk-line); padding: var(--nwbk-space-1) 0; margin: 0; }
.home .entry-content .wp-block-details summary { cursor: pointer; font-weight: 600; }
.home .nwbk-hero { padding-top: var(--nwbk-space-2); }
.nwbk-band { background: var(--nwbk-surface-200); padding: var(--nwbk-space-3) !important; border-radius: var(--nwbk-radius-card); }
.nwbk-cta-band { background: var(--nwbk-forest); color: #fff; padding: var(--nwbk-space-3) !important; border-radius: var(--nwbk-radius-card); }
.nwbk-cta-band h2, .nwbk-cta-band p { color: #fff !important; }
/* Editor buttons (staff pick the style class in Block → Advanced → Additional CSS class) */
.nwbk-cta-core .wp-block-button__link { background: var(--nwbk-ember) !important; color: #fff !important; border-radius: var(--nwbk-radius-card); padding: 12px 20px; font-weight: 600; }
.nwbk-cta-core .wp-block-button__link:hover { background: var(--nwbk-ember-dark) !important; }
.nwbk-wa-core .wp-block-button__link { background: transparent !important; color: var(--nwbk-forest) !important; border: 1px solid var(--nwbk-forest); border-radius: var(--nwbk-radius-card); padding: 10px 16px; font-weight: 600; }
.nwbk-wa-core .wp-block-button__link:hover { background: #EEF3F1 !important; }
.nwbk-cta-band .nwbk-wa-core .wp-block-button__link { background: #fff !important; border-color: #fff; }
.wp-block-buttons + .wp-block-buttons { margin-top: var(--nwbk-space-1); }
.nwbk-ship-line { margin: var(--nwbk-space-1) 0 0; font-size: 0.9em; color: var(--nwbk-ink); }
.nwbk-quote-rate { margin: 4px 0 8px 1.6em; font-size: 0.88em; color: var(--nwbk-ink-muted); }
.nwbk-quote-rate a { font-weight: 600; }
.nwbk-illustration-note { font-size: 0.8em; color: var(--nwbk-ink-muted); margin: var(--nwbk-space-1) 0 0; clear: both; }
.nwbk-g-method figcaption { margin-top: var(--nwbk-space-1); font-size: 0.9em; color: var(--nwbk-ink-muted); }
.nwbk-g-method figcaption strong { color: var(--nwbk-ink); }
.nwbk-rule { background: var(--nwbk-surface-200); border-radius: var(--nwbk-radius-card); padding: var(--nwbk-space-2) !important; }
.nwbk-compare td.is-best { font-weight: 700; color: var(--nwbk-success); background: #EEF6F0; }
.nwbk-compare table { max-width: 760px; }
@media (max-width: 600px) { .nwbk-compare { overflow-x: auto; } .nwbk-compare th, .nwbk-compare td { padding-right: 10px; font-size: 0.9em; } }

/* "How ordering works" visual timeline */
.nwbk-steps-visual { margin: var(--nwbk-space-3) 0 var(--nwbk-space-2); }
.nwbk-steps-visual-title { font-family: var(--nwbk-font-head); font-weight: 700; font-size: 1.05em; margin: 0 0 var(--nwbk-space-2); }
.nwbk-steps-visual ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--nwbk-space-1); position: relative; }
.nwbk-steps-visual ol::before { content: ""; position: absolute; top: 32px; left: 12.5%; right: 12.5%; border-top: 2px dashed var(--nwbk-line); }
.nwbk-steps-visual li { position: relative; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.nwbk-step-icon { position: relative; width: 64px; height: 64px; border-radius: 50%; background: var(--nwbk-forest); color: #fff; display: grid; place-items: center; margin-bottom: 6px; box-shadow: 0 0 0 6px var(--nwbk-surface-100); }
.nwbk-step-icon svg { width: 30px; height: 30px; }
.nwbk-step-num { position: absolute; top: -4px; right: -4px; width: 20px; height: 20px; border-radius: 50%; background: var(--nwbk-ember); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.nwbk-steps-visual strong { font-size: 1em; line-height: 1.2; }
.nwbk-step-sub { font-size: 0.8em; color: var(--nwbk-ink-muted); line-height: 1.3; }
.nwbk-band .nwbk-step-icon { box-shadow: 0 0 0 6px var(--nwbk-surface-200); }
@media (max-width: 480px) { .nwbk-steps-visual ol { grid-template-columns: repeat(2, 1fr); row-gap: var(--nwbk-space-2); } .nwbk-steps-visual ol::before { display: none; } }

/* Silk screen vs full colour: tick table */
.nwbk-guide .nwbk-ticks table { table-layout: fixed; }
.nwbk-guide .nwbk-ticks td { text-align: center; font-weight: 600; }
.nwbk-guide .nwbk-ticks thead th:not(:first-child) { text-align: center; }
.nwbk-guide .nwbk-ticks tbody th { width: 38%; }
.nwbk-tick { color: var(--nwbk-success); font-size: 1.25em; }
.nwbk-cross { color: #B4430F; font-size: 1.15em; }
.nwbk-guide h4 { margin: var(--nwbk-space-3) 0 var(--nwbk-space-1); }
@media (max-width: 600px) { .nwbk-guide .nwbk-ticks tbody th { flex: 0 0 100%; text-align: left; } .nwbk-guide .nwbk-ticks td { text-align: center; } }

/* ---------- Quote request form (Customise bag) ---------- */
.nwbk-request { margin: var(--nwbk-space-2) 0; }
.nwbk-request fieldset { border: 0; padding: 0; min-width: 0; }
.nwbk-request legend { padding: 0; }
.nwbk-request p { margin: 0 0 var(--nwbk-space-2); }
.nwbk-chip { display: inline-flex; align-items: center; }
.nwbk-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.nwbk-chip:focus-within { outline: 2px solid var(--nwbk-ember); outline-offset: 2px; }
.nwbk-request-style { margin-top: var(--nwbk-space-1); display: grid; gap: 4px; }
.nwbk-request-style select, .nwbk-request textarea, .nwbk-request input[type="text"], .nwbk-request input[type="date"] { width: 100%; max-width: 100%; }
.nwbk-request input[type="number"] { width: 9em; }
.nwbk-request-other { margin-top: var(--nwbk-space-1); }
.nwbk-request-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nwbk-space-2); }
@media (max-width: 600px) { .nwbk-request-row { grid-template-columns: 1fr; } }
.nwbk-request .nwbk-choice-help { display: block; }
.nwbk-request-error { color: var(--nwbk-ember-dark); font-weight: 600; }
.nwbk-request-done { font-weight: 600; color: var(--nwbk-success); }
.nwbk-hp { position: absolute; left: -9999px; }

/* ---------- Picture buttons on product choices ---------- */
.nwbk-btn-choice.has-visual { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; min-width: 84px; padding: 8px 10px !important; text-align: center; }
.nwbk-btn-choice.has-visual.is-selected { padding: 7px 9px !important; }
.nwbk-tile-visual { display: block; width: 56px; height: 56px; }
.nwbk-tile-visual svg { width: 100%; height: 100%; display: block; }
.nwbk-tile-visual img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--nwbk-radius-input); display: block; }
.nwbk-tile-label { font-weight: 600; line-height: 1.2; }
.nwbk-tile-caption { font-size: 0.78em; color: var(--nwbk-ink-muted); font-variant-numeric: tabular-nums; }
.nwbk-tile-svgtext { font: 700 6px var(--nwbk-font-body); fill: var(--nwbk-ink-muted); text-anchor: middle; }
.nwbk-tile-visual .nwbk-print { fill: rgba(214, 84, 28, 0.25); stroke: var(--nwbk-ember); stroke-width: 1; }
.nwbk-btn-choice.has-visual:has(.nwbk-swatch) { min-width: 64px; }
.nwbk-swatch { display: block; width: 36px; height: 36px; margin: 10px auto 0; border-radius: 50%; border: 1px solid var(--nwbk-line); box-shadow: inset 0 0 0 2px #fff; }
.nwbk-btn-choice.is-selected .nwbk-swatch { box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--nwbk-forest); }
.nwbk-detail-link, .nwbk-photos-link { display: inline-block; margin-top: 4px; font-size: 0.88em; font-weight: 600; }
.nwbk-choice-help { font-size: 0.85em; }
@media (max-width: 600px) { .nwbk-btn-choice.has-visual { min-width: 72px; } .nwbk-tile-visual, .nwbk-tile-visual img { width: 48px; height: 48px; } }

/* ---------- WhatsApp: floating button on every page ---------- */
.nwbk-wa-float { position: fixed; right: 16px; bottom: 16px; z-index: 9990; display: flex; align-items: center; gap: 6px; height: 56px; padding: 0 18px 0 13px; border-radius: 28px; background: #25D366; color: #fff !important; text-decoration: none; font-weight: 700; box-shadow: 0 4px 14px rgba(0,0,0,0.22); }
.nwbk-wa-float:hover { background: #1EBE5A; }
.nwbk-wa-float:focus-visible { outline: 3px solid var(--nwbk-ember); outline-offset: 2px; }
@media (max-width: 768px) {
  .nwbk-wa-float { width: 56px; padding: 0; justify-content: center; }
  .nwbk-wa-float-label { display: none; }
  body.single-product .nwbk-wa-float { bottom: 84px; } /* above the sticky order bar */
}
.nwbk-wa-inline { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.nwbk-wa-inline .nwbk-wa-icon { color: #25D366; }
.nwbk-wa-core .wp-block-button__link { background: #25D366 !important; color: #fff !important; border: 0; border-radius: 999px; }
.nwbk-wa-core .wp-block-button__link::before { content: ""; display: inline-block; width: 20px; height: 20px; margin-right: 8px; vertical-align: -4px; background: currentColor; -webkit-mask: var(--nwbk-wa-mask) center / contain no-repeat; mask: var(--nwbk-wa-mask) center / contain no-repeat; }
.nwbk-wa-core .wp-block-button__link:hover { background: #1EBE5A !important; }
:root { --nwbk-wa-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C8.8 3 3 8.8 3 16c0 2.3.6 4.5 1.7 6.5L3 29l6.7-1.8A13 13 0 0 0 16 29c7.2 0 13-5.8 13-13S23.2 3 16 3zm5.8 15.7c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2-.2.3-.8 1-1 1.3-.2.2-.4.2-.7.1-.3-.2-1.4-.5-2.6-1.6-.9-.8-1.6-1.9-1.8-2.2-.2-.3 0-.5.1-.7l.5-.6c.2-.2.2-.3.3-.5.1-.2.1-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.6h-.6c-.2 0-.6.1-.9.4-.3.3-1.1 1.1-1.1 2.7s1.1 3.1 1.3 3.3c.2.2 2.3 3.4 5.5 4.8 2.7 1.1 3.2.9 3.8.8.6-.1 1.9-.8 2.2-1.5.3-.7.3-1.4.2-1.5-.1-.1-.3-.2-.6-.4z'/%3E%3C/svg%3E"); }
.nwbk-cta-band .nwbk-wa-core .wp-block-button__link { background: #25D366 !important; }

/* Customise Bag: style picker as picture cards */
.nwbk-style-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: var(--nwbk-space-1); max-height: 460px; overflow-y: auto; padding: 2px; }
.nwbk-style-card { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 6px; background: #fff; border: 1px solid var(--nwbk-line); border-radius: var(--nwbk-radius-input); cursor: pointer; font-size: 0.8em; line-height: 1.25; text-align: center; }
.nwbk-style-card[hidden] { display: none; }
.nwbk-style-card input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.nwbk-style-card:hover { border-color: var(--nwbk-forest); }
.nwbk-style-card.is-selected { border: 2px solid var(--nwbk-forest); background: #EEF3F1; padding: 5px; font-weight: 600; }
.nwbk-style-card:focus-within { outline: 2px solid var(--nwbk-ember); outline-offset: 2px; }
.nwbk-style-img { width: 88px; height: 88px; object-fit: contain; background: #fff; display: flex; align-items: center; justify-content: center; }
.nwbk-style-any { font: 800 34px var(--nwbk-font-head); color: var(--nwbk-ink-muted); border: 1px dashed var(--nwbk-line); border-radius: var(--nwbk-radius-input); }
.nwbk-ink-dot { fill: var(--nwbk-forest); }
.nwbk-ink-1 { fill: var(--nwbk-ember); }
.nwbk-ink-2 { fill: #2B55B5; }
.nwbk-level-2 .nwbk-btn-choice.has-visual { min-width: 72px; }
.nwbk-choice-photo { max-width: 160px; }
.nwbk-choice[data-for="attribute_pa_bag-colour"] .nwbk-btn-choice.has-visual { min-width: 0; width: 76px; padding: 6px 4px !important; font-size: 0.78em; }
.nwbk-choice[data-for="attribute_pa_bag-colour"] .nwbk-btn-choice.has-visual.is-selected { padding: 5px 3px !important; }
.nwbk-choice[data-for="attribute_pa_bag-colour"] .nwbk-tile-visual { height: 40px; }
.nwbk-choice[data-for="attribute_pa_bag-colour"] .nwbk-swatch { width: 30px; height: 30px; margin-top: 6px; }

/* About: clients as a grid of name tiles; Google reviews link */
.nwbk-clients { list-style: none; padding: 0; margin: var(--nwbk-space-2) 0 var(--nwbk-space-3); display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--nwbk-space-1); }
.nwbk-clients li { margin: 0; padding: 12px; background: #fff; border: 1px solid var(--nwbk-line); border-radius: var(--nwbk-radius-input); font-weight: 600; text-align: center; display: flex; align-items: center; justify-content: center; min-height: 56px; }
.nwbk-reviews-link .wp-block-button__link { background: #fff !important; color: var(--nwbk-forest) !important; border: 1px solid var(--nwbk-forest); }
.nwbk-style-group { grid-column: 1 / -1; margin: 8px 0 0 !important; font-weight: 700; font-size: 0.9em; color: var(--nwbk-forest); border-bottom: 1px solid var(--nwbk-line); padding-bottom: 4px; }
.nwbk-style-group[hidden] { display: none; }
.nwbk-style-grid { grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); max-height: 560px; }
.nwbk-style-card strong { font-size: 1.05em; line-height: 1.25; }
.nwbk-style-meta { color: var(--nwbk-ink-muted); font-size: 0.92em; font-variant-numeric: tabular-nums; }
.nwbk-style-img { width: 112px; height: 112px; }

/* About: client logos (a Gallery block staff edit) */
.nwbk-client-logos.wp-block-gallery { gap: var(--nwbk-space-1) !important; margin-bottom: var(--nwbk-space-3); }
.nwbk-client-logos .wp-block-image { background: #fff; border: 1px solid var(--nwbk-line); border-radius: var(--nwbk-radius-input); padding: 8px; display: flex; align-items: center; justify-content: center; }
.nwbk-client-logos .wp-block-image img { aspect-ratio: 1 / 1; object-fit: contain !important; height: auto !important; }
@media (max-width: 600px) { .nwbk-client-logos.wp-block-gallery.columns-6 .wp-block-image { width: calc(33.33% - var(--nwbk-space-1)) !important; } }
