/* =============================================================================
   printing.uk — Site Stylesheet
   Version: 2.12.1  (mobile menu @1140px, tokenised 02/08 — search "MOBILE MENU v2.11.0")
   Brand green: var(--puk-primary,#3f6f5f)
   Deploy to: /wp-content/mu-plugins/assets/printinguk-site.css
   ============================================================================= */

/* ── CSS Custom Properties ─────────────────────────────────────────────────── */
:root {
  /* Brand greens — primary: var(--puk-primary,#3f6f5f) */
  --puk-green-900: var(--puk-button,#2a4a3f);
  --puk-green-800: #335a4c;
  --puk-green-700: var(--puk-primary,#3f6f5f);
  --puk-green-600: #4d8872;
  --puk-green-500: #6aa891;
  --puk-green-400: #8fc4b4;
  --puk-accent:    var(--puk-primary,#3f6f5f);

  /* Surfaces */
  --puk-surface:    #f4f8f6;
  --puk-surface-2:  #e8f0ec;
  --puk-bg:         #ffffff;

  /* Text */
  --puk-text:       #0f1412;
  --puk-muted:      rgba(15,20,18,.62);
  --puk-muted-2:    rgba(15,20,18,.42);

  /* Border */
  --puk-border:     rgba(16,24,20,.09);

  /* Radii */
  --puk-r-sm:  8px;
  --puk-r-md:  14px;
  --puk-r-lg:  20px;
  --puk-r-xl:  28px;
  --puk-r-2xl: 44px;

  /* Shadows */
  --puk-shadow-1: 0 10px 24px rgba(16,24,20,.06);
  --puk-shadow-2: 0 18px 44px rgba(16,24,20,.09);

  /* Mobile menu action buttons — each chains to an existing panel token, so
     they follow the site by default; the Styling panel can override any one
     of them on :root without touching the menu rules. */
  --puk-menu-btn-bg:     var(--puk-button,#2a4a3f);
  --puk-menu-btn-hover:  var(--puk-primary,#3f6f5f);
  --puk-menu-btn-text:   #ffffff;
  --puk-menu-btn-radius: var(--puk-radius-pill,999px);
  --puk-menu-btn-fs:     var(--puk-fs-sm,.875rem);
  --puk-menu-btn-icon:   18px;
  --puk-menu-btn-gap:    8px;   /* vertical gap between the menu links */
  /* ONE value for the whole button row: left of the first, between each,
     right of the last, above and below. It is also the menu links' text
     inset, so the button edges sit on the link text line. */
  --puk-menu-space:      24px;
  --puk-menu-btn-pad-y:  12px;
  --puk-menu-btn-pad-x:  10px;

  /* Layout */
  --puk-header-height: 68px;
  --puk-container:     100%;
}

/* Dark mode */
html.puk-dark {
  --puk-bg:       #0f1412;
  --puk-surface:  #161d1a;
  --puk-surface-2:#1e2a25;
  --puk-text:     #e6f2ec;
  --puk-muted:    rgba(230,242,236,.62);
  --puk-muted-2:  rgba(230,242,236,.38);
  --puk-border:   rgba(230,242,236,.09);
}

/* ── Reset / Base ──────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--puk-font,'Poppins',sans-serif);
  color: var(--puk-text);
  background: var(--puk-bg);
  -webkit-font-smoothing: antialiased;
}

html.puk-dark body { background: var(--puk-bg); }

a { color: var(--puk-green-700); text-decoration: none; }
a:hover { color: var(--puk-green-900); }

/* ── Container ─────────────────────────────────────────────────────────────── */
.puk-container {
  width: 100%;
  margin: 0 auto;
  padding-left: clamp(16px,4vw,40px);
  padding-right: clamp(16px,4vw,40px);
  box-sizing: border-box;
}

/* ── Sections ──────────────────────────────────────────────────────────────── */
.puk-section {
  padding-top: var(--puk-section-space,56px);
  padding-bottom: 0;
}
/* Last section before the footer: the footer's own top margin supplies the
   final gap, so no trailing padding needed. */

/* ── Page title suppression ────────────────────────────────────────────────── */
.page .entry-title,
.page h1.entry-title,
.page .puk-page-title-wrap,
.inside-page-header { display: none !important; }

.page .content-area,
.page .site-main,
.page article.page,
.page .inside-article,
.page .entry-content,
.site-content,
body.page .site-main,
body.page article,
.puk-trade-page,
.puk-trade-page > *:first-child { padding-top: 0 !important; margin-top: 0 !important; }

/* Zero the theme wrappers' BOTTOM spacing too, so the gap between the last
   page block (e.g. CTA) and the footer is the token value only, not GP's
   default article/main padding added on top. */
.page .content-area,
.page .site-main,
.page article.page,
.page .inside-article,
.page .entry-content,
body.page .site-main,
body.page article,
.one-container .site-content,
.site-content { padding-bottom: 0 !important; margin-bottom: 0 !important; }

/* Remove GeneratePress article padding on custom page templates */
body:has(.puk-trade-page) .inside-article,
body:has(.puk-trade-page) article,
body:has(.puk-trade-page) .site-main,
body:has(.puk-trade-page) .entry-content { padding: 0 !important; margin: 0 !important; }

/* ── HERO ──────────────────────────────────────────────────────────────────── */
.puk-hero {
  background: var(--puk-hero-bg,#1A352B) !important;
  background-image: none !important;
  overflow: hidden !important;
  position: relative !important;
  margin-top: 0 !important;
  width: 100% !important;
}

/* Two-column layout */
.puk-hero-inner {
  display: grid;
  grid-template-columns: 1fr 40%;
  align-items: stretch;
  min-height: clamp(300px, 40vw, 500px);
}

/* Text column */
.puk-hero-content {
  padding: clamp(3rem,7vw,5rem) clamp(1.5rem,4vw,3rem) clamp(3rem,7vw,5rem) clamp(1.5rem,5vw,4rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Image column */
.puk-hero-image {
  position: relative;
  overflow: hidden;
  background: rgba(0,0,0,.15);
}

.puk-hero-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.puk-hero-image-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: rgba(255,255,255,.35);
  font-size: .8rem;
  font-weight: 600;
  text-align: center;
}

/* Legacy single-col hero (homepage) */
.puk-hero > .puk-container {
  padding-top: clamp(3rem,7vw,5rem);
  padding-bottom: clamp(3rem,7vw,5rem);
}

/* Hero typography */
.puk-hero h1,
.puk-hero-content h1,
.puk-hero-heading {
  color: #fff !important;
  margin: 0 0 14px !important;
  font-size: clamp(1.8rem,3.2vw,2.8rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -.02em !important;
}

.puk-hero p,
.puk-hero-content p,
.puk-hero-sub {
  color: rgba(255,255,255,.88) !important;
  font-size: clamp(.95rem,1.3vw,1.05rem) !important;
  margin: 0 0 24px !important;
  max-width: 52ch !important;
  line-height: 1.65 !important;
}

.puk-hero-eyebrow { margin-bottom: 14px; }
.puk-hero-eyebrow,
.puk-hero-eyebrow span { color: #ffffff !important; opacity: .88; }

.puk-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
  border-radius:var(--puk-radius-pill,999px);
  padding: 5px 14px 5px 10px;
  font-size: .8rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: .03em;
}

.puk-hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.puk-hero-em {
  font-style: italic;
  color: rgba(255,255,255,.85);
}

/* Hero stats strip */
.puk-hero-stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.18);
  margin-top: 28px;
  row-gap: 16px;
}

.puk-hero-stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-right: 32px;
}

.puk-hero-stat-value {
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1;
}

.puk-hero-stat-label {
  font-size: .78rem;
  color: rgba(255,255,255,.72);
  font-weight: 500;
}

.puk-hero-stat-divider {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,.2);
  margin-right: 32px;
  flex-shrink: 0;
}

/* Mobile hero */
@media (max-width: 860px) {
  .puk-hero-inner { grid-template-columns: 1fr; }
  .puk-hero-image { display: none; }
  .puk-hero-content {
    padding: clamp(2.5rem,6vw,4rem) clamp(1.5rem,5vw,3rem);
  }
  .puk-hero-stat { padding-right: 0; }
  .puk-hero-stat-divider { display: none; }
  .puk-hero-stats { gap: 20px; }
  .puk-hero-actions { flex-direction: column; align-items: flex-start; }
}

/* ── BUTTONS ────────────────────────────────────────────────────────────────── */
.puk-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 11px 22px !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .875rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  border: 2px solid transparent !important;
  transition: background .15s ease, border-color .15s ease, color .15s ease !important;
  white-space: nowrap !important;
  background: var(--puk-primary,#3f6f5f) !important;
  color: #ffffff !important;
  border-color: var(--puk-primary,#3f6f5f) !important;
}

.puk-btn:hover {
  background: var(--puk-button,#2a4a3f) !important;
  border-color: var(--puk-button,#2a4a3f) !important;
  color: #fff !important;
}

.puk-btn-small {
  padding: 7px 16px !important;
  font-size: .8rem !important;
}

/* Ghost */
.puk-btn-ghost {
  background: transparent !important;
  border-color: rgba(63,111,95,.35) !important;
  color: var(--puk-primary,#3f6f5f) !important;
}

.puk-btn-ghost:hover {
  border-color: var(--puk-primary,#3f6f5f) !important;
  background: rgba(63,111,95,.07) !important;
  color: var(--puk-button,#2a4a3f) !important;
}

/* Hero primary — white on green */
.puk-hero .puk-hero-btn-primary,
.puk-hero a.puk-hero-btn-primary {
  background: var(--puk-hero-btn-bg, #ffffff) !important;
  color: var(--puk-hero-btn-text, var(--puk-button,#2a4a3f)) !important;
  border-color: var(--puk-hero-btn-bg, #ffffff) !important;
  border-radius: var(--puk-radius-pill, 999px) !important;
  font-family: var(--puk-font, var(--puk-font,'Poppins',sans-serif)) !important;
  font-size: var(--puk-fs-sm, 14px) !important;
}

.puk-hero .puk-hero-btn-primary:hover {
  filter: brightness(0.96);
  background: var(--puk-hero-btn-bg, #ffffff) !important;
  color: var(--puk-hero-btn-text, var(--puk-button,#2a4a3f)) !important;
  border-color: var(--puk-hero-btn-bg, #ffffff) !important;
}

/* Hero ghost — white outline */
.puk-hero .puk-hero-btn-ghost,
.puk-hero a.puk-hero-btn-ghost {
  background: transparent !important;
  color: #ffffff !important;
  border: 2px solid rgba(255,255,255,.55) !important;
}

.puk-hero .puk-hero-btn-ghost:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.85) !important;
  color: #ffffff !important;
}

/* CTA band buttons */
.puk-cta-band .puk-cta-btn-primary {
  background: #ffffff !important;
  color: var(--puk-button,#2a4a3f) !important;
  border-color: #ffffff !important;
}

.puk-cta-band .puk-cta-btn-primary:hover {
  background: #f0f7f4 !important;
  color: var(--puk-button,#2a4a3f) !important;
}

.puk-cta-band .puk-cta-btn-ghost {
  background: transparent !important;
  color: #ffffff !important;
  border: 2px solid rgba(255,255,255,.5) !important;
}

.puk-cta-band .puk-cta-btn-ghost:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.8) !important;
  color: #fff !important;
}

/* ── CTA BAND ───────────────────────────────────────────────────────────────── */
.puk-cta-band {
  background: var(--puk-primary,#3f6f5f) !important;
  border-radius: var(--puk-r-xl);
  padding: clamp(2rem,4vw,3rem) clamp(1.5rem,4vw,3rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.puk-cta-band-content h2 { color: #fff; margin: 0 0 6px; font-size: clamp(1.3rem,2.5vw,1.8rem); }
.puk-cta-band-content p  { color: rgba(255,255,255,.85); margin: 0; font-size: .95rem; }

.puk-cta-band-actions { display: flex; gap: 12px; flex-wrap: wrap; flex-shrink: 0; }

/* ── FEATURE CARDS ──────────────────────────────────────────────────────────── */
.puk-feature-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

@media (max-width: 900px) { .puk-feature-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .puk-feature-row { grid-template-columns: 1fr; } }

.puk-feature-card {
  background: var(--puk-surface);
  border: 1px solid var(--puk-border);
  border-radius: var(--puk-r-xl);
  padding: clamp(18px,2.5vw,28px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s ease, transform .12s ease;
}

.puk-feature-card:hover {
  box-shadow: var(--puk-shadow-2);
  transform: translateY(-2px);
}

.puk-feature-card-icon {
  width: 44px; height: 44px; min-width: 44px; min-height: 44px;
  border-radius: var(--puk-r-md);
  background: rgba(63,111,95,.10);
  border: 1px solid rgba(63,111,95,.18);
  display: flex; align-items: center; justify-content: center;
  color: var(--puk-primary,#3f6f5f);
  flex-shrink: 0;
}

.puk-feature-card-title {
  font-weight: 700;
  font-size: 1rem;
  margin: 0;
  color: var(--puk-text);
}

.puk-feature-card-desc {
  font-size: .875rem;
  color: var(--puk-muted);
  margin: 0;
  line-height: 1.55;
  flex: 1;
}

.puk-feature-card-link {
  font-size: .875rem;
  font-weight: 650;
  color: var(--puk-primary,#3f6f5f);
  text-decoration: none;
  margin-top: auto;
}

.puk-feature-card-link:hover { color: var(--puk-button,#2a4a3f); }

/* ── ECO PRODUCT CARDS ──────────────────────────────────────────────────────── */
.puk-home-product-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 20px !important;
}

@media (max-width: 900px) { .puk-home-product-grid { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 560px) { .puk-home-product-grid { grid-template-columns: 1fr !important; } }

.puk-home-product-grid .puk-product-card {
  background: var(--puk-surface) !important;
  border: 1px solid var(--puk-border) !important;
  border-radius: var(--puk-r-xl) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: var(--puk-shadow-1) !important;
  transition: box-shadow .2s ease, transform .12s ease !important;
}

.puk-home-product-grid .puk-product-card:hover {
  box-shadow: var(--puk-shadow-2) !important;
  transform: translateY(-2px) !important;
}

.puk-product-card-img-placeholder {
  aspect-ratio: 3/2;
  background: rgba(63,111,95,.08);
  display: flex; align-items: center; justify-content: center;
  color: #6aa891;
  width: 100%;
}

.puk-product-card-body {
  padding: clamp(16px,2vw,22px);
  display: flex; flex-direction: column; gap: 8px; flex: 1;
  background: var(--puk-surface);
}

.puk-product-card-cat {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius:var(--puk-radius-pill,999px);
  background: rgba(63,111,95,.12); border: 1px solid rgba(63,111,95,.20);
  font-size: .72rem; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: #335a4c;
  width: fit-content;
}

.puk-product-card-title {
  font-size: 1rem; font-weight: 700; color: var(--puk-text);
  margin: 0; letter-spacing: -.01em; line-height: 1.25;
}

.puk-product-card-title a { color: var(--puk-text); text-decoration: none; }
.puk-product-card-title a:hover { color: var(--puk-primary,#3f6f5f); }

.puk-product-card-excerpt {
  font-size: .875rem; color: var(--puk-muted);
  line-height: 1.55; margin: 0; flex: 1;
}

.puk-product-card-cta {
  display: inline-block; margin-top: 6px;
  font-size: .875rem; font-weight: 650; color: var(--puk-primary,#3f6f5f); text-decoration: none;
}

.puk-product-card-cta:hover { color: var(--puk-button,#2a4a3f); }

/* ── CREDENTIALS STRIP ──────────────────────────────────────────────────────── */
.puk-credentials-grid {
  display: grid !important;
  grid-template-columns: repeat(4,1fr) !important;
  gap: 24px !important;
}

@media (max-width: 900px) { .puk-credentials-grid { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 480px) { .puk-credentials-grid { grid-template-columns: 1fr !important; } }

.puk-credential {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
}

.puk-credential-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important; height: 42px !important; min-width: 42px !important; min-height: 42px !important;
  border-radius: var(--puk-r-md) !important;
  background: rgba(63,111,95,.10) !important;
  border: 1px solid rgba(63,111,95,.18) !important;
  color: var(--puk-primary,#3f6f5f) !important;
  flex-shrink: 0 !important;
}

.puk-credential-icon svg { display: block; flex-shrink: 0; }

.puk-credential > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.puk-credential strong { display: block; font-size: .9rem; font-weight: 700; color: var(--puk-text); line-height: 1.3; }
.puk-credential span { display: block; font-size: .8rem; color: var(--puk-muted); line-height: 1.45; }

/* ── SECTION HEADERS ────────────────────────────────────────────────────────── */
.puk-section-header { margin-bottom: clamp(24px,3.5vw,40px); }

.puk-section-header h2 { margin: 0 0 8px; font-size: clamp(1.4rem,2.5vw,2rem); letter-spacing: -.02em; }
.puk-section-header p  { margin: 0; color: var(--puk-muted); font-size: .95rem; }

.puk-section-header--row {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 20px !important;
  flex-wrap: wrap !important;
}

.puk-section-header--row > div { flex: 1; min-width: 0; }

/* ── CARDS ──────────────────────────────────────────────────────────────────── */
.puk-card {
  background: var(--puk-bg);
  border: 1px solid var(--puk-border);
  border-radius: var(--puk-r-xl);
  padding: clamp(18px,2.5vw,24px);
  box-shadow: var(--puk-shadow-1);
}

/* ── TRADE PAGE HERO BADGE ──────────────────────────────────────────────────── */
.puk-trade-hero {
  color: #fff;
}

.puk-trade-hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25);
  border-radius:var(--puk-radius-pill,999px); padding: 5px 14px 5px 10px;
  font-size: .8rem; font-weight: 700; color: #fff; letter-spacing: .03em; margin-bottom: 16px;
}

.puk-trade-hero h1 { color: #fff; font-size: clamp(1.6rem,3vw,2.2rem); margin: 0 0 12px; }
.puk-trade-hero > p { color: rgba(255,255,255,.88); margin: 0 0 24px; max-width: 56ch; }

.puk-trade-benefits-row {
  display: flex; flex-wrap: wrap; gap: 0;
  border-top: 1px solid rgba(255,255,255,.20); padding-top: 20px;
}

.puk-trade-benefit {
  display: flex; flex-direction: column; gap: 2px;
  padding: 0 24px 0 0; margin-right: 24px;
  border-right: 1px solid rgba(255,255,255,.20);
}

.puk-trade-benefit:last-child { border-right: none; margin-right: 0; }
.puk-trade-benefit strong { font-size: 1.15rem; font-weight: 800; color: #fff; line-height: 1; }
.puk-trade-benefit span   { font-size: .78rem; color: rgba(255,255,255,.75); font-weight: 500; }

/* ── TRADE PRICING ──────────────────────────────────────────────────────────── */
.puk-trade-price-wrap { display: flex; flex-direction: column; gap: 4px; }

.puk-price-trade {
  display: flex; align-items: center; gap: 8px;
  font-size: 1.5rem; font-weight: 750; color: var(--puk-primary,#3f6f5f);
}

.puk-trade-badge {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius:var(--puk-radius-pill,999px);
  background: rgba(63,111,95,.12); border: 1px solid rgba(63,111,95,.22);
  font-size: .7rem; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: #335a4c;
}

.puk-price-rrp { font-size: .9rem; color: var(--puk-muted-2); }
.puk-price-rrp del { text-decoration: line-through; color: var(--puk-muted-2); }

.puk-price-trade-teaser { display: block; margin-top: 4px; }

.puk-trade-teaser-link {
  font-size: .82rem; font-weight: 650; color: var(--puk-primary,#3f6f5f);
  border-bottom: 1px dashed rgba(63,111,95,.35);
}

.puk-trade-teaser-link:hover { color: var(--puk-button,#2a4a3f); border-bottom-color: var(--puk-button,#2a4a3f); }

/* ── SUPPLIER DIRECTORY ─────────────────────────────────────────────────────── */
.puk-supplier-dir-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 20px;
}

@media (max-width: 1000px) { .puk-supplier-dir-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px)  { .puk-supplier-dir-grid { grid-template-columns: 1fr; } }

.puk-supplier-card {
  display: flex; flex-direction: column; gap: 14px;
  transition: box-shadow .2s ease, transform .12s ease;
}

.puk-supplier-card:hover { box-shadow: var(--puk-shadow-2) !important; transform: translateY(-2px); }

.puk-supplier-card-header { display: flex; align-items: center; gap: 14px; }

.puk-supplier-card-avatar {
  width: 48px; height: 48px; min-width: 48px;
  border-radius: var(--puk-r-md);
  background: linear-gradient(135deg, var(--puk-primary,#3f6f5f), #6aa891);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: .9rem; font-weight: 800; letter-spacing: .02em;
}

.puk-supplier-card-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.puk-supplier-card-name { font-size: 1rem; font-weight: 700; margin: 0; color: var(--puk-text); }
.puk-supplier-card-location { display: flex; align-items: center; gap: 4px; font-size: .78rem; color: var(--puk-muted); }
.puk-supplier-card-about { font-size: .875rem; color: var(--puk-muted); margin: 0; line-height: 1.5; flex: 1; }

.puk-supplier-card-creds { display: flex; flex-wrap: wrap; gap: 6px; }

.puk-supplier-cred-badge {
  display: inline-flex; align-items: center; padding: 3px 10px; border-radius:var(--puk-radius-pill,999px);
  background: rgba(63,111,95,.10); border: 1px solid rgba(63,111,95,.18);
  font-size: .72rem; font-weight: 700; color: #335a4c; letter-spacing: .03em; white-space: nowrap;
}

.puk-supplier-cred-more { background: var(--puk-surface-2); border-color: var(--puk-border); color: var(--puk-muted); }

.puk-supplier-card-stats {
  display: flex; gap: 16px; padding: 12px 0;
  border-top: 1px solid var(--puk-border); border-bottom: 1px solid var(--puk-border);
}

.puk-supplier-stat { display: flex; flex-direction: column; gap: 2px; }
.puk-supplier-stat-label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--puk-muted-2); }
.puk-supplier-stat-value { font-size: .875rem; font-weight: 600; color: var(--puk-text); }
.puk-supplier-card-regions { font-size: .8rem; color: var(--puk-muted); }
.puk-supplier-regions-label { font-weight: 600; color: var(--puk-text); }
.puk-supplier-card-cta { display: flex; gap: 8px; margin-top: auto; }
.puk-supplier-dir-empty { text-align: center; padding: clamp(24px,4vw,48px); }

/* ── DASHBOARD / PORTAL SHELL ───────────────────────────────────────────────── */
.puk-dash-shell {
  display: flex; min-height: 100vh;
  background: var(--puk-surface);
}

.puk-dash-sidebar {
  width: 240px; min-width: 240px;
  background: var(--puk-button,#2a4a3f);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
  overflow-y: auto;
}

.puk-dash-brand {
  padding: 20px 20px 12px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.puk-dash-brand-name { color: #fff; font-weight: 800; font-size: 1rem; text-decoration: none; }

.puk-dash-nav { padding: 12px 10px; flex: 1; }
.puk-dash-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }

.puk-dash-nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: var(--puk-r-md);
  font-size: .875rem; font-weight: 600; color: rgba(255,255,255,.75);
  text-decoration: none; transition: background .15s, color .15s;
}

.puk-dash-nav-item:hover { background: rgba(255,255,255,.1); color: #fff; }
.puk-dash-nav-item.is-active { background: rgba(255,255,255,.18); color: #fff; }

.puk-dash-sidebar-footer {
  padding: 12px 10px;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex; flex-direction: column; gap: 2px;
}

.puk-dash-sidebar-link {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 12px; border-radius: var(--puk-r-md);
  font-size: .82rem; color: rgba(255,255,255,.6); text-decoration: none;
  transition: color .15s, background .15s;
}

.puk-dash-sidebar-link:hover { color: rgba(255,255,255,.9); background: rgba(255,255,255,.08); }
.puk-dash-logout:hover { color: #ffaaaa; }

.puk-dash-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.puk-dash-topbar {
  height: 60px; background: #fff; border-bottom: 1px solid var(--puk-border);
  display: flex; align-items: center; gap: 16px; padding: 0 28px;
  position: sticky; top: 0; z-index: 10;
}

.puk-dash-topbar-title { font-weight: 700; font-size: 1rem; flex: 1; }
.puk-dash-topbar-right { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.puk-dash-greeting { font-size: .875rem; color: var(--puk-muted); }

.puk-dash-menu-toggle {
  display: none; background: none; border: none;
  cursor: pointer; padding: 6px; color: var(--puk-text);
}

.puk-dash-avatar-link img, .puk-dash-avatar {
  width: 34px; height: 34px; border-radius:var(--puk-radius-pill,999px); object-fit: cover;
}

.puk-dash-content { padding: clamp(20px,3vw,32px); flex: 1; }

.puk-dash-section { max-width: 1100px; }
.puk-dash-page-title { font-size: clamp(1.3rem,2.5vw,1.8rem); font-weight: 800; margin: 0 0 4px; letter-spacing: -.02em; }
.puk-dash-page-sub { margin: 0 0 24px; color: var(--puk-muted); font-size: .9rem; }

/* Dashboard grid */
.puk-admin-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 16px; margin-bottom: 20px; }
.puk-col-4 { grid-column: span 4; }
.puk-col-6 { grid-column: span 6; }
.puk-col-8 { grid-column: span 8; }
.puk-col-12 { grid-column: span 12; }

@media (max-width: 900px) {
  .puk-col-4, .puk-col-6, .puk-col-8 { grid-column: span 12; }
}

.puk-admin-card {
  background: #fff; border: 1px solid var(--puk-border);
  border-radius: var(--puk-r-xl); padding: clamp(16px,2.5vw,24px);
  box-shadow: var(--puk-shadow-1);
}

.puk-kpi { display: flex; flex-direction: column; gap: 4px; }
.puk-kpi-label { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--puk-muted-2); }
.puk-kpi-value { font-size: 2rem; font-weight: 800; color: var(--puk-primary,#3f6f5f); letter-spacing: -.03em; line-height: 1; }
.puk-kpi-sub { font-size: .8rem; color: var(--puk-muted); }

.puk-dash-kpi-row { margin-bottom: 24px; }

.puk-dash-card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.puk-dash-card-title { font-size: 1rem; font-weight: 700; margin: 0; }
.puk-dash-card-link { font-size: .82rem; font-weight: 600; color: var(--puk-primary,#3f6f5f); text-decoration: none; }
.puk-dash-card-link:hover { color: var(--puk-button,#2a4a3f); }
.puk-dash-empty { color: var(--puk-muted); font-size: .9rem; padding: 16px 0; }

/* Tables */
.puk-table-wrap { overflow-x: auto; }
.puk-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.puk-table th { text-align: left; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--puk-muted-2); padding: 8px 12px; border-bottom: 1px solid var(--puk-border); }
.puk-table td { padding: 10px 12px; border-bottom: 1px solid var(--puk-border); vertical-align: middle; }
.puk-table tr:last-child td { border-bottom: none; }

/* Status badges */
.puk-status-badge {
  display: inline-block; padding: 3px 10px; border-radius:var(--puk-radius-pill,999px);
  font-size: .72rem; font-weight: 700; text-transform: capitalize;
}

.puk-status-completed, .puk-status-processing { background: rgba(63,111,95,.12); color: #335a4c; }
.puk-status-pending, .puk-status-on-hold     { background: rgba(234,179,8,.12); color: #a16207; }
.puk-status-cancelled, .puk-status-failed    { background: rgba(220,38,38,.10); color: #b91c1c; }

/* Mobile sidebar */
@media (max-width: 768px) {
  .puk-dash-sidebar {
    position: fixed; left: -240px; top: 0; height: 100vh; z-index: 200;
    transition: left .25s ease; box-shadow: none;
  }
  .puk-dash-sidebar.is-open { left: 0; box-shadow: 4px 0 24px rgba(0,0,0,.18); }
  .puk-dash-menu-toggle { display: flex; }
}

/* ── QUOTE FORMS ────────────────────────────────────────────────────────────── */
.puk-quote-shell {
  min-height: 100vh; display: flex; flex-direction: column;
  background: var(--puk-surface);
}

.puk-quote-header {
  height: var(--puk-header-height); background: #fff;
  border-bottom: 1px solid var(--puk-border);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(16px,4vw,40px);
  position: sticky; top: 0; z-index: 10;
}

.puk-quote-brand { font-weight: 800; font-size: 1.1rem; color: var(--puk-text); text-decoration: none; }
.puk-quote-back  { font-size: .875rem; color: var(--puk-muted); text-decoration: none; }
.puk-quote-back:hover { color: var(--puk-text); }

.puk-quote-main { flex: 1; display: flex; justify-content: center; padding: clamp(24px,4vw,48px) clamp(16px,4vw,40px); }
.puk-quote-wrap { width: 100%; max-width: 720px; }

.puk-quote-form { display: flex; flex-direction: column; gap: 0; }

.puk-quote-fieldset {
  border: none; padding: 0; margin: 0 0 24px;
}

.puk-quote-fieldset legend {
  font-size: 1rem; font-weight: 700; color: var(--puk-text);
  margin-bottom: 14px; padding: 0;
}

.puk-quote-field { display: flex; flex-direction: column; gap: 6px; }
.puk-quote-field label { font-size: .875rem; font-weight: 600; color: var(--puk-text); }
.puk-quote-field label abbr { text-decoration: none; color: var(--puk-primary,#3f6f5f); }

.puk-quote-field input,
.puk-quote-field select,
.puk-quote-field textarea {
  width: 100%; padding: 10px 14px;
  border: 1.5px solid var(--puk-border);
  border-radius: var(--puk-r-md);
  font-family: var(--puk-font,'Poppins',sans-serif); font-size: .875rem;
  background: #fff; color: var(--puk-text);
  transition: border-color .15s;
}

.puk-quote-field input:focus,
.puk-quote-field select:focus,
.puk-quote-field textarea:focus {
  outline: none; border-color: var(--puk-primary,#3f6f5f);
  box-shadow: 0 0 0 3px rgba(63,111,95,.12);
}

.puk-quote-row { display: grid; gap: 14px; }
.puk-quote-row--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .puk-quote-row--2 { grid-template-columns: 1fr; } }

.puk-quote-submit-row {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding-top: 8px;
}

.puk-quote-privacy { font-size: .78rem; color: var(--puk-muted); }
.puk-quote-privacy a { color: var(--puk-primary,#3f6f5f); }

.puk-quote-errors {
  background: rgba(220,38,38,.08); border: 1px solid rgba(220,38,38,.20);
  border-radius: var(--puk-r-md); padding: 14px 18px; margin-bottom: 20px;
}

.puk-quote-errors strong { color: #b91c1c; display: block; margin-bottom: 8px; }
.puk-quote-errors ul { margin: 0; padding-left: 18px; font-size: .875rem; }

.puk-quote-success { text-align: center; padding: clamp(32px,5vw,56px); max-width: 480px; margin: 0 auto; }
.puk-quote-success-icon { color: var(--puk-primary,#3f6f5f); margin-bottom: 20px; }
.puk-quote-success h1 { font-size: 1.6rem; margin: 0 0 12px; }
.puk-quote-success p  { color: var(--puk-muted); margin: 0 0 12px; }
.puk-quote-success-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 24px; }

/* ── FOOTER ─────────────────────────────────────────────────────────────────── */
.puk-footer {
  background: var(--puk-button,#2a4a3f);
  color: rgba(255,255,255,.80);
  padding: clamp(40px,6vw,72px) 0 0;
}

/* Footer grid — 20% / 20% / 20% / 40% */
.puk-footer-grid {
  display: flex;
  width: 100%;
  gap: clamp(24px,3vw,40px);
  margin-bottom: clamp(32px,4vw,48px);
  align-items: flex-start;
}

.puk-footer-col { flex-shrink: 0; }
.puk-footer-col[style*="width:20%"] { width: 20%; }
.puk-footer-newsletter-col { flex: 1; }

@media (max-width: 900px) {
  .puk-footer-grid { flex-wrap: wrap; }
  .puk-footer-col[style*="width:20%"],
  .puk-footer-newsletter-col { width: 100% !important; flex: none; }
}

.puk-footer a { color: rgba(255,255,255,.72); text-decoration: none; }
.puk-footer a:hover { color: #fff; }

.puk-footer h4 {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: rgba(255,255,255,.50);
  margin: 0 0 16px; display: block;
}

.puk-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.puk-footer ul li a { font-size: .875rem; color: rgba(255,255,255,.72); }
.puk-footer ul li a:hover { color: #fff; }

.puk-footer-newsletter-col p {
  font-size: .875rem; color: rgba(255,255,255,.65);
  margin: 0 0 16px; line-height: 1.6;
}

/* Newsletter — underline input style */
.puk-footer-newsletter-row {
  display: flex; align-items: center; gap: 12px;
}
.puk-footer-newsletter input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.35);
  border-radius: 0;
  padding: 8px 0;
  color: #fff;
  font-family: var(--puk-font,'Poppins',sans-serif);
  font-size: .875rem;
  outline: none;
}
.puk-footer-newsletter input[type="email"]::placeholder { color: rgba(255,255,255,.40); }
.puk-footer-newsletter input[type="email"]:focus { border-bottom-color: #fff; }

.puk-footer-newsletter button[type="submit"] {
  flex-shrink: 0;
  padding: 10px 22px;
  border-radius:var(--puk-radius-pill,999px);
  background: var(--puk-primary,#3f6f5f);
  color: #fff;
  border: none;
  font-family: var(--puk-font,'Poppins',sans-serif);
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s;
  white-space: nowrap;
}
.puk-footer-newsletter button[type="submit"]:hover { background: #5a9e88; }

/* Bottom bar */
.puk-footer-bottom {
  border-top: 1px solid rgba(255,255,255,.10);
  padding: 20px 0 clamp(20px,3vw,32px);
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  font-size: .8rem; color: rgba(255,255,255,.45);
}
.puk-footer-copy { color: rgba(255,255,255,.45); }

/* Social icons — bottom right */
.puk-footer-social {
  display: flex; align-items: center; gap: 14px; margin-left: auto;
}
.puk-social {
  color: rgba(255,255,255,.55); display: flex; align-items: center;
  transition: color .15s;
}
.puk-social:hover { color: #fff; }


/* ── WOOCOMMERCE ─────────────────────────────────────────────────────────────── */
.woocommerce-page .site-main,
.woocommerce .site-main { padding-top: clamp(2rem,4vw,3rem) !important; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-weight: 700 !important;
  border: none !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--puk-button,#2a4a3f) !important;
  color: #fff !important;
}

.woocommerce span.onsale { background: var(--puk-primary,#3f6f5f) !important; }

/* ── DARK MODE ───────────────────────────────────────────────────────────────── */
html.puk-dark .puk-admin-card,
html.puk-dark .puk-card { background: var(--puk-surface-2); border-color: var(--puk-border); }

html.puk-dark .puk-dash-topbar,
html.puk-dark .puk-quote-header { background: #161d1a; border-color: var(--puk-border); }

html.puk-dark .puk-quote-field input,
html.puk-dark .puk-quote-field select,
html.puk-dark .puk-quote-field textarea { background: #1e2a25; border-color: var(--puk-border); color: var(--puk-text); }

html.puk-dark .puk-supplier-cred-badge { background: rgba(63,111,95,.15); border-color: rgba(63,111,95,.25); color: #8fc4b4; }
html.puk-dark .puk-trade-badge         { background: rgba(63,111,95,.15); border-color: rgba(63,111,95,.25); color: #8fc4b4; }
html.puk-dark .puk-price-trade         { color: #8fc4b4; }
html.puk-dark .puk-kpi-value           { color: #8fc4b4; }

/* ================================================================
   UNIVERSAL CTA BAND — rounded all 4 corners (consistent sitewide)
================================================================ */
.puk-cta-band,
.puk-blog-cta-band,
.puk-trade-cta-band,
.puk-sup-cta-band,
.puk-pp-final-cta,
.puk-hp-final-cta {
  border-radius:var(--puk-radius,20px) !important;
  overflow: hidden;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: clamp(24px,4vw,40px);
}

/* ================================================================
   DARK MODE — comprehensive override
   Targets both CSS-variable elements and hardcoded-white elements
================================================================ */

html.puk-dark,
html[data-puk-theme="dark"] {
  --puk-bg:         #0e1512;
  --puk-surface:    #141e1a;
  --puk-surface-2:  #1a2820;
  --puk-text:       #e8f0ec;
  --puk-muted:      rgba(232,240,236,.60);
  --puk-muted-2:    rgba(232,240,236,.38);
  --puk-border:     rgba(255,255,255,.10);
  --puk-shadow-1:   0 10px 24px rgba(0,0,0,.35);
  --puk-shadow-2:   0 18px 44px rgba(0,0,0,.50);
}

/* ── Base ── */
html.puk-dark body,
html[data-puk-theme="dark"] body {
  background: var(--puk-bg);
  color: var(--puk-text);
}

/* ── Navigation ── */
html.puk-dark .site-header,
html[data-puk-theme="dark"] .site-header {
  background: rgba(14,21,18,.97) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.3) !important;
}
html.puk-dark .main-navigation a,
html[data-puk-theme="dark"] .main-navigation a {
  color: rgba(232,240,236,.82) !important;
}
html.puk-dark .main-navigation a:hover,
html[data-puk-theme="dark"] .main-navigation a:hover {
  color: #8fc4b4 !important;
}
html.puk-dark .site-branding a,
html[data-puk-theme="dark"] .site-branding a {
  color: #e8f0ec !important;
}

/* ── All white/light card surfaces ── */
html.puk-dark .puk-hp-product-cat,
html.puk-dark .puk-hp-about-big-stat,
html.puk-dark .puk-hp-testimonial,
html.puk-dark .puk-hp-float-card,
html.puk-dark .puk-hp-trade-card,
html.puk-dark .puk-hp-blog-card,
html.puk-dark .puk-hp-eco-card,
html.puk-dark .puk-hp-cred-card,
html.puk-dark .puk-trade-ben-card,
html.puk-dark .puk-trade-faq,
html.puk-dark .puk-blog-card,
html.puk-dark .puk-blog-featured-card,
html.puk-dark .puk-contact-direct,
html.puk-dark .puk-contact-info-card,
html.puk-dark .puk-sup-cred-item,
html.puk-dark .puk-pp-cat-card,
html.puk-dark .puk-pp-cred-card,
html.puk-dark .puk-rq-fieldset,
html.puk-dark .puk-rq-info-card,
html[data-puk-theme="dark"] .puk-hp-product-cat,
html[data-puk-theme="dark"] .puk-hp-about-big-stat,
html[data-puk-theme="dark"] .puk-hp-testimonial,
html[data-puk-theme="dark"] .puk-hp-float-card,
html[data-puk-theme="dark"] .puk-hp-trade-card,
html[data-puk-theme="dark"] .puk-hp-blog-card,
html[data-puk-theme="dark"] .puk-hp-eco-card,
html[data-puk-theme="dark"] .puk-hp-cred-card,
html[data-puk-theme="dark"] .puk-trade-ben-card,
html[data-puk-theme="dark"] .puk-trade-faq,
html[data-puk-theme="dark"] .puk-blog-card,
html[data-puk-theme="dark"] .puk-blog-featured-card,
html[data-puk-theme="dark"] .puk-contact-direct,
html[data-puk-theme="dark"] .puk-contact-info-card,
html[data-puk-theme="dark"] .puk-sup-cred-item,
html[data-puk-theme="dark"] .puk-pp-cat-card,
html[data-puk-theme="dark"] .puk-pp-cred-card,
html[data-puk-theme="dark"] .puk-rq-fieldset,
html[data-puk-theme="dark"] .puk-rq-info-card {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
  color: var(--puk-text) !important;
}

/* ── Text inside cards ── */
html.puk-dark .puk-hp-product-cat strong,
html.puk-dark .puk-hp-product-cat span,
html.puk-dark .puk-trade-ben-card h3,
html.puk-dark .puk-trade-ben-card p,
html.puk-dark .puk-blog-card-title a,
html.puk-dark .puk-blog-card-excerpt,
html.puk-dark .puk-blog-featured-body h2,
html.puk-dark .puk-blog-featured-body p,
html.puk-dark .puk-contact-direct-val,
html.puk-dark .puk-contact-info-card strong,
html.puk-dark .puk-contact-info-card p,
html.puk-dark .puk-rq-legend,
html.puk-dark .puk-rq-steps strong,
html[data-puk-theme="dark"] .puk-hp-product-cat strong,
html[data-puk-theme="dark"] .puk-hp-product-cat span,
html[data-puk-theme="dark"] .puk-trade-ben-card h3,
html[data-puk-theme="dark"] .puk-trade-ben-card p,
html[data-puk-theme="dark"] .puk-blog-card-title a,
html[data-puk-theme="dark"] .puk-blog-card-excerpt,
html[data-puk-theme="dark"] .puk-blog-featured-body h2,
html[data-puk-theme="dark"] .puk-blog-featured-body p,
html[data-puk-theme="dark"] .puk-contact-direct-val,
html[data-puk-theme="dark"] .puk-contact-info-card strong,
html[data-puk-theme="dark"] .puk-contact-info-card p,
html[data-puk-theme="dark"] .puk-rq-legend,
html[data-puk-theme="dark"] .puk-rq-steps strong {
  color: var(--puk-text) !important;
}

/* ── Form inputs ── */
html.puk-dark input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
html.puk-dark textarea,
html.puk-dark select,
html[data-puk-theme="dark"] input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
html[data-puk-theme="dark"] textarea,
html[data-puk-theme="dark"] select {
  background: var(--puk-surface) !important;
  color: var(--puk-text) !important;
  border-color: var(--puk-border) !important;
}
html.puk-dark input::placeholder,
html.puk-dark textarea::placeholder,
html[data-puk-theme="dark"] input::placeholder,
html[data-puk-theme="dark"] textarea::placeholder {
  color: var(--puk-muted-2) !important;
}

/* ── Page sections with explicit white background ── */
html.puk-dark .puk-section,
html.puk-dark section.puk-section,
html[data-puk-theme="dark"] .puk-section,
html[data-puk-theme="dark"] section.puk-section {
  background: var(--puk-bg) !important;
}
/* Surface-coloured sections (#f4f8f6) */
html.puk-dark [style*="background:var(--puk-surface)"],
html.puk-dark [style*="background: var(--puk-surface)"],
html[data-puk-theme="dark"] [style*="background:var(--puk-surface)"],
html[data-puk-theme="dark"] [style*="background: var(--puk-surface)"] {
  background: var(--puk-surface) !important;
}
/* Inline white backgrounds */
html.puk-dark [style*="background:#fff"],
html.puk-dark [style*="background: #fff"],
html.puk-dark [style*="background:#ffffff"],
html[data-puk-theme="dark"] [style*="background:#fff"],
html[data-puk-theme="dark"] [style*="background: #fff"],
html[data-puk-theme="dark"] [style*="background:#ffffff"] {
  background: var(--puk-bg) !important;
}

/* ── Blog controls bar ── */
html.puk-dark .puk-blog-controls,
html[data-puk-theme="dark"] .puk-blog-controls {
  background: var(--puk-bg) !important;
  border-bottom-color: var(--puk-border) !important;
}
html.puk-dark .puk-blog-search-wrap,
html[data-puk-theme="dark"] .puk-blog-search-wrap {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
}
html.puk-dark .puk-blog-cat-tab,
html[data-puk-theme="dark"] .puk-blog-cat-tab {
  color: var(--puk-muted) !important;
}
html.puk-dark .puk-blog-cat-tab.is-active,
html[data-puk-theme="dark"] .puk-blog-cat-tab.is-active {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
  color: #8fc4b4 !important;
}

/* ── FAQ accordion ── */
html.puk-dark .puk-trade-faq-q,
html[data-puk-theme="dark"] .puk-trade-faq-q {
  color: var(--puk-text) !important;
  background: var(--puk-surface) !important;
}
html.puk-dark .puk-trade-faq-a p,
html[data-puk-theme="dark"] .puk-trade-faq-a p {
  color: var(--puk-muted) !important;
}

/* ── Eco printing product grid ── */
html.puk-dark .puk-pp-controls,
html[data-puk-theme="dark"] .puk-pp-controls {
  background: var(--puk-bg) !important;
  border-bottom-color: var(--puk-border) !important;
}
html.puk-dark .puk-pp-search-wrap,
html[data-puk-theme="dark"] .puk-pp-search-wrap {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
}
html.puk-dark .puk-pp-filter-btn,
html[data-puk-theme="dark"] .puk-pp-filter-btn {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
  color: var(--puk-text) !important;
}
html.puk-dark .puk-pp-product-card,
html[data-puk-theme="dark"] .puk-pp-product-card {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
}

/* ── Supplier directory ── */
html.puk-dark .puk-supplier-card,
html[data-puk-theme="dark"] .puk-supplier-card {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
}

/* ── Pagination ── */
html.puk-dark .puk-blog-page-num,
html.puk-dark .puk-blog-page-btn,
html.puk-dark .puk-pp-page-num,
html.puk-dark .puk-pp-page-btn,
html[data-puk-theme="dark"] .puk-blog-page-num,
html[data-puk-theme="dark"] .puk-blog-page-btn,
html[data-puk-theme="dark"] .puk-pp-page-num,
html[data-puk-theme="dark"] .puk-pp-page-btn {
  background: var(--puk-surface) !important;
  border-color: var(--puk-border) !important;
  color: var(--puk-text) !important;
}

/* ── Footer ── */
html.puk-dark .site-footer,
html[data-puk-theme="dark"] .site-footer {
  background: #080f0c !important;
  color: rgba(232,240,236,.75) !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
}
html.puk-dark .site-footer a,
html[data-puk-theme="dark"] .site-footer a {
  color: rgba(232,240,236,.65) !important;
}
html.puk-dark .site-footer a:hover,
html[data-puk-theme="dark"] .site-footer a:hover {
  color: #8fc4b4 !important;
}

/* ── Contact page info cards background fix ── */
html.puk-dark .puk-contact-info-card,
html[data-puk-theme="dark"] .puk-contact-info-card {
  background: var(--puk-surface) !important;
}
html.puk-dark .puk-rq-contact-card,
html[data-puk-theme="dark"] .puk-rq-contact-card {
  background: rgba(63,111,95,.15) !important;
  border-color: rgba(63,111,95,.25) !important;
}

/* ── Headings ── */
html.puk-dark h1, html.puk-dark h2, html.puk-dark h3,
html.puk-dark h4, html.puk-dark h5, html.puk-dark h6,
html[data-puk-theme="dark"] h1, html[data-puk-theme="dark"] h2,
html[data-puk-theme="dark"] h3, html[data-puk-theme="dark"] h4,
html[data-puk-theme="dark"] h5, html[data-puk-theme="dark"] h6 {
  color: var(--puk-text) !important;
}

/* ── Error/validation colours stay readable ── */
html.puk-dark .puk-rq-errors,
html[data-puk-theme="dark"] .puk-rq-errors {
  background: rgba(220,38,38,.12) !important;
  border-color: rgba(220,38,38,.3) !important;
}

/* ── Green hero sections, CTA bands, strips stay as-is ──
   These use the brand green and look great in both modes */

/* ── Dark/Light mode toggle switch ── */
.puk-theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius:var(--puk-radius-pill,999px);
  background: var(--puk-surface);
  border: 1.5px solid var(--puk-border);
  cursor: pointer;
  transition: background .2s, border-color .2s;
  line-height: 1;
  /* Match nav font size exactly */
  font-family: var(--puk-font,'Poppins',sans-serif);
  font-size: .875rem;
  font-weight: 500;
  color: var(--puk-text);
}
.puk-theme-toggle:hover {
  background: var(--puk-surface-2);
  border-color: rgba(63,111,95,.4);
}

/* Sun icon */
.puk-toggle-sun {
  color: #f59e0b;
  flex-shrink: 0;
  transition: opacity .2s;
}
html.puk-dark .puk-toggle-sun,
html[data-puk-theme="dark"] .puk-toggle-sun { opacity: .35; }

/* Moon icon */
.puk-toggle-moon {
  color: var(--puk-green-500);
  flex-shrink: 0;
  transition: opacity .2s;
}
html:not(.puk-dark) .puk-toggle-moon,
html[data-puk-theme="light"] .puk-toggle-moon { opacity: .35; }

/* Toggle track (pill switch) */
.puk-toggle-track {
  position: relative;
  width: 36px;
  height: 20px;
  border-radius:var(--puk-radius-pill,999px);
  background: var(--puk-green-700);
  transition: background .2s;
  flex-shrink: 0;
}
html.puk-dark .puk-toggle-track,
html[data-puk-theme="dark"] .puk-toggle-track {
  background: var(--puk-green-500);
}

/* Toggle thumb */
.puk-toggle-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius:var(--puk-radius-pill,999px);
  background: #fff;
  transition: transform .2s cubic-bezier(.34,1.56,.64,1);
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
html.puk-dark .puk-toggle-thumb,
html[data-puk-theme="dark"] .puk-toggle-thumb {
  transform: translateX(16px);
}

/* Position in header — top-right, vertically centred */
.puk-theme-toggle--header {
  position: absolute;
  right: clamp(16px, 3vw, 40px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 200;
}

/* Admin bar version */
.puk-theme-toggle--adminbar {
  margin: 0 4px;
  transform: translateY(2px);
}

/* Hide old fixed version */
.puk-theme-toggle--fixed { display: none !important; }

/* Header needs position:relative for absolute child */
.site-header .inside-header,
.site-header .site-header-section {
  position: relative;
}

/* ================================================================
   LEGAL PAGES — Privacy Policy, T&Cs, Cookie Policy
================================================================ */

/* Hero meta row */
.puk-legal-hero-meta { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:16px; }
.puk-legal-hero-meta span { display:flex; align-items:center; gap:6px; font-size:.8rem; color:rgba(255,255,255,.75); font-weight:500; }
.puk-legal-hero-meta svg { color:rgba(255,255,255,.55); flex-shrink:0; }

/* Doc switcher strip */
.puk-legal-strip { background:var(--puk-button,#2a4a3f); padding:0; border-radius:0 0 var(--puk-radius,6px) var(--puk-radius,6px); overflow:hidden; }
.puk-legal-strip-inner { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0; }
.puk-legal-strip-tab { display:flex; align-items:center; padding:14px 28px; font-size:.82rem; font-weight:600; color:rgba(255,255,255,.65); text-decoration:none; border-bottom:3px solid transparent; transition:color .15s,border-color .15s; }
.puk-legal-strip-tab:hover { color:#fff; }
.puk-legal-strip-tab.is-active { color:#fff; border-bottom-color:#6aa891; }
@media(max-width:600px){ .puk-legal-strip-tab { padding:12px 16px; font-size:.75rem; } }

/* Layout */
.puk-legal-body   { padding-top:clamp(2rem,4vw,3rem); }
.puk-legal-layout { display:grid; grid-template-columns:1fr 240px; gap:clamp(24px,4vw,48px); align-items:start; }
@media(max-width:820px){ .puk-legal-layout { grid-template-columns:1fr; } }

/* Intro card */
.puk-legal-intro-card { display:flex; align-items:flex-start; gap:14px; padding:18px 20px; border-radius:var(--puk-radius,16px); background:rgba(63,111,95,.07); border:1px solid rgba(63,111,95,.18); margin-bottom:32px; }
.puk-legal-intro-card svg { color:var(--puk-primary,#3f6f5f); flex-shrink:0; margin-top:2px; }
.puk-legal-intro-card strong { display:block; font-size:.9rem; font-weight:700; color:var(--puk-text); margin-bottom:4px; }
.puk-legal-intro-card p { font-size:.82rem; color:var(--puk-muted); margin:0; line-height:1.6; }
html.puk-dark .puk-legal-intro-card,
html[data-puk-theme="dark"] .puk-legal-intro-card { background:rgba(63,111,95,.12)!important; }

/* Sections */
.puk-legal-section { margin-bottom:clamp(28px,4vw,44px); padding-bottom:clamp(28px,4vw,44px); border-bottom:1px solid var(--puk-border); }
.puk-legal-section:last-child { border-bottom:none; }

.puk-legal-section h2 { font-size:1.15rem; font-weight:800; margin:0 0 16px; color:var(--puk-text); display:flex; align-items:center; gap:10px; letter-spacing:-.015em; }
.puk-legal-section h3 { font-size:.95rem; font-weight:700; margin:20px 0 10px; color:var(--puk-text); }
.puk-legal-section p  { font-size:.875rem; color:var(--puk-muted); line-height:1.8; margin:0 0 12px; }
.puk-legal-section p:last-child { margin:0; }
.puk-legal-section a  { color:var(--puk-primary,#3f6f5f); text-decoration:underline; text-underline-offset:2px; text-decoration-color:rgba(63,111,95,.4); }
.puk-legal-section a:hover { color:var(--puk-button,#2a4a3f); }
.puk-legal-section ul { margin:0 0 14px 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.puk-legal-section ul li { display:flex; align-items:flex-start; gap:10px; font-size:.875rem; color:var(--puk-muted); line-height:1.65; padding:8px 12px; background:var(--puk-surface); border-radius:var(--puk-radius-input,10px); border:1px solid var(--puk-border); }
.puk-legal-section ul li::before { content:''; width:6px; height:6px; border-radius:var(--puk-radius-pill,999px); background:var(--puk-primary,#3f6f5f); flex-shrink:0; margin-top:8px; }
html.puk-dark .puk-legal-section ul li,
html[data-puk-theme="dark"] .puk-legal-section ul li { background:var(--puk-surface-2)!important; }

/* Section number badge */
.puk-legal-num { width:28px; height:28px; min-width:28px; border-radius:var(--puk-radius-input,8px); background:rgba(63,111,95,.10); border:1px solid rgba(63,111,95,.2); display:inline-flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:800; color:var(--puk-primary,#3f6f5f); flex-shrink:0; }
html.puk-dark .puk-legal-num,
html[data-puk-theme="dark"] .puk-legal-num { background:rgba(106,168,145,.15)!important; color:#8fc4b4!important; }

/* Legal basis note */
.puk-legal-basis { font-size:.78rem!important; color:var(--puk-primary,#3f6f5f)!important; background:rgba(63,111,95,.06); border-left:3px solid rgba(63,111,95,.3); padding:8px 12px!important; border-radius:0 var(--puk-radius,6px) var(--puk-radius,6px) 0; margin-top:8px!important; }
html.puk-dark .puk-legal-basis,
html[data-puk-theme="dark"] .puk-legal-basis { color:#8fc4b4!important; background:rgba(63,111,95,.12)!important; }

/* Detail grid (who we are) */
.puk-legal-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
@media(max-width:600px){ .puk-legal-detail-grid { grid-template-columns:1fr; } }
.puk-legal-detail { padding:12px 14px; background:var(--puk-surface); border:1px solid var(--puk-border); border-radius:var(--puk-radius-input,12px); }
.puk-legal-detail span { display:block; font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--puk-muted-2); margin-bottom:4px; }
.puk-legal-detail strong { display:block; font-size:.875rem; font-weight:700; color:var(--puk-text); }
.puk-legal-detail a { color:var(--puk-primary,#3f6f5f); text-decoration:none; }

/* Contact grid */
.puk-legal-contact-grid { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.puk-legal-contact-item { display:inline-flex; align-items:center; gap:8px; padding:10px 16px; background:var(--puk-surface); border:1px solid var(--puk-border); border-radius:var(--puk-radius-input,12px); font-size:.875rem; font-weight:600; color:var(--puk-text); text-decoration:none; transition:border-color .15s; }
.puk-legal-contact-item:hover { border-color:var(--puk-primary,#3f6f5f); color:var(--puk-primary,#3f6f5f); }
.puk-legal-contact-item svg { color:#6aa891; flex-shrink:0; }

/* ── Sidebar ── */
.puk-legal-sidebar { position:sticky; top:clamp(80px,var(--puk-header-height),90px); display:flex; flex-direction:column; gap:12px; }
@media(max-width:820px){ .puk-legal-sidebar { position:static; } }

.puk-legal-toc-card { background:#fff; border:1px solid var(--puk-border); border-radius:var(--puk-radius,18px); padding:18px 20px; }
html.puk-dark .puk-legal-toc-card,
html[data-puk-theme="dark"] .puk-legal-toc-card { background:var(--puk-surface)!important; }

.puk-legal-toc-title { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:var(--puk-primary,#3f6f5f); margin-bottom:10px; }
html.puk-dark .puk-legal-toc-title,
html[data-puk-theme="dark"] .puk-legal-toc-title { color:#8fc4b4!important; }

.puk-legal-toc-card nav { display:flex; flex-direction:column; gap:1px; }
.puk-legal-toc-card nav a { font-size:.78rem; color:var(--puk-muted); text-decoration:none; padding:5px 0; border-left:2px solid var(--puk-border); padding-left:10px; transition:color .15s,border-color .15s; line-height:1.4; }
.puk-legal-toc-card nav a:hover { color:var(--puk-primary,#3f6f5f); border-left-color:var(--puk-primary,#3f6f5f); }

.puk-legal-other-docs { background:#fff; border:1px solid var(--puk-border); border-radius:var(--puk-radius,18px); padding:18px 20px; }
html.puk-dark .puk-legal-other-docs,
html[data-puk-theme="dark"] .puk-legal-other-docs { background:var(--puk-surface)!important; }

.puk-legal-doc-link { display:flex; align-items:center; justify-content:space-between; padding:8px 0; font-size:.82rem; font-weight:600; color:var(--puk-text); text-decoration:none; border-bottom:1px solid var(--puk-border); transition:color .15s; }
.puk-legal-doc-link:last-child { border-bottom:none; }
.puk-legal-doc-link:hover { color:var(--puk-primary,#3f6f5f); }
.puk-legal-doc-link svg { color:#6aa891; }

.puk-legal-updated-card { background:rgba(63,111,95,.06); border:1px solid rgba(63,111,95,.15); border-radius:var(--puk-radius,14px); padding:14px 16px; text-align:center; }
html.puk-dark .puk-legal-updated-card,
html[data-puk-theme="dark"] .puk-legal-updated-card { background:rgba(63,111,95,.12)!important; }
.puk-legal-updated-card p { font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; color:var(--puk-muted-2); margin:0 0 4px; }
.puk-legal-updated-card strong { font-size:.875rem; font-weight:700; color:var(--puk-text); }

/* ── Cookie policy specific ── */
.puk-cookie-summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:28px; }
@media(max-width:600px){ .puk-cookie-summary-grid { grid-template-columns:1fr; } }

.puk-cookie-summary { padding:16px 18px; border-radius:var(--puk-radius,14px); }
.puk-cookie-summary--yes { background:rgba(63,111,95,.06); border:1px solid rgba(63,111,95,.18); }
.puk-cookie-summary--no  { background:rgba(220,38,38,.04); border:1px solid rgba(220,38,38,.12); }
html.puk-dark .puk-cookie-summary--yes,
html[data-puk-theme="dark"] .puk-cookie-summary--yes { background:rgba(63,111,95,.12)!important; }
html.puk-dark .puk-cookie-summary--no,
html[data-puk-theme="dark"] .puk-cookie-summary--no { background:rgba(220,38,38,.08)!important; }

.puk-cookie-summary-head { display:flex; align-items:center; gap:6px; font-size:.78rem; font-weight:700; margin-bottom:10px; }
.puk-cookie-summary--yes .puk-cookie-summary-head { color:var(--puk-button,#2a4a3f); }
html.puk-dark .puk-cookie-summary--yes .puk-cookie-summary-head,
html[data-puk-theme="dark"] .puk-cookie-summary--yes .puk-cookie-summary-head { color:#8fc4b4!important; }
.puk-cookie-summary--yes .puk-cookie-summary-head svg { color:var(--puk-primary,#3f6f5f); }
.puk-cookie-summary--no .puk-cookie-summary-head  { color:#b91c1c; }
.puk-cookie-summary--no .puk-cookie-summary-head svg { color:#dc2626; }
.puk-cookie-summary ul { margin:0!important; gap:5px!important; }
.puk-cookie-summary li { font-size:.8rem!important; background:transparent!important; border:none!important; padding:2px 0!important; }
.puk-cookie-summary li::before { display:none!important; }

.puk-cookie-group { margin-bottom:20px; border:1px solid var(--puk-border); border-radius:var(--puk-radius,16px); overflow:hidden; }
.puk-cookie-group-head { padding:14px 18px; }
.puk-cookie-group-head--green  { background:rgba(63,111,95,.06); border-bottom:1px solid rgba(63,111,95,.15); }
.puk-cookie-group-head--blue   { background:rgba(59,130,246,.05); border-bottom:1px solid rgba(59,130,246,.12); }
.puk-cookie-group-head--purple { background:rgba(139,92,246,.05); border-bottom:1px solid rgba(139,92,246,.12); }
html.puk-dark .puk-cookie-group-head--green,
html[data-puk-theme="dark"] .puk-cookie-group-head--green { background:rgba(63,111,95,.12)!important; }

.puk-cookie-group-title { display:flex; align-items:center; gap:10px; font-size:.88rem; font-weight:700; color:var(--puk-text); margin-bottom:4px; }
.puk-cookie-group-head p { font-size:.78rem; color:var(--puk-muted); margin:0; }
.puk-cookie-required { padding:2px 10px; border-radius:var(--puk-radius-pill,999px); background:var(--puk-primary,#3f6f5f); color:#fff; font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.puk-cookie-optional  { padding:2px 10px; border-radius:var(--puk-radius-pill,999px); background:var(--puk-surface); border:1px solid var(--puk-border); color:var(--puk-muted); font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }

.puk-cookie-table-wrap { overflow-x:auto; }
.puk-cookie-table { width:100%; border-collapse:collapse; font-size:.78rem; }
.puk-cookie-table th { padding:10px 14px; background:var(--puk-surface); font-weight:700; color:var(--puk-text); text-align:left; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--puk-border); }
html.puk-dark .puk-cookie-table th,
html[data-puk-theme="dark"] .puk-cookie-table th { background:var(--puk-surface-2)!important; }
.puk-cookie-table td { padding:10px 14px; border-bottom:1px solid var(--puk-border); color:var(--puk-muted); vertical-align:top; line-height:1.5; }
.puk-cookie-table tr:last-child td { border-bottom:none; }
.puk-cookie-table td strong { color:var(--puk-text); }
.puk-cookie-table td code { background:var(--puk-surface); padding:2px 6px; border-radius:var(--puk-radius,5px); font-size:.72rem; color:var(--puk-primary,#3f6f5f); font-family:monospace; }

/* ================================================================
   AUTH PAGES — Login, Register, Lost Password, Reset Password
   Used by /userlogin, WooCommerce My Account, and account forms
================================================================ */

.puk-auth-page { overflow-x:hidden; min-height:60vh; }

/* Centred card layout for /userlogin */
/* Auth page — full width centred layout */
main.puk-auth-page { display:block; width:100%; }
main.puk-auth-page .puk-auth-wrap { display:flex; align-items:center; justify-content:center; padding:clamp(2rem,6vw,5rem) clamp(16px,4vw,40px); min-height:60vh; width:100%; box-sizing:border-box; }
main.puk-auth-page .puk-auth-card { margin:0 auto; }

/* Auth card */
.puk-auth-card { background:#fff!important; border:1px solid var(--puk-border)!important; border-radius:var(--puk-radius,24px)!important; padding:clamp(28px,5vw,44px)!important; width:100%; max-width:480px; box-shadow:0 4px 24px rgba(16,24,20,.07)!important; }
html.puk-dark .puk-auth-card,
html[data-puk-theme="dark"] .puk-auth-card { background:var(--puk-surface)!important; border-color:var(--puk-border)!important; }

/* Brand area */
.puk-auth-brand { margin-bottom:24px; }
.puk-auth-brand img { height:32px; width:auto; display:block; }
.puk-auth-site-name { font-size:1rem; font-weight:800; color:var(--puk-text); text-decoration:none; }

/* Headings */
.puk-auth-heading { font-size:clamp(1.6rem,3vw,2rem); font-weight:800; margin:0 0 6px; letter-spacing:-.025em; color:var(--puk-text); }
.puk-auth-sub     { font-size:.9rem; color:var(--puk-muted); margin:0 0 24px; }

/* Tabs (login/register) */
.puk-auth-tabs { display:flex; border-bottom:2px solid var(--puk-border); margin-bottom:24px; }
.puk-auth-tab  { flex:1; padding:12px 8px; background:none; border:none; font-family:var(--puk-font,'Poppins',sans-serif); font-size:.875rem; font-weight:600; color:var(--puk-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .15s,border-color .15s; }
.puk-auth-tab.is-active { color:var(--puk-primary,#3f6f5f); border-bottom-color:var(--puk-primary,#3f6f5f); }
.puk-auth-tab-panel { display:none; }
.puk-auth-tab-panel.is-active { display:block; }

/* Fields */
.puk-auth-form .puk-auth-field { display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }
.puk-auth-form label { font-size:.875rem!important; font-weight:600!important; color:var(--puk-text)!important; display:block!important; margin-bottom:5px!important; }
.puk-auth-form abbr { text-decoration:none; color:var(--puk-primary,#3f6f5f); }

body .puk-auth-form input[type="text"],
body .puk-auth-form input[type="email"],
body .puk-auth-form input[type="password"],
body .puk-auth-form input[type="tel"] { width:100%; padding:11px 14px; border:1.5px solid var(--puk-border)!important; border-radius:var(--puk-radius-input,12px)!important; font-family:var(--puk-font,'Poppins',sans-serif)!important; font-size:.875rem!important; background:var(--puk-bg)!important; color:var(--puk-text)!important; transition:border-color .15s; box-sizing:border-box; box-shadow:none!important; margin:0!important; }
body .puk-auth-form input:focus { outline:none!important; border-color:var(--puk-primary,#3f6f5f)!important; box-shadow:0 0 0 3px rgba(63,111,95,.10)!important; }

/* Password reveal */
.puk-auth-password-wrap { position:relative; display:flex; align-items:center; }
.puk-auth-password-wrap input { padding-right:44px!important; }
button.puk-auth-reveal { position:absolute!important; right:12px!important; background:none!important; border:none!important; cursor:pointer!important; color:var(--puk-muted)!important; padding:4px!important; display:flex!important; align-items:center!important; justify-content:center!important; border-radius:var(--puk-radius,6px)!important; width:auto!important; box-shadow:none!important; font-size:inherit!important; margin:0!important; }
button.puk-auth-reveal:hover { color:var(--puk-primary,#3f6f5f)!important; background:rgba(63,111,95,.08)!important; }

/* Remember me + forgot password row */
.puk-auth-row { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
.puk-auth-check { display:flex; align-items:center; gap:7px; font-size:.82rem; cursor:pointer; color:var(--puk-text); }
.puk-auth-check input { accent-color:var(--puk-primary,#3f6f5f); width:16px; height:16px; }

/* Links */
.puk-auth-link { font-size:.82rem; font-weight:600; color:var(--puk-primary,#3f6f5f); text-decoration:none; }
.puk-auth-link:hover { color:var(--puk-button,#2a4a3f); }

/* Submit button */
body .puk-auth-submit,
button.puk-auth-submit { display:block; width:100%; padding:13px!important; border-radius:var(--puk-radius-pill,999px)!important; background:var(--puk-primary,#3f6f5f)!important; color:#fff!important; border:none!important; font-family:var(--puk-font,'Poppins',sans-serif)!important; font-size:.95rem!important; font-weight:700!important; cursor:pointer!important; margin-top:8px!important; transition:background .15s; letter-spacing:.01em; box-shadow:none!important; text-shadow:none!important; }
body .puk-auth-submit:hover,
button.puk-auth-submit:hover { background:var(--puk-button,#2a4a3f)!important; color:#fff!important; }

/* Error message */
.puk-auth-error { display:flex; align-items:center; gap:8px; padding:12px 14px; background:rgba(220,38,38,.08); border:1px solid rgba(220,38,38,.2); border-radius:var(--puk-radius-input,10px); font-size:.82rem; color:#b91c1c; margin-bottom:16px; }
.puk-auth-error svg { flex-shrink:0; }

/* Terms note */
.puk-auth-note  { font-size:.8rem; color:var(--puk-muted); margin:0 0 14px; }
.puk-auth-terms { font-size:.75rem; color:var(--puk-muted); margin:12px 0 0; text-align:center; line-height:1.6; }
.puk-auth-terms a { color:var(--puk-primary,#3f6f5f); }

/* Footer links */
.puk-auth-footer { display:flex; align-items:center; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid var(--puk-border); flex-wrap:wrap; }
.puk-auth-back { display:inline-flex; align-items:center; gap:5px; font-size:.8rem; font-weight:600; color:var(--puk-muted); text-decoration:none; }
.puk-auth-back:hover { color:var(--puk-primary,#3f6f5f); }
.puk-auth-sep { color:var(--puk-muted-2); }

/* Dark mode overrides */
html.puk-dark .puk-auth-form input[type="text"],
html.puk-dark .puk-auth-form input[type="email"],
html.puk-dark .puk-auth-form input[type="password"],
html[data-puk-theme="dark"] .puk-auth-form input[type="text"],
html[data-puk-theme="dark"] .puk-auth-form input[type="email"],
html[data-puk-theme="dark"] .puk-auth-form input[type="password"] { background:var(--puk-surface)!important; color:var(--puk-text)!important; border-color:var(--puk-border)!important; }

/* ── My Account logged-in styles ── */
.puk-account-header { background:var(--puk-surface); border-bottom:1px solid var(--puk-border); padding:clamp(18px,3vw,28px) 0; }
.puk-account-header-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.puk-account-greeting { display:flex; align-items:center; gap:14px; }
.puk-account-avatar { width:48px; height:48px; border-radius:var(--puk-radius,14px); background:var(--puk-primary,#3f6f5f); color:#fff; font-family:var(--puk-font,'Poppins',sans-serif); font-size:1rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.puk-account-greeting h1 { font-size:clamp(1.2rem,2.5vw,1.6rem); font-weight:800; margin:0 0 2px; letter-spacing:-.02em; }
.puk-account-greeting p  { font-size:.82rem; color:var(--puk-muted); margin:0; }
.puk-account-logout { display:inline-flex; align-items:center; gap:6px; font-size:.82rem; font-weight:600; color:var(--puk-muted); text-decoration:none; padding:8px 14px; border:1.5px solid var(--puk-border); border-radius:var(--puk-radius-pill,999px); transition:border-color .15s,color .15s; }
.puk-account-logout:hover { border-color:#dc2626; color:#dc2626; }

.puk-account-body   { padding-top:clamp(1.5rem,3vw,2.5rem); }
.puk-account-layout { display:grid; grid-template-columns:220px 1fr; gap:clamp(20px,3vw,32px); align-items:start; }
@media(max-width:760px){ .puk-account-layout { grid-template-columns:1fr; } }

.puk-account-nav { background:#fff; border:1px solid var(--puk-border); border-radius:var(--puk-radius,18px); overflow:hidden; position:sticky; top:clamp(80px,var(--puk-header-height),90px); }
html.puk-dark .puk-account-nav,
html[data-puk-theme="dark"] .puk-account-nav { background:var(--puk-surface)!important; }
.puk-account-nav-item { display:flex; align-items:center; justify-content:space-between; padding:13px 18px; font-size:.875rem; font-weight:500; color:var(--puk-muted); text-decoration:none; border-bottom:1px solid var(--puk-border); transition:background .12s,color .15s; }
.puk-account-nav-item:last-child { border-bottom:none; }
.puk-account-nav-item:hover { background:rgba(63,111,95,.05); color:var(--puk-text); }
.puk-account-nav-item.is-active { background:rgba(63,111,95,.08); color:var(--puk-button,#2a4a3f); font-weight:700; }
html.puk-dark .puk-account-nav-item.is-active,
html[data-puk-theme="dark"] .puk-account-nav-item.is-active { color:#8fc4b4!important; background:rgba(63,111,95,.15)!important; }

.puk-account-content { min-width:0; }
.puk-account-content .woocommerce { background:#fff; border:1px solid var(--puk-border); border-radius:var(--puk-radius,20px); padding:clamp(20px,3vw,28px); }
html.puk-dark .puk-account-content .woocommerce,
html[data-puk-theme="dark"] .puk-account-content .woocommerce { background:var(--puk-surface)!important; }

/* WooCommerce content resets */
.puk-account-content table.woocommerce-orders-table { width:100%; border-collapse:collapse; font-size:.875rem; }
.puk-account-content table th { padding:10px 14px; font-weight:700; text-align:left; border-bottom:2px solid var(--puk-border); font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; color:var(--puk-muted); }
.puk-account-content table td { padding:12px 14px; border-bottom:1px solid var(--puk-border); color:var(--puk-text); font-size:.875rem; }
.puk-account-content .button,
.puk-account-content .woocommerce-button { display:inline-flex; align-items:center; padding:8px 18px; border-radius:var(--puk-radius-pill,999px); background:var(--puk-primary,#3f6f5f); color:#fff!important; font-family:var(--puk-font,'Poppins',sans-serif); font-size:.82rem; font-weight:700; text-decoration:none; border:none; cursor:pointer; transition:background .15s; }
.puk-account-content .button:hover,
.puk-account-content .woocommerce-button:hover { background:var(--puk-button,#2a4a3f); }
.puk-account-content .woocommerce-Message { padding:14px 18px; background:rgba(63,111,95,.08); border:1px solid rgba(63,111,95,.2); border-radius:var(--puk-radius-input,12px); font-size:.875rem; margin:0 0 16px; list-style:none; }
.puk-account-content .woocommerce-error { padding:14px 18px; background:rgba(220,38,38,.08); border:1px solid rgba(220,38,38,.2); border-radius:var(--puk-radius-input,12px); font-size:.875rem; list-style:none; margin:0 0 16px; }
.puk-account-content input[type="text"],
.puk-account-content input[type="email"],
.puk-account-content input[type="password"],
.puk-account-content input[type="tel"],
.puk-account-content select { width:100%; padding:10px 14px; border:1.5px solid var(--puk-border); border-radius:var(--puk-radius-input,12px); font-family:var(--puk-font,'Poppins',sans-serif); font-size:.875rem; background:var(--puk-bg); color:var(--puk-text); transition:border-color .15s; margin-bottom:4px; box-sizing:border-box; }
.puk-account-content input:focus,
.puk-account-content select:focus { outline:none; border-color:var(--puk-primary,#3f6f5f); box-shadow:0 0 0 3px rgba(63,111,95,.10); }

/* ── Minimal auth layout — hide nav/footer on login pages ── */
body.puk-auth-minimal .site-header .main-navigation,
body.puk-auth-minimal .site-header nav,
body.puk-auth-minimal .nav-primary,
body.puk-auth-minimal #site-navigation,
body.puk-auth-minimal [class*="navigation"],
body.puk-auth-minimal .site-footer,
body.puk-auth-minimal footer,
body.puk-auth-minimal [class*="footer"],
body.puk-auth-minimal [id*="footer"] { display:none!important; }

/* Centre logo in header */
body.puk-auth-minimal .site-header .inside-header { justify-content:center!important; }
body.puk-auth-minimal .site-header .site-branding { margin:0 auto!important; }
body.puk-auth-minimal .site-header { border-bottom:1px solid var(--puk-border)!important; box-shadow:none!important; }
/* Keep the header bar but minimal — just logo */
body.puk-auth-minimal .site-header,
body.puk-auth-minimal .site-header .inside-header { justify-content:center!important; }
body.puk-auth-minimal .site-header { border-bottom:1px solid var(--puk-border)!important; box-shadow:none!important; }

/* Also hide on WooCommerce my-account auth pages */
body.puk-account-page.logged-out .site-header .main-navigation,
body.puk-account-page.logged-out .site-header nav,
body.puk-account-page.logged-out .site-footer,
body.puk-account-page.logged-out footer { display:none!important; }
body.puk-account-page.logged-out .site-header { border-bottom:1px solid var(--puk-border)!important; justify-content:center!important; }
body.puk-account-page.logged-out .site-header .inside-header { justify-content:center!important; }

/* ── Lost password + reset password pages — hide nav/footer ── */
body.lost-password .site-header .main-navigation,
body.lost-password .site-header nav,
body.lost-password #site-navigation,
body.lost-password .site-footer,
body.lost-password footer,
body.woocommerce-account.lost-password .site-footer,
body.woocommerce-account.lost-password footer,
body.woocommerce-account.lost-password .main-navigation { display:none!important; }

/* ── ECO / BENEFIT STRIP DIVIDERS v2.12.0 (02/08) ────────────────────────────
   Below 1140px (same trigger as the mobile menu) the strip's points stack, so
   the vertical rules between them read as stray marks rather than separators.
   Covers both divider mechanisms in this stylesheet: the standalone divider
   element, and the border-right on the trade benefits row. Their horizontal
   padding/margin goes with them so the items don't sit oddly offset. */
@media (max-width:1140px){
  /* v2.12.1 — the real one, confirmed in the inspector:
     div.puk-eco-strip > .puk-container > .puk-eco-strip-inner >
     (.puk-eco-strip-item, .puk-eco-strip-sep). The separator is its own 1px
     x 32px div, styled from an inline <style> block (a PHP partial), NOT from
     this stylesheet — !important still wins over it, so no PHP change needed. */
  .puk-eco-strip-sep { display: none !important; }
  .puk-hero-stat-divider { display: none !important; }
  .puk-hero-stat { padding-right: 0 !important; }
  .puk-trade-benefit {
    border-right: 0 !important;
    padding-right: 0 !important;
    margin-right: 0 !important;
  }
}

/* ── MOBILE MENU v2.11.0 (02/08) ───────────────────────────────────────────────
   Breakpoint 1140px. Tokenised, no scrollbars, three inline action buttons.

   v2.5.0 — HEADER NO LONGER MOVES. Earlier versions put the panel in the
   header's flex flow, so the header had to grow and its first line (logo +
   burger) re-packed to the top. Now we know the real blocker was ancestor
   overflow clipping — with overflow:visible on the header, the panel can be
   absolutely positioned again and the header is left completely untouched:
   no height override, no flex-wrap, no align-content. Logo and X cannot move
   because nothing about the closed header's layout is changed.

   Markup: header#masthead.site-header.has-inline-mobile-toggle >
   div.inside-header [flex] > (div.site-branding,
   nav#mobile-menu-control-wrapper > button.menu-toggle = VISIBLE HAMBURGER,
   nav#site-navigation > div.inside-navigation.grid-container >
   (button.menu-toggle = redundant, hidden), div#primary-menu.main-nav >
   ul#menu-primary-menu.menu.sf-menu > li.menu-item).
   NOTE id="primary-menu" is on the DIV; the UL is #menu-primary-menu.
   -------------------------------------------------------------------------- */
@media (max-width:1140px){
  /* ── Breakpoint ── GP's own is 768; force the mobile header state to 1140. */
  #mobile-menu-control-wrapper {
    display: block !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
  }
  /* GP pads the toggle horizontally, which insets the icon from the edge and
     is why the burger sat too far left. Drop the right pad only, so the icon
     lines up with the header's content edge and mirrors the logo. */
  #mobile-menu-control-wrapper .menu-toggle {
    display: flex !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
  }
  #site-navigation:not(.toggled) { display: none !important; }

  /* Burger + X: no faint fill (GP paints rgba(0,0,0,.02)), dark green icon. */
  #mobile-menu-control-wrapper,
  #mobile-menu-control-wrapper.toggled,
  #mobile-menu-control-wrapper .menu-toggle,
  #mobile-menu-control-wrapper .menu-toggle:hover,
  #mobile-menu-control-wrapper .menu-toggle:focus,
  #mobile-menu-control-wrapper .menu-toggle:active,
  #site-navigation.toggled,
  .has-inline-mobile-toggle #site-navigation.toggled {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
  }
  #mobile-menu-control-wrapper .menu-toggle,
  #mobile-menu-control-wrapper .menu-toggle .gp-icon {
    color: var(--puk-button,#2a4a3f) !important;
  }
  #mobile-menu-control-wrapper .menu-toggle svg {
    fill: currentColor !important; stroke: currentColor !important;
  }

  /* Header: the ONLY changes are anchoring + not clipping. No height, no
     min-height, no flex-wrap, no align-content — those moved the logo. */
  .site-header, #masthead {
    position: relative !important;
    z-index: 9999 !important;
    overflow: visible !important;
  }
  .inside-header {
    position: static !important;   /* so top:100% resolves against .site-header */
    overflow: visible !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    align-content: center !important;
  }
  #site-navigation.toggled,
  #site-navigation.toggled .inside-navigation {
    position: static !important;
    overflow: visible !important;
    background: transparent !important;
  }
  /* v2.6.0 — WHY THE LOGO KEPT JUMPING: GP gives the toggled nav
     flex-basis:100%, which pushes it onto a second flex line. With two lines
     and align-content:stretch the header splits its height between them, so
     the logo ends up centred in the TOP HALF — i.e. near the top.
     v2.8.0 — a zero-WIDTH flex item still counts as an item, so the header's
     column-gap was applied either side of it and shoved the burger left the
     moment the menu opened. The nav is now absolutely positioned instead:
     a zero-height, full-width box pinned to the header's bottom edge. Out of
     the flex line entirely, so it contributes no gap and the toggle cannot
     move. The panel simply sits in flow inside it. */
  #site-navigation.toggled {
    display: block !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 9999 !important;
  }
  #site-navigation.toggled .inside-navigation {
    display: block !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* The visible hamburger is in #mobile-menu-control-wrapper; hide the
     duplicate button inside #site-navigation. */
  #site-navigation > .inside-navigation > .menu-toggle,
  #site-navigation.toggled > .inside-navigation > .menu-toggle { display: none !important; }

  /* ── The panel — out of flow, below the header, tokenised, no scrollbars ── */
  #site-navigation.toggled .main-nav,
  #site-navigation.toggled div#primary-menu {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 9999 !important;
    font-family: var(--puk-font,'Poppins',sans-serif) !important;
    background-color: var(--puk-bg,#ffffff) !important;
    border-top: 1px solid var(--puk-border,rgba(16,24,20,.09)) !important;
    border-radius: 0 0 var(--puk-radius,14px) var(--puk-radius,14px) !important;
    box-shadow: var(--puk-shadow-2, 0 18px 44px rgba(16,24,20,.09)) !important;
  }

  /* List: flex rows. Normal links take a full row each; the three action
     items at the end share the last row a third apiece. */
  #site-navigation.toggled .main-nav > ul,
  #site-navigation.toggled ul#menu-primary-menu,
  #site-navigation.toggled .main-nav ul.menu,
  #site-navigation.toggled .main-nav ul.sf-menu {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    row-gap: var(--puk-menu-btn-gap,8px) !important;
    column-gap: var(--puk-menu-space,24px) !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
    padding: var(--puk-menu-btn-gap,8px) 0 var(--puk-menu-space,24px) !important;
    list-style: none !important;
  }
  #site-navigation.toggled .main-nav > ul > li,
  #site-navigation.toggled li.menu-item {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    float: none !important;
    height: auto !important;
    background-color: transparent !important;
  }

  /* Plain links: tokenised hover pills. */
  #site-navigation.toggled .main-nav ul li a {
    display: block !important;
    width: 100% !important;
    font-family: var(--puk-font,'Poppins',sans-serif) !important;
    font-size: var(--puk-fs-sm,.95rem) !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: var(--puk-text,#0f1412) !important;
    background: transparent !important;
    padding: 13px var(--puk-menu-space,24px) !important;
    border: 0 !important;
    border-radius: var(--puk-radius-input,12px) !important;
    transition: background-color .15s, color .15s !important;
  }
  #site-navigation.toggled .main-nav ul li a:hover,
  #site-navigation.toggled .main-nav ul li a:focus {
    background-color: var(--puk-surface,#f4f8f6) !important;
    color: var(--puk-primary,#3f6f5f) !important;
  }
  #site-navigation.toggled .main-nav ul li.current-menu-item > a,
  #site-navigation.toggled .main-nav ul li.current_page_item > a {
    background-color: var(--puk-surface,#f4f8f6) !important;
    color: var(--puk-primary,#3f6f5f) !important;
    font-weight: 600 !important;
  }

  /* Sub-menus stay closed until their parent opens. */
  #site-navigation.toggled .main-nav ul li ul.sub-menu,
  #site-navigation.toggled .main-nav ul li ul.children { display: none !important; }
  #site-navigation.toggled .main-nav ul li.sfHover > ul.sub-menu,
  #site-navigation.toggled .main-nav ul li.toggled > ul.sub-menu,
  #site-navigation.toggled .main-nav ul li.sfHover > ul.children,
  #site-navigation.toggled .main-nav ul li.toggled > ul.children {
    display: block !important;
    position: static !important;
    left: auto !important; top: auto !important;
    width: 100% !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  #site-navigation.toggled .sub-menu li a {
    padding-left: 32px !important;
    color: var(--puk-muted,rgba(15,20,18,.62)) !important;
  }

  /* Nothing inside the panel scrolls. */
  #site-navigation.toggled * { overflow: visible !important; scrollbar-width: none !important; }
  #site-navigation.toggled *::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }

  /* ── The three action buttons — one row, equal thirds, one token set ──────
     v2.7.0: every dimension comes from --puk-menu-btn-* (declared in :root,
     each chaining to an existing panel token). Two of these buttons are mine
     and the third is the assistant plugin's own button with its own CSS and a
     hard-coded 20px SVG — which is why the icons and labels didn't match. The
     rules below override all three from the same values, so they stay in step.
     Targeted BY POSITION: the last three items are always Request Quote, User
     Login and the relocated Design Assistant. */
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) {
    display: block !important;
    flex: 1 1 0 !important;
    flex-basis: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    /* v2.11.0: NO margin above, and no per-item left margin. The space
       BETWEEN the buttons is the row's column-gap and nothing else — margins
       are only on the two outer edges, so nothing can stack up after Request
       Quote or User Login. Column-gap only affects this row: every other menu
       item is 100% wide and therefore alone on its line. */
    margin: 0 !important;
  }
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(3) {
    margin-left: var(--puk-menu-space,24px) !important;
  }
  #site-navigation.toggled .main-nav > ul > li:last-child {
    margin-right: var(--puk-menu-space,24px) !important;
  }
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) > a,
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) > button,
  #site-navigation.toggled #puk-ai-trigger {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: calc(var(--puk-menu-btn-gap,8px) * .75) !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: var(--puk-menu-btn-pad-y,12px) var(--puk-menu-btn-pad-x,10px) !important;
    font-family: var(--puk-font,'Poppins',sans-serif) !important;
    font-size: var(--puk-menu-btn-fs,.875rem) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: normal !important;
    color: var(--puk-menu-btn-text,#ffffff) !important;
    background: var(--puk-menu-btn-bg,#2a4a3f) !important;
    background-color: var(--puk-menu-btn-bg,#2a4a3f) !important;
    border: 1.5px solid var(--puk-menu-btn-bg,#2a4a3f) !important;
    border-radius: var(--puk-menu-btn-radius,999px) !important;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color .15s, border-color .15s !important;
  }
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) > a:hover,
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) > a:focus,
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) > button:hover,
  #site-navigation.toggled #puk-ai-trigger:hover {
    color: var(--puk-menu-btn-text,#ffffff) !important;
    background: var(--puk-menu-btn-hover,#3f6f5f) !important;
    background-color: var(--puk-menu-btn-hover,#3f6f5f) !important;
    border-color: var(--puk-menu-btn-hover,#3f6f5f) !important;
  }

  /* Labels: the assistant wraps its text in a span, mine don't — force every
     label to the same size so the three read identically. */
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(-n+3) > a span,
  #site-navigation.toggled #puk-ai-trigger span {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  /* Icons: one size for all three. Mine are masks (no markup change needed);
     the assistant's is an inline SVG hard-coded to 20px, overridden here. */
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(3) > a::before,
  #site-navigation.toggled .main-nav > ul > li:last-child > a::before {
    content: "" !important;
    display: block !important;
    flex: 0 0 auto !important;
    width: var(--puk-menu-btn-icon,18px) !important;
    height: var(--puk-menu-btn-icon,18px) !important;
    background-color: currentColor !important;
    -webkit-mask-repeat: no-repeat !important;  mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;   mask-position: center !important;
    -webkit-mask-size: contain !important;      mask-size: contain !important;
  }
  #site-navigation.toggled .main-nav > ul > li:nth-last-child(3) > a::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='16' y1='13' x2='8' y2='13'/><line x1='16' y1='17' x2='8' y2='17'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='16' y1='13' x2='8' y2='13'/><line x1='16' y1='17' x2='8' y2='17'/></svg>") !important;
  }
  #site-navigation.toggled .main-nav > ul > li:last-child > a::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>") !important;
  }
  #site-navigation.toggled #puk-ai-trigger svg {
    flex: 0 0 auto !important;
    width: var(--puk-menu-btn-icon,18px) !important;
    height: var(--puk-menu-btn-icon,18px) !important;
    stroke: currentColor !important;
  }
  /* The trigger holds TWO icon spans: --open and --close (normally hidden).
     v2.7.0 styled .puk-ai-trigger-icon as a group and forced display on both,
     which is where the stray X after the label came from. Scoped to --open,
     and --close stays hidden in the menu regardless of state. */
  #site-navigation.toggled #puk-ai-trigger .puk-ai-trigger-icon--open {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: calc(var(--puk-menu-btn-gap,8px) * .75) !important;
  }
  #site-navigation.toggled #puk-ai-trigger .puk-ai-trigger-icon--close,
  #site-navigation.toggled #puk-ai-trigger.is-open .puk-ai-trigger-icon--close {
    display: none !important;
  }
  #site-navigation.toggled #puk-ai-trigger.is-open .puk-ai-trigger-icon--open {
    display: inline-flex !important;
  }

  /* Page content sits below the header's stacking context. */
  #content, .site-content, .puk-hero { position: relative !important; z-index: 1 !important; }
}


/* Style the WooCommerce lost-password form to match our auth card */
body.lost-password .site-main,
body.woocommerce-account.lost-password .site-main { 
  display:flex; 
  align-items:center; 
  justify-content:center; 
  min-height:70vh; 
  padding:clamp(2rem,6vw,5rem) clamp(16px,4vw,40px);
  box-sizing:border-box;
}

body.lost-password .woocommerce,
body.woocommerce-account.lost-password .woocommerce {
  background:#fff!important;
  border:1px solid var(--puk-border)!important;
  border-radius:var(--puk-radius,24px)!important;
  padding:clamp(28px,5vw,44px)!important;
  width:100%!important;
  max-width:480px!important;
  box-shadow:0 4px 24px rgba(16,24,20,.07)!important;
}
html.puk-dark body.lost-password .woocommerce,
html[data-puk-theme="dark"] body.lost-password .woocommerce { background:var(--puk-surface)!important; }

/* Heading */
body.lost-password .woocommerce h2 { font-size:clamp(1.6rem,3vw,2rem)!important; font-weight:800!important; margin:0 0 12px!important; letter-spacing:-.025em!important; color:var(--puk-text)!important; }

/* Description text */
body.lost-password .woocommerce > p { font-size:.9rem!important; color:var(--puk-muted)!important; margin:0 0 20px!important; line-height:1.6!important; }

/* Label */
body.lost-password .woocommerce label { font-size:.875rem!important; font-weight:600!important; color:var(--puk-text)!important; display:block!important; margin-bottom:6px!important; }

/* Input */
body.lost-password .woocommerce input[type="text"],
body.lost-password .woocommerce input[type="email"] { width:100%!important; padding:11px 14px!important; border:1.5px solid var(--puk-border)!important; border-radius:var(--puk-radius-input,12px)!important; font-family:var(--puk-font,'Poppins',sans-serif)!important; font-size:.875rem!important; background:var(--puk-bg)!important; color:var(--puk-text)!important; box-shadow:none!important; margin-bottom:16px!important; box-sizing:border-box!important; }
body.lost-password .woocommerce input:focus { border-color:var(--puk-primary,#3f6f5f)!important; box-shadow:0 0 0 3px rgba(63,111,95,.10)!important; outline:none!important; }

/* Button */
body.lost-password .woocommerce input[type="submit"],
body.lost-password .woocommerce button[type="submit"],
body.lost-password .woocommerce .button { display:block!important; width:100%!important; padding:13px!important; border-radius:var(--puk-radius-pill,999px)!important; background:var(--puk-primary,#3f6f5f)!important; color:#fff!important; border:none!important; font-family:var(--puk-font,'Poppins',sans-serif)!important; font-size:.95rem!important; font-weight:700!important; cursor:pointer!important; box-shadow:none!important; text-shadow:none!important; }
body.lost-password .woocommerce input[type="submit"]:hover { background:var(--puk-button,#2a4a3f)!important; }

/* Required star */
body.lost-password .woocommerce .required { color:var(--puk-primary,#3f6f5f)!important; }

/* Back link */
body.lost-password .woocommerce .woocommerce-LostPassword a { font-size:.82rem!important; color:var(--puk-primary,#3f6f5f)!important; font-weight:600!important; }

/* ── Quote form toggle buttons ── */
.puk-toggle-group {
  display: flex;
  align-items: stretch !important;
  min-height: 44px !important;
  border: 1.5px solid var(--puk-border) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  overflow: hidden !important;
  margin-top: 6px !important;
}
.puk-toggle-opt {
  flex: 1 !important;
  padding: 10.5px 14px !important;
  border: none !important;
  border-right: 1px solid rgba(63,111,95,.2) !important;
  background: transparent !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .82rem !important;
  font-weight: 600 !important;
  color: var(--puk-primary,#3f6f5f) !important;
  cursor: pointer !important;
  transition: background .15s, color .15s !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  line-height: 1.4 !important;
}
.puk-toggle-opt:last-child { border-right: none !important; }
/* Job urgency toggle aligns with sibling text inputs in the same field row */
.puk-rq-row-4 .puk-rq-field > .puk-toggle-group { margin-top: 0 !important; }
.puk-toggle-opt.is-active {
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
}
.puk-toggle-opt:hover:not(.is-active) {
  background: rgba(63,111,95,.08) !important;
  color: var(--puk-button,#2a4a3f) !important;
}

/* ── Add product line button ── */
.puk-add-line-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  border: 2px solid var(--puk-primary,#3f6f5f) !important;
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
  font-size: 1.2rem !important;
  cursor: pointer !important;
  box-shadow: none !important;
  text-shadow: none !important;
  padding: 0 !important;
}
.puk-add-line-btn:hover {
  background: var(--puk-button,#2a4a3f) !important;
  border-color: var(--puk-button,#2a4a3f) !important;
  color: #fff !important;
}

/* ── Remove product line button ── */
.puk-remove-line {
  background: rgba(63,111,95,.1) !important;
  border: 1.5px solid rgba(63,111,95,.35) !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  color: var(--puk-primary,#3f6f5f) !important;
  cursor: pointer !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.puk-remove-line:hover {
  background: var(--puk-primary,#3f6f5f) !important; color: #fff !important;
}

/* ── Eco requirement checkboxes ── */
.puk-eco-checks--inline {
  display: grid !important;
  grid-template-columns: repeat(6,1fr) !important;
  gap: 8px !important;
}
@media(max-width:900px){ .puk-eco-checks--inline { grid-template-columns: repeat(3,1fr) !important; } }
@media(max-width:540px){ .puk-eco-checks--inline { grid-template-columns: repeat(2,1fr) !important; } }
.puk-eco-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 14px !important;
  border: 1.5px solid var(--puk-border) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  cursor: pointer !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .875rem !important;
  font-weight: 400 !important;
  color: var(--puk-text) !important;
  transition: border-color .15s, background .15s !important;
  background: #fff !important;
}
.puk-eco-check:hover { border-color: var(--puk-primary,#3f6f5f) !important; background: rgba(63,111,95,.04) !important; }
.puk-eco-check input { position:absolute !important; opacity:0 !important; width:18px !important; height:18px !important; margin:0 !important; cursor:pointer !important; }
.puk-eco-check input + span::before { content:'' !important; display:inline-block !important; width:18px !important; height:18px !important; min-width:18px !important; margin-right:8px !important; vertical-align:-4px !important; border:1.5px solid var(--puk-border) !important; border-radius:var(--puk-radius-input,6px) !important; background:#fff !important; transition:background .15s,border-color .15s !important; }
.puk-eco-check input:checked + span::before { background:var(--puk-primary,#3f6f5f) !important; border-color:var(--puk-primary,#3f6f5f) !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important; background-repeat:no-repeat !important; background-position:center !important; }
.puk-eco-check input:focus-visible + span::before { box-shadow:0 0 0 3px rgba(63,111,95,.15) !important; }
.puk-eco-check span { color: var(--puk-text) !important; font-weight: 400 !important; }

/* ── Product line actions (remove + add together) ── */
.puk-line-actions {
  display: flex !important;
  gap: 6px !important;
  align-items: center !important;
  padding-bottom: 2px !important;
}

.puk-delivery-row .puk-rq-field { 
  margin-bottom: 0 !important; 
  display: flex !important; 
  flex-direction: column !important; 
  justify-content: flex-end !important; 
}

.puk-eco-check { position:relative !important; }
.puk-eco-tip-wrap { position:relative !important; display:inline-flex !important; align-items:center !important; margin-left:auto !important; flex-shrink:0 !important; }
.puk-eco-tip-icon { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:16px !important; height:16px !important; border-radius:50% !important; background:var(--puk-primary,#3f6f5f) !important; border:none !important; color:#fff !important; font-size:.65rem !important; font-weight:800 !important; cursor:pointer !important; flex-shrink:0 !important; padding:0 !important; }
.puk-eco-tip-icon:hover, .puk-eco-tip-icon:focus { background:var(--puk-button,#2a4a3f) !important; outline:none !important; }
.puk-eco-tip-box { display:none !important; position:absolute !important; bottom:calc(100% + 8px) !important; right:0 !important; width:200px !important; background:var(--puk-button,#2a4a3f) !important; color:var(--puk-tip-text,#ffffff) !important; font-size:.75rem !important; line-height:1.55 !important; padding:10px 12px !important; border-radius:var(--puk-radius-input,10px) !important; box-shadow:0 4px 16px rgba(0,0,0,.25) !important; z-index:9999 !important; pointer-events:none !important; font-weight:400 !important; font-family:var(--puk-font,'Poppins',sans-serif) !important; }
.puk-eco-tip-box::after { content:'' !important; position:absolute !important; top:100% !important; right:8px !important; border:6px solid transparent !important; border-top-color:var(--puk-button,#2a4a3f) !important; }
.puk-eco-tip-wrap:hover .puk-eco-tip-box, .puk-eco-tip-icon:focus + .puk-eco-tip-box { display:block !important; }

select,
.puk-rq-field select,
.puk-cat-select,
.puk-product-select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233f6f5f' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-color: #fff !important;
  border: 1.5px solid var(--puk-border, rgba(16,24,20,.09)) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  padding: 10px 36px 10px 14px !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .875rem !important;
  color: var(--puk-text, #0f1412) !important;
  cursor: pointer !important;
  width: 100% !important;
}
select:focus,
.puk-rq-field select:focus {
  outline: none !important;
  border-color: var(--puk-primary,#3f6f5f) !important;
  box-shadow: 0 0 0 3px rgba(63,111,95,.10) !important;
}

/* ── Global custom select styling ── */
select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233f6f5f' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-color: var(--puk-bg, #fff) !important;
  border: 1.5px solid var(--puk-border, rgba(16,24,20,.09)) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  padding: 10px 36px 10px 14px !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .875rem !important;
  color: var(--puk-text, #0f1412) !important;
  cursor: pointer !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
select:focus {
  outline: none !important;
  border-color: var(--puk-primary,#3f6f5f) !important;
  box-shadow: 0 0 0 3px rgba(63,111,95,.10) !important;
}

/* ── Quote form toggle buttons ── */
.puk-toggle-group {
  display: flex;
  align-items: stretch !important;
  min-height: 44px !important;
  border: 1.5px solid var(--puk-border) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  overflow: hidden !important;
  margin-top: 6px !important;
}
.puk-toggle-opt {
  flex: 1 !important;
  padding: 10.5px 14px !important;
  border: none !important;
  border-right: 1px solid rgba(63,111,95,.2) !important;
  background: transparent !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .82rem !important;
  font-weight: 600 !important;
  color: var(--puk-primary,#3f6f5f) !important;
  cursor: pointer !important;
  transition: background .15s, color .15s !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  line-height: 1.4 !important;
}
.puk-toggle-opt:last-child { border-right: none !important; }
.puk-toggle-opt.is-active {
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
}
.puk-toggle-opt:hover:not(.is-active) {
  background: rgba(63,111,95,.08) !important;
  color: var(--puk-button,#2a4a3f) !important;
}

/* ── Add product line button ── */
.puk-add-line-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  border: 2px solid var(--puk-primary,#3f6f5f) !important;
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
  font-size: 1.2rem !important;
  cursor: pointer !important;
  box-shadow: none !important;
  text-shadow: none !important;
  padding: 0 !important;
}
.puk-add-line-btn:hover {
  background: var(--puk-button,#2a4a3f) !important;
  border-color: var(--puk-button,#2a4a3f) !important;
  color: #fff !important;
}

/* ── Remove product line button ── */
.puk-remove-line {
  background: rgba(220,38,38,.08) !important;
  border: 1.5px solid rgba(220,38,38,.25) !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  color: #dc2626 !important;
  cursor: pointer !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.puk-remove-line:hover { background: rgba(220,38,38,.18) !important; }

/* ── Eco requirement checkboxes ── */
.puk-eco-checks--inline {
  display: grid !important;
  grid-template-columns: repeat(6,1fr) !important;
  gap: 8px !important;
}
@media(max-width:900px){ .puk-eco-checks--inline { grid-template-columns: repeat(3,1fr) !important; } }
@media(max-width:540px){ .puk-eco-checks--inline { grid-template-columns: repeat(2,1fr) !important; } }
.puk-eco-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 14px !important;
  border: 1.5px solid var(--puk-border) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  cursor: pointer !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .875rem !important;
  font-weight: 400 !important;
  color: var(--puk-text) !important;
  transition: border-color .15s, background .15s !important;
  background: #fff !important;
}
.puk-eco-check:hover { border-color: var(--puk-primary,#3f6f5f) !important; background: rgba(63,111,95,.04) !important; }
.puk-eco-check input { position:absolute !important; opacity:0 !important; width:18px !important; height:18px !important; margin:0 !important; cursor:pointer !important; }
.puk-eco-check input + span::before { content:'' !important; display:inline-block !important; width:18px !important; height:18px !important; min-width:18px !important; margin-right:8px !important; vertical-align:-4px !important; border:1.5px solid var(--puk-border) !important; border-radius:var(--puk-radius-input,6px) !important; background:#fff !important; transition:background .15s,border-color .15s !important; }
.puk-eco-check input:checked + span::before { background:var(--puk-primary,#3f6f5f) !important; border-color:var(--puk-primary,#3f6f5f) !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important; background-repeat:no-repeat !important; background-position:center !important; }
.puk-eco-check input:focus-visible + span::before { box-shadow:0 0 0 3px rgba(63,111,95,.15) !important; }
.puk-eco-check span { color: var(--puk-text) !important; font-weight: 400 !important; }

/* ── Product line actions (remove + add together) ── */
.puk-line-actions {
  display: flex !important;
  gap: 6px !important;
  align-items: center !important;
  padding-bottom: 2px !important;
}

/* ── Delivery row alignment ── */
.puk-delivery-row { display:flex !important; gap:14px !important; align-items:flex-end !important; flex-wrap:wrap !important; }
.puk-delivery-row .puk-rq-field { flex:1; min-width:120px; margin-bottom:0 !important; }

/* Delivery-row toggle cells (Location/Fulfilment): sit toggle under its label,
   not pushed to the bottom of the cell */
.puk-delivery-row .puk-rq-field:has(> .puk-toggle-group) { justify-content: flex-start !important; }
.puk-delivery-row .puk-rq-field > .puk-toggle-group { margin-top: 6px !important; }


/* ── Global custom select — optgroup headers ── */
.puk-custom-select-group {
  padding: 6px 14px 4px !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  color: var(--puk-muted, #6b7a72) !important;
  border-top: 1px solid var(--puk-border, rgba(16,24,20,.08)) !important;
  margin-top: 4px !important;
  pointer-events: none !important;
}
.puk-custom-select-group:first-child { border-top: none !important; margin-top: 0 !important; }
.puk-custom-select-option--grouped { padding-left: 22px !important; }

/* ── Quote form toggle buttons ── */
.puk-toggle-group {
  display: flex;
  align-items: stretch !important;
  min-height: 44px !important;
  border: 1.5px solid var(--puk-border) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  overflow: hidden !important;
  margin-top: 6px !important;
}
.puk-toggle-opt {
  flex: 1 !important;
  padding: 10.5px 14px !important;
  border: none !important;
  border-right: 1px solid rgba(63,111,95,.2) !important;
  background: transparent !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .82rem !important;
  font-weight: 600 !important;
  color: var(--puk-primary,#3f6f5f) !important;
  cursor: pointer !important;
  transition: background .15s, color .15s !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  line-height: 1.4 !important;
}
.puk-toggle-opt:last-child { border-right: none !important; }
.puk-toggle-opt.is-active {
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
}
.puk-toggle-opt:hover:not(.is-active) {
  background: rgba(63,111,95,.08) !important;
  color: var(--puk-button,#2a4a3f) !important;
}

/* ── Add product line button ── */
.puk-add-line-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  border: 2px solid var(--puk-primary,#3f6f5f) !important;
  background: var(--puk-primary,#3f6f5f) !important;
  color: #fff !important;
  font-size: 1.2rem !important;
  cursor: pointer !important;
  box-shadow: none !important;
  text-shadow: none !important;
  padding: 0 !important;
}
.puk-add-line-btn:hover {
  background: var(--puk-button,#2a4a3f) !important;
  border-color: var(--puk-button,#2a4a3f) !important;
  color: #fff !important;
}

/* ── Remove product line button ── */
.puk-remove-line {
  background: rgba(220,38,38,.08) !important;
  border: 1.5px solid rgba(220,38,38,.25) !important;
  border-radius:var(--puk-radius-pill,999px) !important;
  color: #dc2626 !important;
  cursor: pointer !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.puk-remove-line:hover { background: rgba(220,38,38,.18) !important; }

/* ── Eco requirement checkboxes ── */
.puk-eco-checks--inline {
  display: grid !important;
  grid-template-columns: repeat(6,1fr) !important;
  gap: 8px !important;
}
@media(max-width:900px){ .puk-eco-checks--inline { grid-template-columns: repeat(3,1fr) !important; } }
@media(max-width:540px){ .puk-eco-checks--inline { grid-template-columns: repeat(2,1fr) !important; } }
.puk-eco-check {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 14px !important;
  border: 1.5px solid var(--puk-border) !important;
  border-radius:var(--puk-radius-input,12px) !important;
  cursor: pointer !important;
  font-family: var(--puk-font,'Poppins',sans-serif) !important;
  font-size: .875rem !important;
  font-weight: 400 !important;
  color: var(--puk-text) !important;
  transition: border-color .15s, background .15s !important;
  background: #fff !important;
}
.puk-eco-check:hover { border-color: var(--puk-primary,#3f6f5f) !important; background: rgba(63,111,95,.04) !important; }
.puk-eco-check input { position:absolute !important; opacity:0 !important; width:18px !important; height:18px !important; margin:0 !important; cursor:pointer !important; }
.puk-eco-check input + span::before { content:'' !important; display:inline-block !important; width:18px !important; height:18px !important; min-width:18px !important; margin-right:8px !important; vertical-align:-4px !important; border:1.5px solid var(--puk-border) !important; border-radius:var(--puk-radius-input,6px) !important; background:#fff !important; transition:background .15s,border-color .15s !important; }
.puk-eco-check input:checked + span::before { background:var(--puk-primary,#3f6f5f) !important; border-color:var(--puk-primary,#3f6f5f) !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important; background-repeat:no-repeat !important; background-position:center !important; }
.puk-eco-check input:focus-visible + span::before { box-shadow:0 0 0 3px rgba(63,111,95,.15) !important; }
.puk-eco-check span { color: var(--puk-text) !important; font-weight: 400 !important; }

/* ── Product line actions (remove + add together) ── */
.puk-line-actions {
  display: flex !important;
  gap: 6px !important;
  align-items: center !important;
  padding-bottom: 2px !important;
}

/* ── Delivery row alignment ── */
.puk-delivery-row { display:flex !important; gap:14px !important; align-items:flex-end !important; flex-wrap:wrap !important; }
.puk-delivery-row .puk-rq-field { flex:1; min-width:120px; margin-bottom:0 !important; }

/* ── Global custom select — optgroup headers ── */
.puk-custom-select-group {
  padding: 6px 14px 4px !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  color: var(--puk-muted, #6b7a72) !important;
  border-top: 1px solid var(--puk-border, rgba(16,24,20,.08)) !important;
  margin-top: 4px !important;
  pointer-events: none !important;
}
.puk-custom-select-group:first-child { border-top: none !important; margin-top: 0 !important; }
.puk-custom-select-option--grouped { padding-left: 22px !important; }

/* Designer form — logo file input */
.puk-des-form-field input[type="file"] {
  display: block;
  width: 100%;
  padding: 9px 14px;
  border: 1px solid var(--puk-border, #d4ddd9);
  border-radius:var(--puk-radius-input,8px);
  background: var(--puk-input-bg, #fff);
  color: var(--puk-text, #0f1412);
  font-family: Poppins, sans-serif;
  font-size: 14px;
  cursor: pointer;
  box-sizing: border-box;
}

.puk-des-form-field input[type="file"]::file-selector-button {
  background: var(--puk-green-500, var(--puk-primary,#3f6f5f));
  color: #fff;
  border: none;
  border-radius:var(--puk-radius,6px);
  padding: 5px 12px;
  font-family: Poppins, sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  margin-right: 10px;
}

.puk-des-form-field input[type="file"]::file-selector-button:hover {
  background: var(--puk-green-700, var(--puk-button,#2a4a3f));
}

.puk-des-form-field input[type="file"] {
  border: none;
  padding: 0;
}

.puk-des-form-field--logo {
  margin-top: 12px;
}

.puk-des-field-hint {
  font-size: 12px;
  color: var(--puk-muted-2, #6b7a72);
  margin: 4px 0 0;
}

/* Dark mode */
html.puk-dark .puk-des-form-field input[type="file"] {
  border-color: var(--puk-border);
  background: var(--puk-input-bg);
  color: var(--puk-text);
}

/* Designer card — logo full width, top aligned */
.puk-des-card-avatar {
  background: #FFF !important;
  align-self: flex-start;
  flex-shrink: 0;
}

.puk-des-card-avatar img {
  width: 90% !important;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 0 !important;
}

/* Designer card — location pin stays on first line */
.puk-des-card-loc {
  display: flex;
  align-items: flex-start !important;
  gap: 4px;
  white-space: normal;
}

.puk-des-card-loc svg {
  flex-shrink: 0;
  margin-top: 3px;
  width: 10px;
  height: 10px;
}

/* Map — stop it overlaying the header */
#puk-designer-map {
  z-index: 0;
}

/* Filter row — equal width columns, search not squashed */
.puk-des-filter-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 10px;
  align-items: center;
}

/* Designer form — success/error message text */
.puk-des-msg {
  font-size: 14px;
  line-height: 1.5;
}

.puk-des-msg strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
}

 /* Suppliers map section — spacing and rounded corners */
.puk-sup-map-section {
  margin-top: clamp(24px,4vw,40px);
  border-radius:var(--puk-radius,20px);
  overflow: hidden;
}

/* Supplier map — stop it overlaying the header */
#puk-supplier-map {
  z-index: 0;
}

/* Supplier apply success — constrain width and centre */
.puk-supplier-applied-wrap {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}

/* Supplier apply — confirmation page centred vertically */
.puk-supplier-applied {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Trade & Agency — spacing between inset sections */
.puk-trade-inset-section {
  margin-top: 24px !important;
  margin-bottom: 24px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Eco products — hide search bar entirely */
.puk-pp-search-bar { display: none !important; }

/* Eco products — remove dark grey hover box on category chevron button */
.puk-cat-parent-btn:hover {
  background: none !important;
  color: var(--puk-primary,#3f6f5f) !important;
}