/* Habitat Creators: one visual system for the corporate site and its applications. */
:root {
 --type-page:clamp(2.7rem,4.6vw,4.8rem);
 --type-section:clamp(2.1rem,3.2vw,3.25rem);
 --pale-blue:#cadde1;
}
:where(.firm-hero,.page-dossier,.project-dossier,.portfolio-record)>* { min-width:0 }
.label,.eyebrow { font-size:.6875rem; letter-spacing:.14em; font-weight:600 }
h1,h2,h3 { color:var(--ink) }
.site-header { min-height:96px; padding-block:18px; gap:40px; background:#151819f5; border-bottom:1px solid #344147; backdrop-filter:blur(16px) }
.brand { width:164px }
.header-location { font-size:.6875rem; color:#a6b7bd; line-height:1.7 }
.desktop-nav { gap:32px }
.desktop-nav a { font-size:.8125rem; font-weight:500; color:#d9e0e3 }
.desktop-nav a:last-child { border-color:#778f99; padding:10px 24px }
.desktop-nav a[aria-current],.desktop-nav a:hover { color:var(--pale-blue) }
.line-link,.light-link { font-size:.875rem; gap:30px; border-color:var(--brand); color:var(--ink); padding-block:12px; min-height:44px }
.solid-link { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:50px; padding:14px 22px; border:1px solid var(--brand); background:var(--brand); color:var(--night); font-size:.875rem; font-weight:600; line-height:1.5; transition:background .2s,color .2s }
.solid-link>span { font-size:1.25rem }
.solid-link:hover { background:var(--pale-blue); border-color:var(--pale-blue) }
.solid-link:focus-visible { outline-color:var(--brand) }
.solid-link>span { transition:transform .2s ease }
.solid-link:is(:hover,:focus-visible) { background:var(--pale-blue); border-color:var(--pale-blue) }
.solid-link:is(:hover,:focus-visible)>span { transform:translate(2px,-2px) }
.desktop-nav a:focus-visible { color:var(--pale-blue) }
.desktop-nav a:focus-visible::after { width:100% }
.desktop-nav a:last-child:is(:hover,:focus-visible) { background:var(--pale-blue); border-color:var(--pale-blue); color:var(--night) }
.line-link:focus-visible>span { transform:translate(3px,-3px) }

/* Corporate identity and an illustrative architectural concept lead the homepage. */
/* Logo, message and actions share one centered axis. */
.firm-hero { display:grid; grid-template-columns:minmax(0,1fr); grid-template-areas:'identity' 'copy' 'services'; gap:24px; padding-block:40px 0; text-align:center }
.firm-hero-copy { grid-area:copy; padding:0; width:100%; max-width:920px; justify-self:center }
.firm-hero h1 { font-size:clamp(3rem,4.45vw,4.65rem); line-height:1.1; letter-spacing:-.047em; font-weight:500; text-wrap:balance }
.firm-hero h1 span { color:var(--pale-blue) }
.firm-hero-summary { max-width:650px; margin:20px auto 0; font-size:1rem; line-height:1.8 }
.firm-hero-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; width:min(100%,420px); margin:24px auto 0 }
.firm-hero-links .solid-link { width:100%; gap:16px }
.hero-location { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; margin-top:22px; font-size:.6875rem; letter-spacing:.05em; color:#a4b5bc }
.hero-location>span { padding-left:22px; border-left:1px solid var(--line) }
.brand-signature { grid-area:identity; display:flex; justify-content:center; align-items:center; min-width:0; width:100%; padding:0 }
.signature-mark { width:112px; max-width:100%; aspect-ratio:1977/1996 }
.signature-mark img { width:100%; height:auto }
.brand-signature-compact { grid-area:auto }
.firm-approach { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--grid-gap); background:var(--surface); border-block:1px solid var(--line); padding-block:80px }
.firm-approach>* { min-width:0 }
.firm-approach .label { margin-bottom:24px }
.firm-approach h2 { font-size:var(--type-section); line-height:1.15 }
.firm-approach .line-link { margin-top:30px }
.approach-detail>p { font-size:1.0625rem; line-height:1.85; max-width:570px }
.approach-roles { margin:32px 0 0 }
.approach-roles>div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:24px; padding-block:20px; border-top:1px solid var(--line) }
.approach-roles dt { color:var(--brand); font-size:.8125rem }
.approach-roles dd { margin:0; color:var(--muted); font-size:.9375rem; line-height:1.75 }
.expertise-sequence { padding:32px 36px; border:1px solid var(--line); background:var(--surface); min-width:0 }
.expertise-sequence ol { list-style:none; padding:0; margin:20px 0 0 }
.expertise-sequence li { display:grid; grid-template-columns:24px minmax(0,1fr); gap:24px; padding-block:20px; border-top:1px solid var(--line) }
.expertise-sequence li>span { color:var(--brand); font-size:.6875rem; padding-top:3px }
.expertise-sequence li>div { font-size:1.2rem; letter-spacing:-.02em; line-height:1.5 }
.expertise-sequence small { display:block; color:var(--muted); font-size:.8125rem; letter-spacing:0; margin-top:4px }
.firm-services { grid-area:services; text-align:left; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); margin-top:20px }
.firm-services>a { display:block; min-width:0; padding:30px 30px 38px 0 }
.firm-services>a+a { border-left:1px solid var(--line); padding-left:30px }
.service-index { display:block; color:var(--brand); font-size:.6875rem; text-transform:uppercase; letter-spacing:.11em; margin-bottom:16px }
.firm-services h2 { display:flex; justify-content:space-between; gap:14px; align-items:start; font-size:1.2rem; letter-spacing:-.022em; line-height:1.4; font-weight:500 }
.firm-services h2>span { flex-shrink:0; color:var(--brand); font-size:1.1rem }
.firm-services p { font-size:.875rem; line-height:1.7; margin-top:10px; max-width:350px }
.firm-services>a { position:relative; transition:background .2s ease }
.firm-services>a::before { content:''; position:absolute; top:-1px; left:0; right:0; height:2px; background:var(--brand); transform:scaleX(0); transform-origin:left; transition:transform .2s ease }
.firm-services h2>span { transition:transform .2s ease }
.firm-services a:is(:hover,:focus-visible) h2 { color:var(--pale-blue) }
.firm-services a:is(:hover,:focus-visible)::before { transform:scaleX(1) }
.firm-services a:is(:hover,:focus-visible) h2>span { transform:translate(2px,-2px) }
.firm-services a:focus-visible { outline-offset:-6px }
.capital-focus { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--grid-gap); padding-block:88px; background:var(--surface-deep) }
.capital-focus>* { min-width:0 }
.capital-focus .label { color:var(--brand) }
.capital-focus h2 { font-size:clamp(2.2rem,3.5vw,3.4rem); line-height:1.14; margin-block:28px; color:var(--pale-blue) }
.capital-focus-heading>p:not(.label) { max-width:460px; font-size:1rem; line-height:1.8 }
.capital-focus .line-link { margin-top:24px }
.capital-disciplines article { display:grid; grid-template-columns:28px minmax(0,1fr); gap:24px; padding-block:27px; border-top:1px solid var(--line) }
.capital-disciplines article:first-child { padding-top:22px }
.capital-disciplines article>span { color:var(--brand); font-size:.75rem; padding-top:4px }
.capital-disciplines h3 { font-size:1.5rem; margin-bottom:12px; letter-spacing:-.025em }
.capital-disciplines p { font-size:.9375rem; line-height:1.8 }
/* Company, expertise and development details. */
.page-dossier,.project-dossier { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,1fr); gap:64px; align-items:center; padding-block:64px 80px }
.company-hero { display:flex; flex-direction:column; gap:24px; padding-block:40px 64px; text-align:center }
.company-hero .dossier-copy { width:100%; max-width:900px }
.company-hero .dossier-copy>.label { margin-bottom:16px }
.company-hero .dossier-summary { margin:20px auto 0; max-width:690px }
.company-hero .dossier-facts { max-width:690px; margin:26px auto 0 }
.company-hero .dossier-links { justify-content:center }
.dossier-copy,.dossier-visual { min-width:0 }
.dossier-copy>.label { margin-bottom:25px }
.dossier-copy h1 { font-size:clamp(2.7rem,4vw,4rem); line-height:1.12; letter-spacing:-.04em; text-wrap:initial }
.dossier-summary { font-size:1rem; line-height:1.85; margin-top:28px; max-width:610px }
.dossier-summary+p { margin-top:20px; font-size:.9375rem; line-height:1.85 }
.dossier-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:28px 0 0; padding-top:24px; border-top:1px solid var(--line) }
.dossier-facts>div { min-width:0 }
.dossier-facts dt,.record-facts dt { font-size:.6875rem; text-transform:uppercase; letter-spacing:.08em; color:var(--brand); margin-bottom:9px }
.dossier-facts dd { margin:0; font-size:.875rem; line-height:1.75 }
.dossier-links { display:flex; flex-wrap:wrap; gap:8px 30px; margin-top:24px }
.dossier-links .line-link { font-size:.8125rem }
.dossier-visual { align-self:center; padding:0; margin:0; border:0; background:none; position:static }
.dossier-visual img { aspect-ratio:1.45; object-fit:cover; object-position:center 57% }
.dossier-visual figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 20px; padding:16px 0; border-bottom:1px solid var(--line); font-size:.6875rem; letter-spacing:0 }
.dossier-visual figcaption>span:first-child { color:var(--ink) }
.dossier-scope { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; margin-top:28px }
.dossier-scope a { display:flex; gap:14px; align-items:baseline; padding:14px 0; border-top:1px solid var(--line); font-size:.8125rem }
.dossier-scope a>span:first-child { color:var(--brand); font-size:.6875rem }
.project-dossier { padding-top:44px }
.project-dossier .back-link { display:inline-block; margin-bottom:28px; font-size:.8125rem; color:var(--brand) }
.project-dossier .dossier-copy>.label { margin-bottom:20px }
.project-dossier .dossier-facts { grid-template-columns:repeat(3,minmax(0,1fr)) }
.project-dossier .dossier-visual img { aspect-ratio:1.6 }
.project-credit { font-size:.75rem; color:var(--muted); margin-top:20px }
.company-overview { background:var(--surface); border-block:1px solid var(--line); grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); padding-block:72px }
.company-overview h2 { font-size:var(--type-section) }
.company-scope { padding-top:0; max-width:none; justify-self:stretch }
.company-scope p { font-size:1rem }
.company-scope .line-link { margin-top:24px }
.engagement-model { padding-block:72px }
.engagement-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--grid-gap); margin-top:40px }
.engagement-grid article { min-width:0; padding-top:28px; border-top:1px solid var(--line) }
.engagement-grid h3 { font-size:1.85rem; margin-block:22px }
.engagement-grid article>p:not(.label) { font-size:1rem; max-width:580px }
.engagement-grid p+p { margin-top:18px }
.expertise-overview { padding-block:0 72px }
.capability { padding-block:38px; gap:40px }
.capability h2 { font-size:clamp(1.8rem,2.8vw,2.65rem); line-height:1.18 }
.capability p { font-size:1rem }
.capability ul { font-size:.9375rem; margin-top:24px }
.development-brief { padding-block:0 72px }
.brief-heading { display:grid; grid-template-columns:1fr 2fr; gap:var(--grid-gap); padding-top:32px; margin-bottom:36px; border-top:1px solid var(--line) }
.brief-heading h2 { font-size:clamp(1.9rem,2.8vw,2.7rem) }
.brief-heading .label { padding-top:6px }
.brief-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px }
.brief-grid article { min-width:0; padding-top:24px; border-top:1px solid var(--line) }
.brief-grid h3 { font-size:1.5rem; margin-block:20px 16px; line-height:1.3; letter-spacing:-.025em }
.brief-grid article>p:last-child { font-size:.9375rem; line-height:1.85 }
.development-brief>.line-link { margin-top:30px }
.page-heading { padding-block:64px 40px }
.page-heading h1,.route-portfolio .page-heading h1 { font-size:var(--type-page); line-height:1.12 }
.heading-summary { font-size:1rem; line-height:1.85 }
.portfolio-jumps { padding-bottom:44px }
.portfolio-index { padding-bottom:72px }
.portfolio-record { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; padding:40px 0; border-top:1px solid var(--line); scroll-margin-top:120px; align-items:center }
.portfolio-record-copy { min-width:0 }
.portfolio-record h2 { margin-block:22px; font-size:clamp(2rem,3vw,3rem); line-height:1.15 }
.portfolio-record-copy>p:not(.label) { font-size:1rem; line-height:1.8; max-width:570px }
.record-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:26px 0 0; padding-top:22px; border-top:1px solid var(--line) }
.record-facts>div { min-width:0 }
.record-facts dd { margin:0; font-size:.875rem; line-height:1.75 }
.portfolio-record .line-link { margin-top:20px }
.portfolio-record-visual { min-width:0 }
.portfolio-record-visual>a { display:block; overflow:hidden }
.portfolio-record-visual img { aspect-ratio:1.45; object-fit:cover; object-position:center 57%; transition:transform .6s }
.portfolio-record-visual a:hover img { transform:scale(1.025) }
.portfolio-record-visual figcaption { padding:14px 0; border-bottom:1px solid var(--line); font-size:.6875rem }
.pipeline { background:var(--surface); padding-block:72px }
.pipeline .pipeline-detail p { font-size:.9375rem }

/* The same edge treatment carries through every image gallery. */
.project-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; padding-bottom:72px }
.project-gallery.gallery-count-3 { grid-template-columns:repeat(3,minmax(0,1fr)) }
.gallery-heading { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid var(--line); padding-top:32px; margin-bottom:4px }
.gallery-heading h2 { font-size:2.25rem }
.project-gallery figure { min-width:0; margin:0; padding:0; border:0; background:none }
.project-gallery figcaption { padding:14px 0; font-size:.75rem; border-bottom:1px solid var(--line) }
.gallery-open { display:block; position:relative; width:100%; border:0; padding:0; background:var(--night); text-align:left; cursor:zoom-in; overflow:hidden }
.gallery-open img { aspect-ratio:1.7; object-fit:cover; transition:transform .6s }
.gallery-open:hover img { transform:scale(1.025) }
.gallery-open>span { position:absolute; bottom:0; right:0; padding:8px 12px; font-size:.6875rem; background:#151819ef; color:#eef3f5 }
.image-viewer { padding:24px; border:1px solid var(--line); width:min(1280px,94vw); max-height:94dvh; background:var(--night); color:var(--ink); overflow:auto }
.image-viewer::backdrop { background:rgba(4,8,10,.94) }
.viewer-toolbar,.viewer-controls { display:flex; align-items:center; justify-content:space-between; gap:20px }
.viewer-toolbar { margin-bottom:20px }
.viewer-toolbar button,.viewer-controls button { border:1px solid var(--line); background:var(--surface); font-size:.8125rem; padding:10px 16px; min-height:44px }
.viewer-toolbar button:hover,.viewer-controls button:hover { background:var(--pale-blue); color:var(--night) }
.image-viewer .viewer-image { max-height:68dvh; width:100%; object-fit:contain }
.viewer-caption { padding-block:14px; font-size:.8125rem }
.viewer-position { font-size:.8125rem; white-space:nowrap }

/* Contact and footer share the site's reading scale and pale-blue accents. */
.contact-heading { padding-top:64px }
.contact-heading h1 { font-size:var(--type-page); color:var(--pale-blue) }
.contact-heading .heading-summary { font-size:1rem }
.contact-methods .label,.contact-person .label { font-size:.6875rem }
.email-address { font-size:clamp(1.3rem,2.55vw,2.5rem) }
.contact-person { border-top-color:var(--line) }
.contact-name { font-size:1.9rem }
.contact-person>p:last-child { font-size:1rem }
.contact-intent { background:var(--surface); padding-block:64px }
.contact-intent p { font-size:.9375rem }
.legal-copy p { font-size:1rem }
.site-footer { background:#101416; color:#e3eaed }
.footer-top { padding-block:64px; grid-template-columns:1fr 2fr 1fr; border-bottom-color:var(--line) }
.site-footer .footer-invitation h2 { color:var(--pale-blue); font-size:clamp(2.4rem,4vw,4.25rem); line-height:1.12 }
.footer-intro { font-size:.8125rem }
.footer-main { padding-block:42px }
.footer-contact>a,.footer-main .footer-nav a { font-size:.875rem }
.footer-main>p { font-size:.75rem }
.footer-bottom { font-size:.6875rem; color:#aab7bd }

@media(max-width:1120px) {
 .desktop-nav { display:none } .menu-button { display:flex }
 .firm-hero { gap:24px; padding-top:36px }
 .firm-hero h1 { font-size:clamp(2.6rem,4.4vw,3.4rem) }
 .firm-hero-summary { font-size:.9375rem }
 .firm-services>a { padding-right:24px } .firm-services>a+a { padding-left:24px }
 .firm-services h2 { font-size:1.05rem }
 .page-dossier,.project-dossier { gap:36px }
 .portfolio-record { gap:36px }
 .footer-top { grid-template-columns:1fr 2fr }
 .footer-intro { grid-column:2 }
}
@media(max-width:800px) {
 .signature-mark { width:96px }
 .firm-approach .line-link { margin-top:24px }
 .site-header { min-height:84px; padding-block:14px }
 .brand { width:148px }
 .firm-hero { gap:24px; padding-top:32px }
 .firm-hero-copy { padding-bottom:0 }
 .firm-hero h1 { font-size:clamp(2.8rem,6.8vw,4rem) }
 .firm-hero-summary { max-width:580px; font-size:1rem }
 .hero-location { margin-top:24px }
 .firm-services { grid-template-columns:1fr; margin-top:0 }
 .firm-services>a,.firm-services>a+a { border-left:0; padding:22px 0 }
 .firm-services>a+a { border-top:1px solid var(--line) }
 .firm-services h2 { font-size:1.15rem }
 .service-index { margin-bottom:10px }
 .firm-services p { max-width:600px; font-size:.9375rem }
 .capital-focus,.firm-approach { grid-template-columns:1fr; gap:36px; padding-block:60px }
 .capital-focus-heading>p:not(.label) { max-width:600px }
 .capital-focus h2 br:last-child { display:none }
 .page-dossier,.project-dossier { grid-template-columns:1fr; gap:36px; padding-block:42px 56px }
 .company-hero { gap:24px; padding-top:32px }
 .dossier-copy h1 { font-size:clamp(2.6rem,6.5vw,3.6rem) }
 .dossier-summary { max-width:650px }
 .dossier-visual img,.project-dossier .dossier-visual img { aspect-ratio:1.85 }
 .company-overview { grid-template-columns:1fr; gap:32px }
 .company-overview,.engagement-model { padding-block:60px }
 .company-overview .label { margin-bottom:22px }
 .engagement-grid { grid-template-columns:1fr; gap:36px }
 .brief-heading { grid-template-columns:1fr; gap:20px }
 .brief-grid { grid-template-columns:1fr; gap:28px }
 .brief-grid article { display:grid; grid-template-columns:1fr 2fr; gap:12px 28px }
 .brief-grid h3 { grid-column:2; grid-row:1; margin:0 }
 .brief-grid article>p:last-child { grid-column:2 }
 .portfolio-record { grid-template-columns:1fr; gap:28px }
 .portfolio-record-visual img { aspect-ratio:1.85 }
 .record-facts { grid-template-columns:repeat(3,minmax(0,1fr)) }
 .project-gallery.gallery-count-3 { grid-template-columns:1fr 1fr }
 .project-gallery.gallery-count-3 figure:last-child { grid-column:1/-1 }
 .capability { gap:24px }
 .footer-top { grid-template-columns:1fr; gap:22px }
 .footer-intro { grid-column:auto }
}
@media(max-width:600px) {
 .signature-mark { width:84px }
 .firm-approach h2 { font-size:2.2rem }
 .approach-detail>p { font-size:.9375rem }
 .approach-roles>div { grid-template-columns:1fr; gap:8px }
 .expertise-sequence { padding:26px 24px }
 .expertise-sequence li { gap:16px }
 .expertise-sequence li>div { font-size:1.1rem }
 :root { --type-section:2.2rem; --type-page:clamp(2.4rem,9vw,3rem) }
 .site-header { min-height:80px; gap:20px }
 .brand { width:136px }
 .firm-hero { padding-top:28px; gap:22px }
 .firm-hero h1 { font-size:clamp(2rem,8.6vw,3.4rem); line-height:1.12 }
 .firm-hero-summary { margin-top:22px; font-size:.9375rem }
 .firm-hero-links { gap:12px; margin-top:26px }
 .firm-hero-links .solid-link { font-size:.8125rem; gap:12px }
 .firm-hero-links .solid-link { padding-inline:16px }
 .hero-location { display:flex; font-size:.625rem; gap:8px 12px; margin-top:20px }
 .hero-location>span { padding-left:12px }
 .firm-services>a,.firm-services>a+a { padding-block:24px }
 .service-index { font-size:.625rem }
 .firm-services h2 { font-size:1.1rem }
 .firm-services p { font-size:.875rem }
 .capital-focus,.firm-approach { padding-block:52px }
 .capital-focus h2 { font-size:2.3rem }
 .capital-focus h2 br:last-child { display:block }
 .capital-disciplines article { gap:18px; grid-template-columns:20px minmax(0,1fr); padding-block:24px }
 .capital-disciplines h3 { font-size:1.45rem }
 .capital-disciplines p { font-size:.9375rem }
 .dossier-copy h1 { font-size:clamp(2.4rem,9vw,3rem) }
 .dossier-copy>.label { margin-bottom:20px }
 .dossier-summary { font-size:.9375rem; margin-top:24px }
 .dossier-facts { gap:22px; margin-top:24px }
 .dossier-facts dt,.record-facts dt { font-size:.625rem; letter-spacing:.06em }
 .dossier-facts dd { font-size:.875rem; overflow-wrap:anywhere }
 .dossier-links { gap:8px 24px; margin-top:20px }
 .dossier-links .line-link { font-size:.8125rem }
 .dossier-visual img,.project-dossier .dossier-visual img { aspect-ratio:1.5 }
 .dossier-visual figcaption { font-size:.6875rem }
 .dossier-scope { grid-template-columns:1fr; margin-top:24px }
 .project-dossier .dossier-facts { grid-template-columns:1fr 1fr }
 .project-dossier .dossier-facts>div:last-child { grid-column:1/-1 }
 .company-overview,.engagement-model { padding-block:52px }
 .company-scope p,.engagement-grid article>p:not(.label) { font-size:.9375rem }
 .brief-grid article { display:block }
 .brief-grid h3 { margin-block:16px }
 .development-brief { padding-bottom:52px }
 .brief-heading { padding-top:28px }
 .brief-heading h2 { font-size:2rem }
 .page-heading { padding-block:40px 30px }
 .heading-summary { font-size:.9375rem }
 .portfolio-jumps { padding-bottom:28px }
 .portfolio-record { padding-block:32px }
 .portfolio-record h2 { font-size:2.1rem }
 .portfolio-record-copy>p:not(.label) { font-size:.9375rem }
 .record-facts { grid-template-columns:1fr 1fr }
 .record-facts dd { font-size:.8125rem; overflow-wrap:anywhere }
 .portfolio-record-visual img { aspect-ratio:1.5 }
 .pipeline { padding-block:48px }
 .project-gallery,.project-gallery.gallery-count-3 { grid-template-columns:1fr; gap:28px; padding-bottom:52px }
 .project-gallery figure { grid-column:auto }
 .gallery-heading { flex-direction:column; align-items:start; gap:16px }
 .gallery-heading h2 { font-size:2rem }
 .image-viewer { padding:12px; width:96vw }
 .viewer-toolbar button,.viewer-controls button { padding:10px; font-size:.75rem }
 .contact-heading { padding-top:40px }
 .contact-heading h1 { font-size:var(--type-page) }
 .contact-heading .heading-summary,.contact-person>p:last-child { font-size:.9375rem }
 .email-address { font-size:clamp(1.05rem,4.7vw,1.65rem) }
 .phone-row p:not(.label) { font-size:.875rem }
 .contact-intent { padding-block:48px }
 .legal-copy p { font-size:.9375rem }
 .footer-top { padding-block:48px }
 .site-footer .footer-invitation h2 { font-size:2.65rem }
 .footer-contact>a,.footer-main .footer-nav a { font-size:.8125rem }
 .footer-main { gap:30px 22px }
 .footer-contact { grid-column:1/-1 }
 .footer-main .footer-nav { justify-self:start }
 .footer-main>p { justify-self:end; text-align:right }
 .footer-intro,.footer-bottom { font-size:.75rem }
}
@media(max-width:400px) { .route-company .dossier-facts { grid-template-columns:1fr } }
@media(max-width:360px) { .phone-row { grid-template-columns:1fr } .firm-hero-links { grid-template-columns:1fr; max-width:230px } }

/* Application controls retain their validated interaction states. */
[hidden] { display:none!important }
.careers-application { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; padding-block:56px 80px; align-items:start }
.careers-introduction,.application-panel { min-width:0 }
.careers-introduction>.label { margin-bottom:24px }
.careers-introduction h1 { font-size:clamp(2.6rem,4.3vw,4.1rem); line-height:1.08; margin-bottom:28px }
.careers-introduction>p:not(.label) { max-width:440px; font-size:1rem; line-height:1.8 }
.careers-interests { margin-block:40px; padding-top:26px; border-top:1px solid var(--line) }
.careers-interests .label { font-size:.75rem }
.careers-interests ul { list-style:none; padding:0; margin:20px 0 0; font-size:.875rem; line-height:1.9 }
.careers-interests li+li { margin-top:12px }
.careers-introduction .careers-confidential { font-size:.8125rem }
.careers-confidential a { display:block; margin-top:14px; color:var(--ink); text-decoration:underline; text-underline-offset:4px }
.application-panel { border:1px solid var(--line); background:var(--surface); padding:36px }
.application-heading { margin-bottom:30px }
.application-heading h2 { font-size:1.85rem; margin-bottom:12px }
.application-heading p { font-size:.8125rem }
.application-fields { display:grid; grid-template-columns:1fr 1fr; gap:22px }
.form-wide { grid-column:1/-1 }
.form-field { min-width:0 }
.form-field>label { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; font-size:.875rem; margin-bottom:10px; color:var(--white) }
.form-field>label>span:not([aria-hidden]) { color:var(--muted); font-size:.75rem; margin-left:auto }
.form-field :is(input:not([type=file]),select,textarea) { display:block; width:100%; border:1px solid #657377; padding:12px 14px; min-height:48px; background:var(--night); color:var(--white); font:inherit; font-size:1rem; border-radius:0 }
.form-field textarea { resize:vertical; min-height:104px }
.form-field :is(input,select,textarea):focus-visible { outline:2px solid var(--ink); outline-offset:3px }
.form-field ::placeholder { color:#8c9b9f; font-size:.875rem; opacity:1 }
.resume-dropzone { position:relative; padding:24px 20px; border:1px dashed #8b9c9f; background:var(--night); text-align:center }
.resume-dropzone input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; z-index:1 }
.resume-dropzone:focus-within,.resume-dropzone.drag-over { border-color:var(--white); outline:2px solid var(--ink); outline-offset:3px }
.resume-dropzone.has-file { border-style:solid }
.resume-dropzone strong { display:block; font-size:.875rem; font-weight:500; color:var(--white); margin-block:6px }
.upload-symbol { display:block; font-size:1.65rem; line-height:1.2 }
#resume-help { font-size:.8125rem; color:var(--muted) }
.resume-file-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:12px }
#resume-selection { font-size:.8125rem; overflow-wrap:anywhere }
#remove-resume { border:0; border-bottom:1px solid var(--brand); background:none; font-size:.75rem; padding:8px 0; white-space:nowrap }
.application-consent { display:flex; gap:12px; align-items:start; margin-top:28px; font-size:.8125rem; line-height:1.7 }
.application-consent input { flex-shrink:0; width:18px; height:18px; margin-top:3px; accent-color:var(--ink) }
.application-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden }
.application-submit { margin-top:24px; font-size:.875rem; min-height:48px }
.application-submit:disabled { opacity:.65; cursor:wait }
#application-status { font-size:.875rem; margin-top:18px; overflow-wrap:anywhere }
#application-status:empty { display:none }
#application-status.is-error { color:#f6b6ac; padding:14px; border:1px solid #b97c72 }
#application-success { padding-block:28px }
#application-success h2 { font-size:2.2rem; margin-block:24px }
#application-success p { font-size:1rem }
#application-success .application-reference { margin-block:24px; font-size:.875rem; color:var(--ink) }
.application-noscript { margin-top:16px; font-size:.8125rem }
@media(max-width:1000px) { .careers-application { grid-template-columns:.7fr 1.3fr; gap:32px } .application-panel { padding:28px } .application-fields { grid-template-columns:1fr } }
@media(max-width:800px) { .careers-application { grid-template-columns:1fr; gap:32px; padding-block:36px 56px } .careers-interests { display:none } .careers-introduction .careers-confidential { display:block; margin-top:20px } .careers-introduction h1 br { display:none } .careers-introduction h1 { font-size:2.5rem; margin-bottom:18px } .careers-introduction>p:not(.label) { max-width:650px } .application-fields { grid-template-columns:1fr 1fr } }
@media(max-width:600px) { .careers-application { padding-top:28px; gap:28px } .careers-introduction>.label { font-size:.75rem; margin-bottom:18px } .careers-introduction h1 { font-size:2.2rem } .application-panel { padding:24px 20px } .application-fields { grid-template-columns:1fr; gap:20px } .application-heading h2 { font-size:1.65rem } .resume-file-summary { flex-wrap:wrap; gap:6px } .application-submit { width:100% } }
.application-review { padding-block:56px 72px }
.review-heading h1 { font-size:clamp(2.4rem,4.5vw,4.5rem); margin-block:24px }
.review-heading>p:last-child { font-size:1rem }
#review-status { margin-top:32px; font-size:.875rem }
.application-record { margin-top:28px; padding:28px; border:1px solid var(--line); background:var(--surface) }
.application-record-top { display:flex; gap:28px; justify-content:space-between; align-items:center }
.application-record h2 { font-size:1.8rem; margin-top:16px }
.application-record-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:28px 0 0; padding-top:24px; border-top:1px solid var(--line) }
.application-record-facts dt { font-size:.75rem; color:var(--muted) }
.application-record-facts dd { font-size:.875rem; margin:8px 0 0; overflow-wrap:anywhere }
.application-record-note { white-space:pre-wrap; margin-top:24px; font-size:1rem }
.application-record-file { margin-top:24px; font-size:.75rem }
.application-record .line-link { font-size:.8125rem; margin-top:18px }
#load-applications { background:none; border:0; border-bottom:1px solid var(--brand); margin-top:24px }
.route-careers-review .footer-top { display:none }
@media(max-width:800px) { .application-record-top { flex-direction:column; align-items:start } .application-record-facts { grid-template-columns:1fr 1fr } }
@media(max-width:600px) { .application-record { padding:24px 20px } .application-record-facts { grid-template-columns:1fr } }
@media(max-width:1120px) {
 .desktop-nav { display:none }
 .menu-button { display:flex }
}

/* Contact form uses the same typography, surfaces and controls as Careers. */
.contact-inquiry-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:64px; padding-block:56px 80px; align-items:start }
.contact-introduction { min-width:0; padding-top:6px }
.contact-introduction>.label { margin-bottom:24px }
.contact-introduction h1 { font-size:var(--type-page); color:var(--pale-blue); line-height:1.12 }
.contact-introduction>p:not(.label) { margin-top:26px; max-width:430px; font-size:1rem }
.contact-office { margin-top:38px; padding-top:26px; border-top:1px solid var(--line); max-width:430px }
.contact-office>a { display:inline-block; margin-block:10px 18px; font-size:1.7rem; color:var(--ink) }
.contact-office>p:last-child { font-size:.9375rem }
.contact-introduction .contact-note { font-size:.8125rem }
.contact-note a,.contact-privacy a { text-decoration:underline; text-underline-offset:4px }
.contact-privacy { margin-top:12px; font-size:.8125rem }
#contact-status { margin-top:18px; font-size:.875rem; overflow-wrap:anywhere }
#contact-status:empty { display:none }
#contact-status.is-error { color:#f6b6ac; border:1px solid #b97c72; padding:14px }
#contact-success { padding-block:24px }
#contact-success h2 { font-size:2.3rem; margin-block:24px }
#contact-success p { font-size:1rem }
#contact-success .contact-reference { margin-block:24px; font-size:.875rem; color:var(--ink) }
.contact-confirmation { padding-block:72px }
.contact-confirmation h1 { margin-block:24px }
.contact-confirmation .line-link { margin-top:24px }
#load-inquiries { border:0; border-bottom:1px solid var(--brand); background:none; margin-top:24px }
.route-contact-review .footer-top { display:none }
@media(max-width:1000px) { .contact-inquiry-grid { gap:32px; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr) } }
@media(max-width:800px) { .contact-inquiry-grid { grid-template-columns:minmax(0,1fr); padding-block:40px 56px; gap:30px } .contact-office { margin-top:24px; padding-top:20px } .contact-office>a { font-size:1.35rem; margin-bottom:8px } .contact-introduction>p:not(.label),.contact-office { max-width:none } .contact-introduction>.label { margin-bottom:20px } }
@media(max-width:600px) { .contact-introduction>p:not(.label) { font-size:.9375rem; margin-top:20px } .contact-inquiry-grid { padding-top:28px } }

/* Homepage architecture shares a single frame with the company introduction. */
.firm-hero-rendering { grid-template-columns:minmax(360px,.9fr) minmax(0,1.6fr); grid-template-areas:'copy visual' 'services services'; gap:0; padding-top:0; text-align:left }
.firm-hero-rendering .firm-hero-copy { align-self:stretch; display:flex; flex-direction:column; justify-content:center; padding:48px 40px 48px 0; max-width:none }
.hero-discipline { color:var(--brand); margin-bottom:26px; font-size:.6875rem; letter-spacing:.1em }
.firm-hero-rendering h1 { font-size:clamp(2.65rem,3.25vw,3.85rem); line-height:1.14; text-wrap:initial }
.firm-hero-rendering h1 span { display:block }
.firm-hero-rendering h1 br { display:none }
.firm-hero-rendering .firm-hero-summary { margin:24px 0 0; font-size:.9375rem; line-height:1.8; max-width:400px; text-wrap:pretty }
.firm-hero-rendering .firm-hero-links { margin:30px 0 0; gap:12px; width:100%; max-width:400px }
.firm-hero-rendering .firm-hero-links .solid-link { font-size:.8125rem; padding:14px 16px; gap:12px }
.firm-hero-rendering .hero-location { justify-content:flex-start; margin-top:28px; font-size:.6875rem; gap:8px 14px }
.firm-hero-rendering .hero-location>span { padding-left:14px }
.hero-architecture { grid-area:visual; position:relative; margin:0 calc(-1 * var(--rail)) 0 0; overflow:hidden; background:var(--surface); min-height:610px }
.hero-architecture picture { display:block; height:100% }
.hero-architecture img { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:56% center; filter:none }
.firm-hero-rendering .firm-services { margin-top:0 }
@media(min-width:1600px) { .hero-architecture { min-height:680px } }
@media(max-width:1120px) { .firm-hero-rendering { grid-template-columns:minmax(330px,.95fr) minmax(0,1.3fr) } .firm-hero-rendering .firm-hero-copy { padding-right:28px } .firm-hero-rendering h1 { font-size:clamp(2rem,3.3vw,2.65rem) } .hero-architecture { min-height:580px } }
@media(max-width:800px) {
 .firm-hero-rendering { grid-template-columns:minmax(0,1fr); grid-template-areas:'visual' 'copy' 'services'; padding-top:0; gap:0 }
 .hero-architecture { margin:0 calc(-1 * var(--rail)); min-height:0; aspect-ratio:1672/941 }
 .hero-architecture img { object-position:center }
 .firm-hero-rendering .firm-hero-copy { padding:30px 0 32px; align-items:center; text-align:center }
 .hero-discipline { margin-bottom:14px }
 .firm-hero-rendering h1 { font-size:clamp(2rem,5.8vw,3.5rem) }
 .firm-hero-rendering .firm-hero-summary { max-width:490px; margin-top:16px }
 .firm-hero-rendering .firm-hero-links { margin-top:24px }
 .firm-hero-rendering .hero-location { justify-content:center; margin-top:22px }
}
@media(max-width:400px) { .hero-discipline { font-size:.625rem; letter-spacing:.08em } .firm-hero-rendering h1 { font-size:clamp(1.85rem,8.2vw,2rem) } .firm-hero-rendering .firm-hero-summary { font-size:.875rem } .firm-hero-rendering .firm-hero-links { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none } .firm-hero-rendering .firm-hero-links .solid-link { padding-inline:12px; font-size:.75rem } }

/* Shared inner-page composition extends the homepage's architectural frame. */
.page-trail { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-block:22px; min-height:62px; border-bottom:1px solid var(--line); font-size:.6875rem; color:var(--muted) }
.page-trail>a { color:var(--brand); padding-block:4px }
.page-trail>a:hover { color:var(--pale-blue); text-decoration:underline; text-underline-offset:5px }
.page-trail>[aria-current] { color:var(--ink) }
.inner-page h1 { font-size:clamp(2.3rem,3.25vw,3.85rem); font-weight:500; letter-spacing:-.047em; line-height:1.14; color:var(--ink) }
.inner-page h1>span { color:var(--pale-blue) }
.company-frame { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:0; padding-block:0; text-align:left; align-items:stretch }
.company-frame .dossier-copy { padding:54px 56px 54px 0; max-width:none; align-self:center }
.company-frame .dossier-copy>.label { margin-bottom:26px }
.company-frame .dossier-summary { margin:24px 0 0; max-width:600px; font-size:.9375rem; line-height:1.8 }
.company-frame .dossier-facts { margin:28px 0 0; max-width:none }
.company-frame .dossier-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-width:400px; margin-top:30px }
.company-frame .solid-link { font-size:.8125rem; padding:14px 16px; gap:12px }
.company-architecture { position:relative; align-self:stretch; margin:0 calc(-1 * var(--rail)) 0 0; min-height:580px; overflow:hidden; background:var(--surface) }
.company-architecture img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:75% center }
.expertise-frame { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:0; padding-block:0; align-items:stretch }
.expertise-frame .dossier-copy { padding:54px 56px 54px 0; align-self:center }
.expertise-frame .dossier-summary { font-size:.9375rem; line-height:1.8; margin-top:24px }
.expertise-frame .expertise-sequence { margin-right:calc(-1 * var(--rail)); padding:44px var(--rail) 44px 44px; border:0; border-left:1px solid var(--line) }
.expertise-frame .expertise-sequence li { padding-block:22px }
.route-portfolio .page-heading { padding-block:48px; border-bottom:1px solid var(--line) }
.route-portfolio .page-heading>div { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:56px; align-items:center }
.route-portfolio .page-heading h1 { font-size:clamp(2.8rem,4vw,4rem); line-height:1.12 }
.route-portfolio .heading-summary { max-width:560px; font-size:.9375rem; line-height:1.85 }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; padding-block:40px 72px }
.development-card { min-width:0; scroll-margin-top:120px }
.development-card-link { display:flex; flex-direction:column; height:calc(100% - 30px); background:var(--surface); border:1px solid var(--line); transition:border-color .2s ease,background .2s ease }
.development-card-image { position:relative; aspect-ratio:1.35; overflow:hidden; background:var(--night) }
.development-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease }
.development-card-number { position:absolute; bottom:0; left:0; padding:12px 18px; background:var(--surface); color:var(--brand); font-size:.6875rem; letter-spacing:.1em }
.development-card-copy { display:flex; flex-direction:column; flex:1; padding:26px 24px 0 }
.development-card-copy>.label { min-height:28px; font-size:.625rem; letter-spacing:.09em }
.development-card h2 { font-size:clamp(1.5rem,2vw,2rem); line-height:1.2; letter-spacing:-.035em; margin:6px 0 12px }
.development-card-place { font-size:.8125rem; color:var(--brand) }
.development-card-summary { font-size:.875rem; line-height:1.7; margin:16px 0 26px }
.development-card-bottom { display:flex; flex-direction:column; gap:18px; margin-top:auto; padding-block:20px; border-top:1px solid var(--line) }
.development-stage { font-size:.6875rem; color:var(--muted) }
.development-card-action { display:flex; justify-content:space-between; gap:12px; font-size:.8125rem; color:var(--ink) }
.development-card-action>span { color:var(--brand); transition:transform .2s ease }
.development-card-link:is(:hover,:focus-visible) { border-color:var(--brand); background:#253035 }
.development-card-link:is(:hover,:focus-visible) img { transform:scale(1.035) }
.development-card-link:is(:hover,:focus-visible) .development-card-action>span { transform:translate(2px,-2px) }
.development-image-note { font-size:.625rem; padding-top:10px; color:var(--muted) }
.project-dossier { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:0; padding-block:0; border-bottom:1px solid var(--line); align-items:stretch }
.project-dossier .dossier-copy { padding:44px 56px 44px 0; align-self:center }
.project-dossier .back-link { display:none }
.project-dossier .dossier-summary { font-size:.9375rem; line-height:1.8; margin-top:24px }
.project-dossier .dossier-visual { margin-right:calc(-1 * var(--rail)); background:var(--surface); display:flex; flex-direction:column; align-self:stretch }
.project-dossier .dossier-visual .gallery-open { flex:1; min-height:420px }
.project-dossier .dossier-visual img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover }
.project-dossier .dossier-visual figcaption { padding:16px 24px; border-bottom:0 }
.development-brief { padding-top:40px }
.contact-inquiry-grid,.careers-application { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:0; padding-block:0 64px; align-items:start }
.contact-introduction,.careers-introduction { padding:48px 56px 32px 0 }
.contact-introduction h1,.careers-introduction h1 { font-size:clamp(2.5rem,3.25vw,3.85rem); line-height:1.14; color:var(--ink) }
.contact-introduction>p:not(.label),.careers-introduction>p:not(.label) { font-size:.9375rem; line-height:1.8 }
.contact-inquiry-grid>.application-panel,.careers-application>.application-panel { margin-right:calc(-1 * var(--rail)); padding:48px var(--rail) 48px 36px; border:0; border-left:1px solid var(--line) }
@media(max-width:1120px) {
 .company-frame .dossier-copy,.expertise-frame .dossier-copy,.project-dossier .dossier-copy { padding-right:32px }
 .company-frame h1,.expertise-frame h1 { font-size:clamp(2rem,3.25vw,2.8rem) }
 .portfolio-grid { gap:18px }
 .development-card-copy { padding-inline:18px }
 .development-card h2 { min-height:2.4em }
 .contact-introduction,.careers-introduction { padding-right:32px }
}
@media(max-width:800px) {
 .page-trail { padding-block:14px; min-height:48px; font-size:.625rem; gap:10px }
 .inner-page h1 { font-size:clamp(2rem,5.8vw,3.5rem) }
 .company-frame,.expertise-frame,.project-dossier { grid-template-columns:minmax(0,1fr) }
 .company-frame .dossier-copy,.expertise-frame .dossier-copy,.project-dossier .dossier-copy { padding:32px 0; width:100% }
 .company-frame .dossier-copy>.label,.expertise-frame .dossier-copy>.label { margin-bottom:18px }
 .company-frame .dossier-summary,.expertise-frame .dossier-summary { margin-top:20px }
 .company-frame .dossier-links { max-width:420px }
 .company-architecture { margin:0 calc(-1 * var(--rail)); min-height:0; height:340px }
 .company-architecture img { object-position:65% center }
 .expertise-frame .expertise-sequence { margin-inline:calc(-1 * var(--rail)); padding:30px var(--rail); border-left:0; border-block:1px solid var(--line) }
 .expertise-frame .expertise-sequence li { padding-block:18px }
 .expertise-overview { padding-top:32px }
 .route-portfolio .page-heading { padding-block:32px }
 .route-portfolio .page-heading>div { grid-template-columns:minmax(0,1fr); gap:22px }
 .route-portfolio .page-heading h1 { font-size:clamp(2.5rem,7vw,3.5rem) }
 .route-portfolio .page-heading h1 br { display:none }
 .route-portfolio .page-heading h1 span::before { content:' ' }
 .portfolio-grid { grid-template-columns:minmax(0,1fr); gap:32px; padding-block:30px 48px }
 .development-card-image { aspect-ratio:1.65 }
 .development-card-copy { padding:24px 24px 0 }
 .development-card h2 { font-size:1.8rem; min-height:0 }
 .development-card-copy>.label { min-height:0; margin-bottom:8px }
 .development-card-summary { margin-bottom:22px }
 .development-card-bottom { flex-direction:row; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px }
 .development-card-action { gap:24px }
 .project-dossier .dossier-visual { margin-inline:calc(-1 * var(--rail)) }
 .project-dossier .dossier-visual .gallery-open { min-height:0; aspect-ratio:1.5 }
 .development-brief { padding-top:32px }
 .contact-inquiry-grid,.careers-application { grid-template-columns:minmax(0,1fr); gap:0; padding-bottom:0 }
 .contact-introduction,.careers-introduction { padding:32px 0 }
 .contact-introduction h1,.careers-introduction h1 { font-size:clamp(2.2rem,6vw,3rem) }
 .careers-introduction h1 br { display:block }
 .contact-inquiry-grid>.application-panel,.careers-application>.application-panel { margin-inline:calc(-1 * var(--rail)); padding:32px var(--rail) 40px; border-left:0; border-top:1px solid var(--line) }
 .contact-office { margin-top:24px }
}
@media(prefers-reduced-motion:reduce) {
 .development-card-link,.development-card-image img,.development-card-action>span { transition:none }
}

/* Government advisory and named leadership, aligned with the RAM identity. */
.desktop-nav{gap:24px}
.firm-hero-rendering{grid-template-columns:minmax(410px,1.15fr) minmax(0,1.35fr)}
.firm-hero-rendering h1{font-size:clamp(2.5rem,3.25vw,3.7rem);line-height:1.12}
.firm-hero-rendering .firm-hero-summary{max-width:470px}
.firm-hero-rendering .hero-discipline{font-size:.625rem;letter-spacing:.1em;line-height:1.8}
.firm-hero-rendering .firm-hero-links{max-width:480px}
.leadership-section,.government-section,.advisory-delivery,.government-accountability,.leadership-introduction,.home-government,.government-crosslink,.pilot-coordination{padding-block:80px;scroll-margin-top:115px}
.leadership-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--grid-gap);margin-bottom:38px;align-items:end}
.leadership-heading>.label{grid-column:1/-1;margin-bottom:22px}
.leadership-heading h2,.government-introduction h2,.advisory-delivery-heading h2,.pilot-heading h2,.government-accountability h2,.leadership-introduction h2,.home-government h2,.government-crosslink h2{font-size:var(--type-section);line-height:1.14}
.leadership-heading>p:last-child{max-width:530px;font-size:.9375rem;line-height:1.9}
.leadership-president{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap);padding:38px 0;border-top:2px solid var(--brand);border-bottom:1px solid var(--line)}
.leadership-role{color:var(--pale-blue);font-size:.75rem;letter-spacing:.06em;margin-bottom:14px;line-height:1.7}
.leadership-president h3{font-size:clamp(1.9rem,3vw,2.75rem);line-height:1.2;letter-spacing:-.04em}
.president-profile p{font-size:.9375rem;line-height:1.9;max-width:600px}.president-profile p+p{margin-top:14px}
.leadership-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--grid-gap)}
.leadership-member{padding:32px 0;border-bottom:1px solid var(--line);min-width:0}
.leadership-member h3{font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.3}
.leadership-bio{font-size:.875rem;line-height:1.9;margin-top:16px;max-width:530px}
.leadership-introduction,.government-accountability,.government-crosslink{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap);border-top:1px solid var(--line);background:var(--surface)}
.leadership-introduction .label,.government-accountability .label,.government-crosslink .label{margin-bottom:22px}
.leadership-introduction>div>p:not(.label),.government-accountability>div>p:not(.label),.government-crosslink>div>p:not(.label){font-size:1rem;line-height:1.9;max-width:570px}
.leadership-introduction .line-link,.government-accountability .line-link,.government-crosslink .solid-link{margin-top:24px}
.government-accountability>div:last-child>.line-link{display:flex;width:max-content;max-width:100%}
.government-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;padding-block:56px 64px;align-items:center}
.government-hero>*{min-width:0}.government-hero .label{margin-bottom:22px}
.government-hero h1{font-size:clamp(2.6rem,4.2vw,4.5rem);line-height:1.1;letter-spacing:-.05em}.government-hero h1 span{color:var(--pale-blue)}
.government-summary{margin-top:28px;font-size:1rem;line-height:1.9;max-width:660px}
.government-hero-links{display:flex;flex-wrap:wrap;gap:20px 30px;align-items:center;margin-top:30px}
.government-mandate{background:var(--surface);border:1px solid var(--line);padding:32px}
.government-mandate h2{font-size:1.8rem;line-height:1.25;margin-bottom:22px}.government-mandate>p:not(.label){font-size:.875rem;line-height:1.85}
.government-mandate dl{margin:28px 0 0}.government-mandate dl>div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:16px 0;border-top:1px solid var(--line)}
.government-mandate dt{font-size:.75rem;color:var(--pale-blue)}.government-mandate dd{margin:0;font-size:.8125rem;color:var(--muted);line-height:1.8}
.government-section{display:grid;grid-template-columns:.82fr 1.18fr;gap:var(--grid-gap);border-top:1px solid var(--line);background:var(--surface-deep)}
.government-introduction>.label{margin-bottom:22px}.government-introduction>p:not(.label){margin-top:26px;font-size:.9375rem;line-height:1.9;max-width:480px}
.government-introduction .solid-link{margin-top:28px;max-width:100%}
.government-capabilities{display:grid;grid-template-columns:1fr 1fr;gap:34px 32px}
.government-capabilities article{padding-top:20px;border-top:1px solid var(--line);min-width:0}.government-capabilities .label{font-size:.625rem;margin-bottom:15px}
.government-capabilities h3{font-size:1.3rem;line-height:1.4;letter-spacing:-.025em}.government-capabilities p:not(.label){font-size:.875rem;line-height:1.85;margin-top:16px}
.pilot-coordination{background:var(--surface);border-block:1px solid var(--line)}
.pilot-heading,.advisory-delivery-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--grid-gap);align-items:end;margin-bottom:38px}
.pilot-heading>.label,.advisory-delivery-heading>.label{grid-column:1/-1;margin-bottom:22px}
.pilot-heading>p:last-child,.advisory-delivery-heading>p:last-child{font-size:.9375rem;line-height:1.9;max-width:610px}
.pilot-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pilot-roles article{padding:28px;border:1px solid var(--line);background:var(--canvas)}
.pilot-roles .pilot-lead{border-top:3px solid var(--brand);padding-top:26px}
.pilot-roles .label{color:var(--brand);font-size:.6875rem;margin-bottom:20px}
.pilot-roles h3{font-size:1.35rem;line-height:1.3}.pilot-roles p:not(.label){margin-top:16px;font-size:.875rem;line-height:1.85}
.advisory-delivery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.advisory-delivery-grid article{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:22px;min-width:0}
.advisory-delivery-grid h3{font-size:1.35rem;line-height:1.3;margin:18px 0}
.advisory-delivery-grid p{font-size:.875rem;line-height:1.85}.advisory-delivery-grid .delivery-output{margin-top:auto;padding-top:24px;font-size:.8125rem;color:var(--pale-blue)}
.delivery-output strong{display:block;color:var(--muted);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin-bottom:8px}
.home-government{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap);background:var(--surface-deep);border-bottom:1px solid var(--line)}
.home-government>.label,.home-government>div>.label{margin-bottom:24px}.home-government>div>p:not(.label){font-size:.9375rem;line-height:1.9;max-width:540px;margin-top:26px}
.home-government .solid-link{margin-top:28px}.home-government-outputs article{border-top:1px solid var(--line);padding:24px 0}.home-government-outputs .label{font-size:.625rem;margin-bottom:10px}.home-government-outputs h3{font-size:1.45rem;line-height:1.3}.home-government-outputs article>p:last-child{font-size:.875rem;line-height:1.8;margin-top:12px;max-width:570px}
.expertise-advisory-link{margin-top:18px}.expertise-advisory-link .line-link{font-size:.8125rem;gap:18px;line-height:1.7}
@media(max-width:1180px){.desktop-nav{gap:18px}.government-hero{gap:36px}.government-hero h1{font-size:3rem}.firm-hero-rendering{grid-template-columns:minmax(360px,1.05fr) minmax(0,1.15fr)}.firm-hero-rendering h1{font-size:2.7rem}.advisory-delivery-grid{grid-template-columns:1fr 1fr;row-gap:36px}.government-section{grid-template-columns:1fr 1.2fr;gap:36px}.government-capabilities{grid-template-columns:1fr;gap:24px}.pilot-roles article{padding:24px}.pilot-roles .pilot-lead{padding-top:22px}}
@media(max-width:800px){
 .firm-hero-rendering{grid-template-columns:minmax(0,1fr)}.firm-hero-rendering h1{font-size:clamp(2rem,6vw,3.2rem)}
 .leadership-heading,.leadership-president,.leadership-introduction,.government-hero,.government-section,.government-accountability,.home-government,.government-crosslink,.pilot-heading,.advisory-delivery-heading{grid-template-columns:minmax(0,1fr);gap:26px}
 .government-capabilities{grid-template-columns:1fr 1fr}.leadership-heading>.label,.pilot-heading>.label,.advisory-delivery-heading>.label{grid-column:auto;margin-bottom:0}
 .government-hero{padding-block:36px 48px}.government-hero h1{font-size:clamp(2.4rem,6vw,3.5rem)}
 .leadership-president{gap:22px}.leadership-grid{gap:0 30px}.pilot-roles{grid-template-columns:1fr}.pilot-roles article{padding:24px}.pilot-roles .pilot-lead{padding-top:22px}
}
@media(max-width:600px){
 .leadership-section,.government-section,.advisory-delivery,.government-accountability,.leadership-introduction,.home-government,.government-crosslink,.pilot-coordination{padding-block:48px;scroll-margin-top:95px}
 .leadership-grid,.government-capabilities,.advisory-delivery-grid{grid-template-columns:1fr}.leadership-member{padding-block:26px}.leadership-role{font-size:.75rem}.leadership-president{padding-block:28px}
 .leadership-heading h2,.government-introduction h2,.pilot-heading h2,.advisory-delivery-heading h2,.government-accountability h2,.leadership-introduction h2,.home-government h2,.government-crosslink h2{font-size:2rem}
 .government-mandate{padding:24px}.government-mandate dl>div{grid-template-columns:1fr;gap:4px}.government-mandate h2{font-size:1.55rem}
 .government-hero-links{gap:14px 22px}.government-summary{font-size:.9375rem}.government-hero h1{font-size:clamp(2.25rem,8vw,3rem)}
 .government-hero-links .solid-link,.government-introduction .solid-link{font-size:.8125rem;padding-inline:16px;gap:16px}
 .advisory-delivery-grid .delivery-output{margin-top:8px}.pilot-heading>p:last-child{font-size:.875rem}
}

/* Firm presentation: contained imagery, clear hierarchy, consistent page rails. */
.firm-hero-rendering{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0 48px;padding-top:42px;align-items:center}
.firm-hero-rendering .firm-hero-copy{padding:20px 0;align-items:flex-start;text-align:left}
.firm-hero-rendering h1{font-size:clamp(2.5rem,3.3vw,3.75rem);letter-spacing:-.055em}
.firm-hero-rendering .hero-architecture{margin:0;min-height:0;height:460px;max-height:460px;width:100%;border:1px solid var(--line);align-self:center}
.firm-hero-rendering .hero-architecture img{object-position:58% center}
.firm-hero-rendering .firm-services{margin-top:42px}
.firm-hero-rendering .hero-location{justify-content:flex-start}
.company-frame{gap:48px;padding-block:42px 48px;align-items:center}
.company-frame .dossier-copy{padding:12px 0}
.company-identity{align-self:center;background:var(--surface);border:1px solid var(--line);padding:38px;min-width:0}
.company-identity-brand{padding-bottom:30px;border-bottom:1px solid var(--line)}
.company-identity-brand img{width:270px;max-width:100%;height:auto}
.company-identity-brand p{font-size:.6875rem;line-height:1.8;letter-spacing:.025em;margin-top:24px}
.company-identity dl{margin:10px 0 24px}
.company-identity dl>div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.company-identity dt{font-size:.6875rem;line-height:1.9;color:var(--muted)}
.company-identity dd{font-size:.9375rem;line-height:1.9;color:var(--ink);margin:0}
.company-identity dl>div:first-child dd{font-size:2.5rem;line-height:1;letter-spacing:-.04em;color:var(--pale-blue)}
.company-identity .line-link{font-size:.8125rem}
.project-dossier{gap:40px;padding-block:36px 48px;align-items:center}
.project-dossier .dossier-copy{padding:12px 0}
.project-dossier .dossier-visual{margin:0;align-self:center;border:1px solid var(--line);width:100%}
.project-dossier .dossier-visual .gallery-open{flex:none;min-height:0;aspect-ratio:1.4}
.project-dossier .dossier-visual img{object-position:center}
.project-dossier .dossier-visual figcaption{padding:16px 20px;font-size:.6875rem;line-height:1.7}
.development-card-image{border-bottom:1px solid var(--line)}
.development-card-image img{object-position:center}
@media(max-width:1180px){
 .firm-hero-rendering,.company-frame{gap:0 30px}
 .firm-hero-rendering h1{font-size:clamp(2.3rem,3.5vw,3rem)}
 .firm-hero-rendering .hero-architecture{height:430px}
 .company-identity{padding:28px}.company-identity dl>div{grid-template-columns:80px 1fr;gap:12px}
 .project-dossier{gap:28px}
}
@media(max-width:800px){
 .firm-hero-rendering{grid-template-columns:minmax(0,1fr);grid-template-areas:'copy' 'visual' 'services';padding-top:20px;gap:0}
 .firm-hero-rendering .firm-hero-copy{padding:22px 0 32px}
 .firm-hero-rendering h1{font-size:clamp(2.15rem,6vw,3.5rem)}
 .firm-hero-rendering .hero-architecture{height:auto;aspect-ratio:1.78;max-height:none}
 .firm-hero-rendering .firm-services{margin-top:30px}
 .company-frame{grid-template-columns:minmax(0,1fr);gap:28px;padding-block:28px 40px}
 .company-frame .dossier-copy{padding:0}
 .company-identity{padding:28px;width:100%}
 .company-identity dl>div{grid-template-columns:110px 1fr;gap:20px}
 .project-dossier{gap:26px;padding-block:24px 40px}
 .project-dossier .dossier-copy{padding:0}
 .project-dossier .dossier-visual .gallery-open{aspect-ratio:1.6}
}
@media(max-width:400px){
 .firm-hero-rendering h1{font-size:2rem}
 .company-identity{padding:24px}.company-identity dl>div{grid-template-columns:80px 1fr;gap:12px}
 .company-identity dd{font-size:.8125rem}
 .firm-hero-rendering .hero-discipline{font-size:.5625rem;letter-spacing:.075em}
}

/* Source-backed practice experience, presented without government insignia. */
.government-case{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;padding-block:72px;border-block:1px solid var(--line);background:var(--surface);scroll-margin-top:110px}
.government-case-copy>.label{margin-bottom:22px}.government-case h2{font-size:var(--type-section);line-height:1.14}
.government-case-copy .case-place{font-size:.75rem;color:var(--pale-blue);margin-top:20px}
.government-case-copy>p:not(.label):not(.case-place){font-size:.9375rem;line-height:1.9;margin-top:24px;max-width:640px}
.government-case-copy .line-link{margin-top:28px;font-size:.8125rem}
.government-case-record{border-top:2px solid var(--brand);padding:28px 30px;background:var(--canvas);align-self:center;min-width:0}
.case-resolution{font-size:clamp(2.5rem,4vw,4rem);line-height:1.1;color:var(--pale-blue);letter-spacing:-.05em;margin:24px 0 30px}
.government-case-record dl{margin:0}.government-case-record dl>div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:17px 0;border-top:1px solid var(--line)}
.government-case-record dt{font-size:.6875rem;line-height:1.9;color:var(--muted)}.government-case-record dd{font-size:.875rem;line-height:1.8;margin:0;color:var(--ink)}
.government-case-record .case-condition{font-size:.75rem;line-height:1.85;padding-top:20px;border-top:1px solid var(--line)}
.home-case-link{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.8;color:var(--pale-blue);max-width:540px}
.home-case-link:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1180px){.government-case{gap:36px}.government-case-record{padding:26px}}
@media(max-width:800px){.government-case{grid-template-columns:minmax(0,1fr);gap:32px;padding-block:48px}.government-case h2{font-size:2rem}.government-case-record{padding:26px}.government-case-record dl>div{grid-template-columns:95px 1fr;gap:16px}}
@media(max-width:400px){.government-case-record{padding:22px}.government-case-record dl>div{grid-template-columns:1fr;gap:4px}}

/* Professional reading scale and consistent controls across the company site. */
:root{--type-section:clamp(2rem,2.8vw,2.75rem)}
body{line-height:1.7}
h1,h2,h3{letter-spacing:-.025em;font-weight:550}
.label,.eyebrow{font-size:.75rem;letter-spacing:.1em;line-height:1.6}
.desktop-nav{gap:24px}.desktop-nav a{font-size:.875rem}
.firm-hero-rendering h1,.inner-page h1,.government-hero h1{font-weight:550;letter-spacing:-.03em;line-height:1.15}
.firm-hero-rendering h1{font-size:clamp(2.5rem,3.5vw,3.4rem)}
.firm-hero-rendering .firm-hero-summary,.company-frame .dossier-summary{font-size:1rem;line-height:1.75}
.solid-link,.firm-hero-rendering .firm-hero-links .solid-link,.company-frame .solid-link{min-height:50px;padding:12px 18px;font-size:.875rem;line-height:1.5;gap:16px}
.solid-link>span{font-size:1.125rem}
.firm-hero-rendering .firm-hero-links{max-width:480px}
.firm-hero-rendering .hero-discipline{font-size:.6875rem;letter-spacing:.08em}
.firm-hero-rendering .hero-location{font-size:.75rem}
.firm-services h2{font-weight:550;letter-spacing:-.015em}
.firm-services p,.government-capabilities p:not(.label){font-size:.9375rem;line-height:1.75}
.firm-records{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:40px;padding-block:44px;background:var(--surface);border-block:1px solid var(--line)}
.firm-records article{min-width:0}
.firm-records .label{margin-bottom:14px}
.firm-records h2{font-size:1.375rem;line-height:1.35;letter-spacing:-.02em}
.firm-records p:not(.label){font-size:.875rem;line-height:1.7;margin-top:12px;max-width:360px}
.firm-records .line-link{font-size:.8125rem;margin-top:12px;gap:18px}
.firm-records article>div{display:flex;flex-wrap:wrap;gap:0 24px}
.company-identity-brand img{width:220px}
.company-identity{padding:30px}
.company-identity-brand{padding-bottom:22px}
.company-identity-brand p{margin-top:18px}
.company-identity dl>div{padding:16px 0}
.company-identity dl>div:first-child dd{font-size:1.875rem;font-weight:550}
.company-frame{padding-block:36px 44px}
.company-frame .dossier-facts{margin-top:24px;padding-top:20px}
.page-trail{font-size:.75rem}
.site-footer .footer-invitation h2{font-size:clamp(2.25rem,3.5vw,3.5rem);letter-spacing:-.03em}

/* Independent roster grid prevents legacy leadership styles from leaking in. */
.firm-leadership{padding-block:56px 64px;border-top:1px solid var(--line);scroll-margin-top:12px}
.profile-heading{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:48px;align-items:end;margin-bottom:28px}
.profile-heading .label{margin-bottom:12px}
.profile-heading h2{font-size:2.5rem;line-height:1.2;letter-spacing:-.025em}
.profile-heading>p{max-width:520px;font-size:.9375rem;line-height:1.7}
.profile-directory{display:block;margin:0;border-bottom:1px solid var(--line)}
.profile-row{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:48px;align-items:start;margin:0;padding:30px 24px;border-top:1px solid var(--line);min-width:0}
.profile-row>*{min-width:0}
.profile-president{background:var(--surface);border-top:2px solid var(--brand);padding-block:32px}
.profile-identity h3{font-size:clamp(1.45rem,1.95vw,1.8rem);font-weight:550;line-height:1.3;letter-spacing:-.025em;text-wrap:initial}
.profile-president .profile-identity h3{font-size:clamp(1.7rem,2.2vw,2rem)}
.profile-name-tail{white-space:nowrap}
.profile-row .leadership-role{font-size:.8125rem;line-height:1.6;letter-spacing:.01em;margin:10px 0 0;color:var(--pale-blue)}
.profile-bio{font-size:1rem;line-height:1.7;margin:0;max-width:650px}
#company-background,.government-case,.government-section,.capability,.development-card{scroll-margin-top:12px}
@media(max-width:1180px){.desktop-nav{gap:18px}.firm-records{gap:28px}.profile-heading,.profile-row{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:32px}.firm-records h2{font-size:1.25rem}}
@media(max-width:800px){
 .firm-hero-rendering h1{font-size:clamp(2rem,5.8vw,3.2rem)}
 .firm-records{grid-template-columns:1fr;padding-block:32px;gap:24px}
 .firm-records article+article{border-top:1px solid var(--line);padding-top:24px}
 .firm-records p:not(.label){max-width:none}.firm-records h2{font-size:1.375rem}
 .firm-leadership{padding-block:36px 48px}
 .profile-heading{grid-template-columns:1fr;gap:16px;margin-bottom:24px}
 .profile-heading h2{font-size:2.125rem}
 .profile-row{grid-template-columns:1fr;gap:18px;padding:26px 20px}
 .profile-identity h3,.profile-president .profile-identity h3{font-size:1.625rem;letter-spacing:-.02em}
 .profile-row .leadership-role{margin-top:8px}
 .profile-bio{font-size:.9375rem;line-height:1.75}
 .company-frame{padding-block:28px 36px}
}
@media(max-width:400px){
 .firm-hero-rendering h1{font-size:2rem}
 .firm-hero-rendering .firm-hero-links .solid-link,.company-frame .solid-link{font-size:.8125rem;padding-inline:12px;gap:12px}
 .firm-hero-rendering .hero-discipline{font-size:.5625rem}
 .firm-hero-rendering .hero-location{font-size:.6875rem}
 .profile-row{padding-inline:16px}.profile-identity h3,.profile-president .profile-identity h3{font-size:1.45rem}
 .profile-row .leadership-role{font-size:.75rem}
}

/* Leadership biography link */
.profile-identity h3>a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;text-decoration-color:var(--line)}
.profile-identity h3>a:hover{color:var(--pale-blue);text-decoration-color:currentColor}
.profile-biography-link{margin-top:18px;font-size:.875rem;gap:24px}
@media(min-width:1121px) and (max-width:1320px){.header-location{display:none}}
