.hero{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);column-gap:54px;overflow:clip}
.hero-heading{grid-column:1/-1;position:relative;z-index:4;min-width:0}
.hero-heading h1{width:min(88%,1040px);text-wrap:balance;text-shadow:0 3px 22px rgba(17,19,16,.62)}
.hero-copy{grid-column:1;position:relative;z-index:3;align-self:start;min-width:0}
.hero-copy .hero-lead{margin-top:0}
.hero-visual{grid-column:2;grid-row:2;position:relative;z-index:1;min-width:0;margin-top:0;align-self:start}
.hero-portrait{position:relative;height:560px;margin:0;overflow:hidden;border:1px solid var(--line);background:#20231e}
.hero-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(17,19,16,.72) 0%,rgba(17,19,16,.18) 42%,transparent 68%),linear-gradient(0deg,rgba(17,19,16,.86) 0%,transparent 32%);pointer-events:none}
.hero-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(.84) contrast(1.04)}
.hero-portrait figcaption{position:absolute;left:22px;right:22px;bottom:20px;z-index:2;display:grid;gap:2px}
.hero-portrait figcaption strong{font-size:18px}
.hero-portrait figcaption span{font-size:12px;color:#d0d4ca;text-transform:uppercase;letter-spacing:.08em}
.hero-process{grid-column:1;position:relative;z-index:3;margin-top:34px;max-width:650px;box-shadow:0 22px 55px rgba(0,0,0,.24)}
.hero-process .process-map{padding:18px 0}
.hero-process .map-line{height:10px}
.hero-strip{margin-top:70px}

@media(max-width:1100px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(310px,.72fr);column-gap:38px}
  .hero-heading h1{width:100%;max-width:920px;text-shadow:none}
  .hero-visual{margin-top:0}
  .hero-portrait{height:540px}
  .hero-process{margin-top:32px}
  .hero-strip{margin-top:58px}
}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;overflow:hidden}
  .hero-heading,.hero-copy,.hero-visual,.hero-process{grid-column:1}
  .hero-heading{grid-row:auto}
  .hero-copy{grid-row:auto}
  .hero-visual{grid-row:auto;min-height:auto;margin-top:0}
  .hero-portrait{height:520px}
  .hero-process{box-shadow:none;margin-top:0}
  .hero-strip{margin-top:48px}
}

@media(max-width:650px){
  .hero-heading h1{font-size:42px;text-wrap:wrap}
  .hero-portrait{height:min(520px,128vw)}
  .hero-portrait img{object-position:center 39%}
  .hero-process{margin-top:0}
  .hero-strip{margin-top:42px}
}

@media(max-width:380px){
  .hero-heading h1{font-size:38px}
  .hero-process{padding:18px 16px}
  .hero-portrait figcaption{left:16px;right:16px}
}
