/* 04.0.0 — responsive refinements across project and editorial pages. */
.motion-ready .scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.motion-ready .scroll-reveal.is-visible{opacity:1;transform:none}
.page-preloader.is-finishing{background:#1267fa;opacity:0;transition:opacity .55s ease}
.hero-video{pointer-events:none}

/* Project drawings belong to the cards, while their titles stay legible. */
.project-card-top{position:relative;isolation:isolate;overflow:hidden;min-height:310px}
.project-card-kicker,.project-card-top h3{position:relative;z-index:2}
.project-card-top h3{margin-top:auto;padding-top:120px;text-wrap:balance}
.project-plan{position:absolute;z-index:0;left:0;top:47px;width:100%;height:calc(100% - 88px);object-fit:contain;object-position:center;pointer-events:none}
.project-card-top::after{content:"";position:absolute;z-index:1;inset:45% 0 0;pointer-events:none;background:linear-gradient(transparent 10%,#2d343d 100%)}
.dark-section .project-card-top,.dark-section .project-card.silver .project-card-top,.dark-section .project-card.azure .project-card-top{background:#2d343d;color:#fff}
.dark-section .project-card .project-card-bottom{background:#202a35;color:#fff}
.service-project-grid .project-card{border-color:#b9c2c8}
.service-project-grid .project-card-top,.service-project-grid .project-card.graphite .project-card-top,.service-project-grid .project-card.silver .project-card-top,.service-project-grid .project-card.azure .project-card-top{background:#d9dee2;color:#131719!important}
.service-project-grid .project-card-top::after{background:linear-gradient(transparent 10%,#d9dee2 100%)}
.service-project-grid .project-card-bottom{background:#e5e9eb;color:#131719}
.service-project-grid .project-card-bottom p,.service-project-grid .project-card-bottom .project-disciplines{color:#4d5b64}
.service-project-grid .project-card .card-foot{color:#131719!important;border-color:#aab5bc}
.projects-listing{background:#f2f3f0;color:#131719}
.projects-listing .project-card{border-color:#b9c2c8}
.projects-listing .project-card-top,.projects-listing .project-card.graphite .project-card-top,.projects-listing .project-card.silver .project-card-top,.projects-listing .project-card.azure .project-card-top{background:#d9dee2;color:#131719!important}
.projects-listing .project-card-top::after{background:linear-gradient(transparent 10%,#d9dee2 100%)}
.projects-listing .project-card-bottom{background:#e5e9eb;color:#131719}
.projects-listing .project-card-bottom p,.projects-listing .project-card-bottom .project-disciplines{color:#4d5b64}
.projects-listing .project-card .card-foot{color:#131719!important;border-color:#aab5bc}
@media(max-width:800px){.project-card-top{min-height:290px}.project-card-top h3{padding-top:120px}}
@media(max-width:480px){.project-card-top{min-height:278px}.project-plan{top:44px;height:calc(100% - 72px)}.project-card-top h3{padding-top:115px}}

/* The 3D canvas spans the viewport; details below return to the page grid. */
.case-explorer .building-volume,.case-explorer .case-links{padding-inline:var(--edge)}
.case-explorer .building-volume{box-sizing:border-box;width:100%;max-width:none;margin-inline:0}
.case-explorer .case-links{margin-top:30px}
.case-explorer .viewer-section{background:#10191e}

/* Navigation uses weight for hover and keeps the current page marked quietly. */
.menu-links a,.footer-navigation a,.footer-directions a{font-weight:500;text-decoration:none!important}
.menu-links a[aria-current=page],.footer-navigation a[aria-current=page]{font-weight:700;text-decoration:none!important}
.menu-links a:hover,.menu-links a:focus-visible,.footer-navigation a:hover,.footer-navigation a:focus-visible,.footer-directions a:hover,.footer-directions a:focus-visible{font-weight:700;text-decoration:none!important}
.menu-links .arrow{display:inline-flex;align-items:center;justify-content:center;opacity:0;transform:translate(-6px,6px);transition:opacity .24s ease,transform .24s ease}
.menu-links a:hover .arrow,.menu-links a:focus-visible .arrow{opacity:1;transform:none}
.service-card .card-foot{transition:font-weight .2s ease}
.service-card:hover .card-foot,.service-card:focus-visible .card-foot{font-weight:700}
.production-ui .service-card:hover,.production-ui .service-card:focus-visible{transform:none!important;border-color:#d5dad7!important;box-shadow:none!important}
.service-card:hover img,.service-card:focus-visible img{transform:none!important}

/* Unselected stages have no frame; hover gives a quiet cue. */
.approach-section .step-tabs{border:0!important;gap:8px!important}
.approach-section .step-tab{border:0!important;outline:0;background:transparent}
.approach-section .step-tab:hover,.approach-section .step-tab:focus-visible{background:#243849;color:#fff}
.approach-section .step-tab[aria-selected=true],.approach-section .step-tab[aria-selected=true]:hover{background:#1267fa;color:#fff}
.approach-section .step-tab:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Single blue ending and consistent legal baseline across pages. */
.footer.closing-footer,.closing-footer .footer-reveal,.closing-footer .footer-identity{background:#1267fa}
.closing-footer .footer-bottom{grid-template-columns:minmax(0,1.15fr) minmax(0,1.45fr) minmax(0,.9fr) auto;align-items:start}
.closing-footer .footer-bottom>*{min-width:0}
.closing-footer .footer-bottom a{overflow-wrap:anywhere}
.closing-footer .footer-legal{flex-wrap:wrap}
.closing-footer .footer-wordmark img{display:block;width:100%;height:auto}
.closing-footer .footer-author{justify-self:end}
@media(max-width:800px){.closing-footer .footer-reveal{position:sticky;bottom:0}}
@media(max-width:700px){.closing-footer .footer-bottom{display:flex;flex-direction:column;align-items:stretch;gap:0}.closing-footer .footer-legal{display:flex;flex-direction:column;align-items:flex-start}.closing-footer .footer-author{justify-self:auto}.closing-footer .footer-identity{padding-bottom:max(20px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.menu-links .arrow{transition:none}.closing-footer .footer-reveal{position:static}.motion-ready .scroll-reveal,.motion-ready [data-reveal]{opacity:1;transform:none;transition:none}.page-preloader{display:none}}

/* The header controls follow the same baseline; the menu is always the rightmost action. */
.header .nav-shell{display:flex;flex-direction:row;align-items:center;justify-content:flex-end}
.header .nav-shell>.header-project{order:1;height:52px!important;min-height:52px!important;box-sizing:border-box;background:#fd5a00!important;border-color:#fd5a00!important;color:#fff!important}
.header .menu-toggle{order:2;width:52px;height:52px;min-width:52px;box-sizing:border-box;background:transparent!important;color:var(--nav-color)!important}
.home-page .header:not(.is-below-hero):not(.is-menu-open) .menu-toggle,.header.on-blue .menu-toggle,.header.on-dark .menu-toggle{color:#fff!important}
.menu-toggle .menu-strokes{width:32px;gap:7px}
.menu-toggle .menu-strokes i{width:32px;height:2px}
.menu-close,.menu-close:hover,.menu-close:active,.menu-close:focus{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
.menu-close:focus-visible{outline:none!important}
.header.is-below-hero{background:#f2f3f0}
.home-page .header:not(.is-below-hero){background:transparent}

/* Each drawing stands alone; project names begin the descriptive panel. */
.project-card-top,.project-card.silver .project-card-top,.project-card.azure .project-card-top{min-height:280px}
.project-card-top::after{inset:75% 0 0;opacity:.32}
.project-plan{top:45px;height:calc(100% - 56px)}
.project-card-bottom{gap:18px}
.project-card-bottom h3{position:static;z-index:auto;margin:0;padding:0;font-size:clamp(28px,2.9vw,44px);font-weight:500;line-height:1.12;color:inherit}
.project-card-bottom .project-disciplines{margin-top:0}

/* Remove ornamental squares, retaining the useful section icons. */
.eyebrow::before,.section-label .eyebrow::before{display:none!important;content:none!important}
.section-label:empty{display:none}
.editorial-hero .eyebrow{margin-bottom:24px}
.editorial-split .editorial-copy .eyebrow{margin-bottom:24px}
.editorial-split .editorial-copy h2{margin-top:0}
.company-brand-section{padding-block:clamp(72px,8vw,130px)}
.company-brand-copy h2{margin-top:0}
.editorial-page .editorial-split{padding-block:clamp(64px,7vw,112px)}
.editorial-art.system-art{isolation:isolate}
.editorial-art.system-art figcaption{display:none}

/* Text and controls in the case viewer use the same page inset. */
.case-explorer .building-tabs{box-sizing:border-box;width:100%;padding-inline:var(--edge);scroll-padding-inline:var(--edge)}
.case-explorer .building-tabs button:first-child{margin-left:0}
.case-explorer .viewer-top{box-sizing:border-box}

/* The request form uses the same orange call to action as the rest of the site. */
#submit-project,.form-actions .form-submit{background:#fd5a00!important;border-color:#fd5a00!important;color:#fff!important}
#submit-project:hover,.form-actions .form-submit:hover{background:#e65100!important;border-color:#e65100!important}

/* Keep the dash attached to its first phrase at every viewport width. */
.home-page .hero-content>.eyebrow{margin:0 0 18px}
.home-page .hero-content h1{margin-top:0}
.home-page .hero-title-first{display:block;white-space:nowrap;color:#fff!important}
.home-page .hero-title-rest{display:block;color:#fff!important}
.home-page .hero-video::-webkit-media-controls,.home-page .hero-video::-webkit-media-controls-panel,.home-page .hero-video::-webkit-media-controls-start-playback-button,.home-page .hero-video::-webkit-media-controls-overlay-play-button,.home-page .hero-video::-webkit-media-controls-play-button{display:none!important;-webkit-appearance:none!important}

@media(max-width:800px){
 .header .nav-shell>.header-project{display:inline-flex!important}
 .home-page .hero-content h1{font-size:clamp(36px,6vw,60px)}
 .home-page .hero-content{justify-content:center}
 .project-card-top,.project-card.silver .project-card-top,.project-card.azure .project-card-top{min-height:250px}
 .project-card-bottom h3{font-size:clamp(29px,5vw,38px)}
}
@media(max-width:700px){
 .header .nav-shell>.header-project{display:none!important}
 .home-page .hero-content h1{font-size:clamp(27px,8vw,43px);line-height:1.08;letter-spacing:-.055em}
 .home-page .hero-content>.eyebrow{margin-bottom:16px}
 .home-page .hero-content{padding-top:100px;padding-bottom:34px}
 .home-page .hero-content>p{margin-top:24px}
 .editorial-hero{padding-bottom:36px}
 .company-brand-section{padding-top:42px;padding-bottom:40px}
 .editorial-page .editorial-split{padding-top:44px;padding-bottom:54px}
 .editorial-split .editorial-copy .eyebrow{margin-bottom:20px}
 .project-card-top,.project-card.silver .project-card-top,.project-card.azure .project-card-top{min-height:230px}
 .project-plan{top:40px;height:calc(100% - 48px)}
 .project-card-bottom{padding:26px 22px;gap:16px}
 .project-card-bottom h3{font-size:32px}
 .case-explorer .building-tabs{padding-inline:var(--edge)!important}
}
@media(max-width:350px){.home-page .hero-content h1{font-size:27px}}
