/* ==========================================================================
   page-case-acs.css · Case ACS Motion Control (/arbeiten/acs-motion-control, /en/work/acs-motion-control)
   Komponenten (.case-hero, .watch, .player, .tabs, .sheet, .quote, .acc-list,
   .deep, .next, .finder, .tag) kommen aus site.css. Hier nur die Komposition
   dieser Case-Seite:
     1 Kopf · 2 Player + Film-Tabs (Vorschaubild, Fortschritts-Haarlinie)
     3 Lese-Raster (H2 links, Text rechts) · 4 Call-Sheet zweispaltig
     5 Botschaften + Pointe · 6 Idee (zwei Filme) · 7 Kontaktabzug (Stills)
     8 Stimme · 9 Shotliste (Tiefe) · 10 Abschluss
   Signatur = Ankunft (Poster-Morph, site.css §21). Alles Weitere reagiert nur
   auf den Nutzer (Hover, Tab-Wechsel, Wiedergabe). Nur transform/opacity.
   ========================================================================== */

/* ---------- 1 Kopf ---------- */
.acs-hero .slate { margin-bottom: 0.85rem; }
.acs-hero .h1 { max-width: 18em; }

/* ---------- 2 Player + Film-Tabs ---------- */
/* Video schon beim Laden sichtbar, über dem Standbild (Video-Indexierung, T-01). poster = JPG wie thumbnailUrl und Video-Sitemap.
   Vor dem Start ist der Videogrund durchsichtig: bis das JPG da ist, zeigt sich das <img> darunter (srcset, Morph-Ziel),
   danach liegt dasselbe Motiv darüber. 1 px Rand: Bei gleich großer Fläche würde das später gemalte Poster zum LCP-Element
   (Rundung, gemessen 14.10.); so bleibt das <img> LCP. Beim Abspielen gilt wieder die volle Fläche aus site.css. */
.acs-watch .player:not(.is-on) video { inset: 1px; width: calc(100% - 2px); height: calc(100% - 2px); background: transparent; }
/* Kicker-Zeile kostet Höhe: Player + Kennzeichnung bleiben bei 1440 × 900 über dem Falz (≈ 71vw, passt zu sizes 72vw) */
.acs-watch .player { width: min(100%, calc((100svh - 20.5rem) * 16 / 9)); }
.acs-watch .player .finder { inset: 6% 3.5%; }
.acs-watch .player.is-on .finder { display: none; }

/* mobil: zwei Segmente über dem Player */
.acs-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.acs-tabs [role="tab"] {
  position: relative; display: grid; align-content: center; gap: 0.15rem;
  min-height: 3.5rem; padding: 0.6rem 0.85rem 0.75rem;
}
.acs-tab-thumb { display: contents; }
.acs-tab-thumb img { display: none; }   /* loading="lazy" + display:none = mobil kein Download */
.acs-tab-sep { display: none; }
.acs-tab-t { font-weight: 700; line-height: 1.2; color: var(--muted); transition: color var(--d-ui); }
.acs-tab-s { font-family: var(--f-mono); font-size: 0.7rem; font-weight: 400; letter-spacing: 0.03em; line-height: 1.3; color: var(--muted); }
.acs-tabs [aria-selected="true"] .acs-tab-t,
.acs-tabs [role="tab"]:hover .acs-tab-t { color: var(--ink); }
/* Fortschritt des gewählten Films als Haarlinie (--p setzt das Seiten-JS während der Wiedergabe) */
.acs-tab-bar { position: absolute; left: -1px; right: -1px; bottom: -1px; height: 2px; overflow: hidden; }
.acs-tab-bar::after {
  content: ""; position: absolute; inset: 0; background: var(--acc);
  transform-origin: 0 50%; transform: scaleX(var(--p, 0)); transition: transform 0.26s linear;
}
.acs-tabs [aria-selected="true"] .acs-tab-bar { background: rgba(236, 231, 217, 0.22); }

/* Desktop: rechte Spalte als „Clip-Ablage“ mit Vorschaubildern */
@media (min-width: 1000px) {
  /* Spalte folgt dem höhenbegrenzten Player; der Restplatz liegt rechts neben den Tabs, nicht dazwischen */
  .acs-watch { grid-template-columns: minmax(0, calc((100svh - 20.5rem) * 16 / 9)) 15rem; justify-content: start; }
  .acs-watch .player { width: 100%; }
  .acs-tabs { grid-template-columns: 1fr; gap: 1.35rem; align-content: start; }
  .acs-tabs [role="tab"] { min-height: 0; padding: 0; border: 0; gap: 0.2rem; align-content: start; }
  .acs-tab-thumb {
    position: relative; display: block; aspect-ratio: 16 / 9; margin-bottom: 0.55rem;
    overflow: hidden; background: var(--petrol-3);
  }
  .acs-tab-thumb img {
    display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.45;
    transition: opacity var(--d-ui) var(--ease-out), transform 1.2s var(--ease-out);
  }
  .acs-tab-thumb::after { content: ""; position: absolute; inset: 0; border: 1px solid var(--line); transition: border-color var(--d-ui); }
  .acs-tabs [aria-selected="true"] .acs-tab-thumb img { opacity: 1; }
  .acs-tabs [aria-selected="true"] .acs-tab-thumb::after { border-color: var(--acc); }
  .acs-tabs [role="tab"]:hover .acs-tab-thumb img { opacity: 0.85; transform: scale(1.03); }
  .acs-tabs [aria-selected="true"]:hover .acs-tab-thumb img { opacity: 1; }
  .acs-tab-bar { left: 0; right: 0; bottom: 0; z-index: 1; height: 3px; }
  .acs-tab-t { font-size: 1.02rem; }
}

/* ---------- 3 Lese-Raster: H2 links (klebt beim Lesen), Text rechts ---------- */
.acs-row { align-items: start; }
@media (min-width: 900px) { .acs-row > .col { position: sticky; top: calc(var(--head-h) + 2rem); } }
.acs-copy { display: grid; gap: 1.25rem; justify-items: start; min-width: 0; max-width: 46rem; }
.acs-copy > p:not([class]) { color: var(--muted); max-width: 36em; }
.acs-copy .lead { color: var(--ink); }

/* ---------- 4 Call-Sheet: Kunde breit, darunter zwei Spalten ---------- */
.acs-sheet { margin-bottom: clamp(3.5rem, 7vw, 5.5rem); }
.acs-sheet .slate { margin-bottom: 1rem; }
@media (min-width: 900px) {
  .acs-sheet .sheet { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 4vw, 3.5rem); }
  .acs-sheet .sheet > div { grid-template-columns: 9.5rem minmax(0, 1fr); }
  .acs-sheet .sheet > .acs-wide { grid-column: 1 / -1; }
}

/* ---------- 5 Botschaften des Kunden + Pointe ---------- */
.acs-msgs { display: grid; gap: 1.5rem; width: 100%; margin-block: 0.5rem; }
@media (min-width: 700px) { .acs-msgs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); } }
.acs-msgs li { display: grid; gap: 0.65rem; align-content: start; padding-top: 1rem; border-top: 2px solid var(--ink); }
.acs-msg-k { font-size: var(--t-small); color: var(--muted); }
.acs-msg-k b { color: var(--ink); font-weight: 700; }
.acs-msg-q { font-size: clamp(1.3rem, 2.1vw, 1.75rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.12; text-wrap: balance; }
.acs-punch { font-size: clamp(1.35rem, 2.2vw, 1.85rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; max-width: 22em; }
.acs-punch .uline { padding-bottom: 0.04em; }

/* ---------- 6 Idee: ein Held, zwei Filme ---------- */
.acs-statement { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -0.025em; line-height: 1.08; max-width: 16em; }
.acs-acts { display: grid; gap: 1.5rem; width: 100%; margin-top: 0.75rem; }
.acs-acts li { display: grid; gap: 0.6rem; align-content: start; padding-top: 1rem; border-top: 1px solid var(--line); }
@media (min-width: 700px) {
  .acs-acts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .acs-acts li:first-child { padding-right: clamp(1.25rem, 3vw, 2.25rem); }
  .acs-acts li + li { padding-left: clamp(1.25rem, 3vw, 2.25rem); border-left: 1px solid var(--line); }
}
.acs-act-k { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); }
.acs-acts p { color: var(--muted); }
.acs-acts .t { color: var(--ink); font-weight: 700; }

/* ---------- 7 Umsetzung + Kontaktabzug (Stills mit Sucherecken beim Hover) ---------- */
.acs-impl { display: grid; gap: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(3rem, 6vw, 4.5rem); border-top: 1px solid var(--line-soft); }
.acs-frames { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 0.75rem; counter-reset: fr; }
.acs-frame:first-child { grid-column: 1 / -1; }
@media (min-width: 860px) {
  .acs-frames { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .acs-frame:first-child { grid-column: auto; }
}
.acs-frame { display: grid; gap: 0.75rem; align-content: start; min-width: 0; counter-increment: fr; }
.acs-frame-media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--petrol-3); isolation: isolate; }
.acs-frame-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.acs-frame:hover .acs-frame-media img { transform: scale(1.03); }
.acs-frame .finder { inset: 7% 4%; opacity: 0; transform: scale(1.1); transition: opacity 140ms var(--ease-in), transform 160ms var(--ease-in); }
.acs-frame:hover .finder { opacity: 1; transform: none; transition: opacity 120ms linear, transform 240ms var(--ease-spring); }
.acs-frame .tag--ai { left: calc(4% + 0.5rem); bottom: calc(7% + 0.5rem); }
.acs-frame-tc {
  position: absolute; z-index: 3; right: calc(4% + 0.5rem); top: calc(7% + 0.5rem);
  padding: 0.25rem 0.45rem; font-size: 0.68rem; color: var(--bone); background: rgba(5, 10, 10, 0.6); white-space: nowrap;
}
@media (max-width: 699px) {
  .acs-frame-tc .f { display: none; }
  .acs-frame:not(:first-child) .acs-frame-tc { display: none; }   /* halbe Breite: Bild vor Deko */
  .acs-frame:not(:first-child) .tag--ai { font-size: 0.6rem; }
}
.acs-frame figcaption { display: flex; gap: 0.7rem; font-size: var(--t-small); line-height: 1.45; color: var(--muted); max-width: 30em; }
.acs-frame figcaption::before { content: counter(fr, decimal-leading-zero); flex: none; padding-top: 0.1em; font-family: var(--f-mono); font-size: 0.72rem; color: var(--accent); }

/* ---------- 8 Ergebnis + Stimme (Sand) ---------- */
.acs-result .lead { color: var(--muted); }
.acs-quote { max-width: 46rem; gap: 1.25rem; }
.acs-quote blockquote p { font-size: clamp(1.25rem, 2.1vw, 1.75rem); font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; }
.acs-quote .uline { padding-bottom: 0.04em; }
.acs-quote figcaption a { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.75rem; font-weight: 700; }

/* ---------- 9 Shotliste (Tiefe, eingeklappt) ---------- */
.sec.acs-end { padding-top: clamp(3rem, 6vw, 4.5rem); }
.acs-sum-meta { margin-left: auto; font-size: 0.7rem; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
@media (max-width: 699px) { .acs-sum-meta .x { display: none; } }
.acs-end .acc-list .acs-shots { max-width: none; gap: 2rem; padding-bottom: 2rem; color: var(--ink); }
@media (min-width: 760px) { .acs-end .acc-list .acs-shots { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem); } }
.acs-shotcol { display: grid; gap: 0.75rem; align-content: start; width: 100%; }
.acs-shotlist { width: 100%; border-top: 1px solid var(--line); }
.acs-shotlist li { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--line-soft); }
.acs-shotlist b { padding-top: 0.12rem; font-size: 0.78rem; font-weight: 500; color: var(--accent); }
.acs-shotlist span { color: var(--muted); }

/* ---------- 10 Abschluss ---------- */
.acs-next { margin-top: clamp(2.5rem, 5vw, 3.75rem); align-items: flex-end; }
/* Anfrage-Knopf, darunter die Leistungszeile (W5). Schmale Basis + Wachstum bis 44rem: „Nächstes Projekt“ bleibt am Desktop
   rechts daneben, bei knapper Breite brechen die beiden Leistungslinks untereinander um statt den Block umzubrechen */
.acs-next-a { display: grid; justify-items: start; gap: 0.85rem; flex: 1 1 20rem; max-width: 44rem; }
.acs-svc-k { width: 100%; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }   /* eigene Zeile über den Links */
.acs-next-b { display: grid; gap: 0.25rem; justify-items: start; }
.acs-next-b .link { min-height: 2.75rem; }
@media (min-width: 900px) { .acs-next-b { justify-items: end; text-align: right; } }
