@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/Roboto-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Roboto";
  src: url("../fonts/Roboto-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

.elementor-page:has(.gep-page-section) {
  margin: 0;
  overflow-x: clip;
  background: #fff;
}

.gep-page-section {
  --gep-navy: #0e1430;
  --gep-deep: #070c1d;
  --gep-blue: #1974b5;
  --gep-sky: #48baf1;
  --gep-green: #3d9b3f;
  --gep-lime: #94bc2e;
  --gep-slate: #58657a;
  --gep-line: #dce3e7;
  --gep-mist: #f3f7f5;
  --gep-section-space: 120px;
  --gep-section-head-gap: 64px;
  position: relative;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  font-family: "Roboto", "Segoe UI", sans-serif;
}

.gep-page-section *,
.gep-page-section *::before,
.gep-page-section *::after {
  box-sizing: border-box;
}

.gep-page-section.e-con,
.gep-page-section .e-con,
.gep-page-section .e-con-inner {
  --padding-top: 0;
  --padding-right: 0;
  --padding-bottom: 0;
  --padding-left: 0;
}

.gep-page-section .gep-shell {
  width: min(calc(100% - 48px), 1200px) !important;
  max-width: 1200px !important;
  margin-inline: auto !important;
}

.gep-page-section .elementor-widget:not(:last-child) {
  margin-block-end: 0;
}

.gep-page-section .elementor-heading-title,
.gep-page-section .elementor-widget-text-editor p,
.gep-page-section .elementor-widget-text-editor ul {
  margin-top: 0;
}

.gep-page-section a {
  text-decoration: none;
}

.gep-page-section a:focus-visible,
.gep-page-section button:focus-visible,
.gep-page-section input:focus-visible,
.gep-page-section select:focus-visible,
.gep-page-section textarea:focus-visible {
  outline: 2px solid var(--gep-sky);
  outline-offset: 3px;
}

.gep-eyebrow .elementor-heading-title {
  display: flex;
  gap: 12px;
  align-items: center;
  color: var(--gep-green);
  font-family: "Montserrat", sans-serif;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em;
  line-height: 1.2 !important;
  text-transform: uppercase;
}

.gep-eyebrow--light .elementor-heading-title {
  color: var(--gep-lime);
}

.gep-eyebrow .elementor-heading-title::before {
  width: 26px;
  height: 2px;
  flex: 0 0 auto;
  background: currentColor;
  content: "";
}

.gep-section-title .elementor-heading-title {
  color: var(--gep-navy);
  font-family: "Montserrat", sans-serif;
  font-size: clamp(44px, 5.1vw, 68px) !important;
  font-weight: 500 !important;
  letter-spacing: -0.055em;
  line-height: 0.99 !important;
}

/* Keep large editorial headings legible when the same reusable title widget
   is placed on a dark process or evidence band. */
.gep-section--dark .gep-section-title .elementor-heading-title,
.gep-evidence .gep-section-title .elementor-heading-title {
  color: #fff;
}

.gep-section-lead p,
.gep-section-lead {
  font-size: 17px;
  line-height: 1.72;
}

.gep-button .elementor-button,
.gep-button .elementor-button:visited {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: none;
  font-weight: 600;
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.gep-button .elementor-button:hover {
  transform: translateY(-2px);
}

.gep-button--lime .elementor-button,
.gep-button--lime .elementor-button:visited {
  color: #07101e !important;
  background: var(--gep-lime) !important;
  border-color: var(--gep-lime) !important;
}

.gep-button--lime .elementor-button:hover,
.gep-button--lime .elementor-button:focus-visible {
  color: #07101e !important;
  background: #b6d94c !important;
  border-color: #b6d94c !important;
}

/* Full-bleed interior hero. */
.gep-hero {
  min-height: 760px;
  overflow: hidden;
  color: #fff;
  background-color: var(--gep-deep);
}

.gep-hero::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background:
    linear-gradient(90deg, rgb(5 9 22 / 98%) 0%, rgb(5 9 22 / 90%) 36%, rgb(5 9 22 / 42%) 70%, rgb(5 9 22 / 64%) 100%),
    linear-gradient(0deg, rgb(5 9 22 / 74%) 0%, transparent 52%);
  content: "";
}

.gep-hero::after {
  position: absolute;
  z-index: 0;
  top: 16%;
  right: -7%;
  width: 41vw;
  height: 41vw;
  border: 1px solid rgb(72 186 241 / 20%);
  border-radius: 50%;
  box-shadow: 0 0 0 110px rgb(72 186 241 / 3%), 0 0 0 220px rgb(148 188 46 / 2%);
  content: "";
}

.gep-hero .gep-shell {
  z-index: 1;
  min-height: 760px;
  padding-block: 154px 72px !important;
  justify-content: center;
}

.gep-hero-copy > .elementor-element {
  margin-bottom: 25px;
}

.gep-hero-copy > .elementor-element:last-child {
  margin-bottom: 0;
}

.gep-hero-title .elementor-heading-title {
  max-width: 930px;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(60px, 6.2vw, 88px) !important;
  font-weight: 400 !important;
  letter-spacing: -0.065em;
  line-height: 0.96 !important;
}

.gep-hero-title .elementor-heading-title span {
  color: var(--gep-lime);
  background: linear-gradient(90deg, var(--gep-sky), #52bd91 48%, var(--gep-lime));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.gep-hero-lead {
  max-width: 660px;
}

.gep-hero-lead p {
  color: #d8e0ec;
  font-size: 18px;
  line-height: 1.68;
}

.gep-hero-marker {
  position: absolute;
  right: 0;
  bottom: 54px;
  width: auto !important;
}

.gep-hero-marker p {
  display: flex;
  gap: 12px;
  align-items: center;
  color: #c3ccda;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.gep-hero-marker span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gep-lime);
  box-shadow: 0 0 0 7px rgb(148 188 46 / 15%);
}

/* Editorial split section. */
.gep-split {
  padding-block: var(--gep-section-space) !important;
  background: #fff;
}

.gep-split-row {
  align-items: center;
}

.gep-split--reverse .gep-split-copy {
  order: 2;
}

.gep-split-copy {
  padding-right: 26px !important;
}

.gep-split-copy > .elementor-element {
  margin-bottom: 26px;
}

.gep-split-copy > .elementor-element:last-child {
  margin-bottom: 0;
}

.gep-split-visual {
  min-height: 560px;
  overflow: hidden;
  border-radius: 18px;
  background: var(--gep-deep);
  box-shadow: 0 34px 74px rgb(14 20 48 / 16%);
}

.gep-feature-image,
.gep-feature-image .elementor-widget-container,
.gep-feature-image img {
  width: 100% !important;
  height: 100% !important;
}

.gep-feature-image img {
  min-height: 560px;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(.2,.75,.25,1);
}

.gep-split-visual:hover .gep-feature-image img {
  transform: scale(1.035);
}

/* Process is a dark, connected technical rail. */
.gep-process,
.gep-section--dark {
  padding-block: var(--gep-section-space) !important;
  color: #fff;
  background: var(--gep-deep);
}

.gep-section-head {
  max-width: 790px;
  margin-bottom: var(--gep-section-head-gap);
}

.gep-section-head > .elementor-element {
  margin-bottom: 24px;
}

.gep-section-head > .elementor-element:last-child {
  margin-bottom: 0;
}

.gep-process-track {
  align-items: stretch;
  border-top: 1px solid #27324a;
  border-bottom: 1px solid #27324a;
}

.gep-process-step {
  min-height: 250px;
  padding: 30px 26px !important;
  justify-content: space-between;
  border-right: 1px solid #27324a;
  transition: background-color 180ms ease, transform 180ms ease;
}

.gep-process-step:last-child {
  border-right: 0;
}

.gep-process-step:hover {
  z-index: 1;
  background: #111a32;
  transform: translateY(-8px);
}

.gep-process-number .elementor-heading-title,
.gep-feature-number .elementor-heading-title {
  font-family: "Montserrat", sans-serif;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em;
}

.gep-process-title {
  margin-top: auto !important;
}

.gep-process-title .elementor-heading-title {
  font-size: 20px !important;
  line-height: 1.25 !important;
  color: #3d9b3f !important;
}

.gep-process-copy {
  margin-top: 18px !important;
}

.gep-process-copy p {
  color: #aeb8c9;
  font-size: 16px;
  line-height: 1.6;
}

/* Large rows instead of a card grid. */
.gep-features,
.gep-management,
.gep-news {
  padding-block: var(--gep-section-space) !important;
  background: var(--gep-mist);
}

.gep-feature-list,
.gep-profile-list,
.gep-news-list {
  border-top: 1px solid #cdd7de;
}

.gep-feature-row,
.gep-profile,
.gep-news-row {
  min-height: 150px;
  padding-block: 28px !important;
  align-items: center;
  border-bottom: 1px solid #cdd7de;
  transition: padding 180ms ease, background-color 180ms ease;
}

.gep-feature-row {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

.gep-feature-row:hover,
.gep-news-row:hover {
  padding-inline: 14px !important;
  background: #fff;
}

.gep-feature-name,
.gep-feature-copy {
  padding-right: 28px !important;
}

.gep-feature-title .elementor-heading-title {
  font-size: clamp(20px, 2vw, 28px) !important;
  letter-spacing: -0.03em;
  line-height: 1.15 !important;
}

.gep-feature-text p {
  color: var(--gep-slate);
  font-size: 16px;
  line-height: 1.65;
}

/* Evidence band */
.gep-evidence {
  padding-block: 96px !important;
  overflow: hidden;
  background: #0d1730;
}

.gep-evidence::after {
  position: absolute;
  top: -180px;
  right: -90px;
  width: 520px;
  height: 520px;
  border: 1px solid rgb(72 186 241 / 17%);
  border-radius: 50%;
  box-shadow: 0 0 0 100px rgb(148 188 46 / 4%);
  content: "";
}

.gep-evidence-row {
  z-index: 1;
  align-items: flex-end;
}

.gep-evidence-copy {
  padding-bottom: 8px !important;
}

/* Closing CTA */
.gep-closing {
  padding-block: 108px !important;
  color: #fff;
  background: var(--gep-deep);
  border-top: 1px solid #27304a;
}

.gep-closing-row {
  align-items: flex-end;
}

.gep-closing-copy > .elementor-element {
  margin-bottom: 24px;
}

.gep-closing-title .elementor-heading-title {
  max-width: 840px;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(48px, 5.4vw, 74px) !important;
  font-weight: 400 !important;
  letter-spacing: -0.06em;
  line-height: 0.98 !important;
}

.gep-closing-lead p {
  color: #b8c2d1;
  font-size: 17px;
}

.gep-closing-action {
  align-items: flex-end;
  padding-bottom: 8px !important;
}

/* Leadership */
.gep-profile-mark {
  min-height: 180px;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  background:
    radial-gradient(circle at 65% 32%, rgb(72 186 241 / 25%), transparent 38%),
    linear-gradient(145deg, #0d1730, #091020);
}

.gep-profile-initials .elementor-heading-title {
  color: var(--gep-lime);
  font-family: "Montserrat", sans-serif;
  font-size: 38px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em;
}

.gep-profile-title .elementor-heading-title {
  font-size: clamp(30px, 3vw, 43px) !important;
  letter-spacing: -0.045em;
  line-height: 1.03 !important;
}

.gep-profile-role {
  margin-top: 12px !important;
}

.gep-profile-role .elementor-heading-title {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em;
  line-height: 1.5 !important;
  text-transform: uppercase;
}

.gep-profile-copy p {
  color: var(--gep-slate);
  font-size: 15px;
  line-height: 1.7;
}

/* Global presence */
.gep-map-section {
  padding-block: var(--gep-section-space) !important;
  background: #fff;
}

.gep-map-layout {
  align-items: center;
}

.gep-map-copy > .elementor-element {
  margin-bottom: 25px;
}

.gep-map-visual {
  position: relative;
  padding: 20px !important;
  border: 1px solid #d8e0de;
  border-radius: 26px;
  background: #f5f8f7;
  box-shadow: 0 32px 70px rgb(14 20 48 / 12%);
}

.gep-world-map img {
  display: block;
  width: 100% !important;
  height: auto !important;
  border-radius: 15px;
}

.gep-map-label {
  position: absolute;
  right: 6%;
  bottom: 9%;
  width: auto !important;
  max-width: 260px;
  padding: 14px 18px;
  border-radius: 12px;
  background: rgb(14 20 48 / 92%);
  box-shadow: 0 18px 38px rgb(14 20 48 / 20%);
}

.gep-map-label p {
  margin: 0;
  color: #fff;
  font-size: 12px;
  line-height: 1.5;
}

.gep-map-label strong {
  color: var(--gep-lime);
  font-family: "Montserrat", sans-serif;
  text-transform: uppercase;
}

/* News */
.gep-news-row {
  min-height: 190px;
}

.gep-news-meta {
  gap: 16px;
}

.gep-news-category .elementor-heading-title,
.gep-news-number .elementor-heading-title {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.gep-news-title .elementor-heading-title {
  font-size: clamp(28px, 3.2vw, 44px) !important;
  font-weight: 500 !important;
  letter-spacing: -0.048em;
  line-height: 1.04 !important;
}

.gep-news-copy p {
  color: var(--gep-slate);
  font-size: 15px;
  line-height: 1.7;
}

/* Contact */
.gep-contact {
  padding-block: var(--gep-section-space) !important;
  background: #fff;
}

.gep-contact-layout {
  align-items: flex-start;
}

.gep-contact-copy > .elementor-element {
  margin-bottom: 25px;
}

.gep-contact-form-wrap {
  padding: 44px !important;
  border: 1px solid #dce3e7;
  border-radius: 24px;
  background: var(--gep-mist);
}

.gep-contact-form .elementor-form-fields-wrapper {
  gap: 18px 0;
}

.gep-contact-form .elementor-field-group {
  margin-bottom: 0 !important;
  padding-inline: 8px !important;
}

.gep-contact-form .elementor-field-label {
  margin-bottom: 8px;
  color: var(--gep-navy);
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 600;
}

.gep-contact-form input,
.gep-contact-form select,
.gep-contact-form textarea {
  min-height: 50px;
  padding: 13px 15px !important;
  color: var(--gep-navy) !important;
  background: #fff !important;
  border: 1px solid #cdd7de !important;
  border-radius: 8px !important;
}

.gep-contact-form textarea {
  min-height: 150px;
}

.gep-contact-form .elementor-button {
  min-height: 52px;
  padding-inline: 24px;
  color: #07101e !important;
  background: var(--gep-lime) !important;
  border: 1px solid var(--gep-lime) !important;
  border-radius: 999px !important;
  font-weight: 600;
}

.gep-form-consent {
  margin-top: 20px !important;
}

.gep-form-consent p {
  margin: 0;
  color: #748095;
  font-size: 11px;
  line-height: 1.55;
}

/* --------------------------------------------------------------------------
   Page-specific editorial archetypes
   -------------------------------------------------------------------------- */

/* Every hero keeps the brand language while changing its spatial signature. */
.gep-hero--technology::after {
  right: 4%;
  top: 20%;
  width: 34vw;
  height: 34vw;
  border-radius: 42% 58% 64% 36%;
  animation: gep-orbit 13s ease-in-out infinite alternate;
}

.gep-hero--graphene-hydrogen::before {
  background: linear-gradient(90deg, #050916 0 40%, rgb(5 9 22 / 67%) 64%, rgb(5 9 22 / 34%));
}

.gep-hero--plasma-activated-water::after {
  top: auto;
  right: -5%;
  bottom: -35%;
  width: 68vw;
  height: 34vw;
  border-radius: 50%;
  transform: rotate(-9deg);
  box-shadow: 0 0 0 90px rgb(72 186 241 / 4%), 0 0 0 180px rgb(82 189 145 / 3%);
}

.gep-hero--plasma-activated-seeds .gep-hero-copy,
.gep-hero--food-security .gep-hero-copy {
  margin-left: auto;
}

.gep-hero--plasma-activated-seeds::before,
.gep-hero--food-security::before {
  background: linear-gradient(270deg, rgb(5 9 22 / 96%) 0 48%, rgb(5 9 22 / 54%) 74%, rgb(5 9 22 / 34%));
}

.gep-hero--plasma-ore-mining::before {
  background:
    linear-gradient(180deg, transparent 45%, rgb(4 8 18 / 92%)),
    linear-gradient(90deg, rgb(5 9 22 / 97%) 0 42%, rgb(5 9 22 / 35%));
}

.gep-hero--applications .gep-hero-copy,
.gep-hero--sustainability .gep-hero-copy,
.gep-hero--about .gep-hero-copy {
  width: 82% !important;
}

.gep-hero--applications .gep-hero-title .elementor-heading-title,
.gep-hero--about .gep-hero-title .elementor-heading-title {
  max-width: 1080px;
}

.gep-hero--sustainability::after {
  border-style: dashed;
  box-shadow: 0 0 0 80px rgb(72 186 241 / 4%), 0 0 0 160px rgb(148 188 46 / 4%), 0 0 0 240px rgb(82 189 145 / 3%);
}

.gep-hero--partnerships-validation .gep-hero-copy,
.gep-hero--management .gep-hero-copy,
.gep-hero--contact .gep-hero-copy {
  max-width: 780px;
}

.gep-hero--global-commercialisation::before,
.gep-hero--global-presence::before {
  background: linear-gradient(90deg, rgb(5 9 22 / 98%) 0 43%, rgb(5 9 22 / 73%) 67%, rgb(5 9 22 / 54%));
}

.gep-hero--news-insights .gep-shell {
  justify-content: flex-end;
}

.gep-hero--news-insights .gep-hero-copy {
  padding-bottom: 54px !important;
}

@keyframes gep-orbit {
  to { transform: rotate(10deg) scale(1.05); }
}

/* Technology: central plasma system and four branch pathways. */
.gep-platform-branch {
  padding-block: var(--gep-section-space) !important;
  overflow: hidden;
  background:
    radial-gradient(circle at 72% 35%, rgb(25 116 181 / 18%), transparent 34%),
    #070c1d;
}

.gep-platform-heading {
  align-items: center;
  margin-bottom: 76px;
}

.gep-platform-core {
  min-height: 230px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(72 186 241 / 28%);
  border-radius: 50%;
  background: radial-gradient(circle, rgb(25 116 181 / 24%), rgb(7 12 29 / 16%) 62%);
  box-shadow: 0 0 0 34px rgb(72 186 241 / 3%), 0 0 0 68px rgb(148 188 46 / 2%);
}

.gep-platform-core-label .elementor-heading-title {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(26px, 3vw, 42px) !important;
  font-weight: 500 !important;
  letter-spacing: .22em;
}

.gep-platform-core-copy {
  margin-top: 13px !important;
  text-align: center;
}

.gep-platform-core-copy p {
  margin: 0;
  color: #c3ccda;
  font-size: 13px;
  letter-spacing: .05em;
  line-height: 1.55;
  text-transform: uppercase;
}

.gep-branch-rail {
  margin-bottom: 88px;
  border-top: 1px solid #27324a;
  border-bottom: 1px solid #27324a;
}

.gep-branch-rail-step {
  min-height: 116px;
  padding: 22px 24px !important;
  justify-content: space-between;
  border-right: 1px solid #27324a;
}

.gep-branch-rail-step:last-child { border-right: 0; }

.gep-platform-body { align-items: flex-start; }

.gep-platform-axis {
  position: sticky;
  top: 130px;
  min-height: 320px;
  padding: 40px !important;
  justify-content: flex-end;
  border-left: 2px solid var(--gep-lime);
  background: linear-gradient(135deg, rgb(20 32 59 / 92%), rgb(8 14 30 / 84%));
}

.gep-platform-axis-title .elementor-heading-title {
  margin-top: 22px;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(32px, 3.7vw, 54px) !important;
  font-weight: 400 !important;
  letter-spacing: -.05em;
  line-height: 1.03 !important;
}

.gep-branch-list { border-top: 1px solid #27324a; }

.gep-branch-node {
  min-height: 150px;
  padding: 27px 0 !important;
  align-items: flex-start;
  border-bottom: 1px solid #27324a;
  transition: padding 180ms ease, background-color 180ms ease;
}

.gep-branch-node:hover {
  padding-inline: 18px !important;
  background: rgb(17 26 50 / 76%);
}

.gep-branch-content .gep-feature-text { margin-top: 14px !important; }
.gep-branch-content .gep-feature-text p { color: #aeb8c9; }

/* Graphene: directional conversion sequence and horizontal application band. */
.gep-intro--materials .gep-split-visual {
  border-radius: 18px;
}

.gep-process--conversion .gep-process-track {
  position: relative;
  border: 0;
}

.gep-process--conversion .gep-process-track::before {
  position: absolute;
  top: 58px;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gep-sky), #52bd91, var(--gep-lime));
  content: "";
}

.gep-process--conversion .gep-process-step {
  min-height: 290px;
  padding-top: 36px !important;
  border: 0;
}

.gep-process--conversion .gep-process-number .elementor-heading-title {
  display: grid;
  width: 45px;
  height: 45px;
  place-items: center;
  border: 1px solid var(--gep-sky);
  border-radius: 50%;
  background: #070c1d;
}

.gep-features--applications-band .gep-feature-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 0;
}

.gep-features--applications-band .gep-feature-row {
  display: flex;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  min-height: 330px;
  padding: 28px 22px !important;
  align-content: flex-start;
  align-items: flex-start;
  border-top: 2px solid var(--gep-blue);
  border-right: 1px solid #cdd7de;
  border-bottom: 0;
}

.gep-features--applications-band .gep-feature-index,
.gep-features--applications-band .gep-feature-name,
.gep-features--applications-band .gep-feature-copy {
  width: 100% !important;
  margin-left: 0;
  padding-right: 0 !important;
}

.gep-features--applications-band .gep-feature-name { margin-top: 54px; }
.gep-features--applications-band .gep-feature-copy { margin-top: auto; padding-top: 34px !important; }

/* PAW: fluid rail and operating-environment modules. */
.gep-intro--water { background: linear-gradient(180deg, #fff, #eff8fa); }

.gep-intro--water .gep-split-visual {
  border-radius: 18px;
  box-shadow: 0 40px 100px rgb(25 116 181 / 20%);
}

.gep-process--wave {
  overflow: hidden;
  background: #eff8fa;
}

.gep-process--wave::before,
.gep-process--wave::after {
  position: absolute;
  right: -8%;
  left: -8%;
  height: 240px;
  border: 1px solid rgb(25 116 181 / 16%);
  border-radius: 50%;
  content: "";
}

.gep-process--wave::before { top: 42%; transform: rotate(-4deg); }
.gep-process--wave::after { top: 49%; transform: rotate(3deg); }

.gep-process--wave .gep-shell { z-index: 1; }
.gep-process--wave .gep-process-track { border-color: rgb(25 116 181 / 28%); }
.gep-process--wave .gep-process-step { border-color: rgb(25 116 181 / 24%); }
.gep-process--wave .gep-process-step:nth-child(even) { transform: translateY(42px); }
.gep-process--wave .gep-process-step:hover { background: rgb(255 255 255 / 72%); transform: translateY(-8px); }
.gep-process--wave .gep-process-step:nth-child(even):hover { transform: translateY(34px); }
.gep-process--wave .gep-process-copy p { color: var(--gep-slate); }

.gep-features--water-environments {
  background: linear-gradient(145deg, #07101f, #0a1b35 68%, #0c2736);
}

.gep-features--water-environments .gep-feature-list {
  counter-reset: water;
  border-color: #27324a;
}

.gep-features--water-environments .gep-feature-row { border-color: #27324a; }
.gep-features--water-environments .gep-feature-row:hover { background: rgb(72 186 241 / 7%); }

/* PAS: field journal with a long-form visual and compact research notes. */
.gep-field-journal {
  padding-block: var(--gep-section-space) !important;
  background: #f2f7ef;
}

.gep-journal-layout { align-items: flex-start; }

.gep-journal-visual {
  position: sticky;
  top: 112px;
  min-height: 850px;
  overflow: hidden;
  border-radius: 18px;
  background: var(--gep-deep);
}

.gep-journal-visual .gep-feature-image img { min-height: 850px; }

.gep-journal-caption {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  padding: 19px 22px;
  background: rgb(7 12 29 / 88%);
  backdrop-filter: blur(8px);
}

.gep-journal-caption p { margin: 0; color: #c3ccda; font-size: 12px; line-height: 1.5; }
.gep-journal-caption strong { color: #fff; font-family: "Montserrat", sans-serif; font-size: 15px; }

.gep-journal-story > .elementor-element { margin-bottom: 24px; }
.gep-journal-notes { margin-top: 54px; border-top: 1px solid #cad7c7; }
.gep-journal-note { padding-block: 24px !important; align-items: flex-start; border-bottom: 1px solid #cad7c7; }
.gep-journal-note-copy .gep-feature-text { margin-top: 11px !important; }

.gep-process--growth .gep-process-step {
  min-height: 310px;
  justify-content: flex-start;
  border-top: 3px solid transparent;
}

.gep-process--growth .gep-process-step:nth-child(1) { border-top-color: #496c38; }
.gep-process--growth .gep-process-step:nth-child(2) { border-top-color: #3d9b3f; }
.gep-process--growth .gep-process-step:nth-child(3) { border-top-color: #76ad36; }
.gep-process--growth .gep-process-step:nth-child(4) { border-top-color: #a8cc35; }
.gep-process--growth .gep-process-title { margin-top: 72px !important; }

/* POM: geological strata with a precise recovery ledger. */
.gep-intro--strata {
  color: #fff;
  background:
    linear-gradient(173deg, transparent 0 16%, rgb(255 255 255 / 3%) 16.2% 17%, transparent 17.2% 35%, rgb(148 188 46 / 5%) 35.2% 36%, transparent 36.2%),
    #0b1123;
}

.gep-intro--strata .gep-section-title .elementor-heading-title { color: #fff; }
.gep-intro--strata .gep-section-lead p { color: #b8c2d1; }
.gep-intro--strata .gep-split-visual { border-radius: 18px; box-shadow: 22px 22px 0 rgb(148 188 46 / 13%); }

.gep-process--ore { background: #12182b; }
.gep-process--ore .gep-process-track { border-top: 0; }
.gep-process--ore .gep-process-step { border-top: 1px solid #465064; border-right: 0; }
.gep-process--ore .gep-process-step:nth-child(2) { margin-top: 32px; }
.gep-process--ore .gep-process-step:nth-child(3) { margin-top: 64px; }
.gep-process--ore .gep-process-step:nth-child(4) { margin-top: 96px; }

.gep-features--ore-ledger .gep-feature-row { min-height: 128px; }
.gep-features--ore-ledger .gep-feature-number .elementor-heading-title { color: #8a7655 !important; }
.gep-features--ore-ledger .gep-feature-row:hover { background: #f7f4ee; }

/* Applications: indexed industry atlas with a sticky reading rail. */
.gep-application-atlas {
  padding-block: var(--gep-section-space) !important;
  background:
    linear-gradient(90deg, #070c1d 0 37%, #0b1327 37%),
    #070c1d;
}

.gep-atlas-layout { align-items: flex-start; }
.gep-atlas-rail { position: sticky; top: 130px; padding-right: 46px !important; }
.gep-atlas-rail > .elementor-element { margin-bottom: 24px; }
.gep-atlas-rail .gep-section-title .elementor-heading-title { font-size: clamp(43px, 4.5vw, 61px) !important; }
.gep-atlas-list { border-top: 1px solid #27324a; }

.gep-atlas-entry {
  min-height: 190px;
  padding-block: 30px !important;
  align-items: flex-start;
  border-bottom: 1px solid #27324a;
  transition: padding 200ms ease, background-color 200ms ease;
}

.gep-atlas-entry:hover { padding-inline: 18px !important; background: rgb(72 186 241 / 6%); }
.gep-atlas-entry-title .elementor-heading-title { font-size: clamp(27px, 3vw, 42px) !important; font-weight: 500 !important; letter-spacing: -.045em; line-height: 1.05 !important; }
.gep-atlas-copy p { color: #aeb8c9; }

.gep-process--engagement { background: #fff; }
.gep-process--engagement .gep-process-track { border-color: #cdd7de; }
.gep-process--engagement .gep-process-step { border-color: #cdd7de; }
.gep-process--engagement .gep-process-copy p { color: var(--gep-slate); }

/* Sustainability: four resource nodes in a circular system. */
.gep-resource-loop { padding-block: var(--gep-section-space) !important; overflow: hidden; background: #f3f7f5; }
.gep-loop-head { max-width: 760px; margin-bottom: 72px; }
.gep-loop-head > .elementor-element { margin-bottom: 24px; }

.gep-loop-stage {
  position: relative;
  min-height: 760px;
  border: 1px solid #d6e0dc;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0 23%, transparent 23.2%), linear-gradient(90deg, transparent 49.95%, #d6e0dc 50%, transparent 50.05%), linear-gradient(0deg, transparent 49.95%, #d6e0dc 50%, transparent 50.05%);
}

.gep-loop-core {
  position: absolute !important;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 250px !important;
  min-height: 250px;
  padding: 34px !important;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--gep-navy);
  box-shadow: 0 0 0 30px rgb(255 255 255 / 72%);
  text-align: center;
  transform: translate(-50%, -50%);
}

.gep-loop-core-title .elementor-heading-title { font-family: "Montserrat", sans-serif; font-size: 30px !important; font-weight: 500 !important; line-height: 1.06 !important; }
.gep-loop-core-title .elementor-heading-title { color: #fff; }
.gep-loop-core-copy { margin-top: 14px !important; }
.gep-loop-core-copy p { margin: 0; color: #b8c2d1; font-size: 13px; }

.gep-loop-node {
  position: absolute !important;
  width: 32% !important;
  max-width: 350px;
  min-height: 220px;
  padding: 30px !important;
  justify-content: space-between;
  border-top: 2px solid var(--gep-blue);
  background: rgb(255 255 255 / 94%);
  box-shadow: 0 20px 50px rgb(14 20 48 / 9%);
}

.gep-loop-node--1 { top: 6%; left: 10%; }
.gep-loop-node--2 { top: 6%; right: 10%; }
.gep-loop-node--3 { bottom: 6%; left: 10%; }
.gep-loop-node--4 { right: 10%; bottom: 6%; }

.gep-process--measurement .gep-process-step { min-height: 215px; }

/* Food security: a full-bleed field story followed by a PAS/PAW system. */
.gep-agronomy-story {
  min-height: 820px;
  overflow: hidden;
  background-color: #07101e;
}

.gep-agronomy-story::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(5 9 22 / 94%) 0 42%, rgb(5 9 22 / 30%) 70%, rgb(5 9 22 / 10%));
  content: "";
}

.gep-agronomy-story .gep-shell { z-index: 1; min-height: 820px; justify-content: center; }
.gep-agronomy-copy > .elementor-element { margin-bottom: 26px; }
.gep-agronomy-copy .gep-section-title .elementor-heading-title { color: #fff; }
.gep-agronomy-copy .gep-section-lead p { color: #d8e0ec; }

.gep-agronomy-caption {
  position: absolute;
  right: 0;
  bottom: 54px;
  width: auto !important;
  padding: 17px 22px;
  border-left: 2px solid var(--gep-lime);
  background: rgb(7 12 29 / 82%);
}
.gep-agronomy-caption p { margin: 0; font-size: 12px; line-height: 1.5; text-transform: uppercase; letter-spacing: .07em; }
.gep-agronomy-caption strong { font-family: "Montserrat", sans-serif; font-size: 15px; }

.gep-process--agronomy .gep-process-step:nth-child(1),
.gep-process--agronomy .gep-process-step:nth-child(2) { background: rgb(61 155 63 / 7%); }
.gep-process--agronomy .gep-process-step:nth-child(3),
.gep-process--agronomy .gep-process-step:nth-child(4) { background: rgb(72 186 241 / 5%); }
.gep-features--regional-notes { background: #f2f7ef; }

/* Partnerships: evidence ladder and exact relationship classifications. */
.gep-intro--validation .gep-split-visual { border-radius: 18px; }

.gep-process--evidence-ladder { background: #fff; }
.gep-process--evidence-ladder .gep-process-track { align-items: flex-start; border: 0; }
.gep-process--evidence-ladder .gep-process-step { min-height: 210px; border-top: 3px solid var(--gep-blue); border-right-color: #dce3e7; }
.gep-process--evidence-ladder .gep-process-step:nth-child(2) { margin-top: 32px; }
.gep-process--evidence-ladder .gep-process-step:nth-child(3) { margin-top: 64px; }
.gep-process--evidence-ladder .gep-process-step:nth-child(4) { margin-top: 96px; }
.gep-process--evidence-ladder .gep-process-step:nth-child(5) { margin-top: 128px; border-top-color: var(--gep-lime); }
.gep-process--evidence-ladder .gep-process-copy p { color: var(--gep-slate); }

.gep-features--classifications { background: #0c1428; }
.gep-features--classifications .gep-feature-list,
.gep-features--classifications .gep-feature-row { border-color: #27324a; }
.gep-features--classifications .gep-feature-row:hover { background: rgb(255 255 255 / 3%); }

/* Commercialisation: Singapore origin map plus a licensing track. */
.gep-commercial-map { padding-block: var(--gep-section-space) !important; background: #fff; }
.gep-commercial-map-layout { align-items: center; }
.gep-commercial-copy > .elementor-element { margin-bottom: 25px; }
.gep-commercial-visual { position: relative; padding: 18px !important; border: 1px solid #d7e0de; background: #f6f8f8; }
.gep-commercial-visual .gep-map-label { right: 4%; bottom: 7%; }
.gep-license-intro { max-width: 780px; margin-top: 110px; margin-bottom: 58px; }
.gep-license-intro > .elementor-element { margin-bottom: 22px; }
.gep-license-track { border-top: 1px solid #cdd7de; border-bottom: 1px solid #cdd7de; }
.gep-license-step { min-height: 260px; padding: 28px 23px !important; justify-content: space-between; border-right: 1px solid #cdd7de; }
.gep-license-step:last-child { border-right: 0; }
.gep-license-step .gep-process-copy p { color: var(--gep-slate); }

.gep-features--commercial-principles .gep-feature-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.gep-features--commercial-principles .gep-feature-row {
  min-height: 230px;
  padding: 34px !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: flex-start;
  border-right: 1px solid #cdd7de;
}
.gep-features--commercial-principles .gep-feature-index,
.gep-features--commercial-principles .gep-feature-name,
.gep-features--commercial-principles .gep-feature-copy {
  width: 100% !important;
  margin-left: 0;
  padding-right: 0 !important;
}
.gep-features--commercial-principles .gep-feature-name { margin-top: 32px; }
.gep-features--commercial-principles .gep-feature-copy { margin-top: auto; padding-top: 24px !important; }

/* About: vertical company evolution, then a compact present-day platform band. */
.gep-intro--about .gep-split-visual { border-radius: 18px; }

.gep-process--timeline .gep-process-track { position: relative; display: block; border: 0; }
.gep-process--timeline .gep-process-track::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: #33415b; content: ""; }
.gep-process--timeline .gep-process-step { width: 46% !important; min-height: 190px; margin-bottom: -38px; padding: 30px 34px !important; border: 1px solid #27324a; background: #0c1428; }
.gep-process--timeline .gep-process-step:nth-child(even) { margin-left: 54%; }
.gep-process--timeline .gep-process-step::after { position: absolute; top: 36px; width: 14px; height: 14px; border: 3px solid #070c1d; border-radius: 50%; background: var(--gep-lime); content: ""; }
.gep-process--timeline .gep-process-step:nth-child(odd)::after { right: -10.3%; }
.gep-process--timeline .gep-process-step:nth-child(even)::after { left: -10.3%; }

.gep-features--current-platform .gep-feature-list { display: grid; grid-template-columns: repeat(4, 1fr); }
.gep-features--current-platform .gep-feature-row { min-height: 260px; padding: 28px 22px !important; flex-direction: column !important; flex-wrap: nowrap !important; align-items: flex-start; border-right: 1px solid #cdd7de; }
.gep-features--current-platform .gep-feature-index,
.gep-features--current-platform .gep-feature-name,
.gep-features--current-platform .gep-feature-copy { width: 100% !important; margin-left: 0; padding-right: 0 !important; }
.gep-features--current-platform .gep-feature-name { margin-top: 44px; }
.gep-features--current-platform .gep-feature-copy { margin-top: auto; padding-top: 24px !important; }

/* Management: alternating editorial portraits, ready for future photography. */
.gep-management { background: #fff; }
.gep-management .gep-profile-list { border-top: 0; }
.gep-management .gep-profile { min-height: 360px; padding-block: 52px !important; border-color: #dce3e7; }
.gep-management .gep-profile:nth-child(even) { background: #f3f7f5; }
.gep-management .gep-profile:nth-child(even) .gep-profile-mark { order: 3; }
.gep-management .gep-profile:nth-child(even) .gep-profile-name { order: 2; }
.gep-management .gep-profile:nth-child(even) .gep-profile-bio { order: 1; }
.gep-management .gep-profile-mark { min-height: 250px; }
.gep-management .gep-profile-title .elementor-heading-title { font-size: clamp(34px, 4vw, 56px) !important; }

/* Presence: map as the dominant evidence, not a supporting card. */
.gep-map-section { overflow: hidden; }
.gep-map-section::before { position: absolute; top: 0; right: 0; width: 58%; height: 100%; background: white; content: ""; }
.gep-map-section .gep-shell { z-index: 1; }
.gep-map-visual { padding: 0 !important; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.gep-map-visual .gep-world-map img { border-radius: 0; }

/* News: magazine rhythm rather than repeated equal rows. */
.gep-news { background: #fff; }
.gep-news-list { display: grid !important; grid-template-columns: repeat(12, 1fr); gap: 0 38px; border-top: 0; }
.gep-news-row { grid-column: span 6; min-height: 360px; padding: 34px 0 !important; align-content: flex-start; align-items: flex-start; border-top: 1px solid #cdd7de; }
.gep-news-row:nth-child(3n + 1) { grid-column: span 7; }
.gep-news-row:nth-child(3n + 2) { grid-column: span 5; margin-top: 110px; }
.gep-news-row:nth-child(3n) { grid-column: 3 / span 8; }
.gep-news-row:hover { padding-inline: 18px !important; background: #f3f7f5; }
.gep-news-row .gep-news-meta,
.gep-news-row .gep-news-title-wrap,
.gep-news-row .gep-news-copy-wrap { width: 100% !important; }
.gep-news-title-wrap { margin-top: 70px; }
.gep-news-copy-wrap { margin-top: auto; padding-top: 36px; }

/* Contact: high-trust form with a restrained address rail. */
.gep-contact { background: linear-gradient(90deg, #0c1428 0 45%, #fff 45%); }
.gep-contact-copy { position: sticky; top: 130px; padding: 48px 42px !important; border-left: 2px solid var(--gep-lime); }
.gep-contact-copy .gep-section-title .elementor-heading-title { color: #fff; }
.gep-contact-copy .gep-section-lead p { color: #c3ccda; }
.gep-contact-form-wrap { border: 0; border-radius: 0; background: #f3f7f5; box-shadow: 0 28px 68px rgb(14 20 48 / 10%); }

/* Reveal enhancement: page remains readable without JS. */
.gep-js .gep-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.75,.25,1);
}

.gep-js .gep-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  gap: 15px;
}

@media (max-width: 1024px) {
  .gep-page-section .gep-shell {
    width: min(calc(100% - 40px), 1200px) !important;
  }

  .gep-hero,
  .gep-hero .gep-shell {
    min-height: 700px;
  }

  .gep-hero-title .elementor-heading-title {
    font-size: clamp(56px, 7.2vw, 74px) !important;
  }

  .gep-split-visual,
  .gep-feature-image img {
    min-height: 500px;
  }

  .gep-process-step {
    min-height: 225px;
  }
}

@media (max-width: 900px) {
  .gep-page-section {
    --gep-section-space: 88px;
    --gep-section-head-gap: 52px;
  }

  .gep-hero .gep-shell {
    padding-top: 130px !important;
  }

  .gep-split,
  .gep-features,
  .gep-management,
  .gep-news,
  .gep-map-section,
  .gep-contact,
  .gep-process,
  .gep-section--dark {
    padding-block: 88px !important;
  }

  .gep-split-row,
  .gep-evidence-row,
  .gep-closing-row,
  .gep-map-layout,
  .gep-contact-layout {
    flex-direction: column !important;
  }

  .gep-split-copy,
  .gep-split-visual,
  .gep-evidence-title,
  .gep-evidence-copy,
  .gep-closing-copy,
  .gep-closing-action,
  .gep-map-copy,
  .gep-map-visual,
  .gep-contact-copy,
  .gep-contact-form-wrap {
    width: 100% !important;
  }

  .gep-split--reverse .gep-split-copy {
    order: 0;
  }

  .gep-split-copy {
    padding-right: 0 !important;
  }

  .gep-process-track {
    flex-wrap: wrap !important;
  }

  .gep-process-step {
    width: 50% !important;
    flex: 0 0 50% !important;
    border-bottom: 1px solid #27324a;
  }

  .gep-profile,
  .gep-news-row {
    flex-wrap: wrap !important;
  }

  .gep-feature-index {
    width: 12% !important;
  }

  .gep-feature-name {
    width: 88% !important;
  }

  .gep-feature-copy {
    width: 88% !important;
    margin-left: 12%;
    padding-top: 12px !important;
  }

  .gep-profile-mark {
    width: 22% !important;
  }

  .gep-profile-name {
    width: 38% !important;
  }

  .gep-profile-bio {
    width: 40% !important;
  }

  .gep-news-meta {
    width: 25% !important;
  }

  .gep-news-title-wrap {
    width: 45% !important;
  }

  .gep-news-copy-wrap {
    width: 30% !important;
  }

  .gep-closing-action {
    margin-top: 24px;
    align-items: flex-start;
  }

  .gep-map-visual,
  .gep-contact-form-wrap {
    margin-top: 46px;
  }

  .gep-contact .gep-contact-layout { gap: 40px !important; }
  .gep-contact .gep-contact-copy { position: relative !important; top: auto !important; }
  .gep-contact .gep-contact-form-wrap { margin-top: 0 !important; }
}

@media (max-width: 767px) {
  .gep-page-section {
    --gep-section-space: 72px;
    --gep-section-head-gap: 48px;
  }

  .gep-page-section .gep-shell {
    width: min(calc(100% - 28px), 1200px) !important;
  }

  .gep-hero,
  .gep-hero .gep-shell {
    min-height: 720px;
  }

  .gep-hero .gep-shell {
    padding-block: 112px 54px !important;
  }

  .gep-hero-title .elementor-heading-title {
    font-size: clamp(42px, 12.6vw, 58px) !important;
    line-height: 0.98 !important;
  }

  .gep-hero-lead p {
    font-size: 15px;
  }

  .gep-hero-marker {
    right: auto;
    bottom: 30px;
    left: 0;
  }

  .gep-section-title .elementor-heading-title {
    font-size: clamp(38px, 11vw, 50px) !important;
  }

  .gep-split,
  .gep-features,
  .gep-management,
  .gep-news,
  .gep-map-section,
  .gep-contact,
  .gep-process,
  .gep-section--dark {
    padding-block: 72px !important;
  }

  .gep-section-head { margin-bottom: var(--gep-section-head-gap); }

  .gep-split-visual,
  .gep-feature-image img {
    min-height: 380px;
  }

  .gep-split-visual {
    border-radius: 18px;
  }

  .gep-process-step {
    width: 100% !important;
    min-height: 190px;
    flex-basis: 100% !important;
    border-right: 0;
  }

  .gep-feature-row,
  .gep-profile,
  .gep-news-row {
    min-height: 0;
    padding-block: 24px !important;
  }

  .gep-feature-row {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    row-gap: 16px !important;
  }

  .gep-feature-index {
    width: 15% !important;
  }

  .gep-feature-name {
    width: 85% !important;
  }

  .gep-feature-copy {
    width: 85% !important;
    margin-left: 0%;
  }

  .gep-profile-mark,
  .gep-profile-name,
  .gep-profile-bio,
  .gep-news-meta,
  .gep-news-title-wrap,
  .gep-news-copy-wrap {
    width: 100% !important;
  }

  .gep-profile-mark {
    min-height: 240px;
    margin-bottom: 26px;
  }

  .gep-profile-bio,
  .gep-news-copy-wrap {
    margin-top: 18px;
  }

  .gep-news-meta {
    flex-direction: row !important;
    justify-content: space-between;
  }

  .gep-news-title .elementor-heading-title {
    font-size: 30px !important;
  }

  .gep-map-visual {
    padding: 10px !important;
    border-radius: 17px;
  }

  .gep-map-label {
    position: static;
    width: 100% !important;
    max-width: none;
    margin-top: 10px !important;
  }

  .gep-contact-form-wrap {
    padding: 24px 16px !important;
    border-radius: 17px;
  }

  .gep-contact .gep-contact-layout { gap: 28px !important; }

  .gep-contact-form .elementor-field-group {
    width: 100% !important;
  }

  .gep-evidence,
  .gep-closing {
    padding-block: 74px !important;
  }

  .gep-closing-title .elementor-heading-title {
    font-size: clamp(40px, 11vw, 54px) !important;
  }
}

/* Archetype-specific responsive behaviour. */
@media (max-width: 1024px) {
  .gep-features--applications-band .gep-feature-list,
  .gep-features--current-platform .gep-feature-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .gep-features--applications-band .gep-feature-row,
  .gep-features--current-platform .gep-feature-row {
    min-height: 290px;
  }

  .gep-loop-stage { min-height: 700px; }
  .gep-loop-node { width: 38% !important; }
  .gep-loop-node--1, .gep-loop-node--3 { left: 5%; }
  .gep-loop-node--2, .gep-loop-node--4 { right: 5%; }

  .gep-news-list { gap-inline: 26px; }
}

@media (max-width: 900px) {
  .gep-platform-heading,
  .gep-platform-body,
  .gep-atlas-layout,
  .gep-commercial-map-layout {
    flex-direction: column !important;
  }

  .gep-platform-title,
  .gep-platform-core,
  .gep-platform-axis,
  .gep-branch-list,
  .gep-atlas-rail,
  .gep-atlas-list,
  .gep-commercial-copy,
  .gep-commercial-visual {
    width: 100% !important;
  }

  .gep-platform-core { margin-top: 62px; }
  .gep-platform-axis,
  .gep-atlas-rail { position: static; min-height: 0; margin-bottom: 46px; }

  .gep-branch-rail { flex-wrap: wrap !important; }
  .gep-branch-rail-step { width: 50% !important; flex: 0 0 50% !important; border-bottom: 1px solid #27324a; }

  .gep-process--wave .gep-process-step:nth-child(even),
  .gep-process--wave .gep-process-step:nth-child(even):hover,
  .gep-process--ore .gep-process-step:nth-child(n),
  .gep-process--evidence-ladder .gep-process-step:nth-child(n) {
    margin-top: 0;
    transform: none;
  }

  .gep-journal-layout { flex-direction: column !important; }
  .gep-journal-visual,
  .gep-journal-story { width: 100% !important; }
  .gep-journal-visual { position: static; min-height: 560px; margin-bottom: 56px; border-radius: 18px; }
  .gep-journal-visual .gep-feature-image img { min-height: 560px; }

  .gep-loop-stage { min-height: 790px; }
  .gep-loop-node { width: 43% !important; }
  .gep-loop-core { width: 210px !important; min-height: 210px; }

  .gep-agronomy-story,
  .gep-agronomy-story .gep-shell { min-height: 720px; }

  .gep-commercial-visual { margin-top: 48px; }
  .gep-license-track { flex-wrap: wrap !important; }
  .gep-license-step { width: 33.333% !important; flex: 0 0 33.333% !important; border-bottom: 1px solid #cdd7de; }

  .gep-features--commercial-principles .gep-feature-list { grid-template-columns: 1fr; }

  .gep-process--timeline .gep-process-step:nth-child(odd)::after { right: -10%; }
  .gep-process--timeline .gep-process-step:nth-child(even)::after { left: -10%; }

  .gep-management .gep-profile:nth-child(even) .gep-profile-mark { order: 3; }
  .gep-management .gep-profile:nth-child(even) .gep-profile-name { order: 2; }
  .gep-management .gep-profile:nth-child(even) .gep-profile-bio { order: 1; }

  .gep-map-section::before { width: 100%; height: 58%; top: auto; bottom: 0; }

  .gep-news-row:nth-child(n) { grid-column: span 6; margin-top: 0; }

  .gep-contact { background: linear-gradient(180deg, #0c1428 0 37%, #fff 55%); }
  .gep-contact-copy { position: static; padding: 42px !important; }
}

@media (max-width: 767px) {
  .gep-hero--plasma-activated-seeds .gep-hero-copy,
  .gep-hero--food-security .gep-hero-copy {
    margin-left: 0;
  }

  .gep-hero--plasma-activated-seeds::before,
  .gep-hero--food-security::before {
    background: linear-gradient(0deg, rgb(5 9 22 / 96%) 0 58%, rgb(5 9 22 / 48%));
  }

  .gep-platform-branch,
  .gep-field-journal,
  .gep-application-atlas,
  .gep-resource-loop,
  .gep-commercial-map {
    padding-block: var(--gep-section-space) !important;
  }

  .gep-platform-heading { margin-bottom: 54px; }
  .gep-platform-core { min-height: 250px; border-radius: 50%; }
  .gep-branch-rail { margin-bottom: 58px; }
  .gep-branch-rail-step { width: 100% !important; flex-basis: 100% !important; min-height: 92px; border-right: 0; }
  .gep-platform-axis { padding: 30px 24px !important; }
  .gep-branch-node { min-height: 0; }

  .gep-features--applications-band .gep-feature-list,
  .gep-features--current-platform .gep-feature-list,
  .gep-features--commercial-principles .gep-feature-list {
    grid-template-columns: 1fr;
  }

  .gep-features--applications-band .gep-feature-row,
  .gep-features--current-platform .gep-feature-row,
  .gep-features--commercial-principles .gep-feature-row {
    min-height: 0;
    padding: 28px 22px !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    border-right: 0;
  }

  .gep-features--applications-band .gep-feature-name,
  .gep-features--current-platform .gep-feature-name,
  .gep-features--commercial-principles .gep-feature-name {
    margin-top: 28px;
  }

  .gep-features--applications-band .gep-feature-copy,
  .gep-features--current-platform .gep-feature-copy,
  .gep-features--commercial-principles .gep-feature-copy {
    margin-top: 20px;
    padding: 0 !important;
  }

  .gep-journal-visual { min-height: 480px; border-radius: 18px; }
  .gep-journal-visual .gep-feature-image img { min-height: 480px; }
  .gep-journal-note-index { width: 18% !important; }
  .gep-journal-note-copy { width: 82% !important; }

  .gep-atlas-layout { gap: 0 !important; }
  .gep-atlas-rail { padding: 0 0 40px !important; }
  .gep-atlas-entry { flex-wrap: wrap !important; min-height: 0; }
  .gep-atlas-number { width: 16% !important; }
  .gep-atlas-title,
  .gep-atlas-copy { width: 84% !important; }
  .gep-atlas-copy { margin-top: 15px; margin-left: 0%; }

  .gep-loop-head { margin-bottom: 50px; }
  .gep-loop-stage { min-height: 0; padding: 24px !important; gap: 18px !important; border: 0; border-radius: 0; background: transparent; }
  .gep-loop-core,
  .gep-loop-node {
    position: static !important;
    width: 100% !important;
    max-width: none;
    min-height: 0;
    transform: none;
  }
  .gep-loop-core { min-height: 250px; border-radius: 50%; }
  .gep-loop-node { padding: 26px !important; }
  .gep-loop-node .gep-feature-title { margin-top: 44px !important; }
  .gep-loop-node .gep-feature-text { margin-top: 18px !important; }

  .gep-agronomy-story,
  .gep-agronomy-story .gep-shell { min-height: 680px; }
  .gep-agronomy-story::before { background: linear-gradient(0deg, rgb(5 9 22 / 97%) 0 62%, rgb(5 9 22 / 24%)); }
  .gep-agronomy-copy { width: 100% !important; padding-bottom: 90px !important; justify-content: flex-end; }
  .gep-agronomy-caption { right: auto; bottom: 24px; left: 0; }

  .gep-license-intro { margin-top: 76px; }
  .gep-license-step { width: 100% !important; min-height: 210px; flex-basis: 100% !important; border-right: 0; }

  .gep-process--timeline .gep-process-track::before { left: 7px; }
  .gep-process--timeline .gep-process-step,
  .gep-process--timeline .gep-process-step:nth-child(even) {
    width: calc(100% - 32px) !important;
    min-height: 0;
    margin: 0 0 24px 32px;
  }
  .gep-process--timeline .gep-process-step:nth-child(n)::after { top: 36px; right: auto; left: -34px; }

  .gep-management .gep-profile:nth-child(n) .gep-profile-mark,
  .gep-management .gep-profile:nth-child(n) .gep-profile-name,
  .gep-management .gep-profile:nth-child(n) .gep-profile-bio { order: initial; }
  .gep-management .gep-profile { min-height: 0; padding-inline: 16px !important; }

  .gep-news-list { grid-template-columns: 1fr; gap: 0; }
  .gep-news-row:nth-child(n) { grid-column: 1; min-height: 310px; }

  .gep-contact { background: #fff; }
  .gep-contact-copy { padding: 32px 24px !important; background: #0c1428; }
}

@media (prefers-reduced-motion: reduce) {
  .gep-reveal,
  .gep-feature-image img,
  .gep-process-step,
  .gep-page-section .elementor-button {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .gep-hero--technology::after {
    animation: none !important;
  }
}
