.kw-home-hero {
  grid-template-columns: minmax(420px, .82fr) minmax(520px, 1fr);
  gap: 30px;
  min-height: clamp(650px, calc(100vh - 126px), 790px);
}

.kw-home-hero.text-only {
  grid-template-columns: minmax(0, 860px);
  min-height: clamp(520px, calc(100vh - 126px), 720px);
}

.kw-home-hero::before {
  content: "";
  position: absolute;
  inset: 7% -7% 4%;
  z-index: 0;
  border-radius: 34px;
  background:
    radial-gradient(circle at 74% 42%, rgba(44, 152, 255, .38), transparent 34%),
    linear-gradient(90deg, rgba(5, 21, 50, .22), rgba(7, 34, 77, .58));
  filter: blur(.2px);
}

.kw-home-hero .kw-hero-copy {
  align-self: center;
}

.kw-home-hero h1 {
  margin-bottom: 4px;
  max-width: 720px;
  font-size: clamp(40px, 4.4vw, 54px);
  letter-spacing: 0;
  line-height: 1;
}

.kw-hero-punch {
  display: block;
  margin: 0 0 16px;
  color: #f7fbff;
  font-size: clamp(23px, 2.5vw, 30px);
  line-height: 1.02;
  text-shadow: 0 3px 24px rgba(3, 18, 44, .40);
}

.kw-home-hero .kw-lead {
  max-width: 560px;
  font-size: 20px;
}

.kw-home-hero .kw-lead span {
  display: block;
}

.kw-home-hero .kw-button.primary,
.kw-topbar .kw-button.primary {
  border-color: #ffd36a;
  background: linear-gradient(145deg, #ff8a1f, #ffd45a);
  color: #10295b;
  box-shadow: 0 18px 36px rgba(255, 138, 31, .30), inset 0 1px rgba(255, 255, 255, .46);
}

.kw-hero-visual.kw-shot-slider {
  position: relative;
  min-height: 655px;
  padding: 22px;
  overflow: visible;
  border-color: rgba(190, 228, 255, .72);
  background:
    linear-gradient(180deg, rgba(7, 34, 77, .86), rgba(6, 27, 63, .68)),
    rgba(7, 34, 77, .72);
  box-shadow: 0 34px 100px rgba(0, 24, 70, .40), inset 0 1px rgba(255, 255, 255, .28);
}

.kw-hero-visual::before {
  content: "";
  position: absolute;
  inset: -9%;
  z-index: -1;
  opacity: .32;
  background: url("/assets/home/easy-setup.png") center / cover no-repeat;
  filter: blur(26px) saturate(1.2);
}

.kw-hero-visual .kw-shot-frame {
  min-height: 390px;
  border-color: rgba(190, 228, 255, .70);
  background: rgba(4, 20, 52, .84);
  box-shadow: 0 24px 70px rgba(0, 24, 70, .34);
}

.kw-hero-badge {
  position: absolute;
  left: 16px;
  top: 16px;
  z-index: 3;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border: 1px solid rgba(255, 211, 106, .90);
  border-radius: 999px;
  color: #10295b;
  background: linear-gradient(145deg, rgba(255, 245, 197, .96), rgba(255, 179, 54, .94));
  box-shadow: 0 16px 36px rgba(0, 24, 70, .28);
  font-size: 12px;
  font-weight: 950;
}

.kw-hero-visual .kw-shot-caption {
  background: rgba(225, 243, 255, .90);
}

@media (max-width: 1040px) {
  .kw-home-hero { grid-template-columns: 1fr; }
  .kw-hero-visual.kw-shot-slider { min-height: 580px; }
}

@media (max-width: 620px) {
  .kw-topbar .kw-actions { display: none; }
  .kw-home-hero,
  .kw-home-hero .kw-hero-copy,
  .kw-home-hero .kw-hero-visual,
  .kw-home-hero .kw-shot-frame,
  .kw-home-hero .kw-lead { min-width: 0; max-width: 100%; }
  .kw-home-hero { gap: 16px; overflow: hidden; padding-top: 4px; }
  .kw-home-hero .kw-hero-copy { width: calc(100vw - 22px); max-inline-size: calc(100vw - 22px); }
  .kw-home-hero .kw-hero-visual { width: calc(100vw - 22px); justify-self: start; margin-left: 0; }
  .kw-home-hero .kw-hero-copy { order: -2; }
  .kw-home-hero .kw-hero-visual { order: 0; }
  .kw-home-hero .kw-eyebrow { font-size: 11px; }
  .kw-home-hero h1 { margin: 9px 0 2px; font-size: 28px; line-height: 1.04; }
  .kw-hero-punch { margin-bottom: 10px; font-size: 22px; }
  .kw-home-hero .kw-lead {
    width: calc(100vw - 22px);
    font-size: 15px;
    line-height: 1.42;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .kw-home-hero .kw-lead span { display: inline; }
  .kw-home-hero .kw-lead span::after { content: " "; }
  .kw-home-hero .kw-lead span:last-child::after { content: ""; }
  .kw-home-hero .kw-hero-actions { gap: 9px; margin-top: 16px; }
  .kw-hero-visual.kw-shot-slider { gap: 9px; min-height: 0; padding: 10px; overflow: hidden; }
  .kw-hero-visual .kw-shot-frame { min-height: 0; aspect-ratio: 16 / 10.8; }
  .kw-hero-badge { left: 10px; top: 10px; min-height: 30px; padding: 0 10px; font-size: 11px; }
  .kw-hero-visual .kw-shot-caption { min-height: 0; padding: 10px 11px; }
  .kw-hero-visual .kw-shot-caption h2 { font-size: 17px; }
  .kw-hero-visual .kw-shot-caption p { font-size: 12px; }
  .kw-shot-controls { gap: 7px; }
  .kw-shot-nav { min-height: 32px; padding: 0 11px; font-size: 12px; }
}
