.sub-intro {
  padding-block: clamp(45px, 7vw, 100px);
  border-bottom: 1px solid var(--line);
  background: radial-gradient(ellipse at 91% 100%, #302022, transparent 57%), var(--bg);
}

.sub-back {
  display: inline-block;
  color: var(--muted);
  margin-bottom: 38px;
  font-size: 12px;
}

.sub-back:hover, .sub-links a:hover { color: var(--red); }

.sub-intro h1 {
  font-size: clamp(46px, 8.4vw, 122px);
  margin-bottom: 22px;
  overflow-wrap: anywhere;
}

.sub-lead, .sub-band > p:not(.eyebrow) {
  max-width: 580px;
  color: var(--muted);
  margin-bottom: 0;
}

.sub-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.sub-work { height: auto; aspect-ratio: 4 / 5; }
.sub-work img { object-position: center 62%; }
.sub-work span { font-size: 16px; line-height: 1.35; }

.sub-band {
  background: var(--panel);
  border-top: 1px solid var(--line);
  padding-block: 60px;
}

.sub-band h2 { margin-bottom: 18px; }
.sub-band .button { margin-top: 24px; }

.booking-page .sub-intro { padding-block: clamp(30px, 4vw, 64px); }
.booking-page .sub-intro h1 { font-size: clamp(36px, 7.4vw, 100px); }
.booking-page > .prices, .booking-page > .contact { padding-block: clamp(40px, 5vw, 75px); }
.booking-page .contact h2 { font-size: clamp(38px, 5.5vw, 68px); }
.booking-actions { display: flex; flex-wrap: wrap; gap: 16px 26px; align-items: baseline; }

.film-jump {
  display: inline-block;
  margin-top: 23px;
}

.film-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: 880px;
  margin-top: 30px;
}

.film-card {
  border: 1px solid var(--line);
  background: var(--bg);
}

.film-card video {
  display: block;
  width: 100%;
  aspect-ratio: 9 / 16;
  background: #090a0a;
  object-fit: contain;
}

.film-card--wide { grid-column: 1 / -1; }
.film-card--wide video { aspect-ratio: 16 / 9; }

.film-caption {
  padding: 17px 18px;
  border-top: 1px solid var(--line);
}

.film-caption .eyebrow {
  justify-content: space-between;
  margin-bottom: 9px;
}

.film-caption h3 {
  font-size: clamp(16px, 2vw, 22px);
  margin: 0;
}

.sub-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
  max-width: 760px;
  margin: 26px 0 0;
}

.sub-links li { padding: 0; }
.sub-links li::before { content: none; }
.sub-links a { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; }

.comparison-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 24px;
}

.comparison { background: var(--panel); border: 1px solid var(--line); padding: 15px; }
.comparison h3 { margin: 0 0 14px; font-size: 18px; }
.comparison-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.compare-work { height: auto; aspect-ratio: 4 / 3; }
.compare-work img { object-fit: contain; background: #111; }
.compare-work span { left: 8px; right: 8px; bottom: 6px; font-size: 10px; }
.compare-work b { font-size: 12px; }

.legal-copy {
  max-width: 960px;
  padding-block: 60px;
  overflow-wrap: anywhere;
}

.legal-copy section { margin-bottom: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.legal-copy h2 { margin-bottom: 14px; font-size: clamp(23px, 3.6vw, 34px); letter-spacing: -.5px; }
.legal-copy p, .legal-copy address { color: #d0d1ce; }
.legal-copy address { font-style: normal; }
.legal-copy a { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 900px) {
  .sub-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .film-grid { gap: 16px; }
}

@media (max-width: 640px) {
  .film-grid { grid-template-columns: minmax(0, 1fr); }
  .film-card:not(.film-card--wide) { width: min(100%, 350px); justify-self: center; }
  .sub-back { margin-bottom: 26px; }
  .sub-gallery { gap: 11px; }
  .sub-work span { left: 10px; right: 10px; bottom: 10px; font-size: 12px; }
  .sub-work b { font-size: 14px; }
  .sub-links, .comparison-grid { grid-template-columns: 1fr; }
  .sub-intro h1 { letter-spacing: -1px; }
}
