/* ==========================================================
   PROJEKT-DETAILANSICHT (gemeinsam für work.html und work-slider.html)
   Klick auf ein Projektbild: Das Bild wächst fliessend auf die volle
   Breite, darunter Titel, Kunde, Leistung und Text.
   Skript: projekt-detail.js
   ========================================================== */

/* Während der Zoom-Übergang läuft, fliegt eine Kopie – das Original wartet */
.ist-unterwegs-quelle {
  visibility: hidden !important;
}

.sl-detail {
  --sl-weich: cubic-bezier(0.22, 0.61, 0.12, 1);   /* ruhige, weiche Bewegung */
  --sl-links: calc(var(--logo-abstand) + var(--logo-hoch) + var(--rand));
  position: fixed;
  inset: 0;
  z-index: 50;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--weiss);
  opacity: 0;
  transition: opacity 0.6s var(--sl-weich);
}

.sl-detail[hidden] {
  display: none;
}

.sl-detail.ist-offen {
  opacity: 1;
}

.sl-detail:focus {
  outline: none;
}

.sl-detail__bild {
  height: 82vh;
  overflow: hidden;
  background: var(--hell);
}

.sl-detail__bild img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* solange die Kopie noch fliegt, ist das Zielbild unsichtbar */
.sl-detail.ist-unterwegs .sl-detail__bild {
  visibility: hidden;
}

/* Inhalt: gleiches Raster wie "who we are." – Titel links, Text rechts */
.sl-detail__inhalt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: var(--text-abstand);
  padding: clamp(4rem, 8vw, 7rem) var(--seite-rand) clamp(5rem, 10vw, 9rem);
  padding-left: var(--sl-links);
  opacity: 0;
  transform: translateY(1.5rem);
  transition:
    opacity 0.7s var(--sl-weich) 0.2s,
    transform 0.9s var(--sl-weich) 0.2s;
}

.sl-detail.ist-offen:not(.ist-unterwegs) .sl-detail__inhalt {
  opacity: 1;
  transform: none;
}

.sl-detail__inhalt .headline {
  margin: 0;
}

.sl-detail__text {
  max-width: var(--text-breite);
  padding-top: 0.4em;
}

.sl-fakten {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem clamp(2.5rem, 5vw, 4.5rem);
  margin: 0 0 2.75rem;
}

.sl-fakten dt {
  margin-bottom: 0.7rem;
  font-size: var(--body-2);
  font-weight: 600;              /* Kunde / Leistung fett */
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.sl-fakten dd {
  margin: 0;
  font-size: var(--body-1);
  font-weight: 600;
  line-height: 1.5;
}

.sl-detail__text p {
  margin: 0;
  font-family: var(--font-lead);
  font-stretch: normal;
  font-size: var(--lead);
  line-height: var(--lead-zeile);
}

/* Zurück-Pfeil oben links (an der Stelle des kleinen Logos) */
.sl-zurueck {
  position: fixed;
  top: var(--logo-abstand);
  left: var(--logo-abstand);
  z-index: 52;
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--weiss);
  color: var(--black-sea);
  box-shadow: 0 6px 24px rgba(50, 46, 50, 0.12);
  cursor: var(--zeiger-link);
  transition: color 0.25s ease, transform 0.4s var(--sl-weich);
}

.sl-zurueck:focus-visible {
  outline: 2px solid var(--blueberry);
  outline-offset: 3px;
}

.sl-zurueck:hover {
  color: var(--blueberry);
  transform: translateX(-3px);
}

.sl-zurueck svg {
  width: 1.4rem;
  height: 1.4rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* Die fliegende Bildkopie beim Zoom-Übergang */
.sl-flieger {
  position: fixed;
  z-index: 60;
  overflow: hidden;
  pointer-events: none;
}

.sl-flieger img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- Bildergalerie unter dem Text ----------
   Versetztes Raster (12 Spalten) nach Deboras Vorlage:
   1 klein links (unten bündig) · 2 gross rechts
   3 hoch in der Mitte · 4 klein rechts (oben bündig)
   Die Bilder behalten ihr echtes Format (kein Beschnitt), die Plätze
   geben nur die Breite und die Ausrichtung vor. */
.sl-galerie {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.75rem);
  padding: 0 var(--seite-rand) clamp(5rem, 10vw, 9rem);
  opacity: 0;
  transition: opacity 0.8s var(--sl-weich) 0.35s;
}

.sl-galerie[hidden] {
  display: none;
}

.sl-detail.ist-offen:not(.ist-unterwegs) .sl-galerie {
  opacity: 1;
}

.sl-detail.ist-wechsel .sl-galerie {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.sl-galerie figure {
  margin: 0;
}

/* Bilder immer im echten Format – nichts wird abgeschnitten.
   Dadurch ist jede Galerie anders hoch und versetzt, nie starr gleich. */
.sl-galerie img {
  display: block;
  width: 100%;
  height: auto;
}

.sl-galerie figure:nth-child(1) { grid-column: 1 / 5;  grid-row: 1; align-self: end; }
.sl-galerie figure:nth-child(2) { grid-column: 5 / 13; grid-row: 1; }
.sl-galerie figure:nth-child(3) { grid-column: 5 / 10; grid-row: 2; }
.sl-galerie figure:nth-child(4) { grid-column: 10 / 13; grid-row: 2; align-self: start; }

/* Bilder 5–8: zweite, versetzte Gruppe (nach Deboras Vorlage)
   5 hoch links · 6 mittig (vertikal zentriert) · 7 klein rechts (unten bündig)
   8 breit, leicht nach rechts versetzt */
.sl-galerie figure:nth-child(5) { grid-column: 1 / 6;  grid-row: 3; }
.sl-galerie figure:nth-child(6) { grid-column: 6 / 10; grid-row: 3; align-self: center; }
.sl-galerie figure:nth-child(7) { grid-column: 10 / 13; grid-row: 3; align-self: end; }
.sl-galerie figure:nth-child(8) { grid-column: 4 / 11; grid-row: 4; }

/* noch mehr Bilder: zu zweit darunter */
.sl-galerie figure:nth-child(n+9) { grid-column: span 6; }



/* Illustrations-Ausschnitte und Drucksachen (class="ganz"): nie höher als
   ein Bildschirm, damit schmale, hohe Motive nicht riesig werden */
.sl-galerie img.ganz {
  width: auto;
  max-width: 100%;
  max-height: 80vh;
  margin-inline: auto;
}

/* ---------- Galerie "paare" (z. B. Mirai) ----------
   Immer zwei Bilder nebeneinander, Reihe für Reihe – aber jede Reihe
   leicht anders breit, versetzt und ausgerichtet, damit der äussere
   Rand lebendig wirkt (nach Deboras Vorlagen). Die Regeln überschreiben
   das Standard-Raster oben. */
.sl-galerie[data-anordnung="paare"] figure {
  grid-row: auto;
  align-self: start;
}

.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+1)  { grid-column: 2 / 6;  align-self: center; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+2)  { grid-column: 6 / 13; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+3)  { grid-column: 1 / 8; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+4)  { grid-column: 8 / 12; align-self: center; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+5)  { grid-column: 2 / 8;  align-self: end; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+6)  { grid-column: 8 / 12; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+7)  { grid-column: 1 / 7; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+8)  { grid-column: 7 / 11; align-self: center; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+9)  { grid-column: 3 / 8; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+10) { grid-column: 8 / 12; align-self: end; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+11) { grid-column: 2 / 6; }
.sl-galerie[data-anordnung="paare"] figure:nth-child(12n+12) { grid-column: 6 / 13; align-self: center; }

/* ---------- Galerie "cartell" (nach Deboras Vorlage) ----------
   Bar links, Logo rechts · Untersetzer und Tüte links übereinander, Tasche
   rechts daneben über beide Reihen · Stechschild breit unten */
.sl-galerie[data-anordnung="cartell"] figure { align-self: start; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(1) { grid-column: 1 / 6;  grid-row: 1; align-self: center; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(2) { grid-column: 6 / 13; grid-row: 1; align-self: center; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(3) { grid-column: 1 / 7;  grid-row: 2; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(4) { grid-column: 7 / 13; grid-row: 2 / 4; align-self: stretch; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(5) { grid-column: 1 / 7;  grid-row: 3; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(6) { grid-column: 1 / 13; grid-row: 4; }
.sl-galerie[data-anordnung="cartell"] figure:nth-child(4) img { height: 100%; object-fit: cover; }

/* ---------- Mit Navigation (work.html) ---------- */

/* Menü oben auf weissem Streifen – das Bild beginnt darunter */
.sl-detail.mit-navigation {
  padding-top: calc(var(--logo-abstand) * 2 + 1.25rem);
}

.sl-detail .menue--detail {
  position: absolute;
  top: var(--logo-abstand);
  right: var(--seite-rand);
}

/* Fusszeile am Ende der Detailansicht */
.sl-detail .fusszeile--detail {
  opacity: 0;
  transition: opacity 0.8s var(--sl-weich) 0.35s;
}

.sl-detail.ist-offen:not(.ist-unterwegs) .fusszeile--detail {
  opacity: 1;
}

.sl-detail .fusszeile--detail .fusszeile__oben::before {
  clip-path: none;
}

/* Galerie braucht unten weniger Abstand, weil die Fusszeile folgt */
.sl-detail.mit-navigation .sl-galerie {
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

/* kein weisser Pfeil oben links */
.sl-detail.mit-navigation .sl-zurueck {
  display: none;
}

/* Blätter-Leiste unter dem Bild: Pfeil links, Übersicht, Pfeil rechts */
.sl-blaettern {
  display: none;
}

.sl-detail.mit-navigation .sl-blaettern {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.75rem var(--seite-rand) 0;
}

.sl-blaettern button {
  padding: 0;
  border: 0;
  background: none;
  cursor: var(--zeiger-link);
}

/* feine, schlanke orange Pfeile (lang) */
.sl-blaettern__pfeil {
  display: block;
  width: 7rem;
  aspect-ratio: 7 / 1;
  color: var(--cherry);
  transition: transform 0.5s var(--sl-weich);
}

.sl-blaettern__pfeil svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.sl-blaettern__vor:hover {
  transform: translateX(-2.5rem);    /* grosse Bewegung nach links */
}

.sl-blaettern__nach:hover {
  transform: translateX(2.5rem);     /* grosse Bewegung nach rechts */
}

/* "zurück zur übersicht" – wie die Menüpunkte */
.sl-blaettern__uebersicht {
  color: var(--black-sea);
  font-family: var(--font-headline);
  font-stretch: condensed;
  font-weight: 600;
  font-size: var(--body-1);
  text-transform: lowercase;
  transition: color 0.25s ease;
}

.sl-blaettern__uebersicht:hover {
  color: var(--blueberry);
}

.sl-blaettern button:focus-visible {
  outline: 2px solid var(--blueberry);
  outline-offset: 4px;
}

/* Wechsel zum nächsten Projekt: Bild und Text blenden kurz aus und wieder ein */
.sl-detail__bild img {
  transition: opacity 0.35s ease;
}

.sl-detail.ist-wechsel .sl-detail__bild img,
.sl-detail.ist-wechsel .sl-detail__inhalt {
  opacity: 0;
  transition: opacity 0.3s ease;
}

/* Projektbilder, die sich öffnen lassen */
.ist-oeffenbar {
  cursor: var(--zeiger-link);
}

.ist-oeffenbar:focus-visible {
  outline: 2px solid var(--blueberry);
  outline-offset: 4px;
}

/* ---------- Handy ---------- */
@media (max-width: 760px) {
  .sl-detail__bild {
    height: auto;
  }

  .sl-detail__bild img {
    height: auto;
  }

  /* Handy: Galerie untereinander, Bilder vollständig */
  .sl-galerie {
    display: flex;
    flex-direction: column;
  }

  .sl-galerie img {
    height: auto;
  }

  .sl-detail__inhalt {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 2rem;
    padding-left: var(--rand);
  }

  .sl-zurueck {
    top: 1rem;
    left: 1rem;
  }

  /* Handy: oben Platz für die drei Striche (Klappmenü, style.css) */
  .sl-detail.mit-navigation {
    padding-top: calc(var(--rand) * 2 + 44px);
  }

  .sl-detail .menue--detail {
    position: static;
    margin: 1.25rem var(--rand) 1.25rem;
  }

  .sl-detail.mit-navigation .sl-blaettern {
    padding-left: var(--rand);
  }

  .sl-blaettern__pfeil {
    width: 4.5rem;
  }
}

/* ---------- "Bewegung reduzieren": keine Animationen ---------- */
@media (prefers-reduced-motion: reduce) {
  .sl-detail,
  .sl-detail__inhalt,
  .sl-detail__bild img,
  .sl-galerie,
  .sl-zurueck,
  .sl-blaettern__pfeil {
    transition: none !important;
  }
}
