/* ==========================================================================
   Gorza Services Pty Ltd — main stylesheet
   Built on Bootstrap 5.3. Brand colours sampled from the Gorza logo.
   --------------------------------------------------------------------------
   Contents
   1. Fonts & tokens        6. Page hero            11. Recruitment
   2. Base                  7. Sections & headings  12. First Nations
   3. Buttons               8. Home                 13. Contact & form
   4. Header & navigation   9. About                14. CTA & footer
   5. Home hero            10. Cleaning             15. Animations & utilities
   ========================================================================== */

/* 1. Fonts & tokens ------------------------------------------------------- */
@font-face { font-family: "Outfit"; font-weight: 400; font-display: swap; src: url("../vendor/fonts/outfit-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Outfit"; font-weight: 500; font-display: swap; src: url("../vendor/fonts/outfit-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Outfit"; font-weight: 600; font-display: swap; src: url("../vendor/fonts/outfit-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Outfit"; font-weight: 700; font-display: swap; src: url("../vendor/fonts/outfit-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-weight: 400; font-display: swap; src: url("../vendor/fonts/dm-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-weight: 400; font-style: italic; font-display: swap; src: url("../vendor/fonts/dm-sans-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-weight: 500; font-display: swap; src: url("../vendor/fonts/dm-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "DM Sans"; font-weight: 700; font-display: swap; src: url("../vendor/fonts/dm-sans-latin-700-normal.woff2") format("woff2"); }

:root {
  /* Brand */
  --gz-green: #1d7559;        /* logo wordmark green */
  --gz-green-600: #165f48;
  --gz-deep: #0e3b2f;         /* dark sections */
  --gz-forest: #08271f;       /* footer */
  --gz-lime: #8cc63f;         /* logo leaf */
  --gz-lime-300: #b5dc7f;
  --gz-lime-soft: #edf6e1;
  --gz-mint: #eef5f1;
  --gz-sand: #f6f8f3;
  /* Neutrals */
  --gz-ink: #10241d;
  --gz-body: #4b5d55;
  --gz-muted: #74867e;
  --gz-line: #dde6e0;
  --gz-white: #ffffff;
  /* Shape & depth */
  --gz-radius-sm: 12px;
  --gz-radius: 20px;
  --gz-radius-lg: 32px;
  --gz-leaf: 180px 28px 180px 28px;          /* leaf-shaped image frame */
  --gz-leaf-sm: 110px 20px 110px 20px;
  --gz-shadow-sm: 0 6px 18px -8px rgba(14, 59, 47, .18);
  --gz-shadow: 0 24px 60px -24px rgba(14, 59, 47, .30);
  --gz-shadow-lg: 0 40px 90px -30px rgba(8, 39, 31, .45);
  --gz-ease: cubic-bezier(.22, 1, .36, 1);
  --gz-header-h: 84px;

  /* Bootstrap overrides */
  --bs-body-font-family: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-color: var(--gz-body);
  --bs-body-font-size: 1.0625rem;
  --bs-body-line-height: 1.7;
  --bs-link-color-rgb: 29, 117, 89;
  --bs-link-hover-color-rgb: 22, 95, 72;
  --bs-border-color: var(--gz-line);
  --bs-primary: #1d7559;
  --bs-primary-rgb: 29, 117, 89;
}

/* 2. Base ---------------------------------------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--gz-header-h) + 16px); }
body { -webkit-font-smoothing: antialiased; background: var(--gz-white); overflow-x: hidden; }
h1, h2, h3, h4, h5, h6, .font-display {
  font-family: "Outfit", system-ui, sans-serif;
  color: var(--gz-ink);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.12;
}
h1 { font-size: clamp(2.4rem, 5.2vw, 4.25rem); }
h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.6rem); }
h2 { margin-bottom: 1.2rem; }
p { margin-bottom: 1.1rem; }
a { text-decoration: none; transition: color .25s var(--gz-ease); }
img { max-width: 100%; }
::selection { background: var(--gz-lime); color: var(--gz-forest); }
:focus-visible { outline: 3px solid var(--gz-lime); outline-offset: 3px; border-radius: 6px; }
.skip-link {
  position: absolute; left: 1rem; top: -60px; z-index: 2000;
  background: var(--gz-deep); color: #fff; padding: .6rem 1rem; border-radius: 10px;
}
.skip-link:focus { top: 1rem; color: #fff; }
.text-green { color: var(--gz-green) !important; }
.text-lime { color: var(--gz-lime) !important; }
.lead { font-size: clamp(1.1rem, 1.4vw, 1.25rem); line-height: 1.65; color: var(--gz-body); }
.container { --bs-gutter-x: 2rem; }
@media (min-width: 1400px) { .container { max-width: 1280px; } }

/* 3. Buttons ------------------------------------------------------------- */
.btn-gz {
  --btn-bg: var(--gz-green); --btn-fg: #fff; --btn-bd: var(--gz-green);
  --btn-bg-h: var(--gz-deep); --btn-fg-h: #fff; --btn-bd-h: var(--gz-deep);
  position: relative; display: inline-flex; align-items: center; gap: .65rem;
  padding: .95rem 1.6rem; border-radius: 999px; border: 1.5px solid var(--btn-bd);
  background: var(--btn-bg); color: var(--btn-fg);
  font-family: "Outfit", sans-serif; font-weight: 500; font-size: 1rem; letter-spacing: .005em; line-height: 1.2;
  overflow: hidden; isolation: isolate; cursor: pointer;
  transition: color .35s var(--gz-ease), border-color .35s var(--gz-ease), transform .35s var(--gz-ease), box-shadow .35s var(--gz-ease);
}
.btn-gz::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: var(--btn-bg-h); transform: translateY(101%); transition: transform .45s var(--gz-ease);
}
.btn-gz .bi { font-size: 1.05em; transition: transform .35s var(--gz-ease); }
.btn-gz:hover, .btn-gz:focus-visible { color: var(--btn-fg-h); border-color: var(--btn-bd-h); transform: translateY(-2px); box-shadow: var(--gz-shadow-sm); }
.btn-gz:hover::before, .btn-gz:focus-visible::before { transform: translateY(0); }
.btn-gz:hover .bi-arrow-right, .btn-gz:hover .bi-arrow-up-right { transform: translateX(4px); }
.btn-gz-outline { --btn-bg: transparent; --btn-fg: var(--gz-ink); --btn-bd: rgba(16, 36, 29, .22); --btn-bg-h: var(--gz-ink); --btn-fg-h: #fff; --btn-bd-h: var(--gz-ink); }
.btn-gz-lime { --btn-bg: var(--gz-lime); --btn-fg: var(--gz-forest); --btn-bd: var(--gz-lime); --btn-bg-h: #fff; --btn-fg-h: var(--gz-forest); --btn-bd-h: #fff; }
.btn-gz-light { --btn-bg: transparent; --btn-fg: #fff; --btn-bd: rgba(255, 255, 255, .4); --btn-bg-h: #fff; --btn-fg-h: var(--gz-forest); --btn-bd-h: #fff; }
.btn-gz-sm { padding: .65rem 1.2rem; font-size: .95rem; }
.link-arrow {
  display: inline-flex; align-items: center; gap: .45rem; font-family: "Outfit", sans-serif; font-weight: 500;
  color: var(--gz-green); border-bottom: 1.5px solid currentColor; padding-bottom: 2px;
}
.link-arrow .bi { transition: transform .3s var(--gz-ease); }
.link-arrow:hover { color: var(--gz-deep); }
.link-arrow:hover .bi { transform: translateX(4px); }

/* 4. Header & navigation ------------------------------------------------- */
.topbar { background: var(--gz-forest); color: rgba(255, 255, 255, .78); font-size: .875rem; }
.topbar .container { display: flex; justify-content: space-between; align-items: center; min-height: 42px; gap: 1rem; }
.topbar a { color: rgba(255, 255, 255, .9); }
.topbar a:hover { color: var(--gz-lime); }
.topbar .bi { color: var(--gz-lime); margin-right: .4rem; }
.topbar-links { display: flex; gap: 1.6rem; }

.site-header {
  position: sticky; top: 0; z-index: 1030;
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .35s var(--gz-ease), border-color .35s var(--gz-ease), background .35s var(--gz-ease);
}
.site-header.is-scrolled { background: rgba(255, 255, 255, .95); border-color: var(--gz-line); box-shadow: 0 10px 30px -18px rgba(8, 39, 31, .25); }
.site-header .navbar { min-height: var(--gz-header-h); padding: 0; transition: min-height .35s var(--gz-ease); }
.site-header.is-scrolled .navbar { min-height: 70px; }
.navbar-brand { padding: 0; margin-right: 1rem; }
.navbar-brand img { height: 62px; width: auto; transition: height .35s var(--gz-ease); }
.site-header.is-scrolled .navbar-brand img { height: 48px; }

.main-nav .nav-link {
  position: relative; font-family: "Outfit", sans-serif; font-weight: 500; font-size: 1rem;
  color: var(--gz-ink); padding: .5rem 0 !important; margin: 0 .72rem; font-size: .98rem; white-space: nowrap;
}
.main-nav .nav-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
  background: var(--gz-lime); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--gz-ease);
}
.main-nav .nav-link:hover::after, .main-nav .nav-link.active::after, .main-nav .has-sub.active > .nav-link::after { transform: scaleX(1); transform-origin: left; }
.main-nav .nav-link:hover, .main-nav .nav-link.active { color: var(--gz-green); }
.main-nav .nav-link .bi-chevron-down { font-size: .7rem; margin-left: .25rem; display: inline-block; transition: transform .3s var(--gz-ease); }

/* About Us submenu */
.has-sub { position: relative; }
.sub-menu { list-style: none; margin: 0; padding: 0; }
.sub-menu a {
  display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; border-radius: 14px;
  color: var(--gz-ink); font-family: "Outfit", sans-serif; font-weight: 500; line-height: 1.3;
}
.sub-menu a small { display: block; font-family: "DM Sans", sans-serif; font-weight: 400; color: var(--gz-muted); font-size: .8rem; }
.sub-menu .sub-icon {
  flex: 0 0 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
  background: var(--gz-mint); color: var(--gz-green); transition: background .3s, color .3s;
}
.sub-menu a:hover, .sub-menu a.active { background: var(--gz-sand); color: var(--gz-green); }
.sub-menu a:hover .sub-icon { background: var(--gz-green); color: #fff; }

.nav-cta { margin-left: .8rem; }

@media (min-width: 1200px) {
  .sub-menu {
    position: absolute; top: calc(100% + 14px); left: -.5rem; min-width: 300px; padding: .6rem;
    background: #fff; border: 1px solid var(--gz-line); border-radius: 20px; box-shadow: var(--gz-shadow);
    opacity: 0; visibility: hidden; transform: translateY(10px);
    transition: opacity .3s var(--gz-ease), transform .3s var(--gz-ease), visibility .3s;
  }
  .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
  .has-sub:hover .sub-menu, .has-sub:focus-within .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
  .has-sub:hover .bi-chevron-down, .has-sub:focus-within .bi-chevron-down { transform: rotate(180deg); }
}

/* Mobile menu */
.navbar-toggler { border: 0; padding: .5rem; width: 48px; height: 48px; border-radius: 14px; background: var(--gz-mint); }
.navbar-toggler:focus { box-shadow: none; }
.toggler-bars { position: relative; display: block; width: 22px; height: 2px; margin: 0 auto; background: var(--gz-ink); border-radius: 2px; transition: background .2s; }
.toggler-bars::before, .toggler-bars::after { content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: var(--gz-ink); border-radius: 2px; transition: transform .35s var(--gz-ease), top .35s var(--gz-ease); }
.toggler-bars::before { top: -7px; } .toggler-bars::after { top: 7px; }
.navbar-toggler[aria-expanded="true"] .toggler-bars { background: transparent; }
.navbar-toggler[aria-expanded="true"] .toggler-bars::before { top: 0; transform: rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .toggler-bars::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1199.98px) {
  :root { --gz-header-h: 74px; }
  .navbar-brand img { height: 48px; }
  .navbar-collapse { padding: .5rem 0 1.5rem; max-height: calc(100vh - 80px); overflow-y: auto; }
  .main-nav .nav-link { margin: 0; padding: .9rem 0 !important; border-bottom: 1px solid var(--gz-line); font-size: 1.1rem; }
  .main-nav .nav-link::after { display: none; }
  .main-nav .nav-link .bi-chevron-down { display: none; }
  .sub-menu { padding: .4rem 0 .4rem .5rem; border-bottom: 1px solid var(--gz-line); }
  .nav-cta { margin: 1.25rem 0 0; }
  .nav-cta .btn-gz { width: 100%; justify-content: center; }
}

/* 5. Home hero ----------------------------------------------------------- */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  padding: clamp(3rem, 7vw, 6rem) 0 clamp(4rem, 8vw, 7rem);
  background:
    radial-gradient(900px 520px at 85% 15%, rgba(140, 198, 63, .16), transparent 60%),
    radial-gradient(700px 500px at 0% 100%, rgba(29, 117, 89, .10), transparent 60%),
    linear-gradient(180deg, #fff 0%, var(--gz-sand) 100%);
}
.hero-grid {
  position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image: radial-gradient(rgba(29, 117, 89, .22) 1px, transparent 1.2px);
  background-size: 26px 26px;
  mask-image: radial-gradient(ellipse at 30% 40%, #000 0%, transparent 65%);
  -webkit-mask-image: radial-gradient(ellipse at 30% 40%, #000 0%, transparent 65%);
}
.eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: "Outfit", sans-serif; font-weight: 500; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gz-green); margin-bottom: 1.2rem;
}
.eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--gz-lime); }
.eyebrow.eyebrow-pill { padding: .45rem 1rem .45rem .5rem; border-radius: 999px; background: #fff; border: 1px solid var(--gz-line); box-shadow: var(--gz-shadow-sm); letter-spacing: .1em; }
.eyebrow.eyebrow-pill::before { display: none; }
.eyebrow-pill .dot { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--gz-lime-soft); color: var(--gz-green); font-size: .85rem; }
.eyebrow-light { color: var(--gz-lime); }

.hero-title { font-size: clamp(2.6rem, 5.4vw, 4.6rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.02; margin-bottom: 1.6rem; }
.hero-title .line { display: block; overflow: hidden; padding-bottom: .16em; margin-bottom: -.1em; }
.hero-title .line > span { display: inline-block; transform: translateY(105%); animation: lineUp 1.1s var(--gz-ease) forwards; }
.hero-title .line:nth-child(2) > span { animation-delay: .15s; }
.hero-title .accent { color: var(--gz-green); position: relative; }
.swash { position: relative; display: inline-block; }
.swash svg { position: absolute; left: 0; bottom: -.1em; width: 100%; height: .28em; overflow: visible; }
.swash path { fill: none; stroke: var(--gz-lime); stroke-width: 6; stroke-linecap: round; stroke-dasharray: 400; stroke-dashoffset: 400; animation: draw 1.4s .9s var(--gz-ease) forwards; }
.hero .lead { max-width: 540px; margin-bottom: 2.2rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-bottom: 2.6rem; }
.hero-points { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.hero-points li { display: flex; align-items: center; gap: .75rem; color: var(--gz-ink); font-weight: 500; font-size: .98rem; }
.hero-points .bi { flex: 0 0 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-size: .8rem; }

.hero-visual { position: relative; padding: 0 0 3rem 3rem; }
.hero-visual .img-main {
  position: relative; border-radius: var(--gz-leaf); overflow: hidden; aspect-ratio: 4 / 4.4; box-shadow: var(--gz-shadow-lg);
}
.hero-visual .img-main img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); animation: heroZoom 2.2s var(--gz-ease) forwards; }
.hero-visual .img-sub {
  position: absolute; left: 0; bottom: 0; width: 46%; aspect-ratio: 1; border-radius: 50%; overflow: hidden;
  border: 8px solid #fff; box-shadow: var(--gz-shadow);
}
.hero-visual .img-sub img { width: 100%; height: 100%; object-fit: cover; }
.hero-ring { position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; z-index: -1; animation: spin 40s linear infinite; }
.float-card {
  position: absolute; display: flex; align-items: center; gap: .85rem; padding: .9rem 1.15rem .9rem .9rem;
  background: rgba(255, 255, 255, .94); border-radius: 18px; box-shadow: var(--gz-shadow);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, .7);
  animation: floaty 6s ease-in-out infinite;
}
.float-card .fc-icon { flex: 0 0 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 1.25rem; background: var(--gz-green); color: #fff; }
.float-card .fc-icon.lime { background: var(--gz-lime); color: var(--gz-forest); }
.float-card strong { display: block; font-family: "Outfit", sans-serif; font-weight: 600; color: var(--gz-ink); font-size: 1rem; line-height: 1.2; }
.float-card span { font-size: .82rem; color: var(--gz-muted); line-height: 1.3; }
.float-card.fc-1 { top: 12%; left: -6%; }
.float-card.fc-2 { right: -4%; bottom: 18%; animation-delay: -3s; }

/* 6. Page hero ----------------------------------------------------------- */
.page-hero {
  position: relative; overflow: hidden; isolation: isolate; color: #fff;
  padding: clamp(5rem, 10vw, 8.5rem) 0 clamp(4.5rem, 8vw, 7rem);
  background: var(--gz-deep);
}
.page-hero-bg { position: absolute; inset: 0; z-index: -2; }
.page-hero-bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); animation: heroZoom 2.4s var(--gz-ease) forwards; }
.page-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(8, 39, 31, .96) 0%, rgba(14, 59, 47, .88) 42%, rgba(14, 59, 47, .45) 100%),
    linear-gradient(0deg, rgba(8, 39, 31, .55), transparent 50%);
}
.page-hero h1 { color: #fff; max-width: 820px; margin-bottom: 1.3rem; }
.page-hero .lead { color: rgba(255, 255, 255, .82); max-width: 640px; margin-bottom: 0; }
.page-hero .eyebrow { color: var(--gz-lime); }
.page-hero .ring-deco { position: absolute; right: -120px; bottom: -160px; width: 460px; height: 460px; z-index: -1; opacity: .9; animation: spin 60s linear infinite; }
.breadcrumb-gz { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.8rem; font-size: .9rem; color: rgba(255, 255, 255, .65); }
.breadcrumb-gz a { color: rgba(255, 255, 255, .85); }
.breadcrumb-gz a:hover { color: var(--gz-lime); }
.breadcrumb-gz li + li::before { content: "/"; margin-right: .5rem; color: rgba(255, 255, 255, .35); }
.page-hero .hero-anim > * { opacity: 0; transform: translateY(24px); animation: fadeUp 1s var(--gz-ease) forwards; }
.page-hero .hero-anim > *:nth-child(2) { animation-delay: .1s; }
.page-hero .hero-anim > *:nth-child(3) { animation-delay: .2s; }
.page-hero .hero-anim > *:nth-child(4) { animation-delay: .3s; }
.page-hero .hero-anim > *:nth-child(5) { animation-delay: .4s; }
.page-hero .hero-actions { margin: 2.2rem 0 0; }

/* 7. Sections & headings ------------------------------------------------- */
.section { position: relative; padding: clamp(4.5rem, 9vw, 7.5rem) 0; }
.section-sm { padding: clamp(3rem, 6vw, 4.5rem) 0; }
.bg-sand { background: var(--gz-sand); }
.bg-mint { background: var(--gz-mint); }
.bg-deep { background: var(--gz-deep); color: rgba(255, 255, 255, .78); }
.bg-deep h2, .bg-deep h3, .bg-deep h4 { color: #fff; }
.section-head { max-width: 760px; margin-bottom: clamp(2.5rem, 5vw, 3.75rem); }
.section-head.text-center { margin-left: auto; margin-right: auto; }
.section-head.text-center .eyebrow::after { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--gz-lime); }
.section-head h2 { margin-bottom: 1rem; }
.section-head p { font-size: 1.12rem; margin-bottom: 0; }
.img-frame { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--gz-mint), var(--gz-lime-soft)); }
.img-frame img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--gz-ease); }
.shape-leaf { border-radius: var(--gz-leaf); }
.shape-leaf-alt { border-radius: 28px 180px 28px 180px; }
.shape-round { border-radius: var(--gz-radius-lg); }
.check-list { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: .75rem; }
.check-list li { position: relative; padding-left: 2.1rem; color: var(--gz-ink); }
.check-list li::before {
  content: "\F26E"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: .15em;
  width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .95rem;
  background: var(--gz-lime-soft); color: var(--gz-green);
}
.check-list.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
@media (max-width: 575.98px) { .check-list.cols-2 { grid-template-columns: 1fr; } }
.chip-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip {
  display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .9rem; border-radius: 999px;
  background: var(--gz-mint); color: var(--gz-green-600); font-size: .86rem; font-weight: 500; border: 1px solid rgba(29, 117, 89, .1);
}
.bg-deep .chip { background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 255, 255, .14); }

/* Marquee band */
.marquee { background: var(--gz-deep); color: #fff; overflow: hidden; padding: 1.25rem 0; position: relative; }
.marquee::before, .marquee::after { content: ""; position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2; pointer-events: none; }
.marquee::before { left: 0; background: linear-gradient(90deg, var(--gz-deep), transparent); }
.marquee::after { right: 0; background: linear-gradient(-90deg, var(--gz-deep), transparent); }
.marquee-track { display: flex; width: max-content; animation: marquee 48s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-item { display: inline-flex; align-items: center; gap: 1.6rem; padding-right: 1.6rem; white-space: nowrap; font-family: "Outfit", sans-serif; font-size: 1.2rem; font-weight: 500; }
.marquee-item .leaf-dot { width: 14px; height: 14px; color: var(--gz-lime); }

/* 8. Home ---------------------------------------------------------------- */
.service-panel {
  position: relative; height: 100%; display: flex; flex-direction: column;
  background: #fff; border-radius: var(--gz-radius-lg); overflow: hidden; border: 1px solid var(--gz-line);
  transition: transform .5s var(--gz-ease), box-shadow .5s var(--gz-ease), border-color .5s;
}
.service-panel:hover { transform: translateY(-8px); box-shadow: var(--gz-shadow); border-color: transparent; }
.service-panel .img-frame { aspect-ratio: 16 / 9.5; }
.service-panel:hover .img-frame img { transform: scale(1.06); }
.service-panel .sp-num {
  position: absolute; top: 1.25rem; left: 1.25rem; z-index: 2; padding: .35rem .85rem; border-radius: 999px;
  background: rgba(255, 255, 255, .92); color: var(--gz-green); font-family: "Outfit", sans-serif; font-weight: 600; font-size: .85rem;
}
.service-panel .sp-body { position: relative; padding: 2.5rem clamp(1.5rem, 3vw, 2.5rem) clamp(1.75rem, 3vw, 2.5rem); flex: 1; display: flex; flex-direction: column; }
.service-panel .sp-icon {
  position: absolute; top: -34px; right: 2rem; width: 68px; height: 68px; border-radius: 20px; display: grid; place-items: center;
  font-size: 1.7rem; background: var(--gz-green); color: #fff; box-shadow: var(--gz-shadow-sm); transition: transform .5s var(--gz-ease), background .4s;
}
.service-panel:hover .sp-icon { transform: rotate(-8deg) scale(1.05); background: var(--gz-lime); color: var(--gz-forest); }
.service-panel h3 { font-size: clamp(1.6rem, 2.4vw, 2rem); margin-bottom: 1rem; }
.service-panel .chip-row { margin: .4rem 0 1.8rem; }
.service-panel .btn-gz { align-self: flex-start; margin-top: auto; }

.approach-collage { position: relative; padding: 0 3rem 3rem 0; }
.approach-collage .img-a { aspect-ratio: 4 / 4.6; }
.approach-collage .img-b { position: absolute; right: 0; bottom: 0; width: 48%; aspect-ratio: 1; border: 8px solid #fff; border-radius: 50%; box-shadow: var(--gz-shadow); }
.approach-collage .leaf-svg { position: absolute; left: -36px; top: -36px; width: 110px; z-index: 2; }
.pillars { display: grid; gap: 1rem; margin: 2rem 0 2.2rem; }
.pillar { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.15rem 1.25rem; border-radius: var(--gz-radius); background: #fff; border: 1px solid var(--gz-line); transition: border-color .35s, transform .35s var(--gz-ease), box-shadow .35s; }
.pillar:hover { border-color: rgba(140, 198, 63, .6); transform: translateX(6px); box-shadow: var(--gz-shadow-sm); }
.pillar .p-num { flex: 0 0 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--gz-lime-soft); color: var(--gz-green); font-family: "Outfit", sans-serif; font-weight: 600; }
.pillar h4 { font-size: 1.12rem; margin: .2rem 0 .25rem; }
.pillar p { margin: 0; font-size: .96rem; }

/* First Nations band (home + about) */
.fn-band { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--gz-radius-lg); background: var(--gz-deep); color: rgba(255, 255, 255, .82); }
.fn-band .fn-img { position: absolute; inset: 0 0 0 45%; z-index: -2; }
.fn-band .fn-img img { width: 100%; height: 100%; object-fit: cover; }
.fn-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--gz-deep) 0%, var(--gz-deep) 45%, rgba(14, 59, 47, .55) 70%, rgba(14, 59, 47, .15) 100%); }
.fn-band .fn-body { padding: clamp(2.5rem, 6vw, 5rem); max-width: 680px; }
.fn-band h2 { color: #fff; margin-bottom: 1.3rem; }
.fn-band .leaf-watermark { position: absolute; left: -60px; bottom: -80px; width: 280px; opacity: .07; z-index: -1; color: #fff; }
@media (max-width: 991.98px) {
  .fn-band .fn-img { inset: auto 0 0 0; height: 260px; position: relative; }
  .fn-band::before { background: linear-gradient(180deg, rgba(14, 59, 47, 0) 0, rgba(14, 59, 47, .1) 160px, var(--gz-deep) 262px, var(--gz-deep) 100%); }
  .fn-band .fn-body { padding-top: 1.5rem; }
  .page-hero .ring-deco { width: 300px; height: 300px; right: -170px; bottom: -170px; opacity: .6; }
}

/* 9. About --------------------------------------------------------------- */
.intro-collage { position: relative; padding: 0 0 4rem 0; }
.intro-collage .img-a { width: 82%; aspect-ratio: 4 / 4.8; }
.intro-collage .img-b { position: absolute; right: 0; bottom: 0; width: 50%; aspect-ratio: 1 / 1.1; border: 8px solid #fff; box-shadow: var(--gz-shadow); }
.intro-collage .badge-card {
  position: absolute; left: 6%; bottom: 1rem; z-index: 3; display: flex; align-items: center; gap: .8rem;
  padding: 1rem 1.2rem; background: var(--gz-deep); color: #fff; border-radius: 18px; box-shadow: var(--gz-shadow); max-width: 260px;
  animation: floaty 6s ease-in-out infinite;
}
.intro-collage .badge-card .bi { font-size: 1.6rem; color: var(--gz-lime); }
.intro-collage .badge-card strong { display: block; font-family: "Outfit", sans-serif; font-weight: 600; line-height: 1.25; }
.intro-collage .badge-card span { font-size: .82rem; color: rgba(255, 255, 255, .7); }
.big-quote { font-family: "Outfit", sans-serif; font-weight: 500; font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.35; color: var(--gz-ink); letter-spacing: -.015em; }
.steps-inline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.step-mini { padding: 1.25rem; border-radius: var(--gz-radius); background: var(--gz-sand); border: 1px solid var(--gz-line); }
.step-mini .bi { font-size: 1.5rem; color: var(--gz-green); display: block; margin-bottom: .6rem; }
.step-mini strong { display: block; font-family: "Outfit", sans-serif; font-weight: 600; color: var(--gz-ink); line-height: 1.3; }
@media (max-width: 575.98px) { .steps-inline { grid-template-columns: 1fr; } }

.what-row + .what-row { margin-top: clamp(4rem, 8vw, 6.5rem); }
.what-row .img-wrap { position: relative; }
.what-row .img-frame { aspect-ratio: 5 / 5.4; }
.what-row .tag-float {
  position: absolute; bottom: 2rem; right: -1.2rem; display: flex; align-items: center; gap: .7rem; padding: .85rem 1.1rem;
  background: #fff; border-radius: 16px; box-shadow: var(--gz-shadow); font-family: "Outfit", sans-serif; font-weight: 600; color: var(--gz-ink);
  animation: floaty 6s ease-in-out infinite;
}
.what-row .tag-float .bi { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--gz-lime); color: var(--gz-forest); }
.what-row.reverse .tag-float { right: auto; left: -1.2rem; }
.what-row .what-num { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 5rem; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px rgba(29, 117, 89, .35); margin-bottom: .5rem; }
.what-row h3 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom: 1.2rem; }
.list-label { font-family: "Outfit", sans-serif; font-weight: 600; color: var(--gz-ink); margin-bottom: .9rem; }

/* 10. Cleaning ----------------------------------------------------------- */
.intro-statement { font-family: "Outfit", sans-serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 500; line-height: 1.25; color: var(--gz-ink); letter-spacing: -.02em; }
.intro-statement em { font-style: normal; color: var(--gz-green); }
.info-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.info-tile { padding: 1.4rem; border-radius: var(--gz-radius); background: #fff; border: 1px solid var(--gz-line); transition: transform .4s var(--gz-ease), box-shadow .4s, border-color .4s; }
.info-tile:hover { transform: translateY(-4px); box-shadow: var(--gz-shadow-sm); border-color: transparent; }
.info-tile .bi { font-size: 1.6rem; color: var(--gz-green); display: inline-block; margin-bottom: .7rem; }
.info-tile h4 { font-size: 1.08rem; margin: 0; }
.type-strip { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }
.type-strip .chip { background: var(--gz-deep); color: #fff; border: 0; padding: .55rem 1.1rem; }
.type-strip .chip .bi { color: var(--gz-lime); }

.svc-card {
  position: relative; height: 100%; display: flex; flex-direction: column; background: #fff; border-radius: 24px; overflow: hidden;
  border: 1px solid var(--gz-line); transition: transform .5s var(--gz-ease), box-shadow .5s var(--gz-ease), border-color .4s;
}
.svc-card:hover { transform: translateY(-8px); box-shadow: var(--gz-shadow); border-color: transparent; }
.svc-card .img-frame { aspect-ratio: 4 / 3; }
.svc-card .img-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8, 39, 31, .35)); }
.svc-card:hover .img-frame img { transform: scale(1.08); }
.svc-card .svc-num { position: absolute; z-index: 2; top: 1rem; right: 1rem; font-family: "Outfit", sans-serif; font-weight: 600; font-size: .85rem; color: #fff; background: rgba(8, 39, 31, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); padding: .3rem .7rem; border-radius: 999px; }
.svc-card .svc-body { position: relative; padding: 2.4rem 1.6rem 1.8rem; flex: 1; }
.svc-card .svc-icon {
  position: absolute; top: -28px; left: 1.6rem; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center;
  background: var(--gz-green); color: #fff; font-size: 1.4rem; box-shadow: 0 10px 24px -10px rgba(29, 117, 89, .7); transition: background .4s, color .4s, transform .5s var(--gz-ease);
}
.svc-card:hover .svc-icon { background: var(--gz-lime); color: var(--gz-forest); transform: translateY(-4px) rotate(-6deg); }
.svc-card h3 { font-size: 1.25rem; margin-bottom: .7rem; }
.svc-card p { font-size: .97rem; margin: 0; }
.svc-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--gz-green), var(--gz-lime)); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--gz-ease); }
.svc-card:hover::after { transform: scaleX(1); }

.quote-block { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--gz-radius-lg); background: var(--gz-mint); }
.quote-block .qb-body { padding: clamp(2.5rem, 5vw, 4.5rem); }
.quote-block .img-frame { height: 100%; min-height: 320px; }
.quote-list { list-style: none; padding: 0; margin: 1.6rem 0 2.2rem; display: grid; gap: .9rem; }
.quote-list li { display: flex; align-items: center; gap: 1rem; font-weight: 500; color: var(--gz-ink); }
.quote-list .ql-icon { flex: 0 0 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: #fff; color: var(--gz-green); font-size: 1.25rem; box-shadow: var(--gz-shadow-sm); }

/* 11. Recruitment -------------------------------------------------------- */
.sector-card { position: relative; height: 100%; border-radius: 28px; overflow: hidden; isolation: isolate; min-height: 520px; display: flex; align-items: flex-end; color: #fff; }
.sector-card .img-frame { position: absolute; inset: 0; z-index: -2; }
.sector-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 39, 31, .05) 0%, rgba(8, 39, 31, .55) 45%, rgba(8, 39, 31, .96) 100%); transition: background .5s; }
.sector-card:hover .img-frame img { transform: scale(1.07); }
.sector-card .sc-body { padding: 2rem; }
.sector-card .sc-icon { width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-lime); color: var(--gz-forest); font-size: 1.5rem; margin-bottom: 1.2rem; transition: transform .5s var(--gz-ease); }
.sector-card:hover .sc-icon { transform: rotate(-8deg) scale(1.06); }
.sector-card h3 { color: #fff; font-size: 1.6rem; margin-bottom: .8rem; }
.sector-card p { color: rgba(255, 255, 255, .84); font-size: .98rem; margin: 0; }

.audience-panel { height: 100%; border-radius: var(--gz-radius-lg); padding: clamp(2rem, 4vw, 3.25rem); position: relative; overflow: hidden; isolation: isolate; }
.audience-panel.light { background: #fff; border: 1px solid var(--gz-line); }
.audience-panel.dark { background: var(--gz-deep); color: rgba(255, 255, 255, .8); }
.audience-panel.dark h2, .audience-panel.dark h3 { color: #fff; }
.audience-panel .ap-tag { display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .95rem; border-radius: 999px; font-family: "Outfit", sans-serif; font-weight: 500; font-size: .85rem; margin-bottom: 1.3rem; background: var(--gz-mint); color: var(--gz-green); }
.audience-panel.dark .ap-tag { background: rgba(140, 198, 63, .16); color: var(--gz-lime); }
.audience-panel h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); margin-bottom: 1rem; }
.audience-panel .ap-img { aspect-ratio: 16 / 8; border-radius: 22px; margin-bottom: 2rem; }
.audience-panel .ring-deco { position: absolute; right: -90px; top: -90px; width: 260px; opacity: .5; z-index: -1; }
.process { list-style: none; padding: 0; margin: 1.8rem 0 2.2rem; position: relative; }
.process::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; background: repeating-linear-gradient(180deg, var(--gz-line) 0 6px, transparent 6px 12px); }
.process li { position: relative; display: flex; align-items: center; gap: 1.1rem; padding: .55rem 0; color: var(--gz-ink); font-weight: 500; }
.process .pn { position: relative; flex: 0 0 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--gz-green); color: var(--gz-green); font-family: "Outfit", sans-serif; font-weight: 600; transition: background .35s, color .35s; }
.process li:hover .pn { background: var(--gz-green); color: #fff; }
.seeker-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.6rem 0 2.2rem; }
.seeker-grid div { display: flex; align-items: center; gap: .7rem; padding: 1rem; border-radius: 16px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); color: #fff; font-weight: 500; transition: background .35s, border-color .35s; }
.seeker-grid div:hover { background: rgba(140, 198, 63, .12); border-color: rgba(140, 198, 63, .4); }
.seeker-grid .bi { color: var(--gz-lime); font-size: 1.25rem; }

/* 12. First Nations ------------------------------------------------------ */
.commit-card { position: relative; height: 100%; padding: 2rem 1.8rem; border-radius: 24px; background: #fff; border: 1px solid var(--gz-line); overflow: hidden; transition: transform .5s var(--gz-ease), box-shadow .5s, border-color .4s; }
.commit-card:hover { transform: translateY(-6px); box-shadow: var(--gz-shadow); border-color: transparent; }
.commit-card .cc-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.6rem; }
.commit-card .cc-icon { width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-mint); color: var(--gz-green); font-size: 1.5rem; transition: background .4s, color .4s; }
.commit-card:hover .cc-icon { background: var(--gz-green); color: #fff; }
.commit-card .cc-num { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 2.6rem; line-height: 1; color: transparent; -webkit-text-stroke: 1.2px rgba(29, 117, 89, .28); }
.commit-card h3 { font-size: 1.2rem; margin-bottom: .6rem; }
.commit-card p { margin: 0; font-size: .98rem; color: var(--gz-body); }
.commit-card::before { content: ""; position: absolute; right: -50px; bottom: -50px; width: 120px; height: 120px; border-radius: 50%; background: var(--gz-lime-soft); transform: scale(0); transition: transform .6s var(--gz-ease); z-index: 0; }
.commit-card:hover::before { transform: scale(1); }
.commit-card > * { position: relative; z-index: 1; }

.pull-quote { position: relative; padding: clamp(2.5rem, 5vw, 4rem); border-radius: var(--gz-radius-lg); background: var(--gz-deep); color: #fff; overflow: hidden; isolation: isolate; }
.pull-quote .bi-quote { position: absolute; right: 2rem; top: -1rem; font-size: 10rem; line-height: 1; color: var(--gz-lime); opacity: .15; z-index: -1; }
.pull-quote blockquote { font-family: "Outfit", sans-serif; font-weight: 500; font-size: clamp(1.5rem, 3vw, 2.3rem); line-height: 1.3; letter-spacing: -.02em; margin: 0; color: #fff; }
.pull-quote blockquote em { font-style: normal; color: var(--gz-lime); }
.pull-quote figcaption { margin-top: 1.5rem; color: rgba(255, 255, 255, .7); font-size: .95rem; display: flex; align-items: center; gap: .7rem; }
.pull-quote figcaption::before { content: ""; width: 34px; height: 2px; background: var(--gz-lime); }

/* 13. Contact & form ----------------------------------------------------- */
.contact-aside { position: sticky; top: calc(var(--gz-header-h) + 24px); border-radius: var(--gz-radius-lg); background: var(--gz-deep); color: rgba(255, 255, 255, .78); padding: clamp(2rem, 4vw, 2.75rem); overflow: hidden; isolation: isolate; }
.contact-aside h2 { color: #fff; font-size: 1.8rem; margin-bottom: .8rem; }
.contact-aside .ring-deco { position: absolute; right: -150px; bottom: -150px; width: 300px; opacity: .4; z-index: -1; }
.aside-links { list-style: none; padding: 0; margin: 1.8rem 0; display: grid; gap: .6rem; }
.aside-links a { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; border-radius: 16px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .08); color: #fff; font-weight: 500; transition: background .3s, border-color .3s, transform .35s var(--gz-ease); }
.aside-links a:hover { background: rgba(140, 198, 63, .14); border-color: rgba(140, 198, 63, .45); transform: translateX(4px); }
.aside-links .bi:first-child { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--gz-lime); color: var(--gz-forest); flex: 0 0 38px; }
.aside-links .bi-arrow-right { margin-left: auto; opacity: .55; }
.aside-contact { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 1.5rem; display: grid; gap: .9rem; }
.aside-contact a, .aside-contact div { display: flex; align-items: center; gap: .8rem; color: #fff; }
.aside-contact .bi { color: var(--gz-lime); font-size: 1.15rem; }
.aside-contact small { display: block; color: rgba(255, 255, 255, .6); font-size: .8rem; }

.form-card { background: #fff; border-radius: var(--gz-radius-lg); padding: clamp(1.75rem, 4vw, 3rem); border: 1px solid var(--gz-line); box-shadow: var(--gz-shadow); }
.form-card h2 { font-size: clamp(1.7rem, 2.6vw, 2.2rem); margin-bottom: .5rem; }
.form-label { font-family: "Outfit", sans-serif; font-weight: 500; color: var(--gz-ink); margin-bottom: .45rem; font-size: .98rem; }
.form-label .req { color: var(--gz-green); }
.form-control, .form-select {
  padding: .9rem 1.1rem; border-radius: 14px; border: 1.5px solid var(--gz-line); background-color: var(--gz-sand);
  font-size: 1rem; color: var(--gz-ink); transition: border-color .25s, box-shadow .25s, background-color .25s;
}
.form-control::placeholder { color: #9aaaa2; }
.form-control:focus, .form-select:focus { border-color: var(--gz-green); background-color: #fff; box-shadow: 0 0 0 4px rgba(140, 198, 63, .22); }
textarea.form-control { min-height: 160px; resize: vertical; }
.was-validated .form-control:invalid, .form-control.is-invalid { border-color: #c4453c; }
.invalid-feedback { font-size: .86rem; }

.type-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
@media (max-width: 991.98px) { .type-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.type-option { position: relative; }
.type-option input { position: absolute; opacity: 0; pointer-events: none; }
.type-option label {
  height: 100%; display: flex; flex-direction: column; gap: .7rem; padding: 1.1rem 1rem; border-radius: 18px; cursor: pointer;
  border: 1.5px solid var(--gz-line); background: var(--gz-sand); font-family: "Outfit", sans-serif; font-weight: 500; color: var(--gz-ink); line-height: 1.25;
  transition: border-color .3s, background .3s, box-shadow .3s, transform .35s var(--gz-ease);
}
.type-option label .bi { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: #fff; color: var(--gz-green); font-size: 1.2rem; transition: background .3s, color .3s; }
.type-option label:hover { border-color: rgba(29, 117, 89, .45); transform: translateY(-2px); }
.type-option input:checked + label { border-color: var(--gz-green); background: #fff; box-shadow: 0 0 0 4px rgba(140, 198, 63, .2); }
.type-option input:checked + label .bi { background: var(--gz-green); color: #fff; }
.type-option input:focus-visible + label { outline: 3px solid var(--gz-lime); outline-offset: 2px; }
.type-option .tick { position: absolute; top: .8rem; right: .8rem; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--gz-line); background: #fff; display: grid; place-items: center; font-size: .75rem; color: transparent; transition: all .3s; pointer-events: none; }
.type-option input:checked ~ .tick { background: var(--gz-lime); border-color: var(--gz-lime); color: var(--gz-forest); }
.type-error { display: none; color: #c4453c; font-size: .86rem; margin-top: .5rem; }
.was-validated .type-group.is-invalid .type-error { display: block; }

.resume-field { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .5s var(--gz-ease), opacity .4s; }
.resume-field.show { grid-template-rows: 1fr; opacity: 1; }
.resume-field > div { overflow: hidden; }
.dropzone {
  position: relative; display: flex; align-items: center; gap: 1.1rem; padding: 1.4rem; border-radius: 18px; cursor: pointer;
  border: 2px dashed rgba(29, 117, 89, .35); background: var(--gz-mint); transition: border-color .3s, background .3s;
}
.dropzone:hover, .dropzone.drag { border-color: var(--gz-green); background: var(--gz-lime-soft); }
.dropzone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.dropzone .dz-icon { flex: 0 0 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: #fff; color: var(--gz-green); font-size: 1.4rem; }
.dropzone strong { display: block; font-family: "Outfit", sans-serif; font-weight: 500; color: var(--gz-ink); }
.dropzone span { font-size: .87rem; color: var(--gz-muted); }
.form-note { font-size: .88rem; color: var(--gz-muted); }
.was-validated .resume-field:has(input:invalid) .dropzone { border-color: #c4453c; }
.was-validated .resume-field:has(input:invalid) .invalid-feedback { display: block; }
.form-success { display: none; text-align: center; padding: 2rem 0; }
.form-success.show { display: block; animation: fadeUp .8s var(--gz-ease); }
.form-success .bi { width: 84px; height: 84px; margin: 0 auto 1.4rem; border-radius: 50%; display: grid; place-items: center; background: var(--gz-lime-soft); color: var(--gz-green); font-size: 2.4rem; }

/* 14. CTA & footer ------------------------------------------------------- */
.cta-band { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--gz-radius-lg); padding: clamp(2.75rem, 6vw, 5rem); background: linear-gradient(120deg, var(--gz-green) 0%, var(--gz-deep) 70%); color: rgba(255, 255, 255, .82); }
.cta-band h2 { color: #fff; margin-bottom: 1rem; }
.cta-band .lead { color: rgba(255, 255, 255, .82); margin: 0; }
.cta-band .ring-deco { position: absolute; right: -80px; top: -120px; width: 380px; opacity: .6; z-index: -1; animation: spin 50s linear infinite; }
.cta-band .leaf-watermark { position: absolute; left: 38%; bottom: -70px; width: 200px; color: #fff; opacity: .06; z-index: -1; transform: rotate(-20deg); }
.cta-actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: flex-end; }
@media (max-width: 991.98px) { .cta-actions { justify-content: flex-start; margin-top: 1.8rem; } }

.site-footer { background: var(--gz-forest); color: rgba(255, 255, 255, .68); padding: clamp(4rem, 7vw, 5.5rem) 0 0; position: relative; overflow: hidden; isolation: isolate; font-size: .98rem; }
.site-footer .footer-glow { position: absolute; right: -200px; top: -200px; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(140, 198, 63, .12), transparent 65%); z-index: -1; }
.footer-logo img { height: 74px; width: auto; margin-bottom: 1.4rem; }
.footer-tag { font-family: "Outfit", sans-serif; font-weight: 500; color: #fff; font-size: 1.1rem; margin-bottom: .6rem; }
.site-footer h4 { color: #fff; font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 1.4rem; font-weight: 500; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.footer-links a { color: rgba(255, 255, 255, .72); display: inline-flex; align-items: center; gap: 0; transition: color .25s, transform .3s var(--gz-ease); }
.footer-links a::before { content: ""; width: 0; height: 2px; background: var(--gz-lime); transition: width .3s var(--gz-ease), margin .3s var(--gz-ease); }
.footer-links a:hover { color: #fff; }
.footer-links a:hover::before { width: 12px; margin-right: .5rem; }
.footer-contact { display: grid; gap: 1rem; }
.footer-contact a { color: #fff; display: flex; gap: .8rem; align-items: center; }
.footer-contact a:hover { color: var(--gz-lime); }
.footer-contact .bi { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 13px; display: grid; place-items: center; background: rgba(255, 255, 255, .07); color: var(--gz-lime); }
.footer-contact small { display: block; color: rgba(255, 255, 255, .55); font-size: .8rem; }
.footer-bottom { margin-top: clamp(3rem, 6vw, 4.5rem); padding: 1.6rem 0; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem; font-size: .9rem; color: rgba(255, 255, 255, .55); }
.footer-bottom a { color: rgba(255, 255, 255, .75); }
.footer-bottom a:hover { color: var(--gz-lime); }
.footer-legal { display: inline-flex; flex-wrap: wrap; gap: .4rem 1.2rem; }

.to-top {
  position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 1040; width: 54px; height: 54px; border-radius: 50%; border: 0;
  background: #fff; color: var(--gz-green); box-shadow: var(--gz-shadow); display: grid; place-items: center;
  opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .4s, transform .4s var(--gz-ease), visibility .4s;
}
.to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.to-top circle { fill: none; stroke-width: 3; }
.to-top .track { stroke: var(--gz-mint); }
.to-top .progress-ring { stroke: var(--gz-lime); stroke-linecap: round; stroke-dasharray: 151; stroke-dashoffset: 151; transition: stroke-dashoffset .1s linear; }
.to-top .bi { font-size: 1.2rem; position: relative; }
.to-top:hover { color: var(--gz-deep); }

/* 15. Animations & utilities -------------------------------------------- */
[data-reveal] { opacity: 0; transition: opacity 1s var(--gz-ease), transform 1s var(--gz-ease); transition-delay: var(--d, 0s); will-change: opacity, transform; }
[data-reveal="up"] { transform: translateY(42px); }
[data-reveal="left"] { transform: translateX(-48px); }
[data-reveal="right"] { transform: translateX(48px); }
[data-reveal="zoom"] { transform: scale(.94); }
[data-reveal].is-visible { opacity: 1; transform: none; }
.reveal-img { clip-path: inset(0 0 100% 0); transition: clip-path 1.3s var(--gz-ease); transition-delay: var(--d, 0s); }
.reveal-img.is-visible { clip-path: inset(0 0 0 0); }
.leaf-draw path { stroke-dasharray: 600; stroke-dashoffset: 600; transition: stroke-dashoffset 2.2s var(--gz-ease); }
.leaf-draw.is-visible path { stroke-dashoffset: 0; }

@keyframes lineUp { to { transform: translateY(0); } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }
@keyframes heroZoom { to { transform: scale(1); } }
@keyframes floaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes marquee { to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  [data-reveal], .reveal-img { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .hero-title .line > span { transform: none; }
  .marquee-track { animation: none; }
}

/* Responsive tweaks */
main { overflow-x: clip; }
@media (max-width: 991.98px) { .row.g-5, .row.gx-5 { --bs-gutter-x: 2rem; } }
@media (max-width: 1199.98px) {
  .float-card.fc-1 { left: -2%; }
  .float-card.fc-2 { right: 0; }
}
@media (max-width: 991.98px) {
  .hero-visual { margin-top: 3.5rem; padding: 0 0 2.5rem 2rem; }
  .what-row .tag-float { right: 1rem; }
  .what-row.reverse .tag-float { left: 1rem; }
  .contact-aside { position: relative; top: 0; }
  .sector-card { min-height: 460px; }
}
@media (max-width: 575.98px) {
  .hero-visual { padding: 0 0 2rem 1rem; }
  .float-card { padding: .7rem .9rem .7rem .7rem; }
  .float-card .fc-icon { flex-basis: 38px; height: 38px; font-size: 1.05rem; }
  .float-card strong { font-size: .9rem; }
  .float-card.fc-1 { top: 6%; left: -2%; }
  .float-card.fc-2 { bottom: 14%; right: -2%; }
  .approach-collage { padding: 0 1.5rem 2rem 0; }
  .approach-collage .leaf-svg { left: -10px; top: -30px; width: 80px; }
  .intro-collage .img-a { width: 88%; }
  .info-tiles { grid-template-columns: 1fr 1fr; }
  .seeker-grid { grid-template-columns: 1fr; }
  .hero-actions .btn-gz, .page-hero .hero-actions .btn-gz { width: 100%; justify-content: center; }
  .topbar { display: none; }
  .eyebrow.eyebrow-pill { font-size: .72rem; letter-spacing: .06em; }
}

/* ==========================================================================
   16. v2 — corporate structure, new pages, blog, testimonials, forms
   ========================================================================== */
@media (max-width: 1199.98px) { .topbar-links a:last-child { display: none; } }
@media (max-width: 767.98px) { .topbar-links a:nth-child(2) { display: none; } }

/* Home hero */
.hero-home .lead { max-width: 640px; margin-bottom: 1.4rem; }
.hero-sub { display: flex; gap: .75rem; align-items: flex-start; max-width: 600px; font-size: .97rem; line-height: 1.6; color: var(--gz-ink); background: #fff; border: 1px solid var(--gz-line); border-left: 3px solid var(--gz-lime); border-radius: 14px; padding: .95rem 1.15rem; margin-bottom: 2rem; box-shadow: var(--gz-shadow-sm); }
.hero-sub .bi { color: var(--gz-green); font-size: 1.2rem; line-height: 1.3; }
.division-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: clamp(2.5rem, 5vw, 4rem); }
.division-card { position: relative; display: flex; align-items: center; gap: 1.2rem; padding: 1.5rem 1.6rem; background: #fff; border: 1px solid var(--gz-line); border-radius: 22px; color: var(--gz-ink); box-shadow: var(--gz-shadow-sm); overflow: hidden; transition: transform .45s var(--gz-ease), box-shadow .45s, border-color .45s; }
.division-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--gz-green), var(--gz-lime)); }
.division-card:hover { transform: translateY(-6px); box-shadow: var(--gz-shadow); border-color: transparent; color: var(--gz-ink); }
.dc-icon { flex: 0 0 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-size: 1.5rem; }
.dc-icon.lime { background: var(--gz-lime); color: var(--gz-forest); }
.dc-body { flex: 1; display: flex; flex-direction: column; line-height: 1.4; }
.dc-body small { font-family: "Outfit", sans-serif; text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; color: var(--gz-green); font-weight: 600; }
.dc-body strong { font-family: "Outfit", sans-serif; font-size: 1.3rem; font-weight: 600; margin: .15rem 0 .25rem; }
.dc-body > span { font-size: .95rem; color: var(--gz-body); }
.dc-arrow { flex: 0 0 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--gz-line); color: var(--gz-green); transition: all .35s var(--gz-ease); }
.division-card:hover .dc-arrow { background: var(--gz-green); border-color: var(--gz-green); color: #fff; transform: rotate(45deg); }
@media (max-width: 767.98px) { .division-cards { grid-template-columns: 1fr; } }

.values-inline { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.6rem 0 2rem; }
.values-inline span { padding: .45rem 1rem; border-radius: 999px; background: #fff; border: 1px solid var(--gz-line); font-family: "Outfit", sans-serif; font-weight: 500; color: var(--gz-ink); font-size: .92rem; }
.values-inline span::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--gz-lime); margin-right: .5rem; vertical-align: middle; }

/* Brand architecture diagram */
.brand-tree { position: relative; padding: clamp(1.4rem, 3vw, 2rem); border-radius: var(--gz-radius-lg); background: #fff; border: 1px solid var(--gz-line); box-shadow: var(--gz-shadow); }
.bt-parent { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; border-radius: 20px; background: var(--gz-deep); color: #fff; max-width: 380px; margin: 0 auto; }
.bt-parent img { width: 52px; height: 52px; border-radius: 14px; background: #fff; padding: 6px; }
.bt-label { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gz-lime); font-family: "Outfit", sans-serif; font-weight: 500; }
.bt-parent strong { font-family: "Outfit", sans-serif; font-size: 1.22rem; font-weight: 600; }
.bt-lines { position: relative; height: 64px; }
.bt-lines::before { content: ""; position: absolute; left: 50%; top: 0; height: 32px; border-left: 2px dashed var(--gz-lime); }
.bt-lines::after { content: ""; position: absolute; left: 25%; right: 25%; top: 32px; height: 32px; border: 2px dashed var(--gz-lime); border-bottom: 0; border-radius: 16px 16px 0 0; }
.bt-children { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.bt-child { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .3rem; padding: 1.4rem .9rem; border-radius: 20px; background: var(--gz-sand); border: 1px solid var(--gz-line); color: var(--gz-ink); transition: transform .4s var(--gz-ease), box-shadow .4s, background .4s; }
.bt-child:hover { transform: translateY(-4px); background: #fff; box-shadow: var(--gz-shadow-sm); color: var(--gz-ink); }
.bt-icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-size: 1.35rem; margin-bottom: .4rem; }
.bt-icon.lime { background: var(--gz-lime); color: var(--gz-forest); }
.bt-child strong { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 1.05rem; line-height: 1.25; }
.bt-child span:last-child { font-size: .86rem; color: var(--gz-muted); }

.service-panel .check-list { margin-bottom: 1.8rem; }
.service-panel .check-list li { font-size: .97rem; }

/* Industries */
.industry-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1199.98px) { .industry-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .industry-grid { grid-template-columns: 1fr; } }
.industry-card { height: 100%; padding: 1.8rem 1.4rem; border-radius: 22px; background: #fff; border: 1px solid var(--gz-line); transition: transform .45s var(--gz-ease), box-shadow .45s, border-color .45s; }
.industry-card:hover { transform: translateY(-6px); box-shadow: var(--gz-shadow); border-color: transparent; }
.ic-icon { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: var(--gz-mint); color: var(--gz-green); font-size: 1.4rem; margin-bottom: 1.3rem; transition: background .4s, color .4s; }
.industry-card:hover .ic-icon { background: var(--gz-green); color: #fff; }
.industry-card h3 { font-size: 1.12rem; margin-bottom: .6rem; }
.industry-card p { font-size: .93rem; margin: 0; }

/* Service delivery model */
.delivery { overflow: hidden; isolation: isolate; }
.delivery > .ring-deco { position: absolute; right: -140px; top: -140px; width: 420px; opacity: .6; z-index: -1; animation: spin 60s linear infinite; }
.dm-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; position: relative; }
.dm-steps::before { content: ""; position: absolute; left: 28px; right: calc((100% - 5rem) / 6 - 28px); top: 28px; height: 2px; background: repeating-linear-gradient(90deg, rgba(140, 198, 63, .55) 0 8px, transparent 8px 16px); }
.dm-step { position: relative; padding-right: .4rem; }
.dm-num { position: relative; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--gz-deep); border: 2px solid var(--gz-lime); color: var(--gz-lime); font-family: "Outfit", sans-serif; font-weight: 600; margin-bottom: 1.2rem; transition: background .35s, color .35s; }
.dm-step:hover .dm-num { background: var(--gz-lime); color: var(--gz-forest); }
.dm-icon { display: none; }
.dm-step h3 { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .5rem; color: #fff; }
.dm-step p { font-size: .93rem; color: rgba(255, 255, 255, .72); margin: 0; }
@media (max-width: 1199.98px) { .dm-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.2rem; } .dm-steps::before { display: none; } }
@media (max-width: 575.98px) { .dm-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Mission / vision / values */
.mv-card { position: relative; height: 100%; padding: clamp(2rem, 4vw, 3rem); border-radius: var(--gz-radius-lg); background: #fff; border: 1px solid var(--gz-line); overflow: hidden; isolation: isolate; }
.mv-card.dark { background: var(--gz-deep); border-color: transparent; }
.mv-card .ring-deco { position: absolute; right: -110px; bottom: -110px; width: 280px; opacity: .5; z-index: -1; }
.mv-icon { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-mint); color: var(--gz-green); font-size: 1.6rem; margin-bottom: 1.4rem; }
.mv-card.dark .mv-icon { background: rgba(140, 198, 63, .16); color: var(--gz-lime); }
.mv-card p { font-family: "Outfit", sans-serif; font-weight: 500; font-size: clamp(1.2rem, 2vw, 1.5rem); line-height: 1.4; color: var(--gz-ink); margin: 0; letter-spacing: -.01em; }
.mv-card.dark p { color: #fff; }
.values-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 991.98px) { .values-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .values-grid { grid-template-columns: 1fr; } }
.value-card { height: 100%; padding: 1.8rem 1.4rem; border-radius: 22px; background: #fff; border: 1px solid var(--gz-line); text-align: center; transition: transform .45s var(--gz-ease), box-shadow .45s; }
.value-card:hover { transform: translateY(-6px); box-shadow: var(--gz-shadow); }
.vc-icon { width: 58px; height: 58px; margin: 0 auto 1.1rem; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--gz-green), var(--gz-deep)); color: #fff; font-size: 1.4rem; }
.value-card h3 { font-size: 1.2rem; margin-bottom: .4rem; }
.value-card p { margin: 0; font-size: .93rem; }

/* Why partner */
.sticky-col { position: sticky; top: calc(var(--gz-header-h) + 24px); }
.partner-img { aspect-ratio: 16 / 11; margin-top: 1rem; }
.partner-list { display: grid; gap: .9rem; }
.partner-item { display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.4rem 1.5rem; border-radius: 20px; background: var(--gz-sand); border: 1px solid var(--gz-line); transition: transform .4s var(--gz-ease), background .4s, box-shadow .4s; }
.partner-item:hover { transform: translateX(6px); background: #fff; box-shadow: var(--gz-shadow-sm); }
.pi-icon { flex: 0 0 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-size: 1.25rem; }
.partner-item h3 { font-size: 1.15rem; margin: .1rem 0 .3rem; }
.partner-item p { margin: 0; font-size: .97rem; }
@media (max-width: 991.98px) { .sticky-col { position: static; } }

/* Capability statement band */
.capability-band { position: relative; overflow: hidden; isolation: isolate; padding: clamp(2.2rem, 5vw, 3.5rem); border-radius: var(--gz-radius-lg); background: var(--gz-mint); border: 1px solid rgba(29, 117, 89, .12); }
.capability-band .leaf-watermark { position: absolute; right: 6%; bottom: -60px; width: 200px; color: var(--gz-green); opacity: .07; z-index: -1; }
.capability-band h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.capability-band .btn-gz-lime { --btn-bg-h: var(--gz-deep); --btn-fg-h: #fff; --btn-bd-h: var(--gz-deep); }

/* Cleaning */
.info-tiles.five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 575.98px) { .info-tiles.five { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.info-tile.tile-cta { background: var(--gz-deep); border-color: transparent; }
.info-tile.tile-cta h4 { color: #fff; }
.info-tile.tile-cta .bi { color: var(--gz-lime); }
.info-tile.tile-cta h4 .bi { font-size: 1rem; margin: 0 0 0 .3rem; display: inline; }
.svc-wide { display: flex; gap: 1.4rem; align-items: center; padding: 1.8rem 2rem; border-radius: 24px; background: var(--gz-deep); color: rgba(255, 255, 255, .8); }
.svc-wide .svc-icon { flex: 0 0 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-lime); color: var(--gz-forest); font-size: 1.6rem; }
.svc-wide h3 { color: #fff; font-size: 1.3rem; margin-bottom: .35rem; }
.svc-num-inline { font-family: "Outfit", sans-serif; font-weight: 600; font-size: .8rem; color: var(--gz-lime); letter-spacing: .1em; }
@media (max-width: 575.98px) { .svc-wide { flex-direction: column; align-items: flex-start; } }

/* Recruitment */
.process .pn .bi { font-size: 1.1rem; }
.principles { overflow: hidden; isolation: isolate; }
.principles > .ring-deco { position: absolute; left: -140px; bottom: -140px; width: 400px; opacity: .5; z-index: -1; }
.principle-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 991.98px) { .principle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .principle-grid { grid-template-columns: 1fr; } }
.principle { display: flex; align-items: center; gap: 1rem; padding: 1.3rem 1.4rem; border-radius: 18px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); color: #fff; font-family: "Outfit", sans-serif; font-weight: 500; font-size: 1.08rem; line-height: 1.35; transition: background .35s, border-color .35s, transform .4s var(--gz-ease); }
.principle:hover { background: rgba(140, 198, 63, .12); border-color: rgba(140, 198, 63, .4); transform: translateY(-4px); }
.principle .bi { flex: 0 0 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--gz-lime); color: var(--gz-forest); font-size: 1.2rem; }
.audience-panel .seeker-grid div { font-size: .95rem; align-items: flex-start; }
.audience-panel .seeker-grid div:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* First Nations */
.outcome-table { border-radius: 24px; overflow: hidden; border: 1px solid var(--gz-line); background: #fff; }
.ot-row { display: grid; grid-template-columns: 190px 1fr; gap: 1rem; padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--gz-line); transition: background .3s; }
.ot-row:last-child { border-bottom: 0; }
.ot-row:hover { background: var(--gz-sand); }
.ot-row strong { font-family: "Outfit", sans-serif; font-weight: 600; color: var(--gz-green); }
@media (max-width: 575.98px) { .ot-row { grid-template-columns: 1fr; gap: .2rem; } }

/* Quality, safety & environment */
.pillar-card { height: 100%; display: flex; flex-direction: column; border-radius: 26px; overflow: hidden; background: #fff; border: 1px solid var(--gz-line); transition: transform .5s var(--gz-ease), box-shadow .5s; }
.pillar-card:hover { transform: translateY(-8px); box-shadow: var(--gz-shadow); }
.pillar-card .img-frame { aspect-ratio: 16 / 10; }
.pillar-card:hover .img-frame img { transform: scale(1.06); }
.pc-body { position: relative; padding: 2.6rem 1.8rem 2rem; flex: 1; }
.pc-icon { position: absolute; top: -30px; left: 1.8rem; width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-size: 1.5rem; box-shadow: var(--gz-shadow-sm); }
.pillar-card h2 { font-size: 1.5rem; margin-bottom: .7rem; }
.pillar-card .check-list { margin: 1.2rem 0 0; gap: .55rem; }
.pillar-card .check-list li { font-size: .96rem; }
.ims-callout { position: relative; overflow: hidden; isolation: isolate; padding: clamp(2.2rem, 5vw, 3.5rem); border-radius: var(--gz-radius-lg); background: linear-gradient(120deg, var(--gz-green), var(--gz-deep) 70%); color: #fff; }
.ims-callout > .ring-deco { position: absolute; right: -90px; top: -120px; width: 340px; opacity: .6; z-index: -1; }
.ims-icon { display: inline-grid; place-items: center; width: 96px; height: 96px; border-radius: 28px; background: rgba(255, 255, 255, .1); color: var(--gz-lime); font-size: 2.6rem; }
.ims-text { font-family: "Outfit", sans-serif; font-weight: 500; font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.45; margin: 0; }

/* Careers */
.career-card { height: 100%; display: flex; flex-direction: column; align-items: flex-start; padding: 2rem 1.8rem; border-radius: 26px; background: #fff; border: 1px solid var(--gz-line); transition: transform .45s var(--gz-ease), box-shadow .45s; }
.career-card:hover { transform: translateY(-6px); box-shadow: var(--gz-shadow); }
.career-card.dark { background: var(--gz-deep); border-color: transparent; color: rgba(255, 255, 255, .78); }
.career-card.dark h2 { color: #fff; }
.cr-icon { width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-size: 1.5rem; margin-bottom: 1.3rem; }
.cr-icon.lime { background: var(--gz-lime); color: var(--gz-forest); }
.career-card small { font-family: "Outfit", sans-serif; text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 600; color: var(--gz-green); }
.career-card.dark small { color: var(--gz-lime); }
.career-card h2 { font-size: 1.45rem; margin: .3rem 0 .8rem; }
.career-card .link-arrow { margin-top: auto; font-size: .95rem; }
.link-arrow.light { color: var(--gz-lime); }
.aside-checks { list-style: none; padding: 0; margin: 1.6rem 0; display: grid; gap: .7rem; }
.aside-checks li { display: flex; align-items: center; gap: .85rem; color: #fff; font-weight: 500; }
.aside-checks .bi { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 12px; display: grid; place-items: center; background: rgba(140, 198, 63, .16); color: var(--gz-lime); }
.aside-links a > span { display: flex; flex-direction: column; line-height: 1.3; }
.aside-links a small { color: rgba(255, 255, 255, .55); font-size: .78rem; font-weight: 400; }

/* Testimonials */
.testi-card { position: relative; height: 100%; display: flex; flex-direction: column; margin: 0; padding: 2.2rem 2rem 1.8rem; border-radius: 26px; background: #fff; border: 1px solid var(--gz-line); overflow: hidden; transition: transform .45s var(--gz-ease), box-shadow .45s; }
.testi-card:hover { transform: translateY(-6px); box-shadow: var(--gz-shadow); }
.testi-mark { position: absolute; right: 1.4rem; top: .4rem; font-size: 5rem; line-height: 1; color: var(--gz-lime); opacity: .35; }
.testi-card .chip { align-self: flex-start; margin-bottom: 1.2rem; }
.testi-card blockquote { font-family: "Outfit", sans-serif; font-weight: 400; font-size: 1.12rem; line-height: 1.55; color: var(--gz-ink); margin: 0 0 1.6rem; flex: 1; }
.testi-card.is-placeholder blockquote { color: var(--gz-muted); font-style: italic; }
.testi-card figcaption { display: flex; align-items: center; gap: .9rem; padding-top: 1.2rem; border-top: 1px solid var(--gz-line); }
.testi-avatar { flex: 0 0 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--gz-green); color: #fff; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 1.1rem; }
.testi-card figcaption strong { display: block; font-family: "Outfit", sans-serif; font-weight: 600; color: var(--gz-ink); }
.testi-card figcaption small { color: var(--gz-muted); font-size: .88rem; }

/* Blog */
.post-card { height: 100%; display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; background: #fff; border: 1px solid var(--gz-line); transition: transform .5s var(--gz-ease), box-shadow .5s, border-color .4s; }
.post-card:hover { transform: translateY(-8px); box-shadow: var(--gz-shadow); border-color: transparent; }
.post-card .img-frame { display: block; aspect-ratio: 16 / 10; }
.post-card:hover .img-frame img { transform: scale(1.06); }
.post-body { display: flex; flex-direction: column; padding: 1.6rem 1.6rem 1.8rem; flex: 1; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-bottom: 1rem; font-size: .85rem; color: var(--gz-muted); }
.post-meta .bi { margin-right: .3rem; }
.post-card h3 { font-size: 1.28rem; line-height: 1.3; margin-bottom: .7rem; }
.post-card h3 a { color: var(--gz-ink); background: linear-gradient(var(--gz-lime), var(--gz-lime)) 0 100% / 0 2px no-repeat; transition: background-size .45s var(--gz-ease), color .3s; }
.post-card:hover h3 a { background-size: 100% 2px; color: var(--gz-green); }
.post-card p { font-size: .96rem; flex: 1; }
.post-card .link-arrow { align-self: flex-start; font-size: .95rem; }
.page-hero-sm { padding: clamp(4rem, 8vw, 6.5rem) 0 clamp(3.5rem, 6vw, 5rem); }
.article-meta { display: flex; flex-wrap: wrap; gap: 1.4rem; color: rgba(255, 255, 255, .75); margin: 0; font-size: .95rem; }
.article-meta .bi { color: var(--gz-lime); margin-right: .45rem; }
.page-hero-article h1 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); max-width: 900px; }
.article-body { font-size: 1.1rem; line-height: 1.8; color: #3d4e47; }
.article-body .lead { font-size: 1.28rem; color: var(--gz-ink); margin-bottom: 2rem; }
.article-body h2 { font-size: clamp(1.45rem, 2.4vw, 1.8rem); margin: 2.4rem 0 .9rem; }
.article-body ul { padding-left: 0; list-style: none; margin: 0 0 1.4rem; display: grid; gap: .6rem; }
.article-body ul li { position: relative; padding-left: 1.8rem; }
.article-body ul li::before { content: ""; position: absolute; left: .2rem; top: .7em; width: 9px; height: 9px; border-radius: 50%; background: var(--gz-lime); box-shadow: 0 0 0 4px var(--gz-lime-soft); }
.article-body strong { color: var(--gz-ink); }
.article-body blockquote { margin: 2.2rem 0; padding: 1.6rem 1.8rem; border-radius: 20px; background: var(--gz-mint); border-left: 4px solid var(--gz-green); font-family: "Outfit", sans-serif; font-weight: 500; font-size: 1.3rem; line-height: 1.45; color: var(--gz-ink); }
.article-next { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem; margin-top: 3rem; padding: 1.8rem 2rem; border-radius: 22px; background: var(--gz-sand); border: 1px solid var(--gz-line); }
.article-next .eyebrow { margin-bottom: .3rem; }
.article-next p { font-family: "Outfit", sans-serif; font-weight: 500; color: var(--gz-ink); font-size: 1.15rem; }

/* Legal pages (privacy policy, terms) */
.legal-body { font-size: 1.03rem; }
.legal-body h2:first-of-type { margin-top: 1.4rem; }
.legal-body a { color: var(--gz-green); text-decoration: underline; text-underline-offset: 3px; }
.legal-body a:hover { color: var(--gz-green-600); }
.legal-updated { display: inline-flex; align-items: center; gap: .5rem; margin: 0; padding: .45rem 1rem; border-radius: 999px; background: var(--gz-mint); color: var(--gz-ink); font-size: .92rem; font-weight: 500; }
.legal-updated .bi { color: var(--gz-green); }
.legal-toc { position: sticky; top: calc(var(--gz-header-h) + 24px); padding: 1.5rem 1.4rem; border-radius: 22px; background: var(--gz-sand); border: 1px solid var(--gz-line); }
.legal-toc ol { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .15rem; counter-reset: toc; }
.legal-toc li { counter-increment: toc; }
.legal-toc a { display: flex; gap: .6rem; padding: .35rem 0; color: var(--gz-ink); font-size: .93rem; line-height: 1.35; }
.legal-toc a::before { content: counter(toc, decimal-leading-zero); color: var(--gz-green); font-weight: 600; font-size: .8rem; padding-top: .1rem; }
.legal-toc a:hover { color: var(--gz-green); }

/* Enquiry form (v2) */
.type-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767.98px) { .type-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 399.98px) { .type-options { grid-template-columns: 1fr; } }
.type-option label { font-size: .97rem; padding-right: 2.2rem; }
.type-option label > span { display: flex; flex-direction: column; gap: .15rem; }
.type-option label small { font-family: "DM Sans", sans-serif; font-weight: 400; font-size: .78rem; color: var(--gz-muted); }
.form-section { display: flex; align-items: center; gap: .6rem; font-size: 1.1rem; margin: 2rem 0 1rem; padding-top: 1.6rem; border-top: 1px dashed var(--gz-line); }
.form-section .bi { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--gz-mint); color: var(--gz-green); font-size: 1rem; }
.check-pills, .radio-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.check-pills label, .radio-pills label { position: relative; cursor: pointer; margin: 0; }
.check-pills input, .radio-pills input { position: absolute; opacity: 0; pointer-events: none; }
.check-pills span, .radio-pills span { display: inline-flex; align-items: center; gap: .45rem; padding: .6rem 1rem; border-radius: 999px; border: 1.5px solid var(--gz-line); background: var(--gz-sand); font-size: .92rem; font-weight: 500; color: var(--gz-ink); transition: all .25s; }
.check-pills span::before { content: "\F64D"; font-family: "bootstrap-icons"; font-size: .85rem; color: var(--gz-muted); }
.check-pills input:checked + span::before { content: "\F26E"; color: var(--gz-forest); }
.check-pills label:hover span, .radio-pills label:hover span { border-color: rgba(29, 117, 89, .45); }
.check-pills input:checked + span, .radio-pills input:checked + span { background: var(--gz-lime-soft); border-color: var(--gz-green); color: var(--gz-forest); }
.check-pills input:focus-visible + span, .radio-pills input:focus-visible + span { outline: 3px solid var(--gz-lime); outline-offset: 2px; }
.group-error { display: none; color: #c4453c; font-size: .86rem; margin-top: .5rem; }
.is-invalid > .group-error { display: block; }
.form-control-sm-h { min-height: 110px !important; }
.dropzone-sm { padding: .9rem 1rem; }
.dropzone-sm .dz-icon { flex-basis: 42px; height: 42px; font-size: 1.15rem; }
.dropzone.has-file { border-style: solid; border-color: var(--gz-green); background: var(--gz-lime-soft); }
.dz-name { display: block; font-size: .85rem; color: var(--gz-muted); word-break: break-word; }
.was-validated .dropzone:has(input:invalid) { border-color: #c4453c; }
.was-validated [class*="col-"]:has(> .dropzone input:invalid) > .invalid-feedback { display: block; }
.consent { padding: 1rem 1rem 1rem 2.6rem; border-radius: 14px; background: var(--gz-sand); border: 1px solid var(--gz-line); }
.consent .form-check-input { margin-top: .3rem; }
.consent .form-check-input:checked { background-color: var(--gz-green); border-color: var(--gz-green); }
.consent label { font-size: .93rem; color: var(--gz-ink); }
.hp-field { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-alert { margin-bottom: 1.2rem; padding: 1rem 1.2rem; border-radius: 14px; background: #fdecea; color: #8a2a22; border: 1px solid #f3c2bc; font-size: .95rem; }
[data-types][hidden] { display: none !important; }
.footer-area { display: flex; gap: .8rem; align-items: center; color: #fff; }
.footer-area .bi { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 13px; display: grid; place-items: center; background: rgba(255, 255, 255, .07); color: var(--gz-lime); }
.footer-area small { display: block; color: rgba(255, 255, 255, .55); font-size: .8rem; }
@media (max-width: 575.98px) { .dc-arrow { display: none; } .division-card { padding: 1.3rem 1.2rem; } }
