/* Responsive hero: redesigned desktop/mobile photos and vertically centered mobile copy. */
.hero-slider {
  height: clamp(540px, 41vw, 640px);
  min-height: 540px;
  max-height: none;
  background: #112b43;
}
.hero-slider .hero-photo-wrap { position: absolute; inset: 0; z-index: -2; display: block; }
.hero-slider .hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; filter: none; }
.hero-slider .hero-slide[data-slide="0"] .hero-photo { object-position: 58% center; }
.hero-slider .hero-slide[data-slide="1"] .hero-photo { object-position: center 48%; }
.hero-slider .hero-slide[data-slide="2"] .hero-photo { object-position: center 47%; }
.hero-slider .hero-slide--project .hero-photo-wrap {
  left: auto;
  width: min(67%, 1050px);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 24%);
  mask-image: linear-gradient(90deg, transparent, #000 24%);
}
.hero-slider .hero-slide--project[data-slide="2"] .hero-photo-wrap { width: min(62%, 900px); }
.hero-slider .hero-slide--project .hero-photo { transform: none; transition: none; }
.hero-slider .hero-slide::after {
  z-index: -1;
  background: linear-gradient(90deg,rgba(7,24,38,.94) 0%,rgba(7,27,43,.9) 27%,rgba(8,30,46,.56) 48%,rgba(8,30,46,.1) 78%,rgba(8,30,46,.02) 100%);
}
.hero-slider .hero-slide--project::after {
  background: linear-gradient(90deg, #112b43 0%, rgba(17,43,67,.96) 29%, rgba(17,43,67,.75) 40%, rgba(17,43,67,.3) 53%, rgba(17,43,67,.04) 70%, transparent 100%);
}
.hero-slider .hero-copy { max-width: 650px; padding: 52px 0 88px; }
.hero-slider .hero-copy h1, .hero-slider .hero-copy h2 { font-size:clamp(45px,4.6vw,69px); max-width:640px; text-wrap:balance; }
.hero-slider .hero-copy > p { max-width: 520px; }
.hero-slider .hero-slider-ui { bottom: 23px; }
@media(max-width:900px) {
  .hero-slider { height:600px; min-height:540px; }
  .hero-slider .hero-copy { padding: 30px 0 96px; }
  .hero-slider .hero-copy h1, .hero-slider .hero-copy h2 { font-size:clamp(40px,5vw,58px); }
}
@media(max-width:700px) {
  .hero-slider { height: clamp(610px, 84svh, 730px); min-height: 610px; max-height: none; }
  .hero-slider .hero-slide { align-items: center; }
  .hero-slider .hero-photo-wrap { z-index: -2; }
  .hero-slider .hero-slide--project .hero-photo-wrap,
  .hero-slider .hero-slide--project[data-slide="2"] .hero-photo-wrap {
    inset: 0;
    width: 100%;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .hero-slider .hero-slide[data-slide="0"] .hero-photo { object-position: 50% 50%; }
  .hero-slider .hero-slide[data-slide="1"] .hero-photo { object-position: 50% 50%; }
  .hero-slider .hero-slide[data-slide="2"] .hero-photo { object-position: 50% 45%; }
  .hero-slider .hero-slide::after {
    background: linear-gradient(180deg,rgba(7,26,42,.12) 0%,rgba(7,26,42,.2) 15%,rgba(7,26,42,.65) 34%,rgba(7,26,42,.72) 56%,rgba(7,26,42,.46) 78%,rgba(7,26,42,.76) 100%);
  }
  .hero-slider .hero-slide-container { width: calc(100% - 38px); }
  .hero-slider .hero-copy { padding: 0 0 24px; max-width: 100%; }
  .hero-slider .hero-copy h1, .hero-slider .hero-copy h2 {
    font-size:clamp(37px,10vw,49px); line-height:1.08; max-width:100%; text-wrap:balance;
  }
  .hero-slider .hero-copy > p { font-size:14.5px; line-height:1.52; max-width:340px; margin-top:14px; }
  .hero-slider .hero-copy .button-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
  .hero-slider .hero-copy .btn { min-height:43px; padding:11px 12px; font-size:11px; }
  .hero-slider .hero-copy .location-pill { font-size:10px; margin-top:15px; }
  .hero-slider .hero-slider-ui { left:50%; right:auto; transform:translateX(-50%); bottom:16px; }
}
@media(max-width:390px) {
  .hero-slider .hero-slide-container { width:calc(100% - 34px); }
  .hero-slider .hero-copy { padding-bottom: 24px; }
  .hero-slider .hero-copy h1, .hero-slider .hero-copy h2 { font-size:clamp(35px,9.65vw,40px); }
  .hero-slider .hero-copy > p { font-size:13px; }
  .hero-slider .hero-copy .btn { padding:10px 9px; font-size:10.5px; }
}
@media(max-height:690px) and (max-width:700px) {
  .hero-slider { min-height:585px; height:585px; }
  .hero-slider .hero-copy { padding-top: 0; }
}
@media(prefers-reduced-motion:reduce) { .hero-slider .hero-slide { transition:none; } }
