.home-page {
  * {
    box-sizing: border-box;
  }
  a {
    text-decoration: none;
    color: inherit;
  }
  button,
  a {
    outline-offset: 4px;
  }
  .wrap {
    max-width: 1240px;
    margin: auto;
    padding-left: 28px;
    padding-right: 28px;
  }
  .nav {
    height: 84px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .brand {
    font-weight: 800;
    letter-spacing: -1.8px;
    font-size: 25px;
  }
  .brand em {
    font-style: normal;
    color: var(--green);
  }
  .links {
    display: flex;
    align-items: center;
    gap: 28px;
    font-size: 14px;
    font-weight: 700;
  }
  .pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--ink);
    color: var(--white);
    border-radius: 999px;
    padding: 14px 21px;
    font-size: 14px;
    font-weight: 800;
    transition:
      transform 0.2s,
      background 0.2s;
  }
  .pill:hover {
    transform: translateY(-2px);
    background: #285047;
  }
  .pill.lime {
    background: var(--lime);
    color: var(--ink);
  }
  .pill.lime:hover {
    background: #b9ef46;
  }
  .hero {
    padding-top: 44px;
    padding-bottom: 78px;
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 58px;
    align-items: center;
  }
  .eyebrow {
    font:
      500 11px "DM Mono",
      monospace;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--green);
  }
  h1 {
    font-size: clamp(50px, 6.1vw, 84px);
    line-height: 0.98;
    letter-spacing: -4.6px;
    margin: 18px 0 26px;
    max-width: 730px;
  }
  .lead {
    line-height: 1.72;
    color: var(--muted);
    max-width: 600px;
  }
  .actions {
    display: flex;
    gap: 12px;
    margin-top: 31px;
    flex-wrap: wrap;
  }
  .hero-art {
    min-height: 500px;
    background: var(--mint);
    border-radius: var(--radius);
    position: relative;
    overflow: hidden;
    padding: 28px;
  }
  .hero-art:before,
  .hero-art:after {
    content: "";
    position: absolute;
    border: 1px solid rgba(20, 80, 62, 0.22);
    border-radius: 50%;
  }
  .hero-art:before {
    width: 550px;
    height: 550px;
    right: -185px;
    top: -52px;
  }
  .hero-art:after {
    width: 380px;
    height: 380px;
    right: -95px;
    top: 33px;
  }
  .monogram {
    position: absolute;
    top: 43px;
    left: 42px;
    font-size: 73px;
    line-height: 1;
    color: #36775f;
    font-weight: 800;
    letter-spacing: -8px;
  }
  .screen {
    background: var(--deep);
    color: #fff;
    border-radius: 17px;
    padding: 22px;
    position: absolute;
    right: 38px;
    bottom: 35px;
    width: 77%;
    box-shadow: 0 22px 48px rgba(23, 53, 47, 0.25);
    z-index: 1;
  }
  .screen-top {
    display: flex;
    justify-content: space-between;
    font:
      11px "DM Mono",
      monospace;
    color: #a9cfc1;
  }
  .screen h2 {
    font-size: 27px;
    line-height: 1.08;
    letter-spacing: -1.2px;
    margin: 32px 0 27px;
  }
  .metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .metric {
    background: #28564b;
    border-radius: 11px;
    padding: 14px;
    font-size: 11px;
    color: #bad8ce;
  }
  .metric strong {
    display: block;
    color: #fff;
    font-size: 19px;
    margin-top: 8px;
  }
  .trust {
    max-width: none;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding-top: 24px;
    padding-bottom: 24px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    font:
      500 11px "DM Mono",
      monospace;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #62736f;
  }
  .trust span:first-child {
    color: var(--ink);
  }
  .section {
    padding-top: 105px;
    padding-bottom: 105px;
  }
  .section-head {
    display: grid;
    grid-template-columns: 0.75fr 1.25fr;
    gap: 75px;
    margin-bottom: 46px;
  }
  .section h2,
  .process h2 {
    font-size: clamp(36px, 4vw, 54px);
    letter-spacing: -3px;
    line-height: 1.02;
    margin: 13px 0;
  }
  .intro {
    color: var(--muted);
    line-height: 1.75;
    align-self: end;
    max-width: 610px;
  }
  .cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .service {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 17px;
    padding: 28px;
    min-height: 285px;
    display: flex;
    flex-direction: column;
    transition:
      transform 0.2s,
      box-shadow 0.2s;
  }
  .service.cto {
    grid-column: 1/-1;
    background: var(--mint);
    display: grid;
    grid-template-columns: 0.7fr 1.3fr;
    gap: 60px;
    align-items: center;
    min-height: 245px;
  }
  .service.cto h3 {
    margin: 16px 0 0;
    font-size: 32px;
  }
  .service:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 35px rgba(28, 55, 47, 0.08);
  }
  .num {
    font:
      500 11px "DM Mono",
      monospace;
    color: var(--green);
    text-transform: uppercase;
    letter-spacing: 0.3px;
  }
  .service h3 {
    font-size: 24px;
    letter-spacing: -1.2px;
    margin: 39px 0 14px;
    line-height: 1.14;
  }
  .service p {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.68;
    margin: 0;
  }
  .arrow {
    margin-top: auto;
    font-size: 20px;
    color: var(--green);
  }
  .process {
    background: var(--ink);
    color: #eef8f3;
  }
  .process .section {
    padding-top: 99px;
    padding-bottom: 95px;
  }
  .process .eyebrow {
    color: var(--lime);
  }
  .process h2 {
    max-width: 760px;
  }
  .steps {
    border-top: 1px solid #405e58;
    margin-top: 49px;
  }
  .step {
    display: grid;
    grid-template-columns: 90px 1fr 1.2fr;
    gap: 28px;
    border-bottom: 1px solid #405e58;
    padding: 27px 0;
  }
  .step span {
    font:
      500 11px "DM Mono",
      monospace;
    color: var(--lime);
  }
  .step b {
    font-size: 20px;
  }
  .step p {
    font-size: 14px;
    color: #b7c8c3;
    line-height: 1.6;
    margin: 0;
  }
  .portfolio {
    background: #dbe9e2;
  }
  .work-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
  .work {
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(57, 123, 99, 0.2);
    border-radius: 16px;
    padding: 25px;
    min-height: 210px;
  }
  .work .tag {
    font:
      500 10px "DM Mono",
      monospace;
    color: var(--green);
    text-transform: uppercase;
    letter-spacing: 0.8px;
  }
  .work h3 {
    font-size: 22px;
    letter-spacing: -1px;
    margin: 31px 0 10px;
  }
  .work p {
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted);
    margin: 0;
  }
  .partnership {
    padding-top: 105px;
    padding-bottom: 105px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
  }
  .visual {
    background: #d1e5db;
    border-radius: 20px;
    min-height: 430px;
    padding: 26px;
    position: relative;
    overflow: hidden;
  }
  .board {
    background: #fff;
    border-radius: 15px;
    padding: 24px;
    position: absolute;
    inset: 55px 46px;
    box-shadow: 0 22px 45px rgba(57, 91, 76, 0.22);
  }
  .board small {
    font:
      500 10px "DM Mono",
      monospace;
    color: var(--muted);
  }
  .bars {
    margin-top: 34px;
    height: 178px;
    display: flex;
    gap: 12px;
    align-items: end;
  }
  .bar {
    background: #bee594;
    width: 20%;
    border-radius: 5px 5px 0 0;
  }
  .bar:nth-child(1) {
    height: 25%;
  }
  .bar:nth-child(2) {
    height: 43%;
  }
  .bar:nth-child(3) {
    height: 61%;
  }
  .bar:nth-child(4) {
    height: 79%;
  }
  .bar:nth-child(5) {
    height: 100%;
    background: var(--green);
  }
  .quote {
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.18;
    letter-spacing: -2.2px;
    margin: 17px 0 30px;
  }
  .support {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 25px;
  }
  .support div {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.55;
  }
  .support strong {
    display: block;
    color: var(--ink);
    margin-bottom: 4px;
  }
  .faq {
    max-width: 930px;
    margin: auto;
    padding: 12px 28px 105px;
  }
  .faq h2 {
    font-size: clamp(36px, 4vw, 48px);
    letter-spacing: -2.5px;
    margin: 13px 0 40px;
  }
  .faq details {
    border-top: 1px solid var(--line);
    padding: 23px 2px;
  }
  .faq details:last-child {
    border-bottom: 1px solid var(--line);
  }
  summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 18px;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 20px;
  }
  summary::-webkit-details-marker {
    display: none;
  }
  details p {
    max-width: 720px;
    color: var(--muted);
    line-height: 1.7;
    font-size: 15px;
  }
  .cta {
    margin: 0 28px 28px;
    background: var(--lime);
    border-radius: 22px;
  }
  .cta-inner {
    max-width: 1184px;
    margin: auto;
    padding: 84px 0;
    display: flex;
    justify-content: space-between;
    gap: 38px;
    align-items: end;
  }
  .cta h2 {
    font-size: clamp(40px, 5vw, 64px);
    letter-spacing: -3.5px;
    line-height: 1;
    margin: 15px 0 0;
    max-width: 700px;
  }
  .footer {
    padding-top: 36px;
    padding-bottom: 55px;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    color: var(--muted);
    font-size: 13px;
  }
  .footer-links {
    display: flex;
    gap: 18px;
  }
  .reveal {
    animation: rise 0.7s ease both;
  }
  @media (prefers-reduced-motion: reduce) {
    .reveal {
      animation: none;
    }
    .service,
    .pill {
      transition: none;
    }
  }
  @media (max-width: 800px) {
    .links > a:not(.pill) {
      display: none;
    }
    .hero,
    .section-head,
    .partnership {
      grid-template-columns: 1fr;
      gap: 30px;
    }
    .hero {
      padding-top: 26px;
    }
    .hero-art {
      min-height: 385px;
    }
    .cards,
    .work-grid {
      grid-template-columns: 1fr;
    }
    .service.cto {
      grid-column: auto;
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .service {
      min-height: 255px;
    }
    .step {
      grid-template-columns: 55px 1fr;
    }
    .step p {
      grid-column: 2;
    }
    .cta-inner {
      padding: 58px 26px;
      display: block;
    }
    .cta .pill {
      margin-top: 27px;
    }
    .cta {
      margin: 0 15px 15px;
    }
    .footer {
      flex-direction: column;
      align-items: flex-start;
    }
    .section {
      padding-top: 75px;
      padding-bottom: 75px;
    }
    h1 {
      letter-spacing: -3px;
    }
    .screen {
      right: 20px;
      width: 85%;
    }
    .trust {
      justify-content: flex-start;
    }
    .support {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 430px) {
    .wrap {
      padding-left: 19px;
      padding-right: 19px;
    }
    .nav {
      height: 72px;
    }
    .links {
      gap: 0;
    }
    .links .pill {
      padding: 12px 14px;
    }
    .hero {
      padding-bottom: 55px;
    }
    .hero-art {
      min-height: 340px;
    }
    .monogram {
      font-size: 58px;
    }
    .screen {
      bottom: 20px;
      padding: 18px;
    }
    .screen h2 {
      font-size: 22px;
      margin: 24px 0 20px;
    }
    .metrics {
      gap: 7px;
    }
    .metric {
      padding: 11px;
    }
    .step {
      gap: 12px;
    }
    .cta h2 {
      letter-spacing: -2.4px;
    }
    .board {
      inset: 42px 25px;
    }
    .visual {
      min-height: 380px;
    }
  }

  .nav {
    position: relative;
  }
  .menu-trigger {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    list-style: none;
    font-size: 14px;
    font-weight: 700;
  }
  .menu-trigger::-webkit-details-marker {
    display: none;
  }
  .menu-trigger:after {
    content: "⌄";
    font-size: 13px;
    color: var(--green);
  }
  .mega-wrap {
    position: static;
  }
  .mega {
    position: absolute;
    z-index: 30;
    top: 84px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #fff;
    border-top: 1px solid #edf0ee;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 20px 35px rgba(16, 23, 22, 0.09);
    padding: 31px max(28px, calc((100vw - 1184px) / 2)) 38px;
  }
  .mega-grid {
    display: grid;
    grid-template-columns: 1.15fr 1.15fr 0.7fr;
    gap: 34px;
  }
  .mega-title {
    font:
      500 10px "DM Mono",
      monospace;
    letter-spacing: 1px;
    color: #71807d;
    text-transform: uppercase;
    margin-bottom: 12px;
  }
  .mega-list {
    display: grid;
    gap: 5px;
  }
  .mega-item {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 11px;
    padding: 10px;
    border-radius: 11px;
  }
  .mega-item:hover {
    background: #f1f3f1;
  }
  .mega-icon {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: var(--mint);
    display: grid;
    place-items: center;
    font:
      700 12px "DM Mono",
      monospace;
    color: var(--deep);
  }
  .mega-item.featured .mega-icon {
    background: var(--lime);
  }
  .mega-item strong {
    display: block;
    font-size: 14px;
    margin-bottom: 2px;
  }
  .mega-item small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
  }
  .mega-simple {
    display: block;
    padding: 9px 0;
    font-size: 14px;
  }
  .mega-simple:hover {
    color: var(--green);
  }
  .mobile-solutions {
    display: none;
  }
  @media (max-width: 800px) {
    .mega-wrap {
      display: none;
    }
    .mobile-solutions {
      display: block;
    }
    .links > a:not(.pill):not(.mobile-solutions) {
      display: none;
    }
  }
  @media (max-width: 430px) {
    .mobile-solutions {
      display: none;
    }
  }
}

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

.solutions-page {
  * {
    box-sizing: border-box;
  }
  a {
    text-decoration: none;
    color: inherit;
  }
  a {
    outline-offset: 4px;
  }
  .wrap {
    max-width: 1240px;
    margin: auto;
    padding-left: 28px;
    padding-right: 28px;
  }
  .nav {
    height: 84px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .brand {
    font-weight: 800;
    letter-spacing: -1.8px;
    font-size: 25px;
  }
  .brand em {
    font-style: normal;
    color: var(--green);
  }
  .links {
    display: flex;
    align-items: center;
    gap: 27px;
    font-size: 14px;
    font-weight: 700;
  }
  .links > a:not(.pill)[aria-current="page"] {
    color: var(--green);
  }
  .pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--ink);
    color: #fff;
    border-radius: 999px;
    padding: 14px 21px;
    font-size: 14px;
    font-weight: 800;
    transition:
      transform 0.2s,
      background 0.2s;
  }
  .pill:hover {
    transform: translateY(-2px);
    background: #285047;
  }
  .eyebrow {
    font:
      500 11px "DM Mono",
      monospace;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--green);
  }
  .hero {
    padding-top: 52px;
    padding-bottom: 68px;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 70px;
    align-items: end;
  }
  .hero h1 {
    font-size: clamp(52px, 7vw, 92px);
    line-height: 0.95;
    letter-spacing: -5px;
    margin: 18px 0 25px;
  }
  .hero p {
    color: var(--muted);
    line-height: 1.75;
    max-width: 650px;
    font-size: 17px;
  }
  .hero-index {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--line);
  }
  .hero-index a {
    padding: 18px 10px 18px 0;
    border-bottom: 1px solid var(--line);
    font:
      500 11px "DM Mono",
      monospace;
    text-transform: uppercase;
    color: var(--muted);
    transition: color 0.2s;
  }
  .hero-index a:hover {
    color: var(--green);
  }
  .hero-index span {
    color: var(--green);
    margin-right: 10px;
  }
  .principles {
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding-top: 23px;
    padding-bottom: 23px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    font:
      500 11px "DM Mono",
      monospace;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #62736f;
  }
  .services-layout {
    display: grid;
    grid-template-columns: 270px 1fr;
    gap: 55px;
    padding-top: 95px;
    padding-bottom: 105px;
  }
  .side {
    position: sticky;
    top: 28px;
    align-self: start;
  }
  .side h2 {
    font-size: 24px;
    letter-spacing: -1px;
    margin: 12px 0 23px;
  }
  .side nav {
    border-top: 1px solid var(--line);
  }
  .side nav a {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
    font-weight: 700;
  }
  .side nav span {
    font:
      500 10px "DM Mono",
      monospace;
    color: var(--green);
    padding-top: 3px;
  }
  .side p {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.6;
    margin-top: 24px;
  }
  .service {
    scroll-margin-top: 25px;
    border-top: 1px solid var(--line);
    padding: 42px 0 50px;
  }
  .service:first-child {
    border-top: 0;
    padding-top: 0;
  }
  .service-head {
    display: grid;
    grid-template-columns: 95px 1fr;
    gap: 22px;
  }
  .number {
    font:
      500 12px "DM Mono",
      monospace;
    color: var(--green);
    padding-top: 9px;
  }
  .service h2 {
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.02;
    letter-spacing: -3px;
    margin: 0 0 18px;
    max-width: 780px;
  }
  .service .lead {
    color: var(--muted);
    font-size: 17px;
    line-height: 1.72;
    max-width: 760px;
  }
  .service-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 34px 0 0 117px;
  }
  .panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 24px;
  }
  .panel.tint {
    background: var(--mint);
  }
  .panel h3 {
    font-size: 18px;
    letter-spacing: -0.6px;
    margin: 0 0 15px;
  }
  .panel p {
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted);
    margin: 0;
  }
  .panel ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .panel li {
    position: relative;
    padding: 8px 0 8px 17px;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
    line-height: 1.45;
  }
  .panel li:last-child {
    border-bottom: 0;
  }
  .panel li:before {
    content: "+";
    position: absolute;
    left: 0;
    color: var(--green);
  }
  .engage {
    background: var(--ink);
    color: #eef8f3;
  }
  .engage-inner {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .engage .eyebrow {
    color: var(--lime);
  }
  .engage h2 {
    font-size: clamp(38px, 5vw, 62px);
    letter-spacing: -3.5px;
    line-height: 1;
    margin: 14px 0 46px;
    max-width: 780px;
  }
  .models {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 13px;
  }
  .model {
    border: 1px solid #3f5e57;
    border-radius: 16px;
    padding: 24px;
    min-height: 270px;
    display: flex;
    flex-direction: column;
  }
  .model.highlight {
    background: var(--lime);
    color: var(--ink);
    border-color: var(--lime);
  }
  .model .tag {
    font:
      500 10px "DM Mono",
      monospace;
    color: var(--lime);
    text-transform: uppercase;
    letter-spacing: 0.8px;
  }
  .model.highlight .tag {
    color: #2d654e;
  }
  .model h3 {
    font-size: 21px;
    letter-spacing: -1px;
    margin: 28px 0 12px;
  }
  .model p {
    font-size: 14px;
    color: #b6c9c3;
    line-height: 1.6;
    margin: 0;
  }
  .model.highlight p {
    color: #344a42;
  }
  .model small {
    margin-top: auto;
    padding-top: 28px;
    color: #9eb5ad;
    font-size: 12px;
  }
  .model.highlight small {
    color: #2d654e;
  }
  .proof {
    padding-top: 105px;
    padding-bottom: 105px;
  }
  .proof-head {
    display: grid;
    grid-template-columns: 0.75fr 1.25fr;
    gap: 70px;
    margin-bottom: 43px;
  }
  .proof h2 {
    font-size: clamp(36px, 4vw, 54px);
    letter-spacing: -3px;
    line-height: 1.02;
    margin: 13px 0;
  }
  .proof-head p {
    align-self: end;
    color: var(--muted);
    line-height: 1.72;
    margin: 0;
  }
  .work-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
  .work {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 25px;
    min-height: 215px;
  }
  .work .tag {
    font:
      500 10px "DM Mono",
      monospace;
    color: var(--green);
    text-transform: uppercase;
  }
  .work h3 {
    font-size: 22px;
    letter-spacing: -1px;
    margin: 30px 0 10px;
  }
  .work p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.65;
    margin: 0;
  }
  .cta {
    margin: 0 28px 28px;
    background: var(--lime);
    border-radius: 22px;
  }
  .cta-inner {
    max-width: 1184px;
    margin: auto;
    padding: 80px 0;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 35px;
  }
  .cta h2 {
    font-size: clamp(40px, 5vw, 64px);
    line-height: 1;
    letter-spacing: -3.5px;
    margin: 15px 0 0;
    max-width: 700px;
  }
  .footer {
    padding-top: 36px;
    padding-bottom: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    color: var(--muted);
    font-size: 13px;
  }
  .footer-links {
    display: flex;
    gap: 18px;
  }
  @media (max-width: 860px) {
    .links > a:not(.pill) {
      display: none;
    }
    .hero {
      grid-template-columns: 1fr;
      gap: 30px;
    }
    .hero h1 {
      letter-spacing: -3px;
    }
    .services-layout {
      grid-template-columns: 1fr;
      padding-top: 70px;
    }
    .side {
      position: static;
    }
    .side nav {
      display: grid;
      grid-template-columns: 1fr 1fr;
    }
    .side nav a {
      padding-right: 12px;
    }
    .service-grid {
      margin-left: 0;
    }
    .models {
      grid-template-columns: 1fr;
    }
    .model {
      min-height: 220px;
    }
    .proof-head {
      grid-template-columns: 1fr;
      gap: 20px;
    }
  }
  @media (max-width: 620px) {
    .wrap {
      padding-left: 19px;
      padding-right: 19px;
    }
    .nav {
      height: 72px;
    }
    .links .pill {
      padding: 12px 14px;
    }
    .hero {
      padding-top: 32px;
    }
    .hero-index,
    .service-grid,
    .work-grid {
      grid-template-columns: 1fr;
    }
    .side nav {
      grid-template-columns: 1fr;
    }
    .service-head {
      grid-template-columns: 1fr;
      gap: 9px;
    }
    .number {
      padding-top: 0;
    }
    .service h2 {
      letter-spacing: -2px;
    }
    .cta {
      margin: 0 15px 15px;
    }
    .cta-inner {
      padding: 55px 24px;
      display: block;
    }
    .cta .pill {
      margin-top: 26px;
    }
    .footer {
      flex-direction: column;
      align-items: flex-start;
    }
    .principles {
      justify-content: flex-start;
    }
  }

  .nav {
    position: relative;
  }
  .menu-trigger {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    list-style: none;
    font-size: 14px;
    font-weight: 700;
    color: var(--green);
  }
  .menu-trigger::-webkit-details-marker {
    display: none;
  }
  .menu-trigger:after {
    content: "⌄";
    font-size: 13px;
  }
  .mega-wrap {
    position: static;
  }
  .mega {
    position: absolute;
    z-index: 30;
    top: 84px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #fff;
    border-top: 1px solid #edf0ee;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 20px 35px rgba(16, 23, 22, 0.09);
    padding: 31px max(28px, calc((100vw - 1184px) / 2)) 38px;
  }
  .mega-grid {
    display: grid;
    grid-template-columns: 1.15fr 1.15fr 0.7fr;
    gap: 34px;
  }
  .mega-title {
    font:
      500 10px "DM Mono",
      monospace;
    letter-spacing: 1px;
    color: #71807d;
    text-transform: uppercase;
    margin-bottom: 12px;
  }
  .mega-list {
    display: grid;
    gap: 5px;
  }
  .mega-item {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 11px;
    padding: 10px;
    border-radius: 11px;
  }
  .mega-item:hover {
    background: #f1f3f1;
  }
  .mega-icon {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: var(--mint);
    display: grid;
    place-items: center;
    font:
      700 12px "DM Mono",
      monospace;
    color: var(--deep);
  }
  .mega-item.featured .mega-icon {
    background: var(--lime);
  }
  .mega-item strong {
    display: block;
    font-size: 14px;
    margin-bottom: 2px;
  }
  .mega-item small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
  }
  .mega-simple {
    display: block;
    padding: 9px 0;
    font-size: 14px;
  }
  .mega-simple:hover {
    color: var(--green);
  }
  .mobile-solutions {
    display: none;
  }
  @media (max-width: 860px) {
    .mega-wrap {
      display: none;
    }
    .mobile-solutions {
      display: block;
      color: var(--green);
    }
    .links > a:not(.pill):not(.mobile-solutions) {
      display: none;
    }
  }
  @media (max-width: 620px) {
    .mobile-solutions {
      display: none;
    }
  }
}

:root {
  --ink: #101716;
  --muted: #60706d;
  --paper: #f3f4ef;
  --white: #fff;
  --line: #d4ddd8;
  --mint: #d8ede3;
  --lime: #c8ff52;
  --green: #397b63;
  --deep: #17352f;
  --radius: 20px;
}
.principles-marquee { position:relative; display:flex; align-items:center; border-block:1px solid var(--line); padding-block:23px; width:100%; }
.marquee-window { overflow:hidden; flex:1; min-width:0; mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent); }
.marquee-track { display:flex; width:max-content; animation:principles-scroll 32s linear infinite; }
.marquee-group { display:flex; flex-shrink:0; min-width:calc(100vw - 60px); justify-content:space-around; }
.marquee-item { display:inline-flex; align-items:center; gap:45px; padding-inline:28px; white-space:nowrap; color:var(--muted); font:500 13px 'DM Mono',monospace; letter-spacing:1px; text-transform:uppercase; }
.marquee-item:first-child { color:var(--ink); }
.marquee-separator { color:var(--green); font-size:17px; }
.marquee-toggle { flex:none; margin-inline:8px 16px; border:1px solid var(--line); background:transparent; border-radius:50%; width:34px; height:34px; color:var(--green); cursor:pointer; }
.principles-marquee:is(:hover,:focus-within,.is-paused) .marquee-track { animation-play-state:paused; }
@keyframes principles-scroll { to { transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce) {
  .marquee-track { animation:none; width:100%; }
  .marquee-window { mask-image:none; }
  .marquee-group { min-width:0; width:100%; flex-wrap:wrap; gap:20px; }
  .marquee-group[aria-hidden="true"],.marquee-toggle,.marquee-separator { display:none; }
  .marquee-item { white-space:normal; text-align:center; justify-content:center; }
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Manrope, Arial, sans-serif;
  font-size: 16px;
}
:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 5px;
}
/* Brand gradient shared by every page's primary heading. */
h1 {
  color: var(--ink);
  /* Tight display line heights otherwise crop descenders in the gradient paint box. */
  padding-block: 0.12em 0.18em;
  overflow: visible;
}
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  h1 {
    background-image: linear-gradient(110deg, #101716 12%, #17352f 42%, #397b63 76%, #438b72 100%);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
}
@media (forced-colors: active), print {
  h1 {
    background: none;
    color: CanvasText;
    -webkit-text-fill-color: currentColor;
  }
}
.home-page .brand,
.solutions-page .brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.brand-logo {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
}
@media (max-width: 480px) {
  .brand-logo { width: 190px; }
}
.home-page .solution-link,
.solutions-page .solution-link {
  display: inline-block;
  font-size: 14px;
  font-weight: 800;
  color: var(--green);
  margin-top: 22px;
  position: relative;
  z-index: 1;
}
.home-page .service.cto .solution-link {
  grid-column: 1 / -1;
}
.home-page .menu-trigger,
.solutions-page .menu-trigger {
  border: 0;
  background: none;
  font: inherit;
  padding: 8px 0;
  color: inherit;
}
.home-page .mega-wrap,
.solutions-page .mega-wrap {
  display: block;
}
.home-page .mega-title,
.solutions-page .mega-title {
  font-size: 12px;
}
.home-page .mega-item small,
.solutions-page .mega-item small {
  font-size: 14px;
}
.home-page .mega-icon,
.solutions-page .mega-icon {
  transition: background-color 160ms ease, color 160ms ease;
}
.home-page .mega-item:is(:hover, :focus-visible) .mega-icon,
.solutions-page .mega-item:is(:hover, :focus-visible) .mega-icon {
  background-color: var(--lime);
  color: var(--ink);
}
@media (max-width: 800px) {
  .home-page .nav,
  .solutions-page .nav {
    height: auto;
    min-height: 84px;
    flex-wrap: wrap;
    padding-top: 18px;
    padding-bottom: 18px;
    gap: 18px;
  }
  .home-page .links,
  .solutions-page .links {
    width: 100%;
    flex-wrap: wrap;
    gap: 12px 20px;
  }
  .home-page .links > a:not(.pill):not(.mobile-solutions),
  .solutions-page .links > a:not(.pill):not(.mobile-solutions) {
    display: block;
  }
  .home-page .mega,
  .solutions-page .mega {
    top: 100%;
    max-height: 70vh;
    overflow-y: auto;
    padding: 24px;
  }
  .home-page .mega-grid,
  .solutions-page .mega-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .mega-icon,
  .solutions-page .mega-icon {
    transition: none;
  }
  html {
    scroll-behavior: auto;
  }
}

.landing-page {
  .landing-hero {
    padding-top: 32px;
    padding-bottom: 80px;
  }
  .back-link {
    display: inline-block;
    color: var(--muted);
    font-size: 14px;
    margin-bottom: 54px;
  }
  .landing-hero-grid {
    display: grid;
    grid-template-columns: 1.35fr 0.75fr;
    gap: 70px;
    align-items: center;
  }
  .landing-hero h1 {
    font-size: clamp(44px, 5.4vw, 74px);
    line-height: 1.03;
    letter-spacing: -3.5px;
    margin: 20px 0 24px;
  }
  .landing-lead {
    font-size: 18px;
    line-height: 1.75;
    color: var(--muted);
    margin: 0 0 30px;
  }
  .outcome-card {
    background: var(--lime);
    border-radius: 22px;
    padding: 36px;
  }
  .outcome-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    background: var(--ink);
    color: var(--lime);
    border-radius: 14px;
    font:
      500 20px "DM Mono",
      monospace;
    margin-bottom: 64px;
  }
  .outcome-card h2 {
    font-size: 27px;
    letter-spacing: -1px;
    line-height: 1.3;
    margin: 15px 0 30px;
  }
  .outcome-card p {
    border-top: 1px solid #86b52f;
    padding-top: 20px;
    line-height: 1.6;
    font-size: 14px;
  }
  .scope-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 100px;
    padding-top: 65px;
    padding-bottom: 85px;
    border-top: 1px solid var(--line);
  }
  .scope-section h2,
  .delivery-section h2,
  .landing-faq h2,
  .enquiry-copy h2 {
    font-size: clamp(32px, 3.5vw, 46px);
    letter-spacing: -1.8px;
    line-height: 1.12;
    margin: 15px 0 22px;
  }
  .scope-section p,
  .delivery-grid p,
  .landing-faq p,
  .enquiry-copy p {
    font-size: 16px;
    line-height: 1.75;
    color: var(--muted);
  }
  .scope-list h3 {
    margin: 0 0 20px;
    font-size: 20px;
  }
  .scope-list ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .scope-list li {
    padding: 17px 0;
    border-bottom: 1px solid var(--line);
    font-size: 16px;
  }
  .scope-list li::before {
    content: "+";
    color: var(--green);
    margin-right: 14px;
  }
  .delivery-section {
    background: var(--ink);
    color: white;
    padding: 80px 0;
  }
  .delivery-section .eyebrow {
    color: var(--lime);
  }
  .delivery-section h2 {
    max-width: 650px;
  }
  .delivery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 35px;
    margin-top: 48px;
  }
  .delivery-grid article {
    border-top: 1px solid #446058;
    padding-top: 25px;
  }
  .step-number {
    color: var(--lime);
    font:
      500 14px "DM Mono",
      monospace;
  }
  .delivery-grid h3 {
    font-size: 23px;
    margin-top: 28px;
  }
  .delivery-grid p {
    color: #bed0c9;
  }
  .landing-faq {
    padding-top: 85px;
    padding-bottom: 85px;
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 80px;
  }
  .landing-faq details {
    border-bottom: 1px solid var(--line);
    padding: 22px 0;
  }
  .landing-faq summary {
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
  }
  .enquiry-section {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 75px;
    padding-top: 55px;
    padding-bottom: 70px;
    scroll-margin-top: 24px;
  }
  .enquiry-copy a {
    display: inline-block;
    margin-top: 18px;
    font-weight: 700;
    color: var(--green);
    overflow-wrap: anywhere;
  }
  .enquiry-form {
    background: white;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 32px;
    display: grid;
    gap: 22px;
  }
  .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  .enquiry-form label {
    display: flex;
    flex-direction: column;
    gap: 9px;
    font-size: 14px;
    font-weight: 700;
  }
  .enquiry-form label > span {
    display: contents;
  }
  .enquiry-form input,
  .enquiry-form textarea {
    width: 100%;
    min-width: 0;
    font:
      400 16px/1.5 Manrope,
      Arial,
      sans-serif;
    color: var(--ink);
    border: 1px solid #a9bbb2;
    border-radius: 8px;
    background: #fff;
    padding: 12px 14px;
  }
  .enquiry-form input[readonly] {
    background: var(--paper);
  }
  .enquiry-form textarea {
    resize: vertical;
  }
  .enquiry-form .form-note {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.6;
    margin: 0;
  }
  .enquiry-form .pill {
    border: 0;
    cursor: pointer;
    justify-self: start;
  }
  .form-trap {
    display: none;
  }
  .related-solutions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 26px;
    padding-top: 30px;
    padding-bottom: 45px;
    border-top: 1px solid var(--line);
    font-size: 14px;
  }
  .related-solutions span {
    width: 100%;
    color: var(--muted);
  }
  .related-solutions a {
    font-weight: 700;
  }
  @media (max-width: 800px) {
    .landing-hero-grid,
    .scope-section,
    .landing-faq,
    .enquiry-section {
      grid-template-columns: 1fr;
      gap: 35px;
    }
    .delivery-grid {
      grid-template-columns: 1fr;
      gap: 20px;
    }
    .landing-hero h1 {
      letter-spacing: -2px;
    }
    .back-link {
      margin-bottom: 35px;
    }
    .outcome-icon {
      margin-bottom: 32px;
    }
    .landing-hero,
    .scope-section,
    .landing-faq {
      padding-bottom: 55px;
    }
    .enquiry-section {
      padding-top: 20px;
    }
  }
  @media (max-width: 480px) {
    .form-row {
      grid-template-columns: 1fr;
    }
    .enquiry-form {
      padding: 22px;
    }
    .outcome-card {
      padding: 28px;
    }
  }
}

.contact-page .contact-hero { padding-top:70px; padding-bottom:65px; }
.contact-page .contact-hero h1 { max-width:850px; font-size:clamp(46px,6vw,80px); line-height:1.03; letter-spacing:-3px; margin:20px 0 25px; }
.contact-page .contact-hero p { max-width:670px; color:var(--muted); font-size:18px; line-height:1.75; margin:0 0 28px; }
.contact-page .enquiry-section { border-top:1px solid var(--line); }
.contact-page .locations-section { padding-top:50px; padding-bottom:80px; }
.contact-page .locations-section h2 { font-size:clamp(30px,3.5vw,44px); letter-spacing:-1.5px; margin:16px 0 32px; }
.contact-page .locations-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.contact-page .locations-grid article { background:var(--mint); padding:30px; border-radius:16px; }
.contact-page .locations-grid span { font:500 13px 'DM Mono',monospace; color:var(--green); text-transform:uppercase; }
.contact-page .locations-grid h3 { font-size:27px; margin:18px 0 0; letter-spacing:-1px; }
.landing-page .enquiry-form select { width:100%; min-width:0; font:400 16px/1.5 Manrope,Arial,sans-serif; color:var(--ink); border:1px solid #a9bbb2; border-radius:8px; background:white; padding:12px 14px; }
@media(max-width:800px) { .contact-page .locations-grid { grid-template-columns:1fr; } .contact-page .contact-hero { padding-top:40px; } }
.booking-section { padding-bottom:80px; }
.booking-section > p { color:var(--muted); line-height:1.7; }
.booking-section > p a { color:var(--green); text-decoration:underline; }
.booking-calendar { min-height:700px; margin-top:28px; padding-top:32px; background:#fff; border-radius:20px; overflow:hidden; }
.booking-fallback { font-size:14px; }
@media(max-width:600px) { .booking-calendar { min-height:760px; padding-top:20px; } }

.insights-nav{position:relative;display:flex;align-items:center;gap:3px}
.project-status{display:inline-block;margin:18px 0 8px;padding:7px 10px;border-radius:6px;background:var(--mint);color:var(--deep);font-size:12px;font-weight:700;}
.insights-toggle{border:0;background:transparent;color:var(--green);cursor:pointer;padding:8px;font:inherit;line-height:1}
.insights-dropdown{position:absolute;top:calc(100% + 16px);left:-20px;width:210px;background:white;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 16px 32px #10171615;z-index:40}
.insights-dropdown a{display:block;padding:14px;border-radius:7px;font-size:14px}
.insights-dropdown a:is(:hover,:focus-visible){background:var(--lime);color:var(--ink)}
.company-page {
  .company-hero{padding-top:65px;padding-bottom:65px;}
  .company-hero h1{font-size:clamp(44px,6vw,78px);line-height:1.05;letter-spacing:-3px;max-width:960px;margin:20px 0 26px;}
  .company-hero>p{font-size:19px;line-height:1.75;color:var(--muted);max-width:800px;}
  .company-content{padding-bottom:70px;}
  h2{font-size:clamp(28px,3.3vw,42px);letter-spacing:-1.3px;line-height:1.15;margin:0 0 20px;}
  h3{font-size:22px;letter-spacing:-.5px;}
  .company-content p,.company-content li{font-size:16px;line-height:1.8;color:var(--muted);}
  .company-split{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;padding:48px 0;border-top:1px solid var(--line);}
  .company-split p:first-child{margin-top:0;}
  .company-section{padding-top:35px;padding-bottom:35px;}
  .company-section>.eyebrow{margin-bottom:25px;}
  .company-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
  .company-card{background:white;border:1px solid var(--line);border-radius:18px;padding:32px;}
  .company-card h3{margin-top:0;}
  .company-card h2{margin-top:24px;font-size:32px;}
  .company-card p{margin-bottom:22px;}
  .text-link{display:inline-block;font-size:14px;font-weight:800;color:var(--green);margin-top:12px;}
  .insights-options>.company-card{padding:40px;transition:background-color .15s;}
  .insights-options>.company-card:is(:hover,:focus-visible){background:var(--mint);}
  .location-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .location-row>div{padding:26px;background:var(--mint);border-radius:14px;}
  .location-row strong{display:block;font-size:23px;margin-bottom:12px;}
  .location-row span{color:var(--muted);font-size:15px;}
  .company-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--lime);border-radius:20px;padding-top:45px;padding-bottom:45px;margin-bottom:30px;}
  .company-cta h2{max-width:650px;margin:15px 0 0;}
  .company-cta .pill{flex-shrink:0;}
  .approach-stage{display:grid;grid-template-columns:220px 1fr;gap:50px;border-top:1px solid var(--line);padding:45px 0;}
  .stage-index{font:500 14px 'DM Mono',monospace;color:var(--green);}
  .stage-outcome{padding:24px;background:var(--mint);border-radius:12px;margin-top:25px;}
  .stage-outcome p{margin-bottom:0;}
  .back-link{display:inline-block;color:var(--green);margin-bottom:30px;font-size:14px;font-weight:700;}
  .case-index{display:flex;gap:12px;flex-wrap:wrap;padding-bottom:36px;}
  .case-index a{padding:12px 16px;background:var(--mint);border-radius:8px;font-size:14px;}
  .case-study{border-top:1px solid var(--line);padding:50px 0;scroll-margin-top:30px;}
  .case-study>h2{margin-top:20px;}
  .case-summary{max-width:850px;}
  .case-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:32px;}
  .case-detail-grid h3{font-size:18px;}
  .case-detail-grid ul{padding-left:20px;}
  @media(max-width:800px){.company-split,.company-grid,.approach-stage,.case-detail-grid{grid-template-columns:1fr;gap:25px}.location-row{grid-template-columns:1fr}.company-cta{margin-left:19px;margin-right:19px;display:block}.company-cta .pill{margin-top:25px}.company-hero{padding-top:40px}.company-hero h1{letter-spacing:-2px}}
}

.faq-list { min-width:0; width:100%; }
.home-page .faq { padding-block:80px; }
.home-page .cta-surround { display:flow-root; background:#fff; }
.faq-list summary.faq-question::after { content:none; }
@media(max-width:600px) { .home-page .faq { padding-block:48px; } }
/* Full-width white FAQ bands without changing the content alignment. */
.home-page .faq, .solutions-page .service-faqs, .landing-page .landing-faq {
  background:#fff;
  box-shadow:0 0 0 100vmax #fff;
  clip-path:inset(0 -100vmax);
}
.faq-list details.faq-item { padding:0; border-bottom:0; }
.faq-list details.faq-item:last-child { border-bottom:1px solid var(--line); }
.faq-list summary.faq-question { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; padding:23px 2px; color:var(--ink); cursor:pointer; list-style:none; font:700 18px/1.5 Manrope,Arial,sans-serif; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list details[open] .faq-plus { transform:rotate(45deg); }
.faq-list details .faq-answer { display:block; opacity:1; }
@supports (interpolate-size: allow-keywords) {
  .faq-list details::details-content { interpolate-size:allow-keywords; height:0; overflow:clip; opacity:0; transition:height 320ms ease, opacity 240ms ease, content-visibility 320ms allow-discrete; }
  .faq-list details[open]::details-content { height:auto; opacity:1; }
}
@media(prefers-reduced-motion:reduce) { .faq-list details::details-content { transition:none; } }
.faq-item { border-top:1px solid var(--line); }
.faq-item:last-child { border-bottom:1px solid var(--line); }
.faq-list .faq-question { margin:0; font-size:18px; letter-spacing:normal; }
.faq-question button { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; text-align:left; padding:23px 2px; border:0; background:transparent; color:var(--ink); cursor:pointer; font:700 18px/1.5 Manrope,Arial,sans-serif; }
.faq-plus { color:var(--green); font-size:27px; font-weight:400; line-height:1; transition:transform 280ms ease; }
.faq-item.is-open .faq-plus { transform:rotate(45deg); }
.faq-answer { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows 320ms ease,opacity 240ms ease; }
.faq-item.is-open .faq-answer { grid-template-rows:1fr; opacity:1; }
.faq-answer-inner { min-height:0; overflow:hidden; }
.faq-answer-inner p { margin:0 0 24px; font-size:16px; line-height:1.75; color:var(--muted); max-width:780px; }
.service-faqs { padding-top:70px; padding-bottom:70px; }
.service-faq-group { margin-top:42px; }
.service-faq-group>h3 { font-size:24px; margin-bottom:22px; }
.locations-grid address,.location-row address { font-style:normal; font-size:15px; line-height:1.7; color:var(--muted); margin-top:18px; }
@media(prefers-reduced-motion:reduce) { .faq-answer,.faq-plus { transition:none; } }

.site-footer{background:#050807;color:#f5f8f6;padding-top:75px;padding-bottom:28px;margin-top:30px;}
.site-footer .footer-grid{display:grid;grid-template-columns:1.65fr .8fr 1fr 1.05fr;gap:45px;}
.site-footer h2,.site-footer h3{color:#fff;letter-spacing:-.4px;line-height:1.35;}
.site-footer h2{font-size:22px;margin:0 0 25px;}
.site-footer h3{font-size:19px;margin:30px 0 18px;}
.site-footer p,.site-footer a,.site-footer address{font-size:15px;line-height:1.8;}
.site-footer p,.site-footer address{color:#c2cdc7;}
.site-footer .footer-contact>p{margin:0 0 26px;}
.site-footer nav>a{display:block;margin-bottom:9px;text-decoration:none;}
.site-footer a{color:#edf4f0;text-decoration:none;transition:color .15s;}
.site-footer a:hover{color:var(--lime);}
.site-footer .footer-email{overflow-wrap:anywhere;}
.site-footer .footer-locations h3{font-size:15px;margin:25px 0 7px;color:var(--lime);}
.site-footer address{font-style:normal;}
.site-footer .footer-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;}
.site-footer .footer-form label{display:flex;flex-direction:column;gap:8px;font-size:13px;min-width:0;}
.site-footer .footer-form .footer-message{grid-column:1/-1;}
.site-footer .footer-form label small{color:#a9b8af;font-size:12px;}
.site-footer .footer-form input,.site-footer .footer-form textarea{width:100%;min-width:0;border:1px solid #414a45;background:#202622;border-radius:22px;padding:13px 16px;color:white;font:400 14px/1.5 Manrope,Arial,sans-serif;}
.site-footer .footer-form textarea{resize:vertical;min-height:50px;}
.site-footer .footer-form input::placeholder,.site-footer .footer-form textarea::placeholder{color:#b9c5bd;opacity:1;}
.site-footer :focus-visible{outline:2px solid var(--lime);outline-offset:4px;}
.site-footer .footer-form button{grid-column:1/-1;border:0;border-radius:999px;padding:16px;background:var(--lime);color:#101716;font:800 15px Manrope,Arial,sans-serif;cursor:pointer;margin-top:8px;}
.site-footer .footer-form button:hover{background:#d8ff88;}
.site-footer .footer-form .footer-form-note{grid-column:1/-1;font-size:12px;line-height:1.6;margin:0;color:#a9b8af;}
.site-footer .footer-honey{display:none;}
.site-footer .footer-bottom{margin-top:55px;border-top:1px solid #29352e;padding-top:25px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.site-footer .footer-bottom>a{font-size:22px;font-weight:800;letter-spacing:-1px;}
.site-footer .footer-bottom>a span{color:var(--lime);}
.site-footer .footer-bottom p{font-size:13px;margin:0;}
.site-footer .footer-bottom small{font-size:12px;color:#a9b8af;}
@media(max-width:1050px){.site-footer .footer-grid{grid-template-columns:1.4fr 1fr;gap:40px;}}
@media(max-width:600px){.site-footer{padding-top:50px}.site-footer .footer-grid{grid-template-columns:1fr;gap:35px}.site-footer .footer-bottom{align-items:flex-start;flex-direction:column}.site-footer .footer-form input,.site-footer .footer-form textarea{font-size:16px;}}
@media(max-width:360px){.site-footer .footer-form{grid-template-columns:1fr;}}

.home-page .nav.wrap, .solutions-page .nav.wrap {
  position: sticky; top: 0; z-index: 100; max-width: none;
  padding-inline: max(28px, calc((100% - 1184px) / 2));
  background: rgba(243,244,239,.92); border-bottom: 1px solid rgba(57,123,99,.12);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
}
html { scroll-padding-top: 100px; }
.home-page .mega-item:is(:hover, :focus-visible) .mega-icon,
.solutions-page .mega-item:is(:hover, :focus-visible) .mega-icon,
.insights-dropdown a:is(:hover, :focus-visible) .insight-icon {
  background:linear-gradient(135deg, #20e2d7 0%, #f9fee5 100%);
  color:#101716;
}
.insights-dropdown { width:250px; }
.insights-dropdown::before { content:""; position:absolute; left:0; right:0; top:-18px; height:18px; }
.insights-dropdown a { display:flex; align-items:center; gap:12px; }
.insights-dropdown a:is(:hover,:focus-visible) { background:#f0f3ef; }
.insight-icon { display:grid; place-items:center; width:36px; height:36px; flex:none; border-radius:9px; background:var(--mint); color:var(--deep); font:600 12px 'DM Mono',monospace; }
.mobile-dock, .mobile-menu { display: none; }
@media (max-width: 800px) {
  body { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
  .home-page .nav.wrap, .solutions-page .nav.wrap {
    height: 76px; min-height: 76px; padding: 18px 24px; justify-content: center; flex-wrap: nowrap;
  }
  .home-page .nav .links, .solutions-page .nav .links { display: none; }
  .nav .brand-logo { width: 190px; }
  .mobile-dock {
    position: fixed; z-index: 150; bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: space-between;
    width: min(360px, calc(100% - 32px)); padding: 10px; border-radius: 999px;
    background: linear-gradient(135deg, #ffffff20, #ffffff03 48%, #ffffff12), rgba(16,23,22,.42);
    color: #fff; border: 1px solid rgba(255,255,255,.4);
    box-shadow: 0 12px 40px #0004, inset 0 1px 1px #ffffff66, inset 0 -1px 1px #ffffff1a;
    -webkit-backdrop-filter: blur(22px) saturate(180%); backdrop-filter: blur(22px) saturate(180%);
    transition: width 650ms cubic-bezier(.22,1,.36,1), padding 650ms cubic-bezier(.22,1,.36,1), box-shadow 650ms ease;
  }
  .mobile-dock.is-compact { width: min(264px, calc(100% - 32px)); padding: 4px; box-shadow: 0 8px 28px #0003, inset 0 1px 1px #ffffff66, inset 0 -1px 1px #ffffff1a; }
  .mobile-dock a, .mobile-dock button {
    display: grid; place-items: center; width: 48px; height: 48px; flex-shrink: 0;
    border: 0; border-radius: 50%; background: transparent; color: #fff; cursor: pointer;
    transition: width 650ms cubic-bezier(.22,1,.36,1), height 650ms cubic-bezier(.22,1,.36,1);
  }
  .mobile-dock.is-compact :is(a,button) { width:44px; height:44px; }
  .mobile-dock svg { filter:drop-shadow(0 1px 2px #0008); transition:transform 650ms cubic-bezier(.22,1,.36,1); }
  .mobile-dock.is-compact svg { transform:scale(.92); }
  .mobile-dock .dock-home svg { filter:none; }
  @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
    .mobile-dock { background:rgba(16,23,22,.88); }
  }
  .mobile-dock .dock-home { background: #c8ff52; color: #101716; }
  .mobile-dock :is(a,button):hover { background: #ffffff26; color: #c8ff52; }
  .mobile-dock :is(a,button):focus-visible { outline-color: #c8ff52; outline-offset: 1px; }
  .mobile-menu[open] {
    display: block; position: fixed; inset: auto 12px calc(16px + env(safe-area-inset-bottom, 0px));
    margin: 0 auto; width: min(480px, calc(100% - 24px)); max-height: calc(100dvh - 110px);
    padding: 0; border: 1px solid #ffffff40; border-radius: 28px; color: #fff;
    background: rgba(16,23,22,.94); -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px);
    box-shadow: 0 24px 70px #0005; overflow-y: auto; overscroll-behavior: contain;
  }
  .mobile-menu::backdrop { background: #07151066; backdrop-filter: blur(4px); }
  .mobile-menu-content { padding: 24px; }
  .mobile-menu-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .mobile-menu .mobile-menu-heading h2 { margin: 0; font-size: 22px; color: #fff; }
  .mobile-menu-heading button { width: 44px; height: 44px; border: 1px solid #ffffff40; border-radius: 50%; background: #ffffff12; color: #fff; font-size: 28px; cursor: pointer; }
  .mobile-menu nav > a { display: block; padding: 14px 0; font-weight: 800; color: #fff; text-decoration: none; }
  .mobile-menu-sub { padding-left: 14px; border-left: 1px solid #c8ff5266; }
  .mobile-menu-sub a { display: flex; align-items: center; min-height: 44px; font-size: 14px; color: #d5e7de; text-decoration: none; }
  .mobile-menu nav a:hover { color: #c8ff52; }
  .mobile-menu nav .mobile-menu-contact { margin-top: 12px; border-radius: 999px; background: #c8ff52; color: #101716; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .mobile-dock, .mobile-dock :is(a,button,svg) { transition: none; } }

.display-controls { position:fixed; right:24px; bottom:90px; z-index:120; display:flex; flex-direction:column; gap:10px; }
.display-controls button { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:var(--paper); box-shadow:0 5px 20px #0002; cursor:pointer; transition:transform 180ms ease; }
.display-controls button:hover { transform:translateY(-3px); }
.display-controls .desktop-top { background:var(--lime); color:#101716; }
@media(prefers-reduced-motion:no-preference) {
  body { transition:background-color 280ms ease,color 280ms ease; }
  .pill { transition:background-color 200ms ease,color 200ms ease,box-shadow 200ms ease; }
}
@media(max-width:800px) { .display-controls { top:16px; right:12px; bottom:auto; z-index:110; } .display-controls .desktop-top { display:none; } .display-controls button { width:42px; height:42px; } }
html[data-theme="dark"] { color-scheme:dark; --ink:#ecf4ef; --muted:#b1c3bb; --paper:#101916; --line:#364c42; --mint:#243f34; --green:#8dd9b4; }
html[data-theme="dark"] :is(.home-page,.solutions-page) .nav.wrap { background:#101916ed; }
html[data-theme="dark"] .brand-logo { background:#fff; border-radius:6px; padding:4px; }
html[data-theme="dark"] h1 { background-image:linear-gradient(110deg,#f4fff8 12%,#b2e6c9 55%,#80cc9e 100%); }
html[data-theme="dark"] :is(.mega,.insights-dropdown,.company-card,.enquiry-form,.service,.engagement-card,.mobile-menu) { background:#192820; color:var(--ink); }
html[data-theme="dark"] :is(.home-page,.solutions-page) .pill { background:var(--lime); color:#101716; }
html[data-theme="dark"] :is(.home-page .faq,.solutions-page .service-faqs,.landing-page .landing-faq) { background:var(--paper); box-shadow:0 0 0 100vmax var(--paper); }
html[data-theme="dark"] .home-page .cta-surround { background:var(--paper); }
html[data-theme="dark"] :is(.cta,.company-cta,.outcome-card) { color:#101716; }
html[data-theme="dark"] :is(.cta,.company-cta,.outcome-card) :is(h2,h3,p,li) { color:#101716; }
html[data-theme="dark"] :is(.cta,.company-cta) .pill { background:#101716; color:#fff; }
html[data-theme="dark"] :is(.enquiry-form input,.enquiry-form select,.enquiry-form textarea) { background:#101916; color:#ecf4ef; border-color:var(--line); }
html[data-theme="dark"] :is(.mega-item,.insights-dropdown a):is(:hover,:focus-visible) { background:#2a4035; }
html[data-theme="dark"] :is(.mega-icon,.insight-icon,.project-status) { color:#c8ff52; }
html[data-theme="dark"] :is(.mega-item,.insights-dropdown a):is(:hover,:focus-visible) :is(.mega-icon,.insight-icon) { color:#101716; }
html[data-theme="dark"] :is(.service.cto,.engine-card) { background:#17352f; }
html[data-theme="dark"] :is(.process,.engage,.delivery-section) { background:#0a120e; }
html[data-theme="dark"] .outcome-icon { background:#101716; }
html[data-theme="dark"] .home-page .portfolio { background:#17291f; }
html[data-theme="dark"] :is(.home-page,.solutions-page) .work { background:#21382c; border-color:#405b4b; color:#ecf4ef; }
html[data-theme="dark"] :is(.home-page,.solutions-page) .work h3 { color:#ecf4ef; }
html[data-theme="dark"] :is(.home-page,.solutions-page) .work p { color:#c0d1c7; }
html[data-theme="dark"] :is(.home-page,.solutions-page) .work .tag { color:#a2e7bd; }
@media(prefers-reduced-motion:reduce) { .display-controls button { transition:none; } }
@media print { .display-controls { display:none; } }
