.session-detail {
  grid-template-columns: minmax(300px, 1.1fr) minmax(240px, .72fr) minmax(290px, .82fr);
  gap: clamp(28px, 4vw, 70px);
}

.session-heading-visual {
  position: relative;
  min-height: 330px;
  padding: 26px;
  overflow: hidden;
  align-items: flex-start;
  color: #fff;
}

.session-heading-image {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.session-heading-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .1), rgba(0, 0, 0, .72));
}

.session-heading-image img { transition: transform .6s ease; }
.session-heading-visual:hover .session-heading-image img { transform: scale(1.02); }

.session-heading-visual .session-number {
  position: relative;
  z-index: 1;
  border-color: #fff;
  color: #fff;
  background: rgba(17, 17, 17, .18);
}

.session-heading-copy {
  position: relative;
  z-index: 1;
  align-self: flex-end;
  margin-top: auto;
  max-width: 100%;
}

.session-heading-visual h2 {
  font-size: clamp(2.8rem, 4.7vw, 5.8rem);
  text-shadow: 0 2px 20px rgba(0, 0, 0, .28);
}

.session-heading-visual .session-for { color: #fff; margin-top: 14px; }
.session-heading-visual .headshot-session-cover img { object-position: center 28%; }

@media (max-width: 1050px) {
  .session-detail { grid-template-columns: minmax(280px, .9fr) minmax(260px, 1fr); }
  .session-heading-visual { grid-row: 1 / 3; min-height: 430px; }
  .session-description { grid-column: 2; grid-row: 1; }
  .session-offer { grid-column: 2; grid-row: 2; }
}

@media (max-width: 700px) {
  .session-detail { grid-template-columns: 1fr; }
  .session-heading-visual { grid-row: auto; min-height: 360px; }
  .session-description, .session-offer { grid-column: auto; grid-row: auto; }
}
