@font-face{font-family:Manrope;src:url('fonts/manrope-800.ttf') format('truetype');font-style:normal;font-weight:800;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-600.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--blue:#1d74b7;--navy:#122a3a;--gold:#eab84d;--pale:#f7f8f6;--white:#fff;--text:#172027;--muted:#65717a;--line:#dde3e7;--radius:10px;--button-radius:7px;--section-space:104px;--gutter:40px;--ease:cubic-bezier(.22,.7,.3,1);--fast:220ms;--reveal:500ms;--shadow:0 8px 24px #122a3a0b}
*{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth;scroll-padding-top:116px}body{margin:0;color:var(--text);background:var(--white);font:400 16px/1.7 Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{color:var(--navy);font-weight:700;letter-spacing:-.035em}h1{font-size:clamp(3.5rem,6vw,6.5rem);line-height:1.025}h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.12}h3{font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.25;letter-spacing:-.02em}p{color:var(--muted);max-width:62ch;font-size:1rem}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{display:block;max-width:100%;height:auto}p,h1,h2,h3,a,span,dd{overflow-wrap:anywhere}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.wrap{width:min(1240px,calc(100% - var(--gutter)*2));margin:auto}section{padding:var(--section-space) 0;border-bottom:1px solid var(--line)}.skip{position:fixed;top:-100px;background:white;padding:12px;z-index:100}.skip:focus{top:0}.eyebrow{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.78rem;line-height:1.5;letter-spacing:.1em;font-weight:600;text-transform:uppercase;margin-bottom:20px}.eyebrow:before{content:'';width:22px;height:2px;background:var(--gold);flex-shrink:0}.number{font:600 .8rem/1.4 Manrope,Arial,sans-serif;letter-spacing:.06em;color:var(--blue)}
/* Header and shared actions */
.header{position:sticky;top:0;z-index:30;background:white;border-bottom:1px solid var(--line);transition:box-shadow var(--fast)}.header.scrolled{box-shadow:var(--shadow)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:100px;gap:24px}.brand{width:164px;flex-shrink:0}.brand img{width:100%;height:auto}.navlinks{display:flex;align-items:center;gap:22px;font-size:.85rem;font-weight:600}.nav-link{position:relative;padding:12px 0}.nav-link:after{content:'';position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform var(--fast)}.nav-link.is-current:after,.nav-link:focus-visible:after{transform:scaleX(1)}.menu,.nav-eyebrow,.nav-note,.nav-backdrop{display:none}.actions{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:48px;padding:12px 20px;border:1px solid var(--blue);border-radius:var(--button-radius);background:var(--blue);color:white;font-size:.88rem;font-weight:700;line-height:1.4;cursor:pointer;transition:transform var(--fast),box-shadow var(--fast),background-color var(--fast),border-color var(--fast)}.button.outline{background:var(--white);color:var(--navy);border-color:var(--line)}.button:active{transform:scale(.97)}.arrow{display:inline-block;transition:transform var(--fast)}.text-link{display:inline-flex;gap:15px;align-items:center;color:var(--blue);font-size:.9rem;font-weight:700;min-height:44px}
/* Consistent image language: 3:2 content photos, no brand-image effects. */
.hero-image-frame{display:block;overflow:hidden;border-radius:var(--radius);aspect-ratio:3/2;background:var(--pale)}.project-image{display:block;overflow:hidden;border-radius:var(--radius);background:var(--pale)}.hero-image-frame img,.split>figure>img{width:100%;height:100%;object-fit:cover;object-position:center;filter:contrast(1.04) saturate(.9);border-radius:var(--radius)}.split>figure>img{height:auto;aspect-ratio:3/2}.project-image img,.detail-image>img{display:block;width:100%;height:auto;object-fit:contain;filter:contrast(1.04) saturate(.9);border-radius:var(--radius)}figcaption{color:var(--muted);font-size:.75rem;line-height:1.5;padding-top:10px}
/* Hero */
.hero{background:var(--pale);padding:80px 0}.hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:center}.hero h1{overflow-wrap:normal}.hero-line{display:block;animation:rise-in 580ms var(--ease) both}.hero-line:nth-child(2){animation-delay:80ms}.hero-line:nth-child(3){animation-delay:160ms}.hero-final{font-size:.7em;margin-top:.14em;white-space:nowrap}.hero h1 em{font:inherit;color:var(--blue)}.hero .eyebrow{animation:rise-in 450ms var(--ease) both}.hero p{max-width:540px;font-size:1.05rem;margin:28px 0;animation:rise-in 500ms 240ms var(--ease) both}.hero .actions{animation:rise-in 480ms 320ms var(--ease) both}.hero-photo{transform:translateY(var(--parallax,0px))}.hero-image-frame{aspect-ratio:1.08}.hero-image-frame img{animation:image-enter 760ms 180ms var(--ease) both}.hero-photo figcaption{max-width:44ch}
/* Section grids and one reusable architectural card style */
.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}.section-head p{max-width:40ch}.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.split p+p,.split h2+p{margin-top:24px}.services,.approach{background:var(--pale)}.service-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}.service{grid-column:span 2}.service:nth-last-child(-n+2){grid-column:span 3}.service,.why-grid article,.step-copy,.facts{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 2px 6px #122a3a03}.service{position:relative;transition:transform var(--fast),border-color var(--fast),box-shadow var(--fast)}.service-icon{width:32px;height:32px;margin:22px 0;opacity:.8}.service h3{margin-bottom:14px}.service p{font-size:1rem}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.why-grid h3{margin:24px 0 16px}.why-grid article{border-top:2px solid var(--blue)}
/* Portfolio */
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.project-card{display:block;border:1px solid var(--line);border-radius:var(--radius);background:white;overflow:hidden;transition:transform var(--fast),border-color var(--fast),box-shadow var(--fast)}.project-card .project-image{border-radius:0}.project-card .project-image img{border-radius:0}.project-copy{padding:28px}.project-meta{display:flex;align-items:center;gap:16px;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--muted);margin-bottom:15px}.project-meta .number{padding-right:14px;border-right:1px solid var(--line)}.project-card h3{font-size:1.5rem;transition:color var(--fast)}.project-card .location{font-size:.88rem;margin-top:10px}.project-summary{margin-top:17px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.tags span{border:1px solid var(--line);border-radius:5px;padding:5px 10px;background:var(--pale);font-size:.75rem;line-height:1.5;font-weight:600;color:var(--navy)}.project-card .text-link{margin-top:20px}.project-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center}
/* The existing connected five-step approach */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;position:relative;list-style:none;margin:0;padding:0;--progress:0}.steps:before,.steps:after{content:'';position:absolute;top:26px;left:9%;right:9%;height:2px;background:var(--line)}.steps:after{background:var(--blue);transform:scaleX(var(--progress));transform-origin:left;transition:transform 600ms var(--ease)}.steps li{position:relative;z-index:1;text-align:center}.step-number{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 24px;border:5px solid var(--pale);border-radius:50%;background:var(--navy);color:white;font-size:.85rem;font-weight:700;transition:background-color 300ms var(--step-delay,0ms),transform 400ms var(--step-delay,0ms),box-shadow 300ms}.step-copy{padding:24px 16px;min-height:162px;transition:transform var(--reveal) var(--step-delay,0ms),opacity var(--reveal) var(--step-delay,0ms)}.steps h3{font-size:1.15rem}.steps p{font-size:.9rem;margin-top:12px}.js .steps li.active .step-number{background:var(--blue);box-shadow:0 0 0 2px #1d74b728;transform:scale(1.04)}.js .steps li:last-child.active .step-number{background:var(--gold);color:var(--navy)}
/* Contact and footer */
.contact{background:var(--navy);color:white}.contact h2{color:white}.contact .eyebrow,.contact p,.contact-details span{color:#c4d0d8}.contact p{margin:24px 0}.contact-details{display:grid;gap:25px}.contact-details>div{padding-bottom:20px;border-bottom:1px solid #ffffff26}.contact-details span{display:block;font-size:.8rem;margin-bottom:6px}.contact-details a{display:inline-block;font-size:1.15rem;min-height:44px;transition:color var(--fast)}.contact .whatsapp{background:white;border-color:white;color:var(--navy)}.footer{padding:40px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer img{width:150px}.footer p{font-size:.8rem}.footer-nav{display:flex;gap:22px;font-size:.85rem;font-weight:600}.footer-nav a{padding:12px 0}
/* Project pages inherit the same typography, spacing, photos and tags. */
.detail-hero{padding:64px 0 80px;background:var(--pale);border-bottom:1px solid var(--line)}.breadcrumb{font-size:.8rem;color:var(--muted);margin-bottom:40px}.breadcrumb a{color:var(--blue)}.detail-hero h1{max-width:22ch;font-size:clamp(3.5rem,6vw,6.5rem);animation:rise-in 550ms var(--ease) both}.detail-location{font-size:1.05rem;margin-top:24px}.detail-hero .tags{margin-top:24px}.detail-image{margin-top:40px;animation:rise-in 600ms 150ms var(--ease) both}.detail-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:64px;align-items:start}.detail-layout h2{margin-bottom:24px}.overview{font-size:1.05rem}.scope-heading{margin-top:40px}.scope{list-style:none;padding:0;margin:16px 0 0;color:var(--muted)}.scope li{padding:15px 0;border-bottom:1px solid var(--line)}.key-services{margin-top:36px}.facts{margin:0;background:var(--pale)}.facts dt{font-size:.78rem;font-weight:600;color:var(--muted)}.facts dd{margin:6px 0 24px;color:var(--navy);font-weight:600}.facts dd:last-child{margin-bottom:0}.source-note{font-size:.82rem;margin-top:30px}.back-row{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
/* One motion vocabulary */
.reveal{opacity:0;transform:translateY(20px);transition:opacity var(--reveal) var(--reveal-delay,0ms) var(--ease),transform var(--reveal) var(--reveal-delay,0ms) var(--ease)}.reveal.revealed{opacity:1;transform:none}
@keyframes rise-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes image-enter{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px);box-shadow:var(--shadow);background:#155f96}.button.outline:hover,.contact .whatsapp:hover{background:var(--pale)}.button:hover .arrow,.project-card:hover .arrow{transform:translateX(4px)}.nav-link:hover:after{transform:scaleX(1)}.project-card:hover{transform:translateY(-3px);border-color:#8cb5d5;box-shadow:var(--shadow)}.project-card:hover h3{color:var(--blue)}.service:hover{transform:translateY(-3px);border-color:#8cb5d5;box-shadow:var(--shadow)}.contact-details a:hover{color:var(--gold)}}
@media(min-width:761px) and (max-width:1100px){:root{--section-space:80px;--gutter:28px}.navlinks{gap:12px;font-size:.76rem}.navlinks .button{font-size:.75rem;padding:12px}.brand{width:140px}.nav{gap:16px}.hero{padding:64px 0}.hero-grid{gap:24px}.hero h1{font-size:clamp(3rem,5.9vw,4rem)}.hero-final{font-size:.65em}.split{gap:40px}.service-grid{gap:16px}.service{padding:24px}.steps{grid-template-columns:1fr;gap:24px}.steps:before,.steps:after{width:2px;height:auto;left:50%;right:auto;bottom:60px;transform-origin:top}.steps:after{transform:scaleY(var(--progress))}.step-copy{min-height:0;max-width:440px;margin:auto}.detail-layout{gap:36px}.project-copy{padding:24px}}
@media(max-width:760px){:root{--section-space:64px;--gutter:18px}html{scroll-padding-top:108px}h1,.detail-hero h1{font-size:clamp(2.4rem,10vw,3.8rem);line-height:1.04}h2{font-size:clamp(2rem,7.8vw,2.6rem)}h3{font-size:1.3rem}.eyebrow{justify-content:center;font-size:.76rem}.nav{min-height:88px;flex-wrap:wrap}.brand{width:145px}.navlinks{flex-direction:column;width:100%;gap:10px;text-align:center;padding:20px}.js .nav{flex-wrap:nowrap}.js .menu{display:flex;position:relative;z-index:45;flex-shrink:0;width:48px;height:48px;border:1px solid var(--line);border-radius:var(--button-radius);padding:10px;background:white;flex-direction:column;justify-content:center;align-items:center;gap:5px;transition:transform var(--fast)}.menu span{width:22px;height:2px;display:block;background:var(--navy);transition:transform 240ms,opacity 180ms}.menu[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu[aria-expanded=true] span:nth-child(2){opacity:0}.menu[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menu:active{transform:scale(.97)}.header .brand{position:relative;z-index:43}
.js .navlinks{display:flex;position:fixed;z-index:42;top:88px;left:0;right:0;max-height:calc(100dvh - 104px);overflow-y:auto;overscroll-behavior:contain;padding:24px 28px 30px;padding-bottom:max(30px,env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);box-shadow:var(--shadow);align-items:stretch;gap:3px;opacity:0;visibility:hidden;transform:translateY(-14px);transition:transform 260ms var(--ease),opacity 220ms,visibility 0s 260ms}.js .navlinks.open{opacity:1;visibility:visible;transform:none;transition:transform 260ms var(--ease),opacity 220ms,visibility 0s}.navlinks .nav-link{font-size:clamp(1.2rem,5vw,1.6rem);padding:9px 16px;line-height:1.3;min-height:44px;transition:transform 230ms,opacity 230ms,background-color var(--fast)}.js .navlinks .nav-link,.js .navlinks .nav-cta{opacity:0;transform:translateY(8px)}.js .navlinks.open .nav-link,.js .navlinks.open .nav-cta{opacity:1;transform:none;transition-delay:calc(var(--link-order,0)*30ms)}.navlinks .nav-link:active{background:var(--pale)}.nav-link:after{left:35%;right:35%}.nav-eyebrow,.nav-note{display:block;color:var(--muted);font-size:.75rem}.nav-eyebrow{letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}.nav-note{margin-top:18px}.nav-cta{margin-top:17px}.nav-backdrop:not([hidden]){display:block;position:fixed;inset:88px 0 0;width:100%;height:calc(100dvh - 88px);z-index:40;border:0;background:#122a3a80;opacity:0;transition:opacity 220ms}.nav-visible .nav-backdrop{opacity:1}.nav-locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.hero{padding:44px 0 56px}.hero-grid,.split,.detail-layout{grid-template-columns:1fr;gap:32px}.hero-grid,.split,.section-head,.service,.project-copy,.why-grid,.contact,.footer,.detail-hero,.detail-layout{text-align:center}.hero h1{font-size:clamp(2.4rem,10vw,3.8rem)}.hero-final{font-size:.79em;white-space:normal}.hero p{font-size:1rem;max-width:95%;margin:24px auto}.hero .actions,.actions{justify-content:center}.hero-photo{transform:none}.hero-image-frame{aspect-ratio:3/2}.hero-photo figcaption{margin:auto}.button{font-size:.84rem;padding:12px 16px;gap:12px}.section-head{display:block;margin-bottom:32px}.section-head p{margin:20px auto 0}p{margin-left:auto;margin-right:auto}.split p+p,.split h2+p{margin-top:20px}.service-grid,.project-grid,.why-grid{grid-template-columns:1fr;gap:20px}.service,.service:nth-last-child(-n+2){grid-column:auto}.service,.why-grid article,.facts{padding:26px}.service-icon{margin:20px auto}.project-copy{padding:24px 20px}.project-meta,.tags{justify-content:center}.project-card h3{font-size:1.4rem}.project-card:last-child:nth-child(odd){display:block;grid-column:auto}.project-card:last-child:nth-child(odd) .project-image{min-height:0;height:auto}.project-card:active{transform:scale(.985)}.steps{grid-template-columns:1fr;gap:24px}.steps:before,.steps:after{top:26px;bottom:60px;left:50%;right:auto;width:2px;height:auto}.steps:after{transform:scaleY(var(--progress));transform-origin:top;transition:transform 120ms linear}.step-copy{min-height:0;max-width:340px;margin:auto;padding:24px}.step-number{margin-bottom:16px}.contact-details a{font-size:1rem}.footer-inner{flex-direction:column;gap:22px}.footer-nav{gap:24px}.detail-hero{padding:40px 0 56px}.breadcrumb{margin-bottom:30px}.detail-hero h1{margin:auto}.detail-location{font-size:1rem}.detail-image{margin-top:30px}.detail-layout h2{margin-bottom:20px}.scope li{padding:16px 0}.back-row{margin-top:32px}.back-row .button{flex:1 1 155px}.source-note{font-size:.8rem}.facts{text-align:center}.key-services{margin-top:30px}
}
@media(max-width:760px) and (max-height:660px){.js .navlinks{padding:14px 24px 18px}.navlinks .nav-link{font-size:1.1rem;padding:7px 12px}.nav-note{display:none}.nav-eyebrow{margin-bottom:5px}.nav-cta{margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.hero-photo{transform:none}.steps:after{transform:scale(1)}}
@media print{.reveal{opacity:1;transform:none}.header{position:static}.menu,.nav-backdrop{display:none}section{break-inside:avoid}.hero-line{opacity:1;transform:none}}

/* Hero refinement: authentic extra-bold type and restrained drafting grid. */
.hero{background-color:var(--pale);background-image:linear-gradient(rgba(29,116,183,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(29,116,183,.065) 1px,transparent 1px);background-size:48px 48px;background-position:center top}
.hero h1{font-weight:800;font-size:clamp(3.8rem,6vw,6.6rem);line-height:.98;letter-spacing:-.04em}
.hero-final{font-size:.7em;margin-top:.2em}
@media(min-width:761px) and (max-width:1100px){.hero h1{font-size:clamp(3rem,5.9vw,4rem)}.hero-final{font-size:.65em}}
@media(max-width:760px){.hero{background-size:36px 36px}.hero h1{font-size:clamp(2.6rem,11vw,4.1rem);line-height:1;max-width:100%;margin-inline:auto}.hero-final{font-size:.73em;line-height:1.1;margin-top:.24em}}

/* Services and agency work records, aligned with the shared design system. */
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service,.service:nth-last-child(-n+2){grid-column:auto}.service:last-child{grid-column:1/-1}.service h3{max-width:32ch}.service p{max-width:48ch}.service .tags{margin-top:18px}
.clients{background:var(--pale)}.client-featured{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.client-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px;transition:border-color var(--fast),box-shadow var(--fast)}.client-card h3{font-size:1.4rem;max-width:32ch}.client-region{font-size:.78rem;letter-spacing:.03em;font-weight:600;margin-bottom:12px;color:var(--blue)}.client-summary{margin-top:18px}.client-divisions{font-size:.8rem;margin-top:14px}.client-card .tags span{transition:background-color var(--fast),border-color var(--fast)}.client-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;margin-top:32px}.client-compact h3{font-size:1.1rem}.client-compact .client-summary{font-size:.95rem;margin-top:10px}.client-compact .client-card:last-child{grid-column:1/-1}.client-compact .client-region{margin-bottom:8px}.footer-nav{flex-wrap:wrap}
@media(hover:hover) and (pointer:fine){.client-card:hover{border-color:var(--blue);box-shadow:var(--shadow)}.client-card:hover .tags span{border-color:#b8ccdc;background:#edf4f9}}
@media(max-width:760px){.service-grid,.client-featured,.client-compact{grid-template-columns:1fr}.service:last-child{grid-column:auto}.service h3,.service p,.client-card h3{margin-left:auto;margin-right:auto}.client-card{text-align:center;padding:26px 22px}.client-compact{gap:16px;margin-top:24px}.client-card:active{border-color:var(--blue)}.footer-nav{justify-content:center}.contact-details p{margin:10px auto 0}}
.client-card.reveal{transition:opacity var(--reveal) var(--reveal-delay,0ms) var(--ease),transform var(--reveal) var(--reveal-delay,0ms) var(--ease),border-color var(--fast),box-shadow var(--fast)}

/* Project conversion CTA and equally weighted case-study navigation. */
.project-back{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-bottom:28px;color:var(--blue);font-size:.85rem;font-weight:600;transition:transform var(--fast)}
.project-back:active{transform:scale(.97)}
.project-cta{margin-top:64px;padding:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--pale);text-align:center}
.project-cta h2{font-size:clamp(1.75rem,3vw,2.5rem)}.project-cta p{margin:20px auto 24px}
.project-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px}
.project-nav-link{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--navy);font-size:.95rem;font-weight:600;transition:border-color var(--fast),box-shadow var(--fast),transform var(--fast)}
.project-nav-label{font-size:.75rem;color:var(--muted);font-weight:700;letter-spacing:.03em}.project-nav-link:active{transform:scale(.98)}
@media(hover:hover) and (pointer:fine){.project-back:hover .arrow{transform:translateX(-4px)}.project-nav-link:hover{border-color:var(--blue);box-shadow:var(--shadow)}}
@media(max-width:760px){.project-cta{margin-top:40px;padding:28px 20px}.project-pagination{gap:12px}.project-nav-link{padding:18px 12px;font-size:.85rem;text-align:center}.project-nav-label{font-size:.68rem}}

/* Editorial hero collage: four service domains plus a drawn rail study. */
.hero-grid{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);gap:clamp(36px,5.4vw,76px)}
.hero-copy{max-width:620px}
.hero h1{font-size:clamp(3.2rem,5.4vw,5rem);line-height:.99}
.hero-final{font-size:.72em;white-space:normal}
.hero .eyebrow{color:var(--blue)}
.hero .actions{gap:12px}
.hero-arrow-icon svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-photo{width:100%;max-width:570px;margin-inline:auto}
.hero-mosaic{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;aspect-ratio:1.08;padding:10px;overflow:hidden;border:1px solid #dce4e9;border-radius:16px;background:#ffffffb8;box-shadow:0 22px 48px #122a3a12}
.hero-tile{position:relative;min-height:0;overflow:hidden;border-radius:9px;background:var(--navy)}
.hero-tile img{width:100%;height:100%;object-fit:cover;filter:contrast(1.04) saturate(.9);transition:transform 550ms var(--ease)}
.hero-tile-road img{object-position:center 54%}
.hero-tile-bridge img{object-position:center 48%}
.hero-tile-building img{object-position:center 38%}
.hero-tile-label{position:absolute;z-index:1;left:10px;bottom:10px;padding:5px 8px;border:1px solid #ffffff40;border-radius:4px;background:#122a3ae8;color:white;font-size:.68rem;font-weight:700;line-height:1.35;letter-spacing:.025em}
.hero-tile-rail{background:linear-gradient(145deg,#193c54,#102738 76%)}
.hero-photo figcaption{max-width:none;padding:11px 2px 0;font-size:.72rem}
@media(hover:hover) and (pointer:fine){.hero-tile:hover img{transform:scale(1.045)}}
@media(min-width:761px) and (max-width:1100px){.hero-grid{gap:32px}.hero h1{font-size:clamp(2.8rem,5.4vw,4rem)}.hero-mosaic{gap:9px;padding:8px}.hero-tile-label{left:8px;bottom:8px;font-size:.62rem}}
@media(max-width:760px){.hero{padding:30px 0 42px}.hero-grid{grid-template-columns:minmax(0,1fr);gap:22px}.hero-copy{margin-inline:auto;text-align:center}.hero h1{font-size:clamp(2.45rem,10.5vw,3.85rem);line-height:1.02}.hero-final{font-size:.74em;line-height:1.1;margin-top:.2em}.hero .eyebrow{justify-content:center}.hero p{max-width:36ch;margin:14px auto}.hero .actions{width:min(100%,330px);margin-inline:auto;flex-direction:column;align-items:stretch;gap:8px}.hero .button{width:100%;min-height:44px}.hero-photo{transform:none}.hero-mosaic{gap:8px;padding:8px;border-radius:13px;aspect-ratio:1.18}.hero-tile-label{left:7px;bottom:7px;padding:4px 6px;font-size:.58rem}.hero-photo figcaption{font-size:.68rem;text-align:center}}
@media(min-width:381px) and (max-width:760px){.hero-mosaic{aspect-ratio:1.32}}
@media(max-width:380px){.hero-mosaic{gap:6px;padding:6px}.hero-tile-label{left:5px;bottom:5px;font-size:.55rem}}

/* Keep project covers between the project intro and its details. */
.detail-hero{padding-bottom:40px}.detail-intro{margin:20px 0 0}.detail-content{padding-top:40px}.detail-layout{margin-top:40px}
.detail-layout{grid-template-areas:"detail-copy facts"}.detail-layout>div{grid-area:detail-copy}.detail-layout>.facts{grid-area:facts}
@media(max-width:760px){.detail-layout{grid-template-areas:"facts" "detail-copy"}}
