/* New documentary home composition and the Teofaat Teva case study. */
.logo-crop { width: 154px; height: 80px; overflow: visible; }
.logo-crop img { position: static; width: 140px; height: 80px; max-width: 100%; object-fit: contain; transform: none; }
.festival-studio-hero { padding-top: 38px; }
.festival-hero-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.25fr); align-items: center; gap: clamp(30px, 4.5vw, 68px); }
.festival-hero-grid .studio-copy { padding-block: 20px 32px; }
.festival-hero-grid .studio-copy h1 { font-size: clamp(2.6rem, 4.3vw, 4.55rem); line-height: 1.14; }
.festival-hero-grid .studio-copy .lead { max-width: 470px; font-size: 1.04rem; }
.festival-hero-grid .hero-actions { flex-direction: column; align-items: flex-start; gap: 9px; }
.festival-hero-grid .hero-secondary { min-height: 42px; }
.festival-hero-visual { min-width: 0; }
.festival-hero-image { position: relative; display: block; border-radius: 20px; overflow: hidden; background: var(--navy); }
.festival-hero-image picture, .festival-hero-image img { display: block; width: 100%; height: auto; aspect-ratio: 2048/1316; object-fit: cover; }
.festival-hero-image img { transition: transform 650ms var(--ease-out); }
.festival-hero-caption { position: absolute; inset: auto 0 0; display: flex; flex-direction: column; gap: 9px; padding: 80px 28px 24px; background: linear-gradient(transparent, #091923dd 80%); }
.festival-hero-caption > span:first-child { color: var(--ice); font-size: .8rem; }
.festival-hero-caption strong { max-width: 320px; color: #fff; font-size: clamp(1.4rem, 2.3vw, 2rem); line-height: 1.3; font-weight: 700; }
.festival-hero-caption .photo-open { position: absolute; left: 24px; bottom: 24px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #ffffff70; color: #fff; background: #09192355; font-size: 1.4rem; }
.hero-event-note { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 2px; color: #c5d9e2; font-size: .85rem; }
.hero-event-note p { display: flex; align-items: center; gap: 10px; }
.hero-event-note strong { color: var(--orange); font-size: 1.3rem; }
.hero-event-note a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--ice); border-bottom: 1px solid #8adff535; }
.festival-studio-hero .hero-baseline { margin-top: 16px; }
.proof-strip strong { white-space: normal; }
.project-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.project-preview { display: flex; flex-direction: column; }
.project-preview:nth-child(2) { margin-top: 0; }
.project-image-link picture, .project-image-link img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; object-position: 50% 55%; }
.project-preview-copy { flex: 1; display: flex; flex-direction: column; }
.project-preview-copy h2, .project-preview-copy h3 { font-size: clamp(1.35rem, 1.9vw, 1.8rem); line-height: 1.4; }
.project-preview-copy > p:not(.eyebrow) { font-size: 1rem; margin-bottom: 14px; }
.project-preview-copy .text-link { align-self: flex-start; margin-top: auto; }
.project-preview-copy .eyebrow { font-size: .75rem; }
.festival-case-hero { padding-block: 24px 0; background: var(--ink); color: #fff; }
.festival-case-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding-block: 30px 42px; align-items: end; }
.festival-case-heading h1 { font-size: clamp(2.7rem, 5vw, 4.8rem); }
.festival-case-heading h1 span, .festival-case-heading .eyebrow, .festival-case-heading .text-link { color: var(--ice); }
.festival-case-heading .lead { color: #d8e6ed; font-size: 1.08rem; }
.festival-case-heading .case-signature { color: #c5d9e2; margin-top: 18px; }
.festival-case-heading .text-link { border-color: #8adff555; margin-top: 12px; }
.festival-case-hero :focus-visible { outline-color: var(--orange); }
.festival-case-cover { margin: 0; }
.festival-case-cover picture, .festival-case-cover img { width: 100%; height: auto; aspect-ratio: 2048/1316; object-fit: cover; border-radius: 18px; }
.festival-case-cover figcaption { color: #c5d9e2; font-size: .8rem; padding-block: 16px 24px; }
.project-metrics .metric-time { font-size: clamp(1.1rem, 2vw, 1.6rem); white-space: nowrap; }
.festival-chapters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.festival-chapters article { border-top: 1px solid var(--line); padding-top: 24px; }
.festival-chapters article > span { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: var(--blue); font-size: .8rem; }
.festival-chapters h3 { margin-block: 22px 14px; }
.festival-chapters p { color: var(--muted); }
.festival-outcome .intro { margin-top: 26px; }
.festival-timeline { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.festival-timeline li { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 24px; padding: 24px; border-bottom: 1px solid var(--line); }
.festival-timeline li:last-child { border: 0; }
.festival-timeline strong { color: var(--blue); font-size: 1.25rem; }
.festival-timeline h3 { font-size: 1.05rem; margin-bottom: 6px; }
.festival-timeline p { color: var(--muted); font-size: 1rem; }
.festival-gallery-section { background: var(--pale); }
.festival-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 22px; }
.festival-gallery figure { margin: 0; }
.festival-gallery picture, .festival-gallery img { width: 100%; height: auto; aspect-ratio: 2048/1316; object-fit: cover; border-radius: 14px; }
.festival-gallery figcaption { padding-top: 13px; color: var(--muted); font-size: .88rem; }
.festival-gallery figure:nth-child(4) { grid-column: span 2; grid-row: span 2; }
.festival-gallery figure:nth-child(4) picture, .festival-gallery figure:nth-child(4) img { aspect-ratio: auto; }
@media (hover:hover) and (pointer:fine) {
  .festival-hero-image:hover img { transform: scale(1.02); }
  .hero-event-note a:hover { border-bottom-color: var(--ice); }
}
@media (max-width:1100px) {
  .logo-crop { height: 72px; }
  .logo-crop img { height: 72px; width: 126px; }
  .festival-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 28px; }
  .festival-hero-grid .studio-copy h1 { font-size: 2.6rem; }
  .festival-hero-caption { padding-inline: 20px; }
  .hero-event-note { font-size: .76rem; gap: 12px; }
  .hero-event-note a { gap: 8px; }
  .project-list { gap: 22px; }
  .festival-case-heading { gap: 32px; }
  .festival-chapters { gap: 24px; }
  .festival-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .festival-gallery figure:nth-child(4) { grid-column: auto; grid-row: auto; }
  .festival-gallery figure:nth-child(4) picture, .festival-gallery figure:nth-child(4) img { aspect-ratio: 2048/1316; }
}
@media (max-width:760px) {
  .logo-crop { width: 134px; height: 66px; }
  .logo-crop img { width: 116px; height: 66px; }
  .festival-studio-hero { padding-top: 4px; }
  .festival-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .festival-hero-grid .studio-copy { padding-block: 24px 0; }
  .festival-hero-grid .studio-copy h1 { font-size: clamp(2.2rem, 8.2vw, 3rem); }
  .festival-hero-grid .studio-copy .lead { font-size: 1rem; margin-top: 16px; }
  .festival-hero-grid .hero-actions { gap: 8px; margin-top: 20px; }
  .festival-hero-grid .hero-actions .button { width: 100%; }
  .festival-hero-grid .hero-footnote { margin-top: 10px; }
  .festival-hero-image { border-radius: 14px; }
  .festival-hero-caption { padding: 45px 18px 18px; gap: 7px; }
  .festival-hero-caption strong { font-size: 1.25rem; }
  .festival-hero-caption > span:first-child { font-size: .75rem; }
  .festival-hero-caption .photo-open { width: 36px; height: 36px; left: 16px; bottom: 18px; font-size: 1.2rem; }
  .hero-event-note { padding-block: 10px 0; font-size: .75rem; }
  .hero-event-note p { gap: 7px; }
  .hero-event-note strong { font-size: 1.1rem; }
  .hero-event-note a { gap: 6px; }
  .festival-studio-hero .hero-baseline { margin-top: 12px; }
  .proof-strip strong { font-size: 1.6rem; }
  .project-list { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .project-preview-copy h2, .project-preview-copy h3 { font-size: 1.65rem; }
  .project-preview-copy > p:not(.eyebrow) { font-size: 1rem; }
  .festival-case-hero { padding-top: 14px; }
  .festival-case-heading { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-block: 24px 32px; }
  .festival-case-heading h1 { font-size: 2.65rem; }
  .festival-case-heading .lead { font-size: 1rem; }
  .festival-case-cover figcaption { font-size: .75rem; }
  .festival-chapters { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .festival-timeline li { grid-template-columns: 65px minmax(0, 1fr); gap: 18px; padding: 22px 20px; }
  .festival-timeline strong { font-size: 1.1rem; }
  .festival-gallery { grid-template-columns: minmax(0, 1fr); gap: 26px; }
}
@media (max-width:360px) {
  .festival-hero-grid .studio-copy h1 { font-size: 2.04rem; }
  .proof-strip strong { font-size: 1.4rem; }
  .hero-event-note { gap: 7px; font-size: .75rem; }
}
@media (prefers-reduced-motion:reduce) {
  .festival-hero-image:hover img { transform: none; }
}
@media print {
  .festival-case-hero { background: #fff; color: #000; }
  .festival-case-heading h1 span, .festival-case-heading .lead, .festival-case-heading .eyebrow, .festival-case-heading .text-link, .festival-case-heading .case-signature, .festival-case-cover figcaption { color: #000; }
}
