/* ═══════════════════════════════════════════════════════
   SafeLeaf Design System — safeleaf-design.css
   Child theme for GeneratePress + GenerateBlocks
   Version: 1.0.1
═══════════════════════════════════════════════════════ */

/* ── DESIGN TOKENS ─────────────────────────────────── */
:root {
  --sl-black:     #0E0E0E;
  --sl-black2:    #181818;
  --sl-black3:    #222222;
  --sl-grey1:     #2E2E2E;
  --sl-grey2:     #555555;
  --sl-grey3:     #888888;
  --sl-grey4:     #BDBDBD;
  --sl-white:     #FFFFFF;
  --sl-off:       #F4F4F2;
  --sl-green:     #49c435;
  --sl-green-d:   #3aad28;
  --sl-green-bg:  rgba(73,196,53,0.08);
  --sl-green-bd:  rgba(73,196,53,0.20);
  --sl-border:    #2A2A2A;
  --sl-border-lt: #E8E8E8;
  --sl-ff-head:   'Barlow Condensed', sans-serif;
  --sl-ff-body:   'Manrope', sans-serif;
  --sl-r:         4px;
  --sl-max:       1200px;
  --sl-pad:       40px;
}

/* ── RESET / BASE ──────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--sl-ff-body) !important;
  background-color: var(--sl-black) !important;
  color: var(--sl-white) !important;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body ::-webkit-scrollbar       { width: 4px; }
body ::-webkit-scrollbar-track { background: var(--sl-black); }
body ::-webkit-scrollbar-thumb { background: var(--sl-green); border-radius: 2px; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--sl-ff-head) !important;
  line-height: 1.05;
  color: var(--sl-white);
}

p, li, td, th, label, input, textarea, select {
  font-family: var(--sl-ff-body);
}

a { color: var(--sl-green); transition: color 0.2s; }
a:hover { color: var(--sl-green-d); }

img { display: block; max-width: 100%; }

/* ── GENERATEPRESS CORE OVERRIDES ──────────────────── */
.site-footer,
#page,
.site-main {
  background-color: var(--sl-black);
}

/* ── GP HEADER — sticky, white background + bottom border ── */
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 9980 !important;
  background-color: #FFFFFF !important;
  border-bottom: 1px solid #e0e0e0 !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07) !important;
}

/* Lock the inner header padding so the logo never shifts or
   gets clipped when the sticky header scrolls into view.
   GP (and GP Premium) can adjust these on scroll — we override. */
.site-header .inside-header {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  display: flex !important;
  align-items: center !important;
}

/* Prevent GP from shrinking the nav bar padding on scroll */
.site-header .inside-navigation {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.main-navigation {
  background-color: #FFFFFF;
}

/* GP logo: replace with our image, sized correctly */
.site-header .custom-logo-link img,
.site-header .custom-logo {
  height: 40px;
  width: auto;
  display: block;
  filter: none;
}

/* Hide GP site title & tagline — logo image replaces them */
.site-title,
.site-title a,
.site-description {
  display: none !important;
  visibility: hidden !important;
}

/* ── GP NAVIGATION TEXT ─────────────────────────── */
/* Make all menu links black + semi-bold on white header */
.main-navigation a,
.nav-primary a,
.nav-primary .menu-item a,
.nav-primary .menu-item > a,
.main-navigation .menu-item a,
.main-navigation ul li a {
  color: #000000 !important;
  font-weight: 600 !important;
}
.main-navigation a:hover,
.nav-primary a:hover,
.nav-primary .menu-item a:hover {
  color: var(--sl-green-d) !important;
}

/* Remove GP default padding that fights with our layouts */
.entry-content,
.page-content {
  padding: 0 !important;
  margin: 0 !important;
}

.inside-article,
.inside-page-hero,
.inside-right-sidebar,
.inside-left-sidebar {
  padding: 0 !important;
}

/* GP full-width page reset */
.page-template-default.no-sidebar .site-content,
.page-template-default.no-sidebar .content-area {
  width: 100%;
  float: none;
  padding: 0;
}

/* ── UTILITY CLASSES ───────────────────────────────── */
.sl-container {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
}

.sl-section {
  padding: 100px 0;
}

.green   { color: var(--sl-green) !important; }
.outline {
  -webkit-text-stroke: 1.5px #444;
  color: transparent !important;
}

/* Section tag / eyebrow label */
.sl-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sl-ff-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sl-green);
  margin-bottom: 18px;
}
.sl-tag::before {
  content: '';
  width: 20px;
  height: 2px;
  background: var(--sl-green);
  flex-shrink: 0;
  display: block;
}

/* Section title */
.sl-section-title {
  font-family: var(--sl-ff-head) !important;
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 16px;
  line-height: 1.05;
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal.in {
  opacity: 1;
  transform: none;
}

/* ── BUTTONS ───────────────────────────────────────── */
.sl-btn,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sl-ff-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 14px 28px;
  border-radius: var(--sl-r);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.22s;
  border: none;
  line-height: 1;
}

.sl-btn-green,
.wp-block-button.is-style-sl-green .wp-block-button__link {
  background: var(--sl-green) !important;
  color: var(--sl-black) !important;
  border-color: transparent !important;
}
.sl-btn-green:hover,
.wp-block-button.is-style-sl-green .wp-block-button__link:hover {
  background: var(--sl-green-d) !important;
  transform: translateY(-1px);
  color: var(--sl-black) !important;
}

.sl-btn-outline,
.wp-block-button.is-style-sl-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--sl-white) !important;
  border: 1.5px solid #404040 !important;
}
.sl-btn-outline:hover,
.wp-block-button.is-style-sl-outline .wp-block-button__link:hover {
  border-color: var(--sl-green) !important;
  color: var(--sl-green) !important;
}

.sl-btn-outline-green,
.wp-block-button.is-style-sl-outline-green .wp-block-button__link {
  background: transparent !important;
  color: var(--sl-green) !important;
  border: 1.5px solid var(--sl-green-bd) !important;
}
.sl-btn-outline-green:hover,
.wp-block-button.is-style-sl-outline-green .wp-block-button__link:hover {
  background: var(--sl-green-bg) !important;
}

/* ── NAVIGATION ────────────────────────────────────── */
.sl-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  height: 68px;
  background: #FFFFFF;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid #333333;
  transition: background 0.3s;
}
.sl-nav.scrolled {
  background: #FFFFFF;
}
.sl-nav-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sl-nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.sl-nav-logo img {
  height: 32px;
  width: auto;
  filter: none;
}
.sl-nav-links {
  display: flex;
  align-items: center;
  gap: 36px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.sl-nav-links a {
  font-size: 14px;
  font-weight: 600;
  color: #000000;
  text-decoration: none;
  transition: color 0.2s;
}
.sl-nav-links a:hover { color: var(--sl-green-d); }
.sl-nav-cta { font-size: 13px; padding: 10px 22px; }

/* Mobile nav toggle */
.sl-nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  gap: 5px;
}
.sl-nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--sl-black);
  border-radius: 2px;
  transition: all 0.3s;
}
.sl-mobile-menu {
  display: none;
  position: absolute;
  top: 68px; left: 0; right: 0;
  background: #FFFFFF;
  border-bottom: 1px solid #333333;
  padding: 20px var(--sl-pad);
}
.sl-mobile-menu.open { display: block; }
.sl-mobile-menu ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sl-mobile-menu a {
  font-size: 15px;
  font-weight: 600;
  color: #000000;
  text-decoration: none;
}

/* ── FiboSearch — suggestions dropdown ─────────────── */
/* Ensure suggestion panel text is always dark regardless of nav inheritance */
.dgwt-wcas-suggestions-wrapp {
  color: #1c2a1c !important;
}
.dgwt-wcas-suggestion-nores {
  color: #1c2a1c !important;
}
.dgwt-wcas-suggestion-nores p {
  color: #1c2a1c !important;
}
.dgwt-wcas-suggestion-nores a {
  color: #1c6b27 !important;
  text-decoration: underline !important;
}
.dgwt-wcas-suggestion-nores a:hover {
  color: var(--sl-green-d) !important;
}

/* ── HERO ──────────────────────────────────────────── */
.sl-hero {
  min-height: 100vh;
  padding: 140px var(--sl-pad) 80px;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center 35%;
  background-attachment: fixed;
}
.sl-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.52);
  z-index: 0;
}
.sl-hero-inner {
  position: relative;
  z-index: 1;
  max-width: var(--sl-max);
  margin: 0 auto;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.sl-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  border-radius: 100px;
  padding: 5px 14px 5px 10px;
  font-size: 12px;
  font-weight: 600;
  color: var(--sl-green);
  letter-spacing: 0.04em;
  margin-bottom: 28px;
}
.sl-hero-h1 {
  font-size: clamp(52px, 6.5vw, 86px) !important;
  font-weight: 700 !important;
  line-height: 1.0 !important;
  letter-spacing: 0.01em !important;
  color: var(--sl-white) !important;
  margin-bottom: 24px !important;
}
.sl-hero-sub {
  font-size: 16px;
  font-weight: 400;
  color: var(--sl-grey3);
  line-height: 1.7;
  max-width: 460px;
  margin-bottom: 40px;
}
.sl-hero-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 52px;
}
.sl-cert-badges {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.sl-cert-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--sl-border);
  border-radius: 3px;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 600;
  color: var(--sl-grey3);
  letter-spacing: 0.06em;
  background: var(--sl-black2);
}

/* Hero method cards grid */
.sl-methods-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.sl-method-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  padding: 24px 22px;
  text-decoration: none;
  display: block;
  transition: border-color 0.25s, background 0.25s;
  position: relative;
  overflow: hidden;
  color: var(--sl-white);
}
.sl-method-card:hover {
  border-color: var(--sl-green);
  background: var(--sl-black3);
  color: var(--sl-white);
}
.sl-method-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 100%;
  background: var(--sl-green);
  transform: scaleY(0);
  transition: transform 0.3s;
  transform-origin: bottom;
}
.sl-method-card:hover::before { transform: scaleY(1); }
.sl-method-title {
  font-family: var(--sl-ff-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--sl-white);
  margin: 12px 0 6px;
  letter-spacing: 0.01em;
}
.sl-method-sub {
  font-size: 12px;
  color: var(--sl-grey3);
  line-height: 1.5;
}
.sl-method-arrow {
  position: absolute;
  top: 18px; right: 18px;
  font-size: 18px;
  color: var(--sl-grey2);
  transition: color 0.25s, transform 0.25s;
}
.sl-method-card:hover .sl-method-arrow {
  color: var(--sl-green);
  transform: translate(3px,-3px);
}

/* ── STATS BAR ─────────────────────────────────────── */
.sl-stats-bar {
  background: var(--sl-black2);
  border-top: 1px solid var(--sl-border);
  border-bottom: 1px solid var(--sl-border);
  padding: 0;
}
.sl-stats-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.sl-stat-item {
  padding: 32px 24px;
  border-right: 1px solid var(--sl-border);
  text-align: center;
}
.sl-stat-item:last-child { border-right: none; }
.sl-stat-num {
  font-family: var(--sl-ff-head);
  font-size: 42px;
  font-weight: 800;
  color: var(--sl-green);
  line-height: 1;
  margin-bottom: 4px;
}
.sl-stat-label {
  font-size: 12px;
  color: var(--sl-grey3);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ── PATHWAY CARDS ─────────────────────────────────── */
.sl-pathways {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-pathways-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 52px;
}
.sl-pathway-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: border-color 0.3s, transform 0.35s cubic-bezier(.22,.68,0,1.2), box-shadow 0.3s;
  color: var(--sl-white);
}
/* Green bar sweeps in from left on hover */
.sl-pathway-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sl-green), var(--sl-green-d, #3aad27));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s cubic-bezier(.22,.68,0,1.2);
  z-index: 1;
}
.sl-pathway-card:hover {
  border-color: var(--sl-green);
  transform: translateY(-8px);
  box-shadow: 0 24px 48px rgba(73,196,53,0.18), 0 8px 24px rgba(0,0,0,0.15);
  color: var(--sl-white);
}
.sl-pathway-card:hover::before { transform: scaleX(1); }
.sl-pathway-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.sl-pathway-body {
  padding: 28px 28px 32px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.sl-pathway-icon {
  width: 44px;
  height: 44px;
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  font-size: 20px;
  transition: transform 0.3s cubic-bezier(.22,.68,0,1.2), background 0.3s, box-shadow 0.3s;
}
.sl-pathway-card:hover .sl-pathway-icon {
  transform: scale(1.18) rotate(-4deg);
  background: rgba(73,196,53,0.22);
  box-shadow: 0 0 0 6px rgba(73,196,53,0.08);
}
.sl-pathway-title {
  font-family: var(--sl-ff-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 10px;
}
.sl-pathway-desc {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.7;
  flex: 1;
  margin-bottom: 24px;
}
.sl-pathway-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--sl-green);
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  margin-top: auto;
  transition: transform 0.25s, letter-spacing 0.25s;
}
.sl-pathway-card:hover .sl-pathway-link {
  transform: translateX(5px);
  letter-spacing: .02em;
}

/* ── WHY SECTION ───────────────────────────────────── */
.sl-why {
  padding: 100px 0 !important; /* override wp:cover default 1em */
  background-color: var(--sl-black2); /* fallback when no bg image */
  position: relative;
  overflow: hidden;
}
/* Reset min-height Gutenberg sets on cover blocks */
.sl-why.wp-block-cover { min-height: 0 !important; }
/* Let our sl-container control the width — don't constrain the cover inner wrapper */
.sl-why .wp-block-cover__inner-container { width: 100%; max-width: none; padding: 0; }
.sl-why::before {
  content: '';
  position: absolute;
  top: -200px; right: -200px;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(73,196,53,0.06) 0%, transparent 70%);
  pointer-events: none;
  z-index: 1;
}
.sl-why .sl-container { position: relative; z-index: 1; }
.sl-why-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.sl-why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--sl-border);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  overflow: hidden;
}
.sl-why-item {
  background: var(--sl-black2);
  padding: 28px 24px;
}
.sl-why-item-icon {
  width: 36px; height: 36px;
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  font-size: 16px;
}
.sl-why-item-title {
  font-family: var(--sl-ff-head);
  font-size: 17px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 6px;
}
.sl-why-item-desc {
  font-size: 13px;
  color: var(--sl-grey3);
  line-height: 1.6;
}

/* ── SERVICES GRID ─────────────────────────────────── */
.sl-services {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 52px;
}
.sl-service-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 32px 28px;
  transition: border-color 0.25s;
  position: relative;
  overflow: hidden;
}
.sl-service-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: var(--sl-green);
  transform: scaleX(0);
  transition: transform 0.3s;
}
.sl-service-card:hover::after { transform: scaleX(1); }
.sl-service-card:hover { border-color: var(--sl-grey1); }
.sl-service-num {
  font-family: var(--sl-ff-head);
  font-size: 48px;
  font-weight: 800;
  color: var(--sl-grey1);
  line-height: 1;
  margin-bottom: 16px;
}
.sl-service-title {
  font-family: var(--sl-ff-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 10px;
}
.sl-service-desc {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.7;
  margin-bottom: 20px;
}
.sl-service-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.sl-service-tag {
  font-size: 11px;
  font-weight: 600;
  color: var(--sl-grey3);
  border: 1px solid var(--sl-border);
  border-radius: 3px;
  padding: 3px 8px;
  letter-spacing: 0.04em;
}

/* ── EQUIPMENT GRID ────────────────────────────────── */
.sl-equipment {
  padding: 100px 0;
  background: var(--sl-black2);
}
.sl-eq-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 52px;
}
.sl-eq-card {
  background: var(--sl-black);
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  overflow: hidden;
  text-decoration: none;
  color: var(--sl-white);
  transition: border-color 0.25s;
}
.sl-eq-card:hover { border-color: var(--sl-green); color: var(--sl-white); }
.sl-eq-img-wrap {
  background: var(--sl-black2);
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.sl-eq-img-wrap img {
  max-height: 120px;
  width: auto;
  object-fit: contain;
  filter: brightness(0.9);
}
.sl-eq-body { padding: 16px; }
.sl-eq-title {
  font-family: var(--sl-ff-head);
  font-size: 16px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 4px;
}
.sl-eq-sub { font-size: 12px; color: var(--sl-grey3); }
.sl-eq-price {
  font-family: var(--sl-ff-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--sl-green);
  margin-top: 10px;
}

/* ── TESTIMONIALS ──────────────────────────────────── */
.sl-testi {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 52px;
}
.sl-testi-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 32px 28px;
}
.sl-testi-stars {
  color: var(--sl-green);
  font-size: 14px;
  letter-spacing: 2px;
  margin-bottom: 18px;
}
.sl-testi-quote {
  font-size: 15px;
  color: var(--sl-grey4);
  line-height: 1.7;
  font-style: italic;
  margin-bottom: 24px;
  flex: 1;
}
.sl-testi-author {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sl-testi-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sl-ff-head);
  font-size: 16px;
  font-weight: 700;
  color: var(--sl-green);
  flex-shrink: 0;
}
.sl-testi-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--sl-white);
}
.sl-testi-role {
  font-size: 12px;
  color: var(--sl-grey3);
}

/* ── FAQ ───────────────────────────────────────────── */
.sl-faq {
  padding: 100px 0;
  background: var(--sl-black2);
}
.sl-faq-list {
  max-width: 760px;
  margin: 52px auto 0;
}
.sl-faq-item {
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  margin-bottom: 8px;
  overflow: hidden;
  transition: border-color 0.25s;
}
.sl-faq-item.open { border-color: var(--sl-green); }
.sl-faq-q {
  width: 100%;
  background: var(--sl-black2);
  border: none;
  cursor: pointer;
  padding: 22px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: left;
  font-family: var(--sl-ff-head);
  font-size: 18px;
  font-weight: 600;
  color: var(--sl-white);
  transition: background 0.2s;
}
.sl-faq-q:hover { background: var(--sl-black3); }
.sl-faq-chevron {
  width: 20px; height: 20px;
  flex-shrink: 0;
  position: relative;
  margin-left: 16px;
}
.sl-faq-chevron::before,
.sl-faq-chevron::after {
  content: '';
  position: absolute;
  background: var(--sl-grey3);
  border-radius: 1px;
  transition: transform 0.3s, background 0.25s;
}
.sl-faq-chevron::before { width: 10px; height: 2px; top: 9px; left: 0; }
.sl-faq-chevron::after  { width: 10px; height: 2px; top: 9px; right: 0; }
.sl-faq-item.open .sl-faq-chevron::before { transform: rotate(45deg) translate(2px,-2px); background: var(--sl-green); }
.sl-faq-item.open .sl-faq-chevron::after  { transform: rotate(-45deg) translate(-2px,-2px); background: var(--sl-green); }
.sl-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s;
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.75;
  padding: 0 24px;
  background: var(--sl-black);
}
.sl-faq-item.open .sl-faq-a {
  max-height: 400px;
  padding: 20px 24px 24px;
}

/* ── CTA BAND ──────────────────────────────────────── */
.sl-cta-band {
  background: linear-gradient(135deg, var(--sl-black2) 0%, var(--sl-black3) 100%);
  border-top: 1px solid var(--sl-border);
  border-bottom: 1px solid var(--sl-border);
  padding: 80px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.sl-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(73,196,53,0.07) 0%, transparent 70%);
  pointer-events: none;
}
.sl-cta-band h2 {
  font-size: clamp(36px, 4vw, 52px) !important;
  font-weight: 700 !important;
  color: var(--sl-white) !important;
  margin-bottom: 16px !important;
}
.sl-cta-band h2 em { color: var(--sl-green); font-style: normal; }
.sl-cta-band p {
  font-size: 16px;
  color: var(--sl-grey3);
  max-width: 540px;
  margin: 0 auto 36px;
  line-height: 1.7;
}
.sl-cta-band-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

/* ── CONTACT SECTION ───────────────────────────────── */
.sl-contact {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-contact-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 80px;
  align-items: start;
}
.sl-contact-stat {
  border-left: 2px solid var(--sl-border);
  padding-left: 16px;
  margin-bottom: 20px;
  transition: border-color 0.2s;
}
.sl-contact-stat:hover { border-color: var(--sl-green); }
.sl-contact-stat-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--sl-grey3);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.sl-contact-stat-val {
  font-size: 15px;
  font-weight: 500;
  color: var(--sl-white);
}

/* Contact form */
.sl-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sl-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sl-form-field { display: flex; flex-direction: column; gap: 6px; }
.sl-form-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--sl-grey4);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sl-form-input,
.sl-form-textarea,
.wpcf7-text,
.wpcf7-email,
.wpcf7-tel,
.wpcf7-textarea {
  width: 100%;
  background: var(--sl-black2) !important;
  border: 1px solid var(--sl-border) !important;
  border-radius: var(--sl-r) !important;
  padding: 12px 16px !important;
  font-family: var(--sl-ff-body) !important;
  font-size: 14px !important;
  color: var(--sl-white) !important;
  transition: border-color 0.2s !important;
  outline: none !important;
}
.sl-form-input:focus,
.sl-form-textarea:focus,
.wpcf7-text:focus,
.wpcf7-email:focus,
.wpcf7-tel:focus,
.wpcf7-textarea:focus {
  border-color: var(--sl-green) !important;
}
.sl-form-input::placeholder,
.sl-form-textarea::placeholder { color: var(--sl-grey2); }
.sl-form-textarea { min-height: 120px; resize: vertical; }
.sl-form-submit {
  width: 100%;
  background: var(--sl-green);
  color: var(--sl-black);
  border: none;
  border-radius: var(--sl-r);
  padding: 16px;
  font-family: var(--sl-ff-body);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.sl-form-submit:hover { background: var(--sl-green-d); transform: translateY(-1px); }

/* Inquiry chips */
.sl-inquiry-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.sl-chip {
  padding: 6px 14px;
  border-radius: 3px;
  border: 1px solid var(--sl-border);
  background: transparent;
  color: var(--sl-grey3);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  font-family: var(--sl-ff-body);
}
.sl-chip:hover, .sl-chip.on {
  border-color: var(--sl-green-bd);
  background: var(--sl-green-bg);
  color: var(--sl-green);
}

/* ── FOOTER ────────────────────────────────────────── */
.sl-footer {
  background: var(--sl-black2);
  border-top: 1px solid var(--sl-border);
}
.sl-footer-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 64px var(--sl-pad) 48px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
}
.sl-footer-blurb {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.7;
  margin-top: 16px;
  max-width: 280px;
}
.sl-footer-col-title {
  font-family: var(--sl-ff-body);
  font-size: 11px;
  font-weight: 700;
  color: var(--sl-white);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.sl-footer-links {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sl-footer-links a {
  font-size: 14px;
  color: var(--sl-grey3);
  text-decoration: none;
  transition: color 0.2s;
}
.sl-footer-links a:hover { color: var(--sl-green); }
.sl-footer-bottom {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 20px var(--sl-pad);
  border-top: 1px solid var(--sl-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sl-footer-copy { font-size: 13px; color: var(--sl-grey2); }
.sl-footer-cert {
  display: flex;
  gap: 12px;
}
.sl-footer-cert span {
  font-size: 11px;
  font-weight: 700;
  color: var(--sl-grey2);
  letter-spacing: 0.08em;
  border: 1px solid var(--sl-border);
  padding: 3px 8px;
  border-radius: 2px;
}

/* ── WOOCOMMERCE OVERRIDES ─────────────────────────── */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
  color: var(--sl-grey3);
  font-size: 13px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--sl-ff-head);
  color: var(--sl-white);
}
.woocommerce ul.products li.product {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  padding: 20px;
  transition: border-color 0.25s;
}
.woocommerce ul.products li.product:hover { border-color: var(--sl-green); }
.woocommerce ul.products li.product .price {
  color: var(--sl-green);
  font-family: var(--sl-ff-head);
  font-size: 18px;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  background: var(--sl-green) !important;
  color: var(--sl-black) !important;
  font-family: var(--sl-ff-body) !important;
  font-weight: 700 !important;
  border-radius: var(--sl-r) !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--sl-green-d) !important;
}

/* ── RESPONSIVE ────────────────────────────────────── */
@media (max-width: 1024px) {
  .sl-hero-inner          { grid-template-columns: 1fr; }
  .sl-methods-grid        { display: none; }
  .sl-why-layout          { grid-template-columns: 1fr; gap: 48px; }
  .sl-eq-grid             { grid-template-columns: repeat(2, 1fr); }
  .sl-footer-inner        { grid-template-columns: 1fr 1fr; gap: 32px; }
  .sl-stats-inner         { grid-template-columns: repeat(2, 1fr); }
  .sl-stat-item:nth-child(2) { border-right: none; }
}

@media (max-width: 768px) {
  :root { --sl-pad: 20px; }
  .sl-section             { padding: 64px 0; }
  .sl-pathways-grid       { grid-template-columns: 1fr; }
  .sl-services-grid       { grid-template-columns: 1fr; }
  .sl-testi-grid          { grid-template-columns: 1fr; }
  .sl-contact-inner       { grid-template-columns: 1fr; gap: 48px; }
  .sl-form-row            { grid-template-columns: 1fr; }
  .sl-why-grid            { grid-template-columns: 1fr; }
  .sl-eq-grid             { grid-template-columns: 1fr 1fr; }
  .sl-footer-inner        { grid-template-columns: 1fr; }
  .sl-footer-bottom       { flex-direction: column; gap: 12px; text-align: center; }
  .sl-hero-h1             { font-size: 48px !important; }
  .sl-nav-links           { display: none; }
  .sl-nav-toggle          { display: flex; }
  .sl-stats-inner         { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
  .sl-eq-grid             { grid-template-columns: 1fr; }
  .sl-hero-actions        { flex-direction: column; align-items: flex-start; }
  .sl-cta-band-actions    { flex-direction: column; align-items: center; }
}

/* ═══════════════════════════════════════════════════════
   SERVICES PAGE STYLES
═══════════════════════════════════════════════════════ */

/* ── PAGE HERO ─────────────────────────────────────── */
.sl-page-hero {
  padding: 140px var(--sl-pad) 72px;
  background: var(--sl-black);
  border-bottom: 1px solid var(--sl-border);
  position: relative;
  overflow: hidden;
}
.sl-page-hero::before {
  content: '';
  position: absolute;
  bottom: -160px; left: -100px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(73,196,53,0.07) 0%, transparent 70%);
  pointer-events: none;
}
.sl-page-hero-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.sl-page-hero-h1 {
  font-size: clamp(48px, 5.5vw, 76px) !important;
  font-weight: 700 !important;
  line-height: 1.0 !important;
  color: var(--sl-white) !important;
  margin-bottom: 20px !important;
}
.sl-page-hero-sub {
  font-size: 16px;
  color: var(--sl-grey3);
  line-height: 1.75;
  max-width: 440px;
}

/* Services quick-nav chips */
.sl-services-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sl-svc-nav-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-r);
  background: var(--sl-black2);
  color: var(--sl-grey4);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s;
  font-family: var(--sl-ff-body);
}
.sl-svc-nav-chip::before {
  content: '↓';
  font-size: 11px;
  color: var(--sl-grey2);
  transition: color 0.2s;
}
.sl-svc-nav-chip:hover {
  border-color: var(--sl-green-bd);
  background: var(--sl-green-bg);
  color: var(--sl-green);
}
.sl-svc-nav-chip:hover::before { color: var(--sl-green); }

/* ── SERVICE SECTIONS ──────────────────────────────── */
.sl-services-page { background: var(--sl-black); }

.sl-svc-section {
  padding: 96px 0;
  border-bottom: 1px solid var(--sl-border);
  background: var(--sl-black);
}
.sl-svc-section--alt {
  background: var(--sl-black2);
}
.sl-svc-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* Image column */
.sl-svc-img-wrap {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--sl-border);
}
.sl-svc-img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
  filter: brightness(0.88);
  transition: filter 0.4s, transform 0.4s;
}
.sl-svc-section:hover .sl-svc-img {
  filter: brightness(0.95);
  transform: scale(1.02);
}
.sl-svc-num-badge {
  position: absolute;
  top: 20px; left: 20px;
  font-family: var(--sl-ff-head);
  font-size: 13px;
  font-weight: 800;
  color: var(--sl-green);
  background: rgba(14,14,14,0.85);
  border: 1px solid var(--sl-green-bd);
  border-radius: 3px;
  padding: 4px 10px;
  letter-spacing: 0.08em;
  backdrop-filter: blur(8px);
}

/* Content column */
.sl-svc-title {
  font-size: clamp(36px, 3.5vw, 52px) !important;
  font-weight: 700 !important;
  color: var(--sl-white) !important;
  margin-bottom: 20px !important;
  line-height: 1.0 !important;
}
.sl-svc-desc {
  font-size: 15px;
  color: var(--sl-grey3);
  line-height: 1.75;
  margin-bottom: 28px;
}
.sl-svc-bullets {
  list-style: none;
  margin: 0 0 36px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sl-svc-bullets li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--sl-grey4);
  font-weight: 500;
}
.sl-svc-bullets li::before {
  content: '';
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  flex-shrink: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3.5 3.5L13 5' stroke='%2349c435' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 12px;
  background-position: center;
  background-repeat: no-repeat;
}
.sl-svc-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── SERVICES PAGE RESPONSIVE ──────────────────────── */
@media (max-width: 1024px) {
  .sl-page-hero-inner { grid-template-columns: 1fr; gap: 48px; }
  .sl-page-hero-sub   { max-width: 100%; }
  .sl-svc-inner       { grid-template-columns: 1fr; gap: 40px; }
  /* Force image above content on mobile regardless of alt class */
  .sl-svc-section--alt .sl-svc-inner { direction: ltr; }
  .sl-svc-section--alt .sl-svc-inner .sl-svc-content { order: 2; }
  .sl-svc-section--alt .sl-svc-inner .sl-svc-img-wrap { order: 1; }
  .sl-svc-img         { height: 280px; }
}

@media (max-width: 768px) {
  .sl-page-hero   { padding: 120px var(--sl-pad) 56px; }
  .sl-svc-section { padding: 64px 0; }
  .sl-services-nav { gap: 8px; }
  .sl-svc-nav-chip { font-size: 12px; padding: 7px 12px; }
  .sl-svc-actions { flex-direction: column; align-items: flex-start; }
  .sl-svc-img     { height: 220px; }
}

/* ═══════════════════════════════════════════════════════
   INNER PAGES — About, Contact, Equipment, Supplies,
                 Leasing, Resources
═══════════════════════════════════════════════════════ */

/* ── PAGE HERO VARIANTS ────────────────────────────── */
.sl-page-hero--short {
  padding: 140px var(--sl-pad) 64px;
}
.sl-page-hero--short .sl-container {
  max-width: var(--sl-max);
  margin: 0 auto;
}

/* ── ABOUT HERO ────────────────────────────────────── */
.sl-about-hero {
  background: var(--sl-black);
  border-bottom: 1px solid var(--sl-border);
  padding: 140px var(--sl-pad) 80px;
  position: relative;
  overflow: hidden;
}
.sl-about-hero::after {
  content: '';
  position: absolute;
  top: -120px; right: -80px;
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(73,196,53,0.06) 0%, transparent 70%);
  pointer-events: none;
}
.sl-about-hero-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.sl-about-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 36px;
}
.sl-about-hero-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--sl-border);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  overflow: hidden;
}
.sl-about-stat {
  background: var(--sl-black2);
  padding: 32px 28px;
  transition: background 0.2s;
}
.sl-about-stat:hover { background: var(--sl-black3); }
.sl-about-stat-num {
  font-family: var(--sl-ff-head);
  font-size: 48px;
  font-weight: 800;
  color: var(--sl-green);
  line-height: 1;
  margin-bottom: 6px;
}
.sl-about-stat-label {
  font-size: 13px;
  color: var(--sl-grey3);
  font-weight: 500;
  line-height: 1.4;
}

/* ── ABOUT STORY ───────────────────────────────────── */
.sl-about-story {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-about-story-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.sl-about-p {
  font-size: 15px;
  color: var(--sl-grey3);
  line-height: 1.8;
  margin-bottom: 20px;
}
.sl-about-locations {
  margin-top: 36px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sl-about-location {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-r);
}
.sl-about-location-icon { font-size: 20px; }
.sl-about-location-city {
  font-size: 15px;
  font-weight: 600;
  color: var(--sl-white);
}
.sl-about-location-detail {
  font-size: 12px;
  color: var(--sl-grey3);
  margin-top: 2px;
}

/* Credentials column */
.sl-about-creds {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 36px 32px;
}
.sl-about-creds-title {
  font-family: var(--sl-ff-body);
  font-size: 11px;
  font-weight: 700;
  color: var(--sl-grey3);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.sl-about-cred-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sl-about-cred-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--sl-border);
}
.sl-about-cred-item:last-child { border-bottom: none; }
.sl-about-cred-badge {
  font-family: var(--sl-ff-head);
  font-size: 13px;
  font-weight: 800;
  color: var(--sl-green);
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  border-radius: 3px;
  padding: 4px 10px;
  letter-spacing: 0.06em;
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 96px;
  text-align: center;
}
.sl-about-cred-desc {
  font-size: 13px;
  color: var(--sl-grey3);
  line-height: 1.6;
}

/* ── ABOUT VALUES ──────────────────────────────────── */
.sl-about-values {
  padding: 100px 0;
  background: var(--sl-black2);
}
.sl-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.sl-value-card {
  background: var(--sl-black);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 32px 28px;
  transition: border-color 0.25s, transform 0.25s;
}
.sl-value-card:hover {
  border-color: var(--sl-green);
  transform: translateY(-3px);
}
.sl-value-icon {
  font-size: 28px;
  margin-bottom: 18px;
  display: block;
}
.sl-value-title {
  font-family: var(--sl-ff-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 10px;
}
.sl-value-desc {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.7;
}

/* ── CONTACT PAGE ──────────────────────────────────── */
.sl-contact-page {
  padding: 80px 0 100px;
  background: var(--sl-black);
}
.sl-contact-page-grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 80px;
  align-items: start;
}
.sl-contact-info { }
.sl-contact-info-block {
  padding-bottom: 28px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--sl-border);
}
.sl-contact-info-block:last-of-type { border-bottom: none; }
.sl-contact-info-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--sl-grey3);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.sl-contact-info-val {
  font-size: 17px;
  font-weight: 600;
  color: var(--sl-white);
  line-height: 1.4;
}
.sl-contact-info-link {
  color: var(--sl-white);
  text-decoration: none;
  transition: color 0.2s;
}
.sl-contact-info-link:hover { color: var(--sl-green); }
.sl-contact-info-sub {
  font-size: 12px;
  color: var(--sl-grey3);
  margin-top: 4px;
}
.sl-contact-locations {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 4px;
}
.sl-contact-location-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--sl-white);
}
.sl-contact-location-role {
  font-size: 12px;
  color: var(--sl-grey3);
}
.sl-contact-social {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.sl-social-link {
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-r);
  color: var(--sl-grey3);
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  transition: all 0.2s;
}
.sl-social-link:hover {
  border-color: var(--sl-green-bd);
  background: var(--sl-green-bg);
  color: var(--sl-green);
}
.sl-contact-form-col { }
.sl-contact-form-header { margin-bottom: 24px; }
.sl-contact-form-title {
  font-family: var(--sl-ff-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 16px;
}

/* ── EQUIPMENT LANDING ─────────────────────────────── */
.sl-eq-hero-badges {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.sl-eq-hero-badge {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  padding: 24px 20px;
  text-align: center;
}
.sl-eq-hero-badge-num {
  font-family: var(--sl-ff-head);
  font-size: 36px;
  font-weight: 800;
  color: var(--sl-green);
  line-height: 1;
  margin-bottom: 6px;
}
.sl-eq-hero-badge-label {
  font-size: 12px;
  color: var(--sl-grey3);
  font-weight: 500;
}
.sl-eq-categories { background: var(--sl-black); }
.sl-eq-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 48px;
}
.sl-eq-cat-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  padding: 24px 20px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color 0.25s, background 0.25s, transform 0.25s;
  color: var(--sl-white);
}
.sl-eq-cat-card:hover {
  border-color: var(--sl-green);
  background: var(--sl-black3);
  transform: translateY(-3px);
  color: var(--sl-white);
}
.sl-eq-cat-card--all {
  background: var(--sl-green-bg);
  border-color: var(--sl-green-bd);
}
.sl-eq-cat-icon { font-size: 24px; }
.sl-eq-cat-name {
  font-family: var(--sl-ff-head);
  font-size: 17px;
  font-weight: 700;
  color: var(--sl-white);
  line-height: 1.2;
}
.sl-eq-cat-desc {
  font-size: 12px;
  color: var(--sl-grey3);
  line-height: 1.5;
}
.sl-eq-advisory-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.sl-eq-advisory-checklist {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--sl-black);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  overflow: hidden;
}
.sl-advisory-check {
  padding: 16px 24px;
  font-size: 14px;
  font-weight: 500;
  color: var(--sl-grey4);
  border-bottom: 1px solid var(--sl-border);
  transition: background 0.2s, color 0.2s;
}
.sl-advisory-check:last-child { border-bottom: none; }
.sl-advisory-check:hover {
  background: var(--sl-green-bg);
  color: var(--sl-green);
}

/* ── SUPPLIES LANDING ──────────────────────────────── */
.sl-supplies-hero-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sl-supplies-highlight {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 6px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: border-color 0.2s;
}
.sl-supplies-highlight:hover { border-color: var(--sl-green-bd); }
.sl-supplies-hl-icon { font-size: 22px; flex-shrink: 0; }
.sl-supplies-hl-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--sl-white);
  margin-bottom: 2px;
}
.sl-supplies-hl-sub { font-size: 12px; color: var(--sl-grey3); }
.sl-supplies-categories { background: var(--sl-black); }
.sl-supplies-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 48px;
}
.sl-supplies-cat-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 32px 28px;
  transition: border-color 0.25s, transform 0.25s;
}
.sl-supplies-cat-card:hover {
  border-color: var(--sl-green);
  transform: translateY(-3px);
}
.sl-supplies-cat-icon { font-size: 28px; margin-bottom: 16px; display: block; }
.sl-supplies-cat-name {
  font-family: var(--sl-ff-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 10px;
}
.sl-supplies-cat-desc {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.7;
  margin-bottom: 20px;
}
.sl-supplies-cat-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--sl-green);
  text-decoration: none;
  transition: color 0.2s;
}
.sl-supplies-cat-link:hover { color: var(--sl-green-d); }

/* ── LEASING PAGE ──────────────────────────────────── */
.sl-leasing-body { background: var(--sl-black); }
.sl-leasing-layout {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 80px;
  align-items: start;
}
.sl-leasing-option-card {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  padding: 28px 0;
  border-bottom: 1px solid var(--sl-border);
}
.sl-leasing-option-card:last-child { border-bottom: none; }
.sl-leasing-option-num {
  font-family: var(--sl-ff-head);
  font-size: 32px;
  font-weight: 800;
  color: var(--sl-grey1);
  line-height: 1;
  flex-shrink: 0;
  width: 48px;
}
.sl-leasing-option-title {
  font-family: var(--sl-ff-head);
  font-size: 22px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 10px;
}
.sl-leasing-option-desc {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.75;
}
.sl-leasing-sidebar {
  position: sticky;
  top: 88px;
}
.sl-leasing-who-block {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 28px 24px;
  margin-bottom: 16px;
}
.sl-leasing-who-title {
  font-family: var(--sl-ff-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 18px;
}
.sl-leasing-caveat {
  font-size: 12px;
  color: var(--sl-grey2);
  line-height: 1.6;
  padding: 16px;
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-r);
  margin-bottom: 16px;
}
.sl-leasing-cta-block {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 28px 24px;
}
.sl-leasing-cta-title {
  font-family: var(--sl-ff-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--sl-white);
  margin-bottom: 8px;
}

/* ── RESOURCES PAGE ────────────────────────────────── */
.sl-resources-body { background: var(--sl-black); }
.sl-resources-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 48px;
}
.sl-res-filter {
  padding: 8px 18px;
  border-radius: 100px;
  border: 1px solid var(--sl-border);
  background: transparent;
  color: var(--sl-grey3);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  font-family: var(--sl-ff-body);
}
.sl-res-filter:hover,
.sl-res-filter.on {
  border-color: var(--sl-green-bd);
  background: var(--sl-green-bg);
  color: var(--sl-green);
}
.sl-resources-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 56px;
}
.sl-res-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  padding: 32px 28px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: border-color 0.25s, transform 0.25s;
  color: var(--sl-white);
}
.sl-res-card:hover {
  border-color: var(--sl-green);
  transform: translateY(-3px);
  color: var(--sl-white);
}
.sl-res-card-cat {
  font-size: 11px;
  font-weight: 700;
  color: var(--sl-green);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.sl-res-card-title {
  font-family: var(--sl-ff-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--sl-white);
  line-height: 1.2;
  margin-bottom: 12px;
}
.sl-res-card-excerpt {
  font-size: 13px;
  color: var(--sl-grey3);
  line-height: 1.7;
  flex: 1;
  margin-bottom: 20px;
}
.sl-res-card-meta {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: var(--sl-grey2);
  margin-top: auto;
}
.sl-resources-cta {
  text-align: center;
  padding: 48px;
  border: 1px solid var(--sl-border);
  border-radius: 8px;
  background: var(--sl-black2);
}
.sl-resources-subscribe {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 16px;
  flex-wrap: wrap;
}

/* ══════════════════════════════════════════════════════
   INNER PAGES — RESPONSIVE
══════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .sl-about-hero-inner   { grid-template-columns: 1fr; }
  .sl-about-story-layout { grid-template-columns: 1fr; }
  .sl-contact-page-grid  { grid-template-columns: 1fr; }
  .sl-eq-cat-grid        { grid-template-columns: repeat(3, 1fr); }
  .sl-eq-advisory-inner  { grid-template-columns: 1fr; gap: 48px; }
  .sl-leasing-layout     { grid-template-columns: 1fr; }
  .sl-leasing-sidebar    { position: static; }
}
@media (max-width: 768px) {
  .sl-values-grid        { grid-template-columns: 1fr; }
  .sl-supplies-cat-grid  { grid-template-columns: 1fr; }
  .sl-resources-grid     { grid-template-columns: 1fr; }
  .sl-eq-cat-grid        { grid-template-columns: repeat(2, 1fr); }
  .sl-about-hero-stats   { grid-template-columns: 1fr 1fr; }
  .sl-page-hero--short   { padding: 120px var(--sl-pad) 52px; }
}
@media (max-width: 480px) {
  .sl-eq-cat-grid        { grid-template-columns: 1fr; }
  .sl-about-hero-stats   { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════
   COMPLIANCE EMBLEMS BAR
═══════════════════════════════════════════════════════ */
.sl-compliance-bar {
  background: var(--sl-black2);
  border-top: 1px solid var(--sl-border);
  border-bottom: 1px solid var(--sl-border);
  padding: 0;
}
.sl-compliance-inner {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-pad);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.sl-compliance-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 36px 24px;
  transition: background 0.2s;
}
.sl-compliance-item:hover { background: var(--sl-black3); }
.sl-compliance-logo {
  height: 52px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  /* Normalize logos to white so they read on dark bg */
  filter: brightness(0) invert(1);
  opacity: 0.85;
  transition: opacity 0.2s;
}
.sl-compliance-item:hover .sl-compliance-logo { opacity: 1; }
.sl-compliance-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--sl-grey3);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
}
.sl-compliance-divider {
  width: 1px;
  height: 60px;
  background: var(--sl-border);
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .sl-compliance-inner  { flex-wrap: wrap; }
  .sl-compliance-item   { flex: 0 0 50%; padding: 24px 16px; }
  .sl-compliance-divider { display: none; }
}
@media (max-width: 480px) {
  .sl-compliance-item   { flex: 0 0 100%; }
}

/* ═══════════════════════════════════════════════════════
   FAQ — LIGHT VARIANT
═══════════════════════════════════════════════════════ */
.sl-faq--light {
  background: var(--sl-white) !important;
}
.sl-faq--light .sl-tag {
  color: var(--sl-green);
}
.sl-faq--light .sl-section-title {
  color: var(--sl-black) !important;
}
.sl-faq--light .sl-faq-item {
  border-color: #E0E0E0;
  background: var(--sl-white);
}
.sl-faq--light .sl-faq-item.open {
  border-color: var(--sl-green);
}
.sl-faq--light .sl-faq-q {
  background: var(--sl-white);
  color: var(--sl-black);
}
.sl-faq--light .sl-faq-q:hover {
  background: #F8F8F8;
}
.sl-faq--light .sl-faq-chevron::before,
.sl-faq--light .sl-faq-chevron::after {
  background: #999;
}
.sl-faq--light .sl-faq-item.open .sl-faq-chevron::before,
.sl-faq--light .sl-faq-item.open .sl-faq-chevron::after {
  background: var(--sl-green);
}
.sl-faq--light .sl-faq-a {
  background: #F8F8F8;
  color: #555;
}

/* ═══════════════════════════════════════════════════════
   CTA BAND — IMAGE VARIANT
═══════════════════════════════════════════════════════ */
.sl-cta-band--image {
  background-color: var(--sl-black) !important;
  background-size: cover !important;
  background-position: center !important;
  background-attachment: fixed !important;
  position: relative;
  overflow: hidden;
}
/* Remove the old CSS-only radial gradient pseudo — replaced by the overlay div */
.sl-cta-band--image::before { display: none; }

.sl-cta-band-overlay {
  position: absolute;
  inset: 0;
  /* Photo shows through at ~45%, green gradient on top */
  background:
    radial-gradient(ellipse at center, rgba(73,196,53,0.45) 0%, rgba(14,14,14,0.78) 70%),
    linear-gradient(180deg, rgba(14,14,14,0.35) 0%, rgba(14,14,14,0.55) 100%);
  z-index: 0;
}

/* Ensure text stays crisp white over the image */
.sl-cta-band--image h2,
.sl-cta-band--image h2 em,
.sl-cta-band--image p {
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}

/* ═══════════════════════════════════════════════════════
   LIGHT SECTION VARIANTS
   Applied via --light modifier classes
═══════════════════════════════════════════════════════ */

/* ── Hero maple leaf SVG ───────────────────────────── */
.sl-maple-leaf {
  display: inline-block;
  vertical-align: middle;
  margin-right: 2px;
  flex-shrink: 0;
}

/* ── Pathways — white background ───────────────────── */
.sl-pathways--light {
  background: var(--sl-white) !important;
}
.sl-pathways--light .sl-tag {
  color: var(--sl-green);
}
.sl-pathways--light .sl-section-title {
  color: var(--sl-black) !important;
}
.sl-pathways--light .sl-section-title .green {
  color: var(--sl-green) !important;
}
.sl-pathways--light > .sl-container > p {
  color: #666 !important;
}
.sl-pathways--light .sl-pathway-card {
  background: #fff;
  border-color: #e8e8e8;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  color: var(--sl-black);
}
.sl-pathways--light .sl-pathway-card:hover {
  border-color: var(--sl-green);
  background: #fff;
  box-shadow: 0 24px 48px rgba(73,196,53,0.14), 0 8px 24px rgba(0,0,0,0.07);
  color: var(--sl-black);
}
.sl-pathways--light .sl-pathway-title {
  color: var(--sl-black) !important;
}
.sl-pathways--light .sl-pathway-desc {
  color: #666 !important;
}

/* ── Pathways cover-card overlay link ───────────────── */
/* The <a> lives inside wp-block-cover__inner-container (position:relative).
   Setting it to static lets the absolute <a> reference wp-block-cover instead. */
.sl-pathways .wp-block-cover__inner-container {
  position: static;
}
.sl-pathway-cover-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  text-decoration: none;
  border-radius: 12px;
}
/* Keep text above the link overlay */
.sl-pathways .wp-block-cover h2,
.sl-pathways .wp-block-cover p {
  position: relative;
  z-index: 3;
  pointer-events: none;
}

/* ── Pathways cover-card hover effects ─────────────── */
.sl-pathways .wp-block-columns .wp-block-column {
  transition: transform 0.35s cubic-bezier(.22,.68,0,1.2);
  cursor: pointer;
}
.sl-pathways .wp-block-columns .wp-block-column:hover { transform: translateY(-8px); }
.sl-pathways .wp-block-columns .wp-block-cover {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  transition: box-shadow 0.35s, outline 0.2s;
  outline: 2px solid transparent;
  outline-offset: 0;
}
.sl-pathways .wp-block-columns .wp-block-column:hover .wp-block-cover {
  box-shadow: 0 24px 56px rgba(0,0,0,0.28);
  outline-color: var(--sl-green);
}
/* Lighten the overlay on hover — reveals more of the background photo */
.sl-pathways .wp-block-columns .wp-block-cover__background { transition: opacity 0.4s; }
.sl-pathways .wp-block-columns .wp-block-column:hover .wp-block-cover__background { opacity: 0.5 !important; }
/* CTA button glow on card hover */
.sl-pathways .wp-block-columns .wp-block-button__link {
  transition: transform 0.25s, box-shadow 0.25s !important;
}
.sl-pathways .wp-block-columns .wp-block-column:hover .wp-block-button__link {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(73,196,53,0.4) !important;
}

/* ── Services — off-white background ───────────────── */
.sl-services--light {
  background: #F7F7F5 !important;
}
.sl-services--light .sl-tag {
  color: var(--sl-green);
}
.sl-services--light .sl-section-title {
  color: var(--sl-black) !important;
}
.sl-services--light .sl-service-card {
  background: var(--sl-white);
  border-color: #E0E0E0;
}
.sl-services--light .sl-service-card:hover {
  border-color: #BDBDBD;
}
.sl-services--light .sl-service-num {
  color: #DEDEDE;
}
.sl-services--light .sl-service-title {
  color: var(--sl-black);
}
.sl-services--light .sl-service-desc {
  color: #666;
}
.sl-services--light .sl-service-tag {
  color: #888;
  border-color: #DEDEDE;
}

/* ── About Story — white background ────────────────── */
.sl-about-story--light {
  background: var(--sl-white) !important;
}
.sl-about-story--light .sl-tag {
  color: var(--sl-green);
}
.sl-about-story--light .sl-section-title {
  color: var(--sl-black) !important;
}
.sl-about-story--light .sl-about-p {
  color: #666 !important;
}
.sl-about-story--light .sl-about-location {
  background: #F4F4F2;
  border-color: #E0E0E0;
}
.sl-about-story--light .sl-about-location-city {
  color: var(--sl-black);
}
.sl-about-story--light .sl-about-creds {
  background: #F4F4F2;
  border-color: #E0E0E0;
}
.sl-about-story--light .sl-about-creds-title {
  color: #888;
}
.sl-about-story--light .sl-about-cred-item {
  border-color: #E0E0E0;
}
.sl-about-story--light .sl-about-cred-desc {
  color: #666;
}

/* ── Equipment Categories — white background ────────── */
.sl-eq-categories--light {
  background: var(--sl-white) !important;
}
.sl-eq-categories--light .sl-tag {
  color: var(--sl-green);
}
.sl-eq-categories--light .sl-section-title {
  color: var(--sl-black) !important;
}
.sl-eq-categories--light .sl-eq-cat-card {
  background: #F4F4F2;
  border-color: #E0E0E0;
  color: var(--sl-black);
}
.sl-eq-categories--light .sl-eq-cat-card:hover {
  background: #EBEBEB;
  border-color: var(--sl-green);
  color: var(--sl-black);
}
.sl-eq-categories--light .sl-eq-cat-card--all {
  background: var(--sl-green-bg);
  border-color: var(--sl-green-bd);
}
.sl-eq-categories--light .sl-eq-cat-name {
  color: var(--sl-black);
}
.sl-eq-categories--light .sl-eq-cat-desc {
  color: #666;
}

/* ── Supplies Categories — white background ─────────── */
.sl-supplies-categories--light {
  background: var(--sl-white) !important;
}
.sl-supplies-categories--light .sl-tag {
  color: var(--sl-green);
}
.sl-supplies-categories--light .sl-section-title {
  color: var(--sl-black) !important;
}
.sl-supplies-categories--light .sl-supplies-cat-card {
  background: #F4F4F2;
  border-color: #E0E0E0;
}
.sl-supplies-categories--light .sl-supplies-cat-card:hover {
  background: #EBEBEB;
  border-color: var(--sl-green);
}
.sl-supplies-categories--light .sl-supplies-cat-name {
  color: var(--sl-black);
}
.sl-supplies-categories--light .sl-supplies-cat-desc {
  color: #666;
}


/* ═══════════════════════════════════════════════════════
   PARTNERS / MANUFACTURING NETWORK
   ═══════════════════════════════════════════════════════ */

.sl-partners {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-partners .sl-container > p,
.sl-partners .wp-block-paragraph {
  font-size: 15px;
  color: var(--sl-grey3);
  max-width: 560px;
  line-height: 1.7;
  margin-bottom: 0;
}
.sl-partners-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  margin-top: 56px;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-r);
  overflow: hidden;
}
.sl-partner-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px 24px;
  border-right: 1px solid var(--sl-border);
  border-bottom: 1px solid var(--sl-border);
  background: var(--sl-black2);
  transition: background 0.2s;
}
.sl-partner-logo:last-child,
.sl-partner-logo:nth-child(5n) { border-right: none; }
.sl-partner-logo:nth-child(n+6) { border-bottom: none; }
.sl-partner-logo:hover { background: var(--sl-black3); }
.sl-partner-logo img {
  max-width: 110px;
  max-height: 40px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.55;
  transition: opacity 0.2s;
  display: block;
  margin: 0 auto;
}
.sl-partner-logo:hover img { opacity: 0.9; }

/* ── Partners — light variant ─────────────────────── */
.sl-partners--light { background: var(--sl-white) !important; }
.sl-partners--light .sl-tag { color: var(--sl-green); }
.sl-partners--light .sl-section-title { color: var(--sl-black) !important; }
.sl-partners--light .sl-section-title .green { color: var(--sl-green) !important; }
.sl-partners--light .sl-container > p,
.sl-partners--light .wp-block-paragraph { color: #666 !important; }
.sl-partners--light .sl-partners-grid { border-color: var(--sl-border-lt); }
.sl-partners--light .sl-partner-logo {
  background: var(--sl-off);
  border-color: var(--sl-border-lt);
}
.sl-partners--light .sl-partner-logo:hover { background: #EBEBEB; }
.sl-partners--light .sl-partner-logo img {
  filter: grayscale(1);
  opacity: 0.55;
}
.sl-partners--light .sl-partner-logo:hover img {
  filter: grayscale(0);
  opacity: 1;
}

/* ── Partners responsive ──────────────────────────── */
@media (max-width: 1024px) {
  .sl-partners-grid { grid-template-columns: repeat(4, 1fr); }
  .sl-partner-logo:nth-child(4n) { border-right: none; }
  .sl-partner-logo:nth-child(n+5) { border-bottom: none; }
}
@media (max-width: 768px) {
  .sl-partners { padding: 64px 0; }
  .sl-partners-grid { grid-template-columns: repeat(3, 1fr); }
  .sl-partner-logo:nth-child(3n) { border-right: none; }
  .sl-partner-logo:nth-child(n+7) { border-bottom: none; }
}
@media (max-width: 480px) {
  .sl-partners-grid { grid-template-columns: repeat(2, 1fr); }
  .sl-partner-logo { padding: 20px 16px; }
  .sl-partner-logo:nth-child(2n) { border-right: none; }
  .sl-partner-logo:nth-child(n+9) { border-bottom: none; }
}


/* ═══════════════════════════════════════════════════════
   TESTIMONIALS
   ═══════════════════════════════════════════════════════ */

.sl-testimonials {
  padding: 100px 0;
  background: var(--sl-black);
}
.sl-testimonials .sl-container {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sl-testimonials .sl-tag { justify-content: center; }
.sl-testimonials .sl-section-title {
  text-align: center;
  margin-bottom: 12px;
}
.sl-section-sub {
  font-size: 15px;
  color: var(--sl-grey3);
  text-align: center;
  max-width: 500px;
  line-height: 1.7;
  margin-bottom: 0;
}
.sl-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 56px;
  width: 100%;
}
.sl-testimonial-card {
  background: var(--sl-black2);
  border: 1px solid var(--sl-border);
  border-radius: 10px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: border-color 0.25s, transform 0.25s;
}
.sl-testimonial-card:hover {
  border-color: var(--sl-green-bd);
  transform: translateY(-3px);
}
.sl-testimonial-stars {
  font-size: 15px;
  color: #F5A623;
  letter-spacing: 2px;
}
.sl-testimonial-text {
  font-size: 14px;
  color: var(--sl-grey3);
  line-height: 1.8;
  flex: 1;
  font-style: italic;
  margin: 0;
}
.sl-testimonial-author {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 20px;
  border-top: 1px solid var(--sl-border);
}
.sl-testimonial-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--sl-border);
  flex-shrink: 0;
}
.sl-testimonial-name {
  font-family: var(--sl-ff-head);
  font-size: 15px;
  font-weight: 600;
  color: var(--sl-white);
  line-height: 1.2;
}
.sl-testimonial-role {
  font-size: 12px;
  color: var(--sl-grey3);
  margin-top: 3px;
}

/* ── Testimonials — light variant ────────────────── */
.sl-testimonials--light { background: var(--sl-off) !important; }
.sl-testimonials--light .sl-tag { color: var(--sl-green); }
.sl-testimonials--light .sl-section-title { color: var(--sl-black) !important; }
.sl-testimonials--light .sl-section-title .green { color: var(--sl-green) !important; }
.sl-testimonials--light .sl-section-sub { color: #666 !important; }
.sl-testimonials--light .sl-testimonial-card {
  background: var(--sl-white);
  border-color: #E0E0E0;
}
.sl-testimonials--light .sl-testimonial-card:hover { border-color: var(--sl-green); }
.sl-testimonials--light .sl-testimonial-text { color: #555; }
.sl-testimonials--light .sl-testimonial-author { border-color: #E8E8E8; }
.sl-testimonials--light .sl-testimonial-name { color: var(--sl-black); }
.sl-testimonials--light .sl-testimonial-role { color: #888; }

/* ── Testimonials responsive ──────────────────────── */
@media (max-width: 1024px) {
  .sl-testimonials-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .sl-testimonials { padding: 64px 0; }
  .sl-testimonials-grid { grid-template-columns: 1fr; }
}


/* ── Footer Contact block (synced pattern 32720) ─────
   The wp:cover block sets color:#fff globally, but WooCommerce
   page CSS overrides headings with dark colours.
   Lock text to white/green regardless of page context.       */
.footer-shop .wp-block-cover__inner-container {
  color: #ffffff;
}
.footer-shop .wp-block-heading {
  color: #ffffff !important;
}
.footer-shop .has-accent-color {
  color: var(--sl-green, #49c435) !important;
}
.footer-shop .wp-block-button__link {
  color: #ffffff !important;
}

/* ── Google Reviews CTA ─────────────────────────────── */
.sl-reviews-cta {
  background: var(--sl-black);
  padding: 48px 0;
  border-top: 1px solid var(--sl-border);
}
.sl-reviews-cta__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  flex-wrap: wrap;
}
.sl-reviews-cta__rating {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.sl-reviews-cta__score {
  font-family: var(--sl-ff-head);
  font-size: 48px;
  font-weight: 700;
  color: var(--sl-white);
  line-height: 1;
}
.sl-reviews-cta__stars {
  color: #F5A623;
  font-size: 22px;
  letter-spacing: 3px;
}
.sl-reviews-cta__label {
  font-size: 12px;
  color: var(--sl-grey3);
  text-transform: uppercase;
  letter-spacing: .1em;
}
.sl-reviews-cta__text {
  text-align: left;
}
.sl-reviews-cta__text p {
  color: var(--sl-grey3);
  font-size: 15px;
  margin: 0 0 10px;
}
.sl-reviews-cta__link {
  color: var(--sl-green);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
}
.sl-reviews-cta__link:hover { text-decoration: underline; }
@media (max-width: 600px) {
  .sl-reviews-cta__inner { flex-direction: column; gap: 20px; }
  .sl-reviews-cta__text { text-align: center; }
}

/* ── Compliance bar — text-only badge (CSA, EU GMP) ── */
.sl-compliance-logo--text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  min-width: 64px;
  padding: 0 10px;
  background: var(--sl-green-bg);
  border: 1px solid var(--sl-green-bd);
  border-radius: var(--sl-r);
  font-family: var(--sl-ff-head);
  font-size: 14px;
  font-weight: 700;
  color: var(--sl-green);
  letter-spacing: 0.04em;
  opacity: 0.85;
  transition: opacity 0.2s;
}
.sl-compliance-item:hover .sl-compliance-logo--text { opacity: 1; }

/* ─────────────────────────────────────────────────────────────
   FOOTER V2 — matches live site footer
   ─────────────────────────────────────────────────────────────*/
.sl-footer-v2 {
  background: var(--sl-black2);
  border-top: 1px solid var(--sl-border);
  color: var(--sl-white);
  font-family: var(--sl-ff-body);
}
.sl-footer-v2-top {
  background: var(--sl-black);
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sl-grey3);
  padding: 14px 24px;
  border-bottom: 1px solid var(--sl-border);
}
.sl-footer-v2-mid {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 56px 40px 48px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 48px;
}
.sl-footer-v2-block-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sl-grey3);
  margin-bottom: 16px;
}
.sl-footer-v2-line {
  font-size: 14px;
  color: var(--sl-grey4);
  margin: 0 0 8px;
  line-height: 1.6;
}
.sl-footer-v2-link {
  color: var(--sl-green);
  text-decoration: none;
  font-weight: 600;
}
.sl-footer-v2-link:hover { text-decoration: underline; }
.sl-footer-v2-newsletter .sl-footer-v2-block-title {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--sl-white);
}
.sl-footer-v2-form {
  display: flex;
  gap: 8px;
}
.sl-footer-v2-email {
  flex: 1;
  background: var(--sl-black3);
  border: 1px solid var(--sl-border);
  color: var(--sl-white);
  padding: 10px 14px;
  font-size: 13px;
  border-radius: 4px;
  outline: none;
}
.sl-footer-v2-email:focus { border-color: var(--sl-green); }
.sl-footer-v2-submit {
  background: var(--sl-green);
  color: #000;
  border: none;
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 4px;
  cursor: pointer;
}
.sl-footer-v2-submit:hover { background: var(--sl-green-d); }
.sl-footer-v2-social {
  display: flex;
  justify-content: center;
  gap: 16px;
  padding: 0 40px 32px;
  border-bottom: 1px solid var(--sl-border);
  max-width: var(--sl-max);
  margin: 0 auto;
}
.sl-footer-v2-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--sl-border);
  border-radius: 4px;
  color: var(--sl-grey3);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color .2s, color .2s;
}
.sl-footer-v2-social-link:hover { border-color: var(--sl-green); color: var(--sl-green); }
.sl-footer-v2-legal {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 20px 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 0;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}
.sl-footer-v2-legal a {
  color: var(--sl-grey3);
  text-decoration: none;
  padding: 0 12px;
  transition: color .2s;
}
.sl-footer-v2-legal a:hover { color: var(--sl-white); }
.sl-footer-v2-sep { color: var(--sl-grey2); }
.sl-footer-v2-copy {
  text-align: center;
  font-size: 12px;
  color: var(--sl-grey2);
  padding: 0 40px 28px;
}

/* ─────────────────────────────────────────────────────────────
   EXTRACTION METHOD PAGES
   ─────────────────────────────────────────────────────────────*/

/* Hero */
.sl-extraction-hero {
  position: relative;
  min-height: 480px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
}
.sl-extraction-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.3) 60%, rgba(0,0,0,.1) 100%);
  pointer-events: none;
}
.sl-extraction-hero-inner {
  position: relative;
  z-index: 1;
  padding: 64px 40px 56px;
}
.sl-extraction-title {
  font-family: var(--sl-ff-head);
  font-size: clamp(40px, 7vw, 72px);
  font-weight: 800;
  color: var(--sl-white);
  line-height: 1.05;
  margin: 0 0 24px;
  text-transform: uppercase;
}
.sl-extraction-title strong {
  color: var(--sl-green);
}
.sl-extraction-tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sl-extraction-tags li {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  color: var(--sl-white);
  font-size: 13px;
  font-weight: 500;
  padding: 6px 16px;
  border-radius: 2px;
  letter-spacing: 0.04em;
}

/* Combined hero + how-it-works variant */
.sl-extraction-hero--combined {
  display: block;
  min-height: 0;
}
.sl-extraction-hero--combined .sl-extraction-hero-overlay {
  background: rgba(0,0,0,.75);
}
.sl-extraction-hero--combined .sl-extraction-hero-inner {
  padding: 100px 40px 80px;
  width: 100%;
  box-sizing: border-box;
}
.sl-extraction-divider {
  height: 1px;
  background: rgba(255,255,255,.15);
  margin: 48px 0;
}

/* How it works */
.sl-extraction-how {
  background: var(--sl-black2);
  padding: 80px 0;
}
.sl-extraction-how-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.sl-extraction-how-img img {
  width: 100%;
  border-radius: 4px;
  display: block;
  object-fit: cover;
  max-height: 480px;
}
.sl-extraction-how-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sl-extraction-how-title {
  font-family: var(--sl-ff-head);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 800;
  color: var(--sl-white);
  margin: 0 0 24px;
  text-transform: uppercase;
}
.sl-extraction-how-desc {
  font-size: 15px;
  color: var(--sl-grey3);
  line-height: 1.8;
  margin: 0 0 16px;
}
.sl-extraction-actions {
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* Inquiry section */
.sl-extraction-inquiry {
  background: var(--sl-black);
  padding: 80px 0;
}

/* Related equipment placeholder */
.sl-extraction-products {
  background: var(--sl-black2);
  padding: 64px 0;
}
.sl-eq-placeholder {
  border: 1px dashed var(--sl-border);
  border-radius: 4px;
  background: var(--sl-black3);
  margin-top: 32px;
  padding: 48px 24px;
  text-align: center;
}
.sl-eq-placeholder p {
  color: var(--sl-grey3);
  font-size: 14px;
  margin: 0;
}
.sl-eq-placeholder code {
  background: rgba(73,196,53,.12);
  color: var(--sl-green);
  padding: 2px 6px;
  border-radius: 2px;
  font-size: 13px;
}

/* CTA band eyebrow */
.sl-extraction-cta-eyebrow {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sl-grey3);
  margin-bottom: 16px;
}
.sl-extraction-cta-eyebrow strong { color: var(--sl-white); }

/* ── Responsive ── */
@media (max-width: 900px) {
  .sl-footer-v2-mid                            { grid-template-columns: 1fr 1fr; gap: 32px; }
  .sl-extraction-how-inner                     { grid-template-columns: 1fr; }
  .sl-extraction-how-img                       { order: -1; }
  .sl-extraction-hero--combined .sl-extraction-how-img { order: -1; }
}
@media (max-width: 600px) {
  .sl-footer-v2-mid           { grid-template-columns: 1fr; }
  .sl-footer-v2-legal         { flex-direction: column; align-items: center; gap: 8px; }
  .sl-footer-v2-legal a       { padding: 0; }
  .sl-footer-v2-sep           { display: none; }
  .sl-extraction-hero-inner   { padding: 40px 20px 36px; }
  .sl-extraction-how          { padding: 48px 0; }
  .sl-extraction-hero--combined .sl-extraction-hero-inner { padding: 60px 20px 48px; }
  .sl-extraction-divider      { margin: 32px 0; }
}

/* ══════════════════════════════════════════════════════
   MY ACCOUNT PAGE — white background, full-width layout
   ══════════════════════════════════════════════════════ */

/* White background overrides */
body.woocommerce-account,
body.woocommerce-account #page,
body.woocommerce-account .site-content,
body.woocommerce-account .site-main,
body.woocommerce-account .content-area,
body.woocommerce-account .inside-article,
body.woocommerce-account .entry-content,
body.woocommerce-account .page-content {
  background-color: #ffffff !important;
  color: #1a1a1a !important;
}

/* Full-width content area */
body.woocommerce-account .content-area,
body.woocommerce-account .site-content {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* WooCommerce account wrapper — centered with comfortable padding */
body.woocommerce-account .woocommerce {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 40px;
  width: 100%;
  background: #ffffff;
  color: #1a1a1a;
}

/* Headings on white background */
body.woocommerce-account h1,
body.woocommerce-account h2,
body.woocommerce-account h3,
body.woocommerce-account h4,
body.woocommerce-account h5,
body.woocommerce-account h6 {
  color: #0e0e0e !important;
}

/* Body text on white background */
body.woocommerce-account p,
body.woocommerce-account li,
body.woocommerce-account td,
body.woocommerce-account th,
body.woocommerce-account label,
body.woocommerce-account address {
  color: #1a1a1a;
}

/* Nav sidebar */
body.woocommerce-account .woocommerce-MyAccount-navigation {
  background: #f4f4f2;
  border-radius: 4px;
  padding: 16px 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 10px 20px;
  color: #1a1a1a;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  background: #49c435;
  color: #ffffff;
}

/* Content panel */
body.woocommerce-account .woocommerce-MyAccount-content {
  color: #1a1a1a;
  background: #ffffff;
}

body.woocommerce-account .woocommerce-MyAccount-content p,
body.woocommerce-account .woocommerce-MyAccount-content td,
body.woocommerce-account .woocommerce-MyAccount-content th {
  color: #1a1a1a;
}

/* Tables */
body.woocommerce-account table.shop_table {
  border-color: #e8e8e8;
  background: #ffffff;
}

body.woocommerce-account table.shop_table th {
  background: #f4f4f2;
  color: #0e0e0e;
  border-color: #e8e8e8;
}

body.woocommerce-account table.shop_table td {
  color: #1a1a1a;
  border-color: #e8e8e8;
}

/* Form fields */
body.woocommerce-account .woocommerce input[type="text"],
body.woocommerce-account .woocommerce input[type="email"],
body.woocommerce-account .woocommerce input[type="password"],
body.woocommerce-account .woocommerce input[type="tel"],
body.woocommerce-account .woocommerce select,
body.woocommerce-account .woocommerce textarea {
  background: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #e8e8e8 !important;
  border-radius: 4px;
}

body.woocommerce-account .woocommerce input[type="text"]:focus,
body.woocommerce-account .woocommerce input[type="email"]:focus,
body.woocommerce-account .woocommerce input[type="password"]:focus,
body.woocommerce-account .woocommerce textarea:focus {
  border-color: #49c435 !important;
  outline: none;
}

/* Responsive */
@media (max-width: 768px) {
  body.woocommerce-account .woocommerce {
    padding: 24px 20px;
  }
}

/* ══════════════════════════════════════════════════════
   SHOP & PRODUCT PAGES — light background theme
   Covers: shop archive, product category / tag archives,
   single product pages, cart, and checkout.
   Header and footer are intentionally left untouched.
   ══════════════════════════════════════════════════════ */

/* ── Helper: local light-theme tokens ─────────────────
   Override the dark tokens inside these page types only */
body.woocommerce-shop,
body.single-product,
body.woocommerce-cart,
body.woocommerce-checkout,
body.tax-product_cat,
body.tax-product_tag {
  background-color: #ffffff !important;
  color: #1a1a1a !important;
}

/* Scrollbar — keep it tidy on light pages */
body.woocommerce-shop ::-webkit-scrollbar-track,
body.single-product ::-webkit-scrollbar-track,
body.woocommerce-cart ::-webkit-scrollbar-track,
body.woocommerce-checkout ::-webkit-scrollbar-track,
body.tax-product_cat ::-webkit-scrollbar-track,
body.tax-product_tag ::-webkit-scrollbar-track {
  background: #f4f4f2;
}

/* ── Page wrapper + content areas (NOT header/footer) ─ */
body.woocommerce-shop #page,
body.woocommerce-shop .site-content,
body.woocommerce-shop .site-main,
body.woocommerce-shop .content-area,
body.woocommerce-shop .inside-article,
body.woocommerce-shop .entry-content,
body.woocommerce-shop .page-content,
body.single-product #page,
body.single-product .site-content,
body.single-product .site-main,
body.single-product .content-area,
body.single-product .inside-article,
body.single-product .entry-content,
body.single-product .page-content,
body.woocommerce-cart #page,
body.woocommerce-cart .site-content,
body.woocommerce-cart .site-main,
body.woocommerce-cart .content-area,
body.woocommerce-cart .inside-article,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .page-content,
body.woocommerce-checkout #page,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout .content-area,
body.woocommerce-checkout .inside-article,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout .page-content,
body.tax-product_cat #page,
body.tax-product_cat .site-content,
body.tax-product_cat .site-main,
body.tax-product_cat .content-area,
body.tax-product_cat .inside-article,
body.tax-product_cat .entry-content,
body.tax-product_cat .page-content,
body.tax-product_tag #page,
body.tax-product_tag .site-content,
body.tax-product_tag .site-main,
body.tax-product_tag .content-area,
body.tax-product_tag .inside-article,
body.tax-product_tag .entry-content,
body.tax-product_tag .page-content {
  background-color: #ffffff !important;
  color: #1a1a1a !important;
}

/* ── Headings ─────────────────────────────────────────── */
body.woocommerce-shop h1,
body.woocommerce-shop h2,
body.woocommerce-shop h3,
body.woocommerce-shop h4,
body.woocommerce-shop h5,
body.woocommerce-shop h6,
body.single-product h1,
body.single-product h2,
body.single-product h3,
body.single-product h4,
body.single-product h5,
body.single-product h6,
body.woocommerce-cart h1,
body.woocommerce-cart h2,
body.woocommerce-cart h3,
body.woocommerce-cart h4,
body.woocommerce-cart h5,
body.woocommerce-cart h6,
body.woocommerce-checkout h1,
body.woocommerce-checkout h2,
body.woocommerce-checkout h3,
body.woocommerce-checkout h4,
body.woocommerce-checkout h5,
body.woocommerce-checkout h6,
body.tax-product_cat h1,
body.tax-product_cat h2,
body.tax-product_cat h3,
body.tax-product_cat h4,
body.tax-product_cat h5,
body.tax-product_cat h6,
body.tax-product_tag h1,
body.tax-product_tag h2,
body.tax-product_tag h3,
body.tax-product_tag h4,
body.tax-product_tag h5,
body.tax-product_tag h6 {
  color: #0e0e0e !important;
}

/* ── Body text, labels, table cells ──────────────────── */
body.woocommerce-shop p,
body.woocommerce-shop li,
body.woocommerce-shop td,
body.woocommerce-shop th,
body.woocommerce-shop label,
body.woocommerce-shop address,
body.woocommerce-shop span,
body.single-product p,
body.single-product li,
body.single-product td,
body.single-product th,
body.single-product label,
body.single-product address,
body.single-product span,
body.woocommerce-cart p,
body.woocommerce-cart li,
body.woocommerce-cart td,
body.woocommerce-cart th,
body.woocommerce-cart label,
body.woocommerce-cart address,
body.woocommerce-cart span,
body.woocommerce-checkout p,
body.woocommerce-checkout li,
body.woocommerce-checkout td,
body.woocommerce-checkout th,
body.woocommerce-checkout label,
body.woocommerce-checkout address,
body.woocommerce-checkout span,
body.tax-product_cat p,
body.tax-product_cat li,
body.tax-product_cat td,
body.tax-product_cat th,
body.tax-product_cat label,
body.tax-product_cat address,
body.tax-product_cat span,
body.tax-product_tag p,
body.tax-product_tag li,
body.tax-product_tag td,
body.tax-product_tag th,
body.tax-product_tag label,
body.tax-product_tag address,
body.tax-product_tag span {
  color: #1a1a1a;
}

/* ── Contact for Pricing link/button ────────────────── */
.sl-contact-for-pricing {
  display: inline-block;
  color: var(--sl-green, #49c435) !important;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none !important;
  border-bottom: 1px solid currentColor;
  line-height: 1.4;
}
.sl-contact-for-pricing--btn {
  display: inline-block !important;
  padding: 12px 24px !important;
  background-color: var(--sl-green, #49c435) !important;
  color: #ffffff !important;
  border: none !important;
  border-bottom: none !important;
  border-radius: 6px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.sl-contact-for-pricing--btn:hover {
  background-color: #3aad28 !important;
  color: #ffffff !important;
}

/* ── WooCommerce breadcrumb ──────────────────────────── */
body.woocommerce-shop .woocommerce-breadcrumb,
body.single-product .woocommerce-breadcrumb,
body.woocommerce-cart .woocommerce-breadcrumb,
body.woocommerce-checkout .woocommerce-breadcrumb,
body.tax-product_cat .woocommerce-breadcrumb,
body.tax-product_tag .woocommerce-breadcrumb {
  color: #555555;
  padding-top: 20px;
}
body.woocommerce-shop .woocommerce-breadcrumb a,
body.single-product .woocommerce-breadcrumb a,
body.tax-product_cat .woocommerce-breadcrumb a,
body.tax-product_tag .woocommerce-breadcrumb a {
  color: #49c435;
}

/* ── Product cards on shop / archive pages ───────────── */
/* NOTE: On shop/archive pages WooCommerce does NOT add a .woocommerce wrapper
   div around the product list — the ul.products sits directly in .entry-content.
   Selectors must NOT include an intermediate .woocommerce class. */
body.woocommerce-shop ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
  background: #f7f7f7 !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 8px !important;
}
body.woocommerce-shop ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover {
  border-color: #49c435 !important;
}
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
  color: #0e0e0e !important;
}
body.woocommerce-shop ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
  color: #49c435 !important;
}

/* ── Page title / result count ───────────────────────── */
body.woocommerce-shop .woocommerce-products-header__title,
body.woocommerce-shop .woocommerce-result-count,
body.woocommerce-shop .woocommerce-ordering select,
body.tax-product_cat .woocommerce-products-header__title,
body.tax-product_cat .woocommerce-result-count,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-result-count,
body.tax-product_tag .woocommerce-ordering select {
  color: #1a1a1a;
}
body.woocommerce-shop .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
  background: #f4f4f2;
  border-color: #e8e8e8;
}

/* ── Single product page specifics ───────────────────── */
body.single-product .woocommerce div.product p.price,
body.single-product .woocommerce div.product span.price {
  color: #49c435;
}
body.single-product .woocommerce div.product .product_title {
  color: #0e0e0e !important;
}
body.single-product .woocommerce div.product .woocommerce-product-details__short-description {
  color: #1a1a1a;
}
/* Product tabs */
body.single-product .woocommerce-tabs .tabs li a {
  color: #1a1a1a;
}
body.single-product .woocommerce-tabs .tabs li.active a {
  color: #0e0e0e;
}
body.single-product .woocommerce-tabs .panel {
  background: #ffffff;
  color: #1a1a1a;
}

/* ── Cart & checkout tables ───────────────────────────── */
body.woocommerce-cart table.shop_table,
body.woocommerce-checkout table.shop_table {
  background: #ffffff;
  border-color: #e8e8e8;
}
body.woocommerce-cart table.shop_table th,
body.woocommerce-checkout table.shop_table th {
  background: #f4f4f2;
  color: #0e0e0e;
  border-color: #e8e8e8;
}
body.woocommerce-cart table.shop_table td,
body.woocommerce-checkout table.shop_table td {
  color: #1a1a1a;
  border-color: #e8e8e8;
}
body.woocommerce-cart table.shop_table a,
body.woocommerce-checkout table.shop_table a {
  color: #0e0e0e;
}
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout .woocommerce-checkout-review-order {
  background: #f4f4f2;
  border-color: #e8e8e8;
}
body.woocommerce-cart .cart_totals h2,
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td,
body.woocommerce-checkout .order-total,
body.woocommerce-checkout .woocommerce-checkout-review-order h3 {
  color: #0e0e0e;
}

/* ── Checkout / cart form inputs ─────────────────────── */
body.woocommerce-cart .woocommerce input[type="text"],
body.woocommerce-cart .woocommerce input[type="email"],
body.woocommerce-cart .woocommerce input[type="number"],
body.woocommerce-cart .woocommerce textarea,
body.woocommerce-cart .woocommerce select,
body.woocommerce-checkout .woocommerce input[type="text"],
body.woocommerce-checkout .woocommerce input[type="email"],
body.woocommerce-checkout .woocommerce input[type="tel"],
body.woocommerce-checkout .woocommerce input[type="password"],
body.woocommerce-checkout .woocommerce input[type="number"],
body.woocommerce-checkout .woocommerce textarea,
body.woocommerce-checkout .woocommerce select {
  background: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #e8e8e8 !important;
  border-radius: 4px;
}
body.woocommerce-cart .woocommerce input:focus,
body.woocommerce-cart .woocommerce textarea:focus,
body.woocommerce-checkout .woocommerce input:focus,
body.woocommerce-checkout .woocommerce textarea:focus {
  border-color: #49c435 !important;
  outline: none;
}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper label,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper label,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout .woocommerce-checkout h3 {
  color: #0e0e0e !important;
}

/* ── Order received / thank-you page ─────────────────── */
body.woocommerce-order-received #page,
body.woocommerce-order-received .site-content,
body.woocommerce-order-received .site-main,
body.woocommerce-order-received .content-area,
body.woocommerce-order-received .inside-article,
body.woocommerce-order-received .entry-content,
body.woocommerce-order-received .page-content {
  background-color: #ffffff !important;
  color: #1a1a1a !important;
}
body.woocommerce-order-received h1,
body.woocommerce-order-received h2,
body.woocommerce-order-received h3,
body.woocommerce-order-received p,
body.woocommerce-order-received li,
body.woocommerce-order-received td,
body.woocommerce-order-received th {
  color: #0e0e0e !important;
}
body.woocommerce-order-received table.shop_table {
  background: #ffffff;
  border-color: #e8e8e8;
}
body.woocommerce-order-received table.shop_table th {
  background: #f4f4f2;
  color: #0e0e0e;
  border-color: #e8e8e8;
}
body.woocommerce-order-received table.shop_table td {
  color: #1a1a1a;
  border-color: #e8e8e8;
}

/* ── Notices & messages ───────────────────────────────── */
body.woocommerce-shop .woocommerce-info,
body.single-product .woocommerce-info,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-info,
body.tax-product_cat .woocommerce-info,
body.tax-product_tag .woocommerce-info {
  background: #f0fbee;
  color: #1a1a1a;
  border-top-color: #49c435;
}
body.woocommerce-shop .woocommerce-error,
body.single-product .woocommerce-error,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-error {
  background: #fff5f5;
  color: #1a1a1a;
}

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 768px) {
  body.woocommerce-shop #page,
  body.single-product #page,
  body.woocommerce-cart #page,
  body.woocommerce-checkout #page,
  body.tax-product_cat #page,
  body.tax-product_tag #page {
    padding-top: 0;
  }
}

/* ══════════════════════════════════════════════════════
   FIX v20: Footer text colour on WooCommerce/shop pages
   The body light-theme rule (color: #1a1a1a !important)
   is inherited by the footer. These rules restore the
   dark-background footer's white text on those pages.
   ══════════════════════════════════════════════════════ */
body.woocommerce-shop .site-footer,
body.single-product .site-footer,
body.woocommerce-cart .site-footer,
body.woocommerce-checkout .site-footer,
body.tax-product_cat .site-footer,
body.tax-product_tag .site-footer {
  color: rgba(255, 255, 255, 0.82) !important;
}
body.woocommerce-shop .site-footer p,
body.woocommerce-shop .site-footer li,
body.woocommerce-shop .site-footer span,
body.woocommerce-shop .site-footer td,
body.woocommerce-shop .site-footer th,
body.single-product .site-footer p,
body.single-product .site-footer li,
body.single-product .site-footer span,
body.single-product .site-footer td,
body.single-product .site-footer th,
body.woocommerce-cart .site-footer p,
body.woocommerce-cart .site-footer li,
body.woocommerce-cart .site-footer span,
body.woocommerce-checkout .site-footer p,
body.woocommerce-checkout .site-footer li,
body.woocommerce-checkout .site-footer span,
body.tax-product_cat .site-footer p,
body.tax-product_cat .site-footer li,
body.tax-product_cat .site-footer span,
body.tax-product_tag .site-footer p,
body.tax-product_tag .site-footer li,
body.tax-product_tag .site-footer span {
  color: rgba(255, 255, 255, 0.82) !important;
}

/* ══════════════════════════════════════════════════════
   FIX v20: Single-product variation select & form inputs
   Cart/checkout already have these overrides; single-product
   was missing them, causing white text on white background
   (GeneratePress --contrast:#fff on --base-2 light bg).
   ══════════════════════════════════════════════════════ */
body.single-product .woocommerce select,
body.single-product .woocommerce .variations select,
body.single-product .woocommerce input[type="text"],
body.single-product .woocommerce input[type="number"],
body.single-product .woocommerce input[type="email"],
body.single-product .woocommerce input[type="tel"],
body.single-product .woocommerce input[type="password"],
body.single-product .woocommerce textarea {
  background: #ffffff !important;
  color: #1a1a1a !important;
  border-color: #e8e8e8 !important;
}
body.single-product .woocommerce select:focus,
body.single-product .woocommerce input:focus,
body.single-product .woocommerce textarea:focus {
  border-color: #49c435 !important;
  outline: none;
}

/* ══════════════════════════════════════════════════════
   FIX v21: Footer heading & accent colours on shop pages
   The WooCommerce light-theme section sets h3/h4/span to
   #0e0e0e !important globally — these restore the footer's
   design colours inside .site-footer at higher specificity.
   ══════════════════════════════════════════════════════ */

/* h3 "Get updates that matter." */
body.woocommerce-shop    .site-footer .sl-footer__headline,
body.single-product      .site-footer .sl-footer__headline,
body.woocommerce-cart    .site-footer .sl-footer__headline,
body.woocommerce-checkout .site-footer .sl-footer__headline,
body.tax-product_cat     .site-footer .sl-footer__headline,
body.tax-product_tag     .site-footer .sl-footer__headline {
  color: rgba(255,255,255,.92) !important;
}

/* h4 column titles — green */
body.woocommerce-shop    .site-footer .sl-footer__block h4,
body.single-product      .site-footer .sl-footer__block h4,
body.woocommerce-cart    .site-footer .sl-footer__block h4,
body.woocommerce-checkout .site-footer .sl-footer__block h4,
body.tax-product_cat     .site-footer .sl-footer__block h4,
body.tax-product_tag     .site-footer .sl-footer__block h4 {
  color: #7CFF00 !important;
}

/* Kicker (uppercase label above heading) */
body.woocommerce-shop    .site-footer .sl-footer__kicker,
body.single-product      .site-footer .sl-footer__kicker,
body.woocommerce-cart    .site-footer .sl-footer__kicker,
body.woocommerce-checkout .site-footer .sl-footer__kicker,
body.tax-product_cat     .site-footer .sl-footer__kicker,
body.tax-product_tag     .site-footer .sl-footer__kicker {
  color: rgba(255,255,255,.65) !important;
}

/* Row labels */
body.woocommerce-shop    .site-footer .sl-footer__label,
body.single-product      .site-footer .sl-footer__label,
body.woocommerce-cart    .site-footer .sl-footer__label,
body.woocommerce-checkout .site-footer .sl-footer__label,
body.tax-product_cat     .site-footer .sl-footer__label,
body.tax-product_tag     .site-footer .sl-footer__label {
  color: rgba(255,255,255,.65) !important;
}

/* Row values */
body.woocommerce-shop    .site-footer .sl-footer__value,
body.single-product      .site-footer .sl-footer__value,
body.woocommerce-cart    .site-footer .sl-footer__value,
body.woocommerce-checkout .site-footer .sl-footer__value,
body.tax-product_cat     .site-footer .sl-footer__value,
body.tax-product_tag     .site-footer .sl-footer__value {
  color: rgba(255,255,255,.86) !important;
}

/* Newsletter sub-text */
body.woocommerce-shop    .site-footer .sl-footer__sub,
body.single-product      .site-footer .sl-footer__sub,
body.woocommerce-cart    .site-footer .sl-footer__sub,
body.woocommerce-checkout .site-footer .sl-footer__sub,
body.tax-product_cat     .site-footer .sl-footer__sub,
body.tax-product_tag     .site-footer .sl-footer__sub {
  color: rgba(255,255,255,.66) !important;
}

/* Phone number green accent */
body.woocommerce-shop    .site-footer .sl-phone-number,
body.single-product      .site-footer .sl-phone-number,
body.woocommerce-cart    .site-footer .sl-phone-number,
body.woocommerce-checkout .site-footer .sl-phone-number,
body.tax-product_cat     .site-footer .sl-phone-number,
body.tax-product_tag     .site-footer .sl-phone-number {
  color: #7CFF00 !important;
}

/* ── FIX v22: Footer grid layout ────────────────────────
   The full footer CSS is output by a PHP hook that can land
   AFTER </footer> on pages with forms (extraction pages).
   Anchoring the grid rules here (external HEAD stylesheet)
   guarantees correct layout regardless of inline-style order.
───────────────────────────────────────────────────────── */
.sl-footer__top {
  display: grid !important;
  grid-template-columns: 1.5fr 1fr !important;
  gap: 18px !important;
}

.sl-footer__grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

.sl-footer__rows {
  display: grid !important;
  gap: 10px !important;
}

.sl-footer__row {
  display: grid !important;
  grid-template-columns: 86px 1fr !important;
  gap: 10px !important;
  align-items: baseline !important;
}

.sl-footer__form {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 10px !important;
  align-items: center !important;
}

@media (max-width: 900px) {
  .sl-footer__top  { grid-template-columns: 1fr !important; }
  .sl-footer__grid { grid-template-columns: 1fr !important; }
  .sl-footer__form { grid-template-columns: 1fr !important; }
}


/* ═══════════════════════════════════════════════════════
   MEGA MENU
   Shop nav item → full-width dropdown panel with
   dynamic WooCommerce category grid + specialist CTA.
═══════════════════════════════════════════════════════ */

/* The Shop <li> stays in normal flow — panel is position:fixed via JS */
.sl-has-megamenu {
  position: static !important;
}

/* Chevron on the Shop link */
.sl-has-megamenu > a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}
.sl-has-megamenu > a::after {
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  flex-shrink: 0;
  opacity: 0.55;
  transition: transform 0.2s ease, opacity 0.2s;
}
.sl-has-megamenu.sl-open > a::after {
  transform: rotate(180deg);
  opacity: 0.9;
}

/* ── Panel ──────────────────────────────────────────── */
/*
 * To add a lab background image, set this variable on :root:
 *   --sl-megamenu-bg-image: url('/path/to/your-lab-photo.jpg');
 * The semi-transparent overlay (.sl-megamenu__bg-overlay) will
 * sit on top and keep text legible.
 */
.sl-megamenu {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9990;

  background-color: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: #111111;
  border-top: 2px solid var(--sl-green);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

/* Open state — triggered by JS */
.sl-megamenu.sl-megamenu--open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

/* ── Inner wrapper ──────────────────────────────────── */
.sl-megamenu__inner {
  max-width: 1360px;
  margin: 0 auto;
  padding: 14px 40px 18px;
}

/* ── Header strip — label | cta text | actions ──────── */
.sl-megamenu__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
  padding: 7px 12px;
  background: #f6fef5;
  border: 1px solid rgba(73, 196, 53, 0.28);
  border-radius: 4px;
}
.sl-megamenu__header-label {
  font-family: var(--sl-ff-head);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sl-green);
  white-space: nowrap;
  flex-shrink: 0;
}
.sl-megamenu__header-cta-text {
  font-size: 11px !important;
  color: #555555 !important;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sl-megamenu__header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.sl-megamenu__view-all {
  font-size: 11px !important;
  font-weight: 500 !important;
  color: #888888 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  transition: color 0.15s;
}
.sl-megamenu__view-all:hover { color: var(--sl-green-d) !important; }

/* ── Category grid ─────────────────────────────────── */
.sl-megamenu__cats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 10px;
  align-content: start;
}

/* Single category link
   — GP nav stylesheet forces line-height on all <a> inside the nav,
     so every property that controls height needs !important here.
   — Hover: solid green fill slides in from right → left, text goes white. */
.sl-megamenu__cat {
  display: flex !important;
  align-items: center !important;
  padding: 3px 8px !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1 !important;
  border-radius: 3px !important;
  text-decoration: none !important;
  border: none !important;
  position: relative !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  z-index: 0 !important;
}
/* Slide-fill pseudo-element — starts fully right (translateX 100%), slides to 0 on hover */
.sl-megamenu__cat::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--sl-green, #49c435) !important;
  transform: translateX(-100%) !important;
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
  z-index: -1 !important;
  border-radius: 3px !important;
}
.sl-megamenu__cat:hover::before {
  transform: translateX(0) !important;
}
.sl-megamenu__cat-name {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #222222 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  transition: color 0.18s !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative !important;
  z-index: 1 !important;
}
.sl-megamenu__cat:hover .sl-megamenu__cat-name {
  color: #ffffff !important;
}
.sl-megamenu__cat-count {
  display: none;
}

.sl-megamenu__cta-btn {
  display: inline-flex !important;
  align-items: center !important;
  background: var(--sl-green) !important;
  color: #000000 !important;
  font-family: var(--sl-ff-body) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 6px 12px !important;
  border-radius: 3px !important;
  line-height: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  transition: background 0.15s !important;
}
.sl-megamenu__cta-btn:hover {
  background: #000000 !important;
  color: #ffffff !important;
}
.sl-megamenu__cta-all {
  font-size: 11px !important;
  color: #aaaaaa !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  transition: color 0.14s !important;
}
.sl-megamenu__cta-all:hover { color: var(--sl-green-d) !important; }

/* ── Responsive ─────────────────────────────────────── */
@media (max-width: 1100px) {
  .sl-megamenu__cats { grid-template-columns: repeat(3, 1fr); }
  .sl-megamenu__header-cta-text { display: none; }
}

@media (max-width: 767px) {
  .sl-megamenu__inner { padding: 10px 16px 14px; }
  .sl-megamenu__cats { grid-template-columns: repeat(2, 1fr); }
  .sl-megamenu__header { flex-wrap: wrap; gap: 8px; }
  .sl-megamenu__header-actions { flex-wrap: wrap; }
}

/* ══════════════════════════════════════════════════════════════
   SHOP LANDING PAGE  (template-shop-landing.php)  — light theme
   ══════════════════════════════════════════════════════════════ */

/* Override global dark body background for shop landing */
body.page-template-template-shop-landing {
  background-color: #f5f7f5 !important;
}

/* Strip GeneratePress inner padding so sections reach edge */
body.page-template-template-shop-landing .inside-article,
body.page-template-template-shop-landing .entry-content,
.sl-sl-page,
.sl-sl-page .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Base ───────────────────────────────────────────────────── */
.sl-shop { background: #f5f7f5; color: #1c2a1c; font-family: var(--sl-body); }

.sl-shop-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}

.sl-shop-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 36px;
}
.sl-shop-section-head .sl-section-title { color: #1c2a1c; }
.sl-shop-section-head__link {
  color: var(--sl-green-d);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.sl-shop-section-head__link:hover { color: var(--sl-green); }

/* ── Hero (stays dark — hero always looks better against dark) ── */
.sl-shop-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  background: url('/wp-content/themes/safeleaf-child/assets/img/hero-shop-bg.jpg') center/cover no-repeat, #0d1a0d;
  overflow: hidden;
}
.sl-shop-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, rgba(5,12,5,0.90) 45%, rgba(5,12,5,0.60) 100%);
}
.sl-shop-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
  padding: 80px 48px 80px 80px;
}
.sl-shop-hero__title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  margin: 10px 0 18px;
  color: #fff;
}
.sl-shop-hero__title .green { color: var(--sl-green); }
.sl-shop-hero__sub {
  font-size: 1rem;
  line-height: 1.65;
  color: #b8c8b8;
  margin-bottom: 28px;
  max-width: 560px;
}
.sl-shop-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 32px;
}
.sl-shop-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.8rem;
  color: #7db87d;
  font-weight: 500;
}

/* ── Category Grid ──────────────────────────────────────────── */
.sl-shop-cats {
  padding: 72px 0 64px;
  background: #fff;
}
.sl-shop-cats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}

/* Category card */
.sl-cat-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e0e8e0;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
}
.sl-cat-card:hover {
  border-color: var(--sl-green);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(73,196,53,0.14);
  color: inherit;
}
.sl-cat-card__img {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #f0f4f0;
}
.sl-cat-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s;
}
.sl-cat-card:hover .sl-cat-card__img img { transform: scale(1.05); }
.sl-cat-card__placeholder {
  width: 100%;
  height: 100%;
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f4f0;
}
.sl-cat-card__body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sl-cat-card__name {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1c2a1c;
  line-height: 1.3;
}
.sl-cat-card__count {
  font-size: 0.75rem;
  color: #7a9a7a;
}

/* ── Subcategory archive grid (parent category drill-down) ─── */
.sl-subcat-archive {
  padding: 40px 0 64px;
  background: #fff;
  width: 100%;
}
.sl-subcat-archive .sl-shop-cats__grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ── Product Cards ──────────────────────────────────────────── */
.sl-shop-products {
  padding: 72px 0 64px;
  background: #f5f7f5;
}
.sl-shop-products--alt {
  background: #fff;
}
.sl-shop-products__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}
.sl-shop-products__grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

.sl-product-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e0e8e0;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
}
.sl-product-card:hover {
  border-color: var(--sl-green);
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(73,196,53,0.14);
  color: inherit;
}
.sl-product-card__img {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #f0f4f0;
}
.sl-product-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s;
}
.sl-product-card:hover .sl-product-card__img img { transform: scale(1.05); }
.sl-product-card__body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}
.sl-product-card__cat {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--sl-green-d);
  font-weight: 600;
}
.sl-product-card__name {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1c2a1c;
  line-height: 1.35;
}
.sl-product-card__price {
  font-size: 0.875rem;
  color: #2e7d32;
  font-weight: 600;
  margin-top: auto;
  padding-top: 8px;
}
.sl-product-card__price .woocommerce-Price-amount { color: inherit; }

/* ── CTA Band ───────────────────────────────────────────────── */
.sl-shop-cta-band {
  padding: 64px 0;
  background: linear-gradient(135deg, #0f2a0f 0%, #174a17 100%);
  border-top: 1px solid #1e3a1e;
  border-bottom: 1px solid #1e3a1e;
}
.sl-shop-cta-band__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.sl-shop-cta-band__text { flex: 1; min-width: 280px; }
.sl-shop-cta-band__title {
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  font-weight: 800;
  color: #fff;
  margin: 8px 0 12px;
  line-height: 1.2;
}
.sl-shop-cta-band__sub {
  font-size: 0.95rem;
  color: #a8c8a8;
  line-height: 1.6;
  max-width: 520px;
}
.sl-shop-cta-band__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-shrink: 0;
}

/* ── Shop Landing Responsive ────────────────────────────────── */
@media (max-width: 1024px) {
  .sl-shop-products__grid--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .sl-shop-hero__inner { padding: 60px 24px; }
  .sl-shop-container { padding: 0 16px; }
  .sl-shop-cats { padding: 48px 0; }
  .sl-shop-products { padding: 48px 0; }
  .sl-shop-cta-band { padding: 48px 0; }
  .sl-shop-cta-band__inner { flex-direction: column; align-items: flex-start; }
  .sl-shop-cta-band__actions { flex-direction: row; flex-wrap: wrap; }
  .sl-shop-products__grid--4 { grid-template-columns: repeat(2, 1fr); }
  .sl-shop-section-head { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
  .sl-shop-cats__grid { grid-template-columns: repeat(2, 1fr); }
  .sl-shop-products__grid,
  .sl-shop-products__grid--4 { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   SHOP LANDING — BLOCK EDITOR (page ID 36852)
   WooCommerce block overrides + light body
   ══════════════════════════════════════════════════════════════ */

body.sl-shop-landing-gb {
  background-color: #ffffff !important;
}

/* Remove GP .one-container padding on shop page */
body.sl-shop-landing-gb.one-container .site-content {
  padding: 0 !important;
}

/* Reset dark site-wide backgrounds for the light shop page */
body.sl-shop-landing-gb #page,
body.sl-shop-landing-gb .site-content,
body.sl-shop-landing-gb .site-main,
body.sl-shop-landing-gb .site-footer,
body.sl-shop-landing-gb .container,
body.sl-shop-landing-gb .inside-article,
body.sl-shop-landing-gb .inside-page-header {
  background-color: #ffffff !important;
}

/* Remove GP inner padding so alignfull blocks reach the edge,
   but do NOT force width/max-width — let GP contained layout work */
body.sl-shop-landing-gb .inside-article,
body.sl-shop-landing-gb .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

/* GP sets .site-main .wp-block-group__inner-container { padding: 40px } — kill it on shop page */
body.sl-shop-landing-gb .wp-block-group__inner-container {
  padding: 0 !important;
}

/* alignfull blocks break out of any remaining parent constraint */
/* alignfull sections break out to viewport edge */
body.sl-shop-landing-gb .entry-content > .alignfull {
  margin-left:  calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width:    100vw !important;
  width:        100vw !important;
}

/* Inner container — constrains content to 1280px centered */
body.sl-shop-landing-gb .sl-gb-inner {
  max-width:    1280px !important;
  margin-left:  auto !important;
  margin-right: auto !important;
  box-sizing:   border-box !important;
}

/* Hero cover: keep the cover block full-width, constrain text inside it */
body.sl-shop-landing-gb .wp-block-cover__inner-container {
  max-width:    1280px !important;
  width:        100% !important;
  margin-left:  auto !important;
  margin-right: auto !important;
  padding-left:  32px !important;
  padding-right: 32px !important;
  box-sizing:   border-box !important;
}

/* ── WooCommerce product-categories block ───────────────────── */
body.sl-shop-landing-gb .sl-gb-cats.wc-block-product-categories,
body.sl-shop-landing-gb .sl-gb-cats ul.wc-block-product-categories-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
  gap: 20px !important;
  align-items: stretch !important;
}
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item {
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
  float: none !important;
  list-style: none !important;
}
/* Anchor = the card */
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item a {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  background: #ffffff !important;
  border: 1px solid #eaeeea !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  color: #1c2a1c !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
  transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s !important;
  font-weight: 600 !important;
  font-size: 0.8rem !important;
  line-height: 1.3 !important;
  padding: 0 !important;
}
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item a:hover {
  border-color: var(--sl-green) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 32px rgba(73,196,53,0.16) !important;
}
/* Image wrapper — kill WooCommerce inline-block/float/max-width */
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item__image {
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  line-height: 0 !important;
  flex-shrink: 0 !important;
  background: #f8faf8 !important;
}
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item img {
  width: 100% !important;
  aspect-ratio: 1/1 !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  max-width: 100% !important;
  height: auto !important;
  transition: transform 0.3s ease !important;
  border-radius: 0 !important;
  padding: 12px !important;
  box-sizing: border-box !important;
}
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item a:hover img {
  transform: scale(1.06) !important;
}
/* Category name — centered, clean */
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item .wc-block-product-categories-list-item__name {
  padding: 10px 12px 12px !important;
  display: block !important;
  text-align: center !important;
  flex: 1 !important;
  border-top: 1px solid #f0f4f0 !important;
  letter-spacing: 0.01em !important;
}
/* Hide product count */
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item mark,
body.sl-shop-landing-gb .sl-gb-cats .wc-block-product-categories-list-item .count {
  display: none !important;
}

/* ── WooCommerce product grid blocks (newest/bestselling) ───── */
body.sl-shop-landing-gb .sl-gb-products.wc-block-grid,
body.sl-shop-landing-gb .sl-gb-bestsellers.wc-block-grid {
  padding: 0 !important;
}
body.sl-shop-landing-gb .sl-gb-products .wc-block-grid__products,
body.sl-shop-landing-gb .sl-gb-bestsellers .wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.sl-shop-landing-gb .wc-block-grid__product {
  background: #fff !important;
  border: 1px solid #e0e8e0 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
  transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
body.sl-shop-landing-gb .wc-block-grid__product:hover {
  border-color: var(--sl-green) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 28px rgba(73,196,53,0.14) !important;
}
body.sl-shop-landing-gb .wc-block-grid__product-image {
  margin: 0 !important;
  aspect-ratio: 4/3 !important;
  overflow: hidden !important;
  background: #f0f4f0 !important;
}
body.sl-shop-landing-gb .wc-block-grid__product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.35s !important;
}
body.sl-shop-landing-gb .wc-block-grid__product:hover .wc-block-grid__product-image img {
  transform: scale(1.05) !important;
}
body.sl-shop-landing-gb .wc-block-grid__product-title {
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  color: #1c2a1c !important;
  line-height: 1.35 !important;
  padding: 14px 16px 4px !important;
  margin: 0 !important;
}
body.sl-shop-landing-gb .wc-block-grid__product-price {
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: #2e7d32 !important;
  padding: 4px 16px 14px !important;
  margin: 0 !important;
}
body.sl-shop-landing-gb .wc-block-grid__product-price .woocommerce-Price-amount { color: inherit !important; }
body.sl-shop-landing-gb .wc-block-grid__product-rating { padding: 0 16px !important; }
body.sl-shop-landing-gb .wc-block-grid__product-add-to-cart {
  margin: auto 16px 16px !important;
  background: var(--sl-green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  padding: 8px 14px !important;
  text-align: center !important;
  display: block !important;
}
body.sl-shop-landing-gb .wc-block-grid__product-add-to-cart:hover {
  background: var(--sl-green-d) !important;
  color: #fff !important;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  body.sl-shop-landing-gb .sl-gb-products .wc-block-grid__products,
  body.sl-shop-landing-gb .sl-gb-bestsellers .wc-block-grid__products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  body.sl-shop-landing-gb .sl-gb-cats ul.wc-block-product-categories-list {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  body.sl-shop-landing-gb .sl-gb-products .wc-block-grid__products,
  body.sl-shop-landing-gb .sl-gb-bestsellers .wc-block-grid__products {
    grid-template-columns: 1fr !important;
  }
}
