/* Nur das alternative Template. Montserrat kommt aus der bestehenden style.css. */
#page2026_alternative {
  --festival-orange: #eca132;
  --festival-header-width: 1000px;
  margin: 0;
  padding: 0;
  background: #fff !important; /* Auch ein WordPress-Custom-Background bleibt hier aus. */
  color: #171717;
}
#page2026_alternative #page {
  width: 100%;
  max-width: none;
  margin: 0;
  background: #fff;
}
#page2026_alternative .alternative-header {
  position: sticky;
  top: calc(var(--alternative-admin-offset, 0px) - var(--alternative-brand-offset, 0px));
  z-index: 1000;
  background: var(--festival-orange);
  color: #000;
}
#page2026_alternative.admin-bar { --alternative-admin-offset: 32px; }
@media (max-width: 782px) {
  #page2026_alternative.admin-bar { --alternative-admin-offset: 46px; }
}
@media (max-width: 600px) {
  /* Die mobile WordPress-Adminleiste scrollt mit der Seite weg. */
  #page2026_alternative.admin-bar { --alternative-admin-offset: 0px; }
}
#page2026_alternative .alternative-header-inner {
  box-sizing: border-box;
  width: max-content;
  max-width: min(100%, var(--festival-header-width));
  margin: 0 auto;
  padding: 28.8px 16px 17.6px;
}
#page2026_alternative .alternative-brand {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 24px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(28px, 5vw, 68px);
}
#page2026_alternative .alternative-festival {
  flex: 0 0 auto;
  color: #000;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: inherit;
  line-height: 1.15;
  letter-spacing: -0.035em;
  text-decoration: none;
}
#page2026_alternative .alternative-logo {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: 0;
  color: #171717;
  text-decoration: none;
}
#page2026_alternative .alternative-logo img {
  display: block;
  width: auto;
  max-width: 100%;
  /* Montserrat-Großbuchstabenhöhe; em als Fallback für ältere Browser. */
  height: 0.7em;
  height: 1cap;
  object-fit: contain;
  object-position: center;
  margin: 0;
  border: 0;
  padding: 0;
}
#page2026_alternative .alternative-logo-placeholder {
  display: block;
  padding: 8px;
  border: 1px dashed currentColor;
  text-align: center;
  font: 500 14px/1.4 'Montserrat', sans-serif;
}
#page2026_alternative .alternative-logo-placeholder small { font-size: 12px; }
#page2026_alternative .alternative-navigation {
  width: 94%;
  margin: 2px auto 0;
  font: 300 clamp(18px, 2vw, 27px)/1.5 'Montserrat', sans-serif;
}
#page2026_alternative .alternative-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
#page2026_alternative .alternative-navigation > div > ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 22px;
}
#page2026_alternative .alternative-navigation li { position: relative; margin: 0; }
#page2026_alternative .alternative-navigation a {
  display: block;
  padding: 3px 0;
  color: #171717;
  font: inherit;
  text-decoration: none;
}
#page2026_alternative .alternative-navigation a:hover,
#page2026_alternative .alternative-navigation .current-menu-item > a,
#page2026_alternative .alternative-navigation .current_page_item > a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
#page2026_alternative .alternative-navigation ul ul {
  display: none;
  position: absolute;
  z-index: 10;
  top: 100%;
  left: 0;
  min-width: 220px;
  padding: 10px 16px;
  background: var(--festival-orange);
  box-shadow: 0 4px 8px #0002;
  font-size: 18px;
}
#page2026_alternative .alternative-navigation li:hover > ul,
#page2026_alternative .alternative-navigation li:focus-within > ul { display: block; }
#page2026_alternative .alternative-navigation ul ul ul { position: static; box-shadow: none; }
#page2026_alternative .alternative-navigation > div > ul > li:last-child > ul { left: auto; right: 0; }
#page2026_alternative a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
#page2026_alternative .alternative-skip-link {
  position: absolute;
  top: 0;
  left: 12px;
  transform: translateY(-150%);
  z-index: 100;
  padding: 8px 16px;
  background: #fff;
  color: #000;
}
#page2026_alternative .alternative-skip-link:focus { transform: translateY(0); }
/* Globale Twenty-Eleven-Abstände zurücksetzen; keine Jahresregeln verändern. */
#page2026_alternative #main,
#page2026_alternative #primary,
#page2026_alternative #content {
  float: none;
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0;
  background: #fff;
}
#page2026_alternative .hentry { margin: 0; padding: 0; border: 0; }
/* Tickets, Medien, Förderer und Archiv: alter Satzspiegel
   (1000px minus zweimal 7,6% Inhaltsrand).
   Auf schmalen Ansichten bleiben dieselben relativen Seitenabstände erhalten. */
#page2026_alternative #content.alternative-constrained-content {
  width: 86.8%;
  max-width: 868px;
  margin: 0 auto;
  padding: 15px 0 0;
}
#page2026_alternative .alternative-ticket-content .entry-content p {
  margin-bottom: 0.5em;
}
/* Medien: Interview 2025 enthält im Inhalt height="50%".
   Eine proportionale Höhe verhindert den 150px-Standard eines unbestimmten iframe. */
#page2026_alternative .entry-content iframe[src^="https://www.youtube.com/embed/DTFcvJQ_rAs"] {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  margin-left: auto;
  margin-right: auto;
}
#page2026_alternative .entry-header,
#page2026_alternative .entry-content,
#page2026_alternative footer.entry-meta {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
}
/* Startseite: Textblöcke begrenzen; Headlines, Titelbild und Overlay ausnehmen. */
#page2026_alternative.home .entry-content :is(p, h1, h2, h3, h4, h6, ul, ol, blockquote):not(.festival-hero *):not(.festival-statement) {
  box-sizing: border-box;
  max-width: 868px;
  margin-left: auto;
  margin-right: auto;
}
/* Inhaltstags der Live-Startseite: Begrüßung h5, anschließende Textblöcke h1.
   Begrüßungsheadline in Anton mit 48 px; übrige Textgrößen wie auf der Live-Seite.
   Die Tags selbst kommen weiterhin unverändert aus dem WordPress-Seiteninhalt. */
#page2026_alternative .entry-content h5.wp-block-heading {
  font-family: 'Anton', sans-serif;
  font-size: 42px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.1rem;
}
#page2026_alternative .entry-content h1.wp-block-heading {
  color: #3e3e3e;
  font: 400 25px/normal 'Montserrat', sans-serif;
  margin-bottom: 0.1em;
}
@media only screen and (max-width: 1000px) and (orientation: portrait) {
  #page2026_alternative .entry-content h1.wp-block-heading {
    font-size: 15px;
  }
  #page2026_alternative .entry-content h5.wp-block-heading {
    font-size: 36px;
  }
}
/* Volle Breite für ein im Editor eingefügtes Foto; normale Bilder bleiben proportional. */
#page2026_alternative .entry-content .alignfull { width: 100%; max-width: none; margin-left: 0; margin-right: 0; }
#page2026_alternative .entry-content .alignfull img { display: block; width: 100%; max-width: 100%; height: auto; border: 0; padding: 0; }
/* Zweizeiliger Startseitentext: Größen und Gewichte hier unabhängig einstellen. */
#page2026_alternative .entry-content p.festival-statement {
  --statement-first-size: 38px;
  --statement-second-size: 67px;
  --statement-first-weight: 700;
  --statement-second-weight: 700;
  font-family: 'Montserrat', sans-serif;
  color: var(--festival-orange);
  text-align: center;
  line-height: 1.2;
}
#page2026_alternative .festival-statement .statement-first {
  font-size: var(--statement-first-size);
  font-weight: var(--statement-first-weight);
}
#page2026_alternative .festival-statement .statement-second {
  font-size: var(--statement-second-size);
  font-weight: var(--statement-second-weight);
}
@media (max-width: 700px) {
  #page2026_alternative .entry-content p.festival-statement {
    --statement-first-size: 24px;
    --statement-second-size: 36px;
  }
}
/* Bild und Zweizeiler gemeinsam in einer Gutenberg-Gruppe mit dieser Klasse. */
#page2026_alternative .entry-content .festival-hero {
  position: relative;
  container-type: inline-size;
  margin-top: 0;
  margin-bottom: 0;
}
#page2026_alternative .entry-content .festival-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 0%);
  pointer-events: none;
}
#page2026_alternative .entry-content .festival-hero p.festival-statement {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 5%;
  width: 90%;
  margin: 0;
  transform: translateY(-50%);
  text-shadow: 0 1px 4px rgb(0 0 0 / 65%);
}
#page2026_alternative .festival-hero .statement-first {
  font-size: min(var(--statement-first-size), 3cqw);
}
#page2026_alternative .festival-hero .statement-second {
  font-size: min(var(--statement-second-size), 5.4cqw);
}
@media (max-width: 700px) {
  #page2026_alternative .festival-hero .statement-first {
    font-size: min(calc(var(--statement-first-size) * 1.2), 3.6cqw);
  }
  #page2026_alternative .festival-hero .statement-second {
    font-size: min(calc(var(--statement-second-size) * 1.2), 6.48cqw);
  }
}
/* Startseitenfoto: flacher Ausschnitt wie die Vorlage, unterer Bildbereich. */
#page2026_alternative .entry-content .startseite-panorama,
#page2026_alternative.home .entry-content figure.wp-block-image:has(> img[src*="/film-festival-hamburg-e1762433213721.jpg"]) {
  position: relative;
  aspect-ratio: 4.25 / 1;
  container-type: inline-size;
  overflow: hidden;
  margin-top: 0;
  margin-bottom: 0;
}
#page2026_alternative .entry-content .startseite-panorama img,
#page2026_alternative.home .entry-content figure.wp-block-image > img[src*="/film-festival-hamburg-e1762433213721.jpg"] {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  /* Ein Drittel der Ausschnitthöhe: Containerbreite / 4,25 / 3. */
  object-position: center calc(100% + 7.843137cqw);
  margin: 0;
  border: 0;
  padding: 0;
}
#page2026_alternative #comments { box-sizing: border-box; max-width: 1000px; margin: 0 auto; padding: 0 20px; }
#page2026_alternative .alternative-footer {
  clear: both;
  margin: 0;
  padding: 6px 20px;
  background: #000;
  color: #fff;
}
#page2026_alternative .alternative-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 4px 30px;
}
#page2026_alternative .alternative-footer a {
  color: #fff;
  font: 300 clamp(18px, 3.5vw, 28px)/1.4 'Montserrat', sans-serif;
  text-decoration: none;
}
#page2026_alternative .alternative-footer a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
/* Mobiler Satzspiegel wie im Live-Theme: 2em bei 15px Grundschrift
   außerhalb der Seitenbox, darin jeweils 7,6% Inhaltsrand.
   Nur #main erhält den äußeren Rand, damit Header und Footer vollbreit bleiben. */
@media (max-width: 800px) {
  #page2026_alternative #main {
    box-sizing: border-box;
    padding-left: 30px;
    padding-right: 30px;
  }
  #page2026_alternative #main #content {
    box-sizing: border-box;
    width: 84.8%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }
  /* Nur das Titelbild mit Overlay über die Inhaltsränder hinausziehen. */
  #page2026_alternative.home .entry-content .festival-hero.alignfull {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}
@media (max-width: 800px) and (min-device-width: 320px) and (max-device-width: 480px) {
  #page2026_alternative #main {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (max-width: 700px) {
  #page2026_alternative .alternative-header-inner { width: 100%; padding: 15.2px 20px 12.8px; }
  #page2026_alternative .alternative-brand { flex-direction: column; align-items: center; gap: 4px; width: max-content; max-width: 100%; margin-left: auto; margin-right: auto; }
  #page2026_alternative .alternative-brand { font-size: clamp(26px, 8.2vw, 54px); }
  /* Die Textzeile bestimmt die Gruppenbreite, nicht die natürliche Logobreite. */
  #page2026_alternative .alternative-logo { width: 100%; max-width: 100%; contain: inline-size; }
  #page2026_alternative .alternative-logo img { width: 100%; height: auto; max-height: none; }
  #page2026_alternative .alternative-navigation { width: 100%; }
  /* Größerer Lesetext nur auf der mobilen Startseite, ohne Bild-Overlay. */
  #page2026_alternative.home .entry-content h1.wp-block-heading,
  #page2026_alternative.home .entry-content p:not(.festival-statement):not(.festival-copy) {
    font-size: 17px;
  }
  #page2026_alternative .alternative-navigation > div > ul { justify-content: center; gap: 8px 20px; }
  /* Untermenüs auf Touch-Geräten ohne Hover erreichbar. */
  #page2026_alternative .alternative-navigation ul ul { display: block; position: static; min-width: 0; padding: 4px 0 4px 12px; box-shadow: none; font-size: 16px; }
}
/* Über uns – Team-Bilder ohne Rahmen */
#page2026_alternative .wp-block-columns .wp-block-image img {
    border: 0 !important;
    box-shadow: none !important;
    padding: 0;
}
/* Team – Bildunterschriften */
#page2026_alternative .festival-team {
    --team-name-size: 24px;
    --team-text-size: 15px;
}

/* Minuszeichen entfernen */
#page2026_alternative .festival-team figcaption::before {
    content: none !important;
    display: none !important;
}

/* Gesamte Bildunterschrift */


/* Name */
#page2026_alternative .festival-team figcaption strong {
    font-family: 'Anton', sans-serif;
    font-size: var(--team-name-size);
    font-weight: 400;
    line-height: 1.2;
}
--team-name-size: 32px;
--team-text-size: 15px;
/* gesamte Team-Spalte */
#page2026_alternative .festival-team .wp-block-column {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Bild + Text bilden eine gemeinsame Einheit */
#page2026_alternative .festival-team figure.wp-block-image {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 90%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
}

/* Bild */
#page2026_alternative .festival-team figure.wp-block-image img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0 !important;
    box-shadow: none !important;
}

/* Bildunterschrift */
#page2026_alternative .festival-team figure.wp-block-image figcaption {
    box-sizing: border-box;
    width: 100%;
    margin: 12px 0 0;
    padding: 0;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: var(--team-text-size);
    font-weight: 600;
    line-height: 1.35;
}

/* Name */
#page2026_alternative .festival-team figcaption strong {
    font-family: 'Anton', sans-serif;
    font-size: var(--team-name-size);
    font-weight: 400;
    line-height: 1.2;
}
/* Copytext unter Vision und Mission */
#page2026_alternative .festival-copy {
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    line-height: 1.5;
    text-align: justify;
    hyphens: auto;
}

/* Team-Lightbox: ausschließlich im alternativen Template. */
#page2026_alternative.festival-lightbox-open {
  position: fixed;
  top: var(--festival-lightbox-scroll-top, 0px);
  left: 0;
  right: 0;
  overflow: hidden;
}
#page2026_alternative .festival-lightbox {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 72px 24px 24px;
  border: 0;
  background: transparent;
  color: #fff;
  overflow: auto;
  overscroll-behavior: contain;
}
#page2026_alternative .festival-lightbox[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}
#page2026_alternative .festival-lightbox::backdrop { background: rgb(0 0 0 / 85%); }
#page2026_alternative .festival-lightbox-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 100%;
}
#page2026_alternative .festival-lightbox .festival-lightbox-image {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100vh - 160px);
  max-height: calc(100dvh - 160px);
  object-fit: contain;
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}
#page2026_alternative .festival-lightbox-close {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  right: max(12px, env(safe-area-inset-right));
  width: 48px;
  height: 48px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #111;
  color: #fff;
  font: 400 36px/1 Arial, sans-serif;
  cursor: pointer;
}
#page2026_alternative .festival-lightbox-email,
#page2026_alternative .festival-lightbox-status {
  margin: 0;
  color: #fff;
  font: 400 18px/1.4 'Montserrat', sans-serif;
  text-align: center;
  overflow-wrap: anywhere;
}
#page2026_alternative .festival-lightbox-email { text-decoration: underline; }
#page2026_alternative .festival-lightbox [hidden] { display: none; }
#page2026_alternative .festival-lightbox button:focus-visible,
#page2026_alternative .festival-lightbox a:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
/* Oranger Textkreis anstelle eines Teamfotos */
#page2026_alternative .festival-text-circle {
    width: 400px;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    border-radius: 50%;
    background-color: #f0a42e;

    display: flex;
    align-items: center;
    justify-content: center;

    text-align: center;
    box-sizing: border-box;
    overflow: hidden;
}

#page2026_alternative .festival-text-circle-inner {
    width: 78%;
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    line-height: 1.3;
}

#page2026_alternative .festival-text-circle-inner strong {
    display: block;
    margin-bottom: 8px;
    font-family: 'Anton', sans-serif;
    font-size: 30px;
    font-weight: 400;
    line-height: 1.1;
}

#page2026_alternative .festival-text-circle-inner span {
    display: block;
}

@media (max-width: 600px) {

    #page2026_alternative .festival-circle-row {
        position: relative;
        width: 100vw;
        left: 50%;
        margin-left: -50vw;

        display: flex;
        justify-content: center;
    }

    #page2026_alternative .festival-text-circle {
        width: calc(100vw - 40px);
        max-width: 400px;

        margin: 0;
        position: static;
        transform: none;
    }

    #page2026_alternative .festival-text-circle-inner {
        width: 78%;
        font-size: 16px;
        font-weight: 600;
        line-height: 1.3;
    }

    #page2026_alternative .festival-text-circle-inner strong {
        font-size: 25px;
        line-height: 1.1;
        margin-bottom: 6px;
    }
}
