/* GeoForge homepage — first rebrand build */

.gf-eyebrow {
  margin: 0 0 14px;
  color: var(--color-orange);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.gf-eyebrow--light { color: #F47C20; }

.gf-hero {
  position: relative;
  min-height: min(820px, calc(100vh - 72px));
  overflow: hidden;
  background-position: center;
  background-size: cover;
  color: #fff;
  isolation: isolate;
}

.gf-hero__shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(7, 23, 38, .97) 0%, rgba(9, 31, 49, .88) 34%, rgba(10, 31, 48, .44) 60%, rgba(10, 31, 48, .10) 100%),
    linear-gradient(0deg, rgba(7, 23, 38, .52) 0%, transparent 44%);
}

.gf-hero__layout {
  display: flex;
  align-items: center;
  min-height: inherit;
  padding-block: clamp(96px, 12vw, 156px);
}

.gf-hero__content { max-width: 790px; }

.gf-hero h1 {
  max-width: 770px;
  margin: 0 0 26px;
  color: #fff;
  font-size: clamp(42px, 5.2vw, 72px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.04;
}

.gf-hero h1 span { color: #F47C20; }

.gf-hero__lede {
  max-width: 680px;
  margin: 0 0 34px;
  color: rgba(255,255,255,.88);
  font-size: clamp(18px, 1.65vw, 22px);
  line-height: 1.55;
}

.gf-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 44px;
}

.gf-btn--ghost {
  border: 1px solid rgba(255,255,255,.62);
  background: rgba(16,42,67,.22);
  color: #fff;
  backdrop-filter: blur(8px);
}

.gf-btn--ghost:hover {
  border-color: #fff;
  background: #fff;
  color: var(--color-dark);
  text-decoration: none;
}

.gf-hero__proof {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: rgba(255,255,255,.75);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.gf-hero__proof li { display: flex; align-items: center; gap: 9px; }
.gf-hero__proof li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--color-green); box-shadow: 0 0 0 4px rgba(47,168,79,.15); }

.gf-intro { background: #fff; }

.gf-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(44px, 8vw, 110px);
  align-items: start;
}

.gf-intro h2,
.gf-section-heading h2,
.gf-boundary h2,
.gf-cta h2 {
  margin-bottom: 0;
  color: var(--color-dark);
  font-size: clamp(32px, 4vw, 50px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.14;
}

.gf-intro__copy { font-size: 18px; }
.gf-intro__copy p:last-child { margin-bottom: 0; }

.gf-signal-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: clamp(54px, 7vw, 86px);
  overflow: hidden;
  border: 1px solid #dce3e8;
  border-radius: 14px;
  background: #dce3e8;
}

.gf-signal-bar div { padding: 26px 28px; background: #f7f8f6; }
.gf-signal-bar strong { display: block; margin-bottom: 5px; color: var(--color-dark); font-size: 16px; }
.gf-signal-bar span { display: block; color: #5c6873; font-size: 14px; line-height: 1.5; }

.gf-pilot-proof {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(340px,.9fr);
  gap: clamp(34px,6vw,80px);
  align-items: center;
  margin-top: 24px;
  padding: clamp(30px,4vw,48px);
  border-radius: 14px;
  background: var(--color-dark);
  color: #fff;
}

.gf-pilot-proof h3 { margin: 0; color: #fff; font-size: clamp(24px,3vw,36px); font-weight: 600; letter-spacing: -.025em; }
.gf-pilot-proof__benefits { padding-left: 32px; border-left: 1px solid rgba(255,255,255,.22); }
.gf-pilot-proof__benefits ul { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.gf-pilot-proof__benefits li { position: relative; padding-left: 22px; }
.gf-pilot-proof__benefits li::before { position: absolute; top: 8px; left: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--color-orange); content: ""; }
.gf-pilot-proof__benefits strong { display: block; margin-bottom: 3px; color: #fff; font-size: 15px; }
.gf-pilot-proof__benefits span { display: block; color: rgba(255,255,255,.70); font-size: 13px; line-height: 1.5; }

.gf-solutions { background: #f4f1ea; }

.gf-section-heading {
  max-width: 780px;
  margin: 0 auto clamp(42px, 6vw, 68px);
  text-align: center;
}

.gf-section-heading--left { margin-inline: 0; text-align: left; }
.gf-section-heading > p:last-child { margin: 18px auto 0; max-width: 680px; color: #5c6873; font-size: 18px; }

.gf-solution-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

.gf-solution-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(16,42,67,.12);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(16,42,67,.07);
}

.gf-solution-card__visual {
  position: relative;
  min-height: 220px;
  overflow: hidden;
  background: var(--color-dark);
}

.gf-solution-card__visual::after {
  position: absolute;
  inset: 0;
  content: "";
  background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,.12) 0 1px, transparent 1.5px);
  background-size: 17px 17px;
  mask-image: linear-gradient(110deg, #000, transparent 80%);
}

.gf-solution-card__visual svg { position: absolute; inset: 18px 18px 32px; width: calc(100% - 36px); height: calc(100% - 50px); }
.gf-solution-card__visual svg * { fill: none; stroke: rgba(255,255,255,.72); stroke-width: 2.3; vector-effect: non-scaling-stroke; }
.gf-solution-card__visual span { position: absolute; right: 18px; bottom: 14px; left: 18px; z-index: 1; color: rgba(255,255,255,.74); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gf-solution-card__visual--residential { background: linear-gradient(145deg, #102a43, #1f5d78); }
.gf-solution-card__visual--industrial { background: linear-gradient(145deg, #102a43, #3c5365); }
.gf-solution-card__visual--builders { background: linear-gradient(145deg, #102a43, #436f4a); }

.gf-solution-card__body { display: flex; flex: 1; flex-direction: column; padding: 30px; }
.gf-card-kicker { margin: 0 0 10px; color: var(--color-orange); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gf-solution-card h3 { margin-bottom: 14px; color: var(--color-dark); font-size: 25px; font-weight: 650; letter-spacing: -.02em; line-height: 1.25; }
.gf-solution-card p { color: #4f5c66; }
.gf-solution-card ul { margin: 2px 0 26px; padding: 0; list-style: none; }
.gf-solution-card li { position: relative; margin: 0 0 10px; padding-left: 22px; color: #334553; font-size: 14px; line-height: 1.5; }
.gf-solution-card li::before { position: absolute; top: .58em; left: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--color-green); content: ""; }
.gf-solution-card a { margin-top: auto; color: var(--color-dark); font-size: 14px; font-weight: 800; }
.gf-solution-card a span { color: var(--color-orange); }

.gf-process { background: #fff; }
.gf-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.gf-process__grid li { position: relative; min-height: 220px; padding: 28px 28px 26px; border-top: 1px solid #cfd8de; border-bottom: 1px solid #cfd8de; }
.gf-process__grid li + li { border-left: 1px solid #cfd8de; }
.gf-process__grid li::before { position: absolute; top: -5px; left: 0; width: 52%; height: 9px; background: var(--color-orange); content: ""; }
.gf-process__grid li:nth-child(2)::before { width: 64%; background: #dc8951; }
.gf-process__grid li:nth-child(3)::before { width: 78%; background: #5b8c66; }
.gf-process__grid li:nth-child(4)::before { width: 100%; background: var(--color-green); }
.gf-process__grid span { display: block; margin-bottom: 30px; color: #8a959d; font-size: 12px; font-weight: 800; letter-spacing: .1em; }
.gf-process__grid h3 { margin-bottom: 10px; color: var(--color-dark); font-size: 22px; }
.gf-process__grid p { margin: 0; color: #5c6873; font-size: 15px; }

.gf-toolkit { overflow: hidden; background: var(--color-dark); color: #fff; }
.gf-toolkit__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); gap: clamp(48px, 8vw, 104px); align-items: center; }
.gf-toolkit h2 { margin-bottom: 22px; color: #fff; font-size: clamp(32px, 4vw, 50px); font-weight: 600; letter-spacing: -.035em; line-height: 1.15; }
.gf-toolkit__content > p:not(.gf-eyebrow) { max-width: 650px; color: rgba(255,255,255,.72); font-size: 18px; }
.gf-toolkit__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.gf-toolkit__chips span { padding: 9px 13px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.84); font-size: 12px; font-weight: 750; }
.gf-toolkit__panel { display: grid; gap: 1px; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.16); }
.gf-toolkit__panel div { padding: 24px 26px; background: rgba(255,255,255,.07); backdrop-filter: blur(5px); }
.gf-toolkit__panel strong { display: block; margin-bottom: 5px; color: #fff; font-size: 16px; }
.gf-toolkit__panel span { display: block; color: rgba(255,255,255,.66); font-size: 14px; line-height: 1.5; }

.gf-outcomes { background: #f7f8f6; }
.gf-outcomes__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid #ccd5d9; }
.gf-outcomes__grid div { padding: 28px 30px; }
.gf-outcomes__grid div + div { border-left: 1px solid #ccd5d9; }
.gf-outcomes__grid strong { display: block; margin-bottom: 10px; color: var(--color-orange); font-size: clamp(30px, 3vw, 42px); font-weight: 650; letter-spacing: -.04em; }
.gf-outcomes__grid span { display: block; color: #4f5c66; font-size: 14px; line-height: 1.5; }

.gf-boundary { background: #fff; }
.gf-boundary__inner { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 42px; max-width: 1000px; align-items: start; }
.gf-boundary__mark { display: grid; width: 96px; height: 96px; place-items: center; border: 1px solid #cad5dc; border-radius: 50%; color: var(--color-dark); font-size: 22px; font-weight: 800; letter-spacing: -.04em; box-shadow: inset 0 0 0 8px #f4f1ea; }
.gf-boundary h2 { margin-bottom: 24px; font-size: clamp(28px, 3.5vw, 42px); }
.gf-boundary p:last-child { margin: 0; color: #5c6873; font-size: 16px; }

.gf-cta { background: linear-gradient(120deg, #163956 0%, var(--color-dark) 72%); color: #fff; }
.gf-cta__inner { display: flex; gap: 42px; align-items: center; justify-content: space-between; }
.gf-cta h2 { max-width: 800px; color: #fff; font-size: clamp(30px, 4vw, 48px); }
.gf-cta .btn { flex: 0 0 auto; }

#residential, #industrial, #builders { scroll-margin-top: 100px; }

@media (max-width: 980px) {
  .gf-pilot-proof { grid-template-columns: 1fr; }
  .gf-pilot-proof__benefits { padding-top: 24px; padding-left: 0; border-top: 1px solid rgba(255,255,255,.22); border-left: 0; }
  .gf-solution-grid { grid-template-columns: 1fr; }
  .gf-solution-card { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); }
  .gf-solution-card__visual { min-height: 100%; }
  .gf-process__grid { grid-template-columns: repeat(2, 1fr); }
  .gf-process__grid li:nth-child(3) { border-left: 0; }
  .gf-process__grid li:nth-child(n+3) { border-top: 0; }
  .gf-outcomes__grid { grid-template-columns: repeat(2, 1fr); }
  .gf-outcomes__grid div:nth-child(3) { border-left: 0; border-top: 1px solid #ccd5d9; }
  .gf-outcomes__grid div:nth-child(4) { border-top: 1px solid #ccd5d9; }
}

@media (max-width: 780px) {
  .gf-hero { min-height: 720px; background-position: 62% center; }
  .gf-hero__shade { background: linear-gradient(90deg, rgba(7,23,38,.96), rgba(7,23,38,.72)), linear-gradient(0deg, rgba(7,23,38,.56), transparent); }
  .gf-intro__grid, .gf-toolkit__grid { grid-template-columns: 1fr; }
  .gf-signal-bar { grid-template-columns: 1fr; }
  .gf-solution-card { display: flex; }
  .gf-solution-card__visual { min-height: 210px; }
  .gf-toolkit__grid { gap: 42px; }
  .gf-boundary__inner { grid-template-columns: 1fr; gap: 28px; }
  .gf-boundary__mark { width: 72px; height: 72px; }
  .gf-cta__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .gf-hero__layout { padding-block: 90px 72px; }
  .gf-hero__actions { align-items: stretch; flex-direction: column; }
  .gf-hero__actions .btn { width: 100%; }
  .gf-hero__proof { align-items: flex-start; flex-direction: column; }
  .gf-process__grid, .gf-outcomes__grid { grid-template-columns: 1fr; }
  .gf-process__grid li + li { border-top: 0; border-left: 0; }
  .gf-outcomes__grid div + div { border-top: 1px solid #ccd5d9; border-left: 0; }
}
