
/* Technical-only compatibility layer: responsive layout, iPhone safe areas, and common-browser robustness. */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:var(--actual-header-height,96px);
}
body{
  overflow-x:hidden;
  overflow-wrap:break-word;
}
img,svg,video{max-width:100%;height:auto;}
a,button{-webkit-tap-highlight-color:rgba(166,25,46,.12);}
button,input,select,textarea{font:inherit;}
section[id]{scroll-margin-top:var(--actual-header-height,96px);}
.deals-list a,.person-contact,.contact a,.footer-links a{overflow-wrap:anywhere;word-break:break-word;}

/* Profiles intentionally have no photos: let both text columns use their full width. */
@media (min-width:1025px){
  .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;width:100%;}
  .team-grid .person{display:block;width:100%;}
}
@media (min-width:761px) and (max-width:1024px){
  .team-grid .person{display:block;width:100%;}
}

/* Prevent long labels/URLs and grid children from forcing horizontal page overflow. */
.service-grid>*,.sector-grid>*,.team-grid>*,.jobs>*,.contact-inner>*,.about>*{min-width:0;}

/* Mobile layout. Header height is content-driven so translated/long menu labels cannot be clipped. */
@media (max-width:760px){
  .site-header{
    height:auto;
    min-height:0;
    padding-top:max(8px,env(safe-area-inset-top));
    padding-right:max(14px,env(safe-area-inset-right));
    padding-bottom:8px;
    padding-left:max(14px,env(safe-area-inset-left));
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    overflow:visible;
  }
  .logo{
    flex:0 0 160px;
    width:160px;
    height:68px;
    margin:0;
  }
  .logo img{
    width:152px;
    max-height:64px;
    object-fit:contain;
  }
  .main-nav{
    flex:1 0 100%;
    width:100%;
    height:auto;
    max-width:none;
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    align-items:center;
    gap:7px 15px;
    overflow:visible;
    white-space:normal;
    padding:4px 0 6px;
    font-size:13px;
    line-height:1.3;
  }
  .main-nav>a,.main-nav .nav-item{flex:0 0 auto;}
  .main-nav>a:not(.contact-btn){padding:5px 0;}
  .main-nav .contact-btn{display:inline-flex!important;padding:7px 12px;}
  .main-nav .lang{
    position:static;
    display:flex!important;
    gap:3px;
    border-left:1px solid var(--line);
    padding-left:10px;
    margin-left:auto;
    background:transparent;
  }
  .lang button{min-width:32px;min-height:32px;}

  .hero{
    height:auto;
    min-height:100vh;
    min-height:100svh;
    padding-top:0;
  }
  .hero-copy{
    top:calc(var(--actual-header-height,150px) + 4vh);
    bottom:auto;
  }
  section{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
  footer{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(25px,env(safe-area-inset-bottom));}
  .deals-list{max-width:100%;}
  .deals-list *{min-width:0;}
  .person{display:block!important;width:100%;}
  .person .photo-wrap{display:none;}
  .person .bio{font-size:15px;line-height:1.65;}
  .person-name-row{align-items:flex-start;}
}

@media (max-width:430px){
  .logo{flex-basis:148px;width:148px;}
  .logo img{width:140px;}
  .main-nav{gap:6px 12px;font-size:12.5px;}
  .section-title{hyphens:auto;-webkit-hyphens:auto;}
}

@media (max-width:360px){
  .logo{flex-basis:136px;width:136px;}
  .logo img{width:130px;}
  .main-nav{gap:5px 10px;font-size:12px;}
  .main-nav .lang{margin-left:0;}
}

/* Respect accessibility settings and avoid motion-related Safari/browser issues. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}
