/* =====================================================================
   ROCC Films — V3 single-film ("Variante 4a", 2026 DM-Sans styleguide)
   Approved design: v3-design-reference-4a.html (inline styles = ground truth).
   Everything scoped under .rcfv3 so it never touches global/Elementor CSS.
   Desktop values are EXACT per the reference; the responsive layer is derived
   (beautiful + zero horizontal overflow at 390/768/1024/1440/1920).
   DM Sans only. No JS, no scroll-reveal, nothing default-hidden.
   ===================================================================== */

/* Self-hosted DM Sans faces the site's font set lacks (site font.css carries 400-700
   + italic 400/500; Google Fonts is stripped site-wide by the asset diet). Instanced
   from the design folder's variable TTFs (fonttools, wght=800 / italic wght=700). */
@font-face { font-family:"DM Sans"; font-style:normal; font-weight:800; font-display:swap; src:url("fonts/dmsans-800.woff2") format("woff2"); }
@font-face { font-family:"DM Sans"; font-style:italic; font-weight:700; font-display:swap; src:url("fonts/dmsans-700italic.woff2") format("woff2"); }

main.rcfv3 {
  /* --- design tokens --- */
  --rcf3-navy:#1A2A5C;          /* headlines, dark tiles, primary text-on-light */
  --rcf3-royal:#2F4E9E;         /* accents, kickers, links, numbers */
  --rcf3-canvas:#F5F4F1;        /* warm page canvas */
  --rcf3-body:#2A2A28;          /* body copy */
  --rcf3-ink:#1C1C1A;           /* names, card titles — never #000 */
  --rcf3-muted:#9B9A93;         /* captions, roles, keys */
  --rcf3-tile:#ECEFF7;          /* light-blue tiles, button-hover fill */
  --rcf3-hairline-blue:#C7D2E6; /* rule lines inside blue tiles */
  --rcf3-hairline:#E5E3DE;      /* warm rule lines (scope card, footer) */
  --rcf3-white:#FFFFFF;
  --rcf3-sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;

  /* section rhythm — base 96, video 64, image-grid 88, related 104, services 112, footer 56 */
  --rcf3-sec:clamp(56px,7vw,96px);

  width:100%; max-width:100%; overflow-x:clip;
  background:var(--rcf3-canvas);
  font-family:var(--rcf3-sans);
  color:var(--rcf3-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
main.rcfv3 *, main.rcfv3 *::before, main.rcfv3 *::after { box-sizing:border-box; }
main.rcfv3 img { display:block; max-width:100%; height:auto; }
main.rcfv3 h1, main.rcfv3 h2, main.rcfv3 h3 { margin:0; font-weight:700; font-family:var(--rcf3-sans); color:var(--rcf3-navy); }
main.rcfv3 p { margin:0; }
main.rcfv3 a { color:var(--rcf3-royal); text-decoration:none; }

main.rcfv3 .rcfv3__inner {
  max-width:1360px;
  margin:0 auto;
  padding:clamp(48px,8vw,104px) clamp(20px,7vw,96px) clamp(56px,8vw,96px);
}

/* ---------- shared section rhythm ---------- */
main.rcfv3 .rcfv3-section { margin-top:var(--rcf3-sec); }

/* Shared H2 (35px navy). overflow-wrap guards against 390px overflow. */
main.rcfv3 .rcfv3-h2 {
  font-weight:700;
  font-size:clamp(26px,2.6vw,35px);
  line-height:1.15;
  color:var(--rcf3-navy);
  letter-spacing:-0.015em;
  margin:0;
  text-wrap:balance;
  overflow-wrap:break-word;
}

/* Shared prose (17px body). */
main.rcfv3 .rcfv3-prose p {
  font-size:17px;
  line-height:1.75;
  color:var(--rcf3-body);
  margin:0 0 20px 0;
  hyphens:auto;
  text-wrap:pretty;
}
main.rcfv3 .rcfv3-prose p:last-child { margin-bottom:0; }
main.rcfv3 .rcfv3-prose--narrow { max-width:760px; }

/* ---------- HERO ---------- */
main.rcfv3 .rcfv3-hero__bar {
  width:56px; height:3px; background:var(--rcf3-royal);
  border-radius:2px; margin:0 0 28px 0;
}
main.rcfv3 .rcfv3-hero__h1 { margin:0; max-width:960px; }
main.rcfv3 .rcfv3-hero__kicker {
  display:block;
  font-weight:600; font-size:12.5px; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--rcf3-royal); margin:0 0 18px 0; line-height:1.2; }
main.rcfv3 .rcfv3-hero__title {
  display:block;
  font-weight:800; font-size:clamp(34px,4.7vw,64px); line-height:1.04;
  color:var(--rcf3-navy); letter-spacing:-0.02em; text-wrap:balance;
  overflow-wrap:break-word;
}
main.rcfv3 .rcfv3-hero__row {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:48px; margin:26px 0 0 0;
}
/* No lead paragraph → keep the pills right-aligned (never a broken empty left column). */
main.rcfv3 .rcfv3-hero__row--nolead { justify-content:flex-end; }
main.rcfv3 .rcfv3-hero__lead {
  font-size:20px; line-height:1.65; color:var(--rcf3-body);
  margin:0; max-width:660px; text-wrap:pretty;
}
main.rcfv3 .rcfv3-hero__pills { display:flex; gap:10px; flex:none; flex-wrap:wrap; }
main.rcfv3 .rcfv3-pill {
  font-weight:600; font-size:13.5px; color:var(--rcf3-navy);
  border:1.5px solid var(--rcf3-navy); border-radius:999px;
  padding:8px 16px; white-space:nowrap;
}

/* ---------- VIDEO ---------- */
main.rcfv3 .rcfv3-video { margin-top:clamp(40px,5vw,64px); }
main.rcfv3 .rcfv3-video__frame {
  aspect-ratio:16/9; background:var(--rcf3-navy);
  border-radius:14px; overflow:hidden;
  box-shadow:0 30px 70px -20px rgba(26,42,92,0.35), 0 10px 26px rgba(26,42,92,0.12);
}
main.rcfv3 .rcfv3-video__frame iframe { width:100%; height:100%; border:0; display:block; }

/* ---------- SPLIT SECTIONS (synopsis 7/4.6, story 6.5/5.5) ---------- */
main.rcfv3 .rcfv3-split { display:grid; gap:56px; align-items:start; }
main.rcfv3 .rcfv3-split--synopsis { grid-template-columns:7fr 4.6fr; }
main.rcfv3 .rcfv3-split--story { grid-template-columns:6.5fr 5.5fr; }
main.rcfv3 .rcfv3-split--single { grid-template-columns:1fr; }
main.rcfv3 .rcfv3-split__main .rcfv3-h2 { margin:0 0 26px 0; }

/* Production Facts tile */
main.rcfv3 .rcfv3-facts {
  background:var(--rcf3-tile); border-radius:16px; padding:34px 36px;
  align-self:start;
}
main.rcfv3 .rcfv3-facts__label {
  font-weight:600; font-size:12px; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--rcf3-royal); margin:0 0 8px 0;
}
main.rcfv3 .rcfv3-facts__row {
  display:flex; justify-content:space-between; gap:16px;
  padding:11px 0; border-bottom:1px solid var(--rcf3-hairline-blue); line-height:1.35; }
main.rcfv3 .rcfv3-facts__row:last-child { border-bottom:none; }
main.rcfv3 .rcfv3-facts__key { font-size:13.5px; color:var(--rcf3-muted); }
main.rcfv3 .rcfv3-facts__val {
  font-weight:500; font-size:13.5px; color:var(--rcf3-ink); text-align:right;
}

/* ---------- IMAGE GRID (7/5, big + 2 stacked) ---------- */
main.rcfv3 .rcfv3-imggrid {
  margin-top:clamp(52px,6.5vw,88px);
  display:grid; grid-template-columns:7fr 5fr; gap:32px; align-items:stretch;
}
main.rcfv3 .rcfv3-imggrid--single { grid-template-columns:1fr; }
main.rcfv3 .rcfv3-imggrid__big {
  width:100%; height:100%; min-height:540px;
  object-fit:cover; border-radius:16px;
}
main.rcfv3 .rcfv3-imggrid__stack { display:grid; grid-template-rows:1fr 1fr; gap:32px; }
main.rcfv3 .rcfv3-imggrid__stack img:only-child { grid-row:1 / -1; }
main.rcfv3 .rcfv3-imggrid__stack img {
  width:100%; height:100%; object-fit:cover; border-radius:16px;
}

/* ---------- STATEMENT ---------- */
main.rcfv3 .rcfv3-statement { max-width:1000px; }
main.rcfv3 .rcfv3-statement__bar {
  width:40px; height:3px; background:var(--rcf3-royal);
  border-radius:2px; margin:0 0 24px 0;
}
main.rcfv3 .rcfv3-statement__quote {
  font-weight:700; font-size:clamp(24px,2.5vw,34px); line-height:1.32;
  color:var(--rcf3-navy); letter-spacing:-0.015em; margin:0; text-wrap:balance;
}
main.rcfv3 .rcfv3-statement__person {
  display:flex; align-items:center; gap:16px; margin:30px 0 0 0;
}
main.rcfv3 .rcfv3-statement__avatar {
  width:62px; height:62px; border-radius:50%; object-fit:cover; flex:none;
}
main.rcfv3 .rcfv3-statement__name {
  font-style:italic; font-weight:700; font-size:16.5px;
  color:var(--rcf3-ink); margin:0;
}
main.rcfv3 .rcfv3-statement__name a { color:inherit; text-decoration:none; transition:color .2s ease; }
main.rcfv3 .rcfv3-statement__name a:hover { color:var(--rcf3-navy); }
main.rcfv3 .rcfv3-statement__role {
  font-style:italic; font-size:14.5px; color:var(--rcf3-muted); margin:3px 0 0 0;
}

/* ---------- STORY closing quote ---------- */
main.rcfv3 .rcfv3-story__quote {
  font-style:italic; font-weight:500; font-size:clamp(19px,1.6vw,21px);
  line-height:1.45; color:var(--rcf3-royal); margin:20px 0 0 0;
}

/* ---------- BENEFITS tile ---------- */
main.rcfv3 .rcfv3-benefits {
  background:var(--rcf3-tile); border-radius:16px; padding:44px 46px;
  align-self:stretch; display:flex; flex-direction:column; justify-content:center;
}
main.rcfv3 .rcfv3-benefits__title {
  font-weight:700; font-size:20px; color:var(--rcf3-navy); margin:0 0 12px 0;
}
main.rcfv3 .rcfv3-benefits__row {
  display:flex; gap:16px; align-items:baseline;
  padding:16px 0; border-bottom:1px solid var(--rcf3-hairline-blue);
}
main.rcfv3 .rcfv3-benefits__row:last-child { border-bottom:none; padding-bottom:0; }
main.rcfv3 .rcfv3-benefits__num { font-weight:600; font-size:13px; color:var(--rcf3-royal); flex:none; }
main.rcfv3 .rcfv3-benefits__txt { font-size:15.5px; line-height:1.6; color:var(--rcf3-body); }

/* ---------- SCENES ("Im Spot zu sehen.") ---------- */
main.rcfv3 .rcfv3-scenes .rcfv3-h2 { margin:0 0 16px 0; }
main.rcfv3 .rcfv3-scenes__lead {
  font-size:17px; line-height:1.75; color:var(--rcf3-body);
  margin:0 0 36px 0; max-width:760px; hyphens:auto; text-wrap:pretty;
}
main.rcfv3 .rcfv3-scenes__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
main.rcfv3 .rcfv3-scene__img {
  width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:10px;
}
main.rcfv3 .rcfv3-scene__cap {
  font-size:13px; line-height:1.5; color:var(--rcf3-muted); margin:10px 2px 0 2px;
}
main.rcfv3 .rcfv3-scene__num { font-weight:600; color:var(--rcf3-royal); }

/* ---------- CONTEXT (extra prose) ---------- */
main.rcfv3 .rcfv3-context { max-width:760px; }
main.rcfv3 .rcfv3-context .rcfv3-h2 { margin:0 0 26px 0; }

/* ---------- SCOPE CARD + CTA TILE (8/4) ---------- */
main.rcfv3 .rcfv3-scoperow {
  display:grid; grid-template-columns:8fr 4fr; gap:32px; align-items:stretch;
}
main.rcfv3 .rcfv3-scoperow--cta-only { grid-template-columns:1fr; }
main.rcfv3 .rcfv3-scope {
  background:var(--rcf3-white); border-radius:16px; padding:44px 48px;
  box-shadow:0 1px 3px rgba(26,42,92,0.06);
}
main.rcfv3 .rcfv3-scope__h2 {
  font-weight:700; font-size:clamp(22px,2vw,26px); line-height:1.2;
  color:var(--rcf3-navy); letter-spacing:-0.015em; margin:0 0 6px 0; text-wrap:balance;
}
main.rcfv3 .rcfv3-scope__intro {
  font-size:15.5px; line-height:1.6; color:var(--rcf3-muted); margin:0 0 20px 0;
}
/* Numbering runs DOWN the columns (01-04 left, 05-07 right): column-major flow with the
   row count set inline per item-count. Border between rows within a column (all but the
   last item in each column). */
main.rcfv3 .rcfv3-scope__grid {
  display:grid; grid-template-columns:1fr 1fr; grid-auto-flow:column; column-gap:48px;
}
main.rcfv3 .rcfv3-scope__row {
  display:flex; gap:16px; align-items:baseline;
  padding:12px 0; border-bottom:1px solid var(--rcf3-hairline); line-height:1.3; }
main.rcfv3 .rcfv3-scope__row.is-tail { border-bottom:none; }
main.rcfv3 .rcfv3-scope__num { font-weight:600; font-size:13px; color:var(--rcf3-royal); flex:none; }
main.rcfv3 .rcfv3-scope__txt { font-size:15px; color:var(--rcf3-body); }

main.rcfv3 .rcfv3-ctatile {
  background:var(--rcf3-navy); border-radius:16px; padding:40px;
  display:flex; flex-direction:column; justify-content:space-between; gap:28px;
}
main.rcfv3 .rcfv3-ctatile__title {
  font-weight:700; font-size:23px; line-height:1.3; color:var(--rcf3-white);
  margin:0 0 12px 0; text-wrap:balance;
}
main.rcfv3 .rcfv3-ctatile__text {
  font-size:15px; line-height:1.6; color:var(--rcf3-hairline-blue); margin:0; text-wrap:pretty;
}
main.rcfv3 .rcfv3-ctatile__btn {
  display:flex; align-items:center; justify-content:center; gap:10px;
  background:var(--rcf3-white); color:var(--rcf3-navy);
  font-weight:600; font-size:15px; padding:15px 24px; border-radius:10px;
  text-decoration:none; transition:background .2s ease, transform .2s ease;
}
main.rcfv3 .rcfv3-ctatile__btn:hover { background:var(--rcf3-tile); transform:translateY(-1px); }

/* ---------- RELATED FILMS ---------- */
main.rcfv3 .rcfv3-related { margin-top:clamp(64px,8vw,104px); }
main.rcfv3 .rcfv3-related__head {
  display:flex; justify-content:space-between; align-items:baseline;
  gap:32px; margin:0 0 32px 0;
}
main.rcfv3 .rcfv3-related__all {
  font-weight:600; font-size:15px; color:var(--rcf3-royal);
  text-decoration:none; white-space:nowrap; transition:color .2s ease;
}
main.rcfv3 .rcfv3-related__all:hover { color:var(--rcf3-navy); }
main.rcfv3 .rcfv3-related__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }

main.rcfv3 .rcfv3-card {
  display:block; background:var(--rcf3-white); border-radius:16px; overflow:hidden;
  box-shadow:0 1px 3px rgba(26,42,92,0.06); text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease;
}
main.rcfv3 .rcfv3-card:hover { transform:translateY(-2px); box-shadow:0 14px 32px -8px rgba(26,42,92,0.20); }
main.rcfv3 .rcfv3-card__media { aspect-ratio:16/9; background:var(--rcf3-tile); overflow:hidden; }
main.rcfv3 .rcfv3-card__img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; }
main.rcfv3 .rcfv3-card__body { padding:22px 24px 26px 24px; }
main.rcfv3 .rcfv3-card__meta {
  font-weight:600; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--rcf3-royal); margin:0 0 10px 0;
}
main.rcfv3 .rcfv3-card__title {
  font-weight:700; font-size:18px; line-height:1.35; color:var(--rcf3-ink); margin:0;
}

/* ---------- SERVICES ---------- */
main.rcfv3 .rcfv3-services { margin-top:clamp(64px,8.5vw,112px); }
main.rcfv3 .rcfv3-services__kicker { display:flex; align-items:center; gap:14px; margin:0 0 16px 0; }
main.rcfv3 .rcfv3-services__line { width:30px; height:2px; background:var(--rcf3-royal); flex:none; }
main.rcfv3 .rcfv3-services__klabel {
  font-weight:600; font-size:12px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--rcf3-royal);
}
main.rcfv3 .rcfv3-services__h2 { margin:0 0 36px 0; }
main.rcfv3 .rcfv3-services__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
main.rcfv3 .rcfv3-svc {
  display:block; background:var(--rcf3-white); border-radius:16px; padding:30px 32px;
  box-shadow:0 1px 3px rgba(26,42,92,0.06); text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease;
}
main.rcfv3 .rcfv3-svc:hover { transform:translateY(-2px); box-shadow:0 14px 32px -8px rgba(26,42,92,0.20); }
main.rcfv3 .rcfv3-svc__title {
  font-weight:700; font-size:18px; line-height:1.3; color:var(--rcf3-navy); margin:0 0 10px 0;
}
main.rcfv3 .rcfv3-svc__desc {
  font-size:14.5px; line-height:1.6; color:var(--rcf3-body); margin:0 0 16px 0; text-wrap:pretty;
}
main.rcfv3 .rcfv3-svc__more { font-weight:600; font-size:14.5px; color:var(--rcf3-royal); }

/* ---------- FOOTER META ---------- */
main.rcfv3 .rcfv3-metafoot {
  margin-top:clamp(40px,4.5vw,56px);
  padding:20px 4px 0 4px; border-top:1px solid var(--rcf3-hairline);
  display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
main.rcfv3 .rcfv3-metafoot__crumb, main.rcfv3 .rcfv3-metafoot__dates { font-size:13px; color:var(--rcf3-muted); }
main.rcfv3 .rcfv3-metafoot time { color:inherit; }

/* =====================================================================
   RESPONSIVE — derived. Beautiful + intentional at 1920/1440/1024/768/390.
   ===================================================================== */

/* ≤1100 — collapse two-column grids; image grid → big + 2-up; scenes → 2 col. */
@media (max-width:1100px) {
  main.rcfv3 .rcfv3-split { grid-template-columns:1fr; gap:40px; }
  main.rcfv3 .rcfv3-scoperow { grid-template-columns:1fr; gap:28px; }

  main.rcfv3 .rcfv3-imggrid { grid-template-columns:1fr; }
  main.rcfv3 .rcfv3-imggrid__big { min-height:0; aspect-ratio:16/9; height:auto; }
  main.rcfv3 .rcfv3-imggrid__stack { grid-template-rows:none; grid-template-columns:1fr 1fr; }
  main.rcfv3 .rcfv3-imggrid__stack img:only-child { grid-column:1 / -1; }
  main.rcfv3 .rcfv3-imggrid__stack img { height:auto; aspect-ratio:16/9; }

  main.rcfv3 .rcfv3-scenes__grid { grid-template-columns:1fr 1fr; }
}

/* ≤782 — site mobile breakpoint. */
@media (max-width:782px) {
  main.rcfv3 .rcfv3-hero__row { flex-direction:column; align-items:flex-start; gap:0; }
  main.rcfv3 .rcfv3-hero__pills { margin-top:16px; }

  main.rcfv3 .rcfv3-video__frame { border-radius:10px; }

  main.rcfv3 .rcfv3-facts { padding:30px 28px; }
  main.rcfv3 .rcfv3-benefits { padding:32px 30px; }
  main.rcfv3 .rcfv3-scope { padding:34px 30px; }
  main.rcfv3 .rcfv3-ctatile { padding:32px 30px; }

  main.rcfv3 .rcfv3-related__grid, main.rcfv3 .rcfv3-services__grid { grid-template-columns:1fr; }

  main.rcfv3 .rcfv3-related__head { gap:16px; }

  main.rcfv3 .rcfv3-scene__cap { font-size:12px; }

  main.rcfv3 .rcfv3-metafoot { flex-direction:column; gap:8px; }
}

/* ≤600 — smallest phones: scope numbering → single column, restore clean row borders. */
@media (max-width:600px) {
  main.rcfv3 .rcfv3-scope__grid { grid-template-columns:1fr; grid-auto-flow:row; }
  main.rcfv3 .rcfv3-scope__row.is-tail { border-bottom:1px solid var(--rcf3-hairline); }
  main.rcfv3 .rcfv3-scope__row:last-child { border-bottom:none; }

  /* Stack the related header so the H2 gets full width and the link sits below it. */
  main.rcfv3 .rcfv3-related__head { flex-direction:column; align-items:flex-start; gap:12px; }

  main.rcfv3 .rcfv3-prose p, main.rcfv3 .rcfv3-scenes__lead { font-size:16px; }
  main.rcfv3 .rcfv3-hero__lead { font-size:18px; }
}

/* ≤390 — guard the narrowest supported width against any overflow. */
@media (max-width:390px) {
  main.rcfv3 .rcfv3-scenes__grid { gap:12px; }
  main.rcfv3 .rcfv3-hero__pills { gap:8px; }
  main.rcfv3 .rcfv3-pill { padding:7px 13px; font-size:13px; }
}
