/* The portfolio is a collection; the film-led sales hero stays on production. */
.pf-gallery-page .pf-gallery-header { position: static; }
.pf-gallery-header .vv-nav-toggle[hidden] { display: none; }
.pf-gallery-header .vv-nav { gap: 22px; }
.pf-gallery-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'title link' 'description description'; align-items: center; gap: 14px 28px; margin-bottom: 32px; }
.pf-gallery-intro > div { display: contents; }
.pf-gallery-intro h1 { grid-area: title; margin: 0; font: 400 clamp(44px, 5vw, 64px)/1.05 var(--editorial-face); letter-spacing: -.025em; }
.pf-gallery-intro p { grid-area: description; margin: 0; max-width: none; font-size: 17px; color: var(--ink-quiet); }
.pf-gallery-intro .pf-text-link { grid-area: link; justify-self: end; }
.pf-gallery-page .pf-gallery-context { color: var(--ink-quiet); font-size: 13px; }
.pf-gallery-page .pf-case-copy h2 { margin: 0 0 22px; font-size: clamp(30px, 3.1vw, 43px); line-height: 1.08; text-wrap: initial; }
.pf-gallery-contact .pf-text-link { margin-top: 18px; }
@media (max-width: 949px) {
  .pf-gallery-page .pf-case-copy h2 br { display: none; }
}
@media (max-width: 698px) {
  .pf-gallery-page .pf-case-copy h2 { font-size: 36px; }
}
@media (max-width: 1100px) and (min-width: 900px) {
  .pf-gallery-header { gap: 12px; }
  .pf-gallery-header .vv-brand { font-size: 23px; }
  .pf-gallery-header .vv-nav { gap: 14px; font-size: 14px; }
  .pf-gallery-header .vv-nav-cta { padding-inline: 12px; font-size: 14px; }
}
@media (max-width: 899px) {
  .pf-gallery-header .vv-nav { gap: 0; }
  .pf-gallery-intro { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'title' 'description' 'link'; gap: 14px; }
  .pf-gallery-intro .pf-text-link { justify-self: start; }
}

/* Consistent film height, native widths, and a deliberate right/left rhythm. */
.pf-gallery-work { --pf-content-width: min(var(--measure), calc(100vw - var(--gutter) * 2)); }
.pf-gallery-page .pf-case {
  --pf-film-height: calc((var(--pf-content-width) - 42px) * 1.85 / 2.85 * 9 / 16);
  --pf-media-width: calc(var(--pf-film-height) * 16 / 9);
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--pf-media-width);
  grid-template-areas: 'copy media';
  gap: 42px;
  min-height: var(--pf-film-height);
}
.pf-gallery-page .pf-case:nth-of-type(even) { grid-template-columns: var(--pf-media-width) minmax(0, 1fr); grid-template-areas: 'media copy'; }
.pf-gallery-page .pf-case-nepal { --pf-media-width: calc(var(--pf-film-height) * 9 / 16); }
.pf-gallery-page .pf-case-effects { --pf-media-width: calc(var(--pf-film-height) * 8 / 7 + 24px); }
.pf-gallery-page .pf-case-product { --pf-media-width: calc(var(--pf-film-height) * 18 / 16 + 24px); }
.pf-gallery-page .pf-case-copy { grid-area: copy; }
.pf-gallery-page .pf-case-copy > p { max-width: none; }
.pf-gallery-page .pf-case + .pf-case { margin-top: 32px; padding-top: 32px; }
.pf-gallery-page .pf-case > :is(.pf-case-media, .pf-nepal-stage, .pf-effects-stage, .pf-product-stage) { grid-area: media; }
.pf-gallery-page .pf-case-media { height: var(--pf-film-height); width: auto; max-width: none; }
.pf-gallery-page .pf-landscape { width: var(--pf-media-width); }
.pf-gallery-page .pf-case-media > a { aspect-ratio: auto; }
.pf-gallery-page .pf-case-media video { display: block; object-fit: contain; }
.pf-gallery-page :is(.pf-nepal-stage, .pf-effects-stage, .pf-product-stage) { display: flex; justify-content: flex-start; gap: 24px; height: var(--pf-film-height); width: var(--pf-media-width); max-width: none; padding: 0; border: 0; background: transparent; }
.pf-gallery-page :is(.pf-nepal-stage, .pf-effects-stage, .pf-product-stage) .pf-case-media { flex-shrink: 0; margin: 0; }
.pf-gallery-page .pf-portrait { width: calc(var(--pf-film-height) * 9 / 16); }
.pf-gallery-page .pf-effects-frame { width: calc(var(--pf-film-height) * 4 / 7); }
.pf-gallery-page :is(.pf-portrait, .pf-effects-frame) .pf-watch { left: 8px; bottom: 58px; gap: 6px; padding: 6px 8px; font-size: 13px; }
.pf-gallery-page :is(.pf-portrait, .pf-effects-frame) .pf-preview-icon { right: 8px; bottom: 8px; }
.pf-gallery-page .pf-effect-name { top: 100%; left: 0; right: 0; width: 100%; padding: 8px 0 0; background: transparent; color: var(--ink-quiet); font-size: 12px; text-align: center; }
@media (max-width: 949px) {
  .pf-gallery-page .pf-case, .pf-gallery-page .pf-case:nth-of-type(even) { --pf-film-height: calc(var(--pf-content-width) * 9 / 16); grid-template-columns: minmax(0, 1fr); grid-template-areas: 'media' 'copy'; }
  .pf-gallery-page .pf-case > :is(.pf-case-media, .pf-nepal-stage, .pf-effects-stage, .pf-product-stage) { justify-self: center; }
  .pf-gallery-page .pf-case-effects { gap: 48px; }
}
@media (max-width: 698px) {
  .pf-gallery-page :is(.pf-portrait, .pf-effects-frame) .pf-watch { display: none; }
  .pf-gallery-page :is(.pf-portrait, .pf-effects-frame) > a::before { content: ''; position: absolute; z-index: 1; top: 8px; right: 8px; width: 16px; height: 16px; background: var(--room-raised); clip-path: polygon(25% 0, 25% 100%, 100% 50%); filter: drop-shadow(0 1px 2px rgb(0 0 0 / .6)); }
}

/* Use Nepal's remaining desktop width for the explanation and its evidence. */
.pf-nepal-details { display: grid; grid-template-columns: 1.05fr 1fr; gap: 36px; align-items: start; }
.pf-nepal-details p { margin: 0; max-width: none; font-size: 16px; line-height: 1.6; }
.pf-nepal-explanation .pf-text-link { margin-top: 20px; }
.pf-gallery-page .pf-nepal-outcome .pf-result { margin: 0; padding: 0; border: 0; }
.pf-gallery-page .pf-nepal-outcome .pf-proof-note { margin-top: 18px; }
@media (max-width: 1100px) {
  .pf-nepal-details { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
