/* ============================================================
   DJG ENERGY SOLUTIONS PVT. LTD. — style.css
   One stylesheet for all pages. Sections:
   1. Design tokens (CSS custom properties)
   2. Base / reset / typography
   3. Utilities & animations
   4. Buttons & forms
   5. Header / navigation
   6. Hero (video + slider + parallax)
   7. Page banners (inner pages)
   8. Sections (about, services, stats, timeline, products…)
   9. Cards, testimonials, media gallery, lightbox
   10. Footer
   11. Breakpoints: 480 / 768 / 1024 / 1440
   ============================================================ */

/* ------------------------------------------------ 1. tokens ---- */
:root {
  --clr-primary: #1B5E20;
  --clr-accent: #4CAF50;
  --clr-earth: #6D4C41;
  --clr-sky: #0288D1;
  --clr-bg: #FFFFFF;
  --clr-bg-alt: #F5F7F2;
  --clr-text: #1A1A1A;
  --clr-muted: #5f6b5f;
  --clr-white: #FFFFFF;
  --overlay: rgba(0, 0, 0, 0.45);

  --grad-hero: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.35) 45%, rgba(0,0,0,0.62) 100%);
  --grad-banner: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.3) 55%, rgba(0,0,0,0.55) 100%);

  --font-head: "Poppins", "Outfit", Arial, sans-serif;
  --font-body: "Outfit", "Poppins", Arial, sans-serif;

  --nav-h: 78px;
  --nav-h-scrolled: 64px;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow-sm: 0 2px 10px rgba(15, 40, 20, 0.08);
  --shadow-md: 0 10px 28px rgba(15, 40, 20, 0.14);
  --shadow-lg: 0 18px 44px rgba(15, 40, 20, 0.2);

  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --t-fast: 300ms var(--ease);
  --t-med: 450ms var(--ease);
  --t-slow: 600ms var(--ease);

  --container: 1200px;
  --section-pad: clamp(3.5rem, 8vw, 6.5rem);
}

/* ------------------------------------------------- 2. base ---- */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--clr-text);
  background: var(--clr-bg);
  overflow-x: hidden;
}

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

h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.22; margin: 0 0 0.6em; font-weight: 500; }
h1 { font-size: clamp(2rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.55rem, 3.4vw, 2.3rem); }
h3 { font-size: clamp(1.15rem, 2.2vw, 1.4rem); }
p  { margin: 0 0 1em; }
a  { color: var(--clr-primary); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--clr-accent); }
ul { margin: 0; padding: 0; list-style: none; }

:focus-visible {
  outline: 3px solid var(--clr-accent);
  outline-offset: 2px;
  border-radius: 4px;
}

::selection { background: var(--clr-accent); color: #fff; }

.container {
  width: min(100% - 2.5rem, var(--container));
  margin-inline: auto;
}

.section { padding-block: var(--section-pad); }
.section--alt { background: var(--clr-bg-alt); }

.section-head { max-width: 720px; margin: 0 auto 2.6rem; text-align: center; }
.section-head p { color: var(--clr-muted); }

/* eyebrow label above headings */
.eyebrow {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-accent);
  margin-bottom: 0.7rem;
}

.center { text-align: center; }

/* ------------------------------------ 3. utilities & motion ---- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.reveal--left  { transform: translateX(-36px); }
.reveal--right { transform: translateX(36px); }
.reveal--zoom  { transform: scale(0.92); }
.reveal.is-visible { opacity: 1; transform: none; }

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: none; }
}

@keyframes kenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.14); }
}

@keyframes bounceX {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(8px); }
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 2000;
  background: var(--clr-primary);
  color: #fff;
  padding: 0.6rem 1.1rem;
  border-radius: 0 0 10px 10px;
  transition: top var(--t-fast);
}
.skip-link:focus { top: 0; color: #fff; }

/* --------------------------------------- 4. buttons & forms ---- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  padding: 0.8rem 1.7rem;
  border-radius: 999px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast),
              box-shadow var(--t-fast), transform var(--t-fast);
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn:active { transform: translateY(0); }
.btn img, .btn svg { width: 18px; height: 18px; }

.btn--primary { background: var(--clr-primary); color: #fff; }
.btn--primary:hover { background: var(--clr-accent); color: #fff; }

.btn--accent { background: var(--clr-accent); color: #fff; }
.btn--accent:hover { background: var(--clr-primary); color: #fff; }

.btn--ghost { border-color: rgba(255, 255, 255, 0.85); color: #fff; background: rgba(255,255,255,0.06); backdrop-filter: blur(2px); }
.btn--ghost:hover { background: #fff; color: var(--clr-primary); }

.btn--outline { border-color: var(--clr-primary); color: var(--clr-primary); background: transparent; }
.btn--outline:hover { background: var(--clr-primary); color: #fff; }

.btn--sm { padding: 0.5rem 1.15rem; font-size: 0.85rem; }

.cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: auto;
  min-width: 176px;
  min-height: 54px;
  margin: 0;
  padding: 7px 7px 7px 24px;
  border: 0;
  border-radius: 999px;
  background: #193e29;
  color: #fff;
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  box-shadow: none;
  transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}
.cta-button:hover,
.cta-button:focus-visible {
  background: #285337;
  color: #fff;
}
.cta-button:focus-visible {
  outline: 3px solid #809f60;
  outline-offset: 4px;
}
.cta-button__icon {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #b5dc76;
  color: #193e29;
  font-size: 23px;
  line-height: 1;
  transition: transform 200ms ease;
}
.cta-button:hover .cta-button__icon,
.cta-button:focus-visible .cta-button__icon {
  transform: translateX(3px);
}
.cta-button--nav {
  min-width: 138px;
  min-height: 52px;
  gap: 16px;
  padding: 6px 6px 6px 21px;
  font-size: 14px;
  font-weight: 500;
}
.cta-button--nav .cta-button__icon {
  flex-basis: 38px;
  width: 38px;
  height: 38px;
  font-size: 21px;
}

/* forms */
.form-grid { display: grid; gap: 1.1rem; }
.form-grid--2 { grid-template-columns: 1fr 1fr; }

.form-field { display: flex; flex-direction: column; gap: 0.35rem; }
.form-field label { font-weight: 600; font-size: 0.92rem; font-family: var(--font-head); }
.form-field .req { color: #c62828; }

.form-field input,
.form-field select,
.form-field textarea {
  font: inherit;
  color: inherit;
  padding: 0.75rem 0.95rem;
  border: 1.5px solid #cfd8cf;
  border-radius: var(--radius-sm);
  background: #fff;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  width: 100%;
}
.form-field textarea { resize: vertical; min-height: 130px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
  outline: none;
  border-color: var(--clr-accent);
  box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.22);
}
.form-field input[type="file"] { padding: 0.55rem; background: var(--clr-bg-alt); }

.form-field.is-invalid input,
.form-field.is-invalid select,
.form-field.is-invalid textarea { border-color: #c62828; }

.field-error {
  color: #c62828;
  font-size: 0.82rem;
  min-height: 1.1em;
  margin: 0;
}

.form-status {
  display: none;
  padding: 0.9rem 1.2rem;
  border-radius: var(--radius-sm);
  font-weight: 600;
  margin-top: 1rem;
}
.form-status.is-success { display: block; background: #E8F5E9; color: var(--clr-primary); border: 1px solid var(--clr-accent); }
.form-status.is-error   { display: block; background: #FFEBEE; color: #c62828; border: 1px solid #c62828; }

/* ---------------------------------- 5. header / navigation ---- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.35) 75%, transparent 100%);
  transition: background var(--t-med), box-shadow var(--t-med), height var(--t-med);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: min(100% - 2.5rem, 1360px);
}

.brand { display: inline-flex; align-items: center; gap: 0.1rem; }
.brand img { height: 52px; width: auto; transition: height var(--t-med); }
.brand .logo-dark { display: none; }
.site-header.scrolled .logo-light { display: none; }
.site-header.scrolled .logo-dark { display: block; }

/* transparent over hero → solid on scroll */
.site-header.scrolled {
  background: var(--clr-bg);
  box-shadow: var(--shadow-sm);
  height: var(--nav-h-scrolled);
}
.site-header.scrolled .brand img { height: 44px; }
.site-header.nav-open {
  background: var(--clr-bg);
  box-shadow: var(--shadow-sm);
}
.site-header.nav-open .logo-light { display: none; }
.site-header.nav-open .logo-dark { display: block; }

.nav-list {
  display: flex;
  align-items: center;
  gap: clamp(0.9rem, 1.8vw, 1.9rem);
}
.nav-list a:not(.btn) {
  position: relative;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: 0.95rem;
  color: #fff;
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.7);
  padding: 0.4rem 0;
  transition: color var(--t-fast);
}
.nav-list a:not(.btn)::after {
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: -2px;
  height: 2.5px;
  background: var(--clr-accent);
  transition: right var(--t-med);
}
.nav-list a:not(.btn):hover { color: var(--clr-accent); }
.nav-list a:not(.btn):hover::after,
.nav-list a.active:not(.btn)::after { right: 0; }
.nav-list a.active:not(.btn) { color: var(--clr-accent); }

/* solid header → dark links */
.site-header.scrolled .nav-list a:not(.btn) {
  color: var(--clr-text);
  text-shadow: none;
}
.site-header.scrolled .nav-list a:not(.btn):hover,
.site-header.scrolled .nav-list a.active:not(.btn) { color: var(--clr-primary); }

/* Contact CTA pill — separated from the rest of the menu */
.nav-list .nav-cta { margin-left: 0.6rem; }
.nav-list .nav-cta .btn { box-shadow: 0 4px 14px rgba(76, 175, 80, 0.4); }
.nav-list .nav-cta .cta-button {
  box-shadow: none;
}
.nav-list .nav-cta .cta-button:hover,
.nav-list .nav-cta .cta-button:focus-visible {
  box-shadow: none;
  transform: none;
}

/* hamburger */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 46px;
  height: 46px;
  padding: 10px;
  background: transparent;
  border: 0;
  cursor: pointer;
  z-index: 1100;
}
.nav-toggle .bar {
  display: block;
  width: 100%;
  height: 3px;
  border-radius: 2px;
  background: #fff;
  transition: transform var(--t-med), opacity var(--t-fast), background var(--t-fast);
}
.site-header.scrolled .nav-toggle .bar { background: var(--clr-text); }
.site-header.nav-open .nav-toggle .bar { background: var(--clr-text); }
.nav-toggle[aria-expanded="true"] .bar:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bar:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .bar:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
.nav-toggle[aria-expanded="true"] .bar { background: var(--clr-text) !important; }

/* mobile panel */
@media (max-width: 1100px) {
  .nav-toggle { display: flex; }

  .site-nav {
    position: fixed;
    inset: var(--nav-h) 0 0 0;
    width: 100%;
    height: calc(100dvh - var(--nav-h));
    overflow: hidden;
    background: rgba(10, 25, 12, 0.55);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--t-med), visibility var(--t-med);
    z-index: 1050;
  }
  .site-nav.open { opacity: 1; visibility: visible; }

  .nav-list {
    position: absolute;
    top: 0; right: 0;
    height: 100%;
    box-sizing: border-box;
    width: min(84vw, 360px);
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    padding: 1.25rem 1.8rem 2rem;
    background: var(--clr-bg);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateX(16px);
    transition: opacity var(--t-med), visibility var(--t-med), transform var(--t-med);
    overflow-y: auto;
  }
  .site-nav.open .nav-list {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
  }

  .nav-list li { width: 100%; }
  .nav-list a:not(.btn),
  .site-header.scrolled .nav-list a:not(.btn) {
    display: block;
    width: 100%;
    color: var(--clr-text);
    font-size: 1.05rem;
    text-shadow: none;
    padding: 0.75rem 0;
    border-bottom: 1px solid #ECEFEA;
  }
  .nav-list a:not(.btn)::after { display: none; }
  .nav-list a.active:not(.btn),
  .site-header.scrolled .nav-list a.active:not(.btn) { color: var(--clr-primary); font-weight: 700; }

  .nav-list .nav-cta { margin: 1.2rem 0 0; width: 100%; }
  .nav-list .nav-cta .btn { justify-content: center; width: 100%; }

}

/* --------------------------------------------- 6. hero (home) ---- */
.hero {
  position: relative;
  height: 100svh;
  min-height: 620px;
  max-height: 1100px;
  overflow: hidden;
  display: flex;
  align-items: center;
  color: #fff;
  isolation: isolate;
}

/* base layer: video (parallax target) */
.hero-media {
  position: absolute;
  inset: -12% 0;             /* extra height gives the parallax room to move */
  z-index: -2;
  will-change: transform;
}
.hero-media video,
.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 9, 7, 0.84) 0%, rgba(3, 9, 7, 0.68) 26%, rgba(3, 9, 7, 0.24) 58%, rgba(3, 9, 7, 0.08) 100%),
    linear-gradient(180deg, rgba(4, 10, 9, 0.56) 0%, rgba(4, 10, 9, 0.14) 42%, rgba(4, 10, 9, 0.58) 100%);
}

/* foreground layer: slider */
.hero-slider {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  align-items: center;
}

.hero-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 900ms var(--ease), visibility 900ms;
  pointer-events: none;
}
.hero-slide.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hero-slide__content {
  position: relative;
  z-index: 2;
  width: min(100% - 2.5rem, 980px);
  margin-left: clamp(1.25rem, 5.4vw, 6.6rem);
  padding-top: clamp(3rem, 7vh, 5rem);
}

.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--font-head);
  font-size: clamp(0.68rem, 0.82vw, 0.82rem);
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #9ADD87;
  margin: 0 0 1.15rem;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.65);
}
.hero-kicker::before {
  content: "";
  width: clamp(2.6rem, 4.4vw, 4.2rem);
  height: 2px;
  background: #8AD96E;
  box-shadow: 0 0 18px rgba(113, 190, 86, 0.5);
}

.hero-slide h1,
.hero-slide .hero-title {
  font-size: clamp(2.05rem, 3.45vw, 3.65rem);
  color: #fff;
  font-weight: 600;
  line-height: 1.08;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
  margin: 0 0 1.05rem;
  letter-spacing: 0;
  max-width: 940px;
  font-family: "Outfit", sans-serif;
}
.hero-title span {
  display: block;
  color: #72C95B;
}

.hero-copy {
  font-size: clamp(0.98rem, 1.18vw, 1.16rem);
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.92);
  max-width: 590px;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5);
  margin: 0;
}

/* fade-up text synced to slide change */
.hero-slide .anim {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 600ms var(--ease), transform 600ms var(--ease);
}
.hero-slide.active .anim {
  opacity: 1;
  transform: none;
}
.hero-slide.active .anim:nth-child(1) { transition-delay: 120ms; }
.hero-slide.active .anim:nth-child(2) { transition-delay: 220ms; }
.hero-slide.active .anim:nth-child(3) { transition-delay: 340ms; }
.hero-slide.active .anim:nth-child(4) { transition-delay: 460ms; }

/* hero slide caption overlay — lower-center zone */
.hero-slide__caption {
  position: absolute;
  bottom: 22%;
  left: 50%;
  transform: translate(-50%, 24px);
  width: min(92%, 720px);
  text-align: center;
  z-index: 2;
  pointer-events: auto;
  opacity: 0;
  transition: opacity 700ms var(--ease), transform 700ms var(--ease);
}
.hero-slide.active .hero-slide__caption {
  opacity: 1;
  transform: translate(-50%, 0);
}
.hero-slide__caption p {
  display: inline-block;
  font-family: var(--font-head);
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  color: #ffffff;
  background: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 0;
  border: 0;
  box-shadow: none;
  text-shadow: 0 2px 18px rgba(0,0,0,0.85), 0 1px 4px rgba(0,0,0,0.9);
  margin: 0;
  max-width: 100%;
  letter-spacing: 0.01em;
}

/* Morph: Dots to Text Animation for Hero Slides */
.morph-word {
  display: inline-block;
  white-space: nowrap;
}
.morph-space {
  display: inline-block;
}
.char-morph {
  display: inline-block;
  opacity: 0;
  transform: translateY(var(--c-drop-y, -90px)) scale(0.12);
  filter: blur(12px) brightness(3);
  will-change: transform, opacity, filter;
  color: transparent;
  text-shadow: 0 0 16px #4CAF50, 0 0 32px #81C784;
}
.hero-slide.active .char-morph {
  animation: dropDotToText 520ms cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  animation-delay: var(--c-delay, 0s);
}

@keyframes dropDotToText {
  0% {
    opacity: 0;
    transform: translateY(var(--c-drop-y, -90px)) scale(0.12);
    filter: blur(12px) brightness(3);
    color: transparent;
    text-shadow: 0 0 18px #4CAF50, 0 0 34px #81C784;
    border-radius: 50%;
  }
  45% {
    opacity: 0.92;
    transform: translateY(10px) scale(1.4);
    filter: blur(4px) brightness(2.2);
    color: #a5d6a7;
    text-shadow: 0 0 20px #ffffff, 0 0 28px #4CAF50;
    border-radius: 40%;
  }
  75% {
    opacity: 1;
    transform: translateY(-4px) scale(0.94);
    filter: blur(1px) brightness(1.2);
    color: #ffffff;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
    border-radius: 0;
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0) brightness(1);
    color: #ffffff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85), 0 1px 3px rgba(0, 0, 0, 0.9);
    border-radius: 0;
  }
}

.hero-actions { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: clamp(1.8rem, 3vw, 2.35rem); }
.btn--hero {
  min-height: 64px;
  padding: 0.95rem 1.55rem 0.95rem 1.9rem;
  background: linear-gradient(135deg, #74C95D 0%, #57AB43 100%);
  color: #fff;
  border: 0;
  box-shadow: 0 18px 35px rgba(46, 125, 50, 0.34);
}
.btn--hero:hover {
  color: #fff;
  background: linear-gradient(135deg, #8BD973 0%, #4CAF50 100%);
  box-shadow: 0 20px 42px rgba(46, 125, 50, 0.42);
}
.btn--hero img {
  width: 21px;
  height: 21px;
  filter: brightness(0) invert(1);
  transition: transform var(--t-fast);
}
.btn--hero:hover img { transform: translateX(4px); }

/* arrows + dots */
.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: background var(--t-fast), transform var(--t-fast);
}
.hero-arrow:hover { background: var(--clr-accent); transform: translateY(-50%) scale(1.08); }
.hero-arrow img { width: 22px; height: 22px; filter: brightness(0) invert(1); }
.hero-arrow--prev { left: clamp(0.6rem, 2.5vw, 2rem); }
.hero-arrow--next { right: clamp(0.6rem, 2.5vw, 2rem); }
.hero-arrow--next img { transform: rotate(180deg); }

.hero-dots {
  position: absolute;
  left: 50%;
  bottom: clamp(1.75rem, 6vh, 3.25rem);
  transform: translateX(-50%);
  display: flex;
  gap: 0.55rem;
  z-index: 3;
}
.hero-dots button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.9);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background var(--t-fast), transform var(--t-fast);
}
.hero-dots button.active { background: var(--clr-accent); border-color: var(--clr-accent); transform: scale(1.25); }

/* scroll cue */
.hero-scroll-cue {
  position: absolute;
  bottom: clamp(1.75rem, 5.4vh, 3.2rem);
  left: clamp(1.25rem, 3.1vw, 3.15rem);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  color: rgba(255, 255, 255, 0.92);
  font-family: var(--font-head);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  writing-mode: horizontal-tb;
}
.hero-scroll-cue::before {
  content: "";
  width: 1px;
  height: 56px;
  background: linear-gradient(180deg, rgba(255,255,255,0.95), transparent);
}
.hero-scroll-cue::after {
  content: "\2193";
  position: absolute;
  left: 1.55rem;
  bottom: -0.15rem;
  font-size: 1rem;
  letter-spacing: 0;
  animation: cueDrop 1.8s var(--ease) infinite;
}
@keyframes cueDrop {
  0%, 100% { transform: translateY(-5px); opacity: 0.45; }
  55% { transform: translateY(5px); opacity: 1; }
}

/* parallax section that sits behind/after the hero */
.parallax-band {
  position: relative;
  background: url("../images/banners/about_bg.png") center/cover fixed no-repeat;
  /* color: #fff; */
  isolation: isolate;
}
.parallax-band::before {
  content: "";
  position: absolute;
  inset: 0;
  /* background: linear-gradient(120deg, rgba(27, 94, 32, 0.88), rgba(2, 136, 209, 0.75)); */
  z-index: -1;
}

/* -------------------------------------- 7. inner page banners ---- */
.page-banner {
  position: relative;
  min-height: 46vh;
  display: flex;
  align-items: flex-end;
  padding-top: var(--nav-h);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.page-banner:has(video) {
  height: 100svh;
  min-height: 620px;
  max-height: 1100px;
  align-items: center;
}
.page-banner--gif {
  min-height: auto;
  height: auto;
  padding-top: var(--nav-h);
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-banner--gif::after {
  display: none;
}
.page-banner--gif img {
  position: static;
  width: 100%;
  max-width: 1360px;
  height: auto;
  object-fit: contain;
  display: block;
  animation: dropBounce 1.2s cubic-bezier(0.28, 1.45, 0.58, 1) forwards;
  will-change: transform, opacity;
}

@keyframes dropBounce {
  0% {
    opacity: 0;
    transform: translateY(-150px) scale(0.94);
  }
  55% {
    opacity: 1;
    transform: translateY(22px) scale(1.02);
  }
  75% {
    transform: translateY(-10px) scale(0.99);
  }
  90% {
    transform: translateY(4px) scale(1.004);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.page-banner__bg {
  position: absolute;
  inset: -8% 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  will-change: transform;
}
.page-banner__bg--kenburns img { animation: kenburns 18s var(--ease) infinite alternate; }
.page-banner__bg img { width: 100%; height: 100%; object-fit: cover; }
.page-banner__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  /* background: var(--grad-banner); */
}
.page-banner video {
  position: absolute;
  inset: -10% 0;
  width: 100%;
  height: 120%;
  object-fit: cover;
  z-index: -3;
  will-change: transform;
}
.page-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  /* background: var(--grad-banner); */
  z-index: -1;
}
.page-banner__content {
  padding-block: clamp(2.2rem, 6vh, 4rem);
  text-align: center;
  width: 100%;
}
.page-banner__content .eyebrow { color: var(--clr-accent); }
.page-banner h1 { color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,0.5); margin-bottom: 0.3em; }
.page-banner p {
  color: rgba(255, 255, 255, 0.92);
  max-width: 640px;
  margin-inline: auto;
  font-size: 1.05rem;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
}

/* --------------------------------------------------- 8. sections ---- */

/* What We Do — combined wrapper */
.what-we-do-combined {
  margin: 0;
  padding: 0;
  scroll-margin-top: var(--nav-h);
}
/* Full image banner (no content) */
.what-we-do-banner {
  width: 100%;
  height: clamp(620px, 50vw, 900px);
  background-image: url("../images/banners/What%20We%20Do.png");
  background-size: cover;
  background-position: center top;
  background-attachment: scroll;
  background-repeat: no-repeat;
  margin: 0;
  padding: 0;
}
/* White cards strip directly below image */
.what-we-do-cards {
  background: #ffffff;
  padding-block: 3rem 3.5rem;
}

/* About Us — background image */

.section--about-bg {
  background-image: url("../images/banners/about_bg.png");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}
.section--about-bg .eyebrow            { color: #a8f0b4; }
.section--about-bg h2                  { color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,0.5); }
.section--about-bg p                   { color: rgba(255,255,255,0.9); text-shadow: 0 1px 6px rgba(0,0,0,0.4); }
.section--about-bg .tick-list li       { color: rgba(255,255,255,0.92); text-shadow: 0 1px 4px rgba(0,0,0,0.4); }
.section--about-bg .tick-list li img   { filter: brightness(0) invert(1); }

/* premium about section */
.about-premium {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(90deg, rgba(2, 16, 10, 0.92) 0%, rgba(3, 26, 15, 0.84) 30%, rgba(4, 35, 19, 0.44) 58%, rgba(5, 41, 22, 0.12) 100%),
    linear-gradient(180deg, rgba(6, 29, 17, 0.24), rgba(2, 15, 9, 0.54)),
    url("../images/banners/about_img.png") center/cover no-repeat;
  color: #ffffff;
}
.about-premium__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 82% 8%, rgba(201, 235, 169, 0.18), transparent 21rem),
    radial-gradient(circle at 62% 72%, rgba(112, 181, 72, 0.24), transparent 18rem);
  pointer-events: none;
}
.about-premium__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(500px, 1fr);
  align-items: center;
  gap: clamp(2.5rem, 4.6vw, 5.8rem);
  width: min(100% - 6rem, 1640px);
  padding-block: clamp(3.2rem, 5vw, 5.2rem);
}
.about-premium__content {
  max-width: 690px;
}
.about-premium__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
  font-family: "Outfit", sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #bce887;
}
.about-premium__eyebrow::before {
  content: "";
  width: 50px;
  height: 2px;
  background: #8ccf63;
}
.about-premium h2 {
  max-width: 680px;
  margin: 0 0 1.25rem;
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.45rem, 3.35vw, 4.15rem);
  font-weight: 700;
  line-height: 1.02;
  color: #ffffff;
  letter-spacing: 0;
  text-shadow: 0 18px 45px rgba(0, 0, 0, 0.34);
}
.about-premium h2 span {
  display: block;
  color: #7ecb5d;
}
.about-premium__content p {
  max-width: 660px;
  margin: 0 0 0.95rem;
  font-family: "Outfit", sans-serif;
  font-size: clamp(0.98rem, 1.02vw, 1.12rem);
  line-height: 1.46;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 5px 18px rgba(0, 0, 0, 0.4);
}
.about-features {
  display: grid;
  gap: 0.7rem;
  margin: 1.25rem 0 1.35rem;
}
.about-feature {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: 0.95rem;
}
.about-feature__icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(41, 95, 46, 0.92);
  border: 1px solid rgba(188, 232, 135, 0.18);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.2);
}
.about-feature__icon img {
  width: 24px;
  height: 24px;
  filter: brightness(0) invert(1);
}
.about-feature span:last-child {
  color: rgba(255, 255, 255, 0.78);
  font-family: "Outfit", sans-serif;
  font-size: 0.95rem;
  line-height: 1.22;
}
.about-feature strong {
  display: block;
  margin-bottom: 0.12rem;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 700;
}
.about-premium__btn {
  min-width: 160px;
  justify-content: center;
  padding: 0.85rem 1.65rem;
  border: 0;
  background: linear-gradient(135deg, #8bcf62, #5fb248);
  color: #ffffff;
  box-shadow: 0 18px 44px rgba(67, 160, 71, 0.34);
}
.about-premium__btn:hover {
  color: #ffffff;
  background: linear-gradient(135deg, #9bd874, #68bd50);
}
.about-premium__media {
  position: relative;
  min-height: 470px;
}
.about-shape {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.about-shape--one {
  right: -5%;
  top: 7%;
  width: 280px;
  height: 360px;
  border-radius: 52% 48% 58% 42%;
  background: rgba(109, 181, 70, 0.42);
  transform: rotate(20deg);
}
.about-shape--two {
  left: -14%;
  bottom: -4%;
  width: 390px;
  height: 390px;
  border: 2px solid rgba(126, 203, 93, 0.42);
  border-radius: 50%;
}
.about-image-card {
  position: relative;
  z-index: 2;
  width: min(100%, 760px);
  margin: 0 auto;
  aspect-ratio: 1.55 / 1;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.54);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 34px 95px rgba(0, 0, 0, 0.36);
  backdrop-filter: blur(14px);
}
.about-image-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.12), transparent 36%),
    linear-gradient(90deg, rgba(0,0,0,0.28), transparent 48%);
  pointer-events: none;
}
.about-image-card > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.03);
}
.about-script {
  position: absolute;
  left: 8%;
  bottom: 25%;
  z-index: 3;
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-size: clamp(1.4rem, 1.8vw, 2.05rem);
  line-height: 1.03;
  text-shadow: 0 7px 24px rgba(0, 0, 0, 0.42);
}
.about-script::after {
  content: "";
  display: block;
  width: 120px;
  height: 8px;
  margin-top: 0.2rem;
  border-radius: 999px;
  background: rgba(133, 207, 94, 0.9);
  transform: rotate(-7deg);
}
.about-badge {
  position: absolute;
  top: -38px;
  right: 18px;
  z-index: 4;
  display: grid;
  place-items: center;
  align-content: center;
  width: clamp(128px, 7.8vw, 155px);
  height: clamp(128px, 7.8vw, 155px);
  border-radius: 50%;
  color: #ffffff;
  text-align: center;
  background: linear-gradient(180deg, #7bc15c 0%, #4b9141 100%);
  box-shadow: 0 24px 58px rgba(0, 0, 0, 0.34);
}
.about-badge img {
  width: 30px;
  height: 30px;
  margin-bottom: 0.5rem;
}
.about-badge strong {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: clamp(1.6rem, 1.9vw, 2.15rem);
  line-height: 1;
}
.about-badge span {
  display: block;
  margin-top: 0.35rem;
  font-family: "Outfit", sans-serif;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.9);
}
.about-impact {
  position: absolute;
  left: 7%;
  bottom: 6%;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: min(390px, 70%);
  padding: 0.9rem 1.1rem;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(12px);
}
.about-impact__icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  flex: none;
  border-radius: 50%;
  background: #def4d5;
}
.about-impact__icon img {
  width: 28px;
  height: 28px;
}
.about-impact small {
  display: block;
  margin-bottom: 0.2rem;
  font-family: "Outfit", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(79, 145, 65, 0.64);
}
.about-impact strong {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 0.98rem;
  color: #172116;
}
.about-impact em {
  display: block;
  margin-top: 0.2rem;
  font-style: normal;
  font-family: "Outfit", sans-serif;
  font-size: 0.78rem;
  color: #8d938b;
}

@media (max-height: 820px) and (min-width: 1024px) {
  .about-premium__grid {
    padding-block: 2.6rem;
  }
  .about-premium h2 {
    font-size: clamp(2.25rem, 3vw, 3.55rem);
    margin-bottom: 1rem;
  }
  .about-premium__content p {
    font-size: 0.98rem;
    line-height: 1.42;
    margin-bottom: 0.75rem;
  }
  .about-features {
    gap: 0.52rem;
    margin: 0.9rem 0 1.1rem;
  }
  .about-feature__icon {
    width: 46px;
    height: 46px;
  }
  .about-premium__media {
    min-height: 420px;
  }
  .about-image-card {
    width: min(100%, 700px);
  }
}


/* client / segment strip — clean white between hero and about */
.segment-strip {
  position: relative;
  z-index: 5;
  margin-top: 0;
  padding-block: clamp(4rem, 7vw, 7rem);
  perspective: 1200px;
  background:
    radial-gradient(circle at 50% 0%, rgba(46, 125, 50, 0.08), transparent 34rem),
    #ffffff;
}
.segment-strip .container {
  width: min(100% - 5rem, 1760px);
}
.segment-strip .grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.2rem, 1.9vw, 2.4rem);
}

/* Drop + Flip entrance animation */
.segment-card {
  position: relative;
  min-height: clamp(260px, 20vw, 340px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 22px;
  box-shadow: 0 24px 70px rgba(10, 37, 16, 0.12);
  padding: clamp(1.55rem, 2vw, 2.35rem);
  text-align: left;
  border: 1px solid rgba(27, 94, 32, 0.08);
  /* pre-animation state: high above, rotated, invisible */
  opacity: 0;
  transform: translateY(-160px) rotateX(80deg) scale(0.88);
  transform-style: preserve-3d;
  transition:
    transform 0.01ms,
    box-shadow var(--t-med),
    border-color var(--t-med);
  will-change: transform, opacity;
}
.segment-card::before {
  content: "";
  position: absolute;
  right: -18%;
  bottom: -28%;
  width: 88%;
  height: 62%;
  background:
    linear-gradient(145deg, rgba(92, 176, 82, 0.2), rgba(46, 125, 50, 0.05)),
    rgba(226, 244, 225, 0.7);
  border-radius: 60% 0 0 0;
  z-index: 0;
}
.segment-card::after {
  content: "";
  position: absolute;
  left: -16%;
  bottom: -12%;
  width: 52%;
  height: 28%;
  background: rgba(132, 204, 129, 0.14);
  border-radius: 50%;
  filter: blur(1px);
  z-index: 0;
}
.segment-card.drop-in {
  animation: cardDropFlip 700ms cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  animation-delay: var(--card-delay, 0s);
}
.segment-card.drop-in:hover {
  transform: translateY(-6px) rotateX(0deg) scale(1) !important;
  border-color: rgba(76, 175, 80, 0.22);
  box-shadow: 0 28px 80px rgba(10, 37, 16, 0.18);
}
/* after animation ends, allow normal hover */
.segment-card.drop-done {
  opacity: 1;
  transform: translateY(0) rotateX(0deg) scale(1);
  transition: transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
  animation: none;
}
.segment-card.drop-done:hover {
  transform: translateY(-6px);
  border-color: rgba(76, 175, 80, 0.22);
  box-shadow: 0 28px 80px rgba(10, 37, 16, 0.18);
}

@keyframes cardDropFlip {
  0% {
    opacity: 0;
    transform: translateY(-180px) rotateX(85deg) scale(0.8);
    box-shadow: none;
  }
  55% {
    opacity: 1;
    transform: translateY(14px) rotateX(-12deg) scale(1.04);
    box-shadow: 0 22px 48px rgba(0,0,0,0.22);
  }
  78% {
    transform: translateY(-6px) rotateX(5deg) scale(0.98);
    box-shadow: 0 10px 26px rgba(0,0,0,0.12);
  }
  92% {
    transform: translateY(3px) rotateX(-2deg) scale(1.01);
  }
  100% {
    opacity: 1;
    transform: translateY(0) rotateX(0deg) scale(1);
    box-shadow: 0 24px 70px rgba(10, 37, 16, 0.12);
  }
}

.segment-card__num {
  position: absolute;
  top: clamp(1.35rem, 1.8vw, 2rem);
  right: clamp(1.35rem, 1.8vw, 2rem);
  z-index: 2;
  font-family: "Outfit", sans-serif;
  font-size: clamp(2rem, 3vw, 3.25rem);
  font-weight: 700;
  line-height: 1;
  color: rgba(27, 94, 32, 0.12);
}
.segment-card__icon {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: clamp(70px, 5.8vw, 98px);
  height: clamp(70px, 5.8vw, 98px);
  margin-bottom: clamp(1.1rem, 1.9vw, 1.65rem);
  border-radius: 50%;
  background: linear-gradient(180deg, #12601c 0%, #2f7b34 62%, #8bc47c 100%);
  box-shadow: 0 16px 36px rgba(27, 94, 32, 0.25);
}
.segment-card__icon img {
  width: 44%;
  height: 44%;
  filter: brightness(0) invert(1);
}
.segment-card__text {
  position: relative;
  z-index: 2;
  max-width: 68%;
}
.segment-card h3 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(1.45rem, 1.55vw, 2rem);
  font-weight: 700;
  line-height: 1.12;
  margin: 0 0 clamp(1rem, 1.45vw, 1.45rem);
  color: #151515;
}
.segment-card p {
  font-family: "Outfit", sans-serif;
  font-size: clamp(1rem, 1.15vw, 1.28rem);
  line-height: 1.28;
  color: #4f5550;
  margin: 0;
  max-width: 15rem;
}
.segment-card__visual {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 1;
  width: 56%;
  height: 30%;
  border-radius: 70% 0 20px 0;
  overflow: hidden;
  opacity: 0.9;
}
.segment-card__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.08);
  transition: transform var(--t-slow);
}
.segment-card.drop-done:hover .segment-card__visual img,
.segment-card.drop-in:hover .segment-card__visual img {
  transform: scale(1.14);
}
.segment-card:nth-child(2) .segment-card__visual { width: 58%; height: 30%; }
.segment-card:nth-child(3) .segment-card__visual { width: 52%; height: 28%; }
.segment-card:nth-child(4) .segment-card__visual { width: 54%; height: 28%; }

/* -------------------------------------- 8b. unique services showcase ---- */
.services-showcase {
  --story-progress: 0;
  background:
    radial-gradient(circle at 50% 42%, rgba(76, 175, 80, 0.1), transparent 30%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), #F7FAF5);
  border-radius: 28px;
  padding: clamp(1.4rem, 3.6vw, 3.2rem);
  color: var(--clr-text);
  box-shadow: 0 26px 70px rgba(27, 94, 32, 0.1);
  border: 1px solid rgba(190, 214, 190, 0.72);
  margin-bottom: 3.5rem;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.services-showcase::before {
  content: "";
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(27, 94, 32, 0.07);
  border-radius: 24px;
  pointer-events: none;
}
.services-showcase-grid {
  display: grid;
  grid-template-columns: minmax(245px, 0.95fr) minmax(250px, 0.74fr) minmax(310px, 1.1fr);
  gap: clamp(1.2rem, 2.6vw, 2.4rem);
  align-items: center;
  position: relative;
  z-index: 1;
}
.showcase-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.showcase-header {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1.4rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid rgba(200, 230, 201, 0.82);
}
.showcase-header img {
  width: 28px;
  height: 28px;
  filter: none;
}
.showcase-header h3 {
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  color: var(--clr-primary);
  margin: 0;
  font-family: var(--font-head);
  letter-spacing: -0.01em;
}
.caters-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  flex: 1;
  padding-top: 0.4rem;
}
.cater-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(212, 226, 211, 0.92);
  border-radius: 24px;
  padding: 1.2rem 1.15rem 1.1rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  min-height: 156px;
  overflow: hidden;
  transform: translate3d(-22px, 24px, 0) scale(0.96);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease), background var(--t-med), border-color var(--t-med), box-shadow var(--t-med);
}
.cater-card:nth-child(2),
.cater-card:nth-child(4) {
  margin-left: clamp(1rem, 3vw, 2.2rem);
  transform: translate3d(22px, 24px, 0) scale(0.96);
}
.cater-card + .cater-card { margin-top: -0.35rem; }
.cater-card:hover {
  background: rgba(255, 255, 255, 0.96);
  border-color: var(--clr-accent);
  box-shadow: 0 18px 42px rgba(27, 94, 32, 0.13);
  transform: translate3d(0, -5px, 0) scale(1) !important;
}
.cater-card.is-active {
  border-color: rgba(76, 175, 80, 0.55);
  box-shadow: 0 18px 52px rgba(27, 94, 32, 0.14);
  transform: translate3d(0, -4px, 0) scale(1);
}
.cater-card__number {
  position: absolute;
  right: 0.8rem;
  top: 0.2rem;
  font-family: var(--font-head);
  font-size: clamp(3.2rem, 6vw, 5.2rem);
  font-weight: 700;
  line-height: 1;
  color: rgba(27, 94, 32, 0.055);
  pointer-events: none;
}
.cater-card__icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: rgba(232, 245, 233, 0.95);
  display: grid;
  place-items: center;
  margin-bottom: 0.75rem;
  transition: transform var(--t-fast);
}
.cater-card__icon img {
  width: 20px;
  height: 20px;
  filter: none;
}
.cater-card:hover .cater-card__icon,
.cater-card.is-active .cater-card__icon { transform: scale(1.08); }
.cater-card h4 {
  font-size: 1.02rem;
  color: var(--clr-primary);
  margin: 0 0 0.35rem 0;
  font-family: var(--font-head);
}
.cater-card p {
  font-size: 0.86rem;
  color: var(--clr-muted);
  margin: 0;
  line-height: 1.4;
  max-width: 15rem;
}
.cater-card__arrow {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: var(--clr-primary);
  background: rgba(232, 245, 233, 0.9);
  transition: transform var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.cater-card:hover .cater-card__arrow,
.cater-card.is-active .cater-card__arrow {
  color: #ffffff;
  background: var(--clr-accent);
  transform: translateX(4px);
}
.cater-card__leaf {
  position: absolute;
  right: -14px;
  bottom: -18px;
  width: 84px;
  height: 84px;
  border-radius: 72% 28% 72% 28%;
  background: rgba(76, 175, 80, 0.08);
  transform: rotate(-20deg);
  transition: transform 900ms var(--ease);
}
.cater-card.is-active .cater-card__leaf,
.cater-card:hover .cater-card__leaf { transform: translateY(-7px) rotate(-8deg); }
.showcase-eco {
  position: relative;
  min-height: 430px;
  display: grid;
  place-items: center;
  transform: scale(calc(0.94 + (var(--story-progress) * 0.07)));
  transition: transform 280ms linear;
}
.eco-globe {
  position: relative;
  z-index: 3;
  width: clamp(205px, 22vw, 310px);
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 2rem;
  background:
    radial-gradient(circle at 38% 28%, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.24) 20%, transparent 21%),
    radial-gradient(circle at 62% 70%, rgba(76, 175, 80, 0.36), transparent 28%),
    radial-gradient(circle at 34% 68%, rgba(2, 136, 209, 0.16), transparent 30%),
    linear-gradient(145deg, #f9fff8, #dceedd 58%, #b9dcbc);
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: inset -18px -22px 38px rgba(27, 94, 32, 0.16), 0 24px 64px rgba(27, 94, 32, 0.18);
  animation: ecoFloat 8s var(--ease) infinite alternate;
}
.eco-globe::before,
.eco-globe::after {
  content: "";
  position: absolute;
  border-radius: 56% 44% 55% 45%;
  background: rgba(27, 94, 32, 0.18);
}
.eco-globe::before {
  width: 34%;
  height: 18%;
  top: 25%;
  left: 20%;
  transform: rotate(-18deg);
}
.eco-globe::after {
  width: 28%;
  height: 16%;
  right: 18%;
  bottom: 27%;
  transform: rotate(22deg);
}
.eco-globe img {
  width: 36px;
  height: 36px;
  margin-bottom: 0.45rem;
  opacity: 0.74;
}
.eco-globe strong,
.eco-globe span {
  position: relative;
  z-index: 2;
  display: block;
  color: var(--clr-primary);
  font-family: var(--font-head);
  line-height: 1.18;
  letter-spacing: 0.08em;
}
.eco-globe strong { font-size: clamp(0.84rem, 1.1vw, 1rem); }
.eco-globe span {
  font-size: clamp(0.72rem, 0.9vw, 0.84rem);
  color: var(--clr-muted);
  margin-top: 0.3rem;
}
.eco-orbit {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(27, 94, 32, 0.18);
  transform: scale(calc(1 + (var(--story-progress) * 0.08)));
}
.eco-orbit--outer {
  width: min(95%, 370px);
  aspect-ratio: 1;
  animation: orbitSlow 26s linear infinite;
}
.eco-orbit--inner {
  width: min(75%, 285px);
  aspect-ratio: 1;
  border-style: dashed;
  animation: orbitSlow 32s linear infinite reverse;
}
.eco-particle,
.eco-leaf {
  position: absolute;
  z-index: 4;
  display: block;
}
.eco-particle {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--clr-accent);
  box-shadow: 0 0 0 8px rgba(76, 175, 80, 0.1);
}
.eco-particle--one { top: 16%; left: 50%; animation: orbitDot 12s linear infinite; }
.eco-particle--two { right: 12%; top: 48%; animation: orbitDot 17s linear infinite reverse; }
.eco-particle--three { bottom: 18%; left: 24%; animation: orbitDot 15s linear infinite; }
.eco-leaf {
  width: 40px;
  height: 22px;
  border-radius: 80% 20% 80% 20%;
  background: rgba(76, 175, 80, 0.2);
}
.eco-leaf--one { top: 18%; right: 20%; transform: rotate(-24deg); animation: leafDrift 7s var(--ease) infinite alternate; }
.eco-leaf--two { bottom: 20%; left: 15%; transform: rotate(28deg); animation: leafDrift 9s var(--ease) infinite alternate-reverse; }
.commitment-list {
  position: relative;
  display: grid;
  gap: 0.68rem;
  flex: 1;
  margin: 0;
  padding: 0 0 0 1.15rem;
  list-style: none;
}
.commitment-list::before {
  content: "";
  position: absolute;
  top: 0.6rem;
  bottom: 0.6rem;
  left: 1.55rem;
  width: 2px;
  border-radius: 99px;
  background: rgba(27, 94, 32, 0.12);
}
.commitment-list::after {
  content: "";
  position: absolute;
  top: 0.6rem;
  left: 1.55rem;
  width: 2px;
  height: calc((100% - 1.2rem) * var(--story-progress));
  border-radius: 99px;
  background: var(--clr-accent);
  box-shadow: 0 0 18px rgba(76, 175, 80, 0.5);
  transition: height 220ms linear;
}
.commitment-item {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(224, 235, 226, 0.85);
  border-radius: 20px;
  padding: 0.82rem 1rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02);
  opacity: 0;
  transform: translate3d(28px, 18px, 0);
  transition: opacity 650ms var(--ease), transform 650ms var(--ease), background var(--t-med), border-color var(--t-med), box-shadow var(--t-med);
}
.commitment-item:hover {
  background: #ffffff;
  border-color: var(--clr-accent);
  box-shadow: 0 16px 38px rgba(76, 175, 80, 0.11);
  transform: translateX(4px) !important;
}
.commitment-item.is-active {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(76, 175, 80, 0.55);
  box-shadow: 0 18px 45px rgba(27, 94, 32, 0.12), 0 0 0 5px rgba(76, 175, 80, 0.05);
  transform: translateX(0);
}
.commitment-badge {
  font-family: var(--font-head);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--clr-primary);
  background: #ffffff;
  border: 1px solid rgba(76, 175, 80, 0.24);
  box-shadow: 0 0 0 5px #F7FAF5;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: -1.3rem;
  transition: color var(--t-fast), background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);
}
.commitment-item.is-active .commitment-badge {
  color: #ffffff;
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  box-shadow: 0 0 0 7px rgba(76, 175, 80, 0.14);
}
.commitment-item span:not(.commitment-badge) {
  font-size: 0.86rem;
  color: #2D372E;
  font-weight: 500;
  line-height: 1.45;
  transition: color var(--t-fast);
}
.commitment-item:not(.is-active) span:not(.commitment-badge) { color: rgba(45, 55, 46, 0.58); }
@keyframes ecoFloat {
  from { transform: translateY(0) rotate(-1deg); }
  to { transform: translateY(-10px) rotate(2deg); }
}
@keyframes orbitSlow {
  to { transform: scale(calc(1 + (var(--story-progress) * 0.08))) rotate(360deg); }
}
@keyframes orbitDot {
  to { transform: rotate(360deg) translateX(22px) rotate(-360deg); }
}
@keyframes leafDrift {
  to { translate: 0 -12px; }
}
.services-showcase.is-visible .cater-card,
.services-showcase.is-visible .commitment-item {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(0.96);
}
.services-showcase.is-visible .cater-card.is-active,
.services-showcase.is-visible .commitment-item.is-active {
  transform: translate3d(0, -4px, 0) scale(1);
}
.services-showcase.is-visible .cater-card:nth-child(1) { transition-delay: 100ms; }
.services-showcase.is-visible .cater-card:nth-child(2) { transition-delay: 180ms; }
.services-showcase.is-visible .cater-card:nth-child(3) { transition-delay: 260ms; }
.services-showcase.is-visible .cater-card:nth-child(4) { transition-delay: 340ms; }
.services-showcase.is-visible .commitment-item:nth-child(1) { transition-delay: 120ms; }
.services-showcase.is-visible .commitment-item:nth-child(2) { transition-delay: 200ms; }
.services-showcase.is-visible .commitment-item:nth-child(3) { transition-delay: 280ms; }
.services-showcase.is-visible .commitment-item:nth-child(4) { transition-delay: 360ms; }
.services-showcase.is-visible .commitment-item:nth-child(5) { transition-delay: 440ms; }
.services-showcase.is-visible .commitment-item:nth-child(6) { transition-delay: 520ms; }
.services-showcase.is-visible .commitment-item:nth-child(7) { transition-delay: 600ms; }
@media (max-width: 991.98px) {
  .services-showcase-grid {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
  .showcase-eco {
    grid-column: 1 / -1;
    order: 2;
    min-height: 340px;
  }
  .showcase-col--audience { order: 1; }
  .showcase-col--timeline { order: 3; grid-column: 1 / -1; }
  .commitment-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .commitment-list::before,
  .commitment-list::after { display: none; }
  .commitment-badge { margin-left: 0; }
}
@media (max-width: 575.98px) {
  .services-showcase {
    border-radius: 22px;
    padding: 1rem;
  }
  .services-showcase-grid { grid-template-columns: 1fr; }
  .caters-grid {
    display: flex;
    gap: 0.85rem;
    overflow-x: auto;
    padding: 0.2rem 0.1rem 0.75rem;
    scroll-snap-type: x proximity;
  }
  .cater-card,
  .cater-card:nth-child(2),
  .cater-card:nth-child(4) {
    flex: 0 0 min(82vw, 285px);
    margin: 0;
    min-height: 170px;
    scroll-snap-align: start;
  }
  .showcase-eco { min-height: 285px; }
  .commitment-list {
    grid-template-columns: 1fr;
    padding-left: 0;
  }
  .commitment-item { padding: 0.85rem; }
}

/* -------------------------------------- 8c. scroll-controlled video ---- */
.scroll-video-section {
  --scroll-progress: 0;
  position: relative;
  height: 560vh;
  background: #050806;
  overflow: visible;
  isolation: isolate;
}
.scroll-video-sticky {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(4, 8, 5, 0.58) 0%, rgba(4, 8, 5, 0.08) 38%, rgba(4, 8, 5, 0.76) 100%),
    #050806;
}
.scroll-process-frame {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.scroll-process-canvas,
.scroll-process-fallback {
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  display: block;
  background: #050806;
  transform: translateZ(0);
}
.scroll-process-canvas {
  opacity: 0;
  visibility: hidden;
  touch-action: pan-y;
}
.scroll-process-fallback {
  object-fit: cover;
  opacity: 1;
  visibility: visible;
}
.scroll-video-section--ready .scroll-process-canvas {
  opacity: 1;
  visibility: visible;
}
.scroll-video-section--ready .scroll-process-fallback {
  opacity: 0;
  visibility: hidden;
}
.scroll-video-section--fallback .scroll-process-canvas {
  opacity: 0;
  visibility: hidden;
}
.scroll-video-section--fallback .scroll-process-fallback {
  opacity: 1;
  visibility: visible;
}
.scroll-video-header {
  position: absolute;
  top: calc(var(--nav-h) + clamp(1rem, 3vw, 2.6rem));
  left: clamp(1.25rem, 5vw, 5rem);
  z-index: 10;
  width: min(88vw, 520px);
  color: var(--clr-white);
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55);
}
.scroll-video-header .eyebrow {
  color: #b7e2b9;
  margin-bottom: 0.35rem;
}
.scroll-video-header h2 {
  font-size: clamp(1.8rem, 3.4vw, 3.3rem);
  margin-bottom: 0.45rem;
  color: var(--clr-white);
  max-width: 11ch;
}
.scroll-video-header p {
  max-width: 34rem;
  font-size: clamp(0.9rem, 1vw, 1rem);
  color: rgba(255, 255, 255, 0.82);
  margin: 0;
}
.video-stages-overlay-wrap {
  position: absolute;
  bottom: clamp(1.1rem, 3vw, 2.4rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: min(100% - 2.5rem, 1240px);
}
.video-scroll-progress {
  position: relative;
  height: 2px;
  margin: 0 0 0.8rem;
  background: rgba(255, 255, 255, 0.28);
  overflow: hidden;
}
.video-scroll-progress__fill {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--clr-accent), #b7e2b9);
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}
.video-stages-overlay {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(0.55rem, 1.2vw, 1rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.video-stage-step {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.38rem 0.55rem;
  align-items: start;
  min-height: 86px;
  padding-top: 0.15rem;
  color: rgba(255, 255, 255, 0.56);
  opacity: 0.62;
  transform: translateY(0);
  transition: opacity var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.video-stage-step.active {
  color: var(--clr-white);
  opacity: 1;
  transform: translateY(-6px);
}
.video-stage-step.active .step-info h3,
.video-stage-step.active .step-info p,
.video-stage-step.active .step-num {
  color: var(--clr-white);
}
.video-stage-step.active .step-info p {
  color: #b7e2b9;
}
.step-dot {
  grid-column: 1;
  width: 9px;
  height: 9px;
  margin-top: 0.22rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.46);
  box-shadow: 0 0 0 0 rgba(76, 175, 80, 0);
  transition: background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);
}
.video-stage-step.active .step-dot {
  background: var(--clr-accent);
  box-shadow: 0 0 0 7px rgba(76, 175, 80, 0.18);
  transform: scale(1.12);
}
.video-stage-step .step-num {
  grid-column: 2;
  font-family: var(--font-head);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1;
  color: rgba(255, 255, 255, 0.58);
  letter-spacing: 0.08em;
  transition: color var(--t-fast);
}
.video-stage-step .step-info {
  grid-column: 2;
}
.video-stage-step .step-info h3 {
  font-size: clamp(0.8rem, 0.9vw, 0.96rem);
  margin: 0;
  font-family: var(--font-head);
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.72);
  transition: color var(--t-fast);
}
.video-stage-step .step-info p {
  font-size: clamp(0.72rem, 0.76vw, 0.82rem);
  margin: 0.15rem 0 0 0;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.25;
  transition: color var(--t-fast);
}

@media (max-width: 991.98px) {
  .scroll-video-section { height: 520vh; }
  .scroll-video-sticky { min-height: 600px; }
  .scroll-video-header {
    top: calc(var(--nav-h) + 0.9rem);
    left: 1.25rem;
    width: min(76vw, 440px);
  }
  .scroll-video-header h2 { max-width: 12ch; }
  .video-stages-overlay {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 0.75rem;
  }
  .video-stage-step { min-height: 64px; }
}
@media (max-width: 767.98px) {
  .scroll-video-section { height: 500vh; }
  .scroll-video-sticky {
    height: 100svh;
    min-height: 640px;
  }
  .scroll-video-header {
    top: calc(var(--nav-h) + 0.75rem);
    width: min(100% - 2rem, 360px);
  }
  .scroll-video-header h2 {
    font-size: clamp(1.45rem, 8vw, 2.15rem);
    max-width: 12ch;
  }
  .scroll-video-header p {
    display: none;
  }
  .video-stages-overlay-wrap {
    bottom: 0.85rem;
    width: calc(100% - 1.25rem);
  }
  .video-stages-overlay {
    display: flex;
    gap: 0.85rem;
    overflow-x: auto;
    padding: 0.2rem 0.1rem 0.45rem;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }
  .video-stage-step {
    flex: 0 0 min(72vw, 250px);
    min-height: 76px;
    scroll-snap-align: start;
  }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-video-section {
    height: auto;
    background: #050806;
  }
  .scroll-video-sticky {
    position: relative;
    min-height: 760px;
    height: auto;
    padding: calc(var(--nav-h) + 2rem) 1rem 2rem;
  }
  .scroll-process-frame,
  .scroll-video-header,
  .video-stages-overlay-wrap {
    position: relative;
    inset: auto;
    transform: none;
  }
  .scroll-process-frame {
    width: min(100%, 1100px);
    aspect-ratio: 16 / 9;
    margin: 0 auto;
  }
  .scroll-video-header,
  .video-stages-overlay-wrap {
    width: min(100%, 1100px);
    left: auto;
    top: auto;
    margin: 1.25rem auto 0;
  }
  .video-stages-overlay {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* stabilize waste hero and material recovery showcase */
.stabilize-hero {
  position: relative;
  height: clamp(480px, 38vw, 560px);
  min-height: 480px;
  display: flex;
  align-items: center;
  color: #fff;
  background: #102115;
  overflow: hidden;
  isolation: isolate;
}
.stabilize-hero__image,
.stabilize-hero__overlay {
  position: absolute;
  inset: 0;
}
.stabilize-hero__image {
  z-index: -2;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 60%;
}
.stabilize-hero__overlay {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(3, 15, 8, 0.82) 0%, rgba(7, 25, 14, 0.72) 34%, rgba(8, 30, 17, 0.34) 66%, rgba(8, 30, 17, 0.1) 100%),
    linear-gradient(180deg, rgba(3, 10, 6, 0.18) 0%, rgba(3, 10, 6, 0.08) 48%, rgba(3, 10, 6, 0.2) 100%);
}
.stabilize-hero__content.container {
  position: relative;
  width: min(100% - 160px, 1280px);
  padding-top: var(--nav-h);
}
.stabilize-hero__eyebrow,
.stabilize-hero h1,
.stabilize-hero__lead {
  font-family: "Outfit", sans-serif;
}
.stabilize-hero__eyebrow {
  margin: 0 0 16px;
  color: #8FCC6F;
  font-size: clamp(11px, 0.8vw, 12px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.18em;
}
.stabilize-hero h1 {
  max-width: 700px;
  margin: 0;
  color: #fff;
  font-size: clamp(56px, 5vw, 68px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: 0;
}
.stabilize-hero h1 span {
  display: block;
}
.stabilize-hero__accent {
  display: block;
  width: 48px;
  height: 4px;
  margin: 22px 0 16px;
  background: #7EC464;
}
.stabilize-hero__lead {
  max-width: 700px;
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(16px, 1.25vw, 18px);
  font-weight: 400;
  line-height: 1.6;
}
.stabilize-hero__eyebrow,
.stabilize-hero h1 span,
.stabilize-hero__accent,
.stabilize-hero__lead {
  animation: stabilizeHeroFadeUp 720ms var(--ease) both;
}
.stabilize-hero h1 span:first-child { animation-delay: 110ms; }
.stabilize-hero h1 span:last-child { animation-delay: 210ms; }
.stabilize-hero__accent { animation-delay: 340ms; }
.stabilize-hero__lead { animation-delay: 430ms; }

@keyframes stabilizeHeroFadeUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 1100px) and (min-width: 1024px) {
  .stabilize-hero {
    height: 420px;
    min-height: 420px;
  }
  .stabilize-hero__content.container {
    width: min(100% - 96px, 920px);
  }
  .stabilize-hero h1 {
    font-size: clamp(52px, 5vw, 58px);
  }
}
.stabilize-process {
  position: relative;
  overflow: clip;
  background: #F8F5EC;
  color: #202522;
}
.stabilize-showcase {
  padding: clamp(80px, 7vw, 100px) 0;
  min-height: auto;
  font-family: "Outfit", sans-serif;
  scroll-margin-top: var(--nav-h-scrolled);
}
.stabilize-showcase.is-sticky-enabled {
  /* min-height: var(--stabilize-scroll-height, 420vh); */
  padding: 0;
}
.stabilize-showcase__pin {
  width: 100%;
}
.stabilize-showcase.is-sticky-enabled .stabilize-showcase__pin {
  position: sticky;
  top: var(--stabilize-header-offset, var(--nav-h-scrolled));
  min-height: calc(100svh - var(--stabilize-header-offset, var(--nav-h-scrolled)));
  display: flex;
  align-items: center;
  padding: clamp(54px, 7vh, 88px) 0;
}
.stabilize-showcase__grid {
  width: min(100% - 64px, 1280px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(48px, 5vw, 64px);
  align-items: center;
}
.stabilize-showcase__intro,
.stabilize-showcase__panel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  /* align-items: center; */
}
.stabilize-showcase__intro,
.stabilize-showcase__panel,
.stabilize-showcase__nav button,
.stabilize-showcase__controls button {
  font-family: "Outfit", sans-serif;
}
.stabilize-showcase__eyebrow {
  display: inline-block;
  margin: 0 0 22px;
  color: #3A8C43;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.stabilize-showcase h2 {
  margin: 0 0 40px;
  color: #202522;
  font-size: clamp(40px, 3.35vw, 48px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: 0;
}
.stabilize-showcase h2 span {
  display: block;
}
.stabilize-showcase h2 span + span {
  color: #2E8B3C;
}
.stabilize-showcase__nav {
  display: grid;
}
.stabilize-showcase__nav button {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 24px;
  gap: 16px;
  align-items: center;
  width: 100%;
  min-height: 64px;
  padding: 16px 0;
  border: 0;
  border-bottom: 1px solid rgba(32, 37, 34, 0.12);
  background: transparent;
  color: #343B36;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}
.stabilize-showcase__nav button:focus-visible,
.stabilize-showcase__controls button:focus-visible {
  outline: 3px solid rgba(46, 139, 60, 0.45);
  outline-offset: 3px;
}
.stabilize-showcase__nav-number {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #EFECE3;
  color: #6C746D;
  font-size: 12px;
  font-weight: 400;
}
.stabilize-showcase__nav-label {
  min-width: 0;
}
.stabilize-showcase__nav-arrow {
  justify-self: end;
  color: #2E8B3C;
  font-size: 20px;
  line-height: 1;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 260ms ease, transform 260ms ease;
}
.stabilize-showcase__nav button.is-active {
  color: #2E8B3C;
  font-weight: 500;
}
.stabilize-showcase__nav button.is-active .stabilize-showcase__nav-number {
  background: #2E8B3C;
  color: #ffffff;
  font-weight: 500;
}
.stabilize-showcase__nav button.is-active .stabilize-showcase__nav-arrow {
  opacity: 1;
  transform: translateX(0);
}
.stabilize-showcase__panel {
  min-width: 0;
}
.stabilize-showcase__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  margin: 0 0 30px;
  overflow: hidden;
  border-radius: 6px;
  background: #E9E5DA;
}
.stabilize-showcase__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 1;
  transition: opacity 360ms ease;
}
.stabilize-showcase__media.is-changing img {
  opacity: 0;
}
.stabilize-showcase__caption {
  display: grid;
  width: 100%;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(24px, 3vw, 36px);
  align-items: start;
  min-height: 138px;
  transform: translateY(0);
  opacity: 1;
  transition: opacity 340ms ease, transform 340ms ease;
}
.stabilize-showcase__caption.is-changing {
  opacity: 0;
  transform: translateY(12px);
}
.stabilize-showcase__caption h3 {
  margin: 8px 0 12px;
  color: #202522;
  font-size: clamp(26px, 2.25vw, 36px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: 0;
}
.stabilize-showcase__caption p:not(.stabilize-showcase__stage) {
  max-width: 600px;
  margin: 0;
  color: #555F58;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.72;
}
.stabilize-showcase__stage {
  margin: 0;
  color: rgba(122, 174, 103, 0.32);
  font-size: clamp(64px, 5.7vw, 76px);
  font-weight: 600;
  line-height: 0.95;
}
.stabilize-showcase__footer {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 28px;
}
.stabilize-showcase__progress {
  display: grid;
  grid-template-columns: repeat(6, 46px);
  gap: 9px;
}
.stabilize-showcase__progress span {
  display: block;
  height: 3px;
  background: rgba(32, 37, 34, 0.16);
  transition: background 280ms ease;
}
.stabilize-showcase__progress span.is-active {
  background: #2E8B3C;
}
.stabilize-showcase__controls {
  display: flex;
  gap: 10px;
}
.stabilize-showcase__controls button {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(32, 37, 34, 0.14);
  border-radius: 50%;
  background: #ffffff;
  color: #202522;
  font-size: 18px;
  cursor: pointer;
  transition: color 220ms ease, border-color 220ms ease, background 220ms ease;
}
.stabilize-showcase__controls button:hover {
  border-color: #2E8B3C;
  background: #2E8B3C;
  color: #ffffff;
}

@media (min-width: 1024px) {
  .stabilize-showcase__media,
  .stabilize-showcase__caption,
  .stabilize-showcase__footer {
    width: 80%;
    margin-inline: auto;
  }
}

.stabilize-science {
  --science-bg: #F8F5EC;
  --science-ink: #17211C;
  --science-muted: #5E675F;
  --science-green: #1E6E35;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, min(50vw, 640px));
  min-height: clamp(560px, 46vw, 640px);
  padding-right: max(48px, calc((100vw - 1280px) / 2));
  background: var(--science-bg);
  color: var(--science-ink);
  overflow: hidden;
}
.stabilize-science,
.stabilize-science h2,
.stabilize-science h3,
.stabilize-science p,
.stabilize-science__eyebrow {
  font-family: "Outfit", sans-serif;
}
.stabilize-science__media {
  position: relative;
  min-height: clamp(560px, 46vw, 640px);
  overflow: hidden;
}
.stabilize-science__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 42% 52%;
}
.stabilize-science__inset {
  position: absolute;
  right: clamp(34px, 5vw, 72px);
  bottom: clamp(34px, 5vw, 62px);
  width: clamp(160px, 13vw, 190px);
  aspect-ratio: 1;
  height: auto;
  object-fit: cover;
  object-position: center;
  border: 6px solid var(--science-bg);
  border-radius: 50%;
  box-shadow: 0 18px 42px rgba(15, 35, 20, 0.22);
}
.stabilize-science__content {
  align-self: center;
  padding: clamp(48px, 3.8vw, 56px) 0 clamp(48px, 3.8vw, 56px) clamp(56px, 5vw, 72px);
}
.stabilize-science__eyebrow {
  display: inline-block;
  margin: 0 0 20px;
  color: var(--science-green);
  font-size: clamp(11px, 0.8vw, 12px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.18em;
}
.stabilize-science h2 {
  max-width: 520px;
  margin: 0 0 16px;
  color: var(--science-ink);
  font-size: clamp(42px, 3.35vw, 50px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: 0;
}
.stabilize-science h2 span {
  display: block;
}
.stabilize-science__lead {
  max-width: 590px;
  margin: 0 0 20px;
  color: var(--science-muted);
  font-size: clamp(16px, 1.1vw, 17px);
  font-weight: 400;
  line-height: 1.65;
}
.stabilize-science__features {
  max-width: 590px;
}
.stabilize-science__feature {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 17px 0;
  border-top: 1px solid rgba(23, 33, 28, 0.14);
}
.stabilize-science__feature:last-child {
  border-bottom: 1px solid rgba(23, 33, 28, 0.14);
}
.stabilize-science__feature img {
  width: 32px;
  height: 32px;
  margin-top: 3px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(27%) sepia(84%) saturate(568%) hue-rotate(86deg) brightness(86%) contrast(90%);
}
.stabilize-science__feature h3 {
  margin: 0 0 5px;
  color: var(--science-ink);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}
.stabilize-science__feature p {
  margin: 0;
  color: var(--science-muted);
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.6;
}
.js-motion .stabilize-science [data-science-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 620ms var(--ease), transform 620ms var(--ease);
  transition-delay: var(--science-delay, 0ms);
}
.js-motion .stabilize-science .stabilize-science__inset {
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 640ms var(--ease), transform 640ms var(--ease);
  transition-delay: 180ms;
}
.js-motion .stabilize-science.is-visible [data-science-reveal],
.js-motion .stabilize-science.is-visible .stabilize-science__inset {
  opacity: 1;
  transform: none;
}
.stabilize-science__eyebrow { --science-delay: 80ms; }
.stabilize-science h2 { --science-delay: 160ms; }
.stabilize-science__lead { --science-delay: 240ms; }
.stabilize-science__feature:nth-child(1) { --science-delay: 340ms; }
.stabilize-science__feature:nth-child(2) { --science-delay: 440ms; }
.stabilize-science__feature:nth-child(3) { --science-delay: 540ms; }

@media (max-width: 899.98px) {
  .stabilize-science {
    display: block;
    min-height: 0;
    padding-right: 0;
  }
  .stabilize-science__media {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
  .stabilize-science__image {
    object-position: 44% 54%;
  }
  .stabilize-science__inset {
    right: 24px;
    bottom: 24px;
    width: clamp(110px, 30vw, 130px);
    border-width: 5px;
  }
  .stabilize-science__content {
    width: min(100% - 48px, 620px);
    margin-inline: auto;
    padding: 44px 0 48px;
  }
  .stabilize-science__eyebrow {
    margin-bottom: 18px;
    font-size: 11px;
  }
  .stabilize-science h2 {
    font-size: clamp(32px, 8.8vw, 38px);
  }
  .stabilize-science__lead {
    font-size: 16px;
  }
  .stabilize-science__feature {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 16px;
    padding: 20px 0;
  }
  .stabilize-science__feature img {
    width: 30px;
    height: 30px;
  }
}

/* about teaser (2-col) */
.split {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.split__media { position: relative; }
.split__media img { border-radius: var(--radius); box-shadow: var(--shadow-lg); width: 100%; object-fit: cover; }
.split__media .float-badge {
  position: absolute;
  right: -14px;
  bottom: -20px;
  background: var(--clr-accent);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 700;
  padding: 0.9rem 1.3rem;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
  text-align: center;
  line-height: 1.25;
}
.split__media .float-badge strong { display: block; font-size: 1.5rem; }

.tick-list li {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  padding: 0.3rem 0;
}
.tick-list img { width: 20px; height: 20px; margin-top: 4px; flex: none; }

/* generic card grid */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }

/* icon service card */
.icon-card {
  background: #fff;
  border: 1px solid #E7EBE4;
  border-radius: var(--radius);
  padding: 1.8rem 1.5rem;
  box-shadow: var(--shadow-sm);
  transition: transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
}
.icon-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--clr-accent); }
.icon-card img { width: 46px; height: 46px; margin-bottom: 1rem; }
.icon-card p { color: var(--clr-muted); font-size: 0.95rem; margin: 0; }

/* stats / count-up */
.stat-card {
  text-align: center;
  background: #fff;
  border-radius: var(--radius);
  padding: 2rem 1.2rem;
  box-shadow: var(--shadow-sm);
  border-bottom: 4px solid var(--clr-accent);
}
.stat-card img { width: 40px; height: 40px; margin: 0 auto 0.7rem; }
.stat-card .stat-number {
  font-family: var(--font-head);
  font-size: clamp(2rem, 4vw, 2.7rem);
  font-weight: 700;
  color: var(--clr-primary);
  line-height: 1.1;
}
.stat-card .stat-suffix { font-size: 0.6em; font-weight: 600; color: var(--clr-accent); }
.stat-card p { color: var(--clr-muted); margin: 0.3rem 0 0; font-size: 0.92rem; }

/* process chain premium page */
.process-chain-page {
  --pc-green: #2FB344;
  --pc-dark: #0B3D24;
  --pc-footer: #082E1A;
  --pc-blue: #2196D2;
  --pc-text: #111827;
  --pc-muted: #64716B;
  --pc-border: #E5ECE7;
  --pc-bg-soft: #F7FAF7;
  background: #ffffff;
}
.process-chain-page .site-footer { background: var(--pc-footer); }
.process-hero {
  position: relative;
  min-height: 100svh;
  padding: calc(var(--nav-h) + 4rem) 0 4.2rem;
  overflow: hidden;
  display: grid;
  /* align-items: center; */
  background-color: #07150d;
  background-image:
    
    linear-gradient(180deg, #07150d 0%, #102817 100%);
  background-position: center bottom 40px, center top, center;
  background-size: 100% auto, cover, cover;
  background-repeat: no-repeat;
}
.process-hero__bg-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.process-hero__bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
   linear-gradient(180deg, rgb(3 8 6 / 39%) 0%, rgb(3 12 8 / 2%) 46%, rgb(6 22 12 / 0%) 100%), radial-gradient(circle at 50% 42%, rgb(16 16 16 / 16%), transparent 34%), linear-gradient(90deg, rgb(5 17 10 / 26%) 0%, rgb(5 17 10 / 12%) 48%, rgb(5 17 10 / 10%) 100%);
  pointer-events: none;
}
/* .process-hero::after {
  content: "";
  position: absolute;
  z-index: 2;
  width: 230px;
  height: 230px;
  right: 17%;
  top: 16%;
  border-radius: 50%;
  background: rgba(47, 179, 68, 0.16);
  filter: blur(34px);
  pointer-events: none;
} */
.process-hero__grid {
  position: relative;
  z-index: 3;
  display: block;
  width: calc(100% - 64px);
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}
.process-hero__content {
  margin-inline: auto;
}
.process-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 18px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.process-eyebrow::before {
  content: "";
  width: 18px;
  height: 2px;
  border-radius: 99px;
  background: #ffffff;
}
.process-hero h1 {
  color: #ffffff;
  font-size: 90px;
  line-height: 0.98;
  font-weight: 600;
  letter-spacing: 3.5px;
  margin-bottom: 22px;
  font-family: 'outfit';
}
.process-hero h1 span { color: inherit; }
.process-hero__lead {
  max-width: 560px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 20px;
  line-height: 1.5;
  font-weight: 500;
  margin-bottom: 20px;
  margin-inline: auto;
}
.process-hero__lead strong {
  color: #2CA84A;
  font-weight: 800;
}
.process-hero__text {
  max-width: 646px;
  color: #ffffff;
  font-size: 18px;
  line-height: 1.7;
  margin-inline: auto;
  letter-spacing: 1.5px;
  font-family: 'outfit';
}
.process-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-top: 30px;
}
.process-hero__actions .btn {
  min-height: 52px;
  height: 52px;
  padding: 0 26px;
  border-radius: 999px;
  background: linear-gradient(135deg, #52B85C, #2CA84A);
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 10px 28px rgba(54, 170, 80, 0.22);
}
.process-hero__actions .btn:hover {
  transform: translateY(-3px);
}
.process-hero__actions .btn span,
.process-cta .btn span {
  display: inline-block;
  transition: transform var(--t-fast);
}
.process-hero__actions .btn:hover span,
.process-cta .btn:hover span { transform: translateX(4px); }
.process-play {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 52px;
  height: 52px;
  padding: 0 24px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--pc-text);
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 10px 30px rgba(20, 50, 40, 0.10);
}
.process-play:hover {
  color: var(--pc-text);
  transform: translateY(-3px);
}
.process-play span {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #0D1B2A;
}
.process-play img {
  width: 14px;
  height: 14px;
  filter: brightness(0) invert(1);
}
.process-hero__visual {
  position: relative;
  min-height: 565px;
  display: grid;
  place-items: center;
  will-change: transform;
}
.process-hero__visual--empty {
  min-height: 420px;
  pointer-events: none;
}
.process-loop {
  position: relative;
  width: min(112%, 720px);
  aspect-ratio: 1.16;
  display: grid;
  place-items: center;
  margin-right: -62px;
}
.process-loop__illustration {
  position: absolute;
  inset: -7% -8% -4% -8%;
  width: 116%;
  height: 112%;
  object-fit: contain;
  z-index: 1;
  filter: drop-shadow(0 28px 55px rgba(20, 70, 45, 0.12));
  animation: processHeroFloat 6.5s cubic-bezier(.22,1,.36,1) infinite alternate;
}
.process-loop__ring {
  display: none;
}
.process-loop__center {
  position: relative;
  z-index: 4;
  width: min(31%, 178px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1.4rem;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  backdrop-filter: blur(8px);
  transform: translate(12px, 4px);
}
.process-loop__center img {
  width: 34px;
  height: 34px;
}
.process-loop__center strong,
.process-loop__center span {
  color: var(--pc-dark);
  font-family: var(--font-head);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.2;
}
.process-loop__center strong { font-size: 0.72rem; color: #1D8D3A; }
.process-loop__center span { font-size: 0.84rem; font-weight: 800; color: #1D8D3A; }
.process-loop__item {
  position: absolute;
  z-index: 3;
  display: none;
  place-items: center;
  gap: 0.4rem;
  width: 124px;
  height: 88px;
  padding: 0.78rem;
  border: 1px solid rgba(210,225,215,0.6);
  border-radius: 18px;
  background: rgba(255,255,255,0.94);
  box-shadow: 0 16px 38px rgba(20,50,30,0.10);
  backdrop-filter: blur(10px);
  animation: processCardFloat 6s cubic-bezier(.22,1,.36,1) infinite alternate;
  opacity: 1;
}
.process-loop__item img {
  width: 28px;
  height: 28px;
}
.process-loop__item span {
  color: #2f4538;
  font-size: 0.76rem;
  font-weight: 800;
}
.process-loop__item--truck { left: 4%; top: 24%; }
.process-loop__item--plant { right: 5%; top: 20%; animation-delay: 650ms; }
.process-loop__item--bins { left: 17%; bottom: 9%; animation-delay: 350ms; }
.process-loop__item--land { right: 12%; bottom: 11%; animation-delay: 950ms; }
/* .process-leaf {
  position: absolute;
  z-index: 2;
  width: 58px;
  height: 32px;
  border-radius: 80% 20% 80% 20%;
  background: rgba(47, 179, 68, 0.24);
  opacity: 0.35;
  animation: leafDrift 8s var(--ease) infinite alternate;
} */
/* .process-leaf--one { left: 7%; bottom: 18%; transform: rotate(-18deg); opacity: 0.16; }
.process-leaf--two { right: 8%; top: 18%; transform: rotate(28deg); animation-delay: 1s; }
.process-hero__dots {
  position: absolute;
  z-index: 4;
  right: clamp(1.4rem, 4vw, 4rem);
  top: 38%;
  display: grid;
  gap: 0.72rem;
} */
.process-hero__dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(11, 61, 36, 0.16);
}
.process-hero__dots span.active {
  background: #2FB344;
}
.process-hero__scroll {
  position: absolute;
  z-index: 4;
  right: clamp(1.1rem, 3.4vw, 3.6rem);
  bottom: 86px;
  display: grid;
  justify-items: center;
  gap: 0.5rem;
  color: #318A4C;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.process-hero__scroll span {
  width: 26px;
  height: 44px;
  border: 2px solid rgba(47, 179, 68, 0.78);
  border-radius: 99px;
  position: relative;
}
.process-hero__scroll span::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 8px;
  width: 4px;
  height: 8px;
  border-radius: 99px;
  background: #2FB344;
  transform: translateX(-50%);
  animation: scrollDot 1.8s ease-in-out infinite;
}
.process-hero__scroll em {
  font-style: normal;
}
.process-hero__wave {
  position: absolute;
  z-index: 4;
  left: -4%;
  right: -4%;
  bottom: -1px;
  height: 70px;
  background: #ffffff;
  clip-path: ellipse(66% 58% at 50% 100%);
}
.process-intro {
  padding: clamp(3rem, 7vw, 5.5rem) 0 1.5rem;
  background: #ffffff;
}
.process-section-head {
  text-align: center;
  max-width: 780px;
  margin-inline: auto;
}
.process-section-head h2 {
  color: var(--pc-text);
  font-size: clamp(2.1rem, 4vw, 3rem);
  letter-spacing: -0.035em;
}
.process-section-head p {
  color: var(--pc-muted);
  font-size: 1.05rem;
}
.process-section-head__line {
  display: block;
  width: 68px;
  height: 3px;
  margin: 1.3rem auto 0;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--pc-green), var(--pc-blue));
}
.process-timeline-section {
  padding: 2rem 0 clamp(3rem, 7vw, 5.5rem);
  background: #ffffff;
}
.process-chain-timeline {
  --timeline-progress: 0;
  position: relative;
  display: grid;
  gap: clamp(2rem, 5vw, 3.8rem);
}
.process-chain-timeline::before,
.process-chain-timeline::after {
  content: "";
  position: absolute;
  top: 1rem;
  bottom: 1rem;
  left: 50%;
  width: 3px;
  border-radius: 99px;
  transform: translateX(-50%);
}
.process-chain-timeline::before {
  background: linear-gradient(180deg, rgba(47,179,68,0.2), rgba(33,150,210,0.2));
}
.process-chain-timeline::after {
  height: calc(100% * var(--timeline-progress));
  bottom: auto;
  background: linear-gradient(180deg, var(--pc-green), var(--pc-blue));
  box-shadow: 0 0 22px rgba(33, 150, 210, 0.25);
}
.process-step {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 84px minmax(0, 1fr);
  gap: clamp(1.4rem, 3vw, 2.4rem);
  align-items: center;
}
.process-step--reverse .process-step__image { grid-column: 3; }
.process-step--reverse .process-step__card { grid-column: 1; grid-row: 1; }
.process-step__image {
  margin: 0;
  aspect-ratio: 16 / 7.2;
  overflow: hidden;
  border-radius: 20px;
  background: var(--pc-bg-soft);
  box-shadow: 0 20px 50px rgba(15, 40, 20, 0.09);
}
.process-step__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms var(--ease);
}
.process-step:hover .process-step__image img { transform: scale(1.035); }
.process-step__node {
  position: relative;
  z-index: 2;
  grid-column: 2;
  grid-row: 1;
  width: 58px;
  height: 58px;
  margin-inline: auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  font-family: var(--font-head);
  font-weight: 800;
  background: linear-gradient(135deg, var(--pc-green), var(--pc-blue));
  box-shadow: 0 14px 28px rgba(47, 179, 68, 0.26), 0 0 0 8px #ffffff;
  transform: scale(0.86);
  transition: transform var(--t-med);
}
.process-step.is-active .process-step__node,
.process-step:hover .process-step__node { transform: scale(1); }
.process-step__card {
  position: relative;
  background: rgba(255,255,255,0.96);
  border: 1px solid var(--pc-border);
  border-radius: 24px;
  padding: clamp(1.4rem, 3vw, 2rem);
  box-shadow: 0 18px 50px rgba(15, 40, 20, 0.07);
  transition: transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
}
.process-step__card:hover,
.process-step.is-active .process-step__card {
  transform: translateY(-5px);
  border-color: rgba(47, 179, 68, 0.35);
  box-shadow: 0 26px 70px rgba(15, 40, 20, 0.12);
}
.process-step__icon {
  position: absolute;
  right: 1.4rem;
  top: 1.35rem;
  width: 70px;
  height: 70px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #EAF7EC;
}
.process-step__icon img {
  width: 34px;
  height: 34px;
}
.process-step__card > span {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--pc-blue);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.process-step__card h3 {
  color: var(--pc-text);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  margin-right: 4.6rem;
  margin-bottom: 0.45rem;
}
.process-step__card p {
  color: var(--pc-muted);
  margin: 0;
  max-width: 520px;
}
.process-benefits {
  padding-top: 0;
  background: #ffffff;
}
.process-benefits__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid rgba(229, 236, 231, 0.9);
  border-radius: 24px;
  background: linear-gradient(90deg, #F7FAF7, #EFFAF1);
  box-shadow: 0 20px 58px rgba(15, 40, 20, 0.06);
  overflow: hidden;
}
.process-benefit {
  text-align: center;
  padding: 1.6rem 1.2rem;
}
.process-benefit + .process-benefit { border-left: 1px solid rgba(11, 61, 36, 0.12); }
.process-benefit img {
  width: 42px;
  height: 42px;
  margin-inline: auto;
  margin-bottom: 0.7rem;
}
.process-benefit h3 {
  color: var(--pc-text);
  font-size: 1.08rem;
  margin-bottom: 0.3rem;
}
.process-benefit p {
  color: var(--pc-muted);
  margin: 0;
  font-size: 0.92rem;
}
.process-cta-section {
  padding-top: 0;
  background: #ffffff;
}
.process-cta-section .container {
  width: calc(100% - 64px);
  max-width: 1280px;
}
.process-cta {
  position: relative;
  max-width: 1280px;
  min-height: 360px;
  height: clamp(340px, 28vw, 380px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
  gap: 2rem;
  overflow: hidden;
  border-radius: 26px;
  padding: 55px 60px;
  color: #ffffff;
  box-shadow: 0 28px 80px rgba(8, 46, 26, 0.18);
}
.process-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(5,55,27,.96) 0%, rgba(8,70,34,.88) 42%, rgba(10,90,45,.58) 72%, rgba(15,95,50,.38) 100%),
    url("../images/Process-chain/10-cta-background.jpg") center / cover;
  transition: transform 900ms cubic-bezier(.22,1,.36,1);
  z-index: 0;
}
.process-cta::after {
  content: "";
  position: absolute;
  right: -4%;
  top: 8%;
  width: 430px;
  height: 430px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(90,200,100,.18), transparent 65%);
  z-index: 1;
  pointer-events: none;
}
.process-cta:hover::before { transform: scale(1.015); }
.process-cta__content {
  position: relative;
  z-index: 2;
  max-width: 600px;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 800ms cubic-bezier(.22,1,.36,1), transform 800ms cubic-bezier(.22,1,.36,1);
}
.process-cta .process-eyebrow {
  color: rgba(255,255,255,.85);
  font-size: 12px;
  letter-spacing: .16em;
  font-weight: 700;
}
.process-cta .process-eyebrow::before { background: var(--pc-green); }
.process-cta h2 {
  color: #ffffff;
  font-size: clamp(38px, 4vw, 52px);
  line-height: 1.04;
  font-weight: 600;
  letter-spacing: -0.035em;
  max-width: 600px;
  margin-bottom: 0.72rem;
}
.process-cta p {
  color: rgba(255,255,255,.82);
  max-width: 540px;
  font-size: 16px;
  line-height: 1.65;
}
.process-cta .btn {
  height: 50px;
  min-height: 50px;
  padding: 0 26px;
  margin-top: 0.9rem;
  border-radius: 999px;
  background: #63C861;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 10px 30px rgba(70,210,100,.22);
}
.process-cta .btn:hover {
  transform: translateY(-3px);
}
.process-cta .cta-button {
  margin-top: 0.9rem;
}
.process-cta__leaf {
  position: absolute;
  z-index: 2;
  right: 70px;
  top: 50%;
  width: clamp(280px, 28vw, 360px);
  height: clamp(300px, 30vw, 370px);
  display: grid;
  place-items: center;
  border-radius: 86% 8% 82% 18%;
  clip-path: polygon(50% 0%, 76% 8%, 94% 27%, 100% 54%, 90% 79%, 68% 96%, 39% 100%, 16% 88%, 4% 63%, 8% 35%, 24% 13%);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.12), transparent 27%),
    linear-gradient(145deg, #2D8A3A, #1B672C 55%, #105323);
  opacity: 0;
  transform: translateY(-50%) translateX(60px) rotate(18deg);
  box-shadow: 0 26px 60px rgba(0,0,0,0.2), inset 22px 0 45px rgba(255,255,255,0.12);
  transition: opacity 900ms cubic-bezier(.22,1,.36,1) 160ms, transform 900ms cubic-bezier(.22,1,.36,1) 160ms;
}
.process-cta__leaf::before {
  content: "";
  position: absolute;
  inset: 12% 48% 10% auto;
  width: 3px;
  border-radius: 99px;
  background: linear-gradient(180deg, rgba(255,255,255,0.45), rgba(255,255,255,0.05));
  transform: rotate(20deg);
}
.process-cta__leaf::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: url("../images/Process-chain/11-cta-leaf.png") center / cover;
  opacity: 0.16;
  mix-blend-mode: screen;
}
.process-cta__leaf span {
  position: relative;
  z-index: 2;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: clamp(24px, 2.25vw, 28px);
  font-weight: 700;
  line-height: 1.05;
  text-align: center;
  opacity: 0;
  transform: rotate(-10deg);
  transition: opacity 600ms cubic-bezier(.22,1,.36,1) 420ms;
}
.reveal.is-visible .process-cta__content {
  opacity: 1;
  transform: translateY(0);
}
.reveal.is-visible .process-cta__leaf {
  opacity: 1;
  transform: translateY(-50%) translateX(0) rotate(10deg);
}
.reveal.is-visible .process-cta__leaf span {
  opacity: 1;
}
.process-chain-page .process-remediation-section {
  padding: clamp(4rem, 7vw, 6.25rem) 0;
  background: #FAF9F5;
}
.process-chain-page .process-remediation-section .container {
  width: calc(100% - 64px);
  max-width: 1600px;
}
.process-chain-page .process-remediation-cta {
  position: relative;
  min-height: 550px;
  max-width: 1600px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 28px;
  background: #EEF1E6;
  box-shadow: 0 22px 70px rgba(36, 60, 42, 0.10);
  isolation: isolate;
}
.process-chain-page .process-remediation-cta__shape {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 2;
  width: 68%;
  height: 100%;
  fill: #EEF1E6;
  pointer-events: none;
}
.process-chain-page .process-remediation-cta__panel {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 3;
  width: 54%;
  display: flex;
  align-items: center;
  background: transparent;
}
.process-chain-page .process-remediation-cta__contours {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #6E875F;
  stroke-width: 1.1;
  opacity: 0.075;
  pointer-events: none;
}
.process-chain-page .process-remediation-cta__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 690px;
  padding-left: 10px;
}
.process-chain-page .process-remediation-cta__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 2rem;
  color: #567653;
  font-family: var(--font-head);
  font-size: clamp(12px, 0.85vw, 14px);
  font-weight: 500;
  letter-spacing: 2px;
  line-height: 1.2;
}
.process-chain-page .process-remediation-cta__eyebrow::before {
  content: "";
  width: 28px;
  height: 3px;
  border-radius: 999px;
  background: #5F8A56;
  flex: 0 0 auto;
}
.process-chain-page .process-remediation-cta h2 {
  max-width: 680px;
  margin: 0 0 1.1rem;
  color: #123B27;
  font-family: var(--font-head);
  font-size: clamp(44px, 3.45vw, 64px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.035em;
}
.process-chain-page .process-remediation-cta h2 span {
  color: #809F60;
  font-weight: inherit;
}
.process-chain-page .process-remediation-cta__content > p:not(.process-remediation-cta__steps) {
  max-width: 620px;
  margin: 0;
  color: #244C35;
  font-size: clamp(17px, 1.05vw, 19px);
  font-weight: 400;
  line-height: 1.65;
}
.process-chain-page .process-remediation-cta__button {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  min-height: 66px;
  margin-top: 2.5rem;
  padding: 0.55rem 0.55rem 0.55rem 2.1rem;
  border-radius: 999px;
  background: #073D25;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 14px 34px rgba(7, 61, 37, 0.24);
}
.process-chain-page .process-remediation-cta__button:hover,
.process-chain-page .process-remediation-cta__button:focus-visible {
  color: #ffffff;
  transform: translateY(-2px);
}
.process-chain-page .process-remediation-cta__button-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #AADD68;
  color: #073D25;
  font-size: 24px;
  line-height: 1;
  transition: transform var(--t-fast);
}
.process-chain-page .process-remediation-cta__button:hover .process-remediation-cta__button-icon,
.process-chain-page .process-remediation-cta__button:focus-visible .process-remediation-cta__button-icon {
  transform: translateX(4px);
}
.process-chain-page .process-remediation-cta__steps {
  margin: 1.95rem 0 0;
  color: rgba(64, 103, 67, 0.58);
  font-family: var(--font-head);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.02em;
  word-spacing: 0.38rem;
}
.process-chain-page .process-remediation-cta__steps span {
  margin: 0 0.55rem;
  color: rgba(64, 103, 67, 0.48);
}
.process-chain-page .process-remediation-cta__photo {
  position: absolute;
  inset: 0 0 0 44%;
  z-index: 1;
  overflow: hidden;
  background: #D9E6CA;
}
.process-chain-page .process-remediation-cta__photo img {
  position: absolute;
  inset: -15px;
  width: calc(100% + 30px);
  height: calc(100% + 30px);
  max-width: none;
  object-fit: cover;
  object-position: 50% center;
  transform: translate3d(var(--cta-photo-x, 0), var(--cta-photo-y, 0), 0) scale(1.02);
  transition: transform 800ms cubic-bezier(.22,1,.36,1);
  will-change: transform;
}
.process-chain-page .process-remediation-cta__mobile-wave {
  display: none;
}
.process-chain-page .process-remediation-cta__badge {
  position: absolute;
  right: 32px;
  bottom: 32px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  min-width: min(360px, calc(100% - 64px));
  padding: 1.45rem 1.55rem;
  border-radius: 20px;
  background: rgba(4, 57, 33, 0.78);
  color: #ffffff;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(10px);
}
.process-chain-page .process-remediation-cta__badge svg {
  width: 45px;
  height: 45px;
  fill: none;
  stroke: rgba(255, 255, 255, 0.78);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.process-chain-page .process-remediation-cta__badge > span {
  width: 1px;
  align-self: stretch;
  min-height: 48px;
  background: rgba(255, 255, 255, 0.22);
}
.process-chain-page .process-remediation-cta__badge p {
  margin: 0;
  color: #ffffff;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.35;
}
.js-motion .process-chain-page .process-remediation-cta [data-cta-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 720ms cubic-bezier(.22,1,.36,1), transform 720ms cubic-bezier(.22,1,.36,1);
  transition-delay: var(--cta-reveal-delay, 0ms);
}
.js-motion .process-chain-page .process-remediation-cta.is-visible [data-cta-reveal] {
  opacity: 1;
  transform: translateY(0);
}
.process-chain-page .process-remediation-cta [data-cta-reveal]:nth-child(1) { --cta-reveal-delay: 0ms; }
.process-chain-page .process-remediation-cta [data-cta-reveal]:nth-child(2) { --cta-reveal-delay: 100ms; }
.process-chain-page .process-remediation-cta [data-cta-reveal]:nth-child(3) { --cta-reveal-delay: 180ms; }
.process-chain-page .process-remediation-cta [data-cta-reveal]:nth-child(4) { --cta-reveal-delay: 260ms; }
.process-chain-page .process-remediation-cta [data-cta-reveal]:nth-child(5) { --cta-reveal-delay: 340ms; }
@keyframes processFloat {
  from { transform: translateY(0); }
  to { transform: translateY(-12px); }
}
@keyframes processHeroFloat {
  from { transform: translateY(-6px); }
  to { transform: translateY(6px); }
}
@keyframes processCardFloat {
  from { transform: translateY(-3px) scale(0.98); }
  to { transform: translateY(5px) scale(1); }
}
@keyframes scrollDot {
  0%, 100% { transform: translate(-50%, 0); opacity: 0.35; }
  50% { transform: translate(-50%, 14px); opacity: 1; }
}

/* process timeline */
.timeline { position: relative; padding-block: 1rem; }
.timeline::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 27px;
  width: 3px;
  background: linear-gradient(180deg, var(--clr-accent), var(--clr-sky));
  border-radius: 2px;
}
.timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 1.4rem;
  padding-block: 1.1rem;
}
.timeline-item__dot {
  position: relative;
  z-index: 1;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--clr-accent);
  display: grid;
  place-items: center;
  box-shadow: var(--shadow-sm);
  transition: transform var(--t-med), background var(--t-med);
}
.timeline-item:hover .timeline-item__dot { transform: scale(1.1); background: #E8F5E9; }
.timeline-item__dot img { width: 26px; height: 26px; }
.timeline-item__body h3 { margin-bottom: 0.25rem; }
.timeline-item__body .step-no {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-sky);
}
.timeline-item__body p { color: var(--clr-muted); margin: 0; max-width: 640px; }

/* before / after comparison */
.compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.4rem;
}
.compare figure { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-md); }
.compare img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease); }
.compare figure:hover img { transform: scale(1.05); }
.compare figcaption {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
}
.compare figcaption.good { background: rgba(27, 94, 32, 0.85); }

/* ------------------------------------------- 9. cards & media ---- */

/* product page */
.product-page {
  --product-ink: #121827;
  --product-green: #1f8f3b;
  --product-green-soft: #63b85b;
  --product-blue: #dff5ff;
  background: #ffffff;
}
.product-page .site-header {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 12px 36px rgba(10, 35, 22, 0.08);
  backdrop-filter: blur(16px);
}
.product-page .site-header .logo-light {
  display: none;
}
.product-page .site-header .logo-dark {
  display: block;
}
.product-page .nav-list a:not(.btn) {
  color: var(--product-ink);
  text-shadow: none;
}
.product-page .nav-list a:not(.btn):hover,
.product-page .nav-list a.active:not(.btn) {
  color: var(--product-green);
}
.product-page .nav-toggle .bar {
  background: var(--product-ink);
}
.product-hero {
  position: relative;
  min-height: clamp(590px, 76vh, 760px);
  display: flex;
  align-items: center;
  padding: calc(var(--nav-h) + 72px) 0 96px;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(232, 248, 255, 0.84) 0%, rgba(249, 253, 251, 0.95) 58%, #ffffff 100%),
    url("../images/products/22-sky-bg.jpg") center top / cover;
}
.product-hero::after {
  content: "";
  position: absolute;
  left: -5%;
  right: -5%;
  bottom: -2px;
  height: 112px;
  background: #ffffff;
  clip-path: ellipse(60% 42% at 50% 100%);
  z-index: -1;
}
.product-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 84% 22%, rgba(99, 184, 91, 0.16), transparent 24%),
    radial-gradient(circle at 14% 72%, rgba(31, 143, 59, 0.08), transparent 20%),
    linear-gradient(115deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.22) 100%);
  opacity: 1;
}
.product-hero__bg::before,
.product-hero__bg::after {
  content: "";
  position: absolute;
  width: 118px;
  height: 72px;
  border-radius: 100% 0 100% 0;
  background: rgba(99, 184, 91, 0.16);
  transform: rotate(-24deg);
}
.product-hero__bg::before {
  left: 7%;
  bottom: 18%;
}
.product-hero__bg::after {
  right: 10%;
  top: 18%;
  width: 92px;
  height: 56px;
  transform: rotate(22deg);
}
.product-hero .container {
  display: grid;
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
  gap: 2.2rem;
}
.product-hero__content {
  max-width: 800px;
  text-align: center;
}
.product-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.72rem;
  margin-bottom: 1.1rem;
  color: #167634;
  font-family: var(--font-head);
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  justify-content: center;
}
.product-eyebrow::before {
  content: "";
  width: 36px;
  height: 2px;
  border-radius: 99px;
  background: var(--product-green-soft);
}
.product-hero h1 {
  margin-bottom: 0.22em;
  color: var(--product-ink);
  font-size: clamp(3.4rem, 8vw, 6.2rem);
  line-height: 0.98;
  letter-spacing: -0.05em;
  font-weight: 600;
}
.product-hero h1 span {
  color: var(--product-green);
}
.product-hero__lead {
  max-width: 720px;
  margin-inline: auto;
  margin-bottom: 1.15rem;
  color: var(--product-ink);
  /* font-family: var(--font-head); */
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  font-weight: 400;
  line-height: 1.42;
}
.product-hero__copy {
  max-width: 660px;
  margin-inline: auto;
  margin-bottom: 2.2rem;
  color: #52605b;
  font-size: clamp(1rem, 1.3vw, 1.12rem);
  line-height: 1.85;
}
.product-hero__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.product-hero__actions .btn {
  height: 58px;
  min-height: 58px;
  padding: 0 32px;
  border-radius: 999px;
  box-shadow: 0 20px 42px rgba(31, 143, 59, 0.24);
}
.product-hero__actions .btn span,
.product-card__link span {
  display: inline-block;
  transition: transform var(--t-fast);
}
.product-hero__actions .btn:hover span,
.product-card__link:hover span { transform: translateX(4px); }
.product-hero__features {
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(0, 331px));
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  margin-top: 0.4rem;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(27, 94, 32, 0.08);
  box-shadow: 0 22px 70px rgba(15, 68, 36, 0.08);
  backdrop-filter: blur(10px);
}
.product-feature {
  display: grid;
  grid-template-columns: 52px 1fr;
  align-items: center;
  gap: 1rem;
  padding: 18px 24px;
}
.product-feature + .product-feature {
  border-left: 1px solid rgba(27, 94, 32, 0.1);
}
.product-feature span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(31, 143, 59, 0.1);
}
.product-feature img {
  width: 25px;
  height: 25px;
}
.product-feature strong {
  color: var(--product-ink);
  font-family: var(--font-head);
  font-size: 0.95rem;
  line-height: 1.18;
  font-weight: 500;
}
.product-showcase {
  padding-top: clamp(2.5rem, 5vw, 4.5rem);
  background: #ffffff;
}
.product-showcase .section-head {
  max-width: 850px;
}
.product-showcase .section-head h2 {
  color: var(--product-ink);
  font-size: clamp(2rem, 4vw, 3.15rem);
  letter-spacing: -0.035em;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.35rem, 2.3vw, 2rem);
}
.product-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(27, 94, 32, 0.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(13, 46, 28, 0.08);
  transition: transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
}
.product-card:hover {
  transform: translateY(-8px);
  border-color: rgba(76, 175, 80, 0.26);
  box-shadow: 0 30px 72px rgba(13, 46, 28, 0.14);
}
.product-card__media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #eef7ef;
}
.product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 760ms var(--ease), filter 760ms var(--ease);
}
.product-card:hover .product-card__media img {
  transform: scale(1.065);
  filter: saturate(1.04);
}
.product-card__body {
  position: relative;
  min-height: 230px;
  display: flex;
  flex-direction: column;
  padding: 3.1rem 1.65rem 1.65rem;
}
.product-card__icon {
  position: absolute;
  top: -36px;
  left: 1.45rem;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffffff 0%, #e8f8ec 100%);
  border: 1px solid rgba(31, 143, 59, 0.16);
  box-shadow: 0 18px 34px rgba(27, 94, 32, 0.14);
}
.product-card__icon img {
  width: 32px;
  height: 32px;
}
.product-card__body h3 {
  margin-bottom: 0.65rem;
  color: var(--product-ink);
  font-size: clamp(1.15rem, 1.45vw, 1.32rem);
  line-height: 1.28;
  letter-spacing: -0.02em;
}
.product-card__body p {
  color: #5c6870;
  font-size: 0.98rem;
  line-height: 1.72;
  margin: 0 0 1.2rem;
}
.product-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  width: fit-content;
  margin-top: auto;
  color: var(--product-green);
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 0.96rem;
}
.product-benefits-section {
  padding: 0 0 clamp(2.8rem, 5vw, 4.4rem);
  background: #ffffff;
}
.product-benefits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-radius: 20px;
  background: linear-gradient(90deg, rgba(240, 250, 243, 0.98), rgba(255,255,255,0.94), rgba(240,250,243,0.98));
  border: 1px solid rgba(27, 94, 32, 0.08);
  box-shadow: 0 18px 50px rgba(12, 48, 28, 0.07);
  overflow: hidden;
}
.product-benefit {
  min-height: 178px;
  display: grid;
  justify-items: center;
  align-content: center;
  text-align: center;
  padding: 1.9rem 1.4rem;
}
.product-benefit + .product-benefit {
  border-left: 1px solid rgba(27, 94, 32, 0.14);
}
.product-benefit img {
  width: 40px;
  height: 40px;
  margin-bottom: 0.9rem;
}
.product-benefit h3 {
  max-width: 180px;
  margin-bottom: 0.35rem;
  color: var(--product-ink);
  font-size: 1.15rem;
  line-height: 1.18;
}
.product-benefit p {
  margin: 0;
  color: #61716c;
  font-size: 0.95rem;
}
.product-page .process-cta::before {
  background:
    linear-gradient(90deg, rgba(5,55,27,.96) 0%, rgba(8,70,34,.88) 42%, rgba(10,90,45,.58) 72%, rgba(15,95,50,.38) 100%),
    url("../images/products/18-cta-bg.jpg") center / cover;
}
.product-page .process-cta::after {
  display: none;
}
.product-page .process-cta h2 {
  font-weight: 500;
}
.product-page .process-cta {
  grid-template-columns: minmax(0, 760px);
}
.product-page .process-cta__content {
  max-width: 760px;
}
.product-page .process-cta__leaf {
  display: none;
}
.product-page .process-cta__leaf::after {
  background-image: url("../images/products/19-cta-leaf.png");
}

/* testimonials */
.testi-wrap { position: relative; max-width: 860px; margin-inline: auto; }
.testi-track { position: relative; min-height: 240px; }
.testi-card {
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  padding: clamp(1.6rem, 4vw, 2.6rem);
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity 600ms var(--ease), transform 600ms var(--ease), visibility 600ms;
}
.testi-card.active { opacity: 1; visibility: visible; transform: none; position: relative; }
.testi-card blockquote {
  margin: 0 0 1.2rem;
  font-size: clamp(1rem, 1.9vw, 1.15rem);
  font-style: italic;
  color: #37474F;
}
.testi-card blockquote::before { content: "\201C"; color: var(--clr-accent); font-size: 1.6em; line-height: 0; }
.testi-card .testi-who { font-family: var(--font-head); font-weight: 700; }
.testi-card .testi-role { color: var(--clr-muted); font-size: 0.88rem; }
.testi-nav { display: flex; justify-content: center; gap: 0.7rem; margin-top: 1.4rem; }
.testi-nav button {
  width: 42px; height: 42px;
  border-radius: 50%;
  border: 1.5px solid var(--clr-primary);
  background: transparent;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background var(--t-fast);
}
.testi-nav button:hover { background: var(--clr-primary); }
.testi-nav button:hover img { filter: brightness(0) invert(1); }
.testi-nav img { width: 18px; height: 18px; }
.testi-nav .next img { transform: rotate(180deg); }

/* media gallery + filters */
.filter-tabs { display: flex; justify-content: center; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 2.2rem; }
.filter-tabs button {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.55rem 1.4rem;
  border-radius: 999px;
  border: 1.5px solid #cfd8cf;
  background: #fff;
  color: var(--clr-text);
  cursor: pointer;
  transition: all var(--t-fast);
}
.filter-tabs button:hover { border-color: var(--clr-accent); color: var(--clr-primary); }
.filter-tabs button.active { background: var(--clr-primary); border-color: var(--clr-primary); color: #fff; }

.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.gallery-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  cursor: zoom-in;
  border: 0;
  padding: 0;
  background: none;
  display: block;
  width: 100%;
  box-shadow: var(--shadow-sm);
  transition: transform var(--t-med), box-shadow var(--t-med), opacity var(--t-fast);
}
.gallery-item:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 700ms var(--ease); }
.gallery-item:hover img { transform: scale(1.06); }
.gallery-item figcaption,
.gallery-item .cap {
  position: absolute;
  inset: auto 0 0 0;
  padding: 2.2rem 1rem 0.9rem;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.72));
  color: #fff;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.92rem;
  text-align: left;
}
.gallery-item.is-hidden { display: none; }
.gallery-item .play-overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.gallery-item .play-overlay span {
  width: 58px; height: 58px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  border: 2px solid #fff;
  display: grid;
  place-items: center;
  backdrop-filter: blur(3px);
}
.gallery-item .play-overlay img { width: 22px; height: 22px; filter: brightness(0) invert(1); }

/* lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(8, 14, 9, 0.92);
  padding: 2rem;
}
.lightbox.open { display: flex; }
.lightbox img, .lightbox video {
  max-width: min(92vw, 1100px);
  max-height: 82vh;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  animation: fadeInUp 350ms var(--ease);
}
.lightbox__caption {
  position: absolute;
  bottom: 1.6rem;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-family: var(--font-head);
  font-weight: 600;
}
.lightbox__close,
.lightbox__prev,
.lightbox__next {
  position: absolute;
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background var(--t-fast);
}
.lightbox__close:hover, .lightbox__prev:hover, .lightbox__next:hover { background: var(--clr-accent); }
.lightbox__close { top: 1.4rem; right: 1.4rem; }
.lightbox__prev { left: 1.4rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 1.4rem; top: 50%; transform: translateY(-50%); }
.lightbox button img { width: 22px; height: 22px; filter: brightness(0) invert(1); }
.lightbox__close img { transform: rotate(45deg); }
.lightbox__next img { transform: rotate(180deg); }

/* jobs / careers */
.job-card {
  background: #fff;
  border: 1px solid #E7EBE4;
  border-radius: var(--radius);
  padding: 1.5rem 1.6rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.4rem 1.4rem;
  align-items: center;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--t-med), transform var(--t-med);
}
.job-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.job-card h3 { margin: 0; }
.job-card .job-meta { display: flex; gap: 1.1rem; color: var(--clr-muted); font-size: 0.88rem; margin-top: 0.25rem; }
.job-card .job-meta span { display: inline-flex; align-items: center; gap: 0.35rem; }
.job-card .job-meta img { width: 15px; height: 15px; }
.job-card p.job-desc { grid-column: 1 / -1; color: var(--clr-muted); margin: 0.5rem 0 0; font-size: 0.93rem; }

/* contact page */
.contact-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 2rem; align-items: start; }
.info-card {
  background: var(--clr-primary);
  color: #fff;
  border-radius: var(--radius);
  padding: 2rem 1.8rem;
  box-shadow: var(--shadow-lg);
}
.info-card h3 { color: #fff; }
.info-item { display: flex; gap: 0.9rem; padding: 0.8rem 0; border-bottom: 1px solid rgba(255,255,255,0.14); }
.info-item:last-of-type { border-bottom: 0; }
.info-item img { width: 22px; height: 22px; margin-top: 3px; filter: brightness(0) invert(1); flex: none; }
.info-item a { color: #CDEBC8; }
.info-item a:hover { color: #fff; }
.map-embed {
  width: 100%;
  border: 0;
  border-radius: var(--radius-sm);
  margin-top: 1.2rem;
  min-height: 240px;
  filter: saturate(0.85);
}

/* CTA band */
.cta-band {
  background: linear-gradient(120deg, var(--clr-primary), var(--clr-accent));
  border-radius: var(--radius);
  color: #fff;
  padding: clamp(2rem, 5vw, 3.4rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  flex-wrap: wrap;
  box-shadow: var(--shadow-lg);
}
.cta-band h2 { color: #fff; margin: 0; }
.cta-band p { margin: 0.3rem 0 0; color: rgba(255,255,255,0.9); }
.cta-band .btn--ghost { border-color: #fff; }

/* ---------------------------------------------------- 10. footer ---- */
.site-footer {
  background: #102A13;
  color: rgba(255, 255, 255, 0.82);
  padding: 4rem 0 0;
  margin-top: 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 2.4rem;
  padding-bottom: 2.8rem;
}
.footer-col h4 {
  color: #fff;
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 1.1rem;
  position: relative;
  padding-bottom: 0.55rem;
}
.footer-col h4::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 42px; height: 3px;
  border-radius: 2px;
  background: var(--clr-accent);
}
.footer-col ul li { padding: 0.28rem 0; }
.footer-col a { color: rgba(255, 255, 255, 0.82); }
.footer-col a:hover { color: var(--clr-accent); }
.footer-brand img { height: 54px; width: auto; margin-bottom: 0rem; }
.footer-brand p { font-size: 0.93rem; max-width: 300px; }
.footer-contact li {
  display: flex;
  gap: 0.7rem;
  padding: 0.3rem 0;
  align-items: flex-start;
}
.footer-contact img { width: 18px; height: 18px; margin-top: 4px; filter: brightness(0) invert(1); flex: none; }
.social-row { display: flex; gap: 0.7rem; margin-top: 1.2rem; }
.social-row a {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.09);
  display: grid;
  place-items: center;
  transition: background var(--t-fast), transform var(--t-fast);
}
.social-row a:hover { background: var(--clr-accent); transform: translateY(-3px); }
.social-row img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding: 1.3rem 0;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  font-size: 0.87rem;
}
.footer-bottom .tagline { color: var(--clr-accent); font-weight: 600; }

/* back to top */
.to-top {
  position: fixed;
  right: 1.4rem;
  bottom: 1.4rem;
  z-index: 900;
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 0;
  background: var(--clr-accent);
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: var(--shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: all var(--t-med);
}
.to-top.show { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--clr-primary); }
.to-top img { width: 20px; height: 20px; filter: brightness(0) invert(1); transform: rotate(270deg); }

/* -------------------------------------------- 11. breakpoints ---- */
@media (max-width: 1439.98px) {
  :root { --container: 1140px; }
}

@media (max-width: 1023.98px) {
  .stabilize-hero {
    height: 420px;
    min-height: 420px;
  }
  .stabilize-hero__image {
    object-position: 56% 60%;
  }
  .stabilize-hero__content.container {
    width: min(100% - 48px, 860px);
  }
  .stabilize-hero h1 {
    font-size: clamp(44px, 6.2vw, 56px);
  }
  .stabilize-showcase {
    padding: 72px 0;
  }
  .stabilize-showcase__grid {
    width: min(100% - 48px, 860px);
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }
  .stabilize-showcase h2 {
    max-width: 680px;
    margin-bottom: 28px;
    font-size: clamp(34px, 5vw, 42px);
  }
  .stabilize-showcase__nav {
    display: flex;
    gap: 18px;
    margin-inline: -24px;
    width: calc(100% + 48px);
    padding: 0 24px 8px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scroll-padding-inline: 24px;
  }
  .stabilize-showcase__nav button {
    flex: 0 0 min(260px, 78vw);
    grid-template-columns: 32px minmax(0, 1fr) 20px;
    min-height: 56px;
    padding: 12px 0;
  }
  .product-hero {
    min-height: auto;
    padding: calc(var(--nav-h) + 56px) 0 92px;
  }
  .product-hero .container {
    justify-content: center;
  }
  .product-hero__content {
    max-width: 760px;
    text-align: center;
    margin-inline: auto;
  }
  .product-eyebrow {
    justify-content: center;
  }
  .product-hero__lead,
  .product-hero__copy {
    margin-inline: auto;
  }
  .product-hero__actions {
    justify-content: center;
  }
  .product-hero__features {
    margin-inline: auto;
  }
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-benefit:nth-child(3) {
    border-left: 0;
  }
  .product-benefit:nth-child(n+3) {
    border-top: 1px solid rgba(27, 94, 32, 0.14);
  }
  .process-hero__grid {
    text-align: center;
    width: calc(100% - 48px);
  }
  .process-hero__content {
    max-width: 760px;
    margin-inline: auto;
  }
  .process-hero__lead,
  .process-hero__text {
    margin-inline: auto;
  }
  .process-hero__actions {
    justify-content: center;
  }
  .process-hero__dots,
  .process-hero__scroll {
    display: none;
  }
  .process-step {
    grid-template-columns: minmax(0, 1fr) 70px minmax(0, 1fr);
    gap: 1.2rem;
  }
  .process-step__image {
    aspect-ratio: 16 / 8.8;
  }
  .process-benefits__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .process-benefit:nth-child(3) {
    border-left: 0;
    border-top: 1px solid rgba(11, 61, 36, 0.12);
  }
  .process-benefit:nth-child(4) {
    border-top: 1px solid rgba(11, 61, 36, 0.12);
  }
  .process-chain-page .process-remediation-section .container {
    width: calc(100% - 48px);
  }
  .process-chain-page .process-remediation-cta {
    min-height: 500px;
  }
  .process-chain-page .process-remediation-cta__panel {
    width: 56%;
  }
  .process-chain-page .process-remediation-cta__shape {
    width: 72%;
  }
  .process-chain-page .process-remediation-cta__content {
    padding: 3rem 5.5rem 3rem 2.4rem;
  }
  .process-chain-page .process-remediation-cta__eyebrow {
    gap: 0.7rem;
    margin-bottom: 1.5rem;
    font-size: 11px;
    letter-spacing: 1.6px;
  }
  .process-chain-page .process-remediation-cta h2 {
    font-size: clamp(32px, 4.45vw, 44px);
    letter-spacing: -0.03em;
  }
  .process-chain-page .process-remediation-cta__content > p:not(.process-remediation-cta__steps) {
    max-width: 440px;
    font-size: 15px;
  }
  .process-chain-page .process-remediation-cta__button {
    min-height: 58px;
    margin-top: 1.8rem;
    padding-left: 1.65rem;
    font-size: 15px;
  }
  .process-chain-page .process-remediation-cta__button-icon {
    width: 42px;
    height: 42px;
    font-size: 21px;
  }
  .process-chain-page .process-remediation-cta__steps {
    margin-top: 1.45rem;
    font-size: 14px;
    word-spacing: 0.2rem;
  }
  .process-chain-page .process-remediation-cta__badge {
    right: 20px;
    bottom: 20px;
    min-width: min(300px, calc(100% - 40px));
    padding: 1.05rem 1rem;
    gap: 0.9rem;
  }
  .process-chain-page .process-remediation-cta__badge svg {
    width: 36px;
    height: 36px;
  }
  .process-chain-page .process-remediation-cta__badge p {
    font-size: 14px;
  }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .segment-strip .grid { grid-template-columns: repeat(2, 1fr); }
  .segment-strip .container { width: min(100% - 3rem, 860px); }
  .segment-card {
    min-height: 360px;
  }
  .segment-card__text {
    max-width: 74%;
  }
  .segment-card p {
    max-width: 13.5rem;
  }
  .segment-card:nth-child(3) .segment-card__visual,
  .segment-card:nth-child(4) .segment-card__visual {
    width: 46%;
    height: 24%;
  }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; }
  .split__media { order: -1; max-width: 640px; }
  .about-premium {
    min-height: auto;
  }
  .about-premium__grid {
    grid-template-columns: 1fr;
    width: min(100% - 3rem, 860px);
  }
  .about-premium__content {
    max-width: 760px;
  }
  .about-premium__media {
    min-height: auto;
  }
  .about-image-card {
    width: min(100%, 760px);
  }
  .hero { min-height: 560px; }
  .hero-slide__content {
    width: min(100% - 2.5rem, 820px);
    margin-left: 1.25rem;
  }
}

@media (max-width: 767.98px) {
  :root { --nav-h: 66px; }
  .stabilize-hero {
    height: auto;
    min-height: 400px;
    align-items: center;
  }
  .stabilize-hero__image {
    object-position: 62% 60%;
  }
  .stabilize-hero__overlay {
    background:
      linear-gradient(90deg, rgba(3, 15, 8, 0.84) 0%, rgba(7, 25, 14, 0.66) 52%, rgba(8, 30, 17, 0.24) 100%),
      linear-gradient(180deg, rgba(3, 10, 6, 0.26) 0%, rgba(3, 10, 6, 0.08) 44%, rgba(3, 10, 6, 0.22) 100%);
  }
  .stabilize-hero__content.container {
    width: min(100% - 40px, 620px);
    padding-top: calc(var(--nav-h) + 22px);
    padding-bottom: 42px;
  }
  .stabilize-hero__eyebrow {
    margin-bottom: 14px;
    font-size: 11px;
    letter-spacing: 0.16em;
  }
  .stabilize-hero h1 {
    font-size: clamp(36px, 10.5vw, 42px);
    line-height: 1.08;
  }
  .stabilize-hero__accent {
    width: 42px;
    height: 3px;
    margin: 18px 0 14px;
  }
  .stabilize-hero__lead {
    max-width: 32rem;
    font-size: 16px;
  }
  .stabilize-showcase {
    padding: 62px 0;
  }
  .stabilize-showcase__grid {
    width: min(100% - 40px, 620px);
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .stabilize-showcase__eyebrow {
    margin-bottom: 18px;
    font-size: 11px;
  }
  .stabilize-showcase h2 {
    font-size: clamp(30px, 8.8vw, 36px);
  }
  .stabilize-showcase__nav {
    margin-inline: -20px;
    width: calc(100% + 40px);
    padding-inline: 20px;
    scroll-padding-inline: 20px;
  }
  .stabilize-showcase__nav button {
    flex-basis: min(238px, 76vw);
    font-size: 15px;
  }
  .stabilize-showcase__media {
    margin-bottom: 24px;
    border-radius: 4px;
  }
  .stabilize-showcase__caption {
    grid-template-columns: 1fr;
    gap: 10px;
    min-height: 178px;
  }
  .stabilize-showcase__caption h3 {
    margin-top: 0;
    font-size: clamp(24px, 7vw, 30px);
  }
  .stabilize-showcase__caption p:not(.stabilize-showcase__stage) {
    font-size: 15px;
  }
  .stabilize-showcase__stage {
    font-size: 56px;
  }
  .stabilize-showcase__footer {
    align-items: flex-start;
    gap: 18px;
  }
  .stabilize-showcase__progress {
    grid-template-columns: repeat(6, minmax(24px, 1fr));
    flex: 1 1 auto;
    max-width: 230px;
  }
  .stabilize-showcase__controls button {
    width: 40px;
    height: 40px;
  }
  .product-hero {
    padding: calc(var(--nav-h) + 46px) 0 72px;
  }
  .product-hero .container {
    width: min(100% - 2rem, 620px);
  }
  .product-hero h1 {
    font-size: clamp(3rem, 15vw, 4.35rem);
  }
  .product-hero__lead {
    font-size: clamp(1.08rem, 4.5vw, 1.3rem);
  }
  .product-hero__copy {
    font-size: 0.98rem;
    line-height: 1.75;
  }
  .product-hero__actions .btn {
    width: 100%;
    justify-content: center;
  }
  .product-hero__features {
    width: 100%;
    grid-template-columns: 1fr;
    border-radius: 22px;
  }
  .product-feature {
    grid-template-columns: 48px 1fr;
    padding: 16px 18px;
    text-align: left;
  }
  .product-feature + .product-feature {
    border-left: 0;
    border-top: 1px solid rgba(27, 94, 32, 0.1);
  }
  .product-showcase {
    padding-top: 2.8rem;
  }
  .product-grid {
    grid-template-columns: 1fr;
  }
  .product-card {
    border-radius: 16px;
  }
  .product-card__body {
    min-height: auto;
  }
  .product-benefits {
    grid-template-columns: 1fr;
    border-radius: 18px;
  }
  .product-benefit {
    min-height: auto;
    padding: 1.55rem 1.2rem;
  }
  .product-benefit + .product-benefit,
  .product-benefit:nth-child(n+3) {
    border-left: 0;
    border-top: 1px solid rgba(27, 94, 32, 0.14);
  }
  .process-hero {
    min-height: 100svh;
    padding: 110px 0 3.5rem;
  }
  .process-hero__grid {
    width: calc(100% - 40px);
  }
  .process-hero h1 {
    font-size: clamp(42px, 12vw, 48px);
  }
  .process-hero__lead {
    font-size: 18px;
  }
  .process-hero__actions {
    align-items: stretch;
  }
  .process-hero__actions .btn,
  .process-play {
    width: 100%;
    justify-content: center;
  }
  .process-intro {
    padding-top: 3rem;
  }
  .process-chain-timeline {
    gap: 2.4rem;
    padding-left: 3.6rem;
  }
  .process-chain-timeline::before,
  .process-chain-timeline::after {
    left: 1.8rem;
  }
  .process-step,
  .process-step--reverse {
    grid-template-columns: 1fr;
    gap: 0.9rem;
  }
  .process-step__image,
  .process-step--reverse .process-step__image {
    grid-column: 1;
    grid-row: auto;
    aspect-ratio: 16 / 9;
  }
  .process-step__card,
  .process-step--reverse .process-step__card {
    grid-column: 1;
    grid-row: auto;
  }
  .process-step__node {
    position: absolute;
    left: -3.55rem;
    top: 1.2rem;
    width: 48px;
    height: 48px;
    font-size: 0.88rem;
  }
  .process-step__icon {
    width: 56px;
    height: 56px;
  }
  .process-step__icon img {
    width: 28px;
    height: 28px;
  }
  .process-step__card h3 {
    margin-right: 3.5rem;
  }
  .process-benefits__grid {
    grid-template-columns: 1fr;
  }
  .process-benefit + .process-benefit {
    border-left: 0;
    border-top: 1px solid rgba(11, 61, 36, 0.12);
  }
  .process-cta {
    height: auto;
    min-height: 520px;
    grid-template-columns: 1fr;
    padding: 38px 28px;
  }
  .process-cta h2 {
    font-size: clamp(34px, 10vw, 38px);
  }
  .process-cta__leaf {
    position: relative;
    right: auto;
    top: auto;
    width: clamp(230px, 68vw, 260px);
    height: clamp(250px, 72vw, 285px);
    margin: 30px auto 0;
    transform: rotate(6deg);
  }
  .reveal.is-visible .process-cta__leaf {
    transform: rotate(6deg);
  }
  .process-cta__leaf span {
    font-size: clamp(20px, 6vw, 22px);
    transform: rotate(-6deg);
  }
  .process-chain-page .process-remediation-section {
    padding: 3rem 0;
  }
  .process-chain-page .process-remediation-section .container {
    width: calc(100% - 32px);
  }
  .process-chain-page .process-remediation-cta {
    min-height: 0;
    display: flex;
    flex-direction: column;
    border-radius: 24px;
  }
  .process-chain-page .process-remediation-cta__panel {
    position: relative;
    inset: auto;
    width: 100%;
    min-height: auto;
    display: block;
    background: #EEF1E6;
    order: 1;
  }
  .process-chain-page .process-remediation-cta__shape {
    display: none;
  }
  .process-chain-page .process-remediation-cta__content {
    max-width: none;
    padding: 24px 24px 34px;
  }
  .process-chain-page .process-remediation-cta__contours {
    opacity: 0.06;
  }
  .process-chain-page .process-remediation-cta__eyebrow {
    margin-bottom: 1.15rem;
    font-size: 11px;
    letter-spacing: 1.55px;
  }
  .process-chain-page .process-remediation-cta__eyebrow::before {
    width: 24px;
    height: 2px;
  }
  .process-chain-page .process-remediation-cta h2 {
    font-size: clamp(32px, 9vw, 38px);
    line-height: 1.08;
    letter-spacing: -0.025em;
  }
  .process-chain-page .process-remediation-cta__content > p:not(.process-remediation-cta__steps) {
    max-width: 100%;
    font-size: 16px;
    line-height: 1.65;
  }
  .process-chain-page .process-remediation-cta__button {
    min-height: 56px;
    margin-top: 1.6rem;
    padding: 0.45rem 0.45rem 0.45rem 1.45rem;
    gap: 1rem;
    font-size: 15px;
  }
  .process-chain-page .process-remediation-cta__button-icon {
    width: 42px;
    height: 42px;
  }
  .process-chain-page .process-remediation-cta__steps {
    margin-top: 1.35rem;
    font-size: 13px;
    word-spacing: 0.12rem;
  }
  .process-chain-page .process-remediation-cta__photo {
    position: relative;
    inset: auto;
    width: 100%;
    height: 280px;
    order: 2;
  }
  .process-chain-page .process-remediation-cta__photo img {
    inset: 0;
    width: 100%;
    height: 100%;
    transform: none;
    object-position: 50% center;
  }
  .process-chain-page .process-remediation-cta__mobile-wave {
    display: block;
    position: absolute;
    z-index: 3;
    left: 0;
    right: 0;
    top: calc(100% - 281px);
    width: 100%;
    height: 52px;
    fill: #EEF1E6;
    pointer-events: none;
  }
  .process-chain-page .process-remediation-cta__badge {
    right: 16px;
    bottom: 16px;
    min-width: 0;
    width: calc(100% - 32px);
    max-width: 350px;
    padding: 0.95rem 1rem;
    border-radius: 16px;
  }
  .process-chain-page .process-remediation-cta__badge > span {
    min-height: 38px;
  }
  .process-chain-page .process-remediation-cta__badge p {
    font-size: 14px;
  }
  .brand img { height: 44px; }
  .site-header.scrolled .brand img { height: 40px; }
  .grid-3, .grid-4, .grid-2, .compare, .form-grid--2 { grid-template-columns: 1fr; }
  .segment-strip .grid { grid-template-columns: repeat(2, 1fr); }
  .segment-strip {
    padding-block: 3rem;
  }
  .segment-strip .container {
    width: min(100% - 2rem, 720px);
  }
  .segment-card {
    min-height: 340px;
    padding: 1.35rem;
  }
  .segment-card__text {
    max-width: 78%;
  }
  .segment-card h3 {
    font-size: 1.35rem;
  }
  .segment-card p {
    font-size: 0.98rem;
    max-width: 13rem;
  }
  .segment-card:nth-child(3) .segment-card__visual,
  .segment-card:nth-child(4) .segment-card__visual {
    width: 48%;
    height: 23%;
  }
  .segment-strip { margin-top: 0; }
  .about-premium__grid {
    width: min(100% - 2rem, 620px);
    padding-block: 4rem;
  }
  .about-premium h2 {
    font-size: clamp(2.35rem, 10vw, 3.5rem);
  }
  .about-premium__content p {
    font-size: 1rem;
  }
  .about-feature {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 0.9rem;
  }
  .about-feature__icon {
    width: 50px;
    height: 50px;
  }
  .about-premium__media {
    padding-top: 2.5rem;
  }
  .about-badge {
    top: -12px;
    right: -4px;
    width: 128px;
    height: 128px;
  }
  .about-badge img {
    width: 28px;
    height: 28px;
    margin-bottom: 0.45rem;
  }
  .about-impact {
    left: 5%;
    bottom: 5%;
    min-width: 82%;
    gap: 0.8rem;
    padding: 0.8rem 0.9rem;
  }
  .about-impact__icon {
    width: 52px;
    height: 52px;
  }
  .about-script {
    bottom: 30%;
  }
  .page-banner { min-height: 38vh; }
  .job-card { grid-template-columns: 1fr; }
  .job-card .btn { justify-self: start; }
  .hero {
    min-height: 620px;
    height: 100svh;
  }
  .hero-media::after {
    background:
      linear-gradient(90deg, rgba(3, 9, 7, 0.86) 0%, rgba(3, 9, 7, 0.64) 58%, rgba(3, 9, 7, 0.28) 100%),
      linear-gradient(180deg, rgba(4, 10, 9, 0.55) 0%, rgba(4, 10, 9, 0.12) 38%, rgba(4, 10, 9, 0.72) 100%);
  }
  .hero-slide__content {
    width: min(100% - 2rem, 560px);
    margin-inline: auto;
    padding-top: 3.4rem;
  }
  .hero-kicker {
    gap: 0.55rem;
    letter-spacing: 0.16em;
  }
  .hero-kicker::before { width: 2.2rem; }
  .hero-slide .hero-title {
    font-size: clamp(1.9rem, 8vw, 3rem);
    line-height: 1.1;
  }
  .hero-copy {
    font-size: 0.96rem;
    max-width: 30rem;
  }
  .btn--hero {
    min-height: 56px;
    padding: 0.85rem 1.35rem 0.85rem 1.55rem;
  }
  .hero-arrow { width: 40px; height: 40px; }
  .hero-scroll-cue { display: none; }
  .hero-dots { bottom: 1.5rem; }
}

@media (max-width: 479.98px) {
  .product-hero {
    padding-bottom: 58px;
  }
  .product-eyebrow {
    gap: 0.55rem;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
  }
  .product-eyebrow::before {
    width: 28px;
  }
  .product-hero h1 {
    font-size: clamp(2.65rem, 17vw, 3.45rem);
  }
  .product-card__body {
    padding: 2.8rem 1.25rem 1.35rem;
  }
  .product-card__icon {
    left: 1.2rem;
    width: 64px;
    height: 64px;
    top: -32px;
  }
  .product-card__icon img {
    width: 28px;
    height: 28px;
  }
  .segment-strip .grid { grid-template-columns: 1fr; }
  .segment-strip .container {
    width: min(100% - 1.4rem, 420px);
  }
  .segment-card {
    min-height: 300px;
  }
  .segment-card__text {
    max-width: 76%;
  }
  .segment-card__visual {
    width: 52%;
    height: 24%;
  }
  .about-premium__eyebrow {
    letter-spacing: 0.22em;
  }
  .about-premium h2 {
    font-size: clamp(2rem, 11vw, 2.8rem);
  }
  .about-image-card {
    border-radius: 22px;
    aspect-ratio: 0.95 / 1;
  }
  .about-badge {
    width: 108px;
    height: 108px;
  }
  .about-badge strong {
    font-size: 1.35rem;
  }
  .about-badge span {
    font-size: 0.72rem;
  }
  .about-script {
    font-size: 1.55rem;
  }
  .about-impact {
    min-width: 90%;
  }
  .about-impact em {
    font-size: 0.72rem;
  }
  .footer-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .gallery-grid { grid-template-columns: 1fr; }
  .timeline::before { left: 21px; }
  .timeline-item { grid-template-columns: 44px 1fr; gap: 1rem; }
  .timeline-item__dot { width: 44px; height: 44px; }
  .lightbox { padding: 1rem; }
  .lightbox__prev { left: 0.5rem; }
  .lightbox__next { right: 0.5rem; }
  .hero {
    min-height: 590px;
  }
  .hero-slide__content {
    width: min(100% - 1.5rem, 420px);
    padding-top: 4.2rem;
  }
  .hero-kicker {
    font-size: 0.62rem;
    letter-spacing: 0.12em;
  }
  .hero-slide .hero-title {
    font-size: clamp(1.75rem, 9.5vw, 2.45rem);
  }
  .hero-copy {
    font-size: 0.92rem;
  }
}

/* large desktop polish */
@media (min-width: 1440px) {
  :root { --container: 1280px; }
}

/* ----------------------------------------- reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
  .hero-media, .page-banner__bg, .stabilize-hero__image { transform: none !important; }
  .stabilize-hero__eyebrow,
  .stabilize-hero h1 span,
  .stabilize-hero__accent,
  .stabilize-hero__lead {
    opacity: 1 !important;
    transform: none !important;
  }
  .parallax-band { background-attachment: scroll; }
  .hero-slide { transition: opacity 200ms linear; }
  .process-hero__visual,
  .process-loop__ring,
  .process-loop__item,
  .process-leaf,
  .process-remediation-cta__photo img,
  .process-remediation-cta [data-cta-reveal] {
    transform: none !important;
  }
  .process-chain-timeline { --timeline-progress: 1; }
}

/* Compact remediation CTA */
#remediation-cta {
  padding: 48px 20px;
  background: #faf9f5;
  min-height: 0;
  height: auto;
}

#remediation-cta,
#remediation-cta * {
  box-sizing: border-box;
}

#remediation-cta > .container {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding: 0;
}

#remediation-cta .process-remediation-cta {
  position: relative;
  isolation: isolate;
  display: block;
  width: 100%;
  height: auto;
  min-height: 420px;
  overflow: hidden;
  border-radius: 24px;
  background: #eef1e6;
  box-shadow: none;
}

/* Photo sits behind the curved content panel */
#remediation-cta .process-remediation-cta__photo {
  position: absolute;
  inset: 0 0 0 auto;
  width: 60%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  z-index: 0;
}

#remediation-cta .process-remediation-cta__photo img {
  display: block;
  /* width: 100%;
  height: 100%; */
  max-width: none;
  object-fit: cover;
  object-position: 65% center;
  transform: none;
}

/* Existing SVG creates the organic divider */
#remediation-cta .process-remediation-cta__shape {
  position: absolute;
  inset: 0 auto 0 0;
  display: block;
  width: 62%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

#remediation-cta .process-remediation-cta__shape path {
  fill: #eef1e6;
}

#remediation-cta .process-remediation-cta__panel {
  position: relative;
  width: 47%;
  min-height: 420px;
  padding: 44px 24px 40px 48px;
  display: flex;
  align-items: center;
  background: transparent;
  z-index: 2;
}

#remediation-cta .process-remediation-cta__contours {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: #789267;
  stroke-width: 1;
  opacity: 0.08;
  pointer-events: none;
}

#remediation-cta .process-remediation-cta__content {
  position: relative;
  width: 100%;
  max-width: 520px;
  font-family: "Poppins", sans-serif;
}

#remediation-cta .process-remediation-cta__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 22px;
  color: #607c52;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 1.7px;
}

#remediation-cta .process-remediation-cta__eyebrow::before {
  content: "";
  flex: 0 0 25px;
  height: 2px;
  background: #809f60;
}

#remediation-cta #process-remediation-title {
  margin: 0 0 20px;
  padding: 0;
  color: #183c29;
  font-family: inherit;
  font-size: clamp(30px, 3.2vw, 44px);
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -1.4px;
  text-transform: none;
}

#remediation-cta #process-remediation-title span {
  color: #809f60;
  font-weight: inherit;
}

#remediation-cta .process-remediation-cta__content > p {
  max-width: 430px;
  margin: 0 0 26px;
  color: #46604a;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
}

#remediation-cta .process-remediation-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: auto;
  min-width: 176px;
  min-height: 54px;
  margin: 0;
  padding: 7px 7px 7px 24px;
  border: 0;
  border-radius: 999px;
  background: #193e29;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  box-shadow: none;
  transition: background 200ms ease;
}

#remediation-cta .process-remediation-cta__button-icon {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #b5dc76;
  color: #193e29;
  font-size: 23px;
  transition: transform 200ms ease;
}

#remediation-cta .process-remediation-cta__button:hover {
  background: #285337;
}

#remediation-cta .process-remediation-cta__button:hover
.process-remediation-cta__button-icon {
  transform: translateX(3px);
}

#remediation-cta .process-remediation-cta__button:focus-visible {
  outline: 3px solid #809f60;
  outline-offset: 4px;
}

#remediation-cta .process-remediation-cta__content >
.process-remediation-cta__steps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin: 24px 0 0;
  color: #71846a;
  font-size: 12px;
  line-height: 1.5;
}

#remediation-cta .process-remediation-cta__steps span {
  color: #91a583;
}

/* Smaller photo caption */
#remediation-cta .process-remediation-cta__badge {
  position: absolute;
  right: 24px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 15px;
  width: auto;
  max-width: calc(100% - 48px);
  padding: 18px 22px;
  border-radius: 16px;
  background: rgba(23, 53, 30, 0.9);
  backdrop-filter: blur(10px);
  color: #fff;
  z-index: 1;
}

#remediation-cta .process-remediation-cta__badge svg {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  fill: none;
  stroke: #dbe8cd;
  stroke-width: 1.4;
}

#remediation-cta .process-remediation-cta__badge > span {
  flex: 0 0 1px;
  width: 1px;
  height: 36px;
  background: rgba(255, 255, 255, 0.25);
}

#remediation-cta .process-remediation-cta__badge p {
  margin: 0;
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}

#remediation-cta .process-remediation-cta__mobile-wave {
  display: none;
}

/* Keep content visible if an old reveal script fails */
#remediation-cta [data-cta-reveal] {
  opacity: 1;
  visibility: visible;
  transform: none;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
  #remediation-cta .process-remediation-cta__photo {
    width: 58%;
  }

  #remediation-cta .process-remediation-cta__shape {
    width: 66%;
  }

  #remediation-cta .process-remediation-cta__panel {
    width: 50%;
  }

  #remediation-cta .process-remediation-cta__panel {
    padding: 36px 18px 36px 30px;
  }

  #remediation-cta .process-remediation-cta__eyebrow {
    font-size: 10px;
    letter-spacing: 1px;
  }

  #remediation-cta .process-remediation-cta__badge {
    right: 16px;
    bottom: 20px;
    gap: 10px;
    padding: 14px;
  }

  #remediation-cta .process-remediation-cta__badge p {
    font-size: 12px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .what-we-do-banner {
    height: 360px;
    min-height: 0;
    aspect-ratio: auto;
    background-size: auto 100%;
    background-position: center top;
    background-color: #eef6ec;
  }

  #remediation-cta {
    padding: 32px 16px;
  }

  #remediation-cta .process-remediation-cta {
    min-height: 0;
    border-radius: 20px;
  }

  #remediation-cta .process-remediation-cta__shape {
    display: none;
  }

  #remediation-cta .process-remediation-cta__panel {
    width: 100%;
    min-height: 0;
    padding: 32px 24px;
    background: #eef1e6;
  }

  #remediation-cta #process-remediation-title {
    font-size: clamp(28px, 6.5vw, 38px);
    letter-spacing: -0.8px;
  }

  #remediation-cta .process-remediation-cta__eyebrow {
    margin-bottom: 18px;
    font-size: 10px;
    letter-spacing: 1px;
  }

  #remediation-cta .process-remediation-cta__content > p {
    font-size: 14px;
  }

  #remediation-cta .process-remediation-cta__photo {
    position: relative;
    inset: auto;
    width: 100%;
    height: 260px;
  }

  #remediation-cta .process-remediation-cta__badge {
    right: 16px;
    bottom: 16px;
    max-width: calc(100% - 32px);
    padding: 14px 16px;
    gap: 12px;
  }

  #remediation-cta .process-remediation-cta__badge p {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #remediation-cta *,
  #remediation-cta *::before {
    animation: none !important;
    transition: none !important;
  }

  #remediation-cta [data-remediation-photo] {
    transform: none !important;
  }
}

/* Bio-mining & Land Reclamation service detail */
.service-detail-page {
  --svc-bg: #F7F7F2;
  --svc-ink: #103F31;
  --svc-muted: #52675D;
  --svc-green: #66B83F;
  --svc-dark: #0B3D2E;
  --svc-line: rgba(16, 63, 49, 0.16);
  background: var(--svc-bg);
}
.service-detail-page main,
.service-detail-page main h1,
.service-detail-page main h2,
.service-detail-page main h3,
.service-detail-page main p {
  font-family: "Outfit", sans-serif;
}
.service-detail-page .site-footer {
  margin-top: 0;
}
.svc-container {
  width: min(100% - 64px, 1280px);
  margin-inline: auto;
}
.svc-eyebrow {
  display: inline-block;
  margin-bottom: 1.25rem;
  color: #5B776D;
  font-family: var(--font-head);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.28em;
}
.svc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 1.75rem;
  border-radius: 999px;
  background: var(--svc-green);
  color: #ffffff;
  font-family: var(--font-head);
  font-size: 0.95rem;
  font-weight: 500;
  box-shadow: 0 12px 28px rgba(89, 177, 60, 0.22);
  transition: transform var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}
.svc-button:hover,
.svc-button:focus-visible {
  color: #ffffff;
  background: #58A836;
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(89, 177, 60, 0.28);
}
.svc-button span {
  margin-left: 0.45rem;
}
.service-detail-ready .svc-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 720ms cubic-bezier(.22,1,.36,1), transform 720ms cubic-bezier(.22,1,.36,1);
  transition-delay: var(--svc-delay, 0ms);
}
.service-detail-ready .svc-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.service-detail-ready .svc-hero h1 .svc-reveal:nth-child(2) { --svc-delay: 90ms; }
.service-detail-ready .svc-hero__lead { --svc-delay: 260ms; }

.svc-hero {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(var(--nav-h) + 4rem) 0 2.4rem;
  overflow: hidden;
  background: #071F16;
}
.svc-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(5, 27, 18, 0.84) 0%, rgba(5, 27, 18, 0.68) 38%, rgba(5, 27, 18, 0.32) 68%, rgba(5, 27, 18, 0.48) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.46) 100%);
}
.svc-hero__bg-video {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: #071F16;
  transform: scale(1.02);
}
.svc-hero > .svc-container {
  position: relative;
  z-index: 1;
}
.svc-hero__grid {
  display: block;
}
.svc-hero__copy {
  max-width: 980px;
}
.svc-breadcrumb {
  margin: 0 0 1.8rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.86rem;
  font-weight: 600;
}
.svc-breadcrumb span {
  margin: 0 0.55rem;
  color: rgba(255, 255, 255, 0.58);
}
.svc-hero h1 {
  margin: 0 0 1.25rem;
  color: #ffffff;
  font-family: "Outfit", sans-serif;
  font-size: clamp(3.15rem, 5.2vw, 5.95rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}
.svc-hero h1 span {
  display: block;
  white-space: nowrap;
}
.svc-hero__lead {
  max-width: 32rem;
  margin: 0 0 1.55rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(1rem, 1.2vw, 1.18rem);
  font-weight: 500;
}
.svc-hero__media {
  position: relative;
  min-height: clamp(420px, 42vw, 580px);
  margin: 0 calc((100vw - min(100vw - 64px, 1280px)) / -2) 0 0;
  overflow: hidden;
  border-radius: 34px 0 0 34px;
  clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%, 4% 78%, 0 52%, 5% 24%);
  background: #dfe8d4;
}
.svc-hero__media img,
.svc-hero__media video {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: 50% center;
  display: block;
}
.svc-hero__media video {
  background: #dfe8d4;
}
.service-detail-ready .svc-hero__media img,
.service-detail-ready .svc-hero__media video {
  transform: scale(1.04);
  transition: transform 1200ms cubic-bezier(.22,1,.36,1);
}
.service-detail-ready .svc-hero__media.is-visible img,
.service-detail-ready .svc-hero__media.is-visible video {
  transform: scale(1);
}
.svc-video-poster__play svg {
  width: 23px;
  height: 23px;
  fill: currentColor;
}
.svc-hero__labels {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  overflow-x: auto;
  margin-top: clamp(3.5rem, 14vh, 8.5rem);
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.72);
  font-family: var(--font-head);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  scrollbar-width: none;
}
.svc-hero__labels::-webkit-scrollbar {
  display: none;
}
.svc-hero__labels span {
  flex: 0 0 auto;
}
.svc-hero__labels span + span::before {
  content: "/";
  margin-right: 1.25rem;
  color: #8FB453;
}

.svc-approach {
  padding: clamp(5rem, 9vw, 8rem) 0;
  background: var(--svc-bg);
}
.svc-approach__grid {
  display: grid;
  grid-template-columns: 0.38fr 0.62fr;
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}
.svc-approach__copy h2,
.svc-transform__head h2 {
  margin: 0 0 1.45rem;
  color: var(--svc-ink);
  font-size: clamp(2.9rem, 4.2vw, 5.1rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
}
.svc-approach__copy p {
  max-width: 34rem;
  margin: 0 0 1.15rem;
  color: #41594F;
  font-size: 1.04rem;
  line-height: 1.75;
}
.svc-approach__photos {
  position: relative;
  min-height: 470px;
}
.svc-approach__photo {
  position: absolute;
  margin: 0;
  overflow: hidden;
  box-shadow: none;
}
.svc-approach__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.svc-approach__photo--primary {
  left: 4%;
  top: 0;
  width: 58%;
  height: 360px;
  border-radius: 0 26px 0 0;
}
.svc-approach__photo--secondary {
  right: 0;
  bottom: 0;
  width: 56%;
  height: 250px;
  border-radius: 26px 0 26px 0;
}
.svc-approach__caption {
  position: absolute;
  top: 48px;
  right: 6%;
  z-index: 3;
  margin: 0;
  color: #87938B;
  font-family: var(--font-head);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.28em;
}
.svc-approach__caption::after {
  content: "";
  display: block;
  width: 54px;
  height: 3px;
  margin-top: 1rem;
  background: #86B950;
}

.svc-process {
  position: relative;
  min-height: 240vh;
  scroll-margin-top: var(--nav-h);
  background: var(--svc-dark);
  color: #ffffff;
}
.svc-process__sticky {
  position: sticky;
  top: var(--nav-h);
  min-height: calc(100svh - var(--nav-h));
  display: flex;
  align-items: flex-start;
  padding: clamp(1.8rem, 3.2vh, 3rem) 0 2.5rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 74% 22%, rgba(57, 152, 84, 0.16), transparent 34%),
    linear-gradient(135deg, #0B3D2E 0%, #083727 100%);
}
.svc-process__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: start;
  margin-bottom: clamp(1.6rem, 3.2vh, 2.8rem);
}
.svc-process .svc-eyebrow {
  color: rgba(255, 255, 255, 0.58);
}
.svc-process h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.8rem, 4.1vw, 4.9rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: 0;
}
.svc-process__nav {
  position: relative;
  display: grid;
  gap: 1.55rem;
  padding-left: 1.35rem;
}
.svc-process__nav::before {
  content: "";
  position: absolute;
  left: 27px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: rgba(255, 255, 255, 0.22);
}
.svc-process__nav button {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 42px auto;
  align-items: center;
  gap: 0.65rem;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.52);
  font-family: var(--font-head);
  font-size: 0.96rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.svc-process__nav button span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid transparent;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.78rem;
}
.svc-process__nav button.is-active,
.svc-process__nav button[aria-selected="true"] {
  color: #ffffff;
}
.svc-process__nav button.is-active span,
.svc-process__nav button[aria-selected="true"] span {
  border-color: #86C94F;
  color: #86C94F;
}
.svc-process__stage {
  display: grid;
  grid-template-columns: minmax(420px, 0.56fr) minmax(320px, 0.44fr);
  gap: clamp(2.5rem, 5vw, 4.75rem);
  align-items: center;
}
.svc-process__image {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
  height: clamp(390px, 57vh, 470px);
  background: rgba(255, 255, 255, 0.08);
  isolation: isolate;
}
.svc-process__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 42% center;
  transform: scale(1.01);
  transition: transform 520ms cubic-bezier(.22,1,.36,1);
}
.svc-process__image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.18) 48%, transparent 74%);
  transform: translateX(-120%);
  pointer-events: none;
}
.svc-process__image.is-changing img {
  transform: translate3d(28px, 0, 0) scale(1.06);
}
.svc-process__image.is-entering img {
  animation: svcStageImageShootIn 680ms cubic-bezier(.22,1,.36,1) both;
}
.svc-process__image.is-entering::after {
  animation: svcStageImageSheen 780ms cubic-bezier(.22,1,.36,1) both;
}
.svc-process__content {
  max-width: 360px;
  transform: translateX(0);
  transition: transform 460ms cubic-bezier(.22,1,.36,1);
}
.svc-process__content.is-changing {
  transform: translateX(28px);
}
.svc-process__content.is-entering {
  animation: svcStageTextShootIn 620ms cubic-bezier(.22,1,.36,1) both;
}
@keyframes svcStageImageShootIn {
  from {
    transform: translate3d(-30px, 0, 0) scale(1.08);
  }
  to {
    transform: scale(1.01);
  }
}
@keyframes svcStageImageSheen {
  from { transform: translateX(-120%); }
  to { transform: translateX(120%); }
}
@keyframes svcStageTextShootIn {
  from {
    transform: translateX(-22px);
  }
  to {
    transform: translateX(0);
  }
}
.svc-process__count {
  margin: 0 0 0.75rem;
  color: rgba(255, 255, 255, 0.72);
  font-family: var(--font-head);
  font-size: 1rem;
  letter-spacing: 0.16em;
}
.svc-process__content h3 {
  margin: 0 0 1.3rem;
  color: #ffffff;
  font-size: clamp(2rem, 3vw, 3.2rem);
  font-weight: 600;
  line-height: 1.06;
  letter-spacing: 0;
}
.svc-process__content p:not(.svc-process__count) {
  margin: 0 0 1.5rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1rem;
  line-height: 1.7;
}
.svc-process__content span {
  display: inline-block;
  color: rgba(255, 255, 255, 0.54);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.3em;
}
.svc-process__content span::before {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin-bottom: 1rem;
  background: #86C94F;
}

.svc-video-section {
  background: var(--svc-bg);
  scroll-margin-top: var(--nav-h);
}
.svc-video-poster {
  position: relative;
  width: 100%;
  min-height: clamp(360px, 33.33vw, 620px);
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  background: #11291D;
  color: #ffffff;
}
.svc-video-poster img,
.svc-video-poster video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.svc-video-poster__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 16, 12, 0.25), rgba(6, 16, 12, 0.46));
}
.svc-video-poster__content {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 1rem;
  width: min(100% - 32px, 820px);
  text-align: center;
  color: #ffffff;
  font-family: var(--font-head);
  font-size: clamp(2rem, 3vw, 3.75rem);
  font-weight: 400;
  line-height: 1.12;
}
.svc-video-poster__content > span {
  display: block;
  max-width: 100%;
}
.svc-transform {
  padding: clamp(5rem, 8vw, 7rem) 0 clamp(4.5rem, 7vw, 6rem);
  background: var(--svc-bg);
}
.svc-transform__head {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 0.48fr);
  gap: 3rem;
  align-items: end;
  margin-bottom: 2.2rem;
}
.svc-transform__head h2 {
  margin-bottom: 0;
}
.svc-transform__head p {
  margin: 0;
  color: #41594F;
  font-size: 1rem;
  line-height: 1.65;
}
.svc-before-after {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  aspect-ratio: 16 / 5.2;
  background: #dfe8d4;
}
.svc-before-after img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}
.svc-before-after__after {
  object-position: center;
}
.svc-before-after__before {
  position: absolute;
  inset: 0;
  clip-path: inset(0 calc(100% - var(--ba-position, 50%)) 0 0);
}
.svc-before-after__before img {
  object-position: center;
}
.svc-before-after__label {
  position: absolute;
  top: 22px;
  z-index: 3;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #60726A;
  font-size: 0.78rem;
  font-weight: 700;
}
.svc-before-after__label--before { left: 26px; }
.svc-before-after__label--after { right: 26px; }
.svc-before-after__divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--ba-position, 50%);
  z-index: 4;
  width: 2px;
  background: rgba(255, 255, 255, 0.9);
  transform: translateX(-50%);
  pointer-events: none;
}
.svc-before-after__divider::after {
  content: "< >";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ffffff;
  color: #4A6358;
  font-family: var(--font-head);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: -0.18em;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
  transform: translate(-50%, -50%);
}
.svc-before-after input[type="range"] {
  position: absolute;
  inset: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: ew-resize;
}
.svc-transform__caption {
  margin: 0.65rem 0 0;
  color: #738179;
  font-size: 0.82rem;
}

.svc-video-dialog[hidden] {
  display: none;
}
.svc-video-dialog {
  position: fixed;
  inset: 0;
  z-index: 2500;
  display: grid;
  place-items: center;
  padding: 1.5rem;
}
.svc-video-dialog__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3, 12, 8, 0.88);
}
.svc-video-dialog__panel {
  position: relative;
  z-index: 1;
  width: min(100%, 980px);
  border-radius: 18px;
  background: #07150D;
  padding: 1rem;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.36);
}
.svc-video-dialog__panel h2 {
  color: #ffffff;
  font-size: 1rem;
  font-weight: 500;
  margin: 0 3rem 0.8rem 0.25rem;
}
.svc-video-dialog video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  background: #000000;
}
.svc-video-dialog__close {
  position: absolute;
  right: 1rem;
  top: 0.8rem;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-size: 1.7rem;
  cursor: pointer;
}

@media (max-width: 1023.98px) {
  .svc-container {
    width: min(100% - 48px, 920px);
  }
  .svc-hero__grid {
    grid-template-columns: 0.42fr 0.58fr;
    gap: 1.8rem;
  }
  .svc-hero h1 {
    font-size: clamp(3rem, 7vw, 4.7rem);
  }
  .svc-hero__media {
    min-height: 400px;
    margin-right: -24px;
  }
  .svc-approach__grid {
    grid-template-columns: 0.42fr 0.58fr;
    gap: 2.6rem;
  }
  .svc-approach__photos {
    min-height: 390px;
  }
  .svc-approach__photo--primary {
    width: 64%;
    height: 285px;
  }
  .svc-approach__photo--secondary {
    width: 60%;
    height: 205px;
  }
  .svc-process {
    min-height: auto;
  }
  .svc-process__sticky {
    position: relative;
    min-height: auto;
  }
  .svc-process__stage {
    grid-template-columns: 1fr;
  }
  .svc-process__image {
    height: clamp(340px, 48vw, 430px);
  }
  .svc-process__content {
    max-width: 620px;
  }
}

@media (max-width: 767.98px) {
  .svc-container {
    width: min(100% - 32px, 620px);
  }
  .svc-hero {
    padding-top: calc(var(--nav-h) + 2rem);
  }
  .svc-hero__grid,
  .svc-approach__grid,
  .svc-transform__head {
    grid-template-columns: 1fr;
  }
  .svc-hero h1 {
    font-size: clamp(2rem, 9.2vw, 3rem);
    line-height: 1.04;
  }
  .svc-hero__media {
    min-height: 300px;
    margin: 0;
    border-radius: 24px;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 18%);
  }
  .svc-hero__labels {
    gap: 0.8rem;
    font-size: 0.62rem;
    letter-spacing: 0.18em;
  }
  .svc-hero__labels span + span::before {
    margin-right: 0.8rem;
  }
  .svc-approach {
    padding: 4rem 0;
  }
  .svc-approach__copy h2,
  .svc-process h2,
  .svc-transform__head h2 {
    font-size: clamp(2.35rem, 10vw, 3.25rem);
  }
  .svc-approach__photos {
    min-height: 430px;
  }
  .svc-approach__photo--primary {
    left: 0;
    width: 74%;
    height: 270px;
  }
  .svc-approach__photo--secondary {
    width: 68%;
    height: 190px;
  }
  .svc-approach__caption {
    top: 18px;
    right: 0;
    font-size: 0.6rem;
  }
  .svc-process__sticky {
    padding: 4rem 0;
  }
  .svc-process__top {
    grid-template-columns: 1fr;
  }
  .svc-process__nav {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    padding-left: 0;
  }
  .svc-process__nav::before {
    display: none;
  }
  .svc-process__nav button {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0.45rem;
    padding: 0.7rem 0.4rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    text-align: center;
    font-size: 0.82rem;
  }
  .svc-process__nav button span {
    width: auto;
    height: auto;
    border: 0;
  }
  .svc-process__stage {
    gap: 1.6rem;
  }
  .svc-process__image {
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .svc-process__content h3 {
    font-size: clamp(1.9rem, 8vw, 2.45rem);
  }
  .svc-video-poster {
    min-height: 360px;
  }
  .svc-video-poster__content {
    font-size: clamp(1.85rem, 8vw, 2.6rem);
  }
  .svc-video-poster__play {
    width: 72px;
    height: 72px;
  }
  .svc-transform {
    padding: 4rem 0;
  }
  .svc-before-after {
    aspect-ratio: 1.12 / 1;
    border-radius: 18px;
  }
  .svc-before-after__label {
    top: 14px;
    font-size: 0.7rem;
  }
  .svc-before-after__label--before {
    left: 14px;
  }
  .svc-before-after__label--after {
    right: 14px;
  }
  .svc-video-dialog {
    padding: 0.9rem;
  }
}

@media (max-height: 720px) and (min-width: 1024px) {
  .svc-process {
    min-height: auto;
  }
  .svc-process__sticky {
    position: relative;
  }
}



/* Outfit is loaded in the page head. Every selector is scoped to this section. */
.sw-results {
  --sw-ink: #202725;
  --sw-green: #416f3b;
  --sw-paper: #faf9f5;
  padding: clamp(56px, 7vw, 100px) 0;
  background: var(--sw-paper);
  color: var(--sw-ink);
  font-family: 'Outfit', sans-serif;
}
.sw-results *, .sw-results *::before, .sw-results *::after { box-sizing: border-box; }
.sw-results__container { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.sw-results__header { display: grid; grid-template-columns: 1.25fr 1fr; align-items: end; gap: 48px; margin-bottom: 36px; }
.sw-results .sw-results__eyebrow { margin: 0 0 16px; color: var(--sw-green); font-size: 12px; font-weight: 500; letter-spacing: .19em; line-height: 1.4; }
.sw-results h2 { margin: 0; font-family: inherit; font-size: clamp(32px, 3.7vw, 48px); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; text-transform: none; }
.sw-results h2 span { color: var(--sw-green); }
.sw-results .sw-results__intro { max-width: 385px; justify-self: end; margin: 0 0 3px; color: #5f6860; font-size: 17px; font-weight: 400; line-height: 1.65; }
.sw-results .sw-compare { margin: 0; }
.sw-compare__stage { position: relative; isolation: isolate; aspect-ratio: 2.4 / 1; border-radius: 16px; background: #d8dacf; }
.sw-compare__photos { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.sw-results .sw-compare__photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: cover; object-position: 50% 58%; user-select: none; -webkit-user-drag: none; }
/* Both images always occupy the entire frame. Only the top image is clipped. */
.sw-compare__before { clip-path: inset(0 calc(100% - var(--sw-position)) 0 0); }
.sw-compare__label { position: absolute; z-index: 2; top: 20px; padding: 9px 14px; color: white; font-size: 13px; font-weight: 500; line-height: 1.2; border-radius: 999px; pointer-events: none; }
.sw-compare__label--before { left: 20px; background: rgba(30, 36, 29, .88); }
.sw-compare__label--after { right: 20px; background: rgba(46, 88, 40, .94); }
.sw-compare__divider { position: absolute; z-index: 2; top: 0; bottom: 0; left: var(--sw-position); width: 2px; transform: translateX(-50%); background: white; box-shadow: 0 0 6px #0003; pointer-events: none; }
.sw-compare__handle { position: absolute; z-index: 3; top: 50%; left: clamp(24px, var(--sw-position), calc(100% - 24px)); display: grid; place-items: center; width: 48px; height: 48px; transform: translate(-50%, -50%); border: 1px solid #e7ece4; border-radius: 50%; background: #fff; color: #315b2d; box-shadow: 0 3px 15px #0003; pointer-events: none; }
.sw-compare__handle svg { width: 25px; height: 25px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sw-results .sw-compare__range { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: inherit; opacity: 0; cursor: ew-resize; touch-action: pan-y; }
.sw-compare__stage:focus-within { outline: 3px solid #6c984d; outline-offset: 5px; }
.sw-compare__caption { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; margin-top: 16px; color: #626b63; font-size: 12px; font-weight: 400; line-height: 1.6; }
@media (max-width: 767px) {
  .sw-results__container { width: calc(100% - 40px); }
  .sw-results__header { grid-template-columns: 1fr; gap: 20px; margin-bottom: 26px; }
  .sw-results h2 { font-size: clamp(30px, 6vw, 38px); }
  .sw-results .sw-results__intro { justify-self: start; max-width: 520px; font-size: 16px; }
  .sw-compare__stage { aspect-ratio: 4 / 3; border-radius: 12px; }
  .sw-compare__label { top: 12px; padding: 8px 10px; font-size: 11px; }
  .sw-compare__label--before { left: 10px; }
  .sw-compare__label--after { right: 10px; }
  .sw-compare__caption { display: grid; gap: 4px; }
}





/* Uses your existing Outfit font. All styles are scoped to this section. */
.sw-benefits {
  --benefits-accent: #b0cd8f;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(56px, 7vw, 96px) 0;
  background: #183523;
  color: #f9faf5;
  font-family: 'Outfit', sans-serif;
}
.sw-benefits *, .sw-benefits *::before, .sw-benefits *::after { box-sizing: border-box; }
.sw-benefits__container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.2fr);
  align-items: start;
  gap: clamp(40px, 5vw, 80px);
  width: min(1280px, calc(100% - 80px));
  margin-inline: auto;
}
.sw-benefits .sw-benefits__eyebrow { margin: 0 0 18px; color: var(--benefits-accent); font-size: 11px; line-height: 1.4; font-weight: 500; letter-spacing: .19em; }
.sw-benefits h2 { margin: 0; color: #f9faf5; font-family: inherit; font-size: clamp(32px, 3.35vw, 46px); line-height: 1.13; font-weight: 500; letter-spacing: -.035em; text-transform: none; }
.sw-benefits .sw-benefits__summary { max-width: 420px; margin: 22px 0 0; color: #d0dcce; font-size: 16px; line-height: 1.7; font-weight: 400; }
.sw-benefits .sw-benefits__leaf { display: block; width: 175px; max-width: 100%; height: auto; margin: 22px 0 -20px -18px; opacity: .78; pointer-events: none; }
.sw-benefits .sw-benefits__list { display: block; list-style: none; margin: 0; padding: 0; }
.sw-benefits .sw-benefits__row {
  display: grid;
  grid-template-columns: 36px minmax(125px, .9fr) minmax(0, 1.35fr);
  align-items: center;
  gap: 22px;
  margin: 0;
  padding: 26px 0;
  border: 0;
  border-bottom: 1px solid rgba(222, 238, 210, .24);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.sw-benefits .sw-benefits__row:first-child { padding-top: 6px; }
.sw-benefits .sw-benefits__row:last-child { border-bottom: 0; padding-bottom: 0; }
.sw-benefits .sw-benefits__row::before { content: none; }
.sw-benefits__icon { display: block; width: 34px; height: 34px; color: #dceccf; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: color .25s ease, transform .25s ease; }
.sw-benefits h3 { margin: 0; color: #f9faf5; font-family: inherit; font-size: 18px; line-height: 1.4; font-weight: 500; letter-spacing: -.01em; text-transform: none; }
.sw-benefits .sw-benefits__row p { margin: 0; color: #d0dcce; font-family: inherit; font-size: 14px; line-height: 1.65; font-weight: 400; }
.sw-benefits__contours { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; stroke: #b0cd8f; stroke-width: 1; opacity: .1; pointer-events: none; }
@media (hover: hover) {
  .sw-benefits__row:hover .sw-benefits__icon { color: #c5e59e; transform: translateY(-3px); }
}
@media (max-width: 1100px) {
  .sw-benefits__container { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; }
  .sw-benefits .sw-benefits__row { grid-template-columns: 34px minmax(0, 1fr); gap: 8px 20px; }
  .sw-benefits__icon { grid-row: span 2; align-self: start; }
  .sw-benefits .sw-benefits__row p { grid-column: 2; }
}
@media (max-width: 767px) {
  .sw-benefits__container { width: calc(100% - 40px); grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .sw-benefits__intro { position: relative; }
  .sw-benefits h2 { font-size: clamp(30px, 6vw, 38px); }
  .sw-benefits .sw-benefits__summary { margin-top: 18px; padding-right: 40px; }
  .sw-benefits .sw-benefits__leaf { position: absolute; width: 100px; right: -20px; bottom: -32px; margin: 0; opacity: .22; z-index: -1; }
  .sw-benefits .sw-benefits__row { padding: 23px 0; }
  .sw-benefits .sw-benefits__row:first-child { padding-top: 0; }
  .sw-benefits h3 { font-size: 18px; }
  .sw-benefits .sw-benefits__row p { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .sw-benefits__icon { transition: none; }
  .sw-benefits__row:hover .sw-benefits__icon { transform: none; }
}



.djg-products-hero {
  --dph-paper: #faf9f5;
  --dph-ink: #182420;
  --dph-green: #268940;
  --dph-deep: #193f2b;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--dph-paper);
  color: var(--dph-ink);
  font-family: 'Outfit', sans-serif;
}
.djg-products-hero *, .djg-products-hero *::before, .djg-products-hero *::after { box-sizing: border-box; }
.djg-products-hero__photo { position: absolute; z-index: 0; inset: 0 0 0 38%; overflow: hidden; background: #a0ad9c; }
.djg-products-hero .djg-products-hero__photo img { display: block; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: cover; object-position: 60% 50%; }
.djg-products-hero__shape { position: absolute; z-index: 1; top: -1px; left: -1px; width: 62%; height: calc(100% + 2px); fill: var(--dph-paper); pointer-events: none; }
.djg-products-hero__container { position: relative; z-index: 2; width: min(1280px, calc(100% - 80px)); min-height: 560px; margin-inline: auto; display: flex; align-items: center; }
.djg-products-hero__content { width: 45%; min-width: 0; padding: 66px 0 38px; }
.djg-products-hero .djg-products-hero__eyebrow { display: flex; align-items: center; gap: 13px; margin: 0 0 23px; color: #34733e; font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: .2em; }
.djg-products-hero__eyebrow > span { flex: 0 0 32px; height: 1px; background: #619b55; }
.djg-products-hero h1 { margin: 0; font-family: inherit; color: var(--dph-ink); font-size: clamp(46px, 4.65vw, 68px); line-height: 1.07; letter-spacing: -.045em; font-weight: 500; text-transform: none; }
.djg-products-hero h1 > span { color: var(--dph-green); }
.djg-products-hero .djg-products-hero__subtitle { margin: 24px 0 10px; font-size: clamp(23px, 2vw, 28px); line-height: 1.25; font-weight: 500; letter-spacing: -.02em; }
.djg-products-hero .djg-products-hero__description { max-width: 350px; margin: 0; color: #59655e; font-size: 17px; font-weight: 400; line-height: 1.7; }
.djg-products-hero .djg-products-hero__button { display: inline-flex; align-items: center; justify-content: center; gap: 23px; min-height: 48px; margin-top: 28px; padding: 13px 23px; border: 1px solid var(--dph-deep); border-radius: 999px; background: var(--dph-deep); color: #fff; text-decoration: none; font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.4; transition: background-color .2s ease, transform .2s ease; }
.djg-products-hero__button svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.djg-products-hero__button:focus-visible { outline: 3px solid #508840; outline-offset: 5px; }
.djg-products-hero__note { display: flex; align-items: center; gap: 14px; max-width: 260px; margin-top: 30px; color: #537d4f; }
.djg-products-hero__note svg { flex: 0 0 44px; width: 44px; height: 44px; }
.djg-products-hero__note svg path:first-child { fill: #d2e2c9; }
.djg-products-hero__note svg path:last-child { stroke: #a4bf92; stroke-width: 1; }
.djg-products-hero__note span { font-size: 9px; font-weight: 500; line-height: 1.7; letter-spacing: .13em; text-transform: uppercase; }
@media (hover: hover) {
  .djg-products-hero__button:hover { background: #285b39; transform: translateY(-2px); }
  .djg-products-hero__button:hover svg { transform: translateX(3px); }
}
/* CSS-only entrance effects; the content does not depend on JavaScript. */
@media (prefers-reduced-motion: no-preference) {
  .djg-products-hero__photo img { animation: dph-photo-in 1.1s ease-out both; }
  .djg-products-hero__content > * { animation: dph-content-in .65s cubic-bezier(.2,.7,.3,1) backwards; }
  .djg-products-hero__content > :nth-child(2) { animation-delay: .08s; }
  .djg-products-hero__content > :nth-child(3) { animation-delay: .16s; }
  .djg-products-hero__content > :nth-child(4) { animation-delay: .22s; }
  .djg-products-hero__content > :nth-child(5) { animation-delay: .28s; }
  .djg-products-hero__content > :nth-child(6) { animation-delay: .34s; }
}
@keyframes dph-content-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dph-photo-in { from { transform: scale(1.035); } to { transform: scale(1); } }
@media (max-width: 1050px) and (min-width: 768px) {
  .djg-products-hero__container { width: calc(100% - 56px); min-height: 520px; }
  .djg-products-hero__content { width: 48%; padding-top: 48px; }
  .djg-products-hero h1 { font-size: clamp(38px, 4.65vw, 48px); }
  .djg-products-hero__shape { width: 67%; }
  .djg-products-hero .djg-products-hero__description { max-width: 290px; font-size: 16px; }
}
@media (max-width: 767px) {
  .djg-products-hero { display: flex; flex-direction: column; }
  .djg-products-hero__shape { display: none; }
  .djg-products-hero__container { order: 0; width: calc(100% - 40px); min-height: 0; }
  .djg-products-hero__content { width: 100%; padding: 44px 0 34px; }
  .djg-products-hero h1 { font-size: clamp(39px, 8.7vw, 58px); }
  .djg-products-hero .djg-products-hero__eyebrow { margin-bottom: 20px; font-size: 10px; }
  .djg-products-hero .djg-products-hero__subtitle { margin-top: 20px; font-size: 24px; }
  .djg-products-hero .djg-products-hero__description { max-width: 390px; font-size: 16px; }
  .djg-products-hero .djg-products-hero__button { margin-top: 24px; }
  .djg-products-hero__note { margin-top: 25px; }
  .djg-products-hero__photo { position: relative; order: 1; inset: auto; width: 100%; aspect-ratio: 1.6 / 1; max-height: 380px; }
  .djg-products-hero .djg-products-hero__photo img { position: absolute; inset: 0; object-position: 60% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .djg-products-hero__button, .djg-products-hero__button svg { transition: none; }
  .djg-products-hero__button:hover, .djg-products-hero__button:hover svg { transform: none; }
}




/* Section 2 only. Reuses your existing Outfit font. */
.djg-product-showcase {
  --dps-paper: #faf9f5;
  --dps-green: #3e733d;
  --dps-ink: #202924;
  --dps-header-offset: 88px; /* Set to your fixed header height + 16px. */
  background: var(--dps-paper);
  color: var(--dps-ink);
  font-family: 'Outfit', sans-serif;
  scroll-margin-top: var(--dps-header-offset);
}
.djg-product-showcase *, .djg-product-showcase *::before, .djg-product-showcase *::after { box-sizing: border-box; }
.dps-container { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.dps-navigation { padding: 16px 0; }
.dps-navigation__links { display: flex; align-items: stretch; border-block: 1px solid #d6ded3; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #94ac87 transparent; }
.djg-product-showcase .dps-navigation__links a { position: relative; flex: 1 0 auto; display: flex; align-items: center; justify-content: center; min-height: 56px; padding: 15px 20px; color: #46554b; font-family: inherit; font-size: 16px; line-height: 1.3; font-weight: 400; white-space: nowrap; text-decoration: none; transition: color .2s ease, background-color .2s ease; }
.dps-navigation__links a + a::before { position: absolute; content: ''; left: 0; top: 50%; height: 14px; width: 1px; transform: translateY(-50%); background: #ccd6c8; }
.djg-product-showcase .dps-navigation__links a[aria-current="location"] { color: #2e642e; background: #eaf0e5; box-shadow: inset 0 -2px #63884e; }
.dps-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 60px; align-items: center; padding: 64px 0 52px; }
.djg-product-showcase .dps-intro__eyebrow { margin: 0 0 14px; color: var(--dps-green); font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: .18em; }
.djg-product-showcase .dps-intro h2 { margin: 0; font-family: inherit; font-size: clamp(32px, 3.4vw, 46px); line-height: 1.13; letter-spacing: -.035em; font-weight: 500; color: var(--dps-ink); text-transform: none; }
.dps-intro h2 span { color: var(--dps-green); }
.djg-product-showcase .dps-intro__description { max-width: 455px; margin: 0; color: #5e685f; font-size: 16px; font-weight: 400; line-height: 1.75; }
.dps-product { scroll-margin-top: var(--dps-header-offset); padding: 28px 0; border-bottom: 1px solid #e4e9df; }
.dps-product:nth-of-type(even) { background: #eff3eb; }
.dps-product:last-child { border-bottom: 0; padding-bottom: 56px; }
.dps-product__inner { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); align-items: center; gap: clamp(32px, 5vw, 70px); }
.dps-product--reverse .dps-product__inner { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); }
.djg-product-showcase .dps-product__image { display: block; width: 100%; min-width: 0; margin: 0; aspect-ratio: 1.9 / 1; overflow: hidden;   }
.djg-product-showcase .dps-product__image img { display: block; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: cover; object-position: center; transition: transform .65s ease; border-radius: 10px; }
.dps-product--reverse .dps-product__image { grid-column: 2; grid-row: 1; }
.dps-product--reverse .dps-product__content { grid-column: 1; grid-row: 1; }
.dps-product__content { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 22px; padding: 18px 0; min-width: 0; }
.dps-product__number { color: #bac9ae; font-size: clamp(56px, 5.5vw, 78px); line-height: .95; font-weight: 500; letter-spacing: -.055em; user-select: none; }
.djg-product-showcase .dps-product__category { margin: 0 0 12px; color: var(--dps-green); font-size: 10px; line-height: 1.5; font-weight: 500; letter-spacing: .15em; }
.djg-product-showcase .dps-product__title { margin: 0; font-family: inherit; font-size: 40px; line-height: 1.2; letter-spacing: -.025em; font-weight: 500; color: var(--dps-ink); text-transform: none; }
.djg-product-showcase .dps-product__description { margin: 15px 0 0; color: #5b655d; font-size: 15px; line-height: 1.75; font-weight: 400; }
.dps-product__application { display: inline-block; margin-top: 15px; padding: 5px 10px; border-radius: 4px; background: #e1ebd6; color: #3f6232; font-size: 11px; line-height: 1.4; font-weight: 400; }
.djg-product-showcase .dps-product__link { display: flex; align-items: center; gap: 9px; width: fit-content; min-height: 44px; margin-top: 12px; padding: 8px 0; color: #365d35; font-family: inherit; font-size: 14px; line-height: 1.5; font-weight: 500; text-decoration: underline; text-decoration-color: #a4b69b; text-underline-offset: 6px; }
.dps-product__link svg { flex: 0 0 16px; width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.dps-navigation a:focus-visible, .dps-product__link:focus-visible { outline: 3px solid #65924d; outline-offset: -3px; border-radius: 3px; }
@media (hover: hover) {
  .djg-product-showcase .dps-navigation a:hover { background: #edf2e8; color: #2a632c; }
  .dps-product:hover .dps-product__image img { transform: scale(1.025); }
  .dps-product__link:hover svg { transform: translate(2px, -2px); }
}
@media (max-width: 1050px) {
  .dps-container { width: calc(100% - 56px); }
  .dps-product__inner, .dps-product--reverse .dps-product__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; }
  .dps-product__content { gap: 12px; }
  .dps-product__number { font-size: 52px; }
  .djg-product-showcase .dps-product__image { aspect-ratio: 1.35 / 1; }
}
@media (max-width: 767px) {
  .dps-container { width: calc(100% - 40px); }
  .dps-navigation { padding: 12px 0 0; }
  .djg-product-showcase .dps-navigation__links a { min-height: 48px; padding: 12px 18px; }
  .dps-intro { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 40px 0 30px; }
  .djg-product-showcase .dps-intro h2 { font-size: clamp(30px, 6vw, 38px); }
  .dps-product { padding: 24px 0; }
  .dps-product__inner, .dps-product--reverse .dps-product__inner { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .dps-product--reverse .dps-product__image, .dps-product--reverse .dps-product__content { grid-column: auto; grid-row: auto; }
  .djg-product-showcase .dps-product__image { aspect-ratio: 1.6 / 1; }
  .dps-product__content { padding: 0 0 6px; gap: 18px; }
  .dps-product__number { font-size: 58px; }
  .djg-product-showcase .dps-product__title { font-size: 26px; }
  .dps-product:last-child { padding-bottom: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .djg-product-showcase .dps-navigation a, .dps-product__image img, .dps-product__link svg { transition: none; }
  .dps-product:hover .dps-product__image img, .dps-product__link:hover svg { transform: none; }
}




/* Standalone SECTION styles. Reuse the Outfit font loaded on your page. */
.djg-product-impact {
  --dpi-background: #173b29;
  --dpi-accent: #b3d795;
  --dpi-text: #f7faf3;
  --dpi-muted: #d0ddca;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(52px, 6vw, 86px) 0;
  background: var(--dpi-background);
  color: var(--dpi-text);
  font-family: 'Outfit', sans-serif;
}
.djg-product-impact *, .djg-product-impact *::before, .djg-product-impact *::after { box-sizing: border-box; }
.djg-product-impact::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: radial-gradient(ellipse at 15% 100%, rgba(97, 136, 59, .16), transparent 58%);
  pointer-events: none;
}
.djg-product-impact__container { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.djg-product-impact__header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); align-items: center; gap: 64px; }
.djg-product-impact .djg-product-impact__eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 17px; color: var(--dpi-accent); font-size: 11px; line-height: 1.5; font-weight: 500; letter-spacing: .18em; }
.djg-product-impact__eyebrow span { width: 30px; height: 1px; flex-shrink: 0; background: currentColor; }
.djg-product-impact h2 { margin: 0; font-family: inherit; color: var(--dpi-text); font-size: clamp(32px, 3.5vw, 48px); line-height: 1.12; letter-spacing: -.035em; font-weight: 500; text-transform: none; }
.djg-product-impact h2 span { color: var(--dpi-accent); }
.djg-product-impact .djg-product-impact__intro { max-width: 470px; margin: 0; color: var(--dpi-muted); font-size: 16px; line-height: 1.75; font-weight: 400; }
.djg-product-impact .djg-product-impact__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; list-style: none; margin: 46px 0 0; padding: 0; }
.djg-product-impact .djg-product-impact__item { display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: start; gap: 17px; margin: 0; padding: 0 24px; border: 0; border-left: 1px solid rgba(196, 223, 175, .25); border-radius: 0; background: transparent; box-shadow: none; }
.djg-product-impact .djg-product-impact__item:first-child { border-left: 0; padding-left: 0; }
.djg-product-impact .djg-product-impact__item:last-child { padding-right: 0; }
.djg-product-impact .djg-product-impact__item::before { content: none; }
.djg-product-impact__icon { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid #8fb771; border-radius: 50%; color: #c0e19e; transition: transform .25s ease, background-color .25s ease; }
.djg-product-impact__icon svg { display: block; width: 31px; height: 31px; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.djg-product-impact h3 { margin: 5px 0 11px; font-family: inherit; color: var(--dpi-text); font-size: 19px; line-height: 1.2; letter-spacing: -.015em; font-weight: 500; text-transform: none; }
.djg-product-impact .djg-product-impact__item p { max-width: 190px; margin: 0; color: var(--dpi-muted); font-family: inherit; font-size: 13px; line-height: 1.65; font-weight: 400; }
@media (hover: hover) {
  .djg-product-impact__item:hover .djg-product-impact__icon { transform: translateY(-3px); background: rgba(178, 215, 143, .09); }
}
@media (max-width: 1100px) {
  .djg-product-impact__container { width: calc(100% - 56px); }
  .djg-product-impact__header { gap: 40px; }
  .djg-product-impact .djg-product-impact__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 0; }
  .djg-product-impact .djg-product-impact__item { padding: 0 28px; }
  .djg-product-impact .djg-product-impact__item:nth-child(odd) { border-left: 0; padding-left: 0; }
  .djg-product-impact .djg-product-impact__item p { max-width: 260px; font-size: 14px; }
}
@media (max-width: 767px) {
  .djg-product-impact__container { width: calc(100% - 40px); }
  .djg-product-impact__header { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .djg-product-impact h2 { font-size: clamp(30px, 6vw, 38px); }
  .djg-product-impact .djg-product-impact__intro { font-size: 16px; }
  .djg-product-impact .djg-product-impact__list { margin-top: 34px; }
  .djg-product-impact .djg-product-impact__item { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 0 20px; }
  .djg-product-impact__icon { width: 52px; height: 52px; }
  .djg-product-impact h3 { font-size: 19px; }
}
@media (max-width: 420px) {
  .djg-product-impact .djg-product-impact__list { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .djg-product-impact .djg-product-impact__item { grid-template-columns: 52px minmax(0, 1fr); gap: 20px; padding: 22px 0; border: 0; border-top: 1px solid rgba(196, 223, 175, .25); }
  .djg-product-impact .djg-product-impact__item:first-child { padding-top: 0; border-top: 0; }
  .djg-product-impact .djg-product-impact__item:last-child { padding-bottom: 0; }
  .djg-product-impact h3 br { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .djg-product-impact__icon { transition: none; }
  .djg-product-impact__item:hover .djg-product-impact__icon { transform: none; }
}




.djg-media-hero { --dmh-paper:#fbfcfa; --dmh-ink:#192721; --dmh-green:#24883f; --dmh-deep:#143b29; position:relative; isolation:isolate; overflow:hidden; min-height:590px; background:var(--dmh-paper); color:var(--dmh-ink); font-family:'Outfit',sans-serif; }
.djg-media-hero *, .djg-media-hero *::before, .djg-media-hero *::after { box-sizing:border-box; }
.djg-media-hero__visual { position:absolute; inset:0 0 0 35%; overflow:hidden; background:#6d8b7e; }
.djg-media-hero__visual img { display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; object-position:58% 50%; }
.djg-media-hero__visual-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,44,29,.08),transparent 70%),linear-gradient(0deg,rgba(7,30,21,.3),transparent 35%); pointer-events:none; }
.djg-media-hero__curve { position:absolute; z-index:1; inset:-1px auto -1px -1px; width:53%; height:calc(100% + 2px); fill:var(--dmh-paper); pointer-events:none; }
.djg-media-hero__container { position:relative; z-index:2; width:min(1280px,calc(100% - 80px)); min-height:590px; margin-inline:auto; display:flex; align-items:center; }
.djg-media-hero__content { width:48%; padding:64px 0 42px; }
.djg-media-hero .djg-media-hero__eyebrow { margin:0 0 18px; color:var(--dmh-green); font-size:11px; line-height:1.5; font-weight:500; letter-spacing:.18em; }
.djg-media-hero h1 { margin:0; color:var(--dmh-ink); font-family:inherit; font-size:clamp(46px,5vw,70px); font-weight:500; line-height:1.04; letter-spacing:-.045em; text-transform:none; }
.djg-media-hero h1 span { color:var(--dmh-green); }
.djg-media-hero .djg-media-hero__description { max-width:380px; margin:18px 0 0; color:#59655e; font-size:16px; line-height:1.55; font-weight:400; }
.djg-media-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.djg-media-hero__button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:10px 18px; border:1px solid transparent; border-radius:999px; font:500 13px/1.3 'Outfit',sans-serif; text-decoration:none; cursor:pointer; transition:transform .2s ease,background-color .2s ease,color .2s ease; }
.djg-media-hero__button--primary { background:var(--dmh-deep); color:white; }
.djg-media-hero__button--secondary { border-color:#cbd7cc; background:transparent; color:#334c3a; }
.djg-media-hero__button-play { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#a9d77d; color:var(--dmh-deep); }
.djg-media-hero__button-play svg { width:13px; height:13px; fill:currentColor; }
.djg-media-hero__button:focus-visible, .djg-media-hero__play:focus-visible { outline:3px solid #78a95a; outline-offset:4px; }
.djg-media-hero__stats { display:flex; gap:clamp(20px,3vw,44px); margin:38px 0 0; padding:0; }
.djg-media-hero__stats div { min-width:54px; }
.djg-media-hero__stats dt { color:var(--dmh-deep); font-size:25px; line-height:1; font-weight:500; letter-spacing:-.04em; }
.djg-media-hero__stats dt span { color:var(--dmh-green); }
.djg-media-hero__stats dd { margin:7px 0 0; color:#68736b; font-size:12px; line-height:1.25; font-weight:400; }
.djg-media-hero__play { position:absolute; z-index:2; top:50%; left:57%; display:grid; place-items:center; width:72px; height:72px; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.85); border-radius:50%; background:#173b2caa; color:#fff; cursor:pointer; transition:transform .2s ease,background-color .2s ease; }
.djg-media-hero__play svg { width:31px; height:31px; margin-left:4px; fill:currentColor; }
.djg-media-hero__play-label { position:absolute; z-index:2; top:calc(50% + 50px); left:57%; transform:translateX(-50%); color:#fff; font-size:11px; font-weight:400; white-space:nowrap; }
.djg-media-hero__signature { position:absolute; z-index:2; top:95px; right:58px; color:#fff; font-size:24px; line-height:1.15; font-weight:400; font-style:italic; transform:rotate(-5deg); text-shadow:0 1px 2px #0005; }
.djg-media-hero__signature em { color:#b9df8f; font-style:italic; }
.djg-media-hero__counter { position:absolute; z-index:2; right:56px; bottom:23px; display:flex; gap:9px; align-items:center; color:#fff; font-size:11px; font-weight:400; }
.djg-media-hero__counter i { width:22px; height:1px; background:#fff; opacity:.8; }
.djg-media-hero__dialog[hidden] { display:none; }
.djg-media-hero__dialog { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:24px; }
.djg-media-hero__dialog-backdrop { position:absolute; inset:0; background:#071b11cc; }
.djg-media-hero__dialog-panel { position:relative; z-index:1; width:min(900px,100%); padding:28px; border-radius:18px; background:#f8faf6; box-shadow:0 25px 80px #0007; }
.djg-media-hero__dialog-panel h2 { margin:0 0 18px; font:500 26px/1.2 'Outfit',sans-serif; color:var(--dmh-ink); }
.djg-media-hero__dialog-panel video { display:block; width:100%; max-height:70vh; background:#071b11; }
.djg-media-hero__dialog-close { position:absolute; top:9px; right:12px; width:35px; height:35px; border:0; border-radius:50%; background:transparent; color:#1c2f25; font-size:30px; line-height:1; cursor:pointer; }
.djg-media-hero__dialog-note { margin:12px 0 0; color:#657267; font:400 13px/1.5 'Outfit',sans-serif; }
@media (hover:hover) { .djg-media-hero__button:hover { transform:translateY(-2px); } .djg-media-hero__button--primary:hover { background:#285e3d; } .djg-media-hero__button--secondary:hover { background:#edf3ea; } .djg-media-hero__play:hover { transform:translate(-50%,-50%) scale(1.06); background:#173b2ce8; } }
@media (max-width:1050px) and (min-width:768px) { .djg-media-hero__container { width:calc(100% - 56px); min-height:540px; } .djg-media-hero { min-height:540px; } .djg-media-hero__content { width:53%; } .djg-media-hero__curve { width:59%; } .djg-media-hero h1 { font-size:clamp(42px,5vw,58px); } .djg-media-hero__signature { right:30px; } }
@media (max-width:767px) { .djg-media-hero { display:flex; flex-direction:column; min-height:0; } .djg-media-hero__curve { display:none; } .djg-media-hero__container { order:0; width:calc(100% - 40px); min-height:0; } .djg-media-hero__content { width:100%; padding:42px 0 34px; } .djg-media-hero h1 { font-size:clamp(40px,10vw,58px); } .djg-media-hero__stats { gap:18px; flex-wrap:wrap; margin-top:32px; } .djg-media-hero__stats div { min-width:62px; } .djg-media-hero__visual { position:relative; order:1; inset:auto; width:100%; aspect-ratio:1.45/1; max-height:400px; } .djg-media-hero__play { left:50%; top:48%; } .djg-media-hero__play-label { left:50%; top:calc(48% + 50px); } .djg-media-hero__signature { top:18px; right:20px; font-size:19px; } .djg-media-hero__counter { right:20px; bottom:15px; } }
@media (prefers-reduced-motion:reduce) { .djg-media-hero__button,.djg-media-hero__play { transition:none; } .djg-media-hero__button:hover,.djg-media-hero__play:hover { transform:none; } }



.djg-media-featured { --dmf-deep:#073a23; --dmf-green:#75b64b; --dmf-paper:#f8faf6; background:var(--dmf-deep); color:var(--dmf-paper); padding:clamp(56px,7vw,96px) 0; font-family:'Outfit',sans-serif; overflow:hidden; }
.djg-media-featured *, .djg-media-featured *::before, .djg-media-featured *::after { box-sizing:border-box; }
.djg-media-featured__container { width:min(1280px,calc(100% - 80px)); margin-inline:auto; }
.djg-media-featured__header { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:32px; }
.djg-media-featured .djg-media-featured__eyebrow { margin:0 0 12px; color:#acd47e; font:500 11px/1.4 'Outfit',sans-serif; letter-spacing:.19em; }
.djg-media-featured h2 { margin:0; color:#f8faf6; font:500 clamp(32px,3.3vw,46px)/1.1 'Outfit',sans-serif; letter-spacing:-.04em; text-transform:none; }
.djg-media-featured .djg-media-featured__intro { margin:10px 0 0; color:#c2d5c4; font:400 16px/1.6 'Outfit',sans-serif; }
.djg-media-featured__controls { display:flex; flex-shrink:0; gap:10px; }
.djg-media-featured__arrow { display:grid; place-items:center; width:46px; height:46px; border:1px solid #7ea886; border-radius:50%; background:transparent; color:#eef8e9; font:400 23px/1 'Outfit',sans-serif; cursor:pointer; transition:background-color .2s ease,color .2s ease,opacity .2s ease; }
.djg-media-featured__arrow:disabled { opacity:.35; cursor:not-allowed; }
.djg-media-featured__arrow:focus-visible { outline:3px solid #b5dd8a; outline-offset:3px; }
.djg-media-featured__viewport { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-behavior:smooth; overscroll-behavior-x:contain; outline:0; }
.djg-media-featured__viewport::-webkit-scrollbar { display:none; }
.djg-media-featured__viewport:focus-visible { outline:2px solid #b5dd8a; outline-offset:5px; }
.djg-media-featured__track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; min-width:0; }
.djg-media-story { min-width:0; }
.djg-media-story__link { display:block; height:100%; border:1px solid #5e8a6c; border-radius:9px; overflow:hidden; background:#0d482c; color:inherit; text-decoration:none; transition:transform .25s ease,border-color .25s ease; }
.djg-media-story__image { position:relative; aspect-ratio:1.02/1; overflow:hidden; margin:0; background:#275e3c; }
.djg-media-story__image img { display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; transition:transform .5s ease; }
.djg-media-story__scrim { position:absolute; inset:30% 0 0; background:linear-gradient(transparent,#073a23e8); pointer-events:none; }
.djg-media-story__number { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:31px; height:31px; border:1px solid #e8f5e3aa; border-radius:50%; color:#fff; font-size:11px; font-weight:500; }
.djg-media-story__content { position:relative; min-height:125px; padding:17px 20px 18px; }
.djg-media-story__type { margin:0 0 6px; color:#b7db8e; font-size:10px; line-height:1.4; font-weight:500; letter-spacing:.15em; }
.djg-media-story h3 { margin:0; color:#fff; font:500 21px/1.2 'Outfit',sans-serif; letter-spacing:-.02em; text-transform:none; }
.djg-media-story__content > p:last-of-type { max-width:230px; margin:8px 0 0; color:#c9ddc8; font:400 13px/1.45 'Outfit',sans-serif; }
.djg-media-story__more { position:absolute; right:18px; bottom:18px; display:grid; place-items:center; width:35px; height:35px; border:1px solid #a6d28e; border-radius:50%; color:#eaf7e7; font-size:20px; line-height:1; }
.djg-media-featured__progress { display:none; height:2px; margin-top:24px; background:#37684d; }
.djg-media-featured__progress span { display:block; width:25%; height:100%; background:#a7d681; transition:width .25s ease; }
@media (hover:hover) { .djg-media-story__link:hover { border-color:#b6dc91; transform:translateY(-4px); } .djg-media-story__link:hover img { transform:scale(1.05); } .djg-media-featured__arrow:not(:disabled):hover { background:#a7d681; color:#143b29; } }
@media (max-width:1050px) { .djg-media-featured__container { width:calc(100% - 56px); } .djg-media-featured__track { grid-template-columns:repeat(4,minmax(260px,1fr)); } }
@media (max-width:767px) { .djg-media-featured__container { width:calc(100% - 40px); } .djg-media-featured__header { align-items:start; flex-direction:column; gap:22px; } .djg-media-featured .djg-media-featured__intro { font-size:15px; } .djg-media-featured__controls { align-self:flex-end; margin-top:-64px; } .djg-media-featured__track { grid-template-columns:repeat(4, minmax(270px, 80vw)); gap:14px; } .djg-media-featured__progress { display:block; } }
@media (prefers-reduced-motion:reduce) { .djg-media-featured__viewport { scroll-behavior:auto; } .djg-media-story__link,.djg-media-story__image img,.djg-media-featured__arrow { transition:none; } .djg-media-story__link:hover,.djg-media-story__link:hover img { transform:none; } }



.djg-media-gallery { --dmg-paper:#fafbf8; --dmg-ink:#182420; --dmg-green:#2e7d3a; padding:clamp(60px,7vw,100px) 0; background:var(--dmg-paper); color:var(--dmg-ink); font-family:'Outfit',sans-serif; }
.djg-media-gallery *, .djg-media-gallery *::before, .djg-media-gallery *::after { box-sizing:border-box; }
.djg-media-gallery__container { width:min(1280px,calc(100% - 80px)); margin-inline:auto; }
.djg-media-gallery__header { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:34px; }
.djg-media-gallery .djg-media-gallery__eyebrow { margin:0 0 12px; color:var(--dmg-green); font:500 11px/1.4 'Outfit',sans-serif; letter-spacing:.19em; }
.djg-media-gallery h2 { margin:0; font:500 clamp(32px,3.2vw,46px)/1.1 'Outfit',sans-serif; letter-spacing:-.04em; text-transform:none; }
.djg-media-gallery .djg-media-gallery__intro { margin:10px 0 0; color:#627067; font:400 16px/1.55 'Outfit',sans-serif; }
.djg-media-gallery__filters { display:flex; flex-wrap:wrap; gap:8px; }
.djg-media-gallery__filters button { min-width:58px; min-height:38px; padding:8px 16px; border:1px solid #d3dfd1; border-radius:999px; background:transparent; color:#435148; font:400 13px/1.2 'Outfit',sans-serif; cursor:pointer; transition:background-color .2s ease,color .2s ease,border-color .2s ease; }
.djg-media-gallery__filters button.is-active { border-color:var(--dmg-green); background:var(--dmg-green); color:#fff; }
.djg-media-gallery__filters button:focus-visible,.djg-media-gallery__card:focus-visible { outline:3px solid #73a657; outline-offset:3px; }
.djg-media-gallery__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:dense; gap:16px; }
.djg-media-gallery__item--wide { grid-column:span 2; }
.djg-media-gallery__card { position:relative; display:block; width:100%; height:100%; min-height:255px; padding:0; overflow:hidden; border:0; border-radius:10px; background:#dbe4d8; cursor:pointer; text-align:left; }
.djg-media-gallery__card img { display:block; width:100%; height:100%; min-height:255px; max-width:none; margin:0; object-fit:cover; transition:transform .55s ease; }
.djg-media-gallery__overlay { position:absolute; inset:auto 0 0; display:flex; align-items:end; justify-content:space-between; gap:10px; padding:48px 18px 16px; background:linear-gradient(transparent,#052b1de6); color:#fff; font:500 14px/1.3 'Outfit',sans-serif; }
.djg-media-gallery__overlay i { display:grid; place-items:center; width:33px; height:33px; border:1px solid #d4ecd0; border-radius:50%; color:#fff; font-style:normal; font-size:17px; }
.djg-media-gallery__overlay i.play { font-size:12px; padding-left:2px; }
.djg-media-gallery__item.is-hidden { display:none; }
.djg-media-gallery__dialog[hidden] { display:none; }
.djg-media-gallery__dialog { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:24px; }
.djg-media-gallery__backdrop { position:absolute; inset:0; background:#051c12d9; }
.djg-media-gallery__dialog-panel { position:relative; z-index:1; width:min(900px,100%); padding:22px; border-radius:16px; background:#f7faf5; box-shadow:0 25px 80px #0006; }
.djg-media-gallery__dialog-panel h2 { margin:0 0 15px; color:var(--dmg-ink); font:500 24px/1.2 'Outfit',sans-serif; }
.djg-media-gallery__dialog-panel img { display:block; width:100%; max-height:72vh; object-fit:contain; background:#092c1d; }
.djg-media-gallery__dialog-panel p { margin:10px 0 0; color:#55645a; font:400 14px/1.5 'Outfit',sans-serif; }
.djg-media-gallery__close { position:absolute; z-index:2; top:6px; right:9px; width:35px; height:35px; border:0; border-radius:50%; background:#f7faf5; color:#193c2b; font-size:28px; line-height:1; cursor:pointer; }
@media (hover:hover) { .djg-media-gallery__filters button:not(.is-active):hover { border-color:#79a86a; background:#eef5eb; } .djg-media-gallery__card:hover img { transform:scale(1.045); } }
@media (max-width:900px) { .djg-media-gallery__container { width:calc(100% - 56px); } .djg-media-gallery__header { align-items:start; flex-direction:column; } .djg-media-gallery__filters { align-self:flex-start; } .djg-media-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .djg-media-gallery__item--wide { grid-column:span 2; } }
@media (max-width:600px) { .djg-media-gallery__container { width:calc(100% - 40px); } .djg-media-gallery__grid { grid-template-columns:minmax(0,1fr); gap:12px; } .djg-media-gallery__item--wide { grid-column:auto; } .djg-media-gallery__card,.djg-media-gallery__card img { min-height:220px; } }
@media (prefers-reduced-motion:reduce) { .djg-media-gallery__filters button,.djg-media-gallery__card img { transition:none; } .djg-media-gallery__card:hover img { transform:none; } }




.djg-career-hero { --dch-paper:#fbfcfa; --dch-ink:#122b27; --dch-green:#1b8640; --dch-deep:#123b29; position:relative; isolation:isolate; min-height:590px; overflow:hidden; background:var(--dch-paper); color:var(--dch-ink); font-family:'Outfit',sans-serif; }
.djg-career-hero *, .djg-career-hero *::before, .djg-career-hero *::after { box-sizing:border-box; }
.djg-career-hero__visual { position:absolute; z-index:0; inset:0 0 0 36%; overflow:hidden; background:#789581; }
.djg-career-hero__visual img { display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; object-position:56% 50%; }
.djg-career-hero__visual-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,46,28,.1),transparent 60%),linear-gradient(0deg,rgba(0,25,17,.22),transparent 38%); pointer-events:none; }
.djg-career-hero__curve { position:absolute; z-index:1; top:-1px; bottom:-1px; left:-1px; width:55%; height:calc(100% + 2px); fill:var(--dch-paper); pointer-events:none; }
.djg-career-hero__container { position:relative; z-index:2; display:flex; align-items:center; width:min(1280px,calc(100% - 80px)); min-height:590px; margin-inline:auto; }
.djg-career-hero__content { width:49%; min-width:0; padding:96px 0 40px; }
.djg-career-hero .djg-career-hero__eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 19px; color:var(--dch-green); font:500 11px/1.4 'Outfit',sans-serif; letter-spacing:.19em; }
.djg-career-hero__eyebrow span { width:31px; height:1px; flex:0 0 31px; background:currentColor; }
.djg-career-hero h1 { margin:0; color:var(--dch-ink); font:500 clamp(42px,4.15vw,62px)/1.04 'Outfit',sans-serif; letter-spacing:-.045em; text-transform:none; }
.djg-career-hero h1 span { color:var(--dch-green); }
.djg-career-hero .djg-career-hero__description { max-width:420px; margin:19px 0 0; color:#4f6259; font:400 16px/1.65 'Outfit',sans-serif; }
.djg-career-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.djg-career-hero__button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:46px; padding:11px 18px; border:1px solid transparent; border-radius:999px; font:500 13px/1.3 'Outfit',sans-serif; text-decoration:none; transition:transform .2s ease,background-color .2s ease,color .2s ease; }
.djg-career-hero__button--primary { background:var(--dch-deep); color:#fff; }
.djg-career-hero__button--secondary { border-color:#9eb2a1; background:transparent; color:#294d3a; }
.djg-career-hero__button-icon { display:grid; place-items:center; width:21px; height:21px; border:1px solid currentColor; border-radius:50%; font-size:8px; padding-left:1px; }
.djg-career-hero__button:focus-visible { outline:3px solid #6fa652; outline-offset:4px; }
.djg-career-hero__keywords { display:flex; align-items:center; gap:11px; margin:28px 0 0; color:#5d7065; font:500 10px/1.4 'Outfit',sans-serif; letter-spacing:.18em; }
.djg-career-hero__keywords i { color:#a5b4a6; font-style:normal; }
.djg-career-hero__stats { display:flex; gap:clamp(24px,3.5vw,50px); margin:28px 0 0; }
.djg-career-hero__stats div { min-width:52px; }
.djg-career-hero__stats dt { color:var(--dch-deep); font:500 24px/1 'Outfit',sans-serif; letter-spacing:-.04em; }
.djg-career-hero__stats dt span { color:var(--dch-green); }
.djg-career-hero__stats dd { margin:7px 0 0; color:#68766d; font:400 10px/1.25 'Outfit',sans-serif; }
.djg-career-hero__signature { position:absolute; z-index:2; top:95px; right:58px; color:#fff; font:400 italic 23px/1.15 'Outfit',sans-serif; transform:rotate(-6deg); text-shadow:0 1px 2px #0006; }
.djg-career-hero__signature em { color:#c5e39f; font-style:italic; }
@media (hover:hover) { .djg-career-hero__button:hover { transform:translateY(-2px); } .djg-career-hero__button--primary:hover { background:#285c3d; } .djg-career-hero__button--secondary:hover { background:#edf4ec; } }
@media (max-width:1050px) and (min-width:768px) { .djg-career-hero,.djg-career-hero__container { min-height:540px; } .djg-career-hero__container { width:calc(100% - 56px); } .djg-career-hero__content { width:54%; padding-top:44px; } .djg-career-hero__curve { width:61%; } .djg-career-hero h1 { font-size:clamp(38px,4.7vw,53px); } .djg-career-hero .djg-career-hero__description { max-width:340px; font-size:15px; } .djg-career-hero__signature { right:28px; font-size:20px; } }
@media (max-width:767px) { .djg-career-hero { display:flex; flex-direction:column; min-height:0; } .djg-career-hero__curve { display:none; } .djg-career-hero__container { order:0; width:calc(100% - 40px); min-height:0; } .djg-career-hero__content { width:100%; padding:42px 0 34px; } .djg-career-hero h1 { font-size:clamp(38px,9vw,55px); } .djg-career-hero .djg-career-hero__description { font-size:16px; } .djg-career-hero__keywords { margin-top:25px; } .djg-career-hero__stats { gap:20px; flex-wrap:wrap; margin-top:26px; } .djg-career-hero__stats div { min-width:58px; } .djg-career-hero__visual { position:relative; order:1; inset:auto; width:100%; aspect-ratio:1.45/1; max-height:400px; } .djg-career-hero__visual img { position:absolute; inset:0; object-position:56% 50%; } .djg-career-hero__signature { top:19px; right:20px; font-size:19px; } }
@media (prefers-reduced-motion:reduce) { .djg-career-hero__button { transition:none; } .djg-career-hero__button:hover { transform:none; } }




.djg-career-openings { --dco-paper:#f5f8f3; --dco-ink:#122c27; --dco-green:#1b8240; --dco-muted:#607067; padding:clamp(58px,7vw,94px) 0; background:var(--dco-paper); color:var(--dco-ink); font-family:'Outfit',sans-serif; }
.djg-career-openings *, .djg-career-openings *::before, .djg-career-openings *::after { box-sizing:border-box; }
.djg-career-openings__container { width:min(1280px,calc(100% - 80px)); margin-inline:auto; }
.djg-career-openings__header { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:30px; }
.djg-career-openings .djg-career-openings__eyebrow { margin:0 0 12px; color:var(--dco-green); font:500 11px/1.4 'Outfit',sans-serif; letter-spacing:.19em; }
.djg-career-openings h2 { margin:0; color:var(--dco-ink); font:500 clamp(32px,3.45vw,46px)/1.1 'Outfit',sans-serif; letter-spacing:-.04em; text-transform:none; }
.djg-career-openings .djg-career-openings__intro { margin:10px 0 0; color:var(--dco-muted); font:400 16px/1.6 'Outfit',sans-serif; }
.djg-career-openings__all-link { display:inline-flex; align-items:center; gap:9px; min-height:44px; color:#2f6039; font:400 14px/1.4 'Outfit',sans-serif; text-decoration:none; white-space:nowrap; }
.djg-career-openings__all-link span { font-size:19px; transition:transform .2s ease; }
.djg-career-openings__all-link:focus-visible,.djg-job-card__apply:focus-visible { outline:3px solid #6b9b52; outline-offset:4px; border-radius:4px; }
.djg-career-openings__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.djg-career-openings .djg-job-card { display:flex; flex-direction:column; min-width:0; min-height:332px; margin:0; padding:24px 22px 20px; border:1px solid #e1e9df; border-radius:10px; background:rgba(255,255,255,.72); box-shadow:0 8px 26px #214d3310; }
.djg-career-openings .djg-job-card::before { content:none; }
.djg-job-card__icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:18px; border:1px solid #94bd8e; border-radius:50%; color:var(--dco-green); }
.djg-job-card__icon svg { width:24px; height:24px; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.djg-career-openings .djg-job-card__heading { min-height:61px; }
.djg-career-openings .djg-job-card h3 { margin:0; color:var(--dco-ink); font:500 17px/1.25 'Outfit',sans-serif; letter-spacing:-.015em; text-transform:none; }
.djg-career-openings .djg-job-card__meta { display:flex; align-items:center; flex-wrap:wrap; gap:5px; margin:10px 0 0; color:#65736a; font:400 11px/1.35 'Outfit',sans-serif; }
.djg-job-card__meta span { color:#41784a; font-size:12px; }
.djg-job-card__meta i { color:#a8b7a9; font-style:normal; }
.djg-career-openings .djg-job-card__description { flex:1; margin:17px 0 18px; color:#607067; font:400 14px/1.55 'Outfit',sans-serif; }
.djg-career-openings .djg-job-card__apply { display:inline-flex; align-items:center; justify-content:center; gap:13px; width:fit-content; min-height:38px; padding:7px 15px; border:1px solid var(--dco-green); border-radius:999px; color:#216b38; font:500 13px/1.3 'Outfit',sans-serif; text-decoration:none; transition:background-color .2s ease,color .2s ease,transform .2s ease; }
.djg-job-card__apply span { font-size:18px; line-height:1; }
@media (hover:hover) { .djg-career-openings__all-link:hover span { transform:translateX(3px); } .djg-career-openings .djg-job-card:hover { border-color:#aac8a3; box-shadow:0 12px 30px #214d3318; } .djg-career-openings .djg-job-card__apply:hover { background:var(--dco-green); color:white; transform:translateY(-2px); } }
@media (max-width:1050px) { .djg-career-openings__container { width:calc(100% - 56px); } .djg-career-openings__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } }
@media (max-width:767px) { .djg-career-openings__container { width:calc(100% - 40px); } .djg-career-openings__header { align-items:start; flex-direction:column; gap:18px; } .djg-career-openings__all-link { align-self:flex-start; } .djg-career-openings__grid { grid-template-columns:minmax(0,1fr); gap:12px; } .djg-career-openings .djg-job-card { min-height:0; padding:22px 20px 19px; } .djg-career-openings .djg-job-card__heading { min-height:0; } .djg-career-openings .djg-job-card__description { flex:none; margin:15px 0 17px; } }
@media (prefers-reduced-motion:reduce) { .djg-career-openings__all-link span,.djg-career-openings .djg-job-card__apply { transition:none; } .djg-career-openings .djg-job-card__apply:hover { transform:none; } }



.djg-career-application { --dca-paper:#fff; --dca-ink:#12312b; --dca-green:#147c3b; --dca-muted:#607067; padding:clamp(58px,7vw,96px) 0; background:var(--dca-paper); color:var(--dca-ink); font-family:'Outfit',sans-serif; }
.djg-career-application *, .djg-career-application *::before, .djg-career-application *::after { box-sizing:border-box; }
.djg-career-application__container { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr); align-items:stretch; gap:clamp(42px,6vw,88px); width:min(1280px,calc(100% - 80px)); margin-inline:auto; }
.djg-career-application .djg-career-application__eyebrow { margin:0 0 12px; color:var(--dca-green); font:500 11px/1.4 'Outfit',sans-serif; letter-spacing:.19em; }
.djg-career-application h2 { margin:0; color:var(--dca-ink); font:500 clamp(32px,3.4vw,46px)/1.1 'Outfit',sans-serif; letter-spacing:-.04em; text-transform:none; }
.djg-career-application .djg-career-application__intro { margin:10px 0 30px; color:var(--dca-muted); font:400 16px/1.6 'Outfit',sans-serif; }
.djg-career-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px 16px; }
.djg-career-form__field { min-width:0; }
.djg-career-form__field label { display:block; margin:0 0 8px; color:#29483a; font:500 13px/1.4 'Outfit',sans-serif; }
.djg-career-form__field label span { color:#bd442f; }
.djg-career-form__field input,.djg-career-form__field select,.djg-career-form__field textarea { display:block; width:100%; border:1px solid #d4e0d3; border-radius:7px; outline:0; background:#fff; color:#21382d; font:400 14px/1.4 'Outfit',sans-serif; transition:border-color .2s ease,box-shadow .2s ease; }
.djg-career-form__field input,.djg-career-form__field select { min-height:46px; padding:11px 13px; }
.djg-career-form__field textarea { min-height:130px; padding:12px 13px; resize:vertical; }
.djg-career-form__field input::placeholder,.djg-career-form__field textarea::placeholder { color:#99a79e; }
.djg-career-form__field input:focus,.djg-career-form__field select:focus,.djg-career-form__field textarea:focus { border-color:#5c9655; box-shadow:0 0 0 3px #76a6672b; }
.djg-career-form__field input[type=file] { padding:10px; color:#627269; font-size:12px; }
.djg-career-form__field small { display:block; margin-top:6px; color:#86938a; font:400 11px/1.4 'Outfit',sans-serif; }
.djg-career-form__field--message { margin-top:19px; }
.djg-career-form__error { margin:13px 0 0; color:#a33c30; font:400 13px/1.45 'Outfit',sans-serif; }
.djg-career-form__submit { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:46px; margin-top:21px; padding:11px 19px; border:1px solid var(--dca-green); border-radius:999px; background:var(--dca-green); color:#fff; font:500 13px/1.3 'Outfit',sans-serif; cursor:pointer; transition:transform .2s ease,background-color .2s ease; }
.djg-career-form__submit span { font-size:19px; line-height:1; }
.djg-career-form__submit:focus-visible { outline:3px solid #68a055; outline-offset:4px; }
.djg-career-form__note { margin:13px 0 0; color:#8a978f; font:400 11px/1.4 'Outfit',sans-serif; }
.djg-career-application__visual { position:relative; min-height:470px; overflow:hidden; border-radius:14px; background:#aec69c; }
.djg-career-application__visual::after { position:absolute; content:''; inset:0; background:linear-gradient(90deg,rgba(11,59,31,.06),transparent 70%),linear-gradient(0deg,rgba(11,48,29,.42),transparent 55%); pointer-events:none; }
.djg-career-application__visual img { display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; object-position:center; }
.djg-career-application__quote { position:absolute; z-index:1; right:33px; bottom:34px; color:#fff; font:500 clamp(23px,2.2vw,32px)/1.18 'Outfit',sans-serif; font-style:italic; text-align:left; text-shadow:0 2px 8px #0006; }
.djg-career-application__quote span { display:block; width:40px; height:2px; margin-top:15px; background:#addc7e; }
@media (hover:hover) { .djg-career-form__submit:hover { background:#286440; transform:translateY(-2px); } }
@media (max-width:1050px) { .djg-career-application__container { width:calc(100% - 56px); grid-template-columns:minmax(0,1fr) minmax(300px,.8fr); gap:40px; } .djg-career-application__visual { min-height:430px; } }
@media (max-width:767px) { .djg-career-application__container { width:calc(100% - 40px); grid-template-columns:minmax(0,1fr); gap:34px; } .djg-career-application__visual { min-height:360px; order:-1; } .djg-career-application__quote { right:22px; bottom:23px; font-size:25px; } .djg-career-form__grid { grid-template-columns:minmax(0,1fr); gap:17px; } .djg-career-application .djg-career-application__intro { margin-bottom:25px; } }
@media (prefers-reduced-motion:reduce) { .djg-career-form__submit,.djg-career-form__field input,.djg-career-form__field select,.djg-career-form__field textarea { transition:none; } .djg-career-form__submit:hover { transform:none; } }





.djg-contact-hero { --dct-paper:#fbfcfa; --dct-ink:#122a27; --dct-green:#167d3b; --dct-deep:#104b2d; --dct-light:#c3e398; position:relative; isolation:isolate; min-height:590px; overflow:hidden; background:#07120d; color:#fff; font-family:'Outfit',sans-serif; }
.djg-contact-hero *, .djg-contact-hero *::before, .djg-contact-hero *::after { box-sizing:border-box; }
.djg-contact-hero__visual { position:absolute; z-index:0; inset:0; overflow:hidden; background:#07120d; }
.djg-contact-hero__visual img { display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; object-position:62% 50%; }
.djg-contact-hero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.74) 38%,rgba(0,0,0,.34) 64%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,rgba(0,25,16,.2),transparent 45%); pointer-events:none; }
.djg-contact-hero__curve { display:none; }
.djg-contact-hero__container { position:relative; z-index:2; display:flex; align-items:center; width:min(1280px,calc(100% - 80px)); min-height:590px; margin-inline:auto; }
.djg-contact-hero__content { width:50%; max-width:580px; padding:58px 0 40px; text-shadow:0 12px 34px rgba(0,0,0,.38); }
.djg-contact-hero .djg-contact-hero__eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 19px; color:var(--dct-light); font:500 11px/1.4 'Outfit',sans-serif; letter-spacing:.19em; }
.djg-contact-hero__eyebrow span { width:31px; height:1px; flex:0 0 31px; background:currentColor; }
.djg-contact-hero h1 { margin:0; color:#fff; font:500 clamp(42px,4.3vw,64px)/1.04 'Outfit',sans-serif; letter-spacing:-.045em; text-transform:none; }
.djg-contact-hero h1 span { color:var(--dct-light); }
.djg-contact-hero .djg-contact-hero__description { max-width:430px; margin:20px 0 0; color:rgba(255,255,255,.84); font:400 16px/1.65 'Outfit',sans-serif; }
.djg-contact-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.djg-contact-hero__button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:46px; padding:11px 19px; border:1px solid transparent; border-radius:999px; font:500 13px/1.3 'Outfit',sans-serif; text-decoration:none; transition:transform .2s ease,background-color .2s ease,color .2s ease; }
.djg-contact-hero__button--primary { background:#fff; color:var(--dct-deep); }
.djg-contact-hero__button--secondary { border-color:rgba(255,255,255,.5); color:#fff; background:rgba(255,255,255,.08); }
.djg-contact-hero__phone { display:grid; place-items:center; width:16px; height:16px; line-height:1; }
.djg-contact-hero__phone img { width:16px; height:16px; filter:brightness(0) invert(1); }
.djg-contact-hero__button:focus-visible { outline:3px solid #69a254; outline-offset:4px; }
.djg-contact-hero__trust { display:flex; max-width:450px; list-style:none; margin:33px 0 0; padding:0; }
.djg-contact-hero__trust li { display:flex; align-items:center; gap:12px; flex:1; min-width:0; padding:0 22px; border-left:1px solid rgba(255,255,255,.24); color:#fff; font:500 14px/1.25 'Outfit',sans-serif; }
.djg-contact-hero__trust li:first-child { padding-left:0; border-left:0; }
.djg-contact-hero__trust-icon { display:grid; place-items:center; flex:0 0 37px; width:37px; height:37px; color:var(--dct-light); }
.djg-contact-hero__trust-icon svg { width:30px; height:30px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.djg-contact-hero__trust small { color:rgba(255,255,255,.72); font:400 12px/1.3 'Outfit',sans-serif; }
.djg-contact-hero__signature { position:absolute; z-index:2; color:#fff; text-align:left; font:400 italic 22px/1.15 'Outfit',sans-serif; transform:rotate(-7deg); text-shadow:0 1px 3px #0007; }
.djg-contact-hero__signature--top { top:42px; right:58px; }
.djg-contact-hero__signature em { color:#c3e398; font-style:italic; }
@media (hover:hover) { .djg-contact-hero__button:hover { transform:translateY(-2px); } .djg-contact-hero__button--primary:hover { background:var(--dct-light); } .djg-contact-hero__button--secondary:hover { background:rgba(255,255,255,.18); } }
@media (max-width:1050px) and (min-width:768px) { .djg-contact-hero,.djg-contact-hero__container { min-height:540px; } .djg-contact-hero__container { width:calc(100% - 56px); } .djg-contact-hero__content { width:55%; padding-top:44px; } .djg-contact-hero__curve { width:61%; } .djg-contact-hero h1 { font-size:clamp(38px,4.7vw,53px); } .djg-contact-hero .djg-contact-hero__description { max-width:350px; font-size:15px; } .djg-contact-hero__signature--top { right:28px; font-size:20px; } }
@media (max-width:767px) { .djg-contact-hero { display:block; min-height:620px; } .djg-contact-hero__curve { display:none; } .djg-contact-hero__container { width:calc(100% - 40px); min-height:620px; } .djg-contact-hero__content { width:100%; padding:118px 0 40px; } .djg-contact-hero h1 { font-size:clamp(39px,9vw,56px); } .djg-contact-hero .djg-contact-hero__description { font-size:16px; } .djg-contact-hero__trust { margin-top:29px; flex-wrap:wrap; gap:14px 0; } .djg-contact-hero__trust li { flex:1 1 33.333%; padding:0 10px; gap:5px; font-size:12px; } .djg-contact-hero__trust li:first-child { padding-left:0; } .djg-contact-hero__trust-icon { flex-basis:30px; width:30px; height:30px; } .djg-contact-hero__trust-icon svg { width:25px; height:25px; } .djg-contact-hero__trust small { font-size:10px; } .djg-contact-hero__visual { position:absolute; inset:0; width:auto; aspect-ratio:auto; max-height:none; } .djg-contact-hero__visual img { position:absolute; inset:0; object-position:62% 50%; } .djg-contact-hero__shade { background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.62) 58%,rgba(0,0,0,.3)),linear-gradient(0deg,rgba(0,0,0,.2),transparent 45%); } .djg-contact-hero__signature--top { display:none; } }
@media (prefers-reduced-motion:reduce) { .djg-contact-hero__button { transition:none; } .djg-contact-hero__button:hover { transform:none; } }




:root{--green:#0c5b2d;--ink:#10202a;--pale:#f2f8f3;--line:#dce8df}*{box-sizing:border-box}.contact-strip,.enquiry,.contact-bottom{font-family:Outfit,Arial,sans-serif;color:var(--ink)}.contact-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#f4faf6;border-bottom:1px solid var(--line);padding:22px clamp(24px,6vw,72px);gap:0}.contact-strip__item{display:flex;gap:14px;align-items:flex-start;padding:0 24px;border-right:1px solid #d7e5db}.contact-strip__item:first-child{padding-left:0}.contact-strip__item:last-child{border:0}.contact-strip .contact-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:#dff3e5;color:var(--green);font-size:21px}.contact-strip .contact-icon img{display:block;width:20px;height:20px;object-fit:contain}.contact-strip b,.contact-strip a,.contact-strip span,.contact-strip small{display:block}.contact-strip b{font-size:13px;margin-bottom:6px}.contact-strip a{color:var(--ink);font-weight:600;text-decoration:none;font-size:13px}.contact-strip span{font-size:12px;line-height:1.35}.contact-strip small{font-size:11px;color:#687a70;margin-top:3px}.contact-strip a:last-child{color:var(--green);font-size:11px;margin-top:7px}.enquiry{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);gap:clamp(32px,7vw,90px);padding:68px clamp(24px,7vw,90px);background:#fff}.eyebrow{color:#248840;font-size:11px;letter-spacing:.2em;font-weight:600;margin:0 0 10px}.enquiry h2,.conversation h2{font-size:clamp(36px,4vw,56px);line-height:1.02;margin:0 0 14px;letter-spacing:-.03em}.enquiry h2 em,.conversation h2 em{color:#13813b;font-style:normal}.intro{font-size:16px;line-height:1.45;margin:0 0 24px}.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.enquiry-form label{font-size:13px;font-weight:500}.enquiry-form sup{color:#d33}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font:inherit;width:100%;margin-top:7px;border:1px solid #d9e1dc;border-radius:8px;padding:13px 14px;color:var(--ink);background:#fff}.enquiry-form textarea{resize:vertical}.enquiry-form .full{grid-column:1/-1}.phone{display:flex}.phone select{width:68px;border-radius:8px 0 0 8px}.phone input{border-left:0;border-radius:0 8px 8px 0}.enquiry-form button,.conversation a{border:0;border-radius:24px;background:var(--green);color:#fff;padding:14px 22px;font:600 14px Outfit;cursor:pointer;width:max-content}.enquiry-form button span,.conversation a span{margin-left:20px;font-size:18px}.form-status{grid-column:1/-1;margin:0;color:var(--green);font-size:13px}.office-card{position:relative;min-height:510px;border-radius:14px;overflow:hidden;background:#123d29}.office-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.office-card__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,44,27,.98),rgba(3,44,27,.08) 75%)}.office-card__content{position:absolute;inset:auto 34px 30px;color:#fff}.office-card h3{font-size:23px;margin:0 0 22px}.office-card p{font-size:15px;line-height:1.35;margin:10px 0}.script{position:absolute;right:0;bottom:0;font-size:24px!important;line-height:1.05!important;font-style:italic;transform:rotate(-8deg)}.contact-bottom{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;padding:0 clamp(24px,7vw,90px) 72px;background:#fff}.map-card{position:relative;height:260px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.map-card iframe{width:100%;height:100%;border:0;filter:saturate(.8)}.map-label{position:absolute;top:18px;left:25%;background:#fff;padding:13px 18px;border-radius:8px;box-shadow:0 5px 20px #24463325;font-size:12px}.map-label span{display:block;margin-top:5px;line-height:1.35}.conversation{background:var(--pale);border-radius:12px;padding:35px 40px}.conversation h2{font-size:36px}.conversation p:not(.eyebrow){max-width:430px;line-height:1.45}.conversation a{display:inline-block;margin-top:10px;text-decoration:none}@media(max-width:800px){.contact-strip{grid-template-columns:1fr 1fr;gap:20px}.contact-strip__item,.contact-strip__item:first-child{padding:0;border:0}.enquiry,.contact-bottom{grid-template-columns:1fr;padding:48px 20px}.office-card{min-height:420px}.contact-bottom{padding-top:0}.map-card{height:240px}}@media(max-width:520px){.contact-strip{grid-template-columns:1fr;padding:18px 20px}.enquiry-form{grid-template-columns:1fr}.enquiry-form .full{grid-column:auto}.enquiry-form button,.form-status{grid-column:auto}.desktop-only{display:none}.conversation{padding:28px 24px}.script{font-size:20px!important}.map-label{left:12px;top:12px}}




@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap');
.land-process{--lp-ink:#f5f7f1;--lp-muted:#a7bbb0;--lp-green:#96cf63;--lp-dark:#0e3527;background:#0d3527;color:var(--lp-ink);font-family:Outfit,Arial,sans-serif;overflow:hidden}.land-process__inner{max-width:1320px;margin:auto;padding:clamp(70px,9vw,130px) clamp(22px,5vw,72px) 32px}.land-process__header{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,430px);gap:50px;align-items:end;margin-bottom:52px}.land-process__eyebrow{display:inline-block;color:var(--lp-green);font-size:11px;letter-spacing:.25em;font-weight:600;margin-bottom:18px}.land-process h2{font-size:clamp(44px,6vw,82px);line-height:.95;letter-spacing:-.045em;margin:0;font-weight:500}.land-process h2 span{color:var(--lp-green)}.land-process__tabs{border-left:1px solid #527264}.land-process__tab{appearance:none;width:100%;border:0;border-bottom:1px solid #365e4c;background:transparent;color:var(--lp-muted);display:grid;grid-template-columns:48px 1fr 24px;align-items:center;text-align:left;padding:17px 10px 17px 20px;font:500 18px Outfit;cursor:pointer;transition:.3s ease}.land-process__tab i{font-style:normal;font-size:13px;color:var(--lp-muted)}.land-process__tab b{font-size:20px;font-weight:400;opacity:0;transform:translate(-8px,8px);transition:.3s}.land-process__tab:hover,.land-process__tab.is-active{color:#fff;background:#164534}.land-process__tab.is-active i{color:var(--lp-green)}.land-process__tab.is-active b{opacity:1;transform:none;color:var(--lp-green)}.land-process__panel{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);min-height:480px;background:#174333;border-radius:22px;overflow:hidden;box-shadow:0 25px 70px #061d143d}.land-process__media{position:relative;min-height:350px;overflow:hidden}.land-process__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,#174333cc)}.land-process__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .35s}.land-process__media-tag{position:absolute;z-index:1;left:24px;bottom:22px;padding:8px 11px;border:1px solid #ffffff70;border-radius:30px;background:#0d352799;color:#fff;font-size:10px;letter-spacing:.15em}.land-process__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,4vw,65px)}.land-process__number{font-size:13px;letter-spacing:.15em;color:var(--lp-green);margin-bottom:24px}.land-process__copy h3{font-size:clamp(34px,4vw,58px);line-height:1;margin:0 0 22px;font-weight:500;letter-spacing:-.03em}.land-process__copy>p{color:#d7e1db;line-height:1.6;font-size:16px;max-width:380px;margin:0}.land-process__rule{width:55px;height:3px;background:var(--lp-green);margin:30px 0 20px}.land-process__copy .land-process__note{color:var(--lp-muted);font-size:11px;letter-spacing:.2em;font-weight:600}.land-process__progress{height:2px;background:#4c705f;margin-top:34px;width:100%;max-width:260px}.land-process__progress span{display:block;height:100%;width:33.33%;background:var(--lp-green);transition:width .4s ease}.land-process__footer{display:flex;justify-content:space-between;padding-top:25px;color:#8ba99b;font-size:10px;letter-spacing:.18em}.land-process__footer b{color:var(--lp-green);font-size:17px;margin-left:8px}.reveal-land{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal-land.is-visible{opacity:1;transform:none}@media(max-width:800px){.land-process__header{grid-template-columns:1fr;gap:30px}.land-process__tabs{border-left:0;display:grid;grid-template-columns:repeat(3,1fr)}.land-process__tab{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 10px;border:1px solid #365e4c;border-width:1px 1px 1px 0;font-size:14px}.land-process__tab:first-child{border-left:1px solid #365e4c}.land-process__tab b{display:none}.land-process__panel{grid-template-columns:1fr}.land-process__media{height:340px}.land-process__media:after{background:linear-gradient(0deg,#174333cc,transparent 65%)}.land-process__copy{padding:34px 26px}.land-process__footer{gap:15px;line-height:1.5}.land-process__footer span:last-child{text-align:right}}@media(max-width:480px){.land-process__inner{padding-top:58px}.land-process h2{font-size:46px}.land-process__tabs{grid-template-columns:1fr}.land-process__tab{display:grid;grid-template-columns:42px 1fr 20px;flex-direction:initial;align-items:center;border-width:0 0 1px}.land-process__tab:first-child{border-left:0}.land-process__tab b{display:block}.land-process__media{height:260px;min-height:0}.land-process__copy h3{font-size:38px}.land-process__footer{flex-direction:column}.land-process__footer span:last-child{text-align:left}}

.land-process__progress span { width: 16.666%; }

@media (max-width: 800px) {
  .land-process__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .land-process__tab span { line-height: 1.25; }
}

@media (max-width: 520px) {
  .land-process__tabs { grid-template-columns: 1fr; }
}






  .djg-whyhero,
  .djg-whyhero * {
    box-sizing: border-box;
  }

  .djg-whyhero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 580px;
    min-height: 100svh;
    display: grid;
    align-items: center;
    background: #dce8e0;
    color: #10251f;
    font-family: "Outfit", sans-serif;
  }

  .djg-whyhero__video,
  .djg-whyhero__overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }

  .djg-whyhero__video {
    z-index: -2;
    object-fit: cover;
    object-position: center;
  }

  .djg-whyhero__overlay {
    z-index: -1;
    background: linear-gradient(90deg, rgb(0 0 0) 0%, rgb(0 0 0 / 87%) 24%, rgb(0 0 0 / 79%) 38%, rgb(0 0 0 / 30%) 56%, rgb(0 0 0 / 0%) 75%)
  }

  .djg-whyhero__container {
    width: min(100% - 64px, 1280px);
    margin-inline: auto;
    padding-block: 90px;
  }

  .djg-whyhero__content {
    width: min(100%, 510px);
    animation: djgWhyHeroEnter 800ms ease-out both;
  }

  .djg-whyhero__eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
  }

  .djg-whyhero__eyebrow::before {
    content: "";
    width: 28px;
    height: 1px;
    background: #fff;
  }

  .djg-whyhero h1 {
    margin: 0 0 34px;
    font-family: inherit;
    font-size: clamp(64px, 7.5vw, 104px);
    font-weight: 600;
    line-height: 1.03;
    letter-spacing: -0.045em;
    color: #fff;
  }

  .djg-whyhero h1 span {
    color: #fff;
  }

  .djg-whyhero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    min-height: 48px;
    padding: 12px 24px;
    border-radius: 999px;
    background: #076629;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background 200ms ease, transform 200ms ease;
  }

  .djg-whyhero__button:hover {
    background: #064d22;
    transform: translateY(-2px);
  }

  .djg-whyhero__button span {
    font-size: 22px;
    line-height: 1;
  }

  .djg-whyhero__values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 420px;
    margin: 44px 0 0;
    padding: 0;
    list-style: none;
  }

  .djg-whyhero__values li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-inline: 24px;
    border-right: 1px solid rgba(22, 95, 50, 0.2);
  }

  .djg-whyhero__values li:first-child {
    padding-left: 0;
  }

  .djg-whyhero__values li:last-child {
    padding-right: 0;
    border-right: 0;
  }

  .djg-whyhero__values svg {
    width: 32px;
    height: 32px;
    stroke: #fff;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .djg-whyhero__values span {
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
  }

  .djg-whyhero__playback {
    position: absolute;
    right: 24px;
    bottom: 24px;
    padding: 10px 16px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 999px;
    background: rgba(7, 43, 26, 0.85);
    color: #fff;
    font: 500 12px "Outfit", sans-serif;
    cursor: pointer;
  }

  .djg-whyhero :focus-visible {
    outline: 3px solid #75bc42;
    outline-offset: 5px;
  }

  @keyframes djgWhyHeroEnter {
    from {
      opacity: 0;
      transform: translateY(22px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @media (max-width: 767px) {
    .djg-whyhero {
      min-height: 100svh;
      align-items: start;
    }

    .djg-whyhero__container {
      width: calc(100% - 40px);
      padding-block: clamp(82px, 12svh, 112px) clamp(120px, 18svh, 180px);
    }

    .djg-whyhero__overlay {
      background: linear-gradient(
        180deg,
        rgba(249, 252, 250, 0.98) 0%,
        rgba(249, 252, 250, 0.95) 40%,
        rgba(249, 252, 250, 0.55) 65%,
        rgba(249, 252, 250, 0.02) 100%
      );
    }

    .djg-whyhero__video {
      object-position: 65% center;
    }

    .djg-whyhero h1 {
      font-size: clamp(60px, 14vw, 82px);
      margin-bottom: 26px;
    }

    .djg-whyhero__values {
      margin-top: 32px;
    }

    .djg-whyhero__values li {
      padding-inline: 14px;
    }

    .djg-whyhero__values span {
      font-size: 12px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .djg-whyhero__content {
      animation: none;
    }

    .djg-whyhero__button {
      transition: none;
    }
  }




  /* Outfit is already loaded by the hero section. */

.djgwhy-challenge,
.djgwhy-approach,
.djgwhy-record,
.djgwhy-values {
  --djgwhy-green: #09652c;
  --djgwhy-ink: #112620;
  --djgwhy-muted: #56645c;
  font-family: "Outfit", Arial, sans-serif;
  color: var(--djgwhy-ink);
  padding: clamp(56px, 7vw, 96px) 0;
}

:is(
  .djgwhy-challenge,
  .djgwhy-approach,
  .djgwhy-record,
  .djgwhy-values
) *,
:is(
  .djgwhy-challenge,
  .djgwhy-approach,
  .djgwhy-record,
  .djgwhy-values
) *::before,
:is(
  .djgwhy-challenge,
  .djgwhy-approach,
  .djgwhy-record,
  .djgwhy-values
) *::after {
  box-sizing: border-box;
}

.djgwhy-container {
  width: min(1280px, calc(100% - 64px));
  margin-inline: auto;
}

.djgwhy-eyebrow {
  display: block;
  margin-bottom: 14px;
  color: var(--djgwhy-green);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.2em;
}

:is(
  .djgwhy-challenge,
  .djgwhy-approach,
  .djgwhy-record,
  .djgwhy-values
) h2 {
  margin: 0;
  font: 500 clamp(28px, 3vw, 42px) / 1.16 "Outfit", Arial, sans-serif;
  letter-spacing: -0.025em;
  color: var(--djgwhy-ink);
}

:is(
  .djgwhy-challenge,
  .djgwhy-approach,
  .djgwhy-record,
  .djgwhy-values
) h3 {
  font-family: inherit;
}

:is(
  .djgwhy-challenge,
  .djgwhy-approach,
  .djgwhy-record,
  .djgwhy-values
) p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--djgwhy-muted);
}

.djgwhy-section-heading {
  max-width: 900px;
  margin: 0 auto 38px;
  text-align: center;
}

.djgwhy-section-heading p {
  max-width: 760px;
  margin: 16px auto 0;
}

.djgwhy-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-height: 48px;
  margin-top: 16px;
  padding: 12px 23px;
  border-radius: 999px;
  background: var(--djgwhy-green);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background 200ms ease, transform 200ms ease;
}

.djgwhy-button:hover {
  background: #064c22;
  transform: translateY(-2px);
}

.djgwhy-button:focus-visible {
  outline: 3px solid #78bd51;
  outline-offset: 5px;
}

.djgwhy-button span {
  font-size: 22px;
}

/* Global challenge */

.djgwhy-challenge {
  background: #fcfefd;
}

.djgwhy-challenge__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 6vw, 88px);
}

.djgwhy-challenge h2 span {
  color: var(--djgwhy-green);
}

.djgwhy-challenge p {
  margin: 20px 0 0;
}

.djgwhy-challenge__visual {
  position: relative;
  min-width: 0;
  height: 390px;
  margin: 0;
  overflow: hidden;
  border-radius: 100px 18px 18px 100px;
  background: #173f2d;
}

.djgwhy-challenge__visual > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.djgwhy-challenge__caption {
  position: absolute;
  inset: 0 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 47%;
  padding: 28px;
  background: rgba(8, 44, 28, 0.94);
  color: #fff;
  text-align: center;
}

.djgwhy-challenge__caption svg {
  width: 44px;
  height: 44px;
  margin-bottom: 22px;
  stroke: #d7eddb;
  stroke-width: 1.6;
}

.djgwhy-challenge__caption strong {
  font-size: clamp(18px, 1.8vw, 25px);
  font-weight: 500;
  line-height: 1.3;
}

.djgwhy-challenge__caption > span {
  width: 70px;
  height: 1px;
  margin-top: 26px;
  background: #87ad8b;
}

.djgwhy-challenge__caption p {
  margin-top: 22px;
  font-size: 15px;
  line-height: 1.5;
  color: #e2ede5;
}

/* Approach */

.djgwhy-approach {
  background: #f3f5ef;
  scroll-margin-top: 100px;
}

.djgwhy-approach__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.djgwhy-method {
  min-width: 0;
  padding: 9px;
  border: 1px solid #e5ebe4;
  border-radius: 16px;
  background: #fff;
  transition: box-shadow 250ms ease;
}

.djgwhy-method:hover {
  box-shadow: 0 16px 38px rgba(24, 68, 39, 0.1);
}

.djgwhy-method__image {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 1.85;
  background: #dce8d9;
}

.djgwhy-method__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms ease;
}

.djgwhy-method:hover .djgwhy-method__image img {
  transform: scale(1.045);
}

.djgwhy-method__number {
  position: absolute;
  top: 12px;
  right: 12px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(8, 49, 26, 0.75);
  color: #fff;
  font-size: 12px;
}

.djgwhy-method__body {
  position: relative;
  padding: 39px 16px 22px;
}

.djgwhy-method__icon {
  position: absolute;
  top: -32px;
  left: 14px;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 5px solid #fff;
  border-radius: 50%;
  background: var(--djgwhy-green);
}

.djgwhy-method__icon svg {
  width: 28px;
  height: 28px;
  stroke: #fff;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.djgwhy-method h3 {
  margin: 0 0 12px;
  font-size: 23px;
  font-weight: 500;
  letter-spacing: -0.02em;
}

.djgwhy-method p {
  margin: 0;
}

.djgwhy-method__label {
  display: block;
  margin-top: 23px;
  color: var(--djgwhy-green);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
}

/* Track record */

.djgwhy-record {
  background:
    linear-gradient(rgba(247, 252, 248, 0.92), rgba(236, 246, 237, 0.95)),
    url("images/whyus/green-landscape.jpg") center / cover;
}

.djgwhy-record__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
}

.djgwhy-stat {
  position: relative;
  min-width: 0;
  padding: 86px 16px 26px;
  border: 1px solid #e0eae1;
  border-bottom: 3px solid #26833a;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.94);
  text-align: center;
}

.djgwhy-stat dt {
  margin-top: 55px;
  color: var(--djgwhy-muted);
  font-size: 14px;
}

.djgwhy-stat dt svg {
  position: absolute;
  top: 25px;
  left: 50%;
  width: 42px;
  height: 42px;
  transform: translateX(-50%);
  stroke: var(--djgwhy-green);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.djgwhy-stat dd {
  position: absolute;
  top: 85px;
  left: 0;
  width: 100%;
  margin: 0;
  padding-inline: 8px;
  color: var(--djgwhy-green);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.035em;
}

.djgwhy-stat dd span {
  font-size: 0.8em;
}

/* Values */

.djgwhy-values {
  background: #fcfdfb;
}

.djgwhy-values__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.djgwhy-value {
  padding: 4px 26px;
  text-align: center;
  border-right: 1px solid #d7e2d8;
}

.djgwhy-value:last-child {
  border-right: 0;
}

.djgwhy-value > svg {
  width: 47px;
  height: 47px;
  margin-bottom: 18px;
  stroke: var(--djgwhy-green);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.djgwhy-value h3 {
  margin: 0 0 12px;
  font-size: 21px;
  font-weight: 500;
}

.djgwhy-value p {
  margin: 0 auto;
  max-width: 250px;
  font-size: 15px;
}

/* Content stays visible when JavaScript is unavailable. */

.djgwhy-reveal.djgwhy-reveal--pending {
  opacity: 0;
  transform: translateY(24px);
}

.djgwhy-reveal.djgwhy-reveal--ready {
  transition: opacity 650ms ease, transform 650ms ease;
}

/* Tablet */

@media (max-width: 1000px) {
  .djgwhy-challenge__grid {
    gap: 32px;
  }

  .djgwhy-challenge__visual {
    height: 370px;
    border-top-left-radius: 60px;
    border-bottom-left-radius: 60px;
  }

  .djgwhy-challenge__caption {
    width: 50%;
    padding: 18px;
  }

  .djgwhy-record__grid,
  .djgwhy-values__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .djgwhy-value:nth-child(2) {
    border-right: 0;
  }

  .djgwhy-value {
    padding-block: 15px;
  }

  .djgwhy-stat dd {
    font-size: 40px;
  }
}

/* Mobile */

@media (max-width: 767px) {
  .djgwhy-container {
    width: calc(100% - 40px);
  }

  .djgwhy-challenge__grid,
  .djgwhy-approach__grid {
    grid-template-columns: 1fr;
  }

  .djgwhy-challenge__visual {
    height: 350px;
    border-radius: 18px;
  }

  .djgwhy-challenge__caption {
    width: 46%;
  }

  .djgwhy-method__image {
    aspect-ratio: 1.9;
  }

  .djgwhy-section-heading {
    margin-bottom: 30px;
  }

  .djgwhy-stat {
    padding-inline: 10px;
  }

  .djgwhy-stat dd {
    font-size: clamp(26px, 6.5vw, 38px);
  }

  .djgwhy-value {
    padding-inline: 12px;
  }
}

@media (max-width: 420px) {
  .djgwhy-record__grid {
    gap: 12px;
  }

  .djgwhy-values__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .djgwhy-value,
  .djgwhy-value:nth-child(2) {
    padding: 25px 12px;
    border-right: 0;
    border-bottom: 1px solid #d7e2d8;
  }

  .djgwhy-value:last-child {
    border-bottom: 0;
  }

  .djgwhy-challenge__caption {
    width: 50%;
    padding: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .djgwhy-reveal.djgwhy-reveal--pending {
    opacity: 1;
    transform: none;
  }

  .djgwhy-reveal.djgwhy-reveal--ready,
  .djgwhy-method,
  .djgwhy-method__image img,
  .djgwhy-button {
    transition: none;
  }

  .djgwhy-method:hover .djgwhy-method__image img,
  .djgwhy-button:hover {
    transform: none;
  }
}







  .djgh-hero,
  .djgh-hero *,
  .djgh-dialog,
  .djgh-dialog * {
    box-sizing: border-box;
  }

  .djgh-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: 620px;
    min-height: 100svh;
    overflow: hidden;
    /*background: #09271b;*/
    color: #fff;
    font-family: "Outfit", Arial, sans-serif;
  }

  .djgh-hero__video,
  .djgh-hero__overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }

  .djgh-hero__video {
    z-index: -2;
    object-fit: cover;
    object-position: center;
  }

  .djgh-hero__overlay {
    z-index: -1;
    background:
      linear-gradient(
        0deg,
        rgba(2, 22, 13, 0.48),
        transparent 55%
      ),
      linear-gradient(
        90deg,
        rgba(2, 22, 13, 0.94) 0%,
        rgba(2, 22, 13, 0.82) 30%,
        rgba(2, 22, 13, 0.42) 58%,
        rgba(2, 22, 13, 0.12) 100%
      );
  }

  .djgh-hero__container {
    width: min(1280px, calc(100% - 80px));
    margin-inline: auto;
    padding-block: 100px;
  }

  .djgh-hero__content {
    width: min(100%, 720px);
  }

  .djgh-hero__label {
    display: block;
    margin-bottom: 22px;
    color: #a3dc78;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.22em;
    animation: djgh-enter 700ms ease-out both;
  }

  .djgh-hero h1 {
    margin: 0;
    color: #fff;
    font-family: inherit;
    font-size: clamp(48px, 5.6vw, 82px);
    font-weight: 500;
    line-height: 1.03;
    letter-spacing: -0.035em;
    text-wrap: balance;
    animation: djgh-enter 800ms ease-out 100ms both;
  }

  .djgh-hero h1 span {
    color: #79d653;
  }

  .djgh-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 36px;
    animation: djgh-enter 800ms ease-out 200ms both;
  }

  .djgh-hero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-height: 50px;
    padding: 13px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font: 500 14px/1.3 "Outfit", Arial, sans-serif;
    text-decoration: none;
    cursor: pointer;
    transition:
      background 200ms ease,
      border-color 200ms ease,
      transform 200ms ease;
  }

  .djgh-hero__button--primary {
    background: #79d653;
    color: #10371b;
  }

  .djgh-hero__button--primary:hover {
    background: #94e46e;
    transform: translateY(-2px);
  }

  .djgh-hero__button--outline {
    border-color: #b2d69c;
    background: rgba(5, 33, 19, 0.45);
    color: #fff;
  }

  .djgh-hero__button--outline:hover {
    border-color: #fff;
    background: rgba(24, 72, 39, 0.8);
    transform: translateY(-2px);
  }

  .djgh-hero__button svg {
    flex: 0 0 auto;
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .djgh-hero__pause {
    position: absolute;
    right: 24px;
    bottom: 20px;
    min-height: 40px;
    padding: 9px 15px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 999px;
    background: rgba(3, 26, 15, 0.78);
    color: #fff;
    font: 400 12px "Outfit", Arial, sans-serif;
    cursor: pointer;
  }

  .djgh-hero [hidden] {
    display: none !important;
  }

  .djgh-hero :focus-visible,
  .djgh-dialog :focus-visible {
    outline: 3px solid #b5f087;
    outline-offset: 5px;
  }

  /* Native dialog provides modal focus handling and Escape support. */

  .djgh-dialog {
    width: min(1000px, calc(100% - 32px));
    max-height: 90vh;
    max-height: 90svh;
    margin: auto;
    padding: 16px;
    overflow: auto;
    border: 1px solid #33533f;
    border-radius: 16px;
    background: #092519;
    color: #fff;
    font-family: "Outfit", Arial, sans-serif;
  }

  .djgh-dialog::backdrop {
    background: rgba(0, 12, 6, 0.88);
  }

  .djgh-dialog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
  }

  .djgh-dialog__header h2 {
    margin: 0;
    color: #fff;
    font: 500 20px/1.3 "Outfit", Arial, sans-serif;
  }

  .djgh-dialog__close {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border: 1px solid #58705f;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 28px;
    cursor: pointer;
  }

  .djgh-dialog__video {
    display: block;
    width: 100%;
    max-height: 70vh;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    background: #000;
    object-fit: contain;
  }

  @keyframes djgh-enter {
    from {
      opacity: 0;
      transform: translateY(20px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @media (max-width: 767px) {
    .djgh-hero {
      min-height: 100svh;
    }

    .djgh-hero__container {
      width: calc(100% - 40px);
      padding-block: clamp(82px, 12svh, 104px);
    }

    .djgh-hero__video {
      object-position: 62% center;
    }

    .djgh-hero__overlay {
      background: linear-gradient(
        90deg,
        rgba(2, 22, 13, 0.92),
        rgba(2, 22, 13, 0.62)
      );
    }

    .djgh-hero__label {
      font-size: 10px;
      letter-spacing: 0.18em;
    }

    .djgh-hero h1 {
      font-size: clamp(40px, 8.5vw, 64px);
    }

    .djgh-hero__actions {
      gap: 12px;
      margin-top: 30px;
    }

    .djgh-hero__button {
      padding-inline: 20px;
      gap: 16px;
    }
  }

  @media (max-width: 380px) {
    .djgh-hero__actions {
      align-items: flex-start;
      flex-direction: column;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .djgh-hero__label,
    .djgh-hero h1,
    .djgh-hero__actions {
      animation: none;
    }

    .djgh-hero__button {
      transition: none;
    }

    .djgh-hero__button:hover {
      transform: none;
    }
  }






  .djg-partners,
  .djg-partners * {
    box-sizing: border-box;
  }

  .djg-partners {
    padding: clamp(48px, 6vw, 84px) 0;
    background: #f7fbf8;
    color: #102b20;
    font-family: "Outfit", Arial, sans-serif;
  }

  .djg-partners__container {
    width: min(1280px, calc(100% - 80px));
    margin-inline: auto;
  }

  .djg-partners__header {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    align-items: end;
    gap: 40px;
    margin-bottom: 32px;
  }

  .djg-partners__label {
    display: block;
    margin-bottom: 12px;
    color: #237a42;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.5;
  }

  .djg-partners__header h2 {
    margin: 0;
    color: #102b20;
    font: 500 clamp(28px, 3vw, 40px)/1.16 "Outfit", Arial, sans-serif;
    letter-spacing: -0.035em;
  }

  .djg-partners__header > p {
    max-width: 390px;
    margin: 0 0 2px auto;
    color: #596a60;
    font-size: 15px;
    line-height: 1.65;
  }

  .djg-partners__mobile-break {
    display: none;
  }

  .djg-partners__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
  }

  .djg-partners__card {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    min-height: 350px;
    padding: 25px;
    overflow: hidden;
    border: 1px solid #dce9df;
    border-radius: 12px;
    background: #e3eee7;
    color: #102b20;
    text-decoration: none;
    box-shadow: 0 5px 18px rgba(15, 56, 32, 0.04);
    transition:
      transform 250ms ease,
      box-shadow 250ms ease,
      border-color 250ms ease;
  }

  .djg-partners__card > img {
    position: absolute;
    z-index: -2;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    transition: transform 650ms ease;
  }

  .djg-partners__card::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(
      180deg,
      rgba(245, 251, 247, 0.98) 0%,
      rgba(245, 251, 247, 0.94) 32%,
      rgba(245, 251, 247, 0.65) 52%,
      rgba(245, 251, 247, 0.04) 80%
    );
    pointer-events: none;
  }

  .djg-partners__number {
    display: block;
    margin-bottom: 8px;
    color: #147537;
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
  }

  .djg-partners__copy h3 {
    margin: 0 0 10px;
    color: #102b20;
    font: 600 23px/1.12 "Outfit", Arial, sans-serif;
    letter-spacing: -0.025em;
    overflow-wrap: anywhere;
  }

  .djg-partners__copy p {
    max-width: 210px;
    margin: 0;
    color: #40574a;
    font-size: 14px;
    line-height: 1.5;
  }

  .djg-partners__arrow {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    margin-top: 20px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    background: #08722f;
    color: #fff;
    transition: background 250ms ease, transform 250ms ease;
  }

  .djg-partners__arrow svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .djg-partners__card:focus-visible {
    outline: 3px solid #247a3f;
    outline-offset: 5px;
  }

  @media (hover: hover) {
    .djg-partners__card:hover {
      transform: translateY(-6px);
      border-color: #9ac9a5;
      box-shadow: 0 16px 32px rgba(15, 56, 32, 0.12);
    }

    .djg-partners__card:hover > img {
      transform: scale(1.045);
    }

    .djg-partners__card:hover .djg-partners__arrow {
      background: #064f23;
      transform: translateX(4px);
    }
  }

  .djg-partners__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }

  @keyframes djgPartnersReveal {
    from {
      opacity: 0;
      translate: 0 22px;
    }
    to {
      opacity: 1;
      translate: 0 0;
    }
  }

  .djg-partners__card.is-entering {
    animation: djgPartnersReveal 650ms ease both;
    animation-delay: var(--djg-partners-delay, 0ms);
  }

  @media (max-width: 1050px) {
    .djg-partners__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .djg-partners__card {
      min-height: 370px;
    }
  }

  @media (max-width: 767px) {
    .djg-partners__container {
      width: calc(100% - 40px);
    }

    .djg-partners__header {
      grid-template-columns: 1fr;
      gap: 16px;
      margin-bottom: 25px;
    }

    .djg-partners__header > p {
      max-width: 520px;
      margin: 0;
    }

    .djg-partners__mobile-break {
      display: block;
    }

    .djg-partners__grid {
      gap: 16px;
    }

    .djg-partners__card {
      min-height: 330px;
      padding: 20px;
    }

    .djg-partners__copy h3 {
      font-size: 22px;
    }
  }

  @media (max-width: 520px) {
    .djg-partners__grid {
      grid-template-columns: 1fr;
    }

    .djg-partners__card {
      min-height: 360px;
      padding: 25px;
    }

    .djg-partners__copy h3 {
      font-size: 26px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .djg-partners__card,
    .djg-partners__card > img,
    .djg-partners__arrow {
      transition: none;
    }

    .djg-partners__card.is-entering {
      animation: none;
    }

    .djg-partners__card:hover,
    .djg-partners__card:hover > img,
    .djg-partners__card:hover .djg-partners__arrow {
      transform: none;
    }
  }




  /* Outfit is already loaded by your hero section. */

:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) {
  --home-green: #08652d;
  --home-lime: #8cdb60;
  --home-ink: #112d21;
  --home-muted: #58685f;
  font-family: "Outfit", Arial, sans-serif;
  color: var(--home-ink);
}

:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) *,
:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) *::before,
:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) *::after {
  box-sizing: border-box;
}

.djghome-container {
  width: min(1280px, calc(100% - 80px));
  margin-inline: auto;
}

.djghome-label {
  display: block;
  margin-bottom: 14px;
  color: var(--home-green);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.18em;
}

:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) h2 {
  margin: 0;
  font: 500 clamp(29px, 3.2vw, 44px)/1.12
    "Outfit", Arial, sans-serif;
  letter-spacing: -0.035em;
}

:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) h2 span {
  color: var(--home-green);
}

:is(
  .djghome-purpose,
  .djghome-process,
  .djghome-services,
  .djghome-impact,
  .djghome-testimonials
) p {
  font-size: 15px;
  line-height: 1.65;
}

.djghome-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-height: 48px;
  padding: 12px 23px;
  border-radius: 999px;
  background: var(--home-green);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: transform 200ms ease, background 200ms ease;
}

.djghome-button span {
  font-size: 22px;
  line-height: 1;
}

.djghome-button--lime {
  background: var(--home-lime);
  color: #133820;
}

.djghome-button:hover {
  transform: translateY(-2px);
  background: #104d27;
  color: #fff;
}

.djghome-button--lime:hover {
  background: #a6e982;
  color: #133820;
}

.djghome-button:focus-visible,
.djghome-service:focus-visible {
  outline: 3px solid #68af43;
  outline-offset: 5px;
}

.djghome-heading-row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: end;
  gap: 40px;
  margin-bottom: 44px;
}

.djghome-heading-row > p {
  max-width: 390px;
  margin: 0 0 2px auto;
  color: var(--home-muted);
}

/* OUR PURPOSE */

.djghome-purpose {
  padding: clamp(48px, 6vw, 80px) 0;
  background: #062d1d;
  color: #fff;
}

.djghome-purpose__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.35fr);
  align-items: center;
  gap: clamp(30px, 5vw, 70px);
}

.djghome-purpose .djghome-label {
  color: #9bda77;
}

.djghome-purpose h2 {
  color: #fff;
}

.djghome-purpose h2 span {
  color: #b6df71;
}

.djghome-purpose__copy > p {
  max-width: 420px;
  margin: 22px 0;
  color: #d3e0d6;
}

.djghome-checklist {
  display: grid;
  gap: 12px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}

.djghome-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 14px;
  line-height: 1.5;
}

.djghome-checklist li::before {
  content: "✓";
  display: grid;
  place-items: center;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #80cd55;
  color: #123820;
  font-size: 13px;
}

.djghome-purpose__visual {
  min-width: 0;
}

/* BEFORE / AFTER */

.djghome-comparison {
  position: relative;
  aspect-ratio: 1.8;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 12px;
  background: #345c42;
}

.djghome-comparison__after,
.djghome-comparison__before,
.djghome-comparison__before img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.djghome-comparison img {
  object-fit: cover;
}

.djghome-comparison__before {
  clip-path: inset(
    0 calc(100% - var(--comparison-position)) 0 0
  );
}

.djghome-comparison__label {
  position: absolute;
  z-index: 2;
  bottom: 16px;
  padding: 9px 12px;
  border-radius: 6px;
  background: rgba(246, 251, 243, 0.92);
  color: #143b23;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  pointer-events: none;
}

.djghome-comparison__label--before {
  left: 16px;
}

.djghome-comparison__label--after {
  right: 16px;
}

.djghome-comparison__divider {
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: var(--comparison-position);
  width: 2px;
  background: #fff;
  transform: translateX(-50%);
  pointer-events: none;
}

.djghome-comparison__divider span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #dce8d9;
  border-radius: 50%;
  background: #fff;
  color: #12642f;
  font-size: 30px;
  line-height: 1;
  transform: translate(-50%, -50%);
  box-shadow: 0 4px 18px #0002;
}

.djghome-comparison__range {
  position: absolute;
  z-index: 4;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: ew-resize;
  touch-action: pan-y;
}

.djghome-comparison:focus-within {
  outline: 3px solid #b6ef8e;
  outline-offset: 5px;
}

.djghome-purpose .djghome-comparison__caption {
  margin: 9px 0 0;
  color: #a9c4b2;
  font-size: 11px;
  text-align: right;
}

.djghome-mini-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 26px 0 0;
}

.djghome-mini-stats > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.djghome-mini-stats dt {
  color: #bdd0c3;
  font-size: 11px;
  line-height: 1.4;
}

.djghome-mini-stats dd {
  order: -1;
  margin: 0;
  color: #fff;
  font-size: clamp(19px, 2vw, 28px);
  font-weight: 600;
  letter-spacing: -0.03em;
}

/* THE TRANSFORMATION */

.djghome-process {
  padding: clamp(52px, 6vw, 84px) 0;
  background: linear-gradient(120deg, #f7fbf7, #eaf5ed);
}

.djghome-process__steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 36px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.djghome-process__steps > li {
  position: relative;
  min-width: 0;
  text-align: center;
}

.djghome-process__steps > li:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 65px;
  right: -29px;
  color: #27873d;
  font-size: 27px;
}

.djghome-process__image {
  width: min(100%, 150px);
  aspect-ratio: 1;
  margin: 0 auto 17px;
  padding: 5px;
  border: 1px solid #b4d5b6;
  border-radius: 50%;
  background: #fff;
}

.djghome-process__image img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  transition: transform 350ms ease;
}

.djghome-process__steps li:hover img {
  transform: scale(0.95);
}

.djghome-process__number {
  color: var(--home-green);
  font-size: 14px;
  font-weight: 600;
}

.djghome-process__steps h3 {
  margin: 5px 0 0;
  color: #17542c;
  font: 500 16px/1.3 "Outfit", Arial, sans-serif;
}

/* WHAT WE DO */

.djghome-services {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  background: #f8fcf9;
}

.djghome-services__photo {
  min-width: 0;
  min-height: 500px;
}

.djghome-services__photo img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 760px;
  object-fit: cover;
}

.djghome-services__content {
  align-self: center;
  min-width: 0;
  padding: clamp(32px, 4vw, 64px);
}

.djghome-services__intro {
  margin: 18px 0 24px;
  color: var(--home-muted);
}

.djghome-services__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 25px;
}

.djghome-service {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 20px 16px;
  border: 1px solid #e4eee5;
  border-radius: 12px;
  background: #fff;
  color: var(--home-ink);
  text-decoration: none;
  box-shadow: 0 9px 24px rgba(21, 76, 39, 0.05);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.djghome-service:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(21, 76, 39, 0.1);
}

.djghome-service > svg {
  width: 33px;
  height: 33px;
  margin-bottom: 15px;
  fill: none;
  stroke: var(--home-green);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.djghome-service h3 {
  margin: 0 0 10px;
  font: 500 16px/1.25 "Outfit", Arial, sans-serif;
  overflow-wrap: anywhere;
}

.djghome-service p {
  margin: 0 0 18px;
  color: var(--home-muted);
  font-size: 12px;
  line-height: 1.6;
}

.djghome-service__arrow {
  align-self: flex-end;
  margin-top: auto;
  color: var(--home-green);
  font-size: 25px;
}

/* IMPACT */

.djghome-impact {
  padding: 58px 0;
  background: #fbfefb;
}

.djghome-impact__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.djghome-impact__grid > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6px 22px;
  border-right: 1px solid #dce9dd;
  text-align: center;
}

.djghome-impact__grid > div:last-child {
  border-right: 0;
}

.djghome-impact__grid svg {
  order: -2;
  width: 36px;
  height: 36px;
  margin-bottom: 13px;
  fill: none;
  stroke: var(--home-green);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.djghome-impact__grid dt {
  color: #2a4635;
  font-size: 14px;
  line-height: 1.4;
}

.djghome-impact__grid dd {
  order: -1;
  margin: 0 0 8px;
  color: var(--home-green);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  letter-spacing: -0.04em;
}

/* TESTIMONIAL */

.djghome-testimonials {
  overflow: hidden;
  background: #edf4ed;
}

.djghome-testimonials__layout {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1.15fr)
    minmax(0, 0.85fr);
  align-items: center;
  gap: 32px;
}

.djghome-testimonials__intro {
  padding-block: 48px;
}

.djghome-testimonials__intro h2 {
  font-size: clamp(27px, 2.8vw, 36px);
}

.djghome-testimonials__intro p {
  margin: 18px 0 0;
  color: var(--home-muted);
}

.djghome-testimonials__body {
  padding-block: 35px;
}

.djghome-quote {
  position: relative;
  margin: 0;
  padding: 36px 28px 28px;
  border: 1px solid #e3ece2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(17, 58, 31, 0.06);
}

.djghome-quote__mark {
  position: absolute;
  top: 7px;
  left: 20px;
  color: #54a95f;
  font-size: 54px;
  line-height: 1;
}

.djghome-quote blockquote {
  margin: 0;
  color: #53645a;
  font-size: 17px;
  font-style: italic;
  line-height: 1.65;
}

.djghome-quote figcaption {
  display: grid;
  gap: 5px;
  margin-top: 22px;
}

.djghome-quote figcaption strong {
  color: #173d26;
  font-size: 14px;
  font-weight: 500;
}

.djghome-quote figcaption span {
  color: #697b6f;
  font-size: 12px;
}

.djghome-testimonials__photo {
  align-self: stretch;
  min-width: 0;
  min-height: 340px;
}

.djghome-testimonials__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* TABLET */

@media (max-width: 1050px) {
  .djghome-purpose__layout {
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
  }

  .djghome-mini-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .djghome-services {
    grid-template-columns: 1fr;
  }

  .djghome-services__photo {
    height: 380px;
    min-height: 0;
  }

  .djghome-services__content {
    width: min(900px, 100%);
    margin-inline: auto;
  }

  .djghome-testimonials__layout {
    grid-template-columns: 1fr 1.15fr;
  }

  .djghome-testimonials__photo {
    grid-column: 1 / -1;
    height: 350px;
    min-height: 0;
  }

  .djghome-testimonials__photo img {
    object-position: center 30%;
  }
}

/* MOBILE */

@media (max-width: 767px) {
  .djghome-container {
    width: calc(100% - 40px);
  }

  .djghome-purpose__layout,
  .djghome-heading-row,
  .djghome-testimonials__layout {
    grid-template-columns: 1fr;
  }

  .djghome-purpose__layout {
    gap: 32px;
  }

  .djghome-heading-row {
    gap: 18px;
    margin-bottom: 30px;
  }

  .djghome-heading-row > p {
    max-width: none;
    margin: 0;
  }

  .djghome-comparison {
    aspect-ratio: 1.35;
  }

  .djghome-comparison__label {
    bottom: 12px;
    padding: 7px 9px;
    font-size: 9px;
  }

  .djghome-comparison__label--before {
    left: 10px;
  }

  .djghome-comparison__label--after {
    right: 10px;
  }

  .djghome-process__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 20px;
  }

  .djghome-process__steps > li:not(:last-child)::after {
    display: none;
  }

  .djghome-process__steps > li:last-child {
    grid-column: 1 / -1;
  }

  .djghome-services__content {
    padding: 38px 20px;
  }

  .djghome-services__photo {
    height: 300px;
  }

  .djghome-impact__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 0;
  }

  .djghome-impact__grid > div:nth-child(2) {
    border-right: 0;
  }

  .djghome-impact__grid > div {
    padding-inline: 12px;
  }

  .djghome-impact__grid dd {
    font-size: clamp(27px, 6vw, 36px);
  }

  .djghome-testimonials__layout {
    gap: 0;
  }

  .djghome-testimonials__intro {
    padding: 40px 0 0;
  }

  .djghome-testimonials__body {
    padding-block: 25px;
  }

  .djghome-testimonials__photo {
    height: 360px;
  }
}

@media (max-width: 520px) {
  .djghome-services__grid {
    grid-template-columns: 1fr;
  }

  .djghome-service {
    padding: 23px;
  }

  .djghome-service h3 {
    font-size: 21px;
  }

  .djghome-service p {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .djghome-button,
  .djghome-service,
  .djghome-process__image img {
    transition: none;
  }

  .djghome-button:hover,
  .djghome-service:hover,
  .djghome-process__steps li:hover img {
    transform: none;
  }
}













