/* Leistungsseiten /film/…/ — helle Version. Lädt nach site.css. */
.page { padding-bottom: var(--sec); }
.crumbs { padding-top: 28px; font-size: 13px; color: var(--ink-soft); }
.crumbs a { text-decoration: none; display: inline-block; padding-block: 10px; }
.crumbs a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.page .hero { all: unset; display: block; padding-block: 24px 56px; }
.page h1 { font-size: clamp(36px, 5vw, 60px); font-weight: 800; line-height: 1.1; }
.page h1::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 22px; background: var(--gold); }
.page .sub { margin-top: 22px; font-size: 18px; font-weight: 600; }
.page .lead { margin-top: 10px; max-width: 62ch; font-size: 17px; color: var(--ink-soft); }
.page .price { display: inline-block; margin-top: 22px; padding: 10px 16px; border: 1px solid var(--ink); font-size: 15px; font-weight: 600; }
.page .cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.page .btn-primary { background: var(--ink); color: var(--on-dark); }
.page .btn:not(.btn-primary) { background: transparent; color: var(--ink); }
.page .btn:not(.btn-primary):hover { background: var(--ink); color: var(--on-dark); }
.media { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); align-items: start; margin-block: 8px 56px; }
.media figure { margin: 0; }
.media video, .media img { width: 100%; background: var(--ink); }
.media .v video { aspect-ratio: 9 / 16; object-fit: cover; max-height: 78vh; }
.media .h video { aspect-ratio: 16 / 9; object-fit: cover; }
.media.h2 { grid-template-columns: 2fr 1fr; }
.media figcaption { margin-top: 10px; font-size: 14px; color: var(--ink-soft); }
.media figcaption b { color: var(--ink); font-weight: 600; }
.gallery { display: grid; gap: 6px; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); margin-block: 8px 56px; }
.gallery img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.page .sec { padding-block: 44px; border-top: 1px solid var(--line); }
.page .sec h2 { font-size: clamp(22px, 2.2vw, 28px); font-weight: 700; margin-bottom: 16px; }
.page .sec p { max-width: 70ch; margin: 0 0 14px; color: var(--ink-soft); }
.page .sec ul { max-width: 70ch; padding-left: 1.2em; margin: 0 0 14px; color: var(--ink-soft); }
.checks { list-style: none; padding: 0 !important; display: grid; gap: 8px; }
.checks li { position: relative; padding-left: 22px; color: var(--ink); }
.checks li::before { content: ""; position: absolute; left: 0; top: 0.8em; width: 10px; height: 2px; background: var(--gold); }
.page details { border-bottom: 1px solid var(--line); }
.page summary { cursor: pointer; font-weight: 600; min-height: 56px; display: flex; align-items: center; }
.more { display: flex; flex-wrap: wrap; gap: 10px; }
.more a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--ink); text-decoration: none; font-size: 14px; transition: background-color 200ms ease, color 200ms ease; }
.more a:hover { background: var(--ink); color: var(--on-dark); }
.box { margin-top: 56px; padding: clamp(28px, 4vw, 48px); background: var(--bg-soft); }
.box h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 700; }
.box h2::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 16px; background: var(--gold); }
.box p { margin-top: 16px; max-width: 60ch; color: var(--ink-soft); }
@media (max-width: 760px) { .media.h2 { grid-template-columns: 1fr; } .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } .page .cta .btn { flex: 1 1 100%; } }
.page .hero::after { content: none; }
.page h1 { text-transform: none; color: var(--ink); }
.page .hero { color: var(--ink); }

/* ===== Ordnung Unterseiten (19.10.2026) ===== */
/* Liste: site.css setzt .checks li als 2-Spalten-Raster für Icons -> hier zurücksetzen */
.page .checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; max-width: none; margin: 0; counter-reset: c; }
.page .checks li { display: block; position: relative; padding: 18px 0 18px 44px; border-top: 1px solid var(--line); color: var(--ink); font-size: 16px; line-height: 1.5; counter-increment: c; }
.page .checks li::before { content: counter(c, decimal-leading-zero); position: absolute; left: 0; top: 19px; width: auto; height: auto; background: none; color: var(--gold); font-size: 13px; font-weight: 600; letter-spacing: .04em; }

/* Abschnitte: Überschrift links, Inhalt rechts */
.page .sec { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(32px, 5vw, 80px); padding-block: 64px; }
.page .sec > h2 { grid-column: 1; grid-row: 1 / span 12; margin: 0; align-self: start; line-height: 1.2; }
.page .sec > :not(h2) { grid-column: 2; }
.page .sec p { max-width: 64ch; font-size: 16.5px; line-height: 1.7; }
.page .sec p:last-child { margin-bottom: 0; }

/* Hero: Titel links, Text rechts unten */
.page .hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(32px, 5vw, 80px); align-items: end; padding-block: 24px 64px; }
.page .hero > h1 { grid-column: 1; grid-row: 1 / span 5; align-self: start; }
.page .hero > :not(h1) { grid-column: 2; }
.page .hero .sub { margin-top: 0; }

/* Videos */
.media { gap: 16px; margin-block: 0 24px; }
.media.h2 { grid-template-columns: 3fr 1fr; }
.media.h2 .v video { max-height: none; }
.media.mix { grid-template-columns: 1.6fr 1fr; grid-template-rows: auto auto; }
.media.mix .h:nth-child(1) { grid-column: 1; grid-row: 1; }
.media.mix .h:nth-child(2) { grid-column: 1; grid-row: 2; }
.media.mix .v { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; height: 100%; }
.media.mix .v video { flex: 1; min-height: 0; height: 100%; max-height: none; aspect-ratio: auto; }
.media.mix figcaption, .media figcaption { margin-top: 8px; }
.gallery { margin-block: 0 24px; }

/* FAQ mit Plus */
.page summary { list-style: none; justify-content: space-between; gap: 16px; }
.page summary::-webkit-details-marker { display: none; }
.page summary::after { content: "+"; color: var(--gold); font-size: 22px; font-weight: 400; transition: transform 200ms ease; }
.page details[open] summary::after { transform: rotate(45deg); }
.page details:first-of-type { border-top: 1px solid var(--line); }
.page details p { padding-bottom: 8px; }

@media (max-width: 860px) {
  .page .sec, .page .hero { grid-template-columns: 1fr; }
  .page .sec > h2, .page .hero > h1 { grid-row: auto; }
  .page .sec > h2 { margin-bottom: 20px; }
  .page .hero > :not(h1), .page .sec > :not(h2) { grid-column: 1; }
  .page .hero .sub { margin-top: 22px; }
  .page .sec { padding-block: 44px; }
  .page .checks { grid-template-columns: 1fr; }
  .media.mix { grid-template-columns: 1fr; }
  .media.mix .h:nth-child(2), .media.mix .v { grid-column: 1; grid-row: auto; }
  .media.mix .v video { aspect-ratio: 9 / 16; max-height: 78vh; }
  .media.h2 { grid-template-columns: 1fr; }
}
