:root {
  --activity-navy: #092f59;
  --activity-blue: #0d477d;
  --activity-gold: #d2a135;
  --activity-ink: #152b42;
  --activity-muted: #687383;
  --activity-line: #e5e9ed;
  --activity-soft: #f4f6f8;
  --activity-shell: min(1200px, calc(100% - 64px));
  --activity-display: "Montserrat", sans-serif;
  --activity-body: "Be Vietnam Pro", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--activity-ink); background: #fff; font-family: var(--activity-body); }
body.menu-open { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.activity-shell { width: var(--activity-shell); margin-inline: auto; }
section[id] { scroll-margin-top: 74px; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 50; height: 82px; color: #fff; background: rgba(7, 42, 79, .96); border-bottom: 1px solid rgba(255, 255, 255, .12); transition: transform .28s ease, background-color .2s ease, box-shadow .2s ease; }
.site-header.is-scrolled { background: rgba(7, 42, 79, .985); box-shadow: 0 10px 28px rgba(7, 30, 57, .2); }
.site-header.is-hidden { transform: translateY(-110%); }
.header-inner { display: flex; align-items: center; height: 100%; gap: 34px; }
.activity-brand { flex: 0 0 auto; color: #fff; }
.activity-brand strong { display: block; font-family: var(--activity-display); font-size: 1.55rem; line-height: 1; letter-spacing: .03em; }
.activity-brand small { display: block; margin-top: 5px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.site-nav { display: flex; align-self: stretch; align-items: center; justify-content: center; gap: clamp(17px, 2vw, 31px); margin-left: auto; }
.site-nav a { position: relative; display: flex; align-items: center; height: 100%; color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; white-space: nowrap; }
.site-nav a::after { position: absolute; right: 0; bottom: 20px; left: 0; height: 2px; content: ""; background: var(--activity-gold); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.site-nav a:hover::after, .site-nav a.active::after { transform: scaleX(1); }
.header-cta { display: inline-flex; align-items: center; justify-content: center; min-width: 103px; min-height: 38px; padding: 0 16px; color: #fff; border: 1px solid rgba(255, 255, 255, .58); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.menu-toggle { display: none; width: 44px; height: 44px; margin-left: auto; padding: 0; color: #fff; background: transparent; border: 0; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; width: 25px; height: 2px; margin: 5px auto; content: ""; background: currentColor; transition: .2s; }

.activity-hero { position: relative; display: grid; min-height: 585px; place-items: center; overflow: hidden; color: #fff; background: var(--activity-navy); isolation: isolate; }
.activity-hero > img { position: absolute; inset: 0; z-index: -2; height: 100%; object-fit: cover; object-position: center 60%; }
.activity-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5, 34, 66, .88), rgba(7, 43, 80, .62) 47%, rgba(6, 37, 70, .45)), linear-gradient(180deg, rgba(5, 31, 58, .32), rgba(4, 27, 52, .45)); }
.activity-hero__content { padding-top: 74px; text-align: center; }
.activity-hero h1 { margin: 0; font-family: var(--activity-display); font-size: clamp(2.65rem, 5vw, 3.75rem); font-weight: 800; line-height: .98; letter-spacing: -.035em; text-transform: uppercase; text-shadow: 0 4px 20px rgba(0, 0, 0, .25); }
.activity-hero p { margin: 34px 0 0; color: #e5edf5; font-size: .82rem; line-height: 1.8; }
.hero-actions { display: flex; justify-content: center; gap: 18px; margin-top: 34px; }
.activity-button { display: inline-flex; align-items: center; justify-content: center; min-width: 181px; min-height: 47px; padding: 0 22px; font-size: .75rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.activity-button--gold { color: #fff; background: var(--activity-gold); border: 1px solid var(--activity-gold); }
.activity-button--outline { color: #fff; border: 1px solid rgba(255, 255, 255, .75); }

.activity-section { padding: 85px 0 91px; }
.activity-section:nth-of-type(odd) { background: var(--activity-soft); }
.section-heading { max-width: 940px; margin-bottom: 43px; }
.section-heading > span, .rail-copy > span, .road-copy > span { display: block; margin-bottom: 15px; color: var(--activity-gold); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.section-heading h2 { position: relative; margin: 0; padding-bottom: 17px; color: var(--activity-navy); font-family: var(--activity-display); font-size: clamp(1.75rem, 3vw, 2.72rem); font-weight: 800; line-height: 1.16; letter-spacing: -.032em; text-transform: uppercase; }
.section-heading h2::after { position: absolute; bottom: 0; left: 0; width: 62px; height: 4px; content: ""; background: var(--activity-gold); }
.section-heading p { max-width: 930px; margin: 19px 0 0; color: var(--activity-muted); font-size: .82rem; line-height: 1.85; }

.image-block { position: relative; margin: 0; overflow: hidden; background: #d7dee5; }
.image-block img { height: 100%; object-fit: cover; }
.image-block figcaption { position: absolute; bottom: 0; left: 0; min-width: 205px; padding: 12px 18px; color: #fff; background: var(--activity-navy); font-size: .75rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.road-feature { display: grid; grid-template-columns: 1.08fr .92fr; gap: 64px; align-items: stretch; }
.image-block--road { height: 344px; }
.image-block--road img { object-position: center 57%; }
.road-copy { padding-top: 6px; }
.road-copy > p, .rail-copy > p { margin: 0 0 31px; color: var(--activity-muted); font-size: .78rem; line-height: 1.9; }
.road-copy > span, .rail-copy > span { margin-bottom: 13px; }

.project-grid { display: grid; gap: 21px; margin-top: 30px; }
.project-grid--three { grid-template-columns: repeat(3, 1fr); }
.project-grid--two { grid-template-columns: repeat(2, 1fr); }
.project-card { min-height: 178px; padding: 28px 29px; background: #fff; border: 1px solid var(--activity-line); box-shadow: 0 6px 19px rgba(16, 45, 75, .035); }
.project-card h3 { margin: 0 0 9px; color: var(--activity-ink); font-size: .75rem; font-weight: 800; line-height: 1.52; text-transform: uppercase; }
.project-card strong { display: block; margin-bottom: 13px; color: var(--activity-gold); font-family: var(--activity-display); font-size: 1.04rem; line-height: 1.15; text-transform: uppercase; }
.project-card p { margin: 0; color: #7a8390; font-size: .75rem; line-height: 1.7; }
.project-card--featured { min-height: 145px; padding: 21px 23px; }

.rail-section { background: var(--activity-soft); }
.rail-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 66px; align-items: center; }
.image-block--metro { height: 352px; }
.image-block--metro img { object-position: center 48%; }
.project-card--wide { min-height: 153px; }

.industrial-section { background: #fff; }
.industrial-feature { display: grid; grid-template-columns: 1.42fr .78fr; gap: 24px; }
.image-block--industrial { height: 353px; }
.image-block--industrial figcaption { right: 0; min-width: auto; text-align: center; }
.metrics-card { padding: 31px 29px; background: var(--activity-soft); border: 1px solid var(--activity-line); }
.metrics-card h3 { margin: 0 0 26px; color: var(--activity-gold); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.metrics-card dl { margin: 0; }
.metrics-card dl div { display: grid; grid-template-columns: .92fr 1.08fr; gap: 16px; padding: 17px 0; border-bottom: 1px solid #dfe4e8; }
.metrics-card dl div:last-child { border-bottom: 0; }
.metrics-card dt { color: #7c8590; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.metrics-card dd { margin: 0; color: var(--activity-ink); font-size: .75rem; font-weight: 800; }
.industrial-section .project-card { min-height: 183px; }

.embankment-section { background: var(--activity-soft); }
.embankment-gallery { display: grid; grid-template-columns: 1fr 1.05fr; gap: 24px; }
.embankment-gallery .image-block { height: 347px; }
.embankment-gallery .image-block:first-child img { object-position: center 55%; }
.embankment-gallery .image-block:last-child img { object-position: center 64%; }
.embankment-gallery .image-block:last-child figcaption { color: #fff; background: var(--activity-gold); }
.embankment-section .project-card { min-height: 207px; }

.landscape-section { background: #fff; }
.golf-feature { position: relative; min-height: 448px; overflow: hidden; color: #fff; background: var(--activity-navy); isolation: isolate; }
.golf-feature > img { position: absolute; inset: 0; z-index: -2; height: 100%; object-fit: cover; }
.golf-feature__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(5, 39, 73, .94), rgba(5, 39, 73, .67) 47%, rgba(5, 39, 73, .12) 76%); }
.golf-feature__copy { max-width: 600px; padding: 58px 52px; }
.golf-feature__copy h3 { margin: 0 0 13px; font-family: var(--activity-display); font-size: 1.25rem; text-transform: uppercase; }
.golf-feature__copy strong { display: block; color: var(--activity-gold); font-family: var(--activity-display); font-size: 2.7rem; line-height: 1; text-transform: uppercase; }
.golf-feature__copy p { max-width: 510px; margin: 27px 0 0; color: #e0e9f0; font-size: .75rem; line-height: 1.85; }
.golf-feature > a { position: absolute; right: 50px; bottom: 47px; display: inline-flex; align-items: center; justify-content: center; min-width: 190px; min-height: 49px; padding: 0 20px; color: #fff; background: var(--activity-gold); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.landscape-note { max-width: 1000px; margin: 24px 0 0; color: var(--activity-muted); font-size: .75rem; line-height: 1.8; }

.quality-section { padding-bottom: 100px; background: var(--activity-soft); }
.quality-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 38px; }
.quality-grid article { display: grid; grid-template-columns: 28px 1fr; gap: 14px; min-height: 125px; padding: 28px 27px; background: #fff; border: 1px solid var(--activity-line); }
.quality-grid article > span { color: var(--activity-gold); font-size: 1.1rem; font-weight: 800; }
.quality-grid h3 { margin: 0 0 8px; color: var(--activity-ink); font-size: .75rem; text-transform: uppercase; }
.quality-grid p { margin: 0; color: #7c8590; font-size: .75rem; line-height: 1.65; }
.contact-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 27px; }
.contact-panel { min-height: 420px; padding: 43px 40px; color: #fff; background: var(--activity-navy); }
.contact-panel h3 { margin: 0; font-family: var(--activity-display); font-size: 1.35rem; line-height: 1.35; text-transform: uppercase; }
.contact-panel > p { margin: 32px 0 0; color: #ccd9e5; font-size: .75rem; line-height: 1.8; }
.contact-lines { display: grid; gap: 8px; margin-top: 54px; }
.contact-lines a { color: #fff; font-size: .75rem; font-weight: 700; }
.contact-lines a:first-child { margin-bottom: 10px; color: var(--activity-gold); font-family: var(--activity-display); font-size: 1.15rem; }
.request-form { min-height: 420px; padding: 35px 39px 37px; background: #fff; border: 1px solid var(--activity-line); }
.request-form h3 { margin: 0 0 25px; color: var(--activity-ink); font-size: .82rem; text-transform: uppercase; }
.request-form label { display: block; margin: 0 0 7px; color: #697481; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.request-form input, .request-form select, .request-form textarea { display: block; width: 100%; margin: 0 0 12px; padding: 0 14px; color: var(--activity-ink); background: #f2f4f6; border: 1px solid transparent; border-radius: 0; outline: 0; font-size: .75rem; }
.request-form input, .request-form select { height: 41px; }
.request-form textarea { min-height: 66px; padding-top: 12px; resize: vertical; }
.request-form input:focus, .request-form select:focus, .request-form textarea:focus { border-color: var(--activity-gold); background: #fff; }
.request-form button { display: block; min-width: 225px; height: 47px; margin-left: auto; padding: 0 23px; color: #fff; background: var(--activity-gold); border: 0; font-size: .75rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; cursor: pointer; }
.form-status { display: none; margin: -3px 0 12px; color: #188052; font-size: .75rem; }
.form-status.is-visible { display: block; }

.activity-footer { color: #fff; background: var(--activity-navy); }
.activity-footer__inner { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 54px; min-height: 118px; }
.activity-footer__inner > div { display: flex; align-items: center; gap: 18px; }
.activity-footer strong { font-family: var(--activity-display); font-size: 1.32rem; }
.activity-footer span { font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.activity-footer p { margin: 0; color: #aebed0; font-size: .75rem; }
.activity-footer small { color: #9eb0c4; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }

.reveal, .reveal-item { opacity: 0; transform: translateY(22px); transition: opacity .65s cubic-bezier(.22, 1, .36, 1), transform .65s cubic-bezier(.22, 1, .36, 1); transition-delay: var(--reveal-delay, 0s); }
.reveal.is-visible, .reveal-group.is-visible > .reveal-item { opacity: 1; transform: none; }

@media (max-width: 980px) {
  :root { --activity-shell: min(100% - 42px, 760px); }
  .site-header { height: 72px; }
  .site-nav { position: fixed; inset: 72px 0 auto; display: grid; align-content: start; height: calc(100vh - 72px); padding: 28px 24px; color: var(--activity-ink); background: #fff; transform: translateX(100%); transition: transform .24s ease; }
  .site-nav.is-open { transform: none; }
  .site-nav a { display: block; height: auto; padding: 14px 0; color: var(--activity-ink); border-bottom: 1px solid var(--activity-line); font-size: .78rem; }
  .site-nav a::after { display: none; }
  .header-cta { display: none; }
  .menu-toggle { display: block; }
  .menu-toggle.is-open span { opacity: 0; }
  .menu-toggle.is-open::before { transform: translateY(7px) rotate(45deg); }
  .menu-toggle.is-open::after { transform: translateY(-7px) rotate(-45deg); }
  .activity-hero { min-height: 540px; }
  .activity-hero__content { padding-top: 65px; }
  .road-feature, .rail-layout, .industrial-feature, .contact-layout { grid-template-columns: 1fr; gap: 27px; }
  .project-grid--three { grid-template-columns: repeat(2, 1fr); }
  .image-block--road, .image-block--metro, .image-block--industrial { height: 390px; }
  .rail-copy { order: 2; }
  .industrial-feature { gap: 20px; }
  .metrics-card dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 28px; }
  .golf-feature__shade { background: linear-gradient(90deg, rgba(5, 39, 73, .93), rgba(5, 39, 73, .52)); }
  .contact-panel { min-height: auto; }
  .contact-lines { margin-top: 34px; }
  .activity-footer__inner { grid-template-columns: 1fr auto; }
  .activity-footer p { display: none; }
}

@media (max-width: 640px) {
  :root { --activity-shell: calc(100% - 30px); }
  .activity-brand strong { font-size: 1.25rem; }
  .activity-brand small { font-size: .75rem; }
  .activity-hero { min-height: 520px; }
  .activity-hero > img { object-position: 62% center; }
  .activity-hero h1 { font-size: 2.35rem; line-height: 1.06; }
  .activity-hero p { margin-top: 25px; font-size: .75rem; }
  .activity-hero p br { display: none; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 11px; width: min(100%, 280px); margin: 29px auto 0; }
  .activity-section { padding: 64px 0 69px; }
  .section-heading { margin-bottom: 31px; }
  .section-heading h2 { font-size: 1.65rem; line-height: 1.22; }
  .section-heading p { font-size: .75rem; }
  .road-feature { gap: 31px; }
  .image-block--road, .image-block--metro, .image-block--industrial { height: 260px; }
  .project-grid--three, .project-grid--two, .quality-grid, .embankment-gallery { grid-template-columns: 1fr; }
  .project-card, .embankment-section .project-card, .industrial-section .project-card { min-height: auto; padding: 24px 22px; }
  .metrics-card dl { grid-template-columns: 1fr; }
  .embankment-gallery .image-block { height: 250px; }
  .golf-feature { min-height: 510px; }
  .golf-feature > img { object-position: 62% center; }
  .golf-feature__shade { background: linear-gradient(180deg, rgba(5, 39, 73, .9), rgba(5, 39, 73, .45) 70%, rgba(5, 39, 73, .8)); }
  .golf-feature__copy { padding: 38px 27px; }
  .golf-feature__copy h3 { font-size: 1rem; }
  .golf-feature__copy strong { font-size: 2rem; }
  .golf-feature__copy p { font-size: .75rem; }
  .golf-feature > a { right: 27px; bottom: 30px; min-width: 171px; }
  .contact-panel, .request-form { min-height: 0; padding: 32px 25px; }
  .request-form button { width: 100%; min-width: 0; }
  .activity-footer__inner { gap: 25px; min-height: 100px; }
  .activity-footer__inner > div { display: block; }
  .activity-footer span { display: block; margin-top: 5px; }
}

@media (prefers-reduced-motion: reduce) and (not all) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  .reveal, .reveal-item { opacity: 1; transform: none; }
}
