:root { --ink:#090a0c; --charcoal:#111316; --paper:#f5f1e8; --cream:#fbf8f0; --gold:#d9a441; --gold-light:#f0cf82; --line:rgba(12,13,15,.14); --muted:#66635d; }
* { box-sizing:border-box; }
.footer-information { grid-column:1/-1; width:100%; border-top:1px solid #ffffff26; padding-top:24px; }
.footer-information ul { display:flex; justify-content:center; flex-wrap:wrap; gap:12px 34px; padding:0 20px; margin:0; list-style:disc; }
.footer-information li { padding-left:3px; color:var(--gold); }
.footer-information a { display:inline-block; padding:8px 0; font-size:14px; line-height:1.5; color:#ddd; }
.footer-information a:hover,.footer-information a[aria-current] { color:var(--gold-light); text-decoration:underline; text-underline-offset:4px; }
.information-heading { background:var(--charcoal); color:white; padding:46px clamp(24px,8vw,124px) 62px; }
.information-heading h1 { font-size:clamp(44px,6vw,78px); line-height:1.05; margin:20px 0; }
.information-heading>p:not(.section-kicker) { max-width:760px; font-size:18px; line-height:1.7; color:#d0d0d0; }
.information-heading .information-date { font-size:14px!important; color:var(--gold-light)!important; margin-top:24px; }
.information-layout { display:grid; grid-template-columns:260px minmax(0,800px); gap:64px; max-width:1360px; margin:auto; padding:64px clamp(24px,5vw,76px) 84px; }
.information-sidebar { align-self:start; border-top:2px solid var(--gold); padding-top:16px; }
.information-sidebar>p { font-size:16px; font-weight:700; }
.information-sidebar ol { padding-left:22px; margin:0; }
.information-sidebar li { padding:7px 0; font-size:15px; line-height:1.5; }
.information-sidebar a:hover { text-decoration:underline; }
.information-body section { scroll-margin-top:24px; margin-bottom:36px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.information-body h2 { font-size:30px; margin:0 0 16px; }
.information-body p,.information-body address { font-size:17px; line-height:1.8; color:#504c46; font-style:normal; overflow-wrap:anywhere; }
.information-body a:not(.button),.form-note a { text-decoration:underline; text-underline-offset:3px; }
.information-actions { display:flex; flex-wrap:wrap; gap:14px; margin:24px 0; }
@media(max-width:820px){.information-layout{grid-template-columns:1fr;gap:36px;padding:40px 24px}.footer-information ul{justify-content:flex-start;text-align:left;gap:8px 30px}.information-body h2{font-size:28px}}
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #c99232; outline-offset:5px; }
.capability { display:block; }
.capability:focus-visible { z-index:2; background:var(--charcoal); color:white; }
.capability:focus-visible p { color:#ccc; }
.department-page .site-header { position:relative; background:var(--ink); }
.department-page .section-kicker { font-size:14px; line-height:1.6; }
.department-page .button,.department-page .header-cta,.department-page nav { font-size:14px; }
.skip-link { position:absolute; z-index:100; top:-100px; left:16px; padding:14px; background:white; color:black; }
.skip-link:focus { top:16px; }
.department-hero { padding:64px clamp(24px,6vw,96px) 72px; display:grid; grid-template-columns:1fr 1fr; gap:5vw; align-items:center; background:var(--charcoal); color:white; }
.back-link { display:inline-block; color:#ddd; font-size:14px; margin-bottom:40px; }
.department-lead h1 { font-size:clamp(42px,5.2vw,76px); line-height:1.04; margin:20px 0; }
.department-lead>p:not(.section-kicker) { color:#c5c6c8; font-size:18px; line-height:1.75; margin-bottom:28px; }
.department-picture { margin:0; min-width:0; }
.department-picture img { width:100%; height:400px; display:block; object-fit:cover; }
.department-hero .department-picture img { height:460px; }
.department-picture figcaption { font-size:14px; line-height:1.5; padding-top:12px; color:var(--muted); }
.department-hero figcaption { color:#b7b8bb; }
.department-offering { padding:90px clamp(24px,8vw,124px); display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; }
.department-page h2 { font:400 clamp(34px,3.8vw,54px)/1.13 Georgia,serif; letter-spacing:-.025em; margin:0 0 24px; }
.department-description { margin:0 0 32px; font-size:18px; line-height:1.75; color:#514e49; }
.department-items article { display:grid; grid-template-columns:35px 1fr; gap:18px; border-top:1px solid var(--line); padding:25px 0; }
.department-items article>span { color:#936215; font-size:14px; padding-top:4px; }
.department-items h3 { margin:0 0 10px; font:400 27px/1.2 Georgia,serif; }
.department-items p { margin:0; font-size:16px; line-height:1.7; color:#615d56; }
.department-vision { padding:80px clamp(24px,12vw,180px); background:#191b1e; color:white; border-top:3px solid var(--gold); }
.department-vision h2 { max-width:1080px; color:var(--gold-light); }
.department-vision>p:last-child { max-width:850px; font-size:17px; line-height:1.8; color:#cbcccf; }
.department-photo-row { padding:64px clamp(24px,6vw,96px) 0; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:24px; }
.department-photo-row .department-picture img { height:320px; }
.department-contact { padding:84px clamp(24px,8vw,124px); }
.department-contact>p:not(.section-kicker) { max-width:700px; font-size:18px; line-height:1.7; color:var(--muted); }
.department-actions { display:flex; gap:28px; align-items:center; flex-wrap:wrap; margin-top:30px; }
.department-actions>a:not(.button) { font-size:16px; border-bottom:1px solid #a36f1e; padding:10px 0; }
.department-directory { padding:56px clamp(24px,8vw,124px); background:#eae4d8; }
.department-directory h2 { font-size:32px; }
.department-directory>div { display:flex; flex-wrap:wrap; gap:12px; }
.department-directory a { padding:16px 18px; border:1px solid #c8bda8; font-size:16px; line-height:1.5; }
.department-directory a:hover,.department-directory a[aria-current] { background:var(--ink); color:var(--gold-light); }
.department-credits { padding:28px clamp(24px,8vw,124px); font-size:14px; line-height:1.7; color:var(--muted); }
.department-credits summary { cursor:pointer; color:#745016; }
.department-credits a { text-decoration:underline; }
@media(max-width:820px){.department-hero,.department-offering{grid-template-columns:1fr;gap:32px}.department-hero .department-picture img{height:320px}.department-offering{padding:60px 24px}.department-page .header-cta{max-width:140px;font-size:12px}.department-page .department-hero{padding-top:32px}.back-link{margin-bottom:28px}.department-photo-row{grid-template-columns:1fr}}
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }

.site-header { position:absolute; z-index:10; top:0; left:0; right:0; height:88px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(24px,5vw,76px); color:white; border-bottom:1px solid rgba(255,255,255,.16); }
.brand img { display:block; width:205px; height:auto; max-height:66px; object-fit:contain; object-position:left center; }
nav { display:flex; align-items:center; gap:34px; font-size:13px; }
nav a { color:rgba(255,255,255,.72); transition:color .2s; }
nav a:hover { color:var(--gold-light); }
.header-cta { justify-self:end; border-bottom:1px solid var(--gold); padding:10px 0; font-size:12px; letter-spacing:.05em; }

.hero { min-height:790px; position:relative; overflow:hidden; color:white; background:radial-gradient(circle at 72% 40%,#2f2b22 0,#151515 28%,#08090a 66%); display:flex; align-items:center; padding:120px clamp(24px,8vw,124px) 84px; }
.hero-grid { position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to right,transparent,black 40%,black); }
.hero-content { position:relative; z-index:2; width:min(760px,66vw); }
.eyebrow,.section-kicker { text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:700; }
.eyebrow { color:var(--gold-light); display:flex; align-items:center; gap:12px; }
.eyebrow span { width:38px; height:1px; background:var(--gold); }
h1 { margin:26px 0 24px; max-width:780px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(58px,7.4vw,112px); line-height:.92; font-weight:400; letter-spacing:-.045em; }
h1 em { color:var(--gold-light); font-weight:400; }
.hero-copy { max-width:600px; color:rgba(255,255,255,.68); font-size:18px; line-height:1.65; }
.hero-actions { display:flex; gap:14px; margin-top:38px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; gap:22px; padding:15px 20px; font-size:12px; font-weight:700; letter-spacing:.035em; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-gold { background:linear-gradient(135deg,#efcf83,#b5781d); color:#16110a; }
.button-quiet { border:1px solid rgba(255,255,255,.25); color:white; }
.hero-mark { position:absolute; right:clamp(-70px,3vw,60px); bottom:70px; width:min(44vw,610px); height:min(44vw,610px); border:1px solid rgba(224,174,75,.25); border-radius:50%; display:grid; place-items:center; color:rgba(224,174,75,.13); }
.hero-mark>span { font-family:Georgia,serif; font-size:clamp(180px,25vw,390px); letter-spacing:-.14em; transform:translateX(-.08em); }
.skyline { position:absolute; bottom:95px; display:flex; align-items:end; gap:9px; }
.skyline i { display:block; width:20px; border:1px solid rgba(224,174,75,.38); border-bottom:0; }
.skyline i:nth-child(1){height:70px}.skyline i:nth-child(2){height:120px}.skyline i:nth-child(3){height:168px}.skyline i:nth-child(4){height:105px}.skyline i:nth-child(5){height:58px}
.hero-foot { position:absolute; left:clamp(24px,8vw,124px); right:clamp(24px,8vw,124px); bottom:26px; display:flex; justify-content:space-between; color:rgba(255,255,255,.34); font-size:9px; letter-spacing:.18em; }

.infrastructure-gallery { padding:90px clamp(24px,6vw,96px); background:#111316; color:#fff; }
.gallery-heading { display:grid; grid-template-columns:1.4fr 1fr; gap:60px; align-items:end; margin-bottom:40px; }
.gallery-heading h2 { margin:0; font:400 clamp(40px,4.8vw,70px)/1.04 Georgia,serif; letter-spacing:-.035em; }
.gallery-heading h2 em { color:var(--gold-light); font-weight:400; }
.gallery-heading>p { max-width:410px; margin:0; color:#c3c4c6; font-size:17px; line-height:1.7; }
.gallery-heading .section-kicker { font-size:14px; letter-spacing:.12em; }
.gallery-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px; }
.gallery-tile { grid-column:span 2; position:relative; margin:0; height:310px; overflow:hidden; background:#282b2e; border:1px solid #ffffff1c; }
.gallery-wide { grid-column:span 3; height:400px; }
.gallery-tile img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gallery-tile:hover img { transform:scale(1.035); }
.gallery-tile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.88) 100%); pointer-events:none; }
.gallery-tile figcaption { position:absolute; z-index:1; left:26px; right:26px; bottom:26px; }
.gallery-tile figcaption>span { font-size:14px; color:var(--gold-light); }
.gallery-tile h3 { margin:10px 0 0; font:400 clamp(25px,2.5vw,38px)/1.1 Georgia,serif; }
.gallery-tile p { margin:12px 0 0; font-size:16px; line-height:1.5; color:#e0e0e0; }
.gallery-note { margin:24px 0 0; color:#b7b8ba; font-size:14px; line-height:1.6; }
.gallery-credits { margin-top:12px; color:#b7b8ba; font-size:14px; line-height:1.7; }
.gallery-credits summary { cursor:pointer; color:var(--gold-light); }
.gallery-credits a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:820px){.gallery-heading{grid-template-columns:1fr;gap:24px}.infrastructure-gallery{padding:64px 24px}.gallery-tile,.gallery-wide{grid-column:span 3;height:330px}.gallery-tile:last-child{grid-column:span 6}}
@media(max-width:540px){.gallery-grid{grid-template-columns:1fr}.gallery-tile,.gallery-wide,.gallery-tile:last-child{grid-column:auto;height:320px}.gallery-tile figcaption{left:22px;right:22px;bottom:24px}}
.intro { padding:110px clamp(24px,8vw,124px) 62px; display:grid; grid-template-columns:1.1fr .9fr; gap:10vw; align-items:end; }
.section-kicker { color:#a36f1e; margin:0 0 20px; }
.intro h2,.approach h2,.contact h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
.intro h2 { font-size:clamp(42px,5vw,72px); line-height:1; margin:0; }
.intro>p { margin:0; max-width:500px; color:var(--muted); font-size:17px; line-height:1.75; }
.capabilities { padding:0 clamp(24px,8vw,124px) 110px; display:grid; grid-template-columns:repeat(6,1fr); }
.capability { position:relative; min-height:310px; padding:28px 24px; border-top:1px solid var(--line); border-right:1px solid var(--line); grid-column:span 2; transition:background .25s,color .25s; }
.capability:nth-child(4),.capability:nth-child(5){grid-column:span 3}.capability:first-child,.capability:nth-child(4){border-left:1px solid var(--line)}
.capability:hover { background:var(--charcoal); color:white; }
.cap-number { font-size:10px; color:#a36f1e; letter-spacing:.14em; }
.capability h3 { margin:52px 0 16px; font-family:Georgia,serif; font-size:27px; font-weight:400; }
.capability p { margin:0; max-width:310px; color:var(--muted); font-size:14px; line-height:1.65; }
.capability:hover p { color:rgba(255,255,255,.58); }
.cap-arrow { position:absolute; right:22px; bottom:22px; color:var(--gold); font-size:20px; }
.approach { padding:105px clamp(24px,8vw,124px); background:var(--charcoal); color:white; display:grid; grid-template-columns:1fr 1fr; gap:9vw; }
.section-kicker.light { color:var(--gold-light); }
.approach h2 { font-size:clamp(42px,5.2vw,74px); line-height:1.02; margin:0 0 28px; }
.approach-lead>p:last-child { max-width:560px; color:rgba(255,255,255,.56); font-size:16px; line-height:1.7; }
.principles { border-top:1px solid rgba(255,255,255,.16); }
.principles article { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.principles article>span { color:var(--gold); font-size:11px; }
.principles h3 { margin:0 0 8px; font-family:Georgia,serif; font-size:24px; font-weight:400; }
.principles p { margin:0; color:rgba(255,255,255,.52); font-size:14px; line-height:1.55; }
.about { padding:110px clamp(24px,8vw,124px); display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; background:var(--paper); }
.about h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(42px,5vw,72px); line-height:1; font-weight:400; letter-spacing:-.035em; }
.about-copy>p { margin:0 0 20px; color:var(--muted); font-size:17px; line-height:1.75; }
.company-facts { margin:40px 0 0; border-top:1px solid var(--line); }
.company-facts div { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:17px 0; border-bottom:1px solid var(--line); }
.company-facts dt { color:var(--muted); font-size:12px; }.company-facts dd { margin:0; font-size:13px; font-weight:700; }
.contact { padding:110px clamp(24px,8vw,124px); background:var(--cream); }
.contact-intro { text-align:center; }
.contact h2 { margin:0 auto 20px; max-width:850px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(46px,6vw,82px); line-height:1; font-weight:400; letter-spacing:-.035em; }
.contact-intro>p:last-child { max-width:610px; margin:0 auto 54px; color:var(--muted); line-height:1.65; }
.contact-grid { display:grid; grid-template-columns:1.25fr .75fr; max-width:1120px; margin:0 auto; background:white; box-shadow:0 22px 60px rgba(30,25,16,.08); }
.enquiry-form { padding:42px; display:grid; gap:20px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.enquiry-form label { display:grid; gap:8px; color:#3d3a34; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; border:1px solid var(--line); border-radius:0; background:#faf8f2; padding:14px; color:var(--ink); font:14px Arial,Helvetica,sans-serif; outline:none; }
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 2px rgba(217,164,65,.14); }
.enquiry-form .button { border:0; cursor:pointer; justify-content:center; }
.form-note { margin:0; color:var(--muted); font-size:11px; text-align:center; }
.enquiry-dialog { width:min(760px,calc(100vw - 32px)); max-height:calc(100vh - 32px); padding:0; border:1px solid rgba(217,164,65,.45); background:var(--cream); color:var(--ink); box-shadow:0 30px 100px rgba(0,0,0,.55); overflow:auto; }
.enquiry-dialog::backdrop { background:rgba(3,4,5,.78); backdrop-filter:blur(7px); }
.enquiry-dialog[open] { animation:enquiry-enter 480ms cubic-bezier(.22,1,.36,1) both; }
.enquiry-dialog[open]::backdrop { animation:enquiry-backdrop-enter 480ms ease-out both; }
@keyframes enquiry-enter { from { opacity:0; transform:translateY(22px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes enquiry-backdrop-enter { from { opacity:0; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce){.enquiry-dialog[open],.enquiry-dialog[open]::backdrop{animation:none}}
.dialog-heading { padding:32px 42px 0; }
.dialog-heading h2 { margin:0 0 10px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(32px,4vw,48px); line-height:1.02; font-weight:400; letter-spacing:-.035em; }
.dialog-heading>p:last-child { margin:0; color:var(--muted); font-size:15px; }
.dialog-close { position:absolute; top:14px; right:16px; z-index:2; width:38px; height:38px; border:1px solid var(--line); background:white; color:var(--ink); font-size:25px; line-height:1; cursor:pointer; }
.popup-form { padding-top:26px; }
.contact-card { padding:42px; background:var(--charcoal); color:white; display:flex; flex-direction:column; }
.contact-card a,.contact-card address { padding:22px 0; border-bottom:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.86); font-size:15px; line-height:1.6; font-style:normal; overflow-wrap:anywhere; }
.contact-card span { display:block; margin-bottom:5px; color:var(--gold-light); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
.button-dark { background:var(--ink); color:white; }
footer { min-height:170px; background:#050505; color:rgba(255,255,255,.5); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding:36px clamp(24px,5vw,76px); font-size:11px; }
footer img { width:205px; height:auto; max-height:76px; object-fit:contain; }
footer p span { display:inline-block; margin-top:8px; color:rgba(255,255,255,.32); font-size:9px; }
footer p:last-child { justify-self:end; }
@media(max-width:820px){.site-header{grid-template-columns:1fr auto;height:76px;padding-inline:20px}.brand img{width:160px;height:auto;max-height:58px}nav{display:none}.header-cta{font-size:10px}.hero{min-height:720px;padding-inline:24px}.hero-content{width:100%}.hero-copy{font-size:16px}.hero-mark{opacity:.55;width:510px;height:510px;right:-270px}.hero-foot span:nth-child(even){display:none}.intro,.approach,.about{grid-template-columns:1fr;gap:48px}.intro{padding-top:80px}.about,.contact{padding:80px 24px}.capabilities{display:block}.capability{min-height:245px;border-left:1px solid var(--line)}.contact-grid,.field-row{grid-template-columns:1fr}.enquiry-form,.contact-card{padding:28px 22px}.dialog-heading{padding:28px 52px 0 22px}.popup-form{padding:22px}.enquiry-dialog{max-height:calc(100dvh - 20px)}footer{grid-template-columns:1fr;text-align:center}footer img,footer p:last-child{justify-self:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
