/*
Theme Name: NZ Smart Services
Template: blocksy
Description: Retail v3 — conventional WooCommerce shop layout (AnySell-inspired).
Version: 3.0.0
Author: TLM Tech
*/

/* ─── 1. DESIGN TOKENS ─────────────────────────────────────────────── */
:root {
  /* Surfaces — clean white retail */
  --bg:           #FFFFFF;
  --bg-soft:      #F6F7F9;
  --bg-alt:       #EEF1F4;
  --bg-pastel:    #E6ECF2;       /* hero banner soft background */
  --line:         #E5E7EB;
  --line-2:       #D1D5DB;

  /* Text */
  --text:         #0F172A;       /* near-black, slight warm */
  --text-2:       #475569;
  --text-3:       #94A3B8;

  /* Brand */
  --navy:         #142847;       /* primary / header */
  --navy-2:       #1F3A66;
  --navy-3:       #2A4F87;
  --navy-soft:    #6889B3;

  /* Accents */
  --accent:       #0FA968;       /* fresh green CTA — Kiwi nod, retail-bright */
  --accent-2:     #0C8A55;
  --accent-soft:  #D9F4E6;

  --sale:         #EF4444;       /* red sale badges */
  --sale-soft:    #FEE2E2;
  --star:         #F59E0B;       /* amber star ratings */

  /* Type */
  --font:         'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

  /* Radii */
  --r-sm:         6px;
  --r:            10px;
  --r-lg:         14px;
  --r-xl:         20px;

  /* Spacing */
  --gutter:       clamp(1rem, 3vw, 2rem);
  --container:    1280px;

  /* Motion */
  --ease:         cubic-bezier(0.22, 1, 0.36, 1);

  /* Shadow */
  --shadow-sm:    0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow:       0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow-lg:    0 10px 30px rgba(15, 23, 42, 0.08);
}

/* ─── 2. RESET ─────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body, .ct-container, .ct-container-full, .entry-content {
  font-family: var(--font);
  font-feature-settings: 'cv11', 'ss03';
  font-size: 15px;
  line-height: 1.55;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font);
  color: var(--text);
  font-weight: 700;
  letter-spacing: -0.018em;
  line-height: 1.15;
  margin: 0 0 0.6em;
}
h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; letter-spacing: -0.03em; }
h2 { font-size: clamp(1.4rem, 2.4vw, 1.85rem); }
h3 { font-size: 1.05rem; font-weight: 600; }

p { color: var(--text-2); margin: 0 0 1em; }

a { color: var(--text); text-decoration: none; transition: color .15s var(--ease); }
a:hover { color: var(--accent); }

/* ─── 3. (legacy utilbar removed; replaced by catbar in section 6.5) ── */

/* ─── 4. HEADER (custom desktop top row + catbar; Blocksy hidden on desktop) ──── */

/* Hide Blocksy's desktop header — we render our own via wp_body_open */
@media (min-width: 1000px) {
  body header.ct-header { display: none !important; }
}
/* On mobile, keep Blocksy's header (for hamburger nav) — make it navy */
@media (max-width: 999px) {
  .nzss-header-top, .nzss-catbar { display: none !important; }
  body header.ct-header,
  body header.ct-header > div,
  body header.ct-header [data-row],
  body header.ct-header [data-row] > div,
  body header.ct-header .ct-container {
    background: var(--navy) !important;
    border: none !important;
  }
  body header.ct-header [data-row="middle"] { padding: 14px 0 !important; }
  body .site-title-container, body .site-title { display: none !important; }
  body header.ct-header img.default-logo,
  body header.ct-header .site-logo-container img {
    filter: brightness(0) invert(1) !important;
    max-height: 40px !important;
    width: auto !important;
  }
  body header.ct-header svg,
  body header.ct-header svg path,
  body header.ct-header [class*="ct-icon"],
  body header.ct-header .ct-toggle,
  body header.ct-header button { color: #fff !important; }
  body header.ct-header svg { fill: currentColor !important; stroke: currentColor !important; width: 24px !important; height: 24px !important; }
  body header.ct-header .ct-header-trigger,
  body header.ct-header .ct-header-search { width: 24px !important; height: 24px !important; }
}

/* CUSTOM TOP ROW — compact, AnySell-style */
.nzss-header-top {
  background: var(--navy);
  padding: 0;
}
.nzss-header-top__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 16px var(--gutter);
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 24px;
  min-height: 76px;
}

/* Logo */
.nzss-header-top__logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.nzss-header-top__logo img {
  max-height: 44px;
  width: auto;
  filter: brightness(0) invert(1);
}

/* Search bar — AnySell spec: bg slightly lighter than header, pill radius 100px, h=46 */
.nzss-header-top__search {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--navy-2);
  border-radius: 100px;
  height: 46px;
  padding: 0 20px;
  gap: 10px;
  max-width: 520px;
  width: 100%;
}
.nzss-header-top__search .search-icon {
  width: 18px; height: 18px;
  color: rgba(255,255,255,0.5);
  flex-shrink: 0;
}
.nzss-header-top__search input[type="search"] {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-family: var(--font);
  font-size: 14px;
  font-weight: 400;
  padding: 0;
  height: 100%;
  min-width: 0;
}
.nzss-header-top__search input[type="search"]::placeholder { color: rgba(255,255,255,0.45); }
.nzss-header-top__search input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

/* Promo block — circular icon + 2-line text */
.nzss-header-top__promo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.nzss-header-top__promo .circle {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--navy-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  flex-shrink: 0;
}
.nzss-header-top__promo .circle svg { width: 22px; height: 22px; }
.nzss-header-top__promo-text { display: flex; flex-direction: column; line-height: 1.2; }
.nzss-header-top__promo-text .eyebrow {
  font-size: 11px;
  color: rgba(255,255,255,0.6);
  font-weight: 400;
}
.nzss-header-top__promo-text strong {
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}

/* Header icons (account, cart) */
.nzss-header-top__icons {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.nzss-header-top__icons .icon-btn {
  position: relative;
  width: 44px; height: 44px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.85);
  background: transparent;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.nzss-header-top__icons .icon-btn:hover {
  background: var(--navy-2);
  color: #fff;
}
.nzss-header-top__icons .icon-btn--cart {
  background: var(--navy-2);
  color: #fff;
}
.nzss-header-top__icons .icon-btn--cart:hover { background: var(--accent); }
.nzss-header-top__icons .icon-btn svg { width: 20px; height: 20px; }
.nzss-header-top__icons .cart-count {
  position: absolute;
  top: -2px; right: -2px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--accent);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--navy);
}

/* Hide promo on smaller desktops where space is tight */
@media (max-width: 1180px) {
  .nzss-header-top__promo { display: none; }
}


/* ─── 5. BUTTONS ───────────────────────────────────────────────────── */
.nzss-btn,
.wp-block-button__link,
button.button,
.button,
.ct-button {
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  background: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 0.85rem 1.5rem !important;
  font-family: var(--font) !important;
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  letter-spacing: 0;
  text-transform: none !important;
  text-decoration: none;
  transition: background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15, 169, 104, 0.2);
}
.nzss-btn:hover,
.wp-block-button__link:hover,
.button:hover,
.ct-button:hover {
  background: var(--accent-2) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15, 169, 104, 0.3);
}
.nzss-btn--ghost {
  background: transparent !important;
  color: var(--text) !important;
  border: 1px solid var(--line-2) !important;
  box-shadow: none !important;
}
.nzss-btn--ghost:hover {
  background: var(--text) !important;
  color: #fff !important;
  border-color: var(--text) !important;
}
.nzss-btn--dark {
  background: var(--navy) !important;
}
.nzss-btn--dark:hover { background: var(--navy-2) !important; }

.nzss-btn .arrow,
.nzss-link .arrow {
  display: inline-block;
  width: 12px; height: 12px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'><path d='M3 9l6-6m0 0H4m5 0v5' stroke='black' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
          mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'><path d='M3 9l6-6m0 0H4m5 0v5' stroke='black' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
}

/* ─── 6. CONTAINER & SECTIONS ──────────────────────────────────────── */
.nzss-container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.nzss-section { padding: 3.5rem 0; }
.nzss-section--alt { background: var(--bg-soft); }
.nzss-section--tight { padding: 2.5rem 0; }

.nzss-section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.nzss-section-head h2 { margin: 0; }
.nzss-section-head .view-all {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--text-2);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.nzss-section-head .view-all:hover { color: var(--accent); }
.nzss-section-head .view-all::after {
  content: '';
  width: 14px; height: 14px;
  display: inline-block;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'><path d='M4 2l4 4-4 4' stroke='black' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
          mask: url("data:image/svg+xml;utf8,<svg viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'><path d='M4 2l4 4-4 4' stroke='black' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / contain;
}

/* ─── 6.5 CATEGORY BAR (AnySell-spec: cats trigger + nav + phone) ──── */

/* Sits flush against bottom of Blocksy header — visually merges into header */
.nzss-catbar {
  background: var(--navy);
}
.nzss-catbar__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  align-items: stretch;
  height: 48px;
  gap: 0;
}

/* Categories area — wraps trigger + dropdown so dropdown can position absolutely */
.nzss-catbar__cats {
  position: relative;
  width: 306px;
  flex-shrink: 0;
  align-self: end;
  height: 100%;
}

/* Trigger button — matches AnySell exactly: 306×48, slate bg, 8px top radius */
.nzss-catbar__trigger {
  display: flex;
  align-items: center;
  gap: 0;
  width: 100%;
  height: 100%;
  background: #333D4C;
  color: #E0E5EB !important;
  padding: 12px 12px 12px 24px;
  border: none;
  border-radius: 8px 8px 0 0;
  font-family: var(--font);
  font-size: 16px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  transition: background .15s var(--ease);
}
.nzss-catbar__trigger:hover { background: #3F4A5B; }
.nzss-catbar__trigger .grid {
  width: 18px; height: 18px;
  flex-shrink: 0;
  color: currentColor;
  margin-right: 14px;
}
.nzss-catbar__trigger .label {
  flex: 1;
  text-align: left;
}
.nzss-catbar__trigger .chev {
  width: 12px; height: 12px;
  flex-shrink: 0;
  color: currentColor;
  margin-left: 8px;
  transition: transform .2s var(--ease);
}
.nzss-catbar__cats.is-open .nzss-catbar__trigger .chev,
.nzss-catbar__cats:hover .nzss-catbar__trigger .chev {
  transform: rotate(180deg);
}

/* Dropdown — absolutely positioned, hangs from below trigger */
.nzss-catbar__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 306px;
  background: #FFFFFF;
  border: 1px solid #EEF1F6;
  border-radius: 0 0 16px 16px;
  padding: 12px;
  box-shadow: 0 8px 32px -4px rgba(103, 111, 123, 0.10);
  z-index: 50;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: max-height .35s var(--ease), opacity .25s var(--ease);
}
.nzss-catbar__cats.is-open .nzss-catbar__dropdown,
.nzss-catbar__cats:hover .nzss-catbar__dropdown {
  max-height: 600px;
  opacity: 1;
  pointer-events: auto;
}

/* Dropdown link — AnySell spec: 14px font, 8.5px 15px padding */
.nzss-catbar__dropdown .nzss-cat-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8.5px 15px;
  border-radius: 6px;
  color: #333D4C;
  font-size: 14px;
  font-weight: 500;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.nzss-catbar__dropdown .nzss-cat-link:hover {
  background: var(--bg-soft);
  color: var(--text);
}
.nzss-catbar__dropdown .nzss-cat-link__icon {
  width: 22px; height: 22px;
  flex-shrink: 0;
  color: #475569;
}
.nzss-catbar__dropdown .nzss-cat-link__icon svg { width: 100%; height: 100%; display: block; }
.nzss-catbar__dropdown .nzss-cat-link__label { flex: 1; }
.nzss-catbar__dropdown .nzss-cat-link__chev {
  width: 12px; height: 12px;
  flex-shrink: 0;
  color: #94A3B8;
}
.nzss-catbar__dropdown .nzss-cat-link__chev svg { width: 100%; height: 100%; }

/* Primary nav inside catbar — AnySell-style: white text, 16px, gap'd */
.nzss-catbar__nav {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 32px;
  padding-left: 32px;
  height: 100%;
}
.nzss-catbar__nav a {
  color: rgba(224, 229, 235, 0.95);
  font-size: 16px;
  font-weight: 400;
  height: 100%;
  display: inline-flex;
  align-items: center;
  transition: color .15s var(--ease);
}
.nzss-catbar__nav a:hover { color: var(--accent); }
.nzss-catbar__nav a.is-active { color: var(--accent); font-weight: 500; }

/* Phone on the right side of catbar */
.nzss-catbar__phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: center;
  color: rgba(224, 229, 235, 0.95);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}
.nzss-catbar__phone svg { width: 16px; height: 16px; color: var(--accent); }
.nzss-catbar__phone a { color: #fff; }
.nzss-catbar__phone a:hover { color: var(--accent); }

@media (max-width: 1000px) {
  .nzss-catbar { display: none; }
}

/* ─── 7. HERO — vertical category sidebar + banner ─────────────────── */
.nzss-hero {
  padding: 0 0 0;
  background: var(--bg);
}
.nzss-hero__grid {
  display: grid;
  grid-template-columns: 306px 1fr;
  gap: 24px;
}
.nzss-hero__grid::before {
  /* Reserve space for the absolute-positioned catbar dropdown overlay */
  content: '';
  display: block;
}
@media (max-width: 1000px) {
  .nzss-hero__grid { grid-template-columns: 1fr; gap: 0; }
  .nzss-hero__grid::before { display: none; }
}

/* Category sidebar */
.nzss-hero__cats { display: none; }
.nzss-cat-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  border-radius: var(--r-sm);
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 500;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.nzss-cat-link:hover { background: var(--bg-soft); color: var(--text); }
.nzss-cat-link__icon {
  width: 22px; height: 22px;
  flex-shrink: 0;
  color: var(--text-2);
}
.nzss-cat-link__icon svg { width: 100%; height: 100%; display: block; }
.nzss-cat-link:hover .nzss-cat-link__icon { color: var(--accent); }
.nzss-cat-link__label { flex: 1; }
.nzss-cat-link__chev {
  width: 14px; height: 14px;
  color: var(--text-3);
  flex-shrink: 0;
}
.nzss-cat-link__chev svg { width: 100%; height: 100%; }
.nzss-hero__cats-title {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.85rem 0.95rem;
  background: var(--navy);
  color: #fff;
  font-size: 0.88rem;
  font-weight: 600;
  border-radius: var(--r-sm);
  margin-bottom: 0.4rem;
}
.nzss-hero__cats-title svg { width: 18px; height: 18px; }

/* Hero banner */
.nzss-hero__banner {
  background: var(--bg-pastel);
  border-radius: var(--r-lg);
  padding: clamp(2rem, 4vw, 3.5rem);
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 2rem;
  min-height: 360px;
}
@media (max-width: 720px) {
  .nzss-hero__banner { grid-template-columns: 1fr; min-height: 280px; padding: 1.5rem; }
}
.nzss-hero__banner-eyebrow {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-2);
  margin-bottom: 0.6rem;
}
.nzss-hero__banner-title {
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: var(--text);
  margin: 0 0 1.5rem;
}
.nzss-hero__banner-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.nzss-hero__banner-figure {
  position: relative;
  height: 100%;
  min-height: 240px;
  border-radius: var(--r);
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  overflow: hidden;
}
.nzss-hero__banner-figure svg.bg-deco {
  position: absolute;
  width: 100%; height: 100%;
  opacity: 0.18;
  inset: 0;
}
.nzss-hero__banner-figure .device {
  position: relative; z-index: 2;
  width: 60%;
  max-width: 220px;
}
.nzss-hero__banner-figure .device svg { width: 100%; height: auto; display: block; }

/* ─── 8. TRUST STRIP ───────────────────────────────────────────────── */
.nzss-trust {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  padding: 2.5rem 0;
}
@media (min-width: 720px) {
  .nzss-trust { grid-template-columns: repeat(4, 1fr); }
}
.nzss-trust__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0;
}
.nzss-trust__icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--bg-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--navy);
}
.nzss-trust__icon svg { width: 26px; height: 26px; }
.nzss-trust__title { font-size: 0.95rem; font-weight: 600; color: var(--text); margin: 0 0 0.15rem; }
.nzss-trust__desc { font-size: 0.82rem; color: var(--text-3); margin: 0; }

/* ─── 9. FEATURED — promo card + product mini-rows ─────────────────── */
.nzss-featured {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 1000px) {
  .nzss-featured { grid-template-columns: minmax(280px, 360px) 1fr; }
}

/* Big promo card */
.nzss-promo-card {
  background: linear-gradient(160deg, #1B3258 0%, #142847 100%);
  border-radius: var(--r-lg);
  padding: 2rem;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
  min-height: 380px;
  isolation: isolate;
}
.nzss-promo-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 75% 20%, rgba(15, 169, 104, 0.32), transparent 55%),
    radial-gradient(circle at 25% 85%, rgba(104, 137, 179, 0.22), transparent 50%);
  z-index: -1;
}
.nzss-promo-card__title {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0 0 0.4rem;
  color: #fff;
}
.nzss-promo-card__sub {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.75);
  margin: 0 0 2rem;
}
.nzss-promo-card__device {
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  margin-bottom: 1.5rem;
}
.nzss-promo-card__device svg { height: 100%; width: auto; }
.nzss-promo-card__cta {
  align-self: flex-start;
  background: #fff !important;
  color: var(--navy) !important;
}
.nzss-promo-card__cta:hover {
  background: var(--accent) !important;
  color: #fff !important;
}

/* Mini product rows (3x2) */
.nzss-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (max-width: 600px) {
  .nzss-mini-grid { grid-template-columns: 1fr; }
}
.nzss-mini-card {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 0.85rem;
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 0.75rem;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.nzss-mini-card:hover {
  border-color: var(--accent);
  box-shadow: var(--shadow);
}
.nzss-mini-card__img {
  width: 90px; height: 90px;
  background: var(--bg-soft);
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-3);
}
.nzss-mini-card__img svg { width: 50%; height: 50%; }
.nzss-mini-card__body { min-width: 0; }
.nzss-mini-card__stars {
  display: inline-flex;
  gap: 1px;
  color: var(--star);
  font-size: 0.7rem;
  margin-bottom: 0.25rem;
}
.nzss-mini-card__title {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--text);
  margin: 0 0 0.3rem;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.nzss-mini-card__price {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}
.nzss-mini-card__price .old { color: var(--text-3); font-weight: 400; text-decoration: line-through; margin-left: 0.4rem; font-size: 0.8rem; }

/* Sale tag corner badge */
.sale-badge {
  display: inline-block;
  background: var(--sale);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.18rem 0.5rem;
  border-radius: var(--r-sm);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ─── 10. PRODUCT GRID — 4-column ──────────────────────────────────── */
.nzss-grid-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 720px) {
  .nzss-grid-4 { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
}
.nzss-card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 1rem 1rem 1.1rem;
  position: relative;
  transition: border-color .2s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
  display: flex;
  flex-direction: column;
}
.nzss-card:hover {
  border-color: var(--line-2);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.nzss-card__sale {
  position: absolute;
  top: 0.85rem; left: 0.85rem;
  z-index: 2;
}
.nzss-card__img {
  aspect-ratio: 1 / 1;
  width: 100%;
  background: var(--bg-soft);
  border-radius: var(--r-sm);
  margin-bottom: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-3);
  overflow: hidden;
}
.nzss-card__img svg { width: 50%; height: 50%; }
.nzss-card__stars {
  display: inline-flex;
  gap: 1px;
  color: var(--star);
  font-size: 0.78rem;
  margin-bottom: 0.35rem;
}
.nzss-card__title {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--text);
  margin: 0 0 0.5rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nzss-card__title:hover { color: var(--accent); }
.nzss-card__price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
}
.nzss-card__price {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
}
.nzss-card__price .old { color: var(--text-3); font-weight: 400; text-decoration: line-through; margin-left: 0.4rem; font-size: 0.82rem; }
.nzss-card__cart-btn {
  width: 36px; height: 36px;
  border-radius: var(--r-sm);
  background: var(--bg-soft);
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-2);
  cursor: pointer;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.nzss-card__cart-btn:hover { background: var(--accent); color: #fff; }
.nzss-card__cart-btn svg { width: 16px; height: 16px; }

/* ─── 11. PROMOTIONAL DISCOUNT BANNER ──────────────────────────────── */
.nzss-promo-banner {
  background: var(--bg-pastel);
  border-radius: var(--r-lg);
  padding: 2rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 2rem;
  align-items: center;
  position: relative;
  overflow: hidden;
}
@media (max-width: 900px) {
  .nzss-promo-banner { grid-template-columns: 1fr; gap: 1.25rem; text-align: left; padding: 1.5rem; }
  .nzss-promo-banner__figure { display: none; }
}
.nzss-promo-banner__pct {
  font-size: clamp(3rem, 8vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 1;
  color: var(--text);
  position: relative;
  padding-right: 1.5rem;
  border-right: 2px dashed var(--line-2);
}
.nzss-promo-banner__pct sup {
  font-size: 0.4em;
  vertical-align: super;
  font-weight: 700;
  margin-left: -0.3rem;
}
.nzss-promo-banner__pct small {
  font-size: 0.22em;
  display: block;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: right;
  color: var(--text-2);
  margin-top: -0.3rem;
}
.nzss-promo-banner__copy h3 {
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 0.4rem;
  color: var(--text);
  text-transform: uppercase;
}
.nzss-promo-banner__copy p { color: var(--text-2); margin: 0; font-size: 0.95rem; }
.nzss-promo-banner__copy strong { color: var(--text); font-weight: 700; }
.nzss-promo-banner__figure {
  width: 180px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nzss-promo-banner__figure svg { width: 100%; height: 100%; }

/* ─── 12. CONTACT / SHOP-INFO BLOCK ────────────────────────────────── */
.nzss-info-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 720px) {
  .nzss-info-grid { grid-template-columns: repeat(3, 1fr); }
}
.nzss-info-card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 1.5rem;
}
.nzss-info-card h3 {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.nzss-info-card h3 svg { width: 18px; height: 18px; color: var(--accent); }
.nzss-info-card p { margin: 0 0 0.4em; font-size: 0.92rem; color: var(--text-2); }
.nzss-info-card a { color: var(--text); font-weight: 600; }
.nzss-info-card a:hover { color: var(--accent); }

/* ─── 13. REPAIR SERVICES GRID ─────────────────────────────────────── */
.nzss-services {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 900px) {
  .nzss-services { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
}
.nzss-service {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 1.5rem 1.25rem;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.nzss-service:hover {
  border-color: var(--accent);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.nzss-service__icon {
  width: 44px; height: 44px;
  border-radius: var(--r-sm);
  background: var(--accent-soft);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent-2);
  margin-bottom: 0.4rem;
}
.nzss-service__icon svg { width: 22px; height: 22px; }
.nzss-service__title { font-size: 1rem; font-weight: 600; margin: 0; }
.nzss-service__desc { font-size: 0.85rem; color: var(--text-3); margin: 0; }
.nzss-service__price { font-size: 0.85rem; color: var(--text-2); margin-top: 0.4rem; }
.nzss-service__price strong { color: var(--accent-2); font-weight: 700; }

/* ─── 14. REPAIR PRICE TABLE ───────────────────────────────────────── */
.nzss-price-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
}
.nzss-price-table thead th {
  background: var(--bg-soft);
  text-align: left;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-2);
  padding: 0.85rem 1rem;
  font-weight: 600;
  border-bottom: 1px solid var(--line);
}
.nzss-price-table tbody td {
  padding: 1rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.95rem;
  color: var(--text);
}
.nzss-price-table tbody tr:last-child td { border-bottom: none; }
.nzss-price-table tbody tr:hover td { background: var(--bg-soft); }
.nzss-price-table .device { font-weight: 600; }
.nzss-price-table .desc { color: var(--text-2); }
.nzss-price-table .price { text-align: right; font-weight: 700; color: var(--accent-2); white-space: nowrap; }

/* ─── 15. FOOTER (custom AnySell-style 2-section footer) ─────────── */

/* Hide Blocksy's default footer entirely */
body footer.ct-footer { display: none !important; }

.nzss-footer {
  background: var(--bg);
  margin-top: 4rem;
  font-family: var(--font);
}

/* === Upper section: navy, newsletter + contact === */
.nzss-footer__top {
  background: var(--navy);
  color: rgba(255,255,255,0.75);
  padding: 3.5rem 0;
}
.nzss-footer__top-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 3rem;
}
@media (max-width: 900px) {
  .nzss-footer__top-inner { grid-template-columns: 1fr; gap: 2rem; }
}
.nzss-footer__h3 {
  color: #fff;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 0.6rem;
}
.nzss-footer__top p {
  color: rgba(255,255,255,0.65);
  margin: 0 0 1.25rem;
  font-size: 0.92rem;
}

/* Newsletter form */
.nzss-footer__form {
  display: flex;
  align-items: stretch;
  gap: 0;
  max-width: 460px;
  background: var(--navy-2);
  border-radius: 100px;
  padding: 4px;
  margin-bottom: 1.25rem;
}
.nzss-footer__form input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  padding: 0 1.1rem;
  font-family: var(--font);
  font-size: 0.92rem;
  min-width: 0;
}
.nzss-footer__form input[type="email"]::placeholder { color: rgba(255,255,255,0.45); }
.nzss-footer__form button {
  border-radius: 100px !important;
  padding: 0.7rem 1.4rem !important;
  font-size: 0.9rem !important;
  white-space: nowrap;
}

/* Social/contact icon row */
.nzss-footer__social {
  display: inline-flex;
  gap: 10px;
  margin-top: 0.5rem;
}
.nzss-footer__social a {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--navy-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.85);
  transition: background .15s var(--ease), color .15s var(--ease);
}
.nzss-footer__social a:hover { background: var(--accent); color: #fff; }
.nzss-footer__social svg { width: 18px; height: 18px; }

/* Contact block on right */
.nzss-footer__contact-line {
  margin: 0 0 0.85rem !important;
  color: rgba(255,255,255,0.7);
}
.nzss-footer__contact-line strong { color: #fff; font-weight: 600; }
.nzss-footer__contact-line a {
  color: rgba(255,255,255,0.85);
  font-weight: 500;
}
.nzss-footer__contact-line a:hover { color: var(--accent); }

/* === Lower section: light grey, columns + payments === */
.nzss-footer__bottom {
  background: var(--bg-soft);
  padding: 3rem 0 2rem;
}
.nzss-footer__bottom-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1.2fr 3fr;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 900px) {
  .nzss-footer__bottom-inner { grid-template-columns: 1fr; gap: 2rem; }
}

/* Brand block */
.nzss-footer__brand .nzss-footer__logo {
  display: inline-block;
  margin-bottom: 1rem;
}
.nzss-footer__brand img {
  max-height: 48px;
  width: auto;
}
.nzss-footer__tagline {
  font-size: 0.88rem;
  color: var(--text-2);
  margin: 0;
  max-width: 320px;
  line-height: 1.5;
}

/* 4-column nav */
.nzss-footer__cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 900px) {
  .nzss-footer__cols { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}
@media (max-width: 480px) {
  .nzss-footer__cols { grid-template-columns: 1fr; }
}
.nzss-footer__col h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 1rem;
  letter-spacing: -0.01em;
}
.nzss-footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.nzss-footer__col li {
  margin: 0 0 0.55rem;
}
.nzss-footer__col a {
  color: var(--text-2);
  font-size: 0.88rem;
  font-weight: 400;
  transition: color .15s var(--ease);
}
.nzss-footer__col a:hover { color: var(--accent); }

/* Divider rule between cols and copyright row */
.nzss-footer__rule {
  max-width: var(--container);
  margin: 2.5rem auto 1.5rem;
  padding: 0 var(--gutter);
  border-top: 1px solid var(--line);
}

/* Copyright + payments row */
.nzss-footer__legal-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.nzss-footer__copy {
  font-size: 0.8rem;
  color: var(--text-3);
  margin: 0;
}
.nzss-footer__pay {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.nzss-footer__pay .pay-pill {
  padding: 6px 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-2);
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.nzss-footer__pay svg { width: 14px; height: 14px; }

/* ─── 16. WOOCOMMERCE PRODUCT CARDS (real WC) ──────────────────────── */
ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  gap: 1.25rem !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
ul.products li.product {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 1rem !important;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
  transition: box-shadow .25s var(--ease), transform .25s var(--ease), border-color .2s var(--ease);
  position: relative;
}
ul.products li.product:hover {
  border-color: var(--line-2);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
ul.products li.product img {
  width: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  margin-bottom: 0.85rem !important;
  background: var(--bg-soft);
  border-radius: var(--r-sm);
}
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
ul.products li.product h3 {
  font-family: var(--font) !important;
  font-weight: 500 !important;
  font-size: 0.92rem !important;
  color: var(--text) !important;
  letter-spacing: 0 !important;
  padding: 0 !important;
  margin: 0 0 0.45rem !important;
  line-height: 1.3 !important;
}
ul.products li.product .price {
  font-family: var(--font) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  color: var(--text) !important;
  margin: 0 0 0.85rem !important;
}
ul.products li.product .price del { color: var(--text-3) !important; font-weight: 400 !important; margin-right: 0.4rem; font-size: 0.85rem !important; }
ul.products li.product .price ins { background: transparent !important; text-decoration: none !important; font-weight: 700 !important; color: var(--text) !important; }
ul.products li.product .button { width: 100% !important; justify-content: center !important; }
ul.products li.product .star-rating { color: var(--star) !important; font-size: 0.78rem !important; margin-bottom: 0.4rem !important; }

/* Sale badge on real WC products */
span.onsale {
  background: var(--sale) !important;
  color: #fff !important;
  border-radius: var(--r-sm) !important;
  font-family: var(--font) !important;
  font-size: 0.62rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  padding: 0.22rem 0.55rem !important;
  text-transform: uppercase !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1 !important;
  position: absolute !important;
  top: 1rem !important; left: 1rem !important; right: auto !important;
}

/* ─── 16.5 HIDE Blocksy's main nav (replaced by catbar nav) ────────── */
body header.ct-header [data-id="menu"],
body header.ct-header nav.ct-header-menu,
body header.ct-header [data-row="middle"] nav,
body header.ct-header [data-row="middle"] .menu,
body header.ct-header > div > nav {
  display: none !important;
}

/* ─── 17. PAGE-TITLE BAR — KILL the Blocksy default banner ─────────── */
.hero-section[data-type="type-1"],
.hero-section.is-width-constrained,
article.page > .hero-section {
  display: none !important;
}
body.home .ct-container-full,
body.page .ct-container-full,
body.home main#main,
body.page main#main { padding-top: 0 !important; }
.ct-container-full { padding-top: 0 !important; }
article.page { margin-top: 0 !important; }

/* ─── 18. STARS UTILITY ────────────────────────────────────────────── */
.stars-5::before {
  content: '★★★★★';
  color: var(--star);
  letter-spacing: 1px;
}

/* ─── 19. RESPONSIVE ───────────────────────────────────────────────── */
@media (max-width: 1000px) {
  .nzss-hero__cats { display: none; }   /* Hide vertical sidebar on small screens */
}
@media (max-width: 720px) {
  .nzss-section { padding: 2.5rem 0; }
  .nzss-hero__banner { min-height: 220px; }
  .nzss-hero__banner-figure { display: none; }
  .nzss-hero__banner { grid-template-columns: 1fr; }
}

/* ─── 14. PRODUCT PAGE OVERHAUL — 2026-05-03 (rev 2) ────────────────── */
/* DOM order of children inside .summary.entry-summary:
     h1.product_title
     <square-placement>                                — Afterpay
     div.widget-product                                — Zip
     p.price
     div#Woo_PPCP.ppcp-messages                        — PayPal pay-later messages
     span#divider_1.ct-product-divider
     div.ct-product-add-to-cart  (stock + form.cart)
     div#wc-stripe-express-checkout-element            — G Pay / Apple Pay (Stripe Express)
     wc-order-attribution-inputs
     div.ppc-button-wrapper > #ppc-button-ppcp-gateway — PayPal Express
     span#divider_2.ct-product-divider
     div.product_meta

   Visual order we want:
     1. title
     2. price
     3. Afterpay
     4. Zip
     5. PayPal pay-later messages
     6. G Pay (Stripe Express)
     7. PayPal Express
     8. divider_1
     9. add-to-cart (stock + Add to Cart button)
    10. divider_2
    11. meta
*/

/* Title — friendly, retail tone (less blocky) */
.single-product .product_title.entry-title {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif;
  font-weight: 500;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text, #0F172A);
  margin: 0 0 1.25rem 0;
}

/* Use flex to enable child re-ordering */
.single-product .summary.entry-summary {
  display: flex;
  flex-direction: column;
}

/* Order rules — direct children only */
.single-product .summary.entry-summary > .product_title              { order: 1; }
.single-product .summary.entry-summary > .price                      { order: 2; }
.single-product .summary.entry-summary > square-placement            { order: 3; }
.single-product .summary.entry-summary > .widget-product             { order: 4; }
.single-product .summary.entry-summary > .ppcp-messages              { order: 5; }
.single-product .summary.entry-summary > #wc-stripe-express-checkout-element { order: 6; }
.single-product .summary.entry-summary > wc-order-attribution-inputs { order: 6; }
.single-product .summary.entry-summary > .ppc-button-wrapper         { order: 7; }
.single-product .summary.entry-summary > .ct-product-divider#divider_1,
.single-product .summary.entry-summary > [data-id="divider_1"]       { order: 8; }
.single-product .summary.entry-summary > .ct-product-add-to-cart     { order: 9; }
.single-product .summary.entry-summary > form.cart                   { order: 9; }
.single-product .summary.entry-summary > .ct-product-divider#divider_2,
.single-product .summary.entry-summary > [data-id="divider_2"]       { order: 10; }
.single-product .summary.entry-summary > .product_meta               { order: 11; }

/* Spacing for the payment-options group */
.single-product .summary.entry-summary > square-placement,
.single-product .summary.entry-summary > .widget-product,
.single-product .summary.entry-summary > .ppcp-messages {
  display: block;
  margin: 0 0 8px 0;
}
.single-product .summary.entry-summary > #wc-stripe-express-checkout-element {
  margin: 6px 0 8px 0;
}
.single-product .summary.entry-summary > .ppc-button-wrapper {
  margin: 0 0 14px 0;
}

/* PRICE — hero of the summary */
.single-product .summary.entry-summary > .price {
  margin: 0.25rem 0 1rem 0;
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--text, #0F172A);
  letter-spacing: -0.02em;
}
.single-product .summary.entry-summary > .price .woocommerce-Price-amount,
.single-product .summary.entry-summary > .price bdi {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}
.single-product .summary.entry-summary > .price .woocommerce-Price-currencySymbol {
  font-size: 0.7em;
  margin-right: 1px;
  vertical-align: 0.18em;
  opacity: 0.85;
}
.single-product .summary.entry-summary > .price .woocommerce-price-suffix {
  display: inline-block;
  margin-left: 8px;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-muted, #6b7280);
  vertical-align: middle;
}
.single-product .summary.entry-summary > .price del {
  font-size: 0.55em;
  font-weight: 500;
  opacity: 0.6;
  margin-right: 10px;
  vertical-align: middle;
}
.single-product .summary.entry-summary > .price ins {
  text-decoration: none;
  color: #16a34a;
}

/* Stock indicator — subtle */
.single-product .summary.entry-summary .stock {
  font-size: 0.875rem;
  font-weight: 500;
  color: #16a34a;
  margin: 0 0 12px 0;
}
.single-product .summary.entry-summary .stock.out-of-stock { color: #dc2626; }

/* ─── 15. CATEGORY DROPDOWN — sub-categories on hover ────────────────── */
.nzss-catbar__dropdown .nzss-cat-link-wrap {
  position: relative;
}
.nzss-catbar__dropdown .nzss-cat-sublist {
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 240px;
  background: var(--bg, #fff);
  border: 1px solid var(--line, #E5E7EB);
  border-radius: 6px;
  padding: 6px 0;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.10);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-4px);
  transition: opacity 120ms ease, transform 120ms ease, visibility 0s linear 120ms;
  z-index: 50;
}
.nzss-catbar__dropdown .nzss-cat-link-wrap:hover .nzss-cat-sublist,
.nzss-catbar__dropdown .nzss-cat-link-wrap:focus-within .nzss-cat-sublist {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  transition: opacity 120ms ease, transform 120ms ease, visibility 0s linear 0s;
}
.nzss-catbar__dropdown .nzss-cat-sublist__item {
  display: block;
  padding: 8px 14px;
  font-size: 0.9rem;
  color: var(--text, #0F172A);
  text-decoration: none;
}
.nzss-catbar__dropdown .nzss-cat-sublist__item:hover,
.nzss-catbar__dropdown .nzss-cat-sublist__item:focus {
  background: var(--bg-soft, #F6F7F9);
  color: var(--accent, #16a34a);
  outline: 0;
}

/* ─── 15b. CHILD CATEGORY OVERLAY FIX ────────────────────────────────── */
/* The dropdown uses overflow:hidden for its max-height animation, which was
   clipping the absolutely-positioned child sublists. When the dropdown is
   open we switch to overflow:visible so children can escape to the right.
*/
.nzss-catbar__cats.is-open .nzss-catbar__dropdown,
.nzss-catbar__cats:hover .nzss-catbar__dropdown {
  overflow: visible;
}

/* The sublist needs higher z-index than the dropdown itself, and
   the wrap needs to expand its hover target so the cursor doesn't fall
   into the gap between parent row and sublist. */
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children {
  position: relative;
}
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children > .nzss-cat-link {
  /* Visual hint that this row has children — chevron rotates */
}
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:hover > .nzss-cat-link .nzss-cat-link__chev,
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:focus-within > .nzss-cat-link .nzss-cat-link__chev {
  color: var(--accent, #16a34a);
}

.nzss-catbar__dropdown .nzss-cat-sublist {
  position: absolute;
  top: -8px;            /* slight upward offset for visual alignment */
  left: calc(100% + 6px);
  min-width: 240px;
  background: #FFFFFF;
  border: 1px solid #EEF1F6;
  border-radius: 12px;
  padding: 8px 0;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateX(-4px);
  transition: opacity 120ms ease, transform 120ms ease, visibility 0s linear 120ms;
  z-index: 60;          /* above the dropdown (z=50) */
  pointer-events: none;
}
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:hover > .nzss-cat-sublist,
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:focus-within > .nzss-cat-sublist {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  pointer-events: auto;
  transition: opacity 120ms ease, transform 120ms ease, visibility 0s linear 0s;
}

/* Bridge the gap between parent row and sublist so the cursor can travel
   without losing :hover. */
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children::after {
  content: "";
  position: absolute;
  top: 0; right: -10px;
  width: 16px; height: 100%;
  pointer-events: none;
}
.nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:hover::after {
  pointer-events: auto;
}

.nzss-catbar__dropdown .nzss-cat-sublist__item {
  display: block;
  padding: 8px 16px;
  font-size: 14px;
  color: #333D4C;
  text-decoration: none;
  transition: background 120ms ease, color 120ms ease;
}
.nzss-catbar__dropdown .nzss-cat-sublist__item:hover,
.nzss-catbar__dropdown .nzss-cat-sublist__item:focus {
  background: var(--bg-soft, #F6F7F9);
  color: var(--accent, #16a34a);
  outline: 0;
}

/* Mobile / narrow: position sublist below instead of beside (left: 100% would push off-screen) */
@media (max-width: 768px) {
  .nzss-catbar__dropdown .nzss-cat-sublist {
    position: static;
    box-shadow: none;
    border: 0;
    padding: 4px 0 4px 32px;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }
  .nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:hover > .nzss-cat-sublist,
  .nzss-catbar__dropdown .nzss-cat-link-wrap.has-children:focus-within > .nzss-cat-sublist {
    display: block;
  }
}

/* ─── 20. MOBILE FOOTER COMPRESSION (≤700px) ─────────────────────────── */
/* Footer was very tall on mobile — newsletter + contact + brand + 4 nav cols
   stacked = ~1500px. This reduces it to ~700-800px while keeping all info. */
@media (max-width: 700px) {

  /* Outer reset margin — no need for huge gap before footer on mobile */
  .nzss-footer { margin-top: 2rem; }

  /* TOP SECTION — newsletter + contact (already 1-col below 900px) */
  .nzss-footer__top {
    padding: 2rem 0 1.75rem;
  }
  .nzss-footer__top-inner {
    gap: 1.5rem;
  }
  .nzss-footer__h3 {
    font-size: 1.1rem;
    margin: 0 0 0.4rem;
  }
  .nzss-footer__top p {
    font-size: 0.875rem;
    margin: 0 0 0.85rem;
  }
  .nzss-footer__form {
    margin-bottom: 0.85rem;
    max-width: none;
  }
  .nzss-footer__form button {
    padding: 0.55rem 1rem !important;
    font-size: 0.85rem !important;
  }
  .nzss-footer__social a {
    width: 36px; height: 36px;
  }
  .nzss-footer__social svg { width: 16px; height: 16px; }
  .nzss-footer__contact-line {
    margin: 0 0 0.55rem !important;
    font-size: 0.875rem;
    line-height: 1.45;
  }

  /* BOTTOM SECTION — brand + 4-col nav + legal */
  .nzss-footer__bottom {
    padding: 1.5rem 0 1.25rem;
  }
  .nzss-footer__bottom-inner {
    gap: 1.25rem;
    grid-template-columns: 1fr;
  }
  .nzss-footer__brand {
    text-align: center;
  }
  .nzss-footer__brand img {
    max-height: 36px;
    width: auto;
  }
  .nzss-footer__tagline {
    font-size: 0.825rem;
    margin: 0.5rem 0 0;
  }

  /* 4-column nav → 2x2 grid (instead of 1×4 stack) — halves the height */
  .nzss-footer__cols {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem 1.5rem !important;
  }
  .nzss-footer__col h4 {
    font-size: 0.875rem;
    margin: 0 0 0.4rem;
  }
  .nzss-footer__col ul { margin: 0; padding: 0; }
  .nzss-footer__col li { margin-bottom: 0.3rem; }
  .nzss-footer__col li a {
    font-size: 0.825rem;
    line-height: 1.35;
  }

  /* Legal row — compact */
  .nzss-footer__rule { margin: 1rem 0 !important; }
  .nzss-footer__legal-inner {
    flex-direction: column;
    gap: 0.75rem;
    align-items: flex-start !important;
  }
  .nzss-footer__copy {
    font-size: 0.7rem;
    line-height: 1.45;
    margin: 0;
  }
  .nzss-footer__pay {
    flex-wrap: wrap;
    gap: 4px;
  }
  .nzss-footer__pay .pay-pill {
    font-size: 0.65rem;
    padding: 3px 8px;
  }
}

/* Even tighter on very narrow phones (<400px) — 4 nav cols become 1-col still
   to avoid cramped 2-col labels */
@media (max-width: 400px) {
  .nzss-footer__cols {
    grid-template-columns: 1fr !important;
    gap: 0.85rem !important;
  }
  .nzss-footer__col h4 { margin-bottom: 0.25rem; }
  .nzss-footer__col li { margin-bottom: 0.2rem; }
}

/* ─── 21. AGGRESSIVE MOBILE FOOTER CUTS (≤700px) ─────────────────────── */
/* Section 20 wasn't enough — footer was still 1007px on mobile.
   This drops it to ~450-500px by hiding redundant blocks and tightening hard.
*/
@media (max-width: 700px) {

  /* TOP — drop the explanatory paragraphs, tighten further */
  .nzss-footer__top {
    padding: 1.5rem 0 1.25rem !important;
  }
  .nzss-footer__top-inner {
    gap: 1.25rem !important;
  }
  .nzss-footer__newsletter > p {
    display: none;   /* remove "Get notified when new refurbished stock lands" copy */
  }
  /* The "Visit the shop" h3 is redundant — phone+addr is self-explanatory */
  .nzss-footer__contact > h3.nzss-footer__h3 {
    display: none;
  }
  .nzss-footer__contact-line {
    margin: 0 0 0.4rem !important;
  }

  /* BOTTOM — hide the redundant brand+tagline (logo already at top of page) */
  .nzss-footer__brand {
    display: none !important;
  }
  .nzss-footer__bottom {
    padding: 1.25rem 0 1rem !important;
  }
  .nzss-footer__bottom-inner {
    gap: 0 !important;
  }

  /* Nav cols: tighten line-heights & font more */
  .nzss-footer__cols {
    gap: 0.85rem 1.25rem !important;
  }
  .nzss-footer__col h4 {
    font-size: 0.8rem !important;
    margin: 0 0 0.3rem !important;
  }
  .nzss-footer__col li {
    margin-bottom: 0.2rem !important;
    line-height: 1.3 !important;
  }
  .nzss-footer__col li a {
    font-size: 0.78rem !important;
  }

  /* Legal — tighter */
  .nzss-footer__rule {
    margin: 0.75rem 0 !important;
  }
  .nzss-footer__legal-inner {
    gap: 0.5rem !important;
  }
  .nzss-footer__copy {
    font-size: 0.65rem !important;
    line-height: 1.4 !important;
  }
}

/* ─── 22. MOBILE FOOTER NAV — flatten to inline pill strip (≤700px) ──── */
/* The 4-column stacked nav was eating 283px on its own. On mobile we
   flatten it: all 20 links wrap into a single flex-wrap row, headings
   hidden. Saves ~180px of vertical and keeps every link reachable.
*/
@media (max-width: 700px) {
  .nzss-footer__cols {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px 14px !important;
    padding-top: 0.25rem;
  }
  .nzss-footer__col {
    display: contents;   /* dissolve the column wrapper into the flex parent */
  }
  .nzss-footer__col h4 {
    display: none !important;
  }
  .nzss-footer__col ul {
    display: contents;
  }
  .nzss-footer__col li {
    margin: 0 !important;
    list-style: none;
  }
  .nzss-footer__col li a {
    font-size: 0.75rem !important;
    color: var(--text-2, #475569) !important;
    line-height: 1.2 !important;
    white-space: nowrap;
  }
}

/* ─── 23. MOBILE MENU SECTION HEADERS ────────────────────────────────── */
/* When categories are injected into Blocksy's mobile menu, prepend section
   headers ("Shop by category" / "Information") to organise the list.
*/
.mobile-menu li.nzss-mobile-section-head,
nav[data-id="mobile-menu"] li.nzss-mobile-section-head {
  list-style: none;
  pointer-events: none;
}
.mobile-menu li.nzss-mobile-section-head > span,
nav[data-id="mobile-menu"] li.nzss-mobile-section-head > span {
  display: block;
  padding: 0.6rem 1.25rem 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-3, #94A3B8);
  border-top: 1px solid var(--line, #E5E7EB);
  margin-top: 0.5rem;
}
/* First section head shouldn't have a border-top */
.mobile-menu li.nzss-mobile-section-head:first-child > span,
nav[data-id="mobile-menu"] li.nzss-mobile-section-head:first-child > span {
  border-top: 0;
  margin-top: 0;
}

/* ─── 24. WOOCOMMERCE SHOP / CATEGORY ARCHIVES ──────────────────────── */
/* Replaces Blocksy's empty grey hero band with a tight branded header,
   tightens the product grid, unifies card styling with the homepage,
   and applies green CTA buttons everywhere. */

/* 1. Kill Blocksy's hero section on WC archives + product pages */
.woocommerce.archive .hero-section,
.post-type-archive-product .hero-section,
.tax-product_cat .hero-section,
.tax-product_tag .hero-section,
.single-product .hero-section {
  background: transparent !important;
  padding: 1rem 0 0 !important;
  margin: 0 !important;
  border: 0 !important;
  min-height: 0 !important;
}
.woocommerce.archive .hero-section .ct-container,
.post-type-archive-product .hero-section .ct-container,
.tax-product_cat .hero-section .ct-container,
.tax-product_tag .hero-section .ct-container,
.single-product .hero-section .ct-container {
  padding-top: 1rem !important;
  padding-bottom: 0 !important;
}

/* Page title — left-aligned, compact */
.woocommerce.archive .entry-header,
.post-type-archive-product .entry-header,
.tax-product_cat .entry-header,
.tax-product_tag .entry-header {
  text-align: left !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  max-width: 1240px;
  margin: 0 auto !important;
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}
.woocommerce.archive .page-title,
.post-type-archive-product .page-title,
.tax-product_cat .page-title,
.tax-product_tag .page-title {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
  font-weight: 700 !important;
  margin: 0.25rem 0 0.5rem !important;
  text-align: left !important;
  color: var(--text) !important;
  line-height: 1.15 !important;
}

/* Term description (set in WC category edit) */
.term-description,
.archive-description {
  color: var(--text-2, #475569);
  font-size: 0.95rem;
  margin: 0 0 0.5rem;
  max-width: 60ch;
}

/* 2. Wrap the WC main content in our standard container width */
.woocommerce.archive .ct-main-content,
.post-type-archive-product .ct-main-content,
.tax-product_cat .ct-main-content,
.tax-product_tag .ct-main-content {
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: 0 1.25rem 3rem !important;
}

/* 3. Result count + sort row */
.woocommerce-result-count {
  font-size: 0.78rem !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-3, #94A3B8) !important;
  margin: 0.75rem 0 1.25rem !important;
  font-weight: 600 !important;
}
.woocommerce-ordering {
  margin: 0.5rem 0 1.25rem !important;
}
.woocommerce-ordering select {
  font-size: 0.875rem !important;
  padding: 0.5rem 2rem 0.5rem 0.85rem !important;
  border: 1px solid var(--line, #E5E7EB) !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: var(--text) !important;
  cursor: pointer !important;
  transition: border-color 120ms ease !important;
}
.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
  border-color: var(--navy, #142847) !important;
  outline: 0 !important;
}

/* 4. Card container — soft shadow, light border, hover lift */
ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1.25rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
ul.products li.product {
  background: #FFFFFF !important;
  border: 1px solid var(--line, #EEF1F6) !important;
  border-radius: 14px !important;
  padding: 1rem !important;
  margin: 0 !important;
  width: auto !important;
  float: none !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
}
ul.products li.product:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08) !important;
  border-color: #E2E6EE !important;
}

/* 5. Card image — fixed aspect ratio, centered, no warp */
ul.products li.product > a:first-child {
  display: block !important;
  position: relative;
  background: #F8FAFC;
  border-radius: 8px;
  margin: 0 0 0.85rem !important;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
ul.products li.product img,
ul.products li.product .attachment-woocommerce_thumbnail {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  padding: 0.75rem !important;
  margin: 0 !important;
  display: block !important;
}

/* 6. Title — clamp to 2 lines, fixed height for grid alignment */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
ul.products li.product h3 {
  font-size: 0.925rem !important;
  font-weight: 600 !important;
  color: var(--text) !important;
  line-height: 1.35 !important;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.55em;
}

/* 7. Hide the category list under each card — too cluttered for grid view */
ul.products li.product .product-categories,
ul.products li.product .posted_in {
  display: none !important;
}

/* 8. Price — compact, single line where possible */
ul.products li.product .price {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  margin: 0.25rem 0 0.85rem !important;
  line-height: 1.2 !important;
}
ul.products li.product .price del {
  color: var(--text-3, #94A3B8) !important;
  font-weight: 400 !important;
  margin-right: 0.4rem !important;
  font-size: 0.85rem !important;
}
ul.products li.product .price ins {
  background: transparent !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  color: var(--text) !important;
}

/* 9. Afterpay / Square widget on cards — compact + smaller font */
ul.products li.product .squarewidget-product-card,
ul.products li.product .afterpay-paragraph,
ul.products li.product [class*="afterpay"] {
  font-size: 0.7rem !important;
  margin: 0 0 0.5rem !important;
  line-height: 1.3 !important;
}

/* 10. Add to Cart button — navy (brand primary), full-width, pinned to bottom */
ul.products li.product .button,
ul.products li.product a.button,
ul.products li.product .add_to_cart_button,
ul.products li.product a.add_to_cart_button,
ul.products li.product .added_to_cart {
  background: var(--navy, #142847) !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 0.7rem 1rem !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  width: 100% !important;
  text-align: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  margin-top: auto !important;     /* push to bottom of flex card */
  transition: background-color 140ms ease, transform 100ms ease !important;
  cursor: pointer !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}
ul.products li.product .button:hover,
ul.products li.product a.button:hover,
ul.products li.product .add_to_cart_button:hover,
ul.products li.product a.add_to_cart_button:hover {
  background: var(--navy-2, #1F3A66) !important;
  color: #FFFFFF !important;
  transform: translateY(-1px) !important;
}
ul.products li.product .button:active,
ul.products li.product a.button:active {
  transform: translateY(0) !important;
}
ul.products li.product .added_to_cart {
  background: var(--bg-soft, #F6F7F9) !important;
  color: var(--text) !important;
  font-weight: 500 !important;
}

/* 11. Star rating */
ul.products li.product .star-rating {
  color: var(--star, #F59E0B) !important;
  font-size: 0.78rem !important;
  margin: 0 0 0.4rem !important;
}

/* 12. Single product page — navy Add to Cart, matching */
.single-product .summary .single_add_to_cart_button,
.single-product button.single_add_to_cart_button,
body.woocommerce .single_add_to_cart_button {
  background: var(--navy, #142847) !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 0.85rem 1.6rem !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  transition: background-color 140ms ease, transform 100ms ease !important;
}
.single-product .summary .single_add_to_cart_button:hover,
body.woocommerce .single_add_to_cart_button:hover {
  background: var(--navy-2, #1F3A66) !important;
  color: #FFFFFF !important;
  transform: translateY(-1px) !important;
}

/* 13. Cart / checkout main action buttons — same navy */
body.woocommerce .wc-block-components-button,
body.woocommerce .checkout-button,
body.woocommerce .wc-proceed-to-checkout .checkout-button,
body.woocommerce-cart .button,
body.woocommerce-checkout .button {
  background: var(--navy, #142847) !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  text-transform: none !important;
}
body.woocommerce .wc-block-components-button:hover,
body.woocommerce .checkout-button:hover {
  background: var(--navy-2, #1F3A66) !important;
}

/* 14. Pagination — clean numbered links */
.woocommerce nav.woocommerce-pagination ul {
  border: 0 !important;
  display: flex;
  gap: 4px;
  justify-content: center;
  margin: 2rem 0 0 !important;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border-radius: 8px !important;
  padding: 0.5rem 0.85rem !important;
  font-weight: 500 !important;
  color: var(--text) !important;
  background: #fff !important;
  border: 1px solid var(--line, #E5E7EB) !important;
  transition: all 120ms ease !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--navy, #142847) !important;
  color: #fff !important;
  border-color: var(--navy, #142847) !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: var(--navy, #142847) !important;
  color: var(--navy, #142847) !important;
}

/* 15. Responsive — collapse columns */
@media (max-width: 1100px) {
  ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
  ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 0.85rem !important; }
  ul.products li.product { padding: 0.75rem !important; }
  ul.products li.product .woocommerce-loop-product__title,
  ul.products li.product h2,
  ul.products li.product h3 { font-size: 0.85rem !important; }
  ul.products li.product .price { font-size: 0.95rem !important; }
}
@media (max-width: 420px) {
  ul.products { grid-template-columns: 1fr !important; }
}

/* ─── 25. PROMINENT BRAND LOGO ─────────────────────────────────────── */
/* Logo was 44px tall in a 70px catbar — barely visible. Bumped to 80px.
   The brightness(0) invert(1) filter stays — it forces the navy logo to
   pure white so it reads against the navy header band.
   On the catbar, the .nzss-header-top__logo is the LEFT-MOST element of
   the catbar's first row, anchored to the catbar's full height.
*/

/* Desktop ≥1000px — large prominent logo */
@media (min-width: 1000px) {
  .nzss-header-top__logo img {
    max-height: 120px !important;
    width: auto !important;
    filter: brightness(0) invert(1) !important;
    transition: opacity 140ms ease;
  }
  .nzss-header-top__logo:hover img {
    opacity: 0.85;
  }

  .nzss-header-top__inner {
    gap: 1.5rem !important;
  }

  /* Header band grows to accommodate the larger logo */
  .nzss-header-top {
    padding: 0.6rem 0 !important;
  }
}

/* Tablet 700-999px — medium */
@media (min-width: 700px) and (max-width: 999px) {
  .nzss-header-top__logo img {
    max-height: 72px !important;
    filter: brightness(0) invert(1) !important;
  }
}

/* Mobile <700px — Blocksy header takes over; bump its logo too */
@media (max-width: 699px) {
  /* Blocksy's mobile logo is in header.ct-header */
  header.ct-header .site-logo-container img,
  header.ct-header .ct-image-container img {
    max-height: 48px !important;
    width: auto !important;
  }
}

/* Footer logo — bumped up for visibility */
@media (min-width: 700px) {
  .nzss-footer__brand img {
    max-height: 64px !important;   /* was 48px */
    width: auto !important;
  }
}

/* ─── 26. RECLAIM ABOVE-THE-FOLD AFTER LOGO BUMP ────────────────────── */
/* When the logo grew to 120px, header band hit 171px tall and pushed the
   hero down too far. This tightens both: less header padding + capped hero
   so the whole hero comfortably fits in a 900px viewport without scrolling.
*/
@media (min-width: 1000px) {
  /* Header — cut top/bottom padding to the bare minimum */
  .nzss-header-top {
    padding: 0.25rem 0 !important;
  }

  /* Hero banner — cap the height; image figure still scales but doesn't
     stretch the banner. */
  .nzss-hero__banner {
    min-height: 340px !important;
    max-height: 420px;
    padding: 2rem 2.5rem !important;
  }
  .nzss-hero__banner-title {
    font-size: clamp(1.6rem, 3.4vw, 2.5rem) !important;
    line-height: 1.08 !important;
  }
  .nzss-hero__banner-figure img,
  .nzss-hero__banner-figure svg {
    max-height: 320px;
    height: auto;
  }
}
/* Image-only variant of .nzss-promo-card — used on the homepage Featured Devices
   slot, where the promo card is just a flyer image (no title, subtitle, SVG, or CTA).
   Keeps the same min-height / grid sizing from the base class. */
.nzss-promo-card--image {
    padding: 0;
    background: transparent;
}
.nzss-promo-card--image::before {
    display: none;
}
.nzss-promo-card--image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Hero figure: image-only mode. When .nzss-hero__banner-figure contains an
   <img> directly (instead of the decorative SVGs), let it cover the slot.
   object-position: top keeps the headline/branding visible since the source
   flyers are square and the slot is landscape. */
.nzss-hero__banner-figure > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    max-height: none;  /* override the responsive max-height: 320px rule for img */
}

/* ─── 19. ENHANCEMENT LAYER ─────────────────────────────────────────────
   Adds stats counter strip, brand wall, how-it-works steps, reviews,
   scroll-reveal animations, sticky mobile CTA, and hero polish. */

/* 19.0 Scroll-reveal primitives ─ universal */
[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s ease;
    will-change: opacity, transform;
}
[data-reveal].is-revealed {
    opacity: 1;
    transform: none;
}
[data-reveal-stagger] {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .6s ease, transform .6s ease;
}
[data-reveal-stagger].is-revealed {
    opacity: 1;
    transform: none;
}
@media (prefers-reduced-motion: reduce) {
    [data-reveal], [data-reveal-stagger] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* 19.1 Hero subtle polish ─ floating accent shapes + headline shimmer */
.nzss-hero { position: relative; overflow: hidden; }
.nzss-hero::before,
.nzss-hero::after {
    content: '';
    position: absolute;
    pointer-events: none;
    border-radius: 50%;
    z-index: 0;
    filter: blur(40px);
    opacity: 0.55;
}
.nzss-hero::before {
    width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(15, 169, 104, .28), transparent 70%);
    top: -80px; right: 18%;
    animation: nzss-float-a 14s ease-in-out infinite;
}
.nzss-hero::after {
    width: 260px; height: 260px;
    background: radial-gradient(circle, rgba(20, 40, 71, .18), transparent 70%);
    bottom: -60px; left: 35%;
    animation: nzss-float-b 18s ease-in-out infinite;
}
.nzss-hero > * { position: relative; z-index: 1; }
@keyframes nzss-float-a {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(-25px, 18px); }
}
@keyframes nzss-float-b {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(30px, -22px); }
}
@media (prefers-reduced-motion: reduce) {
    .nzss-hero::before, .nzss-hero::after { animation: none; }
}

/* Headline gradient sheen on banner title (very subtle) */
.nzss-hero__banner-title {
    background: linear-gradient(120deg, var(--text) 0%, var(--navy-2) 60%, var(--text) 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    animation: nzss-sheen 8s ease-in-out infinite;
}
@keyframes nzss-sheen {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
@media (prefers-reduced-motion: reduce) {
    .nzss-hero__banner-title { animation: none; }
}

/* 19.2 STATS COUNTER STRIP */
.nzss-stats {
    padding: 64px 0 56px;
    background:
      radial-gradient(ellipse 80% 100% at 50% 0%, rgba(15, 169, 104, .06), transparent 60%),
      var(--bg);
}
.nzss-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.nzss-stat {
    text-align: center;
    padding: 12px 8px;
    border-radius: var(--r-lg);
    transition: transform .3s ease;
}
.nzss-stat:hover { transform: translateY(-3px); }
.nzss-stat__num-wrap {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    font-family: var(--font);
    font-weight: 800;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1;
    color: var(--navy);
    letter-spacing: -.02em;
}
.nzss-stat__num {
    background: linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    font-variant-numeric: tabular-nums;
}
.nzss-stat__suffix {
    color: var(--accent);
    font-size: 0.55em;
    font-weight: 700;
    margin-left: 2px;
}
.nzss-stat__label {
    margin: 10px 0 0;
    font-size: 0.92rem;
    color: var(--text-2);
    font-weight: 500;
    letter-spacing: 0.02em;
}
.nzss-stat__sub {
    margin: 4px 0 0;
    font-size: 0.78rem;
    color: var(--text-3);
}
@media (max-width: 768px) {
    .nzss-stats { padding: 44px 0 36px; }
    .nzss-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}

/* 19.3 HOW IT WORKS */
.nzss-howitworks {
    padding: 72px 0;
    background: var(--bg-soft);
    position: relative;
    overflow: hidden;
}
.nzss-howitworks__head {
    text-align: center;
    margin-bottom: 48px;
}
.nzss-howitworks__title {
    margin: 0 0 12px;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
}
.nzss-howitworks__sub {
    margin: 0;
    color: var(--text-2);
    font-size: 1.05rem;
}
.nzss-howitworks__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    position: relative;
}
.nzss-howitworks__grid::before {
    content: '';
    position: absolute;
    top: 56px;
    left: 16.66%;
    right: 16.66%;
    height: 2px;
    background: repeating-linear-gradient(to right,
        var(--accent) 0, var(--accent) 6px, transparent 6px, transparent 12px);
    opacity: .25;
    z-index: 0;
}
.nzss-step {
    text-align: center;
    position: relative;
    z-index: 1;
}
.nzss-step__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 112px; height: 112px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: var(--bg);
    color: var(--navy);
    box-shadow: 0 6px 20px rgba(15, 23, 42, .07);
    position: relative;
    transition: transform .35s ease, box-shadow .35s ease;
}
.nzss-step:hover .nzss-step__icon {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .12);
}
.nzss-step__icon svg {
    width: 44px; height: 44px;
    stroke-width: 1.6;
}
.nzss-step__num {
    position: absolute;
    top: -6px; right: -6px;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(15, 169, 104, .4);
}
.nzss-step__title {
    margin: 0 0 8px;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text);
}
.nzss-step__desc {
    margin: 0 auto;
    max-width: 28ch;
    color: var(--text-2);
    line-height: 1.55;
    font-size: 0.97rem;
}
@media (max-width: 768px) {
    .nzss-howitworks { padding: 52px 0; }
    .nzss-howitworks__head { margin-bottom: 32px; }
    .nzss-howitworks__grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .nzss-howitworks__grid::before { display: none; }
    .nzss-step__icon { width: 92px; height: 92px; }
    .nzss-step__icon svg { width: 36px; height: 36px; }
}

/* 19.4 BRAND WALL */
.nzss-brands {
    padding: 56px 0;
    background: var(--bg);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.nzss-brands__eyebrow {
    text-align: center;
    margin: 0 0 24px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.14em;
}
.nzss-brands__grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 8px 24px;
    align-items: center;
    justify-items: center;
}
.nzss-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    width: 100%;
    padding: 0 8px;
    font-family: var(--font);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
    color: var(--text-3);
    text-decoration: none;
    border-radius: var(--r);
    transition: color .25s ease, background .25s ease, transform .25s ease;
    white-space: nowrap;
}
.nzss-brand:hover,
.nzss-brand:focus-visible {
    color: var(--navy);
    background: var(--bg-soft);
    transform: translateY(-2px);
}
@media (max-width: 1100px) {
    .nzss-brands__grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 600px) {
    .nzss-brands__grid { grid-template-columns: repeat(3, 1fr); gap: 4px 16px; }
    .nzss-brand { height: 48px; font-size: 0.92rem; }
}

/* 19.5 CUSTOMER REVIEWS */
.nzss-reviews {
    padding: 72px 0;
    background: linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);
}
.nzss-reviews__head {
    text-align: center;
    margin-bottom: 48px;
}
.nzss-reviews__title {
    margin: 0 0 12px;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
}
.nzss-reviews__sub {
    margin: 0;
    color: var(--text-2);
    font-size: 1.05rem;
}
.nzss-reviews__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.nzss-review {
    position: relative;
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 28px 24px 24px;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.nzss-review:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
    border-color: var(--accent-soft);
}
.nzss-review__quotemark {
    position: absolute;
    top: 16px;
    right: 18px;
    color: var(--accent-soft);
    font-family: Georgia, serif;
    font-size: 4.5rem;
    line-height: 1;
    font-weight: 700;
    pointer-events: none;
}
.nzss-review__stars {
    display: flex;
    gap: 2px;
    margin-bottom: 14px;
    color: var(--star);
}
.nzss-review__stars svg { width: 16px; height: 16px; }
.nzss-review__text {
    margin: 0 0 18px;
    color: var(--text);
    font-size: 1rem;
    line-height: 1.6;
}
.nzss-review__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--line);
    padding-top: 14px;
}
.nzss-review__avatar {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--navy-2), var(--accent));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.95rem;
}
.nzss-review__who {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.nzss-review__name {
    font-weight: 600;
    color: var(--text);
    font-size: 0.93rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.nzss-review__verified {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--accent);
    font-size: 0.78rem;
    font-weight: 600;
}
.nzss-review__verified svg { width: 12px; height: 12px; }
.nzss-review__loc {
    color: var(--text-3);
    font-size: 0.82rem;
}
@media (max-width: 968px) {
    .nzss-reviews__grid { grid-template-columns: 1fr; gap: 16px; }
    .nzss-reviews { padding: 52px 0; }
    .nzss-reviews__head { margin-bottom: 32px; }
}

/* 19.6 STICKY MOBILE CTA */
.nzss-stickycta {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 100;
    display: none;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--navy);
    color: #fff;
    border-radius: var(--r-lg);
    box-shadow: 0 8px 28px rgba(15, 23, 42, .25);
    transform: translateY(150%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.nzss-stickycta.is-visible { transform: translateY(0); }
.nzss-stickycta.is-dismissed { display: none !important; }
.nzss-stickycta__icon {
    flex: 0 0 36px;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.nzss-stickycta__icon svg { width: 18px; height: 18px; }
.nzss-stickycta__body {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.25;
}
.nzss-stickycta__lead {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, .7);
    margin: 0;
}
.nzss-stickycta__num {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
}
.nzss-stickycta__dismiss {
    flex: 0 0 auto;
    background: none;
    border: 0;
    color: rgba(255, 255, 255, .55);
    cursor: pointer;
    padding: 6px;
    line-height: 1;
    font-size: 1.2rem;
}
.nzss-stickycta__dismiss:hover { color: #fff; }
@media (max-width: 900px) {
    .nzss-stickycta { display: flex; }
}

/* 19.7 SECTION RHYTHM — alternating tones so adjacent sections don't blur together */
.nzss-section + .nzss-section { border-top: 0; }
.nzss-section--alt { background: var(--bg-soft); }
