/* ═══════════════════════════════════════════════════════════════════
   v4-bento.css — additiv, nur für home4.html (body.v4-home)
   Lädt NACH v3.css. Keine Änderung an bestehenden .bento/.b-card/.br-*
   Klassen — die bleiben auf allen anderen Seiten unverändert im Einsatz.
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Hero-Korn: Square-Umbau 23.08.2026 — das Korn-Bild trug den Namen
   "coral-blue" nicht zufällig, es war für den alten Marken-Verlauf
   gemischt. Auf allen anderen Seiten läuft bereits das neutrale
   SVG-Turbulence-Korn (v3.css, --grain) über .g-hero::after/.cta-band::after
   — diese Regel hier ersetzte es NUR für v4-home-Seiten durch das farbige
   Bild. Zurückgestellt auf dasselbe neutrale Korn, damit alle 16 Seiten
   wieder dasselbe zeigen, statt einer Seite ihr eigenes farbiges Korn zu
   lassen. Keine erfundenen Werte: --grain/--grain-size/--grain-op sind die
   bereits bestehenden, überall sonst genutzten Tokens. */
body.v4-home .g-hero::after{
  background-image:var(--grain);background-size:var(--grain-size) var(--grain-size);
  opacity:var(--grain-op);mix-blend-mode:overlay}
body.v4-home .g-toprow{display:none}
@media (min-width:1440px){
  body.v4-home .g-hero:not(.g-hero--compact){min-height:min(88svh,1180px)}
}

/* ─── Bereiche-Karten: Bild oben (Apple-Bento) statt reiner Text/Icon-Karte ─── */
.br-card{padding-top:0}
.br-card .v4-shot{margin:0 0 16px;border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden;
  aspect-ratio:9/8}
.br-card .v4-shot .v4-img{aspect-ratio:9/8}
@media (max-width:1039px){
  /* Bei 2-Spalten-Zwischenbreiten (Bento-Anti-Waisen-Fix, Karte 3 volle Breite)
     sonst wirkt Karte 3 mit demselben Seitenverhältnis gestreckt/anders als 1+2. */
  .br-grid>.br-card:nth-child(3) .v4-shot,
  .br-grid>.br-card:nth-child(3) .v4-shot .v4-img{aspect-ratio:16/7}
}
.br-card .v4-br-ic{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;
  background:#0e0e11;color:#fff;margin-bottom:2px}
.v4-br-ic svg{width:20px;height:20px}
.br-card .v4-br-sub{margin-top:-2px}
.br-card > *:not(.v4-shot){padding-inline:clamp(20px,2.4vw,26px)}
.br-card > .v4-br-ic{margin-left:clamp(20px,2.4vw,26px)}
.br-card .br-foot{padding-bottom:clamp(20px,2.4vw,26px)}
/* v3.css splittet Karte 3 bei 760–1039px in zwei Spalten, damit .br-list die zweite
   Spalte füllt (Anti-Waisen-Fix). Home4 hat kein .br-list mehr — also einspaltig lassen,
   sonst bleibt die zweite Spalte leer. */
@media (min-width:760px) and (max-width:1039px){
  body.v4-home .br-grid>.br-card:nth-child(3){display:flex;flex-direction:column;gap:14px}
}

/* ─── Foto-Bento (Projekte) — 12-Spalten, Licht-Rezept auf Koralle/Blau ─── */
.v4-bento{display:grid;grid-template-columns:1fr;gap:var(--v4-gap,14px);
  margin-top:clamp(28px,4vw,48px)}
@media (min-width:900px){
  .v4-bento{grid-template-columns:repeat(12,1fr)}
  .v4-tile--a{grid-column:span 7}
  .v4-tile--b{grid-column:span 5}
  .v4-tile--c{grid-column:span 12}
}
.v4-tile{overflow:hidden;display:flex;flex-direction:column;
  background:var(--surface);border-radius:var(--r-lg);
  box-shadow:0 1px 1px rgba(0,0,0,.3),0 18px 40px -18px rgba(0,0,0,.55)}

.v4-shot{position:relative;overflow:hidden;isolation:isolate}
.v4-img{display:block;width:100%;height:auto;aspect-ratio:var(--ratio,16/10);
  object-fit:cover;object-position:top center;
  filter:saturate(.86) contrast(.96) brightness(1.04)}
.v4-shot-light{position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;
  background:linear-gradient(168deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.06) 44%,rgba(0,0,0,.22) 100%)}
/* War ein Blau→Koralle-Farbstich auf jedem Foto/Screenshot ("Licht-Rezept
   auf Koralle/Blau", siehe Abschnittstitel unten) — Square zeigt echte,
   ungefärbte Fotografie (Referenz misst keinen Farbstich auf Bildern).
   Entfernt statt neu eingefärbt: kein Ersatzwert erfunden, .v4-shot-light
   (neutraler Glanz) bleibt als einzige Bildveredelung übrig. */
.v4-shot::after{content:none}

/* Browser-Chrome — nur bei Screenshot-Kacheln, nicht bei 3D-Renderings/Fotos.
   macOS-Ampel statt neutraler Punkte: wirkt wie ein echtes Geräte-Fenster,
   nicht wie ein roher Screenshot-Crop. */
.v4-chrome{display:flex;align-items:center;gap:7px;padding:12px 16px;background:var(--surface-2)}
.v4-chrome .dot{width:9px;height:9px;border-radius:50%}
.v4-chrome .dot:nth-child(1){background:#ec6a5e}
.v4-chrome .dot:nth-child(2){background:#f5bd4f}
.v4-chrome .dot:nth-child(3){background:#61c454}
.v4-chrome .url{margin-left:8px;font-size:11px;color:var(--t3);background:var(--surface-3);
  padding:3px 10px;border-radius:var(--r-pill);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.v4-text{padding:var(--v4-pad,clamp(22px,3.8vw,34px));display:flex;flex-direction:column;gap:10px}
.v4-text h3{font-size:clamp(21px,4.6vw,26px);font-weight:600;letter-spacing:-.016em;color:var(--t1)}
.v4-text p{margin:0;font-size:14.5px;line-height:1.55;color:var(--t3);max-width:38ch}
.v4-text .link-arrow{margin-top:4px}

/* Text-only Kachel (Über-mich-Textseite) — kein Bild, gleiche Optik wie .v4-tile */
.v4-tile--text{padding:var(--v4-pad,clamp(20px,3.5vw,30px));justify-content:center;gap:10px}
.v4-tile--text .facts{margin-top:14px}

/* Portrait-Kachel (Über-mich-Foto) */
.v4-shot--portrait .v4-img{aspect-ratio:4/5;object-position:center 18%}

/* ─── Einzelbild-Sektion (Leistungen, Ablauf) — verallgemeinert .statement ─── */
.v4-single{position:relative;overflow:hidden;border-radius:var(--r-hero);
  max-width:calc(var(--wrap) - 2*var(--gutter));margin-inline:auto;
  margin-top:clamp(24px,4.5vw,44px);min-height:clamp(360px,52vw,560px);display:flex;align-items:flex-end;
  box-shadow:0 1px 1px rgba(0,0,0,.3),0 24px 56px -22px rgba(0,0,0,.6);background:var(--ft-bg)}
.v4-single img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.02) brightness(.94)}
.v4-single::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(6,6,8,.74) 0%,rgba(6,6,8,.4) 46%,rgba(6,6,8,.08) 78%)}
.v4-single__in{position:relative;z-index:2;padding:clamp(40px,7vw,88px) clamp(24px,6vw,64px);
  max-width:46ch}
.v4-single__in .eyebrow{color:rgba(255,255,255,.72)}
.v4-single__in h3{font-size:clamp(30px,5.2vw,46px);font-weight:600;letter-spacing:-.02em;
  line-height:1.08;color:#fff;margin:10px 0 0}
.v4-single__in p{margin-top:14px;font-size:clamp(15px,3.8vw,17px);line-height:1.55;color:rgba(255,255,255,.82)}
.v4-single--r{margin-left:auto}
@media (min-width:760px){
  .v4-single--r .v4-single::before{background:linear-gradient(260deg,rgba(6,6,8,.74) 0%,rgba(6,6,8,.4) 46%,rgba(6,6,8,.08) 78%)}
  .v4-single--r .v4-single__in{margin-left:auto}
}
.v4-single .link-arrow{margin-top:6px;color:#fff}

/* Ablauf: kurze Zahlen-Captions unter dem Einzelbild statt drei Textkarten */
.v4-capstrip{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}
@media (min-width:720px){.v4-capstrip{grid-template-columns:repeat(3,1fr)}}
.v4-cap{display:flex;align-items:center;gap:12px;background:var(--surface);
  border-radius:var(--r-lg);padding:14px 16px}
.v4-cap .sn{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;
  border-radius:50%;font-size:13px;font-weight:500;color:#fff;
  background:linear-gradient(140deg,var(--blue),var(--coral-deep))}
.v4-cap p{margin:0;font-size:13.5px;line-height:1.4;color:var(--t2)}
