/* plate_programs – Programm-Detailseite. Gescoped auf .plp-detail. Farben/Fonts
   nur über --lr-*-Tokens (Theme) mit Fallback auf die Referenz-Palette. */
.plp-detail {
  --plp-ivory-deep: var(--lr-ivory-deep, #ECE6DB);
  --plp-bronze: var(--lr-bronze, #B89B6A);
  --plp-bronze-deep: var(--lr-bronze-deep, #9C8255);
  --plp-ink: var(--lr-ink, #2D2D2D);
  --plp-ink-soft: rgba(45, 45, 45, .70);
  --plp-line: var(--lr-line, rgba(45, 45, 45, .14));
  --plp-font-display: var(--lr-font-display, "Cormorant Garamond", Georgia, serif);
  /* Inhaltsbreite = die des generischen .frame-container. Das Partial rendert
     auch in Theme-Templates ohne eigenes Container-Markup, muss die Frame-Box
     also selbst nachbilden — mit denselben Quellen, damit die linke Kante mit
     dem uebrigen Seiteninhalt und dem Seitenkopf fluchtet. Fallbacks fuer
     Installationen ohne plate_bootstrap. Eine EIGENE Breite hier waere eine
     zweite Breitenquelle (harte Regel im Workspace).
     Zeilenlaengen gehoeren an die Text-Bloecke (rem/ch), nicht hierher. */
  max-width: var(--frame-width-xxl, 1380px);
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 3.5rem) var(--bs-gap-default, 1.5rem) clamp(3rem, 7vw, 6rem);
}

/* ---------- Kopf: FALLBACK, nicht Regelfall ----------------------------------
   Rendert ausschliesslich, wenn der Aufrufer `showHead=1` uebergibt — also auf
   Installationen OHNE eigenen Theme-Seitenkopf. Wo ein Theme seinen Kopf selbst
   liefert (`showHead=0`), existiert dieses Markup gar nicht; die Regeln hier
   duerfen deshalb NIE gegen einen Theme-Kopf arbeiten.
   Er ist bewusst KEIN randabfallender Medien-Hero — dafuer gibt es den
   generischen Vertrag `pl-pagehero` (EXT:plate_partials/.../Organisms/PageHero) —,
   sondern ein Kopf INNERHALB der Inhaltsbreite:
     - KEINE eigene Inhaltsbreite / kein Seiten-Padding (zweite Breitenquelle);
       die Box liefert das Wurzel-Element als Nachbildung des .frame-container,
     - KEINE Heading-Typo (font-family/-size an h*) — die gehoert dem Theme bzw.
       den plate_bootstrap-Settings-Slots (h1-font-size …).
   ---------------------------------------------------------------------------- */
.plp-detail__head { max-width: 60rem; margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.plp-detail__eyebrow {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .74rem;
  color: var(--plp-bronze-deep);
  margin-bottom: .8rem;
}
.plp-detail__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0; }
.plp-detail__tag {
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--plp-bronze-deep);
  border: 1px solid var(--plp-line);
  border-radius: 999px;
  padding: .25rem .7rem;
}
.plp-detail__facts { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin: 1rem 0; }
.plp-detail__fact {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .78rem;
  font-weight: 600;
  color: var(--plp-ink);
}
.plp-detail__fact--price { color: var(--plp-bronze-deep); }
.plp-detail__lede { font-size: 1.05rem; color: var(--plp-ink-soft); max-width: 54ch; }
.plp-detail__description { max-width: 60rem; margin: 2rem 0; }
.plp-detail__section-title {
  font-family: var(--plp-font-display);
  margin-bottom: 1.4rem;
}

/* Galerie */
.plp-detail__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 1rem;
  margin: 2.4rem 0;
}
.plp-detail__gallery-item { margin: 0; }
.plp-detail__gallery-item img { width: 100%; height: 100%; object-fit: cover; }

/* Journey-Timeline (Vorlage: .journey-step) */
.plp-detail__journey { margin: clamp(2.5rem, 6vw, 4.5rem) 0; }
.plp-journey { display: grid; gap: 0; }
.plp-journey__step {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: clamp(1rem, 4vw, 3rem);
  padding: clamp(1.4rem, 3vw, 2.4rem) 0;
  border-top: 1px solid var(--plp-line);
}
.plp-journey__step:last-child { border-bottom: 1px solid var(--plp-line); }
.plp-journey__day {
  font-family: var(--plp-font-display);
  font-style: italic;
  font-size: 1.5rem;
  color: var(--plp-bronze);
}
.plp-journey__text { color: var(--plp-ink-soft); font-size: .95rem; }
@media (max-width: 640px) { .plp-journey__step { grid-template-columns: 1fr; gap: .5rem; } }

/* Includes-Grid (Vorlage: .cap-grid) */
.plp-detail__includes { margin: clamp(2.5rem, 6vw, 4.5rem) 0; }
.plp-includes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--plp-line);
}
.plp-includes__item {
  padding: clamp(1.6rem, 3vw, 2.6rem);
  border-right: 1px solid var(--plp-line);
  border-bottom: 1px solid var(--plp-line);
}
.plp-includes__item:nth-child(3n) { border-right: 0; }
.plp-includes__idx {
  font-family: var(--plp-font-display);
  font-style: italic;
  font-size: 1.25rem;
  color: var(--plp-bronze);
  margin-bottom: 1rem;
}
.plp-includes__text { color: var(--plp-ink-soft); font-size: .92rem; }
@media (max-width: 820px) {
  .plp-includes { grid-template-columns: 1fr 1fr; }
  .plp-includes__item:nth-child(3n) { border-right: 1px solid var(--plp-line); }
  .plp-includes__item:nth-child(2n) { border-right: 0; }
}
@media (max-width: 520px) {
  .plp-includes { grid-template-columns: 1fr; }
  .plp-includes__item { border-right: 0 !important; }
}

/* Verwandte Resorts/Experten */
.plp-detail__related { margin: 2.4rem 0; }
.plp-related { display: flex; flex-wrap: wrap; gap: .6rem 1rem; list-style: none; padding: 0; margin: 0; }
.plp-related__item a {
  display: inline-block;
  padding: .5rem 1rem;
  border: 1px solid var(--plp-line);
  border-radius: 999px;
  text-decoration: none;
  color: var(--plp-ink);
}
.plp-related__item a:hover { border-color: var(--plp-bronze); color: var(--plp-bronze-deep); }

/* Enquire-CTA */
.plp-detail__cta { margin: clamp(2.5rem, 6vw, 4rem) 0 1rem; }
.plp-detail__cta-btn {
  display: inline-block;
  padding: .9rem 2rem;
  background: var(--plp-ink);
  color: var(--lr-on-dark, #EFEAE0);
  text-decoration: none;
  letter-spacing: .04em;
  transition: background-color .4s ease;
}
.plp-detail__cta-btn:hover { background: var(--plp-bronze-deep); }
