/* Shared reading and touch layer, deliberately loaded after page styles.
   Solid, upright lettering carries both the identity and the information. */
:root {
  --display: var(--body);
  --access-display: var(--access-body);
  --nh-edge: max(48px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
  --shell: min(calc(100% - var(--nh-edge) * 2), 1500px);
  --header-height: calc(84px + env(safe-area-inset-top, 0px));
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.new-site, body.nh-access { font-size: 1rem; line-height: 1.7; }
.new-site :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-size: 1rem;
  line-height: 1.5;
}
.new-site :where(button, input, select, textarea) { touch-action: manipulation; }

/* Display accents use the same complete strokes as the surrounding title.
   Colour and scale provide emphasis without thin serifs or synthetic italics. */
.new-site :is(h1, h2, h3, h4, h5, h6),
.new-site :is(h1, h2, h3, h4, h5, h6) :is(em, strong),
.nh-hero__thesis em,
.nh-information-statement p,
.nh-information-statement em,
.nc-photo-placeholder > span {
  font-family: var(--body);
  font-style: normal;
  font-weight: 500;
}
.new-site h1 { line-height: 1.1; letter-spacing: -.035em; }
.new-site h2 { line-height: 1.16; }
.new-site h3 { line-height: 1.25; }
.new-site :is(h1, h2, h3, h4, h5, h6) em { line-height: inherit; }
.nh-page-head h1, .nc-heading h1, .nc-profile__heading h1,
.nq-intro h1, .nq-success h1 { text-wrap: balance; overflow-wrap: anywhere; }
.nq-intro h1, .nq-success h1 { font-size: clamp(48px, 8.5vw, 124px); }
.nh-hero__opening h1 strong { font-size: 1.22em; line-height: 1.04; letter-spacing: -.035em; }
.nh-hero__opening h1 em { line-height: 1.3; }
.nh-contact-paths__intro h2, .nh-contact-choice h3,
.nh-brief__intro h2, .nh-workshop-tutor__bio h3 { overflow-wrap: anywhere; }
.nh-footer__headline, .nh-footer__headline-light { font-style: normal; font-weight: 500; }
.nh-footer .nh-footer__headline-light {
  color: var(--orchid);
  -webkit-text-stroke: 0;
  text-shadow: 0 0 22px rgba(148, 40, 255, .2);
}
.nh-access__content h1, .nh-access__content h1 em {
  font-family: var(--access-body);
  font-style: normal;
  font-weight: 500;
  line-height: 1.1;
}
.nh-access__content h1 em { font-size: 1em; text-shadow: none; }

/* Navigation and the small repeated labels should remain easy to read. */
.nh-header { padding-top: calc(9px + env(safe-area-inset-top, 0px)); }
.nh-navigation { font-size: .875rem; gap: clamp(10px, 1vw, 18px); }
.nh-brand__meta { font-size: .875rem; letter-spacing: .025em; }
.nh-menu-button__label { font-size: .875rem; letter-spacing: .04em; }
.nh-skip-link { font-size: .875rem; min-height: 44px; }
.nh-kicker,
.nh-section-cap,
.nh-casting__title > p,
.nh-hero__eyebrow,
.nh-hero__opening-note,
.nh-hero__final-primary > p,
.nh-footer .nh-kicker,
.nh-footer__label,
.nh-footer__bottom { font-size: .875rem; line-height: 1.6; }
.nh-hero__opening-note { max-width: 31ch; }
.nh-hero__browse { font-size: .9375rem; }
.nh-hero__final-copy .nh-hero__audiences { font-size: 1rem; line-height: 1.65; }
.nh-neon-button > span,
.nh-neon-button--compact,
.nh-contact-choice .nh-neon-button > span { font-size: .875rem; line-height: 1.5; }
.nh-neon-button { min-height: 48px; }
.nh-footer { padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)); }
.nh-footer__grid a,
.nh-footer__bottom a { display: inline-flex; align-items: center; min-height: 44px; }
.nh-footer__bottom { grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr); letter-spacing: .025em; }
.nh-footer__bottom > * { min-width: 0; overflow-wrap: anywhere; }
.nh-footer__grid { column-gap: clamp(24px, 3vw, 50px); }
.nh-footer__grid > * { min-width: 0; }
.nh-footer__grid a { overflow-wrap: anywhere; }

/* Inner-page descriptions, film titles, contact details and legal information. */
.nh-page-head p { font-size: 1rem; line-height: 1.75; }
.nh-breadcrumb, .nc-breadcrumb { align-items: center; font-size: .875rem; line-height: 1.5; }
.nh-breadcrumb a, .nc-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
.nh-information-heading > p,
.nh-information-film__label,
.nh-information-film figcaption,
.nh-information-quote figcaption,
.nh-workshop-tutor__portrait figcaption,
.nh-information-person__role,
.nh-contact-guide .nh-contact-guide__note,
.nh-contact-choice .nh-contact-choice__label,
.nh-brief__eyebrow { font-size: .875rem; line-height: 1.65; }
.nh-information-film figcaption { align-items: baseline; gap: 12px; padding-top: 8px; }
.nh-information-film figcaption > span { letter-spacing: .025em; }
.nh-information-film figcaption a { flex-shrink: 0; }
.nh-information-person__details { width: 100%; }
.nh-information-person__details a { font-size: 1rem; line-height: 1.55; }
.nh-information-link,
.nh-contact-paths__directory { font-size: .9375rem; line-height: 1.55; }
.nh-contact-choice > p,
.nh-brief__signup,
.nh-contact-result p { font-size: 1rem; line-height: 1.75; }
.nh-information-services p,
.nh-contact-guide p { max-width: 65ch; }

/* Brief: labels and consent carry useful information, not fine print. */
.nh-field > label,
.nh-brief-form__section legend { font-size: .9375rem; line-height: 1.5; }
.nh-field > label > .nh-field__optional,
.nh-contact-form__heading > span,
.nh-contact-form__hint,
.nh-field__help,
.nh-contact-form__privacy,
.nh-contact-form__sending,
.nh-contact-privacy,
.nh-form-errors,
.nh-field-error,
.nh-page .errorlist { font-size: .875rem; line-height: 1.7; }
.nh-contact-form__privacy label { min-height: 44px; }
.nh-field input, .nh-field select, .nh-field textarea { border-color: #796783; }
.nh-field--invalid input, .nh-field--invalid select, .nh-field--invalid textarea { border-color: #e797ae; }
.nh-contact-privacy p { max-width: 72ch; }

/* Catalogue: names stay prominent, while filters and profile facts gain space. */
.nc-heading .nh-kicker,
.nc-profile__heading .nh-kicker,
.nc-heading__total,
.nc-filter-field > label,
.nc-filter-field > legend,
.nc-filter-range label,
.nc-filter-help,
.nc-filter-errors,
.nc-filter-actions > a,
.nc-results__caption h2,
.nc-results__caption > span,
.nc-card__caption p,
.nc-photo-placeholder small,
.nc-rights,
.nc-gallery__caption,
.nc-facts dt,
.nc-section-heading > span,
.nc-lightbox__bar p,
.nc-lightbox [data-gallery-close],
.nc-multiple__empty { font-size: .875rem; line-height: 1.65; }
.nc-filter-field > label, .nc-filter-field > legend { letter-spacing: .025em; }
.nc-categories a, .nc-text-link { font-size: .9375rem; line-height: 1.5; }
.nc-filter-gender label { min-height: 44px; font-size: .9375rem; }
.nc-multiple summary { font-size: 1rem; line-height: 1.5; }
.nc-multiple__options label { min-height: 44px; font-size: .9375rem; }
.nc-multiple__options input { margin-top: 3px; }
.nc-filter-field .nc-multiple__search { font-size: 1rem !important; }
.nc-filter-field input:not([type="radio"]):not([type="checkbox"]),
.nc-filter-field select, .nc-multiple { border-color: #796783; }
.nc-filter-field input[aria-invalid="true"], .nc-filter-field select[aria-invalid="true"],
.nc-filter-field[data-filter-error] .nc-multiple { border-color: #ffb4cb; }
.nc-sidebar-note p, .nc-mobile-note p { font-size: .9375rem; line-height: 1.75; }
.nc-pagination > * { min-width: 44px; min-height: 44px; height: auto; font-size: .9375rem; }
.nc-rights p { max-width: 90ch; }
.nc-facts dd { font-size: 1rem; line-height: 1.7; }
.nc-profile-links a { display: inline-flex; align-items: center; min-height: 44px; }
.nc-gallery__caption { flex-wrap: wrap; }
.nc-lightbox {
  padding-top: env(safe-area-inset-top, 0px);
  padding-right: max(20px, env(safe-area-inset-right, 0px));
  padding-bottom: max(20px, env(safe-area-inset-bottom, 0px));
  padding-left: max(20px, env(safe-area-inset-left, 0px));
}

/* The password screen uses a separate base stylesheet. */
.nh-access__identity p,
.nh-access__eyebrow,
.nh-access__form label,
.nh-access__note { font-size: .875rem; line-height: 1.65; letter-spacing: .025em; }
.nh-access__identity p { font-family: var(--access-body); }
.nh-access__note { color: rgba(243, 239, 244, .78); text-transform: none; }
.nh-access__field input { min-height: 62px; border-color: #796783; }
.nh-access__field input::placeholder { color: rgba(243, 239, 244, .72); }
.nh-access__form button, .nh-access__contact { font-size: 1rem; line-height: 1.5; }
.nh-access__content, .nh-access__identity { min-width: 0; }
.nh-access__layout {
  padding-top: calc(110px + env(safe-area-inset-top, 0px));
  padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 1181px) and (max-width: 1300px) {
  .nh-header { padding-inline: 22px; gap: 14px; grid-template-columns: minmax(66px, 1fr) auto; }
  .nh-navigation { gap: 10px; }
}
@media (max-width: 1180px) {
  :root { --nh-edge: max(28px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)); }
  .nh-header {
    padding-right: max(28px, env(safe-area-inset-right, 0px));
    padding-left: max(28px, env(safe-area-inset-left, 0px));
  }
  .nh-navigation { gap: 0; padding-top: calc(var(--header-height) + 24px); }
  .nh-navigation > a { white-space: normal; }
  .nh-footer__bottom { grid-template-columns: 1fr auto; }
  .nh-footer__bottom > span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 760px) {
  :root {
    --nh-edge: max(16px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
    --header-height: calc(70px + env(safe-area-inset-top, 0px));
  }
  .nh-header { padding: calc(8px + env(safe-area-inset-top, 0px)) var(--nh-edge) 8px; }
  .nh-hero__opening { padding-inline: max(24px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)); }
  .nh-footer { padding-inline: var(--nh-edge); }
  .nh-page-head h1, .nc-heading h1, .nc-profile__heading h1,
  .nq-intro h1, .nq-success h1 { font-size: clamp(40px, 10.5vw, 64px); }
  html[lang="en"] .nq-intro h1 { font-size: clamp(32px, 8.3vw, 64px); }
  .nh-footer__bottom { gap: 12px 18px; }
  .nc-heading__total { max-width: 110px; }
  .nc-categories { column-gap: 22px; }
  .nc-results__caption { align-items: flex-start; flex-wrap: wrap; gap: 8px 18px; }
  .nc-profile__roles { font-size: 1rem; }
  .nc-lightbox { padding-inline: max(12px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)); }
}
@media (max-width: 560px) {
  .nh-access__layout {
    width: calc(100% - max(24px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)) * 2);
    padding-top: calc(72px + env(safe-area-inset-top, 0px));
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }
  .nh-access__identity { grid-template-columns: 72px minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .nc-heading__total { max-width: none; }
  .nh-information-film figcaption { flex-wrap: wrap; gap: 0 16px; }
}
@media (max-width: 999px) and (max-height: 520px) and (orientation: landscape) {
  :root { --header-height: calc(62px + env(safe-area-inset-top, 0px)); }
}
@media print {
  .nh-page-head p, .nc-rights, .nc-facts dt, .nc-facts dd { color: #111; }
}
