/* Shared responsive rules. Loaded last on every page. */
html{scroll-padding-top:88px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
main,section,article,figure,.wrap,.header-inner,.hero-copy,.hero-evidence{min-width:0}
h1,h2,h3,p,li,dd,a{overflow-wrap:break-word}
.button,.text-link{max-width:100%}
.button>span,.text-link>span{flex-shrink:0}
video,canvas{max-width:100%}
@media screen and (max-width:920px){
  .header-inner{min-height:64px;gap:12px;padding:8px max(20px,env(safe-area-inset-right)) 8px max(20px,env(safe-area-inset-left))}
  .brand{min-width:0;max-width:calc(100% - 56px)}
  .brand .brand-lockup img{width:64px}
  .brand-lockup{gap:9px}
  .brand-lockup>span{font-size:10px;padding-left:9px;border-left-width:2px}
  .menu-toggle{width:44px;height:44px;flex:0 0 44px;padding:10px}
  .site-header nav{top:100%;max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;padding:16px 24px max(24px,env(safe-area-inset-bottom));gap:4px}
  .site-header nav>a:not(.button){min-height:48px;font-size:17px}
  .site-header nav .button{min-height:48px}
  .two-column>*,.detail-grid>*,.intro-grid>*,.contact-grid>*,.footer-top>*{min-width:0}
  .button:hover{transform:none}
  .directory-links>a,.leader-links a,.primary-email{overflow-wrap:anywhere}
  .filter-button,.dialog-close{min-width:44px;min-height:44px}
  dialog{max-width:calc(100% - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;padding:20px}
  dialog img{max-height:60vh;max-height:60dvh;object-fit:contain}
  .intro-media-footer,.hero-ambient-footer{flex-wrap:wrap}
}
@media screen and (max-width:800px){
  body{padding-bottom:0}
  .mobile-actions{position:static;grid-template-columns:1fr 1fr;padding:16px 20px;backdrop-filter:none}
  .infrastructure-hero .hero-grid{display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:20px;padding-bottom:0}
  .infrastructure-hero .hero-copy{max-width:none}
  .infrastructure-hero .hero-world .globe-stage{width:min(64vw,280px);max-width:280px}
  .two-column,.detail-grid,.intro-grid,.contact-overview .contact-grid,.field-coordination-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .infrastructure-scenes{inset:0;height:auto}
  .infrastructure-hero::after{background:linear-gradient(180deg,rgba(20,32,31,.97),rgba(20,32,31,.93) 42%,rgba(20,32,31,.58) 76%,#14201f)}
  .media-intro .intro-grid{grid-template-columns:minmax(0,1fr);gap:18px}
}
@media screen and (max-width:680px){
  body{padding-bottom:0}
  .wrap,.original-work-section>.wrap,.work-gallery>.wrap,.field-films-section>.wrap,.field-profiles-section>.wrap{width:calc(100% - 40px)}
  .infrastructure-hero{padding:24px 0 16px}
  .infrastructure-hero .hero-copy>.eyebrow{font-size:10px;letter-spacing:.11em;margin:0 0 12px}
  .infrastructure-hero h1{font-size:clamp(30px,8.2vw,40px);line-height:1.12;letter-spacing:-.025em;margin:0 0 16px}
  .infrastructure-hero .hero-experience{gap:10px;margin:0 0 16px}
  .infrastructure-hero .hero-experience>strong{font-size:30px}
  .infrastructure-hero .hero-experience>span{font-size:14px;line-height:1.4;max-width:none}
  .infrastructure-hero .hero-description{font-size:16px;line-height:1.5;margin:0;max-width:none}
  .infrastructure-hero .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 0}
  .infrastructure-hero .hero-actions .button,.infrastructure-hero .hero-actions .text-link{width:100%;min-width:0;min-height:48px;padding:12px 10px;font-size:14px;line-height:1.4;gap:10px;justify-content:center;white-space:normal}
  .infrastructure-hero .hero-world .globe-stage{width:min(62vw,250px);max-width:250px}
  .infrastructure-hero .globe-message{font-size:13px;margin:0 0 12px}
  .hero-scene-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}
  .hero-scene-controls button{justify-content:center;gap:4px;min-width:0;font-size:12px;line-height:1.4;padding:9px 4px;min-height:44px}
  .hero-scene-controls button>span{display:none}
  .hero-ambient-footer{margin-top:16px;padding-top:12px;gap:8px}
  .hero-ambient-footer>a{font-size:12px}
  .hero-ambient-footer .motion-toggle{font-size:12px;letter-spacing:0}
  .section,.original-work-section,.compact-capabilities{padding:40px 0}
  .section-top{margin-bottom:24px}
  .section-top h2,.section-heading h2,.cta h2,.field-coordination-grid h2{font-size:clamp(28px,7.2vw,34px);line-height:1.18}
  .section-top .section-intro{margin-top:18px;font-size:16px}
  .page-intro,.media-intro{padding:32px 0;min-height:0}
  .page-intro h1,.media-intro h1{font-size:clamp(30px,8vw,40px);line-height:1.14;overflow-wrap:anywhere}
  .page-intro .intro-copy,.media-intro .intro-copy{font-size:16px;line-height:1.55}
  .original-grid,.work-grid,.field-films-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .original-card h3,.work-card h2,.field-film h3,.field-profile-copy h3{font-size:26px;line-height:1.2}
  .original-card p,.work-card p:not(.eyebrow),.field-film p,.field-profile-copy>p:not(.eyebrow){font-size:16px;line-height:1.55}
  .infrastructure-feature{min-height:320px}
  .infrastructure-feature-copy{padding:24px}
  .infrastructure-feature-copy h3{font-size:30px}
  .focus-links a{font-size:13px;min-width:0;gap:8px}
  .focus-links a .focus-arrow{margin-left:auto}
  .capability-summary h3{font-size:21px}
  .contact-directory,.company-leadership,.overview-grid{grid-template-columns:minmax(0,1fr)}
  .directory-card{padding:24px 20px}
  .directory-card h3{font-size:27px}
  .directory-links>a{font-size:16px;overflow-wrap:anywhere}
  .inquiry-panel{padding:24px 20px}
  .inquiry-panel h2,.contact-office>h2{font-size:30px}
  .inquiry-panel .inquiry-start{font-size:16px}
  .print-actions{align-items:stretch}
  .print-actions>.button{width:100%;font-size:16px}
  .location-list li{flex-wrap:wrap;gap:6px 16px;font-size:18px}
  .cap-row>div{min-width:0}
  .row-arrow{flex-shrink:0}
  .lighthouse{grid-template-columns:minmax(0,1fr);gap:24px}
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
  footer a{min-height:44px;display:flex;align-items:center;overflow-wrap:anywhere}
  .footer-bottom{gap:12px 20px}
  /* In-flow actions cannot cover photographs, controls or browser chrome. */
  .mobile-actions{position:static;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 20px;backdrop-filter:none}
  .mobile-actions a{min-height:48px;font-size:15px}
  .company-standards-inner>div,.field-profile-links{gap:12px 20px}
}
@media screen and (max-width:359px){
  .header-inner{padding-left:16px;padding-right:16px}
  .brand .brand-lockup img{width:56px}
  .brand-lockup>span{font-size:9px}
  .wrap,.original-work-section>.wrap,.work-gallery>.wrap,.field-films-section>.wrap,.field-profiles-section>.wrap{width:calc(100% - 32px)}
  .infrastructure-hero h1{font-size:29px}
  .infrastructure-hero .hero-actions{gap:8px}
  .infrastructure-hero .hero-actions .button,.infrastructure-hero .hero-actions .text-link{font-size:13px;padding:10px 6px;gap:6px}
  .capability-summary,.footer-top{grid-template-columns:minmax(0,1fr)}
  .footer-brand{grid-column:auto}
}
@media screen and (max-height:500px) and (orientation:landscape){
  main{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .site-header{position:relative}
  .site-header nav{max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px)}
}
@media print{.mobile-actions{display:none!important}}

/* Core values retain the established responsive grid. */
.principles h3{font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.15;margin:22px 0 18px;overflow-wrap:break-word}
