:root{--ink:#121b2d;--forest:#062b5a;--forest2:#0066c7;--orange:#ff5a1f;--cream:#fffaf2;--muted:#68758a;--line:#e9e6e1}

    a {
      color: inherit;
      text-decoration: none
    }

    .wrap {
      width: min(var(--max), calc(100% - 56px));
      margin: auto
    }

    .topbar {
      height: 34px;
      background: var(--forest);
      color: #dce6f0;
      font-size: 15px
    }

    .topbar .wrap {
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between
    }

    .nav {
      height: 78px;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: relative;
      z-index: 5;
      box-shadow: 0 2px 18px #064a940a
    }

    .logo {
      display: flex;
      gap: 9px;
      align-items: center;
      font: 800 19px var(--display);
      letter-spacing: -.06em;
      color: var(--forest)
    }

    .logo-mark {
      display: grid;
      place-items: center;
      width: 38px;
      height: 38px;
      background: var(--orange);
      border-radius: 50%;
      color: #fff;
      font: 800 16px var(--display)
    }

    .logo small {
      display: block;
      font: 700 10px var(--sans);
      letter-spacing: .16em;
      color: #718096;
      margin-top: 3px
    }

    .navlinks {
      display: flex;
      gap: 25px;
      align-items: center;
      font-size: 15px;
      font-weight: 700
    }

    .navlinks a:hover,
    .navlinks .current {
      color: var(--orange)
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      background: var(--orange);
      color: #fff;
      font-size: 15px;
      font-weight: 800;
      letter-spacing: .025em;
      padding: 12px 17px;
      border: 0;
      border-radius: 30px;
      box-shadow: 0 6px 15px #ff5a1f2b;
      transition: transform .2s
    }

    .btn:hover {
      transform: translateY(-2px)
    }

    .btn .arrow {
      display: grid;
      place-items: center;
      background: #fff;
      color: var(--orange);
      width: 25px;
      height: 25px;
      border-radius: 50%;
      font-size: 16px
    }

    .menu-btn {
      display: none;
      border: 0;
      background: transparent;
      color: var(--forest);
      font-size: 24px
    }

    .page-hero {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      background: var(--forest);
      color: #fff;
      padding: 92px 0 104px
    }

    .page-hero:before {
      content: '';
      position: absolute;
      z-index: -2;
      inset: 0;
      background: url('../images/project-civil-infrastructure.jpg') center 45%/cover;
      opacity: .42
    }

    .page-hero:after {
      content: '';
      position: absolute;
      z-index: -1;
      inset: 0;
      background: linear-gradient(90deg, rgba(5, 23, 52, .95), rgba(10, 48, 103, .8))
    }

    .crumb {
      font-size: 15px;
      color: #d2deed
    }

    .crumb a {
      color: #fff
    }

    .crumb span {
      color: var(--orange);
      padding: 0 9px
    }

    .page-hero h1 {
      font: 800 clamp(42px, 6vw, 72px)/1.05 var(--display);
      letter-spacing: -.06em;
      margin: 19px 0 13px
    }

    .page-hero h1 em {
      font-style: normal;
      color: #ff7a1f
    }

    .page-hero p {
      font-size: 17px;
      line-height: 1.7;
      color: #e0e9f4;
      max-width: 700px;
      margin: 0
    }

    section {
      padding: 85px 0
    }

    .eyebrow {
      font-size: 15px;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--orange)
    }

    .intro-grid {
      display: grid;
      grid-template-columns: .92fr 1.08fr;
      align-items: center;
      gap: 62px
    }

    .intro-photo {
      position: relative;
      height: 490px;
      border-radius: 15px;
      background: url('../images/construction-planning-site.jpg') center/cover;
      box-shadow: 0 18px 46px #064a9420
    }

    .photo-caption {
      position: absolute;
      left: -18px;
      bottom: 26px;
      background: #fff;
      border-radius: 12px;
      padding: 17px 20px;
      box-shadow: 0 10px 32px #064a9422;
      font-weight: 800;
      font-size: 16px
    }

    .photo-caption span {
      display: block;
      color: var(--orange);
      font-size: 15px;
      margin-top: 4px
    }

    .intro-copy h2,
    .section-heading h2 {
      font: 800 clamp(32px, 4vw, 48px)/1.12 var(--display);
      letter-spacing: -.05em;
      margin: 12px 0 20px
    }

    .intro-copy h2 em,
    .section-heading h2 em {
      font-style: normal;
      color: var(--orange)
    }

    .intro-copy p {
      font-size: 16px;
      line-height: 1.85;
      color: var(--muted);
      margin: 0 0 15px
    }

    .about-points {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin: 25px 0
    }

    .about-point {
      display: flex;
      align-items: flex-start;
      gap: 11px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #fff
    }

    .about-point i {
      font-style: normal;
      color: var(--orange);
      font-size: 19px
    }

    .about-point strong {
      font-size: 15px;
      line-height: 1.45
    }

    .values-section {
      background: var(--cream)
    }

    .section-heading {
      text-align: center;
      max-width: 760px;
      margin: 0 auto 38px
    }

    .section-heading p {
      font-size: 16px;
      color: var(--muted);
      line-height: 1.7;
      margin: 0
    }

    .values-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px
    }

    .value-card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 28px 24px;
      box-shadow: 0 7px 24px #062b5a08
    }

    .value-icon {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      background: #fff0e9;
      color: var(--orange);
      display: grid;
      place-items: center;
      font-size: 25px;
      margin-bottom: 19px
    }

    .value-card h3 {
      font: 800 21px var(--display);
      margin: 0 0 9px
    }

    .value-card p {
      font-size: 15px;
      line-height: 1.7;
      color: var(--muted);
      margin: 0
    }

    .mission-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 22px
    }

    .mission-card {
      position: relative;
      overflow: hidden;
      min-height: 300px;
      padding: 36px;
      border-radius: 16px;
      background: var(--forest);
      color: #fff
    }

    .mission-card:nth-child(2) {
      background: var(--orange)
    }

    .mission-card:after {
      content: attr(data-mark);
      position: absolute;
      right: 14px;
      bottom: -42px;
      font: 800 180px/1 var(--display);
      opacity: .09
    }

    .mission-card span {
      display: inline-grid;
      place-items: center;
      width: 52px;
      height: 52px;
      border-radius: 50%;
      background: #ffffff21;
      font-size: 25px
    }

    .mission-card>span i {
      font-size: 27px
    }

    .mission-card h3 {
      font: 800 28px var(--display);
      margin: 21px 0 10px
    }

    .mission-card p {
      font-size: 16px;
      line-height: 1.7;
      color: #e9eff7;
      max-width: 440px;
      margin: 0
    }

    .capability-section {
      background: #fff
    }

    .capability-grid {
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      gap: 55px;
      align-items: center
    }

    .capability-photo {
      height: 385px;
      border-radius: 15px;
      background: url('../images/project-commercial-building.jpg') center/cover
    }

    .capability-copy h2 {
      font: 800 clamp(31px, 3.8vw, 45px)/1.12 var(--display);
      letter-spacing: -.05em;
      margin: 11px 0 17px
    }

    .capability-copy h2 em {
      font-style: normal;
      color: var(--orange)
    }

    .capability-copy p {
      font-size: 16px;
      line-height: 1.8;
      color: var(--muted)
    }

    .capability-list {
      display: grid;
      gap: 12px;
      margin: 23px 0 27px
    }

    .capability-list div {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      font-size: 15px;
      line-height: 1.55
    }

    .capability-list b {
      color: var(--orange);
      font-size: 18px
    }

    .closing-cta {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      background: var(--forest);
      color: #fff;
      padding: 65px 0
    }

    .closing-cta:before {
      content: '';
      position: absolute;
      z-index: -1;
      inset: 0;
      background: linear-gradient(90deg, rgba(5, 23, 52, .96), rgba(10, 48, 103, .86)), url('../images/project-civil-infrastructure.jpg') center/cover
    }

    .cta-inner {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 25px
    }

    .cta-inner h2 {
      font: 800 clamp(29px, 4vw, 43px)/1.12 var(--display);
      margin: 9px 0
    }

    .cta-inner p {
      font-size: 16px;
      color: #dce6f0;
      margin: 0
    }

    .footer {
      background: #06244c;
      color: #fff;
      padding: 54px 0 20px
    }

    .footer-main {
      display: grid;
      grid-template-columns: 1.2fr .8fr 1fr 1fr;
      gap: 30px;
      padding-bottom: 40px
    }

    .footer .logo {
      color: #fff
    }

    .footer .logo-mark {
      background: transparent;
      border: 1px solid var(--orange);
      color: var(--orange)
    }

    .footer .logo small {
      color: #d5e1ef
    }

    .footer p {
      font-size: 15px;
      line-height: 1.7;
      color: #d5e1ef
    }

    .footer h4 {
      font: 800 19px var(--display);
      margin: 3px 0 18px;
      padding-bottom: 13px;
      border-bottom: 1px solid #ffffff55
    }

    .footer-links {
      display: grid;
      gap: 11px
    }

    .footer-links a {
      font-size: 15px;
      color: #e2eaf3
    }

    .footer-links a:hover {
      color: var(--orange)
    }

    .footer-contact {
      display: grid;
      gap: 14px
    }

    .footer-contact a {
      font-size: 15px;
      color: #e2eaf3
    }

    .footer-contact b {
      display: block;
      color: var(--orange);
      margin-bottom: 4px
    }

    .footer-bottom {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      padding: 17px 22px;
      border: 1px solid #ffffff80;
      border-radius: 40px;
      color: #e4ebf4;
      font-size: 15px
    }

    .footer-bottom a {
      color: #fff
    }

    .footer-bottom i {
      color: var(--orange);
      font-style: normal;
      margin: 0 8px
    }

    @media(max-width:900px) {
      .navlinks {
        gap: 14px
      }

      .navlinks a {
        font-size: 15px
      }

      .intro-grid,
      .capability-grid {
        gap: 32px
      }

      .intro-photo {
        height: 420px
      }

      .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 30px
      }
    }

    @media(max-width:650px) {
      .wrap {
        width: calc(100% - 36px)
      }

      .topbar {
        font-size: 15px
      }

      .topbar .wrap span:last-child {
        display: none
      }

      .nav {
        height: 68px
      }

      .logo {
        font-size: 17px
      }

      .logo-mark {
        width: 34px;
        height: 34px
      }

      .menu-btn {
        display: block
      }

      .navlinks {
        display: none;
        position: absolute;
        top: 68px;
        left: 0;
        right: 0;
        background: #062b5a;
        padding: 18px;
        flex-direction: column;
        align-items: stretch;
        gap: 15px
      }

      .navlinks.open {
        display: flex
      }

      .navlinks a {
        color: #fff;
        font-size: 15px
      }

      .navlinks .btn {
        display: inline-flex;
        align-self: flex-start
      }

      .nav>.btn {
        display: none
      }

      .page-hero {
        padding: 67px 0 76px
      }

      .page-hero h1 {
        font-size: 44px
      }

      .page-hero p {
        font-size: 16px
      }

      section {
        padding: 60px 0
      }

      .intro-grid,
      .capability-grid {
        grid-template-columns: 1fr;
        gap: 30px
      }

      .intro-photo {
        height: 330px;
        margin: 0 0 12px 12px
      }

      .intro-copy h2,
      .section-heading h2,
      .capability-copy h2 {
        font-size: 33px
      }

      .intro-copy p,
      .section-heading p,
      .capability-copy p {
        font-size: 15px
      }

      .about-points {
        gap: 9px
      }

      .about-point {
        padding: 11px
      }

      .about-point strong {
        font-size: 15px
      }

      .values-grid {
        grid-template-columns: 1fr;
        gap: 12px
      }

      .value-card {
        padding: 23px
      }

      .value-card h3 {
        font-size: 20px
      }

      .value-card p {
        font-size: 15px
      }

      .section-heading {
        margin-bottom: 27px
      }

      .mission-grid {
        grid-template-columns: 1fr;
        gap: 14px
      }

      .mission-card {
        min-height: 240px;
        padding: 27px
      }

      .mission-card>span i {
        font-size: 27px
      }

      .mission-card h3 {
        font-size: 24px
      }

      .mission-card p {
        font-size: 15px
      }

      .capability-photo {
        height: 270px
      }

      .capability-list div {
        font-size: 15px
      }

      .cta-inner {
        align-items: flex-start;
        flex-direction: column
      }

      .cta-inner p {
        font-size: 15px
      }

      .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 25px 17px
      }

      .footer-brand {
        grid-column: 1/-1
      }

      .footer h4 {
        font-size: 17px
      }

      .footer-bottom {
        border-radius: 16px;
        flex-direction: column;
        padding: 14px;
        font-size: 15px
      }
    }

.about-company {
      background: #062b5a;
      color: #fff;
      padding: 88px 0 92px
    }

    .about-company-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 58px;
      align-items: start
    }

    .about-company .eyebrow {
      font-size: 15px;
      letter-spacing: .08em
    }

    .about-company-left h2 {
      font: 800 clamp(34px, 4vw, 49px)/1.08 var(--display);
      letter-spacing: -.045em;
      text-transform: uppercase;
      margin: 17px 0 15px
    }

    .about-company h2 em {
      font-style: normal;
      color: var(--orange)
    }

    .about-company p {
      font-size: 15px;
      line-height: 1.7;
      color: #c1c4c3;
      margin: 0 0 14px
    }

    .about-company .about-lead {
      max-width: 510px;
      margin-bottom: 20px
    }

    .about-company-photo {
      width: 100%;
      border-radius: 22px;
      background-position: center;
      background-size: cover
    }

    .about-photo-team {
      height: 310px;
      background-image: url('../images/construction-team-site.jpg');
      margin: 20px 0 22px
    }

    .work-heading {
      font: 800 clamp(26px, 3vw, 34px)/1.1 var(--display);
      text-transform: uppercase;
      margin: 0 0 13px
    }

    .work-list {
      list-style: none;
      display: grid;
      gap: 9px;
      margin: 16px 0 0;
      padding: 0
    }

    .work-list li {
      position: relative;
      padding-left: 22px;
      color: #e1e3e2;
      font-size: 15px;
      line-height: 1.5
    }

    .work-list li:before {
      content: '✓';
      position: absolute;
      left: 0;
      top: 0;
      color: var(--orange);
      font-weight: 800
    }

    .about-company-right {
      padding-top: 0
    }

    .focus-panel {
      margin: 24px 0 22px;
      padding: 25px 27px 12px;
      border-radius: 24px;
      background: #fff;
      color: #121b2d;
      box-shadow: 0 14px 36px #0002
    }

    .focus-panel-heading {
      padding-bottom: 12px;
      border-bottom: 1px solid #e9e6e1
    }

    .focus-panel-heading>span {
      font-size: 15px;
      font-weight: 800;
      letter-spacing: .1em;
      color: var(--orange)
    }

    .focus-panel-heading>h3 {
      font: 800 23px/1.2 var(--display);
      margin: 7px 0 5px
    }

    .focus-panel-heading>p {
      font-size: 15px;
      color: #68758a;
      margin: 0
    }

    .focus-row {
      display: grid;
      grid-template-columns: 38px 1fr 24px;
      gap: 12px;
      align-items: center;
      padding: 15px 0;
      border-bottom: 1px solid #e9e6e1
    }

    .focus-row:last-child {
      border-bottom: 0
    }

    .focus-index {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: #fff0e9;
      color: var(--orange);
      display: grid;
      place-items: center;
      font: 800 15px var(--display)
    }

    .focus-row strong,
    .focus-row div span {
      display: block
    }

    .focus-row strong {
      font: 800 16px var(--display);
      color: #121b2d
    }

    .focus-row div span {
      font-size: 15px;
      line-height: 1.45;
      color: #68758a;
      margin-top: 4px
    }

    .focus-check {
      width: 23px;
      height: 23px;
      border-radius: 50%;
      background: var(--orange);
      color: white;
      display: grid;
      place-items: center;
      font-size: 14px;
      font-weight: 800
    }

    .about-photo-site {
      height: 355px;
      background-image: url('../images/project-civil-infrastructure.jpg')
    }

    @media(max-width:800px) {
      .about-company-grid {
        gap: 32px
      }

      .about-photo-team {
        height: 260px
      }

      .about-photo-site {
        height: 290px
      }
    }

    @media(max-width:650px) {
      .about-company {
        padding: 62px 0
      }

      .about-company-grid {
        grid-template-columns: 1fr;
        gap: 34px
      }

      .about-company-left h2 {
        font-size: 36px
      }

      .about-company p,
      .work-list li {
        font-size: 15px
      }

      .about-photo-team {
        height: 245px
      }

      .work-heading {
        font-size: 27px
      }

      .focus-panel {
        padding: 20px 17px;
        border-radius: 20px
      }

      .focus-panel-heading>h3 {
        font-size: 21px
      }

      .focus-row {
        grid-template-columns: 32px 1fr 22px;
        gap: 9px;
        padding: 13px 0
      }

      .focus-index {
        width: 30px;
        height: 30px
      }

      .focus-row strong {
        font-size: 15px
      }

      .focus-row div span {
        font-size: 15px
      }

      .focus-check {
        width: 21px;
        height: 21px
      }

      .about-photo-site {
        height: 250px
      }
    }

.topbar {
      display: none
    }

    .nav {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      z-index: 10;
      width: 100%;
      max-width: none;
      margin: 0;
      height: 72px;
      padding: 0 max(8.5%, calc((100% - 1240px)/2));
      background: rgba(9, 13, 13, .2);
      box-shadow: none;
      color: #fff
    }

    .nav .logo {
      font-size: 24px;
      color: #ff5a1f
    }

    .nav .logo-mark {
      width: 38px;
      height: 38px;
      background: transparent;
      border: 1px solid #ff5a1f;
      color: #ff5a1f;
      font-size: 16px
    }

    .nav .logo small {
      display: none
    }

    .navlinks {
      gap: 28px;
      color: #fff;
      font-size: 12px
    }

    .navlinks a {
      color: #fff
    }

    .navlinks a:first-child {
      color: var(--orange)
    }

    .navlinks a:first-child {
      color: #fff
    }

    .navlinks a.current {
      color: var(--orange)
    }

    .navlinks .btn {
      display: none
    }

    .nav>.btn {
      background: var(--orange);
      padding: 9px 10px 9px 18px;
      border-radius: 30px;
      min-width: 142px;
      justify-content: space-between
    }

    .nav>.btn .arrow {
      width: 29px;
      height: 29px;
      background: white;
      color: var(--orange)
    }

    @media(max-width:850px) {
      .nav {
        padding: 0 24px
      }

      .navlinks {
        gap: 17px
      }

      .navlinks a {
        font-size: 15px
      }

      .navlinks .btn {
        display: flex;
        justify-content: space-between;
        margin-top: 12px
      }

      .navlinks {
        z-index: 11
      }
    }

    @media(max-width:600px) {
      .nav {
        height: 64px;
        padding: 0 17px
      }

      .nav .logo {
        font-size: 19px
      }

      .nav .logo-mark {
        width: 32px;
        height: 32px
      }

      .navlinks {
        top: 64px;
        background: #062b5a;
        color: #fff
      }

      .navlinks a {
        color: #fff
      }

      .navlinks a:first-child {
        color: var(--orange)
      }

      .navlinks .btn {
        display: flex
      }
    }

    .footer-reference {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      background: #06244c;
      color: #fff;
      padding: 65px 0 22px
    }

    .footer-reference:before {
      content: '';
      position: absolute;
      z-index: -1;
      inset: 0;
      background: linear-gradient(90deg, rgba(5, 23, 52, .96), rgba(10, 48, 103, .91)), url('../images/project-civil-infrastructure.jpg') center/cover
    }

    .footer-reference .footer-main {
      display: grid;
      grid-template-columns: 1.1fr .8fr 1.1fr 1fr;
      gap: 35px;
      padding: 0 0 52px
    }

    .footer-reference .footer-brand-col {
      padding-right: 10px
    }

    .footer-reference .logo {
      color: #fff;
      font-size: 23px
    }

    .footer-reference .logo-mark {
      border-color: var(--orange);
      color: var(--orange)
    }

    .footer-reference .logo small {
      color: #d5e1ef
    }

    .footer-reference .footer-copy,
    .footer-reference .footer-cta-column>p {
      font-size: 15px;
      line-height: 1.65;
      color: #d5e1ef;
      margin: 18px 0 20px
    }

    .footer-reference .footer-column h4 {
      color: #fff;
      font: 800 20px var(--display);
      font-size: 20px;
      margin: 4px 0 22px;
      padding-bottom: 16px;
      border-bottom: 1px solid #ffffff55
    }

    .footer-reference .footer-links {
      display: grid;
      gap: 12px
    }

    .footer-reference .footer-links a {
      position: relative;
      padding-left: 20px;
      color: #e2eaf3;
      font-size: 15px
    }

    .footer-reference .footer-links a:before {
      content: '↗';
      position: absolute;
      left: 0;
      color: var(--orange);
      font-weight: 800
    }

    .footer-reference .footer-socials {
      display: flex;
      gap: 9px
    }

    .footer-reference .footer-socials a {
      width: 39px;
      height: 39px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: var(--orange);
      color: white;
      font-size: 17px;
      font-weight: 800
    }

    .footer-reference .footer-contact-list {
      display: grid;
      gap: 17px
    }

    .footer-reference .footer-contact-list>a {
      display: flex;
      align-items: center;
      gap: 13px;
      color: #fff
    }

    .footer-reference .footer-contact-list>a>span:first-child {
      flex: 0 0 44px;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--orange);
      display: grid;
      place-items: center;
      font-size: 20px
    }

    .footer-reference .footer-contact-list strong,
    .footer-reference .footer-contact-list small {
      display: block
    }

    .footer-reference .footer-contact-list strong {
      font: 800 16px var(--display);
      color: var(--orange);
      margin-bottom: 4px
    }

    .footer-reference .footer-contact-list small {
      font-size: 15px;
      color: #e2eaf3
    }

    .footer-reference .footer-enquiry-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 15px;
      border: 1px solid #ffffff9c;
      border-radius: 30px;
      padding: 9px 10px 9px 18px;
      color: #fff;
      font-size: 15px;
      font-weight: 700
    }

    .footer-reference .footer-enquiry-link span {
      width: 39px;
      height: 39px;
      border-radius: 50%;
      background: var(--orange);
      display: grid;
      place-items: center;
      font-size: 20px
    }

    .footer-reference .footer-bottom {
      min-height: 68px;
      border: 1px solid #ffffff80;
      border-radius: 50px;
      padding: 15px 24px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 15px;
      color: #e4ebf4;
      font-size: 15px
    }

    .footer-reference .footer-bottom>span:last-child {
      display: flex;
      align-items: center;
      gap: 10px
    }

    .footer-reference .footer-bottom a {
      color: #fff
    }

    .footer-reference .footer-bottom i {
      font-style: normal;
      color: var(--orange)
    }

    @media(max-width:850px) {
      .footer-reference .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 35px 28px
      }
    }

    @media(max-width:600px) {
      .footer-reference {
        padding: 49px 0 18px
      }

      .footer-reference .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 29px 19px;
        padding-bottom: 33px
      }

      .footer-reference .footer-brand-col {
        grid-column: 1/-1
      }

      .footer-reference .footer-column h4 {
        font-size: 17px;
        margin-bottom: 15px;
        padding-bottom: 12px
      }

      .footer-reference .footer-copy,
      .footer-reference .footer-cta-column>p {
        font-size: 15px;
        margin: 13px 0 16px
      }

      .footer-reference .footer-links {
        gap: 10px
      }

      .footer-reference .footer-links a {
        font-size: 15px;
        padding-left: 16px
      }

      .footer-reference .footer-contact-list {
        gap: 13px
      }

      .footer-reference .footer-contact-list>a {
        gap: 9px
      }

      .footer-reference .footer-contact-list>a>span:first-child {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        font-size: 17px
      }

      .footer-reference .footer-contact-list strong,
      .footer-reference .footer-contact-list small {
        font-size: 15px
      }

      .footer-reference .footer-enquiry-link {
        font-size: 15px;
        padding-left: 12px
      }

      .footer-reference .footer-enquiry-link span {
        width: 34px;
        height: 34px
      }

      .footer-reference .footer-bottom {
        border-radius: 18px;
        padding: 15px;
        align-items: flex-start;
        flex-direction: column;
        font-size: 15px
      }
    }

.logo {
      background: #fff;
      border-radius: 9px;
      padding: 3px 8px;
      min-width: 164px;
      min-height: 66px;
      justify-content: center
    }

    .logo-image {
      display: block;
      width: 148px;
      max-height: 60px;
      object-fit: contain
    }

    .nav .logo {
      background: #fff
    }

    .footer-reference .logo {
      background: #fff;
      padding: 4px 9px;
      min-width: 185px;
      min-height: 74px
    }

    .footer-reference .logo-image {
      width: 167px;
      max-height: 66px
    }

    .btn {
      box-shadow: 0 6px 15px #ff5a1f2b
    }

    @media(max-width:600px) {
      .nav .logo {
        min-width: 145px;
        min-height: 59px;
        padding: 3px 6px
      }

      .nav .logo-image {
        width: 132px;
        max-height: 53px
      }

      .footer-reference .logo {
        min-width: 164px;
        min-height: 66px
      }

      .footer-reference .logo-image {
        width: 148px;
        max-height: 59px
      }
    }

.legal-hero {
      padding: 145px 0 82px;
      background: #071a32
    }

    .legal-hero:before {
      background-image: url('../images/project-civil-infrastructure.jpg');
      background-position: center 43%;
      opacity: .32
    }

    .legal-hero:after {
      background: linear-gradient(90deg, rgba(5, 18, 39, .96), rgba(8, 35, 72, .84))
    }

    .legal-hero h1 {
      max-width: 900px
    }

    .legal-hero .legal-updated {
      margin-top: 18px;
      color: #dce6f0;
      font-size: 15px
    }

    .legal-content {
      background: #fff;
      padding: 64px 0 90px
    }

    .legal-grid {
      display: grid;
      grid-template-columns: 250px minmax(0, 1fr);
      gap: 28px;
      align-items: start
    }

    .legal-toc {
      position: sticky;
      top: 24px;
      padding: 24px 20px;
      background: var(--cream);
      border: 1px solid var(--line);
      border-radius: 14px
    }

    .legal-toc h2 {
      font: 800 18px var(--display);
      margin: 0 0 16px;
      color: var(--ink)
    }

    .legal-toc nav {
      display: grid;
      gap: 4px
    }

    .legal-toc a {
      padding: 9px 10px;
      border-radius: 8px;
      color: #344155;
      font-size: 15px;
      line-height: 1.4
    }

    .legal-toc a:hover,
    .legal-toc a:focus-visible {
      background: #fff0e9;
      color: var(--orange)
    }

    .legal-article {
      padding: 36px 42px;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 16px;
      box-shadow: 0 12px 36px #062b5a0b
    }

    .legal-intro {
      font-size: 17px;
      line-height: 1.8;
      color: #455267;
      margin: 0 0 30px;
      padding-bottom: 25px;
      border-bottom: 1px solid var(--line)
    }

    .legal-article section {
      padding: 0;
      margin: 0 0 32px;
      scroll-margin-top: 26px
    }

    .legal-article section:last-child {
      margin-bottom: 0
    }

    .legal-article h2 {
      font: 800 24px/1.25 var(--display);
      letter-spacing: -.025em;
      color: var(--ink);
      margin: 0 0 12px
    }

    .legal-article p,
    .legal-article li {
      font-size: 16px;
      line-height: 1.8;
      color: #536074
    }

    .legal-article p {
      margin: 0 0 12px
    }

    .legal-article ul {
      padding-left: 22px;
      margin: 10px 0 15px
    }

    .legal-article li {
      padding-left: 4px;
      margin: 5px 0
    }

    .legal-article a {
      color: #075cae;
      text-decoration: underline;
      text-underline-offset: 3px
    }

    .legal-callout {
      padding: 17px 19px;
      background: #fff6f0;
      border-left: 4px solid var(--orange);
      border-radius: 0 10px 10px 0;
      color: #475569;
      font-size: 15px;
      line-height: 1.7
    }

    @media(max-width:850px) {
      .legal-grid {
        grid-template-columns: 1fr
      }

      .legal-toc {
        position: static
      }

      .legal-toc nav {
        grid-template-columns: 1fr 1fr
      }

      .legal-article {
        padding: 30px
      }
    }

    @media(max-width:600px) {
      .legal-hero {
        padding: 118px 0 63px
      }

      .legal-hero h1 {
        font-size: 42px
      }

      .legal-content {
        padding: 35px 0 58px
      }

      .legal-toc {
        padding: 19px 15px
      }

      .legal-toc nav {
        grid-template-columns: 1fr
      }

      .legal-article {
        padding: 23px 18px;
        border-radius: 12px
      }

      .legal-article h2 {
        font-size: 21px
      }

      .legal-article p,
      .legal-article li {
        font-size: 15px
      }

      .legal-intro {
        font-size: 16px
      }
    }

/* Shared tablet navigation and footer layout */
@media (min-width: 601px) and (max-width: 1024px) {
  .nav { height: 72px; padding: 0 28px; }
  .nav .menu-btn { display: grid !important; place-items: center; width: 46px; height: 46px; margin-left: auto; position: relative; z-index: 13; border: 1px solid #ffffff60; border-radius: 50%; color: #fff; background: #062b5a; cursor: pointer; }
  .nav .navlinks { display: none !important; position: absolute; top: 72px; left: 22px; right: 22px; z-index: 12; padding: 12px 20px 18px; flex-direction: column; align-items: stretch; gap: 0; color: #fff; background: #062b5a; border: 1px solid #ffffff24; border-radius: 0 0 16px 16px; box-shadow: 0 18px 36px #071b3370; }
  .nav .navlinks.open { display: flex !important; }
  .nav .navlinks a { padding: 14px 2px; color: #fff; border-bottom: 1px solid #ffffff25; }
  .nav .navlinks .btn { display: flex; justify-content: space-between; margin-top: 12px; padding: 10px 12px 10px 18px; border: 0; border-radius: 40px; background: var(--orange); }
  .nav > .btn { display: none; }
  .footer-reference .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 28px; }
  .footer-reference .footer-brand-col, .footer-reference .footer-cta-column { grid-column: 1 / -1; }
  .footer-reference .footer-brand-col, .footer-reference .footer-column { min-width: 0; }
  .footer-reference .footer-bottom { align-items: flex-start; flex-wrap: wrap; border-radius: 20px; gap: 12px 22px; }
  .footer-reference .footer-bottom > span:last-child { flex-wrap: wrap; }
}

/* Shared phone navigation and footer corrections */
@media (max-width: 600px) {
  .nav .menu-btn { display: grid !important; place-items: center; width: 42px; height: 42px; border: 1px solid #ffffff60; border-radius: 50%; background: #062b5a; color: #fff; font-size: 19px; }
  .nav .navlinks { display: none !important; top: 66px; left: 12px; right: 12px; padding: 10px 18px 16px; border: 1px solid #ffffff24; border-radius: 0 0 15px 15px; background: #062b5a; box-shadow: 0 16px 34px #071b3370; }
  .nav .navlinks.open { display: flex !important; }
  .nav .navlinks a { color: #fff; font-size: 15px; }
  .nav .navlinks .btn { display: flex; }
  .nav > .btn { display: none; }
  .footer-reference { padding: 48px 0 18px; }
  .footer-reference .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 27px 16px; padding-bottom: 30px; }
  .footer-reference .footer-brand-col, .footer-reference .footer-cta-column { grid-column: 1 / -1; }
  .footer-reference .footer-brand-col, .footer-reference .footer-column { min-width: 0; }
  .footer-reference .footer-bottom { min-height: 0; align-items: flex-start; flex-direction: column; flex-wrap: wrap; gap: 10px; padding: 15px; border-radius: 16px; font-size: 13px; line-height: 1.5; }
  .footer-reference .footer-bottom > span:last-child { flex-wrap: wrap; gap: 6px 8px; }
  .footer-reference .footer-contact-list > a > span:last-child { min-width: 0; overflow-wrap: anywhere; }
}

@media (max-width: 600px) { .nav { height: 66px; } }


/* Keep phone footers in a clear, readable single-column flow. */
@media (max-width: 600px) {
  .footer-reference .footer-main { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .footer-reference .footer-brand-col, .footer-reference .footer-column, .footer-reference .footer-cta-column { grid-column: auto; min-width: 0; }
  .footer-reference .footer-copy, .footer-reference .footer-cta-column > p { font-size: 15px; line-height: 1.6; }
  .footer-reference .footer-column h4 { font-size: 18px; }
  .footer-reference .footer-links a { font-size: 15px; }
  .footer-reference .footer-contact-list > a { min-width: 0; }
  .footer-reference .footer-contact-list > a > span:last-child { min-width: 0; }
  .footer-reference .footer-contact-list small { font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
  .footer-reference .footer-bottom > span:first-child { overflow-wrap: anywhere; }
}
