/* Cross-site responsive stabilization. Loaded after site.css on every page. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video{max-width:100%;height:auto}
.container,.narrow{max-width:100%}
input,select,textarea,button{max-width:100%}

@media (max-width:840px){
  .container{width:calc(100% - 2.5rem)}
  .narrow{width:calc(100% - 2.5rem)}
  .nav-wrap{min-height:70px;gap:.75rem}
  .brand{min-width:0;gap:.7rem}
  .brand-text{min-width:0}
  .brand-text strong{font-size:.88rem;white-space:nowrap}
  .menu-toggle{display:block;flex:0 0 auto;min-width:52px;min-height:44px;padding:.55rem .75rem}
  .nav-links{top:70px;left:1.25rem;right:1.25rem;max-height:calc(100vh - 86px);overflow:auto}
  .page-hero{padding:3.6rem 0 3.2rem}
  .page-hero h1{font-size:clamp(2.55rem,8.5vw,4.1rem);line-height:1.04;overflow-wrap:anywhere}
  .section{padding:4.3rem 0}
  .btn{min-height:48px}
  .footer-main{gap:2.5rem}
}

@media (max-width:520px){
  .container,.narrow{width:calc(100% - 2rem)}
  body{font-size:16px;line-height:1.65}
  .brand-text span{display:none}
  .brand-text strong{font-size:.82rem;letter-spacing:.085em}
  .brand-mark{width:22px;height:34px}
  .brand-mark:before,.brand-mark:after{left:10px}
  .nav-links{left:1rem;right:1rem}
  .nav-links>a:not(.btn){min-height:48px;padding:.7rem .25rem}
  .page-hero{padding:3rem 0 2.7rem}
  .page-hero h1{font-size:clamp(2.3rem,11vw,3.35rem)}
  .page-hero .lede{font-size:1rem;line-height:1.55}
  .breadcrumb{font-size:.7rem;overflow-wrap:anywhere}
  .section{padding:3.6rem 0}
  h2{font-size:clamp(2.05rem,10vw,3rem);line-height:1.06}
  h3{font-size:1.42rem;line-height:1.14}
  .lede{font-size:1rem;line-height:1.58}
  .btn-row{display:grid;grid-template-columns:1fr;gap:.65rem;margin-top:1.5rem}
  .btn-row .btn{width:100%}
  .split,.split-6040,.section-intro,.assessment-head,.contact-grid,.contact-grid-v4,.boundary-grid,.credibility-grid-v4,.leadership-teaser,.insight-feature,.specialist-network{grid-template-columns:1fr!important;gap:2rem!important}
  .inventory-grid,.service-quadrants,.pillar-grid,.output-grid,.focus-grid,.principles-v4,.referral-principles,.resilience-grid,.scenario-grid,.client-grid,.credential-matrix{grid-template-columns:1fr!important}
  .focus-card,.output-card,.pillar-grid article,.principles-v4 article,.service-quadrants article,.inventory-grid>div,.resilience-grid article,.scenario-grid article,.client-grid>div{border-right:0!important;padding-left:0!important;padding-right:0!important}
  .leadership-grid-photo{grid-template-columns:1fr!important;gap:2.2rem!important}
  .leader-card-photo{grid-template-columns:78px minmax(0,1fr)!important;gap:.8rem .95rem!important}
  .leader-portrait{width:78px!important}
  .leader-portrait img{width:78px!important;height:92px!important;object-fit:cover!important}
  .leader-card-photo .leader-copy{display:contents}
  .leader-card-photo .leader-head{grid-column:2;margin:0;align-self:center}
  .leader-card-photo .leader-copy>p,.leader-card-photo .leader-tags{grid-column:1/-1}
  .specialist-list{grid-template-columns:1fr!important}
  .specialist-list>div,.specialist-list>div:nth-child(even){padding:1rem 0!important;border-right:0!important}
  .contact-form,.premium-form,.form-shell{padding:1.25rem 1rem!important}
  .field input,.field select,.field textarea{font-size:16px;min-height:46px}
  .field textarea{min-height:150px}
  .footer-main{grid-template-columns:1fr!important;gap:2rem}
  .footer-brand-wrap{grid-column:auto!important}
  .footer-bottom{flex-direction:column;gap:.55rem}
  .article-shell .article-header,.article-body,.article-cta{overflow-wrap:anywhere}
  .article-body{font-size:1rem;line-height:1.72}
}

@media (max-width:360px){
  .container,.narrow{width:calc(100% - 1.5rem)}
  .brand-text strong{font-size:.76rem;letter-spacing:.07em}
  .menu-toggle{min-width:48px;padding:.5rem .6rem;font-size:.82rem}
  .page-hero h1{font-size:2.25rem}
}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* Preserve photographic composition. The site should choose photos for the layout, not crop them aggressively. */
.page-photo img,.hero-property-photo img,.editorial-property-photo img,.resilience-property-photo img{
  width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;
}
.page-photo,.hero-property-photo,.editorial-property-photo,.resilience-property-photo{overflow:visible!important}
