.flm-cases { color: #fff; }
.flm-case-skip { position: fixed; top: 0; left: 1rem; z-index: 10000; padding: 1rem; background: #fff; color: #000; transform: translateY(-150%); }
.flm-case-skip:focus { transform: translateY(0); }
.flm-case-accessible { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.flm-cases-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.flm-cases-heading h3 { margin: 0; max-width: 22ch; font-size: clamp(1.8rem, 3.5vw, 3.5rem); line-height: 1.08; letter-spacing: -.03em; }
.flm-cases-heading p { max-width: 60ch; margin: 1rem 0 0; color: #b9b9b5; line-height: 1.7; font-size: 1rem; }
.flm-cases-link { display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; flex-shrink: 0; color: #fff; text-decoration: none; border-bottom: 1px solid #ff3b30; font-size: .875rem; }
.flm-cases-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.5rem; }
.flm-industry-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 3rem; border-block: 1px solid #42433d; }
.flm-industry-links a { padding: 1.4rem 1rem; color: #fff; text-decoration: none; }
.flm-industry-links a strong { display: block; font-size: 1.05rem; }
.flm-industry-links a span { display: flex; align-items: center; gap: .5rem; margin-top: .6rem; font-size: .8125rem; color: #b9b9b5; }
.flm-industry-links a:hover, .flm-industry-links a[aria-current] { background: #22231e; box-shadow: inset 0 -2px #ff3b30; }
.flm-industry-links a:focus-visible { outline: 2px solid #ff3b30; outline-offset: -2px; }
.flm-industry-intro { max-width: 70ch; margin-bottom: 3rem; }
.flm-industry-intro h2, .flm-case-materials > h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); margin: 0 0 1rem; }
.flm-industry-intro p, .flm-case-materials > p { color: #b9b9b5; line-height: 1.7; }
.flm-industry-intro a { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
.flm-case-materials { border-top: 1px solid #42433d; padding-top: 3rem; margin-block: 3rem; }
.flm-case-media-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 2rem; margin-block: 1.5rem; }
.flm-case-material { min-width: 0; }
.flm-case-material video, .flm-case-material img { display: block; width: 100%; max-height: 640px; object-fit: contain; background: #171815; }
.flm-case-material video { aspect-ratio: 16 / 10; }
.flm-case-material h3 { font-size: 1.2rem; line-height: 1.4; max-width: 65ch; margin: 1rem 0 .5rem; }
.flm-media-retry { color: #fff; cursor: pointer; background: transparent; border: 0; border-bottom: 1px solid #ff3b30; min-height: 44px; font: inherit; }
@media (max-width: 700px) { .flm-industry-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } .flm-industry-links a { padding: 1.25rem .75rem; } .flm-case-material video { aspect-ratio: 9 / 14; max-height: 70svh; } }
.flm-case-card { display: block; min-width: 0; color: #fff; text-decoration: none; }
.flm-case-cover { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 10; overflow: hidden; background: #171815; border: 1px solid #30312c; }
.flm-case-cover img { width: 60%; height: 48%; object-fit: contain; transition: transform .25s ease; }
.flm-case-cover-label { position: absolute; bottom: 1rem; left: 1.25rem; max-width: calc(100% - 5rem); font-size: .875rem; color: #e5e5e0; }
.flm-case-arrow { position: absolute; right: 1.25rem; bottom: 1rem; color: #ff594f; }
.flm-case-card-copy { padding-top: 1.25rem; }
.flm-case-card-copy p { margin: 0 0 .75rem; color: #b9b9b5; font-size: .8125rem; line-height: 1.5; }
.flm-case-card-copy h2, .flm-case-card-copy h4 { margin: 0; font-size: clamp(1.2rem, 1.6vw, 1.5rem); font-weight: 700; line-height: 1.3; letter-spacing: -.02em; }
.flm-case-card-copy > span { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: .75rem; font-size: .8125rem; color: #e5e5e0; }
.flm-case-card:hover .flm-case-cover img { transform: scale(1.04); }
.flm-case-card:hover .flm-case-cover { border-color: #ff3b30; }
.flm-case-card:focus-visible, .flm-cases-link:focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
.flm-case-page { max-width: 1440px; margin: 0 auto; padding: 9rem clamp(1.25rem, 4vw, 4rem) 4rem; }
.flm-case-breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 2rem; font-size: .875rem; color: #b9b9b5; }
.flm-case-breadcrumb a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.flm-case-page h1 { max-width: 20ch; margin: 0; font-size: clamp(2.5rem, 5vw, 5rem); line-height: 1.04; letter-spacing: -.035em; }
.flm-case-page-lead { max-width: 65ch; margin: 1.5rem 0 3rem; color: #b9b9b5; font-size: 1.125rem; line-height: 1.7; }
.flm-case-detail-hero { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3rem; align-items: center; margin-bottom: 4rem; }
.flm-case-detail-logo { display: grid; place-items: center; min-height: 16rem; background: #171815; border: 1px solid #30312c; padding: 3rem; }
.flm-case-detail-logo img { width: 100%; height: 10rem; object-fit: contain; }
.flm-case-cover:has(img[src$="/goya.png"]), .flm-case-detail-logo:has(img[src$="/goya.png"]) { background: #efede7; }
.flm-case-cover:has(img[src$="/goya.png"]) .flm-case-cover-label { color: #171815; }
.flm-case-facts { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; padding: 1.25rem 0; margin: 1.5rem 0 0; border-block: 1px solid #30312c; font-size: .875rem; line-height: 1.6; color: #e5e5e0; }
.flm-case-detail-body { display: grid; grid-template-columns: minmax(12rem, .6fr) minmax(0, 1.4fr); gap: 4rem; margin-bottom: 4rem; }
.flm-case-detail-body aside { font-size: .875rem; line-height: 1.7; color: #b9b9b5; }
.flm-case-detail-body aside p { margin: 0 0 1rem; }
.flm-case-detail-body aside strong { color: #fff; }
.flm-case-story section + section { margin-top: 2.5rem; }
.flm-case-story h2 { font-size: 1.5rem; line-height: 1.3; margin: 0 0 1rem; color: #fff; }
.flm-case-story p, .flm-case-story ul { margin: 0; max-width: 68ch; color: #b9b9b5; font-size: 1rem; line-height: 1.8; }
.flm-case-story ul { padding-left: 1.25rem; }
.flm-case-plan { padding-top: 2rem; border-top: 1px solid #30312c; }
.flm-case-plan p { margin-top: 1rem; font-size: .875rem; }
.flm-case-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 3rem; margin-top: 4rem; border-block: 1px solid #30312c; }
.flm-case-cta h2 { margin: 0 0 .75rem; font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.1; }
.flm-case-cta p { margin: 0; color: #b9b9b5; line-height: 1.7; }
.flm-case-related { margin-top: 4rem; }
.flm-case-related > h2 { margin: 0 0 2rem; font-size: 1.75rem; }
.flm-case-page-footer { padding: 2rem 0 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; color: #b9b9b5; font-size: .8125rem; }
.flm-case-page-footer nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.flm-case-page-footer a { color: inherit; }
@media (max-width: 1000px) {
  .flm-cases-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flm-cases-heading { flex-direction: column; align-items: start; }
  .flm-case-detail-hero { grid-template-columns: 1fr; gap: 2rem; }
  .flm-case-detail-logo { min-height: 12rem; }
  .flm-case-detail-body { grid-template-columns: 1fr; gap: 2rem; }
  .flm-case-detail-body aside { display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
}
@media (max-width: 599px) {
  .flm-cases-grid { grid-template-columns: 1fr; gap: 2rem; }
  .flm-case-page { padding-top: 7rem; }
  .flm-case-page-lead { font-size: 1rem; }
  .flm-case-cta { flex-direction: column; align-items: start; padding-block: 2rem; }
}
@media (prefers-reduced-motion: reduce) { .flm-case-cover img { transition: none; } .flm-case-card:hover .flm-case-cover img { transform: none; } }
