.home-path--workshop {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(24rem, 0.95fr);
  min-height: 48rem;
  background: var(--home-ink);
  color: var(--home-white);
}

.home-workshop-stage {
  position: relative;
  min-height: 42rem;
  overflow: hidden;
}

.home-workshop-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(21, 35, 29, 0.68));
  pointer-events: none;
}

.home-workshop-stage__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.82) contrast(1.04);
}

.home-workshop-stage__caption {
  position: absolute;
  z-index: 1;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
  max-width: 34rem;
}

.home-workshop-stage__caption span {
  display: block;
  color: #cdea81;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  font-style: italic;
  line-height: 1.05;
}

.home-workshop-stage__caption p {
  max-width: 28rem;
  margin-top: 0.75rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.78rem;
  line-height: 1.5;
}

.home-workshop-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(2rem, 4.5vw, 4rem);
}

.home-workshop-content > h2 {
  max-width: 13ch;
  margin-top: 2rem;
  color: var(--home-white) !important;
  font-size: clamp(2.4rem, 4.2vw, 4.5rem) !important;
  font-weight: 760;
  letter-spacing: -0.06em;
  line-height: 0.96;
}

.home-next-workshop {
  margin-top: 2.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.home-next-workshop > h3 {
  max-width: 24ch;
  margin-top: 0.6rem;
  color: var(--home-white) !important;
  font-size: clamp(1.45rem, 2.5vw, 2.1rem) !important;
  line-height: 1.1;
}

.home-next-workshop > p:not(.home-mono-label) {
  max-width: 38rem;
  margin-top: 0.7rem;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.85rem;
  line-height: 1.55;
}

.home-next-workshop dl {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-top: 1.4rem;
}

.home-next-workshop dt {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(255, 255, 255, 0.5);
  font-family: 'Fira Code', monospace;
  font-size: 0.6rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-next-workshop dt svg {
  width: 0.9rem;
  height: 0.9rem;
}

.home-next-workshop dd {
  margin-top: 0.35rem;
  color: var(--home-white);
  font-size: 0.85rem;
  font-weight: 700;
}

.home-next-workshop > div:last-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
}

.home-next-workshop > div:last-child > strong {
  color: #cdea81;
  font-size: 1.6rem;
}

.home-workshop-list {
  margin: 1.5rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.home-workshop-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--home-white);
}

.home-workshop-line span {
  color: rgba(255, 255, 255, 0.5);
  font-family: 'Fira Code', monospace;
  font-size: 0.58rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.home-workshop-line h3 {
  margin-top: 0.35rem;
  color: var(--home-white) !important;
  font-size: 0.9rem !important;
  line-height: 1.25;
}

.home-workshop-line strong {
  white-space: nowrap;
  font-size: 0.82rem;
}

.home-workshop-line > svg {
  width: 0.95rem;
  height: 0.95rem;
  transition: transform 180ms ease;
}

.home-workshop-line:hover > svg {
  transform: translateX(4px);
}

.home-workshop-content > .home-text-link {
  margin-top: auto;
}

.home-practice {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
  margin-top: clamp(6rem, 12vw, 11rem);
}

.home-practice__copy > h2 {
  max-width: 13ch;
  margin-top: 2rem;
  font-size: clamp(2.6rem, 5.3vw, 5.6rem) !important;
  font-weight: 760;
  letter-spacing: -0.07em;
  line-height: 0.92;
}

.home-practice__copy > h2 em {
  color: var(--home-blue);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
}

.home-practice__copy > p {
  max-width: 38rem;
  margin-top: 1.5rem;
  color: var(--home-muted);
  line-height: 1.75;
}

.home-practice__copy ol {
  margin: 2rem 0;
  border-top: 1px solid rgba(21, 35, 29, 0.2);
}

.home-practice__copy li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(21, 35, 29, 0.2);
}

.home-practice__copy li > span {
  font-family: 'Fira Code', monospace;
  font-size: 0.65rem;
  opacity: 0.5;
}

.home-practice__copy li p {
  font-size: 0.88rem;
  line-height: 1.5;
}

.home-practice__copy li strong {
  color: var(--home-ink);
}

.home-practice__gallery {
  position: relative;
  min-height: 48rem;
}

.home-practice__image {
  position: absolute;
  margin: 0;
  overflow: hidden;
  background: var(--home-white);
  box-shadow: 0 24px 60px -44px rgba(21, 35, 29, 0.8);
}

.home-practice__image--main {
  inset: 0 5rem 5rem 0;
}

.home-practice__image--detail {
  right: 0;
  bottom: 0;
  width: 44%;
  height: 42%;
  border: 0.65rem solid var(--home-paper);
}

.home-practice__image img {
  filter: saturate(0.84) contrast(1.04);
}

.home-practice__image--main figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  padding: 0.85rem;
  background: var(--home-white);
  color: var(--home-ink);
  font-size: 0.72rem;
  font-weight: 700;
}

.home-seo-note {
  display: grid;
  grid-template-columns: 0.4fr 1fr;
  gap: 2rem;
  margin-top: 1rem;
  padding: 2rem 0 0;
  border-top: 1px solid rgba(21, 35, 29, 0.2);
}

.home-seo-note > p:last-child {
  max-width: 54rem;
  color: var(--home-muted);
  font-size: 0.78rem;
  line-height: 1.65;
}

/* ---------- Workshops climax: full-bleed band ---------- */

/* .home-shell is min(100% - 2rem, 90rem): below 92rem the band only needs to
   swallow the 1rem shell margins, so no vw unit (a classic scrollbar would
   make 100vw overflow). Above 92rem the shell is centred and vw is the only
   way to reach the edges. */
.home-path--workshop {
  width: calc(100% + 2rem);
  min-height: 52rem;
  margin-inline: -1rem;
  border-radius: 0;
}

@media (min-width: 92rem) {
  .home-path--workshop {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
  }

  .home-path--workshop .home-workshop-content {
    padding-right: max(clamp(2rem, 4.5vw, 4rem), calc((100vw - 90rem) / 2 + 1rem));
  }
}

@media (max-width: 639px) {
  .home-path--workshop {
    width: calc(100% + 1rem);
    min-height: auto;
    margin-inline: -0.5rem;
  }
}
