/*
Theme Name: SWAN Child Theme
Template:   twentytwentyfive
Version:    1.0.0
*/

/* ================================================================
   Global: Automatische Worttrennung
   ================================================================ */

:root {
  -webkit-hyphens: auto;
  hyphens: auto;
}

/* ================================================================
   SWAN Event – Übersicht [swan_events]
   ================================================================ */

.swan-events-wrap {
  width: 100%;
  overflow: hidden;
}

/* Slider */
.swan-events-slider {
  position: relative;
  margin-bottom: 60px;
  padding-bottom: 24px;
}

.swan-events-slider__track-wrap {
  overflow: hidden;
  width: 100%;
}

.swan-events-slider__track {
  display: flex;
  gap: 28px;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  padding: 12px 2px;
  box-sizing: border-box;
}

.swan-events-slider__track .swan-event-card {
  flex: 0 0 calc(50% - 14px);
  min-width: 0;
  box-sizing: border-box;
}

/* Nav-Pfeile */
.swan-events-slider__nav {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
}

.swan-events-slider__btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid #1a3a6b;
  background: transparent;
  color: #1a3a6b;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s;
  line-height: 1;
}

.swan-events-slider__btn:hover:not(:disabled) {
  background: #1a3a6b;
  color: #fff;
}

.swan-events-slider__btn:disabled {
  opacity: 0.25;
  cursor: default;
}

.swan-events-past-heading {
  font-size: 19.7444px !important;
  font-weight: 300 !important;
  color: #003D70 !important;
  letter-spacing: 1px !important;
  line-height: 22.2125px !important;
  text-transform: none !important;
  text-align: center;
  margin-bottom: 24px;
}

.swan-events-slider--past .swan-event-card {
  opacity: 0.65;
}

/* Event-Karte */
.swan-event-card {
  border-radius: 20px;
  overflow: hidden;
  background: transparent;
  border: 2px solid #1a3a6b;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  margin: 12px 0 24px;
}

.swan-event-card:hover {
  transform: none;
  box-shadow: none;
}

.swan-event-card__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: #003D70;
  font-family: inherit;
  font-size: inherit;
}

/* Vergangen-Badge */
.swan-event-card__past-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 4px;
  color: rgba(255,255,255,0.75);
  background: rgba(0,0,0,0.25);
  margin-bottom: 8px;
}

/* Karten-Body */
.swan-event-card__body {
  padding: 40px 44px 44px;
  display: flex;
  flex-direction: column;
  flex: 1;
  background: transparent;
}

/* Titel → H2, erbt Theme-Styles */
.swan-event-card__title {
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 24px;
  color: #003D70;
  text-align: center;
}

/* Datum + Ort → H5, auf einer Linie */
.swan-event-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 20px;
}

.swan-event-card__meta-datum,
.swan-event-card__meta-ort {
  font-weight: 700;
  color: #003D70;
  margin: 0;
}

.swan-event-card__meta-ort {
  text-align: right;
}

/* Teaser → p, exakt wie Fliesstext der Site */
.swan-event-card__teaser {
  font-family: inherit;
  font-size: 16.98px !important;
  font-weight: 400 !important;
  line-height: 1.625;
  color: #003D70;
  margin: 0 0 auto;
  padding-bottom: 32px;
}

.swan-event-card__subtitle { display: none; }
.swan-event-card__prices   { display: none; }
.swan-event-card__meta-item { display: none; }

/* «Mehr →» – keine Linie */
.swan-event-card__more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-weight: 600;
  color: #1a3a6b;
  text-decoration: none;
}

/* ================================================================
   SWAN Event – Einzelansicht + Shortcode-Bausteine
   Textfarbe: keine color-Regeln → wie Rest der Seite aus theme.json /
   .entry-content. Grösse: .wp-block-heading, .has-*-font-size im Markup.
   Nur Layout (Abstände, Grid, Hero-Overlay). Ausnahme: Hero-Badge (Preset-Farben).
   ================================================================ */

/* Volle Spaltenbreite: Flex/Grid-Spalten sonst min-content = intrinsische Bildbreite */
.swan-event-single {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.wp-block-column .swan-event-single,
.wp-block-stackable-column .swan-event-single,
.wp-block-stackable-column .stk-column-wrapper .swan-event-single {
  min-width: 0;
  max-width: 100%;
}

/*
 * Volle Spaltenbreite für Event-Bausteine (Bild 2: schmale „Programm“-Spalte).
 * Core-Gruppe „Die inneren Blöcke verwenden die Breite des Inhalts“ setzt auf
 * direkte Kinder max-width: var(--wp--style--global--content-size) — das wirkt
 * wie eine feste Textspalte, obwohl die Spalte breiter ist.
 */
.single-swan_event .wp-block-columns .wp-block-column,
.single-swan_event .wp-block-stackable-columns .stk-block-column,
.single-swan_event .wp-block-stackable-column {
  min-width: 0;
}

.single-swan_event .wp-block-columns .wp-block-column .is-layout-constrained > *,
.single-swan_event .wp-block-stackable-column .is-layout-constrained > *,
.single-swan_event .stk-column-wrapper .is-layout-constrained > * {
  max-width: 100% !important;
  width: 100%;
  box-sizing: border-box;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Site-Editor-Vorschau */
.editor-styles-wrapper .wp-block-column .is-layout-constrained > *,
.editor-styles-wrapper .wp-block-stackable-column .is-layout-constrained > * {
  max-width: 100% !important;
  width: 100%;
  box-sizing: border-box;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Hero — Höhe nur aus Breite × aspect-ratio (nicht aus Bild-Intrinsic), damit past/upcoming gleich wirken */
.swan-event-hero {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  aspect-ratio: 16 / 6;
  background: color-mix(in srgb, var(--wp--preset--color--base) 55%, var(--wp--preset--color--lightest));
  overflow: hidden;
  margin-bottom: 40px;
  border-radius: 4px;
}

.swan-event-hero__img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: cover;
  display: block;
}

.swan-event-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.05) 60%, transparent 100%);
  display: flex;
  align-items: flex-end;
  padding: 28px 32px;
}

.swan-event-hero__badge {
  display: inline-block;
  background: color-mix(in srgb, var(--wp--preset--color--lightest) 22%, transparent);
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--lightest) 40%, transparent);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 2px;
  backdrop-filter: blur(6px);
}

/* Zurück-Link — wie andere Links (kein eigenes color) */
.swan-event-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--wp--preset--font-size--small);
  text-decoration: none;
  margin-bottom: 28px;
}

/*
 * Vergangen-Hinweis: zentriert, kein Hintergrund.
 * Schriftfarbe = theme.json Standard-Text (tertiary / Primärblau #003d70).
 */
.swan-event-past-banner {
  text-align: center;
  margin: 0 0 32px;
  padding: 0;
  font-weight: 600;
  color: var(--wp--preset--color--tertiary, #003d70) !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0;
  border-radius: 0;
  box-shadow: none !important;
}

/*
 * Vergangenes Event: längerer Hinweis in Handschrift — Zeilenumbruch erlauben
 * (theme.json setzt sonst white-space: nowrap auf .header-handschrift / .swan-handschrift-text).
 */
body.single-swan_event.swan-event--past .header-handschrift,
body.single-swan_event.swan-event--past p.header-handschrift,
body.single-swan_event.swan-event--past .swan-handschrift-text {
  white-space: normal !important;
  max-width: min(92vw, 36rem);
  hyphens: auto;
  -webkit-hyphens: auto;
}

body.single-swan_event.swan-event--past .header-handschrift,
body.single-swan_event.swan-event--past p.header-handschrift {
  font-size: clamp(1.55rem, 3.4vw, 2.65rem) !important;
}

body.single-swan_event.swan-event--past .swan-handschrift-text {
  font-size: clamp(1.45rem, 3.2vw, 2.45rem) !important;
  font-weight: 400 !important;
}

/* Doppelter Hinweis vermeiden: H3-Banner ausblenden, wenn Handschrift-Platz existiert */
body.single-swan_event.swan-event--past:has(.header-handschrift-wrap) .swan-event-past-banner,
body.single-swan_event.swan-event--past:has(.swan-handschrift-wrap) .swan-event-past-banner {
  display: none !important;
}

/* Header — Typo kommt von theme.json + .wp-block-heading / .has-*-font-size */
.swan-event-header {
  margin-bottom: 36px;
}

/* Datum als H3, linksbündig */
.swan-event-header__date {
  text-align: left;
  margin: 0 0 1rem;
  max-width: 100%;
}

.swan-event-zeit,
.swan-event-ort {
  line-height: 1.5;
  margin: 0 0 12px;
}

.swan-event-header__title {
  margin: 0 0 10px;
}

.swan-event-header__subtitle {
  margin: 0 0 20px;
  line-height: 1.5;
}

.swan-event-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: var(--wp--preset--font-size--small);
}

.swan-event-header__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.swan-event-header__meta-item svg {
  flex-shrink: 0;
  opacity: 0.65;
}

/* Abschnitt-Titel — Grösse über .has-small-font-size (theme.json) */
.swan-event-section-title,
.swan-event-eventfrog__title {
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.swan-event-teaser {
  line-height: 1.7;
  margin-bottom: 36px;
}

.swan-event-beschreibung {
  line-height: 1.75;
  margin-bottom: 48px;
}

/* Programm */
.swan-event-programm {
  margin-bottom: 52px;
}

.swan-event-programm__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.swan-event-programm__item {
  display: block;
  padding: 13px 0;
  font-size: var(--wp--preset--font-size--medium);
  line-height: 1.5;
}

/* Ein Feld = eine Fließzeile; schmale Viewports umbrechen natürlich */
.swan-event-programm__line {
  display: block;
  word-break: break-word;
  font-variant-numeric: tabular-nums;
}

/* Speakers — Karten wie „Über uns“ (theme.json: .swan-team-card*, .swan-team-grid) */
.swan-event-speakers {
  margin-bottom: 52px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.swan-event-speakers .swan-team-grid {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Gutenberg: leere <p> im Grid werden sonst als zweites Spalten-Item gerendert und „fressen“ Breite/Höhe */
.swan-event-speakers .swan-team-grid > p {
  display: none;
}

.swan-event-speakers .swan-team-card {
  min-width: 0;
  max-width: 100%;
  position: relative;
  isolation: isolate;
}

/*
 * Vorschau: 2 Zeilen Bio unter Name/Rolle.
 * Als <div>, damit theme-/Block-Styles für p { display:block } nicht -webkit-box kaputtmachen.
 */
.swan-event-speakers .swan-team-card__preview {
  margin: 10px 0 0;
  padding: 0;
  color: #c8c2d0;
  font-size: 0.85rem;
  line-height: 1.5;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  word-break: break-word;
  max-width: 100%;
}

.swan-event-speakers .swan-team-card__image {
  z-index: 0;
}

.swan-event-speakers .swan-team-card__overlay {
  z-index: 1;
}

/*
 * theme.json: .swan-team-card__hover { max-height:0 } und :hover { max-height:200px }
 * — überdeckt unsere Full-Card-Lösung und quetscht Text + LinkedIn. Mit !important neutralisieren.
 */
.swan-event-speakers .swan-team-card .swan-team-card__hover {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 4 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 22px 24px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  /* wie Unterbereich der Karte (theme: #121929), nicht Primärblau */
  background: #121929 !important;
  color: #fffffa !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.28s ease, visibility 0.28s ease !important;
}

.swan-event-speakers .swan-team-card:hover .swan-team-card__hover,
.swan-event-speakers .swan-team-card:focus-within .swan-team-card__hover {
  max-height: none !important;
  min-height: 100% !important;
  height: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

.swan-event-speakers .swan-team-card:not(:hover):not(:focus-within) .swan-team-card__hover {
  max-height: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.swan-event-speakers .swan-team-card__hover .swan-team-card__meta {
  flex-shrink: 0;
  margin: 0;
}

.swan-event-speakers .swan-team-card__hover .swan-team-card__name {
  color: #fffffa !important;
  margin: 0 0 4px !important;
}

.swan-event-speakers .swan-team-card__hover .swan-team-card__role {
  color: #9992a3 !important;
  margin: 0 !important;
}

.swan-event-speakers .swan-team-card__hover .swan-team-card__quote {
  color: #fffffa !important;
  margin: 0 !important;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  font-size: 0.9rem !important;
  line-height: 1.55 !important;
}

.swan-event-speakers .swan-team-card__hover .swan-team-card__linkedin {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fffffa !important;
  flex-shrink: 0 !important;
  margin-top: auto !important;
  align-self: flex-start !important;
  padding-top: 12px !important;
}

.swan-event-speakers .swan-team-card:focus {
  outline: none;
}

.swan-event-speakers .swan-team-card:focus-visible {
  outline: 2px solid #003d70;
  outline-offset: 3px;
}

.swan-event-speakers .swan-team-card__image:not([style]) {
  background-image: linear-gradient(
    180deg,
    color-mix(in srgb, var(--wp--preset--color--foreground) 35%, #121929) 0%,
    #121929 55%
  );
}

/* Kosten */
/* Kosten: Abstand; Typo über .wp-block-heading / .wp-block-paragraph + .has-medium-font-size (theme.json) */
.swan-event-kosten {
  margin-bottom: 32px;
}

.swan-event-kosten .swan-event-kosten__label {
  margin-top: 1.25rem;
  margin-bottom: 0.35rem;
}

.swan-event-kosten .swan-event-kosten__label:first-child {
  margin-top: 0;
}

.swan-event-kosten .swan-event-kosten__price {
  margin: 0 0 0.5rem;
}

/* Eventfrog */
.swan-event-eventfrog {
  margin-bottom: 48px;
}

/* ================================================================
   Responsive
   ================================================================ */

@media (max-width: 680px) {
  .swan-events-slider__track {
    gap: 20px;
  }

  .swan-events-slider__track .swan-event-card {
    flex: 0 0 100%;
  }

  .swan-event-card__body {
    padding: 28px 28px 32px;
  }

  .swan-event-hero {
    aspect-ratio: 16 / 9;
  }

  .swan-event-hero__overlay {
    padding: 16px 20px;
  }
}

/* Navigation: remove focus ring (moved from functions.php) */
.wp-block-navigation :where(a:focus),
.wp-block-navigation :where(a:focus-visible),
.wp-block-navigation :where(a:active) {
  outline: none !important;
  box-shadow: none !important;
}
