/* Responsive usability fixes, keeping the established desktop design. */
.intro-grid>*,.photo-editorial>*,.cta-grid>*,.faq-grid>*,.contact-grid>*,.location>*,.footer-top>*,.fields>*{min-width:0}
.footer a,.contact-info a,.legal a{overflow-wrap:anywhere}
.fields input,.fields textarea{max-width:100%}
.map-stop>span{min-width:0;overflow-wrap:anywhere}
/* Office labels: no decorative numbering; keep all city names top-aligned. */
.map-stop .stop-num{display:none}
.map-stop{align-items:flex-start}
.map-stop>span:not(.stop-num):not(.stop-arrow){flex:1}
.map-stop .stop-arrow{flex:0 0 auto;align-self:center}
:where(a,button,input,textarea,summary):focus-visible{outline:3px solid #548494;outline-offset:4px}
@media(max-width:1000px){
  /* Match text sizing across iOS/Android, including landscape rotation. */
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  .header{-webkit-backdrop-filter:blur(20px)}
  .fields input,.fields textarea{font-size:16px;min-height:44px}
  .menu{display:block;font-size:14px;min-height:44px;padding:10px 12px}
  .nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fafcfc;padding:20px;border-radius:0 0 18px 18px;box-shadow:0 20px 30px #05283a1a;flex-direction:column;align-items:stretch;gap:8px;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior-y:contain}
  .nav.open{display:flex}
  .nav a{font-size:16px;padding:12px 15px;min-height:44px}
  .nav a[aria-current=page]:after{display:none}
  .nav a[aria-current=page]{background:#e0e9ed;color:var(--ink);border-radius:8px}
  .contact-grid,.location{grid-template-columns:minmax(0,1fr)}
  .location h2{font-size:clamp(36px,5vw,50px)}
  .contact-form{width:100%}
  .split-hero{grid-template-columns:minmax(0,1fr)}
  .split-hero .visual{min-height:480px}
  .intro-grid,.photo-editorial,.cta-grid,.faq-grid{gap:35px}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-top>div:first-child{grid-column:1/-1}
}
@media(max-width:760px){
  .nav{top:68px;max-height:calc(100vh - 125px);max-height:calc(100dvh - 125px - env(safe-area-inset-bottom,0px))}
  .model-img{-webkit-mask-image:linear-gradient(0deg,black 75%,transparent 100%)}
  .intro-grid,.photo-editorial,.cta-grid,.faq-grid,.contact-grid,.location{grid-template-columns:minmax(0,1fr);gap:32px}
  .intro-grid .textcol{padding-top:0}
  /* Keep mobile headings intact; balance lines at natural word boundaries. */
  h1,h2,h3{-webkit-hyphens:none;hyphens:none;overflow-wrap:normal;word-break:normal;text-wrap:balance}
  .page-index .intro-grid h2,.page-gruppe .intro-grid h2,.photo-editorial h2,.section-head h2,.cta h2,.faq-grid h2,.location h2{font-size:clamp(32px,8.8vw,41px)}
  .model-hero h1,.split-hero h1,.office-hero h1,.career-hero h1,.contact-grid h1{font-size:clamp(38px,11.8vw,53px)}
  .contact-grid h1{font-size:clamp(30px,10vw,53px)}
  .legal h1{font-size:clamp(32px,10.5vw,42px)}
  .legal h2{font-size:clamp(18px,5.6vw,22px)}
  .page-index .visual-benefits h3{font-size:clamp(24px,7.4vw,29px)}
  .sculpted-values h3{font-size:clamp(20px,6.5vw,25px)}
  .job h3{font-size:clamp(20px,6vw,25px)}
  .model-hero .actions,.cta .actions{flex-wrap:wrap}
  .model-hero .actions .btn{font-size:12px}
  .btn{max-width:100%;white-space:normal}
  .btn .arrow{flex-shrink:0}
  .model-hero p,.split-hero p,.contact-grid p,.faq p,.step p,.person p,.advisors .person p,.legal p{font-size:15px}
  .split-hero .visual{min-height:410px}
  .band-label{padding:18px 15px 18px 58px}
  .band-label .seal{left:14px;width:32px;height:32px;font-size:20px}
  .band-label strong,.band-label span{overflow-wrap:anywhere}
  .fields{grid-template-columns:minmax(0,1fr);gap:22px}
  .fields label{grid-column:1/-1}
  .fields input,.fields textarea{font-size:16px;min-height:44px}
  .footer-top{grid-template-columns:minmax(0,1fr);gap:32px}
  .footer{font-size:14px}
  .footer .label{font-size:11px}
  .footerlinks{gap:0 24px}
  .footerlinks a{display:flex;align-items:center;min-height:44px}
  .footer-bottom{font-size:12px}
  .footer-bottom div{flex-wrap:wrap;gap:8px 20px}
  .footer-bottom a{font-size:12px;display:inline-flex;align-items:center;min-height:44px}
  .map-play{min-height:44px}
  .map-stop{gap:8px}
  .map-stop small{font-size:11px}
  .faq summary{font-size:16px;min-height:44px}
  .sitemap .close{min-height:44px}
}
@media(max-width:480px){
  .advisors,.timeline{grid-template-columns:minmax(0,1fr)}
  .advisors .portrait img{height:auto;aspect-ratio:1/1;object-fit:cover}
  .advisors .person-text{padding:22px}
  .advisors h3{font-size:24px}
  .advisors .person .role{font-size:10px}
  .step{min-height:0}
  .page-bueros .big-stat{gap:8px;padding:22px 12px}
  .big-stat .stat{padding-left:10px;min-width:0}
  .big-stat strong{font-size:36px}
  .big-stat .stat span{overflow-wrap:anywhere}
  .sitemap h2{font-size:34px;clear:both}
  .sitemap-links a{font-size:21px;gap:15px}
}


/* Draw icons directly so iOS/Android cannot substitute emoji glyphs. */
.site-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0;overflow:visible}
.arrow .site-icon,.benefit-arrow .site-icon,.seal .site-icon,.promise .site-icon{display:block}
.step:after{content:"";width:1em;height:1em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2018%2018%206M6%206h12v12%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2018%2018%206M6%206h12v12%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
