/* =====================================================================
   ROCC Films — V2 single-film + films-hub styles
   2026 Web Styleguide ("Vom Papier ins Web"): warm canvas, navy Montserrat
   headlines, DM Sans body, DM Mono for real numbers only.
   Everything scoped under .rcfv2 so it never touches the global Elementor CSS.
   ===================================================================== */

.rcfv2 {
  /* --- 2026 tokens --- */
  --rcf-blue:#2F4E9E;        /* accent: overlines, links, accent lines, leads */
  --rcf-blue-deep:#1A2A5C;   /* headlines, primary buttons, dark bands */
  --rcf-canvas:#F5F4F1;      /* warm page canvas — never pure white */
  --rcf-surface:#FFFFFF;     /* cards / surfaces */
  --rcf-chip:#ECEFF7;        /* chips, tag backgrounds, light-button fill */
  --rcf-text:#1A2A5C;        /* headings = deep blue */
  --rcf-ink:#1C1C1A;         /* names, strong UI text — never #000 */
  --rcf-body:#2A2A28;        /* body copy */
  --rcf-body-light:#7A7A7A;  /* roles, captions */
  --rcf-border:#E5E3DE;      /* card borders, row lines (hairline-soft) */
  --rcf-border-strong:#D9D6CE;
  --rcf-shadow-md:0 12px 32px rgba(20,20,18,.08);
  --rcf-shadow-lg:0 18px 44px rgba(20,20,18,.10);
  --rcf-head:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --rcf-sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --rcf-mono:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --rcf-ease:cubic-bezier(.22,.61,.36,1);

  width:100%; max-width:100%; overflow-x:clip;
  font-family:var(--rcf-sans); color:var(--rcf-body); line-height:1.65;
  background:var(--rcf-canvas); -webkit-font-smoothing:antialiased;
}
.rcfv2 *,.rcfv2 *::before,.rcfv2 *::after { box-sizing:border-box; }
.rcfv2 h1,.rcfv2 h2,.rcfv2 h3,.rcfv2 h4 {
  font-family:var(--rcf-head); color:var(--rcf-text); margin:0;
  font-weight:700; line-height:1.16; letter-spacing:-.018em; text-wrap:balance;
}
.rcfv2 p { margin:0 0 1.1em; max-width:62ch; }
.rcfv2 p:last-child { margin-bottom:0; }
.rcfv2 a { color:var(--rcf-blue); text-decoration:none; transition:color .15s var(--rcf-ease); }
.rcfv2 a:hover { color:var(--rcf-blue-deep); }
.rcfv2 strong { color:var(--rcf-ink); font-weight:600; }

.rcfv2 .rcf__container { max-width:1140px; margin:0 auto; padding:0 clamp(20px,4vw,40px); }
.rcfv2 .rcf__container--wide { max-width:1500px; }
/* Legacy film pages: align ALL content sections (about, credits, stills, related, footer) to the
   site/chrome/portfolio/team width (1500) so the page no longer sits inset vs the header & footer.
   Scoped to .rcf-legacy so the V2 single-film template is untouched. (Eric, 2026-06-23) */
.rcfv2.rcf-legacy .rcf__container { max-width:1500px; }
.rcfv2.rcf-legacy .rcf-lead__intro { max-width:920px; }
.rcfv2 .rcf__section { padding:clamp(44px,5.5vw,80px) 0; }
.rcfv2 .rcf__section--tight { padding:clamp(28px,3.5vw,48px) 0; }

.rcfv2 .rcf__overline {
  font-family:var(--rcf-sans); font-size:13px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--rcf-blue); margin:0 0 14px;
  display:inline-flex; align-items:center; gap:12px;
}
.rcfv2 .rcf__overline::before { content:""; width:28px; height:1px; background:var(--rcf-blue); display:inline-block; }

/* ---------- HERO ---------- */
.rcfv2 .rcf-hero { background:var(--rcf-canvas); padding:clamp(32px,5vw,64px) 0 clamp(20px,2.5vw,32px); }
.rcfv2 .rcf-hero__title {
  font-family:var(--rcf-head); color:var(--rcf-text); font-weight:800;
  font-size:clamp(2rem,4.8vw,3.5rem); line-height:1.06; letter-spacing:-.022em;
  margin:0 0 clamp(20px,2vw,30px);
}
.rcfv2 .rcf-hero__video { position:relative; padding-top:56.25%; border-radius:12px; overflow:hidden; box-shadow:var(--rcf-shadow-lg); background:#000; }
.rcfv2 .rcf-hero__video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }

/* ---------- LEAD ---------- */
.rcfv2 .rcf-lead { background:var(--rcf-canvas); padding-top:clamp(24px,3vw,40px); padding-bottom:clamp(16px,2vw,28px); }
.rcfv2 .rcf-lead h2 { font-size:clamp(1.75rem,3.6vw,2.375rem); margin-bottom:22px; }
.rcfv2 .rcf-lead__intro { font-size:clamp(1.0625rem,1.4vw,1.25rem); line-height:1.55; color:var(--rcf-body); max-width:640px; }
.rcfv2 .rcf-lead__intro p { color:var(--rcf-body); }
.rcfv2 .rcf-lead__intro p+p { margin-top:1.1em; }

/* ---------- TESTIMONIAL ---------- */
.rcfv2 .rcf-testimonial { background:var(--rcf-surface); padding:clamp(40px,5vw,72px) 0; border-top:1px solid var(--rcf-border); border-bottom:1px solid var(--rcf-border); }
.rcfv2 .rcf-testimonial__fig { margin:0; max-width:820px; }
.rcfv2 .rcf-testimonial__accent { width:32px; height:3px; background:var(--rcf-blue); border-radius:2px; margin:0 0 22px; }
.rcfv2 .rcf-testimonial__quote { font-family:var(--rcf-head); font-weight:700; font-size:clamp(1.375rem,2.6vw,2rem); line-height:1.3; color:var(--rcf-text); margin:0 0 26px; letter-spacing:-.012em; }
.rcfv2 .rcf-testimonial__person { display:inline-flex; align-items:center; gap:15px; text-decoration:none; color:inherit; }
.rcfv2 .rcf-testimonial__avatar { width:76px; height:76px; border-radius:50%; object-fit:cover; flex:0 0 76px; border:1px solid var(--rcf-border); background:var(--rcf-chip); display:block; }
.rcfv2 .rcf-testimonial__meta { display:flex; flex-direction:column; line-height:1.35; }
.rcfv2 .rcf-testimonial__name { font-family:var(--rcf-sans); font-weight:700; color:var(--rcf-ink); font-size:1.02rem; transition:color .15s var(--rcf-ease); }
.rcfv2 .rcf-testimonial__role { font-family:var(--rcf-sans); color:var(--rcf-body-light); font-size:.92rem; }
.rcfv2 .rcf-testimonial__person:hover .rcf-testimonial__name { color:var(--rcf-blue); }

/* ---------- SYNOPSIS ---------- */
.rcfv2 .rcf-synopsis { background:var(--rcf-canvas); padding:clamp(28px,3.5vw,44px) 0; }
.rcfv2 .rcf-synopsis__label { font-family:var(--rcf-sans); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--rcf-blue); margin-bottom:14px; }
.rcfv2 .rcf-synopsis__body { font-size:clamp(1rem,1.15vw,1.0625rem); line-height:1.65; color:var(--rcf-body); margin:0; max-width:920px; }

/* ---------- PRODUCTION FACTS ---------- */
.rcfv2 .rcf-specs { background:var(--rcf-canvas); padding-top:clamp(16px,2.5vw,32px); padding-bottom:clamp(16px,2.5vw,32px); }
.rcfv2 .rcf-specs__inner { background:var(--rcf-surface); border:1px solid var(--rcf-border); border-left:3px solid var(--rcf-blue); border-radius:10px; padding:clamp(24px,3vw,32px); }
.rcfv2 .rcf-specs__label { font-family:var(--rcf-sans); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--rcf-blue); margin-bottom:6px; }
.rcfv2 .rcf-specs__title { font-family:var(--rcf-head); font-size:clamp(1.25rem,1.8vw,1.5rem); font-weight:700; color:var(--rcf-text); margin-bottom:22px; }
.rcfv2 .rcf-specs__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px 28px; margin:0; }
@media(max-width:720px){ .rcfv2 .rcf-specs__grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:460px){ .rcfv2 .rcf-specs__grid { grid-template-columns:1fr; } }
.rcfv2 .rcf-specs__item { display:flex; flex-direction:column; gap:4px; padding-top:14px; border-top:1px solid var(--rcf-border); }
.rcfv2 .rcf-specs__key { font-family:var(--rcf-sans); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--rcf-body-light); }
.rcfv2 .rcf-specs__value { font-family:var(--rcf-sans); font-size:15px; font-weight:500; color:var(--rcf-ink); margin:0; }

/* ---------- STORY + GALLERY ---------- */
.rcfv2 .rcf-story { background:var(--rcf-canvas); }
.rcfv2 .rcf-story.rcf__section { padding-top:clamp(24px,3.5vw,44px); padding-bottom:clamp(24px,3.5vw,44px); }
.rcfv2 .rcf-story h2 { font-size:clamp(1.75rem,3vw,2.25rem); margin-bottom:20px; position:relative; padding-top:20px; }
.rcfv2 .rcf-story h2::before { content:""; position:absolute; top:0; left:0; width:48px; height:2px; background:var(--rcf-blue); }
.rcfv2 .rcf-story__body { font-size:clamp(1rem,1.15vw,1.0625rem); line-height:1.7; color:var(--rcf-body); max-width:920px; }
.rcfv2 .rcf-pullquote { margin:32px 0; padding:0 0 0 24px; border-left:3px solid var(--rcf-blue); font-family:var(--rcf-head); font-size:clamp(1.25rem,1.8vw,1.5rem); font-weight:700; font-style:normal; color:var(--rcf-text); line-height:1.32; }
.rcfv2 .rcf-storyshots__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.5vw,18px); margin-top:30px; }
@media(max-width:720px){ .rcfv2 .rcf-storyshots__grid { grid-template-columns:1fr; } }
.rcfv2 .rcf-storyshots__grid figure { margin:0; border-radius:10px; overflow:hidden; box-shadow:var(--rcf-shadow-md); }
.rcfv2 .rcf-storyshots__grid img { display:block; width:100%; height:100%; aspect-ratio:16/9; object-fit:cover; }

/* ---------- MID CTA ---------- */
.rcfv2 .rcf-cta-mid { background:var(--rcf-canvas); }
.rcfv2 .rcf-cta-mid__box { background:var(--rcf-blue-deep); border-radius:12px; padding:clamp(32px,4vw,48px); position:relative; }
.rcfv2 .rcf-cta-mid__inner { display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center; }
@media(max-width:720px){ .rcfv2 .rcf-cta-mid__inner { grid-template-columns:1fr; } }
.rcfv2 .rcf-cta-mid h3 { font-size:clamp(1.375rem,2vw,1.75rem); margin-bottom:10px; color:#fff; }
.rcfv2 .rcf-cta-mid p { font-size:15px; color:#D7DCEC; margin:0; max-width:520px; }

/* ---------- BUTTONS ---------- */
.rcfv2 .rcf-btn { display:inline-flex; align-items:center; gap:10px; font-family:var(--rcf-sans); font-size:15px; font-weight:600; letter-spacing:.01em; padding:13px 26px; border-radius:8px; text-decoration:none!important; cursor:pointer; transition:all .2s var(--rcf-ease); border:1.5px solid transparent; white-space:nowrap; }
/* primary on dark band = white button, navy text */
.rcfv2 .rcf-cta-mid .rcf-btn--primary { background:#fff; color:var(--rcf-blue-deep)!important; }
.rcfv2 .rcf-cta-mid .rcf-btn--primary:hover { background:var(--rcf-chip); }
/* primary on canvas = navy button, white text */
.rcfv2 .rcf-btn--primary { background:var(--rcf-blue-deep); color:#fff!important; }
.rcfv2 .rcf-btn--primary:hover { background:var(--rcf-blue); transform:translateY(-2px); box-shadow:var(--rcf-shadow-md); }
.rcfv2 .rcf-btn__arrow { transition:transform .2s var(--rcf-ease); display:inline-block; color:inherit!important; }
.rcfv2 .rcf-btn:hover .rcf-btn__arrow { transform:translateX(4px); }

/* ---------- SCOPE / LEISTUNGSUMFANG ---------- */
.rcfv2 .rcf-scope { background:var(--rcf-canvas); }
.rcfv2 .rcf-scope h2 { font-size:clamp(1.75rem,3vw,2.25rem); margin:0 0 18px; }
.rcfv2 .rcf-scope__intro { font-size:clamp(1.0625rem,1.4vw,1.1875rem); line-height:1.65; color:var(--rcf-body); max-width:760px; }
.rcfv2 .rcf-scope__intro p { margin:0; }
.rcfv2 .rcf-scope__list { list-style:none; margin:34px 0 0; padding:0; counter-reset:scope; display:grid; grid-template-columns:repeat(2,1fr); column-gap:clamp(28px,4vw,56px); border-top:1px solid var(--rcf-border); }
.rcfv2 .rcf-scope__list li { display:flex; gap:16px; align-items:baseline; margin:0; padding:20px 2px; border-bottom:1px solid var(--rcf-border); font-size:clamp(1rem,1.15vw,1.0625rem); line-height:1.45; color:var(--rcf-ink); }
.rcfv2 .rcf-scope__list li::before { counter-increment:scope; content:counter(scope,decimal-leading-zero); flex:0 0 auto; min-width:1.7em; font-family:var(--rcf-mono); font-weight:400; font-size:.82rem; letter-spacing:.02em; color:var(--rcf-blue); }
.rcfv2 .rcf-scope__close { margin:36px 0 0; max-width:720px; padding:6px 0 6px 22px; border-left:3px solid var(--rcf-blue); font-size:clamp(1.125rem,1.55vw,1.375rem); font-weight:600; color:var(--rcf-text); line-height:1.5; }
@media(max-width:720px){ .rcfv2 .rcf-scope__list { grid-template-columns:1fr; } }

/* ---------- CONTEXT (reuses .rcf-story) ---------- */

/* ---------- RELATED FILMS ---------- */
.rcfv2 .rcf-portfolio { background:var(--rcf-surface); border-top:1px solid var(--rcf-border-strong); }
.rcfv2 .rcf-portfolio__head { display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:24px; margin-bottom:32px; }
.rcfv2 .rcf-portfolio__head h2 { font-size:clamp(1.5rem,2.4vw,2rem); }
.rcfv2 .rcf-portfolio__link { font-family:var(--rcf-sans); font-size:15px; font-weight:600; color:var(--rcf-blue); display:inline-flex; align-items:center; gap:8px; transition:gap .2s var(--rcf-ease); }
.rcfv2 .rcf-portfolio__link:hover { gap:14px; }
.rcfv2 .rcf-portfolio__link::after { content:"\2192"; font-size:16px; }
.rcfv2 .rcf-portfolio__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); }
@media(max-width:860px){ .rcfv2 .rcf-portfolio__grid { grid-template-columns:1fr; } }
.rcfv2 .rcf-portfolio__card { display:block; background:var(--rcf-surface); border:1px solid var(--rcf-border); border-radius:10px; overflow:hidden; text-decoration:none!important; transition:transform .25s var(--rcf-ease),box-shadow .25s var(--rcf-ease); }
.rcfv2 .rcf-portfolio__card:hover { transform:translateY(-2px); box-shadow:var(--rcf-shadow-md); }
.rcfv2 .rcf-portfolio__thumb { position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--rcf-blue-deep); }
.rcfv2 .rcf-portfolio__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--rcf-ease); }
.rcfv2 .rcf-portfolio__card:hover .rcf-portfolio__thumb img { transform:scale(1.04); }
.rcfv2 .rcf-portfolio__meta { padding:18px 22px 22px; }
.rcfv2 .rcf-portfolio__category { font-family:var(--rcf-sans); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--rcf-blue); margin-bottom:6px; display:block; }
.rcfv2 .rcf-portfolio__title { font-family:var(--rcf-sans); font-size:1.1875rem; font-weight:700; color:var(--rcf-ink); line-height:1.3; margin:0; }

/* ---------- PORTFOLIO TILE OVERLAY (hub .pcard-media + related .rcf-portfolio__thumb) ---------- */
.rcfv2 .pcard-shot,.rcfv2 .rcf-tile-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--rcf-ease);}
.rcfv2 .pcard:hover .pcard-shot,.rcfv2 .rcf-portfolio__card:hover .rcf-tile-shot{transform:scale(1.06);}
.rcfv2 .rcf-tile-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(13,18,42,.68) 0%,rgba(13,18,42,.30) 28%,rgba(13,18,42,.04) 56%,transparent 80%);}
.rcfv2 .rcf-tile-ov{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;padding:clamp(14px,1.6vw,22px);pointer-events:none;}
/* client logo: full-colour, small, neat white chip pinned bottom-right */
/* scoped under .rcf-tile-ov so these beat the 0,2,1 `.pcard-media img` / `.rcf-portfolio__thumb img` rules */
.rcfv2 .rcf-tile-ov .rcf-tile-logo{position:absolute;right:14px;bottom:14px;z-index:2;height:40px!important;width:auto!important;max-width:50%;object-fit:contain;background:#fff;padding:5px 9px;border-radius:7px;box-shadow:0 2px 12px rgba(8,12,32,.30);}
.rcfv2 .rcf-tile-ov .rcf-tile-client{position:absolute;right:14px;bottom:14px;z-index:2;font-family:var(--rcf-sans);font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--rcf-blue-deep);background:#fff;padding:5px 9px;border-radius:7px;box-shadow:0 2px 12px rgba(8,12,32,.30);}
.rcfv2 .rcf-tile-tag{font-family:var(--rcf-head);font-weight:700;color:#fff;font-size:clamp(.9rem,1.05vw,1.05rem);line-height:1.24;margin:0;max-width:60%;letter-spacing:-.01em;text-shadow:0 1px 14px rgba(8,12,32,.65);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rcfv2 .ply{z-index:3;}

/* ---------- RELATED SERVICES ---------- */
/* Interlinking block gets a hairline at its top edge, matching the footer divider
   (--rcf-border-strong). The +.rcf-related reset keeps it to a SINGLE line at the
   top of the block when both related modules are present (Films then Services);
   a Services-only film still gets the top line from .rcf-related itself. */
.rcfv2 .rcf-related { background:var(--rcf-canvas); border-top:1px solid var(--rcf-border-strong); }
.rcfv2 .rcf-portfolio + .rcf-related { border-top:0; }
.rcfv2 .rcf-related__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media(max-width:860px){ .rcfv2 .rcf-related__grid { grid-template-columns:1fr; } }
.rcfv2 .rcf-related__card { display:flex; flex-direction:column; justify-content:space-between; gap:14px; background:var(--rcf-surface); border:1px solid var(--rcf-border); border-radius:12px; padding:26px 28px; color:var(--rcf-ink); text-decoration:none!important; transition:transform .25s var(--rcf-ease),box-shadow .25s var(--rcf-ease),border-color .25s var(--rcf-ease); }
.rcfv2 .rcf-related__card:hover { transform:translateY(-2px); box-shadow:var(--rcf-shadow-md); border-color:var(--rcf-blue); }
.rcfv2 .rcf-related__card h3 { font-size:1.2rem; font-weight:700; margin:0 0 10px; color:var(--rcf-text); line-height:1.25; }
.rcfv2 .rcf-related__card p { font-size:.98rem; line-height:1.55; margin:0; color:var(--rcf-body); }
.rcfv2 .rcf-related__more { color:var(--rcf-blue); font-weight:600; font-size:.95rem; }

/* ---------- META FOOTER ---------- */
.rcfv2 .rcf-meta-footer { background:transparent; padding:8px 0 28px; text-align:center; font-family:var(--rcf-mono); font-size:12px; color:var(--rcf-body-light); letter-spacing:.02em; }
.rcfv2 .rcf-meta-footer__crumb { margin-bottom:7px; font-family:var(--rcf-sans); }
.rcfv2 .rcf-meta-footer a { color:var(--rcf-body-light); }
.rcfv2 .rcf-meta-footer a:hover { color:var(--rcf-blue); }
.rcfv2 .rcf-meta-footer__sep { margin:0 7px; color:var(--rcf-border-strong); }

/* ---------- REVEAL ON SCROLL ---------- */
.rcfv2 .rcf-reveal { opacity:0; transform:translateY(14px); transition:opacity .5s var(--rcf-ease),transform .5s var(--rcf-ease); }
.rcfv2 .rcf-reveal.is-visible { opacity:1; transform:translateY(0); }
.rcfv2 .rcf-reveal[data-delay="1"]{ transition-delay:.06s; }
.rcfv2 .rcf-reveal[data-delay="2"]{ transition-delay:.12s; }

/* =====================================================================
   FILMS HUB  (page-films-hub.php)
   ===================================================================== */
.rcfv2 .films-hub__intro { padding:clamp(40px,6vw,84px) 0 clamp(20px,2.5vw,32px); background:var(--rcf-canvas); }
.rcfv2 .films-hub__intro h1 { font-family:var(--rcf-head); font-weight:800; font-size:clamp(2rem,5vw,3.25rem); line-height:1.06; letter-spacing:-.022em; color:var(--rcf-text); margin:0 0 18px; }
.rcfv2 .films-hub__intro .films-hub__lead { font-size:clamp(1.0625rem,1.4vw,1.25rem); line-height:1.55; color:var(--rcf-blue); max-width:640px; }
.rcfv2 .films-hub__filter { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 0; }
.rcfv2 .films-hub__chip { font-family:var(--rcf-sans); font-size:14px; font-weight:600; padding:8px 16px; border-radius:999px; border:1px solid var(--rcf-border-strong); background:transparent; color:var(--rcf-body); text-decoration:none; transition:all .2s var(--rcf-ease); }
.rcfv2 .films-hub__chip:hover { border-color:var(--rcf-blue); color:var(--rcf-blue); }
.rcfv2 .films-hub__chip.is-active { background:var(--rcf-blue-deep); border-color:var(--rcf-blue-deep); color:#fff; }
.rcfv2 .films-hub__grid-wrap { padding:clamp(28px,4vw,56px) 0 clamp(48px,6vw,88px); background:var(--rcf-canvas); }
.rcfv2 .films-hub__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
@media(max-width:900px){ .rcfv2 .films-hub__grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .rcfv2 .films-hub__grid { grid-template-columns:1fr; } }
.rcfv2 .films-hub__empty { color:var(--rcf-body-light); font-size:1rem; padding:40px 0; }

/* screen-reader-only heading (keeps a sane h1→h2→h3 order on the hub) */
.rcfv2 .rcf-sr-only { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* hub pagination */
.rcfv2 .films-hub__pager { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:44px; }
.rcfv2 .films-hub__pager a { font-family:var(--rcf-sans); font-weight:600; font-size:14px; padding:8px 14px; border-radius:8px; border:1px solid var(--rcf-border-strong); color:var(--rcf-body); text-decoration:none; transition:all .2s var(--rcf-ease); }
.rcfv2 .films-hub__pager a:hover { border-color:var(--rcf-blue); color:var(--rcf-blue); }
.rcfv2 .films-hub__pager a.is-active { background:var(--rcf-blue-deep); border-color:var(--rcf-blue-deep); color:#fff; }

/* respect reduced-motion: show content immediately, no transform/opacity animation */
@media (prefers-reduced-motion: reduce) {
  .rcfv2 .rcf-reveal { opacity:1!important; transform:none!important; transition:none!important; }
}

/* =====================================================================
   FILMS HUB — V2 "/newportfolio/" rebuild (HERO · PROJECTS · CLOSING CTA)
   Additive, 2026-skin. Reuses the existing --rcf-* tokens + .rcf-reveal observer.
   (old #006BAB → --rcf-blue · #005589 → --rcf-blue-deep · light-blue chip → --rcf-chip)
   ===================================================================== */

/* ---------- HERO ---------- */
.rcfv2 .port-hero { background:var(--rcf-canvas); padding:clamp(36px,5.5vw,76px) 0 clamp(28px,3.5vw,48px); }
.rcfv2 .hero-grid { display:grid; grid-template-columns:1.04fr .96fr; gap:clamp(28px,4vw,56px); align-items:center; }
@media(max-width:860px){ .rcfv2 .hero-grid { grid-template-columns:1fr; gap:clamp(24px,5vw,36px); } }
.rcfv2 .hero-copy h1 { font-family:var(--rcf-head); font-weight:800; font-size:clamp(2rem,5vw,3.25rem); line-height:1.06; letter-spacing:-.022em; color:var(--rcf-text); margin:0 0 18px; }
.rcfv2 .hero-sub { font-size:clamp(1.0625rem,1.4vw,1.25rem); line-height:1.55; color:var(--rcf-blue); max-width:600px; margin:0 0 26px; }
.rcfv2 .hero-cta { display:flex; flex-wrap:wrap; gap:12px; }
.rcfv2 .hero-media { width:100%; }
.rcfv2 .hero-reel-mini { position:relative; width:100%; min-height:280px; aspect-ratio:16/9; border-radius:12px; overflow:hidden; box-shadow:var(--rcf-shadow-lg); background:var(--rcf-blue-deep); }
/* showreel is 2.39:1 (1280x536) inside a 16:9 box → fill by HEIGHT and crop the sides so there are
   no top/bottom letterbox bands (keeps the full top-to-bottom of the film; trims ~17% off each side) */
.rcfv2 .hero-reel-mini iframe { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:135%; height:100%; border:0; display:block; pointer-events:none; }

/* ghost / secondary button on canvas (transparent, inset border, chip hover-fill) */
.rcfv2 .rcf-btn--ghost { background:transparent; color:var(--rcf-blue-deep)!important; border-color:var(--rcf-border-strong); }
.rcfv2 .rcf-btn--ghost:hover { background:var(--rcf-chip); border-color:var(--rcf-blue); color:var(--rcf-blue-deep)!important; transform:translateY(-2px); }

/* ---------- PROJECTS ---------- */
.rcfv2 .port-projects { background:var(--rcf-canvas); padding:clamp(8px,1.5vw,20px) 0 clamp(48px,6vw,88px); }
.rcfv2 .port-filter { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 clamp(24px,3vw,38px); }
.rcfv2 .fbtn { font-family:var(--rcf-sans); font-size:14px; font-weight:600; line-height:1.2; padding:9px 16px; border-radius:8px; border:1px solid var(--rcf-border-strong); background:var(--rcf-surface); color:var(--rcf-body); cursor:pointer; transition:all .2s var(--rcf-ease); }
.rcfv2 .fbtn:hover { border-color:var(--rcf-blue); color:var(--rcf-blue); }
.rcfv2 .fbtn[aria-pressed="true"] { background:var(--rcf-blue-deep); border-color:var(--rcf-blue-deep); color:#fff; }

.rcfv2 .pgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,1.5vw,24px); }
@media(max-width:900px){ .rcfv2 .pgrid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .rcfv2 .pgrid { grid-template-columns:1fr; } }
.rcfv2 .pgrid-empty { color:var(--rcf-body-light); font-size:1rem; padding:32px 0; }

.rcfv2 .pcard { display:flex; flex-direction:column; background:var(--rcf-surface); border:1px solid var(--rcf-border); border-radius:10px; overflow:hidden; transition:opacity .4s var(--rcf-ease),transform .3s var(--rcf-ease),box-shadow .25s var(--rcf-ease),border-color .25s var(--rcf-ease); }
.rcfv2 .pcard:hover { transform:translateY(-3px); border-color:var(--rcf-blue); box-shadow:0 14px 34px rgba(47,78,158,.16); }
.rcfv2 .pcard[hidden] { display:none; }

.rcfv2 .pcard-media { position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:var(--rcf-blue-deep); }
.rcfv2 .pcard-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--rcf-ease); }
.rcfv2 .pcard:hover .pcard-media img { transform:scale(1.06); }
.rcfv2 .pcard-media::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(26,42,92,.55),transparent 55%); opacity:0; transition:opacity .25s var(--rcf-ease); pointer-events:none; }
.rcfv2 .pcard:hover .pcard-media::after { opacity:1; }

.rcfv2 .ply { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(.8); width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.32); color:#fff; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); opacity:0; z-index:1; pointer-events:none; transition:opacity .25s var(--rcf-ease),transform .25s var(--rcf-ease),background .25s var(--rcf-ease); }
.rcfv2 .pcard:hover .ply { opacity:1; transform:translate(-50%,-50%) scale(1); background:var(--rcf-blue); }

.rcfv2 .pcard-body { padding:16px 18px 20px; }
.rcfv2 .pcard-cats { margin:0 0 10px; }
.rcfv2 .pcat { display:inline-block; font-family:var(--rcf-sans); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--rcf-blue); background:var(--rcf-chip); padding:4px 11px; border-radius:999px; }
.rcfv2 .pcard-title { font-size:1.1875rem; font-weight:700; line-height:1.3; margin:0; }
.rcfv2 .pcard-title a { color:var(--rcf-text); }
.rcfv2 .pcard-title a:hover { color:var(--rcf-blue); }

/* ---------- CLOSING CTA (light, centered, on canvas — not a navy band) ---------- */
.rcfv2 .port-cta { background:var(--rcf-canvas); border-top:1px solid var(--rcf-border); padding:clamp(48px,7vw,104px) 0; text-align:center; }
.rcfv2 .port-cta .rcf__container { display:flex; flex-direction:column; align-items:center; gap:clamp(22px,3vw,32px); }
.rcfv2 .port-cta-lead { font-family:var(--rcf-head); font-weight:700; font-size:clamp(1.5rem,3.4vw,2.25rem); line-height:1.22; letter-spacing:-.018em; color:var(--rcf-text); max-width:22ch; margin:0 auto; text-wrap:balance; }

/* reduced-motion: kill the new hover/zoom motion too (entrance handled by the block above) */
@media (prefers-reduced-motion: reduce) {
  .rcfv2 .pcard, .rcfv2 .pcard-media img, .rcfv2 .ply, .rcfv2 .pcard-media::after { transition:none!important; }
  .rcfv2 .pcard:hover { transform:none!important; }
  .rcfv2 .pcard:hover .pcard-media img { transform:none!important; }
  .rcfv2 .pcard:hover .ply { transform:translate(-50%,-50%)!important; }
}
