/* Prevent intrinsic image widths from expanding the existing portfolio grid. */
.vf-films-page .production-prev-items:not(.carousel) > .production-prev-item { min-width:0; }
.vf-films-page .production-prev-items:not(.carousel) .production-prev-img img { max-width:100%; }
/* Films: cinema-led editorial rhythm. All type inherits the shared Inter Tight. */
.vf-editorial-page, .vf-editorial-page .page-content, .vf-editorial-page .page-wrapper { background:#fafaf7; color:#191919; }
.vf-editorial-page .header, .vf-editorial-page .header.inverted { background:#fafaf7; color:#191919; }
.vf-editorial-page .header .navigation .navigation-inner :where(.nav-left,.nav-right),.vf-editorial-page .header .vf-brand-switch { color:#191919; }
.vf-editorial-page .header .navigation .navigation-inner .vf-films-logo .logo:not(.inverted) { display:none; }
.vf-editorial-page .header .navigation .navigation-inner .vf-films-logo .logo.inverted { display:block; }
.vf-editorial-page .header .vf-brand-switch { background:transparent; border-color:#c9c9c4; }
.vf-editorial-shell { width:min(calc(100% - 100px),1440px); margin-inline:auto; }
.vf-editorial { padding-top:105px; }
.vf-editorial :where(h1,h2,h3,p,a,span,figcaption) { color:inherit; font-family:var(--vf-font-family); }
.vf-editorial :where(h1,h2,h3) { font-weight:500; letter-spacing:-.035em; }
.vf-editorial a { text-decoration:none; }
.vf-editorial img { max-width:100%; }
.vf-editorial :where(section,article,figure,div) { min-width:0; }
.vf-editorial a:focus-visible,.vf-editorial-footer a:focus-visible { outline:2px solid #191919; outline-offset:6px; }
.vf-film-masthead { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-bottom:20px; }
.vf-film-masthead h1 { margin:0; font-size:12px; font-weight:500; letter-spacing:.04em; text-transform:uppercase; }
.vf-film-masthead > span { font-size:12px; color:#666; }
.vf-film-feature { display:block; position:relative; background:#20231e; overflow:hidden; aspect-ratio:2/1; }
.vf-film-feature > img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.vf-film-feature:hover > img { transform:scale(1.015); }
.vf-film-feature::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 45%,#000a); pointer-events:none; }
.vf-film-feature-caption { position:absolute; inset:auto 32px 30px; z-index:1; display:flex; justify-content:space-between; align-items:end; gap:20px; color:white; }
.vf-film-feature-caption div > span { font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.vf-film-feature-caption h2 { font-size:clamp(28px,3vw,48px); font-weight:450; line-height:1.05; margin:10px 0 0; }
.vf-film-feature-link { font-size:12px; white-space:nowrap; }
.vf-film-feature-link > span { margin-left:20px; }
.vf-editorial-intro { display:grid; grid-template-columns:1fr 1fr; gap:9vw; padding-block:100px 110px; }
.vf-editorial-intro h2 { font-size:clamp(40px,5vw,72px); line-height:1.02; margin:0; font-weight:450; }
.vf-editorial-intro p { font-size:18px; line-height:1.65; max-width:55ch; margin:0 0 20px; }
.vf-editorial-intro p + p { color:#666; font-size:16px; }
.vf-editorial-link { display:inline-flex; align-items:center; gap:24px; color:inherit; font-size:13px; line-height:1.5; padding-block:8px; text-decoration:none; }
.vf-editorial-link:hover { text-decoration:underline; text-underline-offset:5px; }
.vf-editorial-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:24px; border-top:1px solid #bbbcb7; padding-top:24px; margin-bottom:40px; }
.vf-editorial-section-head h2 { font-size:24px; margin:0; font-weight:500; letter-spacing:-.025em; }
.vf-editorial-section-head > span { color:#666; font-size:12px; }
.vf-editorial-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px 30px; }
.vf-editorial-project-image { aspect-ratio:16/9; overflow:hidden; background:#e9e9e4; }
.vf-editorial-project-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.vf-editorial-project a:hover img { transform:scale(1.025); }
.vf-editorial-project-meta { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-top:16px; }
.vf-editorial-project-meta h3 { font-size:20px; margin:0; font-weight:500; line-height:1.25; }
.vf-editorial-project-meta > span { color:#6c6c66; font-size:11px; white-space:nowrap; }
.vf-editorial-work { padding-bottom:110px; }
.vf-editorial-service { display:grid; grid-template-columns:1fr 1.2fr; align-items:center; gap:8vw; padding:38px 0 60px; scroll-margin-top:95px; }
.vf-editorial-service + .vf-editorial-service { border-top:1px solid #d7d7d0; }
.vf-editorial-index { font-size:11px; color:#66665f; display:block; margin-bottom:25px; }
.vf-editorial-service h3 { font-size:clamp(32px,3.5vw,50px); font-weight:450; line-height:1.07; margin:0 0 24px; }
.vf-editorial-service p { max-width:42ch; font-size:16px; line-height:1.7; margin:0 0 22px; }
.vf-editorial-formats { display:block; font-size:11px; color:#666; margin-bottom:18px; }
.vf-editorial-service-image { display:block; position:relative; aspect-ratio:16/10; overflow:hidden; background:#e9e9e4; }
.vf-editorial-service-image img { width:100%; height:100%; object-fit:cover; }
.vf-editorial-service-image > span { position:absolute; inset:auto 0 0; padding:26px 20px 17px; display:flex; justify-content:space-between; gap:16px; color:white; background:linear-gradient(transparent,#000a); font-size:12px; }
.vf-editorial-capabilities { display:grid; grid-template-columns:1fr 1.2fr; gap:8vw; border-top:1px solid #bbbcb7; padding-block:65px 85px; }
.vf-editorial-kicker { text-transform:uppercase; font-size:11px!important; letter-spacing:.11em; line-height:1.5; margin:0 0 22px; }
.vf-editorial-capabilities h2 { font-size:clamp(30px,3.2vw,46px); line-height:1.08; font-weight:450; }
.vf-editorial-capability-list { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.vf-editorial-capability-list h3 { font-size:16px; margin:0 0 8px; }
.vf-editorial-capability-list p { font-size:13px; color:#666; line-height:1.6; margin:0; }
.vf-editorial-studio { display:flex; align-items:baseline; justify-content:space-between; gap:25px; border-top:1px solid #bbbcb7; padding-block:30px; }
.vf-editorial-studio p { color:#666; font-size:13px; max-width:65ch; margin:0; }
.vf-about { padding-top:150px; }
.vf-about-intro h1 { font-size:clamp(42px,6vw,84px); line-height:1.04; font-weight:450; margin:0 0 45px; }
.vf-about-intro-copy { display:grid; grid-template-columns:1fr 1fr; gap:8vw; max-width:1100px; margin-left:auto; }
.vf-about-intro-copy p { font-size:18px; line-height:1.7; margin:0; }
.vf-about-intro-copy p + p { color:#666; font-size:16px; }
.vf-about-image { margin:65px 0 80px; }
.vf-about-image img { width:100%; aspect-ratio:2.3/1; object-fit:cover; }
.vf-about-image figcaption { font-size:11px; color:#66665f; padding-top:12px; }
.vf-about-method ol { padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:45px; margin-bottom:90px; }
.vf-about-method li > span { color:#66665f; font-size:11px; }
.vf-about-method h3 { font-size:22px; margin:22px 0 15px; }
.vf-about-method p { color:#666; font-size:15px; line-height:1.65; }
.vf-about-team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:25px; margin-bottom:80px; }
.vf-about-team-grid img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; filter:grayscale(1); }
.vf-about-team-grid h3 { font-size:19px; margin:18px 0 6px; }
.vf-about-team-grid p { color:#666; font-size:12px; margin:0; }
.vf-editorial-footer { background:#fafaf7; color:#191919; padding-block:70px 25px; }
.vf-editorial-footer :where(h2,p,a) { color:inherit; font-family:var(--vf-font-family); }
.vf-editorial-footer a { text-decoration:none; }
.vf-editorial-footer a:hover { text-decoration:underline; text-underline-offset:5px; }
.vf-editorial-footer-contact { display:flex; align-items:end; justify-content:space-between; gap:30px; border-top:1px solid #191919; padding-block:45px 60px; }
.vf-editorial-footer-contact h2 { font-size:clamp(36px,5vw,68px); font-weight:450; letter-spacing:-.055em; line-height:1; margin:0; }
.vf-editorial-footer-contact > a { font-size:22px; display:flex; gap:50px; }
.vf-editorial-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:35px; padding-bottom:60px; }
.vf-editorial-footer-grid img { width:145px; height:auto; }
.vf-editorial-footer-grid nav,.vf-editorial-footer-grid > div { display:flex; flex-direction:column; align-items:start; gap:8px; font-size:13px; }
.vf-editorial-footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; border-top:1px solid #d0d0c9; padding-top:25px; font-size:11px; color:#666; }
.vf-editorial-footer-bottom p { margin:0; font-size:11px; }
.vf-editorial-footer-bottom nav { display:flex; gap:20px; }
@media(max-width:767px) {
 .vf-editorial-shell { width:calc(100% - 40px); }
 .vf-editorial { padding-top:88px; }
 .vf-film-masthead { padding-bottom:15px; }
 .vf-film-masthead h1 { font-size:9px; letter-spacing:.02em; }
 .vf-film-masthead > span { display:none; }
 .vf-film-feature { aspect-ratio:4/5; }
 .vf-film-feature > img { object-position:60% center; }
 .vf-film-feature-caption { inset:auto 20px 22px; align-items:start; flex-direction:column; gap:20px; }
 .vf-film-feature-caption h2 { font-size:34px; max-width:9ch; }
 .vf-film-feature-caption div > span { font-size:9px; }
 .vf-editorial-intro { grid-template-columns:1fr; gap:30px; padding-block:55px 65px; }
 .vf-editorial-intro p { font-size:17px; }
 .vf-editorial-intro p + p { font-size:15px; }
 .vf-editorial-grid { grid-template-columns:1fr; gap:35px; }
 .vf-editorial-project-meta { flex-direction:column; gap:5px; }
 .vf-editorial-section-head { flex-wrap:wrap; gap:12px; padding-top:20px; margin-bottom:28px; }
 .vf-editorial-section-head h2 { font-size:21px; }
 .vf-editorial-work { padding-bottom:65px; }
 .vf-editorial-service { grid-template-columns:1fr; gap:25px; padding-block:25px 40px; }
 .vf-editorial-service h3 { font-size:36px; margin-bottom:18px; }
 .vf-editorial-index { margin-bottom:15px; }
 .vf-editorial-service p { font-size:15px; }
 .vf-editorial-capabilities { grid-template-columns:1fr; gap:25px; padding-block:45px; }
 .vf-editorial-capability-list { gap:24px 20px; }
 .vf-editorial-studio { align-items:start; flex-direction:column; gap:8px; }
 .vf-about { padding-top:125px; }
 .vf-about-intro-copy { grid-template-columns:1fr; gap:20px; }
 .vf-about-intro h1 { font-size:43px; margin-bottom:30px; }
 .vf-about-intro-copy p { font-size:17px; }
 .vf-about-image { margin-block:35px 50px; }
 .vf-about-image img { aspect-ratio:4/3; }
 .vf-about-method ol { grid-template-columns:1fr; gap:20px; margin-bottom:50px; }
 .vf-about-method h3 { margin-top:12px; }
 .vf-about-team-grid { grid-template-columns:1fr 1fr; gap:30px 16px; margin-bottom:50px; }
 .vf-about-team-grid h3 { font-size:16px; }
 .vf-editorial-footer { padding-top:45px; }
 .vf-editorial-footer-contact { flex-direction:column; align-items:start; gap:30px; padding-block:30px 40px; }
 .vf-editorial-footer-contact > a { font-size:18px; }
 .vf-editorial-footer-grid { grid-template-columns:1fr 1fr; gap:35px 20px; padding-bottom:35px; }
 .vf-editorial-footer-grid > a { grid-column:1/-1; }
 .vf-editorial-footer-grid img { width:120px; }
 .vf-editorial-footer-bottom { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .vf-editorial img { transition:none!important; transform:none!important; } }
