.home-page {
  background: #f5f6f8;
  color: #10233b;
}
/* One fluid gutter: ~20px each side on a small phone, up to 60px on desktop. */
.home-shell {
  width: min(1472px, 100% - clamp(40px, 6vw, 120px));
  margin: auto;
}
.home-hero {
  height: 100vh;
  height: 100svh;
  min-height: 680px;
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #071728;
}
.home-hero-slides {
  position: absolute;
  inset: 0;
}
.home-hero-slide {
  position: absolute;
  inset: 0;
  background-position: center 52%;
  background-size: cover;
  background-repeat: no-repeat;
  filter: saturate(0.9) brightness(0.88);
  opacity: 0;
  transform: scale(1.12);
  transition: opacity 1.15s ease;
}
.home-hero-slide.is-active {
  opacity: 1;
  animation: home-hero-kenburns 6.5s ease-out both;
}
.home-hero-slide--manpower {
  transform: scale(1.02);
}
.home-hero-slide--manpower.is-active {
  animation: home-hero-kenburns-manpower 6.5s ease-out both;
}
@keyframes home-hero-kenburns {
  from { transform: scale(1.12); }
  to { transform: scale(1.2); }
}
@keyframes home-hero-kenburns-manpower {
  from { transform: scale(1.02); }
  to { transform: scale(1.07); }
}
.home-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(5, 20, 36, 0.88) 0%,
      rgba(5, 20, 36, 0.78) 33%,
      rgba(5, 20, 36, 0.26) 60%,
      rgba(5, 20, 36, 0.1)
    ),
    linear-gradient(0deg, rgba(5, 20, 36, 0.42), transparent 42%);
}
.home-topbar,
.home-header,
.home-hero-content,
.home-scroll {
  position: relative;
  z-index: 1;
}
.home-header {
  z-index: 3;
}
.home-topbar {
  height: 51px;
  background: rgba(15, 29, 44, 0.9);
  font-size: 12px;
}
.home-topbar .home-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  color: #dce4eb;
}
.home-topbar div div {
  display: flex;
  gap: 28px;
}
.home-topbar a:hover {
  text-decoration: underline;
}
.home-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}
.home-nav-wrap {
  height: 105px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
}
/* Brand lockup — the homepage header floats over the hero photo and the footer
   sits on deep navy, so both use the light mark with white wordmark text. */
.home-brand {
  display: inline-grid;
  grid-template-columns: auto auto auto;
  grid-template-areas:
    "mark name-a name-b"
    "mark tag    tag";
  align-items: center;
  row-gap: 4px;
  color: #fff;
  white-space: nowrap;
}
.home-brand::before {
  grid-area: mark;
  content: "";
  width: 42px;
  height: 41px;
  margin-right: 13px;
  background: url("../img/brand/hec-mark-light.svg") center / contain no-repeat;
}
.home-brand span {
  grid-area: name-a;
  font: 800 17px/1 "Inter", Arial, sans-serif;
  letter-spacing: 0.055em;
}
.home-brand span + span {
  grid-area: name-b;
  margin-left: 0.32em;
}
.home-brand::after {
  grid-area: tag;
  content: "Contracting Company";
  font: 600 8.5px/1 "Inter", Arial, sans-serif;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #77d8a6;
}
.home-nav {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2vw, 34px);
  margin-left: auto;
  font-size: 13px;
}
.home-nav > a,
.nav-dropdown-toggle {
  color: #fff;
  font: inherit;
  background: none;
  border: 0;
  padding: 15px 0;
  cursor: pointer;
}
.nav-dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  line-height: 1;
}
.home-nav > a:hover,
.home-nav > a.active,
.nav-dropdown-toggle:hover {
  color: #9be6bc;
}
.home-quote {
  background: #2f9267;
  color: #fff;
  padding: 17px 20px;
  text-transform: uppercase;
  font: 600 12px var(--mono);
  white-space: nowrap;
}
.home-quote span {
  font-size: 19px;
  margin-left: 12px;
}
.nav-dropdown {
  position: relative;
}
.nav-dropdown-toggle span {
  width: 7px;
  height: 7px;
  margin: -3px 0 0;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  font-size: 0;
  transform: rotate(45deg);
  transition: transform 0.18s ease, margin 0.18s ease;
}
.nav-dropdown.is-open .nav-dropdown-toggle span {
  margin-top: 3px;
  transform: rotate(225deg);
}
.nav-dropdown-panel {
  display: none;
  position: absolute;
  z-index: 4;
  top: calc(100% + 4px);
  left: -18px;
  width: 270px;
  padding: 12px;
  background: #fff;
  color: #10233b;
  box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24);
  border-top: 3px solid #2f9267;
}
.nav-dropdown.is-open .nav-dropdown-panel {
  display: block;
}
.nav-dropdown-panel a {
  display: flex;
  justify-content: space-between;
  padding: 11px 10px;
  font-size: 13px;
  border-bottom: 1px solid rgba(16, 35, 59, 0.1);
}
.nav-dropdown-panel a:hover {
  background: #f1f5f3;
  color: #2f9267;
}
.home-menu-toggle {
  display: none;
  background: transparent;
  border: 0;
  width: 42px;
}
.home-menu-toggle span {
  height: 2px;
  background: #fff;
  display: block;
  margin: 6px 0;
}
.home-hero-content {
  padding-top: clamp(38px, 4.5vh, 58px);
}
.home-kicker {
  font: 600 13px var(--mono);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #a6e9c4;
  margin: 0 0 26px;
}
.home-kicker:before {
  content: "";
  display: inline-block;
  width: 34px;
  height: 2px;
  background: currentColor;
  vertical-align: middle;
  margin-right: 14px;
}
.home-hero h1 {
  font-family: Arial, sans-serif;
  font-size: clamp(38px, 5.7vw, 90px);
  font-weight: 400;
  line-height: 0.99;
  max-width: 720px;
}
.home-hero h1 span {
  color: #2f9267;
}
.home-hero-copy {
  font-size: 18px;
  line-height: 1.8;
  max-width: 520px;
  margin: 24px 0 28px;
}
.home-hero-actions {
  display: flex;
  gap: 16px;
  align-items: center;
}
.home-secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  min-width: 205px;
  padding: 17px 22px;
  border: 1px solid rgba(255, 255, 255, .72);
  color: #fff;
  text-transform: uppercase;
  font: 600 13px var(--mono);
  letter-spacing: .3px;
}
.home-secondary-button span { font-size: 19px; line-height: .7; }
.home-secondary-button:hover { background: #fff; color: #10233b; }
.home-primary-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  min-width: 205px;
  padding: 18px 23px;
  background: #2f9267;
  color: #fff;
  text-transform: uppercase;
  font: 600 13px var(--mono);
  letter-spacing: 0.3px;
  border: 0;
}
.home-primary-button span {
  font-size: 21px;
  line-height: 0.7;
}
.home-text-button {
  font: 600 13px var(--mono);
  text-transform: uppercase;
  border-bottom: 1px solid rgba(255, 255, 255, 0.75);
  padding-bottom: 7px;
}
.home-scroll {
  position: absolute;
  z-index: 1;
  left: 40px;
  bottom: 44px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font: 500 12px var(--mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: #b5c4d0;
}
.home-scroll span {
  margin-bottom: 15px;
}
.home-hero-pagination {
  position: absolute;
  z-index: 1;
  right: 60px;
  bottom: 46px;
  display: flex;
  align-items: center;
  gap: 11px;
  color: #d9e4ea;
  font: 600 11px var(--mono);
  letter-spacing: 1px;
}
.home-hero-pagination i { display: block; width: 74px; height: 2px; overflow: hidden; background: rgba(255, 255, 255, .32); }
.home-hero-pagination i::after { content: ""; display: block; height: 100%; background: #79d3a1; transform: scaleX(0); transform-origin: left; }
.home-hero-pagination.is-playing i::after { animation: home-hero-progress 6s linear both; }
@keyframes home-hero-progress { to { transform: scaleX(1); } }
.home-contact {
  padding: 124px 0 132px;
  background: #f5f6f8;
}
.home-contact-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 130px;
}
.home-kicker-dark {
  color: #2f9267;
}
.home-contact h2,
.home-services h2,
.home-footer-cta h2 {
  font-size: clamp(31px, 4.3vw, 78px);
  font-weight: 400;
  line-height: 0.96;
}
.home-contact h2 span,
.home-services h2 span,
.home-footer-cta h2 span {
  color: #2f9267;
}
.home-contact-copy {
  font-size: 18px;
  line-height: 1.75;
  color: #52647a;
  max-width: 690px;
  margin: 44px 0 64px;
}
.home-contact-details {
  display: flex;
  gap: 42px;
  font-size: 15px;
  font-weight: 700;
}
.home-form {
  display: flex;
  flex-direction: column;
  gap: 25px;
  padding-top: 7px;
}
.home-form label {
  font: 500 13px var(--mono);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #344d69;
}
.home-form input,
.home-form textarea {
  display: block;
  width: 100%;
  border: 0;
  border-bottom: 1px solid #afbdca;
  background: transparent;
  margin-top: 14px;
  padding: 5px 0 15px;
  color: #10233b;
  font: 400 17px var(--body);
  outline: 0;
}
.home-form input::placeholder,
.home-form textarea::placeholder {
  color: #9baabb;
}
.home-form textarea {
  resize: vertical;
}
.home-form .home-primary-button {
  align-self: flex-start;
  margin-top: 10px;
}
.home-services {
  padding: 110px 0;
  background: #0c2037;
  color: #fff;
}
.home-services-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
}
.home-services-head p {
  max-width: 300px;
  color: #aebdca;
  line-height: 1.7;
}
.home-services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  margin-top: 65px;
}
.home-services-grid a {
  padding: 27px 24px 31px 0;
  min-height: 190px;
  border-right: 1px solid rgba(255, 255, 255, 0.18);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.home-services-grid a + a {
  padding-left: 24px;
}
.home-services-grid a:last-child {
  border: 0;
}
.home-services-grid small {
  font: 500 11px var(--mono);
  color: #83d7a5;
  text-transform: uppercase;
}
.home-services-grid h3 {
  font-size: 20px;
  font-weight: 400;
  max-width: 15ch;
}
.home-services-grid span {
  color: #d7aa49;
  text-align: right;
  font-size: 20px;
}
.home-footer-cta {
  padding: 102px 0;
  background: #e8edf0;
}
.home-footer-cta .home-shell {
  display: flex;
  justify-content: space-between;
  align-items: end;
}
.home-footer-cta .home-kicker {
  color: #2f9267;
}
.home-footer {
  background: #0c2037;
  color: #fff;
  padding: 54px 0 24px;
}
.home-footer .home-shell {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr;
  gap: 30px;
  align-items: start;
}
.home-footer p {
  color: #c2d0da;
  line-height: 1.5;
}
.home-footer > a {
  text-align: right;
  font: 500 12px var(--mono);
  text-transform: uppercase;
}
.home-footer small {
  grid-column: 1/-1;
  padding-top: 40px;
  color: #718496;
  font-size: 10px;
}
@media (max-width: 900px) {
  .home-topbar div div {
    gap: 12px;
  }
  .home-topbar div div span {
    display: none;
  }
  .home-nav {
    gap: 18px;
  }
  .home-nav-wrap {
    height: 82px;
  }
  .home-hero {
    height: 100svh;
    min-height: 680px;
  }
  .home-hero-content {
    padding-top: clamp(52px, 7vh, 70px);
  }
  .home-contact-grid {
    gap: 60px;
  }
  .home-contact {
    padding: 90px 0;
  }
  .home-contact-details {
    gap: 24px;
  }
  .home-services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 1120px) and (min-width: 701px) {
  .home-topbar .home-shell > span,
  .home-topbar .home-shell div span {
    display: none;
  }
  .home-nav-wrap {
    gap: 22px;
  }
  /* The horizontal nav is tight in this band, so the lockup drops to the badge. */
  .home-brand { grid-template-columns: auto; grid-template-areas: "mark"; }
  .home-brand span,
  .home-brand::after { display: none; }
  .home-brand::before { width: 40px; height: 39px; margin-right: 0; }
  .home-quote {
    padding: 15px 16px;
  }
}
@media (max-width: 700px) {
  .home-topbar {
    font-size: 11px;
  }
  .home-topbar .home-shell > span {
    display: none;
  }
  .home-topbar .home-shell {
    justify-content: flex-end;
  }
  .home-topbar div div a:last-of-type {
    display: none;
  }
  .home-menu-toggle {
    display: block;
  }
  .home-nav {
    position: absolute;
    top: 82px;
    left: 0;
    width: 100%;
    padding: 15px 20px 25px;
    background: #0c2037;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    max-height: calc(100svh - 82px);
    overflow-y: auto;
    overscroll-behavior: contain;
    transition:
      opacity 0.26s ease,
      transform 0.26s ease,
      visibility 0.26s;
  }
  .home-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
  .home-nav > a,
  .home-nav .nav-dropdown-toggle {
    display: flex;
    align-items: center;
    min-height: 44px;
  }
  .home-menu-toggle {
    width: 44px;
    height: 44px;
  }
  .nav-dropdown-panel {
    position: static;
    width: min(100%, 270px);
    margin: 6px 0;
  }
  .home-quote {
    display: none;
  }
  .home-hero {
    height: auto;
    min-height: 100svh;
    padding-bottom: 40px;
  }
  .home-hero-content {
    padding-top: clamp(42px, 7vh, 60px);
  }
  .home-hero h1 {
    font-size: clamp(38px, 11vw, 60px);
  }
  .home-hero-copy {
    font-size: 16px;
    margin: 24px 0;
    max-width: 390px;
  }
  .home-hero-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
  }
  .home-scroll {
    display: none;
  }
  .home-hero-pagination { right: 20px; bottom: 28px; }
  .home-hero-pagination i { width: 52px; }
  .home-contact-grid {
    grid-template-columns: 1fr;
    gap: 58px;
  }
  .home-contact h2,
  .home-services h2,
  .home-footer-cta h2 {
    font-size: clamp(31px, 9vw, 47px);
  }
  .home-contact-copy {
    font-size: 16px;
    margin: 28px 0 40px;
  }
  .home-contact-details {
    flex-direction: column;
    gap: 12px;
  }
  .home-services {
    padding: 76px 0;
  }
  .home-services-head {
    display: block;
  }
  .home-services-head p {
    margin-top: 25px;
  }
  .home-services-grid {
    grid-template-columns: 1fr;
    margin-top: 42px;
  }
  .home-services-grid a,
  .home-services-grid a + a {
    padding: 22px 0;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    min-height: 130px;
  }
  .home-footer-cta {
    padding: 75px 0;
  }
  .home-footer-cta .home-shell {
    display: block;
  }
  .home-footer-cta .home-primary-button {
    margin-top: 34px;
  }
  .home-footer .home-shell {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .home-footer > a {
    text-align: left;
  }
  .home-footer small {
    grid-column: auto;
    padding-top: 14px;
  }
}
  @media (prefers-reduced-motion: reduce) {
  .home-hero-slide, .home-hero-slide.is-active, .home-hero-pagination.is-playing i::after { animation: none; transition: none; }
}

/* Full homepage section system */
.home-introduction {
  padding: 78px 0 82px;
  background: #f7f8fa;
}

/* Homepage service-led flow */
.home-featured-services {
  padding: 108px 0 116px;
  background: #f7f8fa;
  color: #10233b;
}
.home-featured-services-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 60px;
  margin-bottom: 52px;
}
.home-featured-services h2 {
  font-size: clamp(32px, 5vw, 80px);
  font-weight: 400;
  line-height: .88;
}
.home-featured-services h2 span { color: #2f9267; }
.home-featured-services-heading > p {
  max-width: 365px;
  margin: 0 0 5px;
  color: #5a6b7c;
  font-size: 15px;
  line-height: 1.75;
}
.home-featured-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.home-featured-service-card {
  position: relative;
  min-height: 337px;
  overflow: hidden;
  padding: 26px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  color: #fff;
  isolation: isolate;
  background-color: #18334b;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  transition: transform .24s ease;
}
.home-featured-service-card:hover { transform: translateY(-5px); }
.home-featured-service-card__shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 20, 36, .12), rgba(5, 20, 36, .9));
  transition: background .24s ease;
}
.home-featured-service-card:hover .home-featured-service-card__shade {
  background: linear-gradient(180deg, rgba(5, 20, 36, .2), rgba(5, 20, 36, .72));
}
.home-featured-service-card small {
  position: absolute;
  top: 24px;
  left: 26px;
  font: 500 10px var(--mono);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #a6e9c4;
}
.home-featured-service-card h3 { font-size: 28px; font-weight: 400; }
.home-featured-service-card p {
  margin: 9px 35px 0 0;
  font: 500 10px var(--mono);
  text-transform: uppercase;
  letter-spacing: .7px;
  color: #d7e2e9;
  line-height: 1.5;
}
.home-featured-service-card b {
  position: absolute;
  right: 25px;
  bottom: 25px;
  color: #b2ebc8;
  font-size: 23px;
  font-weight: 400;
}
.home-services-all {
  display: inline-flex;
  gap: 22px;
  margin-top: 38px;
  padding-bottom: 7px;
  border-bottom: 1px solid #2f9267;
  font: 600 12px var(--mono);
  color: #2f9267;
  letter-spacing: .4px;
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .home-featured-services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .home-featured-services { padding: 76px 0; }
  .home-featured-services-heading { display: block; margin-bottom: 34px; }
  .home-featured-services-heading > p { margin-top: 24px; }
  .home-featured-services-grid { grid-template-columns: 1fr; gap: 14px; }
  .home-featured-service-card { min-height: 280px; }
}
.home-editorial-grid {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) minmax(180px, .36fr);
  gap: 38px;
  align-items: center;
}
.home-vertical-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font: 500 10px var(--mono);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #718293;
}
.home-vertical-label span {
  color: #d3a54b;
  margin-top: 18px;
}
.home-introduction h2,
.home-capabilities h2,
.home-process-full h2,
.home-outcomes h2,
.home-services h2 {
  font-size: clamp(30px, 4.3vw, 75px);
  font-weight: 400;
  line-height: 0.96;
  max-width: 12ch;
}
.home-introduction h2 span,
.home-capabilities h2 span,
.home-process-full h2 span,
.home-outcomes h2 span,
.home-services h2 span {
  display: block;
  color: #2f9267;
}
.home-introduction h2 { max-width: 17ch; }
.home-introduction p:not(.home-vertical-label) {
  max-width: 485px;
  color: #586b7b;
  font-size: 15px;
  line-height: 1.8;
  margin: 22px 0;
}
.home-inline-link {
  font: 600 12px var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #2f9267;
  border-bottom: 1px solid currentColor;
  padding-bottom: 6px;
}
.home-editorial-aside {
  font: 500 10px var(--mono) !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #748596 !important;
  margin: 0 !important;
}
.home-editorial-aside strong {
  display: block;
  color: #d6a346;
  font: 500 25px/1 var(--body);
  text-transform: none;
  letter-spacing: 0;
  margin-top: 20px;
}
.home-capabilities {
  background: #0c2037;
  color: #fff;
  padding: 98px 0;
}
.home-capability-head {
  display: flex;
  justify-content: space-between;
  gap: 50px;
}
.home-capability-head .home-kicker {
  color: #88d9a8;
}
.home-capability-head > p {
  font-size: 13px;
  line-height: 1.7;
  color: #b1c0ce;
  max-width: 355px;
  margin-top: 48px;
}
.home-capability-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  margin-top: 49px;
}
.home-capability-grid figure {
  align-self: stretch;
}
.home-capability-list {
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.home-capability-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 14px;
  color: #eef4f8;
}
.home-capability-list small {
  font: 500 10px var(--mono);
  color: #85d7a6;
  margin-right: 15px;
}
.home-capability-list b {
  color: #83d7a5;
  font-size: 18px;
  font-weight: 400;
}
.home-capability-grid figure {
  margin: 0;
}
.home-capability-grid img {
  width: 100%;
  height: 100%;
  min-height: 390px;
  display: block;
  object-fit: cover;
  filter: brightness(0.78) saturate(0.8);
}
.home-capability-grid figcaption {
  font: 500 9px var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #dfe9f0;
  margin-top: -22px;
  padding-left: 12px;
  position: relative;
}
.home-process-full {
  padding: 113px 0;
  background: #f7f8fa;
}
.home-process-heading {
  display: grid;
  grid-template-columns: 110px 1.3fr 0.8fr;
  gap: 52px;
  align-items: end;
}
.home-process-heading > p:last-child {
  font-size: 13px;
  line-height: 1.8;
  color: #617383;
  max-width: 325px;
}
.home-process-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 62px;
  border-top: 1px solid #dce3e8;
}
.home-process-cards article {
  min-height: 180px;
  padding: 25px 24px 24px 0;
  border-right: 1px solid #e0e6eb;
}
.home-process-cards article + article {
  padding-left: 24px;
}
.home-process-cards article:last-child {
  border: 0;
}
.home-process-cards small {
  font: 500 10px var(--mono);
  color: #d3a54b;
}
.home-process-cards h3 {
  font-size: 19px;
  font-weight: 400;
  margin: 42px 0 10px;
}
.home-process-cards p {
  font-size: 12px;
  line-height: 1.7;
  color: #6a7c8b;
  max-width: 27ch;
}
.home-outcomes {
  padding: 84px 0;
  background: #0c2037;
  color: #fff;
}
.home-outcomes .home-shell {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: end;
}
.home-outcomes .home-kicker {
  color: #82d8a6;
}
.home-outcome-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.home-outcome-list p {
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 12px;
  color: #c5d3de;
}
.home-outcome-list p:before {
  content: "✓";
  color: #83d7a5;
  margin-right: 12px;
}
.home-services {
  background: #f7f8fa;
  color: #10233b;
  padding: 100px 0;
}
.home-services .home-kicker-dark {
  color: #2f9267;
}
.home-services-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
}
.home-services-title .home-inline-link {
  margin-bottom: 8px;
}
.home-services-grid {
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid #dfe5e9;
  margin-top: 50px;
}
.home-services-grid a {
  min-height: 185px;
  border-right: 1px solid #dfe5e9;
  color: #10233b;
}
.home-services-grid h3 {
  font-size: 17px;
  line-height: 1.1;
}
.home-services-grid small {
  color: #2f9267;
}
.home-contact {
  background: #0c2037;
  color: #fff;
  padding: 100px 0;
}
.home-contact .home-kicker {
  color: #83d7a5;
}
.home-contact-copy {
  color: #c3d0da;
}
.home-contact-details {
  color: #fff;
}
.home-form label {
  color: #b7c7d4;
}
.home-form input,
.home-form textarea {
  color: #fff;
  border-color: #50677c;
}
.home-form input::placeholder,
.home-form textarea::placeholder {
  color: #8396a6;
}
.home-form .home-primary-button {
  background: #2f9267;
}
.home-contact .form-status {
  color: #9be6bc;
}
.home-form {
  padding: 34px;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(255, 255, 255, .17);
  box-shadow: 0 20px 45px rgba(0, 0, 0, .14);
}
.home-form input,
.home-form textarea {
  background: rgba(255, 255, 255, .035);
  padding: 12px 13px;
  border: 1px solid rgba(151, 177, 197, .38);
  border-radius: 2px;
}
.home-form input:focus,
.home-form textarea:focus {
  border-color: #83d7a5;
  box-shadow: 0 0 0 3px rgba(131, 215, 165, .12);
}
.home-form .home-primary-button { margin-top: 4px; }
.home-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 64px 0 26px;
}
.home-footer .home-shell {
  grid-template-columns: 1.25fr .75fr .95fr 1fr;
  gap: 46px;
}
.home-footer-intro p {
  max-width: 235px;
  margin: 30px 0 22px;
}
.home-footer-top {
  color: #9be6bc;
  font: 600 11px var(--mono);
  letter-spacing: .6px;
  text-transform: uppercase;
}
.home-footer-links,
.home-footer-address {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 13px;
}
.home-footer h3 {
  margin: 4px 0 10px;
  color: #fff;
  font: 600 13px var(--mono);
  letter-spacing: .5px;
  text-transform: uppercase;
}
.home-footer-links a,
.home-footer-address a,
.home-footer-address span {
  color: #b9c7d2;
  font-size: 13px;
  line-height: 1.4;
}
.home-footer-links a:hover,
.home-footer-address a:hover { color: #9be6bc; }
.home-footer-address { font-style: normal; }
.home-footer small { border-top: 1px solid rgba(255, 255, 255, .12); }
@media (max-width: 900px) {
  .home-editorial-grid,
  .home-process-heading {
    grid-template-columns: 70px 1fr;
  }

  .home-editorial-aside,
  .home-process-heading > p:last-child {
    grid-column: 2;
  }
  .home-capability-grid {
    gap: 38px;
  }
  .home-outcomes .home-shell {
    gap: 50px;
  }
}
@media (max-width: 700px) {
  .home-introduction,
  .home-process-full {
    padding: 76px 0;
  }
  .home-editorial-grid,
  .home-process-heading,
  .home-capability-grid,
  .home-outcomes .home-shell {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .home-vertical-label {
    writing-mode: initial;
    transform: none;
  }
  .home-editorial-aside,
  .home-process-heading > p:last-child {
    grid-column: auto;
  }
  .home-capability-head,
  .home-services-title {
    display: block;
  }
  .home-capability-head > p {
    margin-top: 28px;
  }
  .home-capabilities {
    padding: 74px 0;
  }
  .home-capability-grid {
    margin-top: 36px;
  }
  .home-process-cards,
  .home-outcome-list {
    grid-template-columns: 1fr;
  }
  .home-process-cards article,
  .home-process-cards article + article {
    min-height: auto;
    padding: 24px 0;
    border-right: 0;
    border-bottom: 1px solid #dce3e8;
  }
  .home-process-cards h3 {
    margin-top: 25px;
  }
  .home-outcomes {
    padding: 70px 0;
  }
  .home-outcome-list {
    margin-top: 20px;
  }
  .home-services-title .home-inline-link {
    display: inline-block;
    margin-top: 26px;
  }
  .home-contact {
    padding: 76px 0;
  }
  .home-contact h2 {
    font-size: clamp(31px, 9vw, 47px);
  }
}

@media (max-width: 1050px) {
  .home-footer .home-shell {
    grid-template-columns: 1.2fr 1fr;
    gap: 42px 70px;
  }
}
@media (max-width: 700px) {
  .home-form { padding: 24px 20px; }
  .home-footer .home-shell { grid-template-columns: 1fr; gap: 32px; }
  .home-footer small { grid-column: auto; padding-top: 20px; }
}

/* A compact capabilities panel: content on the left, visual proof on the right. */
.home-capabilities { padding: clamp(72px, 7vw, 96px) 0; }
.home-capability-grid { grid-template-columns: minmax(0, .94fr) minmax(420px, 1.06fr); gap: clamp(42px, 6vw, 88px); margin-top: 0; align-items: stretch; }
.home-capability-content { display: flex; flex-direction: column; }
.home-capability-head { display: block; }
.home-capability-head > p { max-width: 43ch; margin: 24px 0 30px; }
.home-capability-list { margin-top: auto; }
.home-capability-list a { min-height: 64px; padding: 16px 0; }
.home-capability-grid figure { position: relative; overflow: hidden; min-height: 430px; }
.home-capability-grid img { min-height: 430px; height: 100%; filter: brightness(.82) saturate(.86); }
.home-capability-grid figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(8, 27, 47, .28), transparent 52%); pointer-events: none; }
.home-capability-grid figcaption { position: absolute; z-index: 1; right: 16px; bottom: 14px; }

@media (max-width: 700px) {
  .home-capability-grid { grid-template-columns: 1fr; gap: 30px; }
  .home-capability-grid figure,
  .home-capability-grid img { min-height: 260px; height: 260px; }
}

/* A clear, evenly paced three-step delivery process. */
.home-process-full { padding: clamp(82px, 8vw, 120px) 0; }
.home-process-heading { grid-template-columns: 86px minmax(0, 1.18fr) minmax(250px, .62fr); gap: clamp(28px, 4vw, 60px); align-items: end; }
.home-process-heading > p:last-child { margin: 0 0 6px; max-width: 34ch; }
.home-process-cards {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: clamp(42px, 5vw, 68px);
  border: 0;
}
.home-process-cards article {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 260px;
  padding: 28px;
  border: 1px solid #dce3e8;
  border-top: 3px solid #d3a54b;
  background: #fff;
}
.home-process-cards article + article { padding-left: 28px; }
.home-process-cards article:last-child { border: 1px solid #dce3e8; border-top: 3px solid #d3a54b; }
.home-process-cards small { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .08em; }
.home-process-cards small::after { content: ""; width: 34px; height: 1px; background: #d3a54b; }
.home-process-cards h3 { margin: auto 0 12px; font-size: clamp(22px, 2vw, 27px); line-height: 1.05; }
.home-process-cards p { margin: 0; max-width: 29ch; font-size: 13px; line-height: 1.75; }
@media (max-width: 700px) {
  /* This block sits after the desktop grid above, so it has to restate the
     single-column layout the earlier mobile rules asked for. */
  .home-process-heading {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 18px;
  }
  .home-process-heading > p:last-child { max-width: none; }
  .home-process-cards { gap: 12px; }
  /* The desktop card pushes its title to the bottom of a tall box; on a phone
     that leaves a dead gap, so the cards hug their content instead. */
  .home-process-cards article,
  .home-process-cards article + article,
  .home-process-cards article:last-child { min-height: auto; padding: 24px; border: 1px solid #dce3e8; border-top: 3px solid #d3a54b; }
  .home-process-cards h3 { margin: 26px 0 10px; }
}


.home-header {
  background: transparent;
  border-bottom-color: rgba(255, 255, 255, .16);
}
.home-nav > a,
.home-header .nav-dropdown-toggle { color: #fff; }
/* Below the nav breakpoint the wordmark is dropped and the badge stands alone. */
@media (max-width: 520px) {
  .home-brand { grid-template-columns: auto; grid-template-areas: "mark"; }
  .home-brand span,
  .home-brand::after { display: none; }
  .home-brand::before { width: 40px; height: 39px; margin-right: 0; }
}

/* ==========================================================================
   Homepage tablet band (701–900px)
   These sections kept their two-column desktop layout right down to the 700px
   mobile breakpoint, which squeezed the form, the capability list and the
   outcome ticks. The range is bounded so the mobile rules above still own
   everything under 701px.
   ========================================================================== */
@media (min-width: 701px) and (max-width: 900px) {
  .home-capability-grid,
  .home-outcomes .home-shell,
  .home-contact-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .home-capability-grid figure,
  .home-capability-grid img {
    min-height: 320px;
    height: 320px;
  }
  .home-footer .home-shell {
    grid-template-columns: 1fr 1fr;
    gap: 36px 40px;
  }
}
