:root {
  --ink: #202020;
  --gold: #deb764;
  --gold-dark: #d4a542;
  --gold-light: #f2d56e;
  --white: #fff;
  --muted: #bebebe;
  --desktop-canvas: 1920px;
  --canvas-offset: max(0px, calc((100vw - var(--desktop-canvas)) / 2));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html.inertial-scroll { scroll-behavior: auto; }
body { margin: 0; background: var(--ink); color: var(--white); font-family: Inter, Arial, sans-serif; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.page-title {
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  font-size: 128px;
  font-weight: 500;
  line-height: .9;
  letter-spacing: -.055em;
  text-transform: lowercase;
}
.page-title-rule { height: 1.5px; background: var(--gold-dark); }
.page-title-block .page-title { transform: translateY(8px); }
.page-title-block .page-title-rule { margin-top: 32px; }
.parallax-frame { position: relative; overflow: hidden; }
.parallax-image { position: absolute; top: calc(0px - var(--parallax-pad, 40px)); left: 0; width: 100%; max-width: none; height: calc(100% + var(--parallax-pad, 40px) + var(--parallax-pad, 40px)); object-fit: cover; transform: translate3d(0,var(--parallax-y,0px),0); }
.parallax-frame.is-parallax-active .parallax-image { will-change: transform; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 999; top: 12px; left: 12px; padding: 10px 16px; background: var(--gold); color: #000; transform: translateY(-180%); }
.skip-link:focus { transform: none; }

.site-header {
  --header-background: var(--ink);
  --header-foreground: #fff;
  --header-link-divider: #3b3b3b;
  height: 121px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 111px;
  border-bottom: 2px solid var(--gold-dark);
  background: var(--header-background);
  color: var(--header-foreground);
  position: relative;
  z-index: 20;
}
.brand { width: 170px; display: flex; flex-direction: column; text-decoration: none; text-transform: uppercase; font-weight: 700; line-height: .82; background: linear-gradient(90deg,#a87432,#d4a542,#ebc331,#d4a542,#a87432); -webkit-background-clip: text; background-clip: text; color: transparent; }
.brand-primary { font-size: 27.35px; }
.brand-secondary { margin-top: 7px; font-size: 18.46px; }
.brand-tag { margin-top: 11px; font-size: 10.26px; line-height: 1; }
.primary-nav { display: flex; align-items: center; gap: clamp(48px, 5.2vw, 100px); height: 100%; }
.primary-nav a { position: relative; padding: 50px 0 45px; font-size: 20px; font-weight: 300; text-decoration: none; text-transform: uppercase; }
.primary-nav a::after { content: ""; position: absolute; left: 0; bottom: 35px; width: 0; height: 1px; background: var(--header-foreground); transition: width .2s ease; }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after, .primary-nav a.active::after { width: 100%; }
.primary-nav .contact-link { font-weight: 700; }
.menu-toggle { display: none; }

.hero { position: relative; height: 1024px; overflow: hidden; border-bottom: 2px solid var(--gold-dark); }
.hero-media { position: absolute; inset: 0; --parallax-pad: 54px; }
.hero-image { object-position: center 46%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,1) 0%,rgba(51,51,51,.6) 53%,rgba(102,102,102,.2) 88%); }
.hero-content { position: relative; z-index: 2; padding-top: 231px; margin-left: 73px; width: 835px; }
.eyebrow { margin: 0; color: var(--muted); font-size: 18.67px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.hero h1 { max-width: 800px; margin: 54px 0 27px; font-size: 80px; line-height: 1.05; letter-spacing: .02em; font-weight: 200; text-transform: uppercase; }
.hero-rule { width: 749px; height: 2px; background: var(--gold-dark); }
.hero-copy { width: 749px; margin: 28px 0 0; font: 300 26.67px/1.34 Jost, sans-serif; text-align: justify; }
.outline-button { display: inline-flex; align-items: center; justify-content: center; width: 251px; height: 56px; margin-top: 111px; border: 1.5px solid var(--gold); color: var(--gold); background: #202020; font-size: 27px; font-weight: 700; text-decoration: none; transition: background-color .24s ease, color .24s ease; }
.outline-button:hover, .outline-button:focus-visible { background: #deb764; color: #202020; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

@media (max-width: 900px) {
  .site-header { height: 88px; padding: 0 24px; }
  .brand { transform: scale(.8); transform-origin: left center; }
  .menu-toggle { display: grid; gap: 5px; width: 46px; height: 46px; place-content: center; border: 1px solid var(--gold); background: transparent; color: var(--header-foreground); }
  .menu-toggle > span:not(.sr-only) { width: 24px; height: 1px; background: currentColor; }
  .primary-nav { position: absolute; inset: 88px 0 auto; display: none; height: auto; padding: 18px 24px 30px; background: var(--header-background); border-bottom: 1px solid var(--gold-dark); flex-direction: column; align-items: flex-start; gap: 0; }
  .primary-nav.open { display: flex; }
  .primary-nav a { width: 100%; padding: 16px 0; font-size: 16px; border-bottom: 1px solid var(--header-link-divider); }
  .primary-nav a::after { display: none; }
  .hero { height: min(860px, calc(100svh - 88px)); min-height: 680px; }
  .hero-image { object-position: 52% 50%; }
  .hero-content { width: auto; margin: 0; padding: clamp(100px,20vh,170px) 24px 40px; }
  .hero h1 { margin-top: 34px; font-size: clamp(44px,10vw,70px); }
  .hero-rule, .hero-copy { width: min(100%, 680px); }
  .hero-copy { font-size: clamp(19px,3.7vw,24px); text-align: left; }
  .outline-button { margin-top: 56px; }
}

@media (max-width: 520px) {
  .site-header { padding-inline: 18px; }
  .hero { min-height: 720px; }
  .hero-shade { background: linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.52)); }
  .hero-content { padding-inline: 20px; }
  .eyebrow { font-size: 13px; line-height: 1.6; }
  .hero h1 { font-size: clamp(40px,12vw,58px); line-height: 1.02; }
  .hero-copy { font-size: 18px; line-height: 1.45; }
  .outline-button { width: 220px; font-size: 23px; }
}

main { overflow: hidden; }
.section-kicker { display: flex; align-items: center; gap: 20px; color: var(--gold); font-size: 26px; font-weight: 500; text-transform: uppercase; white-space: nowrap; }
.section-kicker i { display: block; flex: 1; height: 1.55px; background: var(--gold-dark); }
.text-link { position: relative; display: inline-grid; grid-template-columns: max-content 54px; align-items: center; gap: 25px; min-height: 34px; padding-bottom: 12px; border-bottom: 1.55px solid transparent; color: var(--muted); font-size: 21px; font-weight: 500; text-decoration: none; text-transform: uppercase; }
.text-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1.55px; height: 1.55px; background: var(--gold-dark); pointer-events: none; }
.text-link span { transition: color .24s ease; }
.text-link svg { width: 54px; overflow: visible; }
.text-link .arrow-line { fill: none; stroke: currentColor; stroke-width: 1.25; }
.text-link .arrow-head { fill: currentColor; stroke: none; }
.text-link:hover span, .text-link:focus-visible span { color: #deb764; }
.text-link:hover::after, .text-link:focus-visible::after { background: linear-gradient(90deg,var(--gold-dark) 0 44%,transparent 44% 56%,var(--gold-dark) 56% 100%); background-size: 220% 100%; animation: underline-gap-sweep .82s cubic-bezier(.4,0,.2,1) both; }
.text-link:hover svg, .text-link:focus-visible svg { animation: arrow-fade-jump .72s cubic-bezier(.4,0,.2,1) both; }

@keyframes underline-gap-sweep {
  from { background-position: 100% 0; }
  to { background-position: 0 0; }
}

@keyframes arrow-fade-jump {
  0% { opacity: 1; transform: translateX(0); }
  38% { opacity: 0; transform: translateX(8px); }
  39% { opacity: 0; transform: translateX(-6px); }
  100% { opacity: 1; transform: translateX(0); }
}

.services { position: relative; height: 946px; background: var(--ink); }
.services-media { position: absolute; top: 102px; left: 0; width: 755px; height: 692px; --parallax-pad: 58px; }
.services-image { object-position: center 42%; }
.services-content { position: absolute; inset: 0; }
.services-kicker { position: absolute; top: 100px; left: 804px; width: 529px; }
.services-intro { position: absolute; top: 96px; left: 1360px; width: 468px; margin: 0; font: 300 26px/1.42 Jost, sans-serif; text-align: justify; }
.services h2 { position: absolute; top: 263px; left: 804px; width: 500px; margin: 0; font-size: 80px; line-height: 1.06; letter-spacing: .02em; font-weight: 200; text-transform: uppercase; }
.service-list { position: absolute; top: 263px; left: 1360px; width: 468px; margin: 0; padding: 0; list-style: none; }
.service-list li { height: 56px; display: flex; align-items: center; border-bottom: 1.55px solid #fff; font: 300 26px/1.1 Jost, sans-serif; text-transform: uppercase; white-space: nowrap; }
.service-list.is-reveal-ready li { position: relative; border-bottom-color: transparent; opacity: 0; transform: translate3d(0,10px,0); }
.service-list.is-reveal-ready li::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1.55px; height: 1.55px; background: #fff; transform: scaleX(0); transform-origin: left center; }
.service-list.is-reveal-ready.is-revealed li { opacity: 1; transform: translate3d(0,0,0); transition: opacity .55s ease, transform .62s cubic-bezier(.22,.7,.28,1); transition-delay: calc(var(--reveal-index) * 125ms); }
.service-list.is-reveal-ready.is-revealed li::after { transform: scaleX(1); transition: transform .62s cubic-bezier(.22,.7,.28,1); transition-delay: calc(var(--reveal-index) * 125ms + 150ms); }
.services-link { position: absolute; top: 756px; left: 804px; }

.about { position: relative; height: 823px; overflow: hidden; }
.about-media { position: absolute; inset: 0; --parallax-pad: 80px; }
.about-image { object-position: 78% center; }
.about-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.64) 38%,rgba(0,0,0,.08) 66%,rgba(0,0,0,0) 100%); }
.about-copy { position: absolute; inset: 0; }
.about-kicker { position: absolute; top: 68px; left: 73px; width: 731px; }
.about-copy h2 { position: absolute; top: 150px; left: 73px; width: 820px; margin: 0; font-size: 80px; line-height: 1.08; letter-spacing: .02em; font-weight: 200; text-transform: uppercase; }
.about-copy > p { position: absolute; top: 477px; left: 73px; width: 656px; margin: 0; font: 300 26px/1.45 Jost, sans-serif; }
.about-link { position: absolute; top: 691px; left: 73px; }
.stats { position: absolute; top: 184px; left: 1430px; display: grid; grid-template-columns: 225px 225px; grid-template-rows: 207px 238px; column-gap: 0; row-gap: 61px; width: 450px; color: #000; }
.stat { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; text-align: left; text-transform: uppercase; }
.stat-frame { width: 100%; padding: 0 28px; border-left: 2px solid #000; border-right: 2px solid #000; box-sizing: border-box; }
.stat strong { display: block; font-weight: 300; }
.stat span { display: block; font-weight: 300; letter-spacing: .02em; }
.stat-years strong { font-size: 64px; line-height: 1; }
.stat-years span { margin-top: 13px; font-size: 26px; line-height: 1.06; }
.stat-sector span { font-size: 21px; line-height: 1.22; }
.stat-sector img { display: block; width: 64px; height: 64px; margin: 0 auto 14px; object-fit: contain; }
.stat-coverage strong, .stat-solution strong { font-size: 26px; line-height: 1.06; font-weight: 400; }
.stat-coverage span, .stat-solution span { margin-top: 28px; font-size: 21px; line-height: 1.12; }
.stat-coverage .stat-frame, .stat-solution .stat-frame { display: grid; justify-content: center; justify-items: start; }
.stat-solution strong { font-size: 26.67px; }
.stat-solution span { margin-top: 15px; font-size: 18.67px; }

@media (min-width: 1880px) {
  .stat:nth-child(even) .stat-frame { width: calc(100% + 2px); transform: translateX(-2px); }
}

.projects { position: relative; height: 1378px; background: var(--ink); }
.projects-header-band { position: absolute; z-index: 2; top: 0; left: 0; right: 0; height: 261px; }
.projects-kicker { position: absolute; top: 67px; left: 73px; right: 38px; }
.projects-header-band h2 { position: absolute; top: 155px; left: 65px; margin: 0; color: #3b3b3b; font-size: 120px; line-height: 1; letter-spacing: .02em; font-weight: 900; text-transform: uppercase; transition: color .28s ease; }
.projects-header-band:hover h2 { color: #818181; }
.projects-link { position: absolute; z-index: 3; top: 157px; right: 54px; }
.project-grid { position: absolute; top: 261px; left: 65px; right: 38px; height: 1037px; display: grid; grid-template-columns: 816px 1fr; grid-template-rows: 511px 501px; gap: 19px 26px; }
.project-card { position: relative; overflow: hidden; margin: 0; color: inherit; text-decoration: none; }
.project-card:focus-visible { outline: 3px solid #fff; outline-offset: -4px; }
.project-image-frame { position: absolute; inset: 0; --parallax-pad: 32px; transition: transform .45s ease; }
.project-card:hover .project-image-frame, .project-card:focus-visible .project-image-frame { transform: scale(1.02); }
.project-card-shade { position: absolute; inset: 0; background: rgba(15,15,15,.52); opacity: 0; pointer-events: none; transition: opacity .32s ease; }
.project-workspace { grid-row: 1 / 3; }
.project-cafe { grid-column: 2; grid-row: 2; width: calc(50% - 13px); }
.project-kitchen { grid-column: 2; grid-row: 2; width: calc(50% - 13px); justify-self: end; }
.project-meta { position: absolute; z-index: 2; left: 23px; right: 20px; bottom: 24px; opacity: 0; transform: translateY(10px); pointer-events: none; text-transform: uppercase; transition: opacity .32s ease, transform .32s ease; }
.project-card:hover .project-card-shade, .project-card:focus-visible .project-card-shade { opacity: 1; }
.project-card:hover .project-meta, .project-card:focus-visible .project-meta { opacity: 1; transform: translateY(0); }
.project-meta h3 { margin: 0 0 8px; font-size: 32px; line-height: 1; font-weight: 300; }
.project-meta p { display: flex; gap: 24px; margin: 0; font-size: 18px; line-height: 1; }
.project-meta span { color: var(--gold-light); font-weight: 500; }
.project-meta b { color: var(--muted); font-weight: 500; }

@media (min-width: 1880px) {
  .project-cafe .project-meta { right: 14px; }
  .project-cafe .project-meta p { justify-content: space-between; gap: 12px; font-size: 17.5px; white-space: nowrap; }
}

@media (hover: none) {
  .project-card-shade { opacity: .38; }
  .project-meta { opacity: 1; transform: none; }
}

.process { position: relative; height: 1005px; background: var(--ink); }
.process-kicker { position: absolute; top: 64px; left: 73px; width: 1759px; }
.process > h2 { position: absolute; top: 143px; left: 71px; width: 680px; margin: 0; font-size: 64px; line-height: 1.18; letter-spacing: .02em; font-weight: 200; }
.steps { position: absolute; z-index: 2; top: 143px; left: 844px; width: 480px; margin: 0; padding: 0; list-style: none; }
.steps li { min-height: 195px; display: grid; grid-template-columns: 65px 1fr; gap: 14px; cursor: default; }
.step-number { color: var(--gold); font-size: 48px; line-height: 1; font-weight: 700; text-align: right; }
.steps li > div { align-self: start; padding-left: 8px; border-left: 1.38px solid var(--gold-dark); }
.steps h3 { margin: -8px 0 13px; color: #2f2f2f; font-size: 76px; line-height: 1; letter-spacing: -.05em; font-weight: 900; text-transform: uppercase; transition: color .28s ease; }
.steps li:hover h3 { color: #818181; }
.steps p { width: 362px; margin: 0; font: 300 19px/1.34 Jost, sans-serif; }
.process-media { position: absolute; top: 143px; right: 85px; width: 470px; height: 706px; --parallax-pad: 54px; }

@media (min-width: 1880px) {
  .steps li { width: 100vw; margin-left: -844px; padding-left: 844px; box-sizing: border-box; grid-template-columns: 65px 401px; }
}

.contact { position:relative; display:flow-root; min-height:972px; padding-bottom:93px; box-sizing:border-box; background:linear-gradient(180deg,#deb764 0%,#786336 100%); }
.services-page .contact { color:#fff; }
.contact-heading-row h2 { position: absolute; top: 47px; left: 69px; width: 895px; margin: 0; font: 300 64px/1.2 Jost, sans-serif; }
.contact-heading-row i { position: absolute; top: 60px; left: 1084px; width: 1.33px; height: 787px; background: #fff; }
.contact-left { position: absolute; inset: 0; }
.footer-rule { position: absolute; top: 218px; left: 71px; width: 1012px; height: 1.33px; background: #fff; }
.footer-brand { position: absolute; top: 241px; left: 69px; display: flex; flex-direction: column; color: rgba(0,0,0,.5); font-weight: 700; line-height: .82; text-decoration: none; text-transform: uppercase; }
.footer-brand span { font-size: 42.67px; }
.footer-brand b { margin-top: 9px; font-size: 29.33px; }
.footer-brand small { margin-top: 16px; font-size: 16px; }
.footer-columns { position: absolute; top: 380px; left: 71px; display: grid; grid-template-columns: 180px 380px; gap: 106px; }
.footer-columns nav, .footer-columns > div { display: flex; flex-direction: column; }
.footer-columns h3 { margin: 0 0 21px; font: 800 20px/1 Jost, sans-serif; text-transform: uppercase; }
.footer-columns a { position:relative; width:max-content; max-width:100%; margin-bottom:20px; font:300 18px/1.1 Jost,sans-serif; text-decoration:none; }
.footer-columns a::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left center; transition:transform .28s cubic-bezier(.22,.7,.28,1); }
.footer-columns a:hover::after,.footer-columns a:focus-visible::after { transform:scaleX(1); }
.enquiry-form { position:relative; left:1231px; width:537px; margin-top:56px; }
.enquiry-form > p:first-child { margin: 0 0 31px; font-size: 18px; line-height: 1.35; }
.form-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 29px 25px; }
.enquiry-form label { min-width: 0; display: flex; flex-direction: column; gap: 10px; font-size: 21px; }
.enquiry-form input, .enquiry-form select { height: 31px; padding: 0 26px 4px 0; border: 0; border-bottom: 1.33px solid #fff; border-radius: 0; background: transparent; color: #fff; font: inherit; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { width: 100%; }
.enquiry-form select { appearance:none; font-weight:300; background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%); background-position:calc(100% - 9px) 13px,calc(100% - 4px) 13px; background-size:5px 5px; background-repeat:no-repeat; }
.enquiry-form option { color: #000; }
.message-label { margin-top: 25px; }
.enquiry-form textarea { min-height: 179px; resize: vertical; border: 1.33px solid #fff; border-radius: 0; background: transparent; color: #fff; font: 300 18px/1.4 Jost,sans-serif; }
.enquiry-form details { margin-top: 19px; border-top: 1.33px solid #fff; border-bottom: 1.33px solid #fff; }
.enquiry-form summary { padding: 9px 0; font-size: 21px; cursor: pointer; list-style-position: inside; }
.enquiry-form details label { padding-bottom: 12px; font-size: 16px; }
.enquiry-form details[open] label { padding-top:12px; }
.enquiry-form details textarea { min-height: 90px; }
.enquiry-form button { display: block; width: 251px; height: 56px; margin: 45px auto 0; border: 1.33px solid var(--gold); border-radius: 0; background: var(--gold); color: #000; font-size: 27px; letter-spacing: -.05em; font-weight: 700; cursor: pointer; }
.enquiry-form button:hover { background: #f2d56e; }
.form-status { min-height: 20px; margin: 8px 0 0 !important; text-align: center; font-size: 14px !important; }
.bottom-bar { position: absolute; left: 71px; right: 68px; bottom: 0; height: 93px; padding-top: 35px; border-top: 1.33px solid #fff; display: flex; justify-content: space-between; font: 300 16px/1 Jost,sans-serif; }
.bottom-bar a { text-decoration: none; }

@media (min-width: 1921px) {
  .site-header { padding-inline: calc(var(--canvas-offset) + 111px); }
  .hero-content { margin-left: calc(var(--canvas-offset) + 73px); }
  .services-media { left: var(--canvas-offset); }
  .services-kicker { left: calc(var(--canvas-offset) + 804px); }
  .services-intro, .service-list { left: calc(var(--canvas-offset) + 1360px); }
  .services h2, .services-link { left: calc(var(--canvas-offset) + 804px); }
  .about-kicker, .about-copy h2, .about-copy > p, .about-link { left: calc(var(--canvas-offset) + 73px); }
  .stats { left: calc(var(--canvas-offset) + 1430px); }
  .projects-kicker { left: calc(var(--canvas-offset) + 73px); right: calc(var(--canvas-offset) + 38px); }
  .projects-header-band h2 { left: calc(var(--canvas-offset) + 65px); }
  .projects-link { right: calc(var(--canvas-offset) + 54px); }
  .project-grid { left: calc(var(--canvas-offset) + 65px); right: auto; width: 1817px; }
  .process-kicker { left: calc(var(--canvas-offset) + 73px); }
  .process > h2 { left: calc(var(--canvas-offset) + 71px); }
  .steps { left: calc(var(--canvas-offset) + 844px); }
  .steps li { width: 100vw; margin-left: calc(-844px - var(--canvas-offset)); padding-left: calc(844px + var(--canvas-offset)); }
  .process-media { right: calc(var(--canvas-offset) + 85px); }
  .contact-heading-row h2 { left: calc(var(--canvas-offset) + 69px); }
  .contact-heading-row i { left: calc(var(--canvas-offset) + 1084px); }
  .footer-rule { left: calc(var(--canvas-offset) + 71px); }
  .footer-brand { left: calc(var(--canvas-offset) + 69px); }
  .footer-columns { left: calc(var(--canvas-offset) + 71px); }
  .enquiry-form { left: calc(var(--canvas-offset) + 1231px); }
  .bottom-bar { left: calc(var(--canvas-offset) + 71px); right: calc(var(--canvas-offset) + 68px); }
}

@media (max-width: 1879px) {
  .site-header { height: clamp(104px,6.3vw,118px); padding-inline: clamp(48px,5.75vw,108px); }
  .primary-nav { gap: clamp(42px,4.6vw,86px); }
  .primary-nav a { padding-block: 43px 39px; font-size: clamp(17px,1.15vw,20px); }
  .primary-nav a::after { bottom: 30px; }
  .page-title { font-size: clamp(82px,6.67vw,126px); }

  .hero { height: clamp(850px,53.3vw,1000px); }
  .hero-content { width: min(43.5vw,800px); margin-left: clamp(48px,3.8vw,71px); padding-top: clamp(185px,12vw,225px); }
  .hero h1 { max-width: 100%; margin-top: clamp(42px,2.8vw,53px); font-size: clamp(52px,4.17vw,78px); }
  .hero-rule, .hero-copy { width: min(100%,749px); }
  .hero-copy { font-size: clamp(22px,1.4vw,26px); }
  .outline-button { margin-top: clamp(76px,5.7vw,107px); }

  .services { height: auto; min-height: 786px; padding: clamp(76px,5vw,94px) clamp(48px,4vw,75px) clamp(76px,5vw,94px) 0; display: grid; grid-template-columns: minmax(420px,40.5%) minmax(0,1fr); gap: clamp(34px,2.6vw,49px); }
  .services-media { position: relative; top: auto; left: auto; width: 100%; height: 620px; }
  .services-content { position: relative; display: grid; grid-template-columns: minmax(250px,.9fr) minmax(320px,1.1fr); grid-template-rows: auto 1fr auto; gap: clamp(30px,2.5vw,42px) clamp(24px,2.3vw,44px); }
  .services-kicker, .services-intro, .services h2, .service-list, .services-link { position: static; width: auto; }
  .services-kicker { grid-column: 1; align-self: start; }
  .services-intro { grid-column: 2; font-size: clamp(20px,1.35vw,25px); }
  .services h2 { grid-column: 1; font-size: clamp(52px,4.15vw,72px); }
  .service-list { grid-column: 2; }
  .service-list li { height: clamp(44px,3vw,54px); font-size: clamp(18px,1.25vw,23px); }
  .services-link { grid-column: 1; justify-self: start; align-self: end; }

  .about-copy h2 { width: min(58vw,820px); font-size: clamp(60px,5vw,74px); }
  .about-copy > p { width: min(48vw,656px); }
  .stats { left: auto; right: 4vw; grid-template-columns: 145px 145px; column-gap: 30px; row-gap: 42px; width: 320px; }
  .stat-frame { padding: 0 16px; }
  .stat-years strong { font-size: 54px; }
  .stat-years span { font-size: 17px; }
  .stat-sector span { font-size: 15.5px; }
  .stat-coverage strong, .stat-solution strong { font-size: 22px; }
  .stat-coverage span { margin-top: 25px; font-size: 17px; }
  .stat-solution span { font-size: 16px; }
  .projects { height: auto; padding: clamp(60px,3.6vw,68px) clamp(40px,3.4vw,64px) clamp(44px,3vw,56px); }
  .projects-header-band { position: relative; height: auto; }
  .projects-kicker, .projects-header-band h2, .projects-link, .project-grid { position: relative; top: auto; left: auto; right: auto; }
  .projects-kicker { width: 100%; }
  .projects-header-band h2 { margin: clamp(48px,3.2vw,58px) 0 clamp(-48px,-2.4vw,-36px); font-size: clamp(76px,7vw,112px); }
  .projects-link { position: absolute; top: clamp(132px,8vw,150px); right: 0; }
  .project-grid { height: auto; min-height: clamp(760px,52vw,960px); grid-template-columns: 45% 1fr; grid-template-rows: repeat(2,minmax(350px,1fr)); }
  .project-meta p { gap: clamp(10px,1.2vw,20px); }
  .process { height: auto; min-height: 930px; padding: clamp(62px,3.7vw,69px) clamp(40px,4vw,75px) clamp(88px,5.5vw,104px); display: grid; grid-template-columns: minmax(330px,35%) minmax(390px,34%) minmax(280px,27%); grid-template-rows: auto 1fr; gap: clamp(48px,3.2vw,60px) 2%; }
  .process-kicker { position: static; width: 100%; grid-column: 1 / -1; }
  .process > h2, .steps { position: static; width: auto; }
  .process > h2 { font-size: clamp(44px,4vw,60px); }
  .steps { margin-top: 0; }
  .steps li { min-height: 175px; grid-template-columns: 65px 1fr; gap: 4px; }
  .steps h3 { font-size: clamp(48px,4.2vw,68px); }
  .steps p { width: auto; font-size: 17px; }
  .process-media { position: relative; top: auto; right: auto; width: 100%; height: min(690px,46vw); }

  .contact { height: auto; min-height: 970px; padding: 52px clamp(48px,4vw,75px) 115px; display: grid; grid-template-columns: minmax(0,58%) minmax(400px,1fr); grid-template-rows: auto 1fr; column-gap: clamp(56px,6vw,108px); }
  .contact-heading-row { grid-column: 1; }
  .contact-heading-row h2 { position: static; width: min(100%,895px); font-size: clamp(52px,3.4vw,62px); }
  .contact-heading-row i { display: none; }
  .contact-left { position: relative; inset: auto; grid-column: 1; grid-row: 2; min-height: 650px; margin-top: 34px; border-top: 1.33px solid #fff; }
  .footer-rule { display: none; }
  .footer-brand { position: static; margin-top: 24px; }
  .footer-columns { position: static; margin-top: 72px; grid-template-columns: minmax(130px,180px) minmax(260px,380px); gap: clamp(60px,6vw,106px); }
  .enquiry-form { position:static; grid-column:2; grid-row:1 / 3; width:auto; margin-top:0; padding-left:clamp(36px,4vw,70px); border-left:1.33px solid #fff; }
  .enquiry-form label, .enquiry-form summary { font-size: clamp(17px,1.1vw,20px); }
  .bottom-bar { left: clamp(48px,4vw,75px); right: clamp(48px,4vw,75px); }
}

@media (max-width: 1199px) {
  .site-header { padding-inline: 5vw; }
  .primary-nav { gap: 34px; }
  .primary-nav a { font-size: 16px; }
  .hero-content { width: min(49vw,700px); }
  .services { grid-template-columns: minmax(340px,38%) minmax(0,1fr); gap: 4vw; padding-right: 5vw; }
  .services-content { grid-template-columns: 1fr; gap: 28px; }
  .services-kicker, .services-intro, .services h2, .service-list, .services-link { grid-column: 1; }
  .services h2 { grid-row: auto; }
  .service-list li { white-space: normal; }
  .about { height: auto; min-height: 900px; padding: 65px 5vw; display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,38%); gap: 4vw; align-items: center; }
  .about-copy, .stats { position: relative; inset: auto; z-index: 2; }
  .about-copy { min-height: 710px; }
  .about-kicker, .about-copy h2, .about-copy > p, .about-link { position: static; width: auto; }
  .about-copy h2 { margin-top: 50px; font-size: 60px; }
  .about-copy > p { margin-top: 90px; font-size: 22px; }
  .about-link { margin-top: 45px; }
  .stats { grid-template-columns: repeat(2,minmax(135px,150px)); justify-content: center; gap: 40px; width: auto; }
  .project-grid { grid-template-rows: repeat(2,minmax(330px,35vw)); min-height: 0; }
  .project-meta h3 { font-size: 25px; }
  .project-meta p { flex-direction: column; gap: 5px; font-size: 14px; }
  .process { grid-template-columns: minmax(280px,35%) minmax(0,1fr); grid-template-rows: auto auto auto; }
  .process-media { display: block; grid-column: 1 / -1; width: 100%; height: 430px; margin-top: 6px; }
  .contact { height: auto; min-height: 1100px; padding: 60px 5vw 110px; display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,1fr); gap: 60px; }
  .contact-heading-row { grid-column: 1 / -1; }
  .contact-heading-row h2 { position: static; width: auto; }
  .contact-heading-row i { display: none; }
  .contact-left, .enquiry-form, .bottom-bar { position: relative; inset: auto; width: auto; }
  .footer-rule { position: static; width: 100%; margin-bottom: 25px; }
  .footer-brand, .footer-columns { position: static; }
  .footer-columns { margin-top: 55px; grid-template-columns: 120px 1fr; gap: 45px; }
  .enquiry-form { top: auto; left: auto; grid-column: 2; grid-row: 2; padding-left: 42px; }
  .bottom-bar { position: absolute; left: 5vw; right: 5vw; bottom: 0; }
}

@media (min-width: 901px) and (max-width: 1199px) {
  .projects-header-band h2 { margin-bottom: 0; }
  .projects-link { position: relative; top: auto; right: auto; justify-self: start; margin: 22px 0 30px; }
}

@media (max-width: 900px) {
  .site-header { height: 88px; padding: 0 24px; }
  .primary-nav { height: auto; gap: 0; }
  .hero { height: min(860px, calc(100svh - 88px)); min-height: 680px; }
  .hero-content { width: auto; margin: 0; padding: clamp(100px,20vh,170px) 24px 40px; }
  .hero h1 { max-width: min(100%,680px); margin-top: 34px; font-size: clamp(44px,10vw,70px); }
  .hero-rule, .hero-copy { width: min(100%,680px); }
  .hero-copy { font-size: clamp(19px,3.7vw,24px); text-align: left; }
  .outline-button { margin-top: 56px; }
  .section-kicker { font-size: 18px; }
  .text-link { font-size: 16px; }
  .services { display: flex; flex-direction: column; padding: 70px 24px; }
  .services-media { height: 500px; order: 2; }
  .services-content { display: contents; }
  .services-kicker { order: 1; width: 100%; }
  .services-intro { order: 3; margin-top: 38px; font-size: 20px; text-align: left; }
  .services h2 { order: 4; margin-top: 24px; font-size: clamp(46px,10vw,64px); }
  .service-list { order: 5; margin-top: 20px; }
  .service-list li { height: auto; min-height: 48px; font-size: 18px; }
  .services-link { order: 6; margin-top: 40px; }
  .about { display: block; padding: 60px 24px; min-height: 980px; }
  .about-shade { background: rgba(0,0,0,.62); }
  .about-copy { min-height: 0; }
  .about-copy h2 { margin-top: 44px; font-size: clamp(46px,10vw,64px); }
  .about-copy > p { margin-top: 56px; font-size: 20px; }
  .about-link { margin-top: 38px; }
  .stats { margin-top: 70px; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; color: #fff; }
  .stat-frame { border-color: #fff; }
  .stat-sector img { filter: brightness(0) invert(1); }
  .projects { padding: 68px 24px; }
  .projects-header-band h2 { margin: 45px 0 20px; font-size: clamp(56px,14vw,88px); line-height: .88; }
  .projects-link { position: relative; top: auto; right: auto; margin: 20px 0 36px; }
  .project-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 620px 300px 300px; gap: 18px; }
  .project-workspace { grid-column: 1 / -1; grid-row: 1; }
  .project-warehouse { grid-column: 1 / -1; grid-row: 2; }
  .project-cafe, .project-kitchen { grid-row: 3; width: auto; }
  .project-cafe { grid-column: 1; }
  .project-kitchen { grid-column: 2; }
  .process { display: block; min-height: 0; padding: 66px 24px 80px; }
  .process > h2 { margin: 48px 0 65px; font-size: clamp(46px,9vw,64px); }
  .steps li { min-height: 170px; grid-template-columns: 65px 1fr; }
  .steps h3 { font-size: clamp(48px,12vw,68px); }
  .process-media { display: block; width: 100%; height: clamp(420px,76vw,580px); margin-top: 44px; }
  .contact { display: block; padding: 55px 24px 100px; }
  .contact-heading-row h2 { font-size: clamp(44px,9vw,58px); }
  .contact-left { margin-top: 55px; }
  .enquiry-form { margin-top: 60px; padding-left: 0; border-left: 0; }
  .footer-columns a { overflow-wrap: anywhere; }
  .bottom-bar { left: 24px; right: 24px; }
}

@media (max-width: 600px) {
  .site-header { padding-inline: 18px; }
  .page-title { font-size: 64px; }
  .hero { min-height: 720px; }
  .hero-content { padding-inline: 20px; }
  .hero h1 { font-size: clamp(40px,12vw,58px); line-height: 1.02; }
  .hero-copy { font-size: 18px; line-height: 1.45; }
  .outline-button { width: 220px; font-size: 23px; }
  .services-media { height: 420px; }
  .about { min-height: 1180px; }
  .about-copy h2 { font-size: clamp(38px,9.5vw,44px); }
  .stats { gap: 36px 24px; }
  .stat-years strong { font-size: 50px; }
  .stat-years span { font-size: 17px; }
  .stat-coverage strong, .stat-solution strong { font-size: 20px; }
  .stat-sector span, .stat-coverage span, .stat-solution span { font-size: 15px; }
  .project-grid { display: flex; flex-direction: column; min-height: 0; }
  .project-card { width: 100%; height: 420px; }
  .project-workspace { height: 560px; }
  .project-meta h3 { font-size: 23px; }
  .steps li { grid-template-columns: 55px 1fr; min-height: 190px; }
  .step-number { font-size: 36px; }
  .steps h3 { font-size: clamp(43px,13vw,60px); }
  .steps p { font-size: 16px; }
  .process-media { height: min(118vw,520px); }
  .form-grid { grid-template-columns: 1fr; }
  .footer-columns { grid-template-columns: 1fr 1.4fr; gap: 22px; }
  .footer-columns a { font-size: 15px; }
  .bottom-bar { height: 128px; padding-top: 27px; flex-wrap: wrap; gap: 16px; font-size: 14px; }
  .bottom-bar span:nth-child(2) { order: 3; width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .parallax-image { top: 0; height: 100%; transform: none !important; will-change: auto; }
  .text-link:hover::after, .text-link:focus-visible::after { background: var(--gold-dark); animation: none; }
  .text-link:hover svg, .text-link:focus-visible svg { opacity: 1; transform: none; animation: none; }
  .service-list.is-reveal-ready li { opacity: 1; transform: none; }
  .service-list.is-reveal-ready li::after { transform: scaleX(1); }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
