/* Hallmark · shape: editorial index and document · genre: modern-minimal · theme: brand · redesign: full
 * hero: Banner (reading), Stage (company) · nav: stable bar · footer: statement and directory
 * signature: the company's words and existing domain imagery · v2.0.0 */
/* Critique: replace decorative frames with useful reading hierarchy and direct access to the briefing form. */
/* Company: words beside the existing mark film. */
.page-about .ab-hero { padding-top: calc(var(--header-h) + 80px); padding-bottom: 80px; }
.page-about .ab-hero .page-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto auto auto 1fr; gap: 0 64px; text-align: left; align-items: start; }
.page-about .ab-hero .page-hero__inner > :not(.ab-film-runway) { grid-column: 1; margin-inline: 0; justify-content: start; }
.page-about .ab-hero .eyebrow { margin-bottom: 20px; }
.page-about .ab-hero__title { font-size: var(--fs-hero); max-width: 11ch; margin: 0; }
.page-about .ab-hero__lead { margin-top: 24px; }
.page-about .ab-hero .page-hero__actions { margin-top: 32px; }
.page-about .ab-film-runway, .page-about .ab-film-runway.is-open { height: auto; margin: 0; grid-column: 2; grid-row: 1 / 5; align-self: stretch; }
.page-about .ab-film { position: relative; top: auto; width: 100%; height: 100%; min-height: 520px; max-height: none; aspect-ratio: auto; box-shadow: none; }
.page-about .ab-film__mask { transform: translate(-50%, -50%); width: 70%; }
.page-about .ab-film__video { transform: none; }
.page-about .ab-film__pause { width: 44px; height: 44px; border-radius: var(--r-xs); }
.page-about .ab-film__pause:hover, .ab-team__card:hover { transform: none; }
.page-about .ab-manifesto__runway { height: auto; }
.page-about .ab-manifesto__stage { position: static; height: auto; padding-block: var(--section-y); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 64px; align-items: start; }
.page-about .ab-manifesto__text { font-size: clamp(1.75rem, 3vw, 2.75rem); font-weight: 500; line-height: 1.22; }
.js .page-about .ab-manifesto__text .mw, .js .page-about .ab-manifesto__text em .mw.is-lit { color: var(--ink); transition: none; }
.page-about .ab-cta { background: var(--night); }
/* Contact: the form comes before the email directory. */
.page-contact .ct-hero { padding-top: calc(var(--header-h) + 72px); padding-bottom: 64px; }
.page-contact .ct-hero .page-hero__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px 64px; text-align: left; align-items: start; }
.page-contact .ct-hero .eyebrow { grid-column: 1 / -1; justify-content: start; }
.page-contact .ct-hero .page-hero__inner > * { margin-inline: 0; }
.page-contact .ct-hero__title { grid-column: 1; margin: 0; font-size: var(--fs-hero); max-width: 10ch; }
.page-contact .ct-hero__lead { grid-column: 2; margin: 0; }
.page-contact .ct-hero .page-hero__actions { grid-column: 2; margin: 0; justify-content: start; }
.ct-direct { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: var(--fs-small); color: var(--ink-2); }
.ct-direct a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: underline; text-underline-offset: 4px; }
@media (hover: hover) { .ct-direct a:hover { color: var(--accent-text); } }
.page-contact .ct-brief { padding-top: 64px; border-top: 1px solid var(--line-2); }
.page-contact .ct-brief__grid { gap: 64px; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
.page-contact .ct-brief__aside { position: static; }
.page-contact .ct-brief__title { font-size: var(--fs-display); }
.page-contact .ct-form { background: var(--paper-2); border: 1px solid var(--line-2); border-radius: var(--r-md); box-shadow: none; padding: 40px; }
.page-contact .ct-int__box span { color: var(--ink-2); }
.page-contact .ct-form__row--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.page-contact .ct-form__row--3 > :first-child { grid-column: 1 / -1; }
.page-contact .ct-directory { padding-top: 0; }
.page-contact .ct-desks-wrap { margin-top: 0; }
.page-contact .ct-desks { gap: 32px; }
.page-contact .ct-desk { background: none; border: 0; border-top: 1px solid var(--line-2); border-radius: 0; padding: 32px 0 0; }
.page-contact .ct-desk:hover { transform: none; box-shadow: none; }
.page-contact .ct-desk__icon { background: none; border-radius: 0; width: 24px; }
.page-contact .ct-desk:hover .ct-desk__icon { transform: none; }
.page-contact .ct-desk__addr { margin-top: 20px; }
.page-contact .ct-steps__n { font-family: var(--font-label); }
/* Research and news use a lead story, followed by open reading cards. */
.ix-hero { padding: calc(var(--header-h) + 72px) 0 64px; }
/* The eyebrow sits above the title, as on every other hero; the lead's last line meets the title's. */
.ix-hero .container { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); column-gap: 64px; align-items: end; }
.ix-hero .eyebrow { grid-column: 1 / -1; grid-row: 1; margin-bottom: 24px; }
.ix-hero .page-hero__title { grid-column: 1; grid-row: 2; max-width: 14ch; margin: 0; }
.ix-lead { grid-column: 2; grid-row: 2; margin-top: 0; }
.ix-legend { grid-column: 2; grid-row: 3; margin-top: 24px; }
.ix-feature { padding: 0; border: 0; border-radius: 0; gap: 64px; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.ix-feature:hover { transform: none; box-shadow: none; }
.ix-feature__media { aspect-ratio: 4 / 3; border-radius: var(--r-md); }
.ix-feature__copy h2 { font-size: var(--fs-display); font-weight: var(--weight-display); line-height: var(--lh-tight); }
.ix-grid { gap: 48px 32px; }
.ix-grid:has(> li:only-child) { grid-template-columns: minmax(0, 1fr); }
.ix-grid > li:only-child .ix-card { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.ix-grid > li:only-child .ix-card__body { padding: 0; }
.ix-grid > li:only-child .ix-card__body h3 { font-size: var(--fs-display); }
.ix-card { background: none; border: 0; border-radius: 0; overflow: visible; }
.ix-card:hover { transform: none; }
.ix-card__media { border-radius: var(--r-md); }
.ix-card__body { padding: 24px 0 0; gap: 12px; }
.ix-card__body h3 { font-size: var(--fs-h3); }
.ix-card__body p { font-size: var(--fs-body); line-height: var(--lh-body); }
/* The cards do not lift, but they answer the pointer: the photograph eases up 3% inside
   its clipped frame over 500ms (article.css), as the other photo link cards do. Not on
   touch, where it would stay after the tap, and not under reduced motion. */
@media (hover: none), (prefers-reduced-motion: reduce) { .ix-card:hover .ix-card__media img { transform: none; } }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .ix-feature__media img { transition: opacity var(--t-ui, 280ms) var(--ease-soft), transform 500ms var(--ease-out); }
  .ix-feature:hover .ix-feature__media img { transform: scale(1.03); }
}
.ix-section-title { padding-top: 32px; border-top: 1px solid var(--line-2); }
.ix-section-title h2 { font-size: var(--fs-h2); }
/* Reading pages retain their wording and navigation. */
.art-head { padding-top: calc(var(--header-h) + 72px); padding-bottom: 48px; }
.art-head__inner { max-width: calc(var(--container) + var(--gutter) * 2); }
.art-title { max-width: 20ch; font-size: var(--fs-hero); font-weight: var(--weight-display); }
.art-dek { max-width: 720px; margin-top: 32px; }
.art-byline { max-width: 720px; margin-top: 32px; }
.art-figure { border-radius: var(--r-md); aspect-ratio: 16 / 7; }
.art-body { grid-template-columns: 240px minmax(0, 720px); gap: 64px; justify-content: start; }
.art-toc__actions :is(button, a) { min-height: 44px; }
.art-toc a { padding-block: 12px; }
.art-toc details { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--paper); }
.art-prose { font-size: 1.125rem; line-height: 1.75; }
.art-prose h2 { font-weight: var(--weight-heading); }
.art-note { background: var(--paper-2); border: 0; border-radius: var(--r-xs); color: var(--ink-2); }
.page-legal .lhero { padding-top: calc(var(--header-h) + 72px); padding-bottom: 64px; }
.lhero__inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 64px; }
.lhero__title { font-size: var(--fs-hero); }
.lhero__updated { font-family: var(--font-label); letter-spacing: 0; }
.lhero__updated::before { display: none; }
.lrec { background: none; border: 0; border-left: 1px solid var(--line-2); border-radius: 0; padding: 0 0 0 32px; box-shadow: none; }
.lrec__brand, .lrec__kicker, .lrec__row dt, .lrec__jump-title { font-family: var(--font-label); font-size: var(--fs-label); letter-spacing: 0; text-transform: none; }
.lrec__jump a { min-height: 44px; }
.page-legal .lbody { border-top: 1px solid var(--line-2); padding-top: 64px; }
.page-accessibility .ax-hero { padding-top: calc(var(--header-h) + 72px); padding-bottom: 80px; }
.page-accessibility .ax-tile, .page-accessibility .ax-tile:hover { box-shadow: none; transform: none; }
.page-accessibility .ax-spec__grid { gap: 16px; }
/* Recovery links use the same still, solid interaction treatment as the site. */
.nf__wp:is(:hover, :active), .nf__wp:hover vm-icon { transform: none; }
.nf__wp:hover { box-shadow: inset 0 0 0 1px var(--night-ink-3); }
.nf__wp--primary { background: var(--crimson); color: var(--white); box-shadow: none; }
.nf__wp--primary:hover { background: var(--crimson-600); box-shadow: none; }
@media (max-width: 1000px) {
  .page-about .ab-hero .page-hero__inner, .page-contact .ct-hero .page-hero__inner, .ix-hero .container, .lhero__inner { grid-template-columns: minmax(0, 1fr); }
  .page-about .ab-film-runway, .page-about .ab-film-runway.is-open { grid-column: 1; grid-row: auto; margin-top: 40px; }
  .page-about .ab-film { min-height: 0; height: auto; aspect-ratio: 16 / 9; }
  .page-about .ab-manifesto__stage { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .page-contact .ct-hero__lead, .page-contact .ct-hero .page-hero__actions, .ct-direct { grid-column: 1; }
  .page-contact .ct-hero__title { max-width: none; }
  .page-contact .ct-brief__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .page-contact .ct-brief__aside { max-width: 720px; }
  .ix-hero .eyebrow, .ix-hero .page-hero__title { grid-row: auto; }
  .ix-lead, .ix-legend { grid-column: 1; grid-row: auto; margin-top: 24px; }
  .ix-feature { gap: 32px; }
  .ix-feature__copy h2 { font-size: var(--fs-h2); }
  .art-body { grid-template-columns: minmax(0, 720px); gap: 32px; }
  .lrec { padding-left: 0; padding-top: 32px; border-left: 0; border-top: 1px solid var(--line-2); max-width: none; }
}
@media (max-width: 700px) {
  .page-about .ab-hero, .page-contact .ct-hero, .page-legal .lhero, .page-accessibility .ax-hero, .ix-hero, .art-head { padding-top: calc(var(--header-h) + 48px); padding-bottom: 48px; }
  .page-about .ab-hero__title { max-width: 12ch; }
  .page-contact .ct-hero .page-hero__actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .page-contact .ct-form { padding: 24px; }
  .page-contact .ct-form__row--3 { grid-template-columns: minmax(0, 1fr); }
  .page-contact .ct-desks, .ix-feature { grid-template-columns: minmax(0, 1fr); }
  .ix-grid { grid-template-columns: minmax(0, 1fr); }
  .ix-grid > li:only-child .ix-card { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ix-grid > li:only-child .ix-card__body h3 { font-size: var(--fs-h3); }
  .art-figure { aspect-ratio: 4 / 3; }
}
