/* Temasek Connection: a Shanghai corporate-film production essay. */
.tc-case { color: #373737; background: #fff; }
.tc-case .tc-wrap, .tc-case .page-container { width: calc(100% - 80px); max-width: 1160px; margin-left: auto; margin-right: auto; }
.tc-case a { color: inherit; text-underline-offset: 5px; }
.tc-case a:focus-visible { outline: 2px solid #373737; outline-offset: 6px; }
.tc-case h1, .tc-case h2, .tc-case h3 { font-family: HafferXH, sans-serif; font-weight: 500; letter-spacing: -.025em; }
.tc-case h1 { font-size: clamp(3.5rem, 5.4vw, 4.8rem); line-height: 1.07; margin: 0 0 38px; }
.tc-case h2 { font-size: 2.35rem; line-height: 1.18; margin: 0 0 26px; }
.tc-case h3 { font-size: 1.65rem; line-height: 1.25; margin: 0 0 26px; }
.tc-case p { font-size: 1rem; line-height: 1.8; margin: 0 0 21px; }
.tc-case p.tc-kicker { font-size: .8rem; line-height: 1.5; color: #6c6c6c; margin: 0 0 15px; }
.tc-prose p:last-child { margin-bottom: 0; }
.tc-case .doc-story__figure { margin: 0; min-width: 0; max-width: 680px; }
.tc-case .doc-story__figure img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; }
.tc-case .doc-story__figure figcaption, .tc-poster figcaption { font-size: .8rem; line-height: 1.65; color: #6c6c6c; margin: 11px 0 0; }
.tc-intro { padding-top: 34px; }
.tc-case .doc-story__back { margin-bottom: 37px; }
.tc-opening { display: grid; grid-template-columns: minmax(0, 430px) minmax(0, 650px); gap: 80px; align-items: start; }
.tc-opening-copy { padding-top: 3px; }
.tc-case p.tc-lead { max-width: 410px; font-size: 1.45rem; line-height: 1.5; margin-bottom: 24px; }
.tc-case p.tc-assignment { margin-bottom: 0; }
.tc-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; border-top: 1px solid #d8d8d8; border-bottom: 1px solid #d8d8d8; margin: 39px 0 0; padding: 23px 0; }
.tc-facts dt { font-size: .78rem; line-height: 1.5; color: #6c6c6c; margin: 0 0 7px; }
.tc-facts dd { font-size: .94rem; line-height: 1.6; margin: 0; }
.tc-contents { display: flex; flex-wrap: wrap; gap: 13px 28px; padding-top: 21px; font-size: .8rem; line-height: 1.6; }
.tc-contents a { text-decoration: none; }
.tc-contents a:hover { text-decoration: underline; }
.tc-section { margin-top: 79px; scroll-margin-top: 110px; }
.tc-locations-copy { display: grid; grid-template-columns: minmax(0, 355px) minmax(0, 605px); gap: 90px; max-width: 1050px; margin: auto; }
.tc-locations-heading .doc-story__figure { margin-top: 30px; }
.tc-scene-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; max-width: 970px; margin: 38px auto 0; }
.tc-contributors { background: #f7f7f7; padding: 61px 0; }
.tc-contributors-grid { display: grid; grid-template-columns: minmax(0, 610px) minmax(0, 470px); gap: 80px; align-items: center; }
.tc-contributors-copy { grid-column: 2; grid-row: 1; }
.tc-contributors-image { grid-column: 1; grid-row: 1; }
.tc-contributors-copy h2 { max-width: 420px; }
.tc-schedule > header { max-width: 720px; margin-bottom: 31px; }
.tc-schedule > header h2 { margin-bottom: 0; }
.tc-schedule-body { display: grid; grid-template-columns: minmax(0, 490px) minmax(0, 590px); gap: 80px; align-items: center; }
.tc-programme { padding-top: 60px; border-top: 1px solid #d8d8d8; }
.tc-film-intro { display: grid; grid-template-columns: minmax(0, 430px) minmax(0, 650px); gap: 80px; align-items: center; }
.tc-film-intro > div > p:last-child { margin-bottom: 0; }
.tc-film-sequence { max-width: 970px; margin: 40px auto 0; }
.tc-film-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.tc-production-record { display: grid; grid-template-columns: minmax(0, 690px) 230px; gap: 100px; max-width: 1020px; margin: 53px auto 0; align-items: start; }
.tc-credits { border-top: 1px solid #d8d8d8; padding-top: 27px; }
.tc-credits dl { display: grid; gap: 21px; margin: 0; }
.tc-credits dl > div { display: grid; grid-template-columns: minmax(0, 160px) minmax(0, 1fr); gap: 24px; }
.tc-credits dt { color: #6c6c6c; font-size: .8rem; line-height: 1.65; }
.tc-credits dd { font-size: .95rem; line-height: 1.65; margin: 0; }
.tc-poster { width: 230px; max-width: 100%; margin: 0; }
.tc-poster img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; }
.tc-source-links { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 12px; font-size: .82rem; line-height: 1.6; }
.tc-planning { display: grid; grid-template-columns: minmax(0, 355px) minmax(0, 605px); gap: 90px; max-width: 1050px !important; }
.tc-service-links { display: flex; flex-wrap: wrap; gap: 12px 26px; border-top: 1px solid #ededed; padding-top: 22px; margin-top: 26px; font-size: .88rem; line-height: 1.6; }
.tc-case .doc-story__contact { margin-top: 73px; }
.tc-case .doc-story__contact h2 { max-width: 450px; margin-bottom: 0; }

@media (min-width: 721px) and (max-width: 1000px) {
    .tc-case .tc-wrap, .tc-case .page-container { width: calc(100% - 56px); }
    .tc-case h1 { font-size: 3.9rem; }
    .tc-case h2 { font-size: 2.05rem; }
    .tc-opening, .tc-film-intro { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 38px; }
    .tc-case p.tc-lead { font-size: 1.25rem; }
    .tc-facts { gap: 22px; }
    .tc-locations-copy, .tc-planning { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 42px; }
    .tc-contributors-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
    .tc-schedule-body { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
    .tc-production-record { grid-template-columns: minmax(0, 1fr) 220px; gap: 50px; }
    .tc-poster { width: 220px; }
    .tc-credits dl > div { grid-template-columns: minmax(0, 115px) minmax(0, 1fr); gap: 20px; }
}

@media (max-width: 720px) {
    .tc-case .tc-wrap, .tc-case .page-container { width: calc(100% - 48px); }
    .tc-intro { padding-top: 24px; }
    .tc-case .doc-story__back { margin-bottom: 30px; }
    .tc-case h1 { font-size: clamp(2.8rem, 10.6vw, 4rem); line-height: 1.07; margin-bottom: 27px; }
    .tc-case h2 { font-size: 2rem; line-height: 1.2; margin-bottom: 23px; }
    .tc-case h3 { font-size: 1.65rem; }
    .tc-case p.tc-kicker { font-size: .78rem; margin-bottom: 14px; }
    .tc-case p.tc-lead { font-size: 1.3rem; line-height: 1.55; margin-bottom: 23px; max-width: none; }
    .tc-opening { grid-template-columns: minmax(0, 1fr); gap: 27px; }
    .tc-opening-copy { display: contents; }
    .tc-case .tc-opening-copy .tc-lead { grid-row: 1; margin-bottom: 0; }
    .tc-opening-image { grid-row: 2; }
    .tc-opening-copy .tc-assignment { grid-row: 3; }
    .tc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; margin-top: 30px; padding: 23px 0; }
    .tc-contents { gap: 12px 22px; }
    .tc-section { margin-top: 56px; scroll-margin-top: 85px; }
    .tc-locations-copy, .tc-contributors-grid, .tc-schedule-body, .tc-film-intro, .tc-planning { grid-template-columns: minmax(0, 1fr); gap: 27px; }
    .tc-locations-copy, .tc-planning { gap: 0; }
    .tc-locations-heading { margin-bottom: 27px; }
    .tc-locations-heading .doc-story__figure { margin-top: 0; }
    .tc-scene-pair { grid-template-columns: minmax(0, 1fr); gap: 27px; margin-top: 29px; }
    .tc-contributors { padding: 42px 0; }
    .tc-contributors-copy, .tc-contributors-image { grid-column: auto; grid-row: auto; }
    .tc-contributors-copy h2 { max-width: none; }
    .tc-schedule > header { margin-bottom: 24px; }
    .tc-programme { padding-top: 42px; }
    .tc-production-record { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: 35px; }
    .tc-credits { padding-top: 24px; }
    .tc-credits dl > div { grid-template-columns: minmax(0, 105px) minmax(0, 1fr); gap: 20px; }
    .tc-poster { width: 220px; margin: 0 auto; }
    .tc-film-sequence { margin-top: 29px; }
    .tc-film-pair { grid-template-columns: minmax(0, 1fr); gap: 27px; }
    .tc-service-links { display: grid; gap: 14px; }
    .tc-case .doc-story__contact { margin-top: 49px; }
}
