/*
Theme Name: InselKonzerte
Theme URI: https://inselkonzerte-chiemsee.de/
Author: Michael Staab
Description: Schlankes WordPress-Block-Theme für die InselKonzerte Herrenchiemsee.
Version: 0.31.0
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: inselkonzerte
*/

/* Local webfonts: no request to Google or another font CDN. */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url("assets/fonts/dm-sans/dm-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 100 1000;
  src: url("assets/fonts/dm-sans/dm-sans-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "EB Garamond";
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url("assets/fonts/eb-garamond/eb-garamond-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "EB Garamond";
  font-style: normal;
  font-display: swap;
  font-weight: 400 800;
  src: url("assets/fonts/eb-garamond/eb-garamond-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "EB Garamond";
  font-style: italic;
  font-display: swap;
  font-weight: 400 800;
  src: url("assets/fonts/eb-garamond/eb-garamond-latin-ext-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "EB Garamond";
  font-style: italic;
  font-display: swap;
  font-weight: 400 800;
  src: url("assets/fonts/eb-garamond/eb-garamond-latin-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --ik-blue: #039dc3;
  --ik-blue-dark: #007d9d;
  --ik-blue-pale: #dff5fa;
  --ik-ink: #172127;
  --ik-muted: #5b666c;
  --ik-paper: #fbfcfa;
  --ik-warm: #f1efe8;
  --ik-line: rgba(23, 33, 39, .18);
  --ik-serif: "EB Garamond", Georgia, "Times New Roman", serif;
  --ik-sans: "DM Sans", "Avenir Next", Arial, sans-serif;
  --ik-max: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; font-family: var(--ik-sans); font-weight: 300; }
img { display: block; max-width: 100%; }
::selection { background: var(--ik-blue); color: #fff; }

/* Keep the page compact even when WordPress adds default block margins. */
.ik-section :where(h1, h2, h3, h4, p, figure),
.ik-site-header :where(p, figure),
.ik-site-footer :where(h2, h3, p, figure) {
  margin-block-start: 0;
}

/* Header */
.ik-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: 82px;
  border-bottom: 1px solid transparent;
  background: rgba(251, 252, 250, .9);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  transition: min-height .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.admin-bar .ik-site-header { top: 32px; }
.ik-site-header.is-scrolled {
  min-height: 70px;
  border-color: var(--ik-line);
  box-shadow: 0 10px 30px rgba(10, 40, 50, .06);
}
.ik-site-header > .wp-block-group { min-height: inherit; }
.ik-brand { gap: 15px !important; }
.ik-site-header .wp-block-site-logo { margin: 0; }
.ik-site-header .wp-block-site-logo img { width: auto; max-width: 218px; max-height: 54px; object-fit: contain; }
.ik-brand-year {
  margin: 0 !important;
  color: var(--ik-muted);
  font-size: .7rem;
  letter-spacing: .17em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}
.ik-main-nav .wp-block-navigation-item__content {
  position: relative;
  padding: 7px 0;
  color: var(--ik-ink);
  font-size: .84rem;
  letter-spacing: .045em;
  text-decoration: none;
}
.ik-main-nav .wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 1px;
  left: 0;
  height: 1px;
  background: var(--ik-blue);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .22s ease;
}
.ik-main-nav .wp-block-navigation-item__content:hover::after,
.ik-main-nav .wp-block-navigation-item__content:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}
.ik-main-nav .ik-ticket-nav .wp-block-navigation-item__content {
  padding: 11px 16px;
  background: var(--ik-ink);
  color: #fff;
}
.ik-main-nav .ik-ticket-nav .wp-block-navigation-item__content::after { display: none; }
.ik-main-nav .ik-ticket-nav .wp-block-navigation-item__content:hover { background: var(--ik-blue-dark); color: #fff; }

/* General */
.ik-section { position: relative; overflow: clip; }
.ik-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px !important;
  color: var(--ik-blue-dark);
  font-size: .72rem !important;
  font-weight: 400;
  letter-spacing: .15em;
  line-height: 1.3;
  text-transform: uppercase;
}
.ik-kicker::before {
  content: "";
  flex: 0 0 40px;
  width: 40px;
  height: 1px;
  background: currentColor;
}
.ik-section-title {
  max-width: 960px;
  margin-bottom: 22px !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(2.75rem, 4.5vw, 4.8rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.035em;
  line-height: .94 !important;
}
.ik-section-intro {
  max-width: 790px;
  color: #465259;
  font-size: clamp(1.04rem, 1.3vw, 1.22rem) !important;
  line-height: 1.58;
}
.ik-muted { color: var(--ik-muted); }
.ik-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--ik-ink);
  transition: transform .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}
.ik-button .wp-block-button__link::after { content: "↗"; font-size: 1rem; }
.ik-button .wp-block-button__link:hover {
  border-color: var(--ik-blue);
  background: var(--ik-blue);
  color: #fff;
  transform: translateY(-2px);
}
.ik-button.is-style-outline .wp-block-button__link { background: transparent; }

/* Hero */
.ik-hero {
  min-height: min(780px, calc(100svh - 70px));
  color: var(--ik-ink) !important;
  isolation: isolate;
}
.ik-hero .wp-block-cover__background { background: transparent !important; }
.ik-hero .wp-block-cover__image-background {
  object-position: 50% 100%;
  opacity: .72;
}
.ik-hero .wp-block-cover__inner-container { width: 100%; color: var(--ik-ink); }
.ik-hero-grid { align-items: center !important; }
.ik-hero-title {
  max-width: 760px;
  margin-bottom: 26px !important;
  color: var(--ik-ink) !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(3.65rem, 6vw, 6.15rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.048em;
  line-height: .87 !important;
}
.ik-hero-title em { display: block; color: var(--ik-blue); font-weight: inherit; }
.ik-hero-copy {
  max-width: 625px;
  margin: 0 0 32px !important;
  color: #334047;
  font-size: clamp(1.02rem, 1.35vw, 1.22rem) !important;
  line-height: 1.6;
}
.ik-hero-visual { position: relative; padding: 10px 0 38px; }
.ik-hero-image { margin: 0 !important; }
.ik-hero-image img {
  width: 100%;
  min-height: 500px;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 49% 51% 48% 52% / 38% 42% 58% 62%;
  box-shadow: 0 40px 90px rgba(0, 73, 98, .18);
  filter: saturate(.86) contrast(.96);
}
.ik-season-stamp {
  position: absolute;
  z-index: 3;
  top: 9%;
  right: -22px;
  display: grid !important;
  place-content: center;
  width: 112px;
  height: 112px;
  margin: 0 !important;
  border-radius: 50%;
  background: var(--ik-blue);
  color: #fff;
  font-size: .68rem;
  letter-spacing: .13em;
  line-height: 1.18;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(8deg);
  box-shadow: 0 20px 40px rgba(0, 99, 130, .2);
}
.ik-season-stamp strong { display: block; margin-top: 5px; font: 400 1.95rem/1 var(--ik-serif); letter-spacing: 0; }
.ik-next-card {
  position: relative;
  z-index: 4;
  width: min(390px, 92%);
  margin: -102px 0 0 -54px !important;
  border-top: 4px solid var(--ik-blue);
  background: rgba(251, 252, 250, .96) !important;
  box-shadow: 0 24px 60px rgba(20, 42, 52, .16);
  backdrop-filter: blur(12px);
}
.ik-next-card .ik-kicker { margin-bottom: 9px !important; font-size: .64rem !important; }
.ik-next-card .ik-kicker::before { display: none; }
.ik-next-card h2 {
  margin: 0 0 8px !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(1.65rem, 2.3vw, 2.15rem) !important;
  line-height: 1.05 !important;
}
.ik-next-card p:last-child { margin-bottom: 0 !important; color: var(--ik-muted); }

/* Section heading */
.ik-section-head { margin-bottom: clamp(48px, 6vw, 82px) !important; }
.ik-section-head > .wp-block-column:first-child { padding-top: 8px; }

/* Concert list */
.ik-concert-list { border-top: 1px solid var(--ik-line); }
.ik-concert-row {
  position: relative;
  display: grid !important;
  grid-template-columns: 135px minmax(270px, 1.12fr) minmax(240px, .88fr) 58px;
  gap: 30px;
  align-items: center;
  min-height: 116px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ik-line);
  cursor: pointer;
  isolation: isolate;
}
.ik-concert-row::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -24px;
  background: var(--ik-blue-pale);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .28s ease;
}
.ik-concert-row:hover::before,
.ik-concert-row:focus-within::before { transform: scaleY(1); }
.ik-concert-row > * { min-width: 0; }
.ik-concert-row :where(.wp-block-group, h3, p) { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.ik-concert-row > .wp-block-group { gap: 0 !important; }
.ik-concert-date {
  display: grid !important;
  grid-template-columns: 54px 1fr;
  gap: 12px !important;
  align-items: center;
}
.ik-concert-day {
  font: 400 3.1rem/.8 var(--ik-serif);
  letter-spacing: -.05em;
}
.ik-concert-month {
  padding-left: 12px;
  border-left: 1px solid var(--ik-ink);
  font-size: .73rem;
  font-weight: 400;
  letter-spacing: .1em;
  line-height: 1.28;
  text-transform: uppercase;
}
.ik-concert-main h3 {
  margin-bottom: 7px !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(1.6rem, 2.25vw, 2.48rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.02em;
  line-height: 1.02 !important;
}
.ik-concert-main p,
.ik-concert-program p { color: var(--ik-muted); font-size: .88rem; line-height: 1.45; }
.ik-concert-program strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ik-blue-dark);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.ik-concert-arrow {
  display: grid !important;
  place-items: center;
  width: 46px;
  height: 46px;
  margin: 0 !important;
  border: 1px solid var(--ik-line);
  border-radius: 50%;
  font-size: 1.18rem;
  transition: color .24s ease, background .24s ease, border-color .24s ease, transform .24s ease;
}
.ik-concert-row:hover .ik-concert-arrow,
.ik-concert-row:focus-within .ik-concert-arrow {
  border-color: var(--ik-ink);
  background: var(--ik-ink);
  color: #fff;
  transform: rotate(45deg);
}
.ik-concert-link {
  position: absolute;
  z-index: 5;
  inset: 0;
  outline: 0;
}
.ik-concert-link:focus-visible { box-shadow: inset 0 0 0 2px var(--ik-blue); }
.ik-concert-dialog-copy { display: none; }
.ik-concert-row--past { opacity: .52; }
.ik-concert-row--past::after {
  content: "vergangen";
  position: absolute;
  top: 7px;
  left: 0;
  color: var(--ik-muted);
  font-size: .6rem;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ik-concert-row--past:hover,
.ik-concert-row--past:focus-within { opacity: .86; }
.ik-archive-row { margin-top: 28px !important; text-align: right; }

/* Editorial / artistic direction */
.ik-editorial { background: var(--ik-warm); }
.ik-portrait-wrap { position: relative; padding: 7% 10% 11% 0; }
.ik-portrait { margin: 0 !important; }
.ik-portrait img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 52% 45%;
  border-radius: 52% 48% 48% 52% / 42% 43% 57% 58%;
}
.ik-portrait-caption {
  position: absolute;
  right: 0;
  bottom: 7%;
  min-width: 220px;
  padding: 17px 21px;
  background: #fff;
  font-size: .74rem;
  box-shadow: 0 20px 45px rgba(30, 40, 40, .12);
}
.ik-portrait-caption strong { display: block; margin-bottom: 2px; font: 400 1.5rem/1.1 var(--ik-serif); }
.ik-quote {
  margin-bottom: 27px !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(2.3rem, 3.7vw, 4.15rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.025em;
  line-height: 1.04 !important;
}
.ik-quote::before { content: "„"; color: var(--ik-blue); font-size: 1.4em; line-height: 0; vertical-align: -.18em; margin-right: 4px; }
.ik-editorial-copy { max-width: 760px; color: #465259; }
.ik-editorial-copy p { margin-bottom: 1.05rem !important; }
.ik-signature { margin-top: 28px !important; color: var(--ik-blue-dark); font: italic 1.42rem/1.2 var(--ik-serif); }

/* Venue */
.ik-venue-image { position: relative; min-height: 640px; margin: 0 !important; overflow: hidden; }
.ik-venue-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ik-venue-image::after { content: ""; position: absolute; inset: 0; border: 15px solid rgba(255,255,255,.24); pointer-events: none; }
.ik-venue-title { margin-bottom: 28px !important; }
.ik-fact {
  display: grid !important;
  grid-template-columns: 96px 1fr;
  gap: 20px !important;
  padding: 20px 0;
  border-top: 1px solid var(--ik-line);
}
.ik-fact:last-of-type { border-bottom: 1px solid var(--ik-line); }
.ik-fact :where(p) { margin: 0 !important; }
.ik-fact-label { color: var(--ik-blue-dark); font-size: .68rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.ik-mini-photo { margin-top: 40px !important; }
.ik-mini-photo img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }

/* Tickets */
.ik-tickets { color: #fff; }
.ik-tickets::after {
  content: "";
  position: absolute;
  right: -12vw;
  bottom: -28vw;
  width: 58vw;
  height: 58vw;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(255, 255, 255, .04), 0 0 0 140px rgba(255, 255, 255, .03);
  pointer-events: none;
}
.ik-tickets > * { position: relative; z-index: 1; }
.ik-tickets .ik-kicker { color: rgba(255,255,255,.82); }
.ik-tickets .ik-kicker::before { background: rgba(255,255,255,.82); }
.ik-tickets-title {
  max-width: 640px;
  margin-bottom: 24px !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(3rem, 5.2vw, 5.4rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.04em;
  line-height: .9 !important;
}
.ik-tickets-lead { max-width: 590px; color: rgba(255,255,255,.86); font-size: clamp(1.04rem, 1.3vw, 1.18rem) !important; }
.ik-tickets-note { max-width: 620px; margin-top: 24px !important; color: rgba(255,255,255,.72); font-size: .84rem; }
.ik-tickets .ik-button .wp-block-button__link { border-color: #fff; background: transparent; color: #fff; }
.ik-tickets .ik-button .wp-block-button__link:hover { background: #fff; color: var(--ik-blue-dark); }
.ik-price-list { border-top: 1px solid rgba(255, 255, 255, .34); }
.ik-price-row {
  display: flex !important;
  justify-content: space-between;
  gap: 24px !important;
  align-items: baseline;
  padding: 20px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .34);
}
.ik-price-row :where(h3, p) { margin: 0 !important; }
.ik-price-row p { max-width: 70%; color: rgba(255,255,255,.88); font-size: .88rem; }
.ik-price-row h3 { flex: 0 0 auto; color: #fff; font: 400 clamp(1.55rem, 2.2vw, 2rem)/1 var(--ik-serif) !important; white-space: nowrap; }

/* Support, contact and partners */
.ik-support-card { padding-top: 34px; border-top: 4px solid var(--ik-blue); }
.ik-support-card h2 { margin-bottom: 17px !important; font: 400 clamp(2rem, 3vw, 2.85rem)/1 var(--ik-serif) !important; }
.ik-support-card p { max-width: 590px; }
.ik-contact-lines { margin-top: 24px !important; }
.ik-contact-lines p { margin-bottom: 12px !important; }
.ik-contact-lines strong { display: block; color: var(--ik-blue-dark); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.ik-partner-label { margin: 66px 0 24px !important; color: var(--ik-muted); font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; }
.ik-partners {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px !important;
  border: 1px solid var(--ik-line);
  background: var(--ik-line);
}
.ik-partner {
  display: grid !important;
  place-items: center;
  min-height: 116px;
  margin: 0 !important;
  padding: 18px;
  background: #fff;
  color: #647077;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .06em;
  line-height: 1.35;
  text-align: center;
  text-transform: uppercase;
}

/* Footer */
.ik-site-footer a { color: inherit; }
.ik-site-footer .wp-block-site-title { margin-bottom: 20px; font-family: var(--ik-serif); }
.ik-site-footer .wp-block-site-title a { color: #fff; text-decoration: none; }
.ik-footer-copy { max-width: 540px; }
.ik-site-footer h3 { margin-bottom: 14px !important; color: var(--ik-blue-pale); font-weight: 500 !important; letter-spacing: .12em; text-transform: uppercase; }
.ik-site-footer .wp-block-navigation { gap: 4px !important; }
.ik-site-footer .wp-block-navigation-item__content { padding: 3px 0; color: rgba(255,255,255,.74); text-decoration: none; }
.ik-site-footer .wp-block-navigation-item__content:hover { color: #fff; }

/* Concert dialog / lightbox */
.ik-event-dialog {
  width: min(1060px, calc(100% - 28px));
  max-width: 1060px;
  max-height: 92svh;
  padding: 0;
  border: 0;
  background: #fff;
  color: var(--ik-ink);
  box-shadow: 0 35px 120px rgba(0, 30, 45, .35);
}
.ik-event-dialog::backdrop { background: rgba(4, 34, 45, .75); backdrop-filter: blur(8px); }
.ik-dialog-grid { display: grid; grid-template-columns: .78fr 1.22fr; min-height: 650px; }
.ik-dialog-visual { position: relative; min-height: 380px; overflow: hidden; background: var(--ik-blue-pale); }
.ik-dialog-visual img { width: 100%; height: 100%; object-fit: cover; }
.ik-dialog-visual.no-image::before {
  content: "";
  position: absolute;
  left: -30%;
  bottom: -20%;
  width: 120%;
  height: 90%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(3,157,195,.8), rgba(3,157,195,.2) 52%, transparent 70%);
  filter: blur(13px);
}
.ik-dialog-date { position: absolute; left: 25px; bottom: 25px; padding: 17px 21px; background: #fff; font: 400 2.05rem/1 var(--ik-serif); }
.ik-dialog-content { padding: clamp(34px, 5vw, 68px); overflow: auto; }
.ik-dialog-content .ik-kicker { margin-bottom: 15px !important; }
.ik-dialog-content h2 { margin-bottom: 17px !important; font: 400 clamp(2.45rem, 4.5vw, 4.6rem)/.94 var(--ik-serif) !important; letter-spacing: -.035em; }
.ik-dialog-program { margin-bottom: 25px; color: var(--ik-blue-dark); font: 400 1.36rem/1.28 var(--ik-serif); }
.ik-dialog-copy { margin-bottom: 23px; color: #4c585e; }
.ik-dialog-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 26px; padding: 19px 0; border-top: 1px solid var(--ik-line); border-bottom: 1px solid var(--ik-line); }
.ik-dialog-meta strong { display: block; margin-bottom: 4px; color: var(--ik-blue-dark); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }
.ik-dialog-close { position: absolute; z-index: 3; top: 17px; right: 17px; display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid rgba(0,0,0,.15); border-radius: 50%; background: rgba(255,255,255,.94); color: var(--ik-ink); font: 300 1.5rem/1 var(--ik-sans); cursor: pointer; }
body.ik-dialog-open { overflow: hidden; }

/* Editor: keep rows editable and hide the front-end dialog. */
.editor-styles-wrapper .ik-concert-link { pointer-events: none; }
.editor-styles-wrapper .ik-event-dialog { display: none !important; }

@media (max-width: 1100px) {
  .ik-brand-year { display: none; }
  .ik-hero { min-height: auto; }
  .ik-hero-image img { min-height: 540px; }
  .ik-concert-row { grid-template-columns: 118px 1fr 54px; }
  .ik-concert-program { grid-column: 2 / 3; }
  .ik-concert-arrow { grid-column: 3; grid-row: 1 / 3; }
  .ik-partners { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .admin-bar .ik-site-header { top: 46px; }
  .ik-site-header { min-height: 70px; }
  .ik-site-header .wp-block-site-logo img { max-width: 184px; max-height: 46px; }
  .ik-hero-visual { width: min(680px, 96%); margin-left: auto; }
  .ik-next-card { margin-left: 20px !important; }
  .ik-portrait-wrap { max-width: 650px; }
  .ik-venue-image { min-height: 520px; }
  .ik-dialog-grid { grid-template-columns: 1fr; }
  .ik-dialog-visual { min-height: 300px; }
}

@media (max-width: 700px) {
  .ik-site-header { padding-top: 7px !important; padding-bottom: 7px !important; }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 30px 22px; background: var(--ik-paper); }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: 15px; }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font: 400 2rem/1.05 var(--ik-serif); }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open .ik-ticket-nav .wp-block-navigation-item__content { font: 400 .9rem/1 var(--ik-sans); }

  .ik-hero { padding-top: 82px !important; padding-bottom: 72px !important; }
  .ik-hero-title { font-size: clamp(3.35rem, 16vw, 5.05rem) !important; }
  .ik-hero-copy { font-size: 1.02rem !important; }
  .ik-hero-visual { width: 100%; padding-top: 20px; }
  .ik-hero-image img { min-height: 430px; aspect-ratio: 5 / 6; }
  .ik-season-stamp { right: -6px; width: 94px; height: 94px; }
  .ik-season-stamp strong { font-size: 1.65rem; }
  .ik-next-card { width: calc(100% - 16px); margin: -62px 8px 0 !important; }

  .ik-section-title { font-size: clamp(2.65rem, 13vw, 3.75rem) !important; }
  .ik-section-head { gap: 4px !important; }
  .ik-section-head > .wp-block-column:first-child { padding-top: 0; }

  .ik-concert-row { grid-template-columns: 78px 1fr 38px; gap: 14px; min-height: 0; padding: 25px 0; }
  .ik-concert-date { grid-template-columns: 1fr; gap: 3px !important; }
  .ik-concert-day { font-size: 2.38rem; }
  .ik-concert-month { padding-left: 0; border-left: 0; }
  .ik-concert-main h3 { font-size: 1.68rem !important; }
  .ik-concert-program { grid-column: 2 / 4; }
  .ik-concert-arrow { grid-column: 3; grid-row: 1; width: 36px; height: 36px; font-size: 1rem; }
  .ik-concert-row::before { inset: 0 -10px; }

  .ik-portrait-wrap { padding-right: 3%; }
  .ik-portrait-caption { right: -2%; padding: 14px 16px; }
  .ik-quote { font-size: clamp(2.2rem, 10vw, 3.2rem) !important; }

  .ik-venue-image { min-height: 390px; }
  .ik-fact { grid-template-columns: 1fr; gap: 5px !important; }
  .ik-mini-photo img { aspect-ratio: 4 / 2.4; }

  .ik-tickets-title { font-size: clamp(2.8rem, 13vw, 4rem) !important; }
  .ik-price-row p { max-width: 62%; }

  .ik-partners { grid-template-columns: repeat(2, 1fr); }
  .ik-partner { min-height: 100px; }
  .ik-footer-top { gap: 32px !important; }

  .ik-event-dialog { width: calc(100% - 14px); max-height: 95svh; }
  .ik-dialog-visual { min-height: 260px; }
  .ik-dialog-content { padding: 34px 23px; }
  .ik-dialog-content h2 { font-size: clamp(2.35rem, 11vw, 3.45rem) !important; }
  .ik-dialog-meta { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}


/* =========================================================
   v0.4 – wide-screen balance, reliable alignment and arrows
   ========================================================= */
:root {
  --ik-max: 1280px;
  --ik-gutter: clamp(22px, 4vw, 64px);
}

/* WordPress can treat alignwide differently depending on the saved page
   template. These rules give all homepage modules one reliable axis. */
.ik-section:not(.ik-hero) > :where(.alignwide, .wp-block-columns.alignwide, .wp-block-group.alignwide, p.alignwide) {
  width: min(100%, var(--ik-max)) !important;
  max-width: var(--ik-max) !important;
  margin-inline: auto !important;
}

.ik-hero-grid {
  width: min(calc(100% - (2 * var(--ik-gutter))), var(--ik-max)) !important;
  max-width: var(--ik-max) !important;
  margin-inline: auto !important;
  column-gap: clamp(38px, 5vw, 76px) !important;
}
.ik-hero-grid > .wp-block-column:first-child { flex-basis: 52% !important; }
.ik-hero-grid > .wp-block-column:last-child { flex-basis: 48% !important; }
.ik-hero-title {
  max-width: 680px;
  font-size: clamp(3.55rem, 5.1vw, 5.7rem) !important;
}
.ik-hero-copy { max-width: 590px; }
.ik-hero-visual {
  width: 100%;
  max-width: 610px;
  margin-inline: auto !important;
}
.ik-hero-image img { min-height: 540px; }
.ik-next-card { margin-left: -34px !important; }

/* Nested constrained groups otherwise begin centring their children when
   a column becomes wider than the global content width. */
.ik-concert-main.is-layout-constrained > *,
.ik-concert-program.is-layout-constrained > *,
.ik-next-card.is-layout-constrained > *,
.ik-editorial-copy.is-layout-constrained > *,
.ik-support-card.is-layout-constrained > *,
.ik-contact-lines.is-layout-constrained > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.ik-support .wp-block-columns { align-items: flex-start; }
.ik-contact-lines { max-width: none !important; }
.ik-contact-lines a { overflow-wrap: anywhere; }

/* Explicit grid positions keep the arrow in the right-hand column even if
   Gutenberg adds layout classes or hidden helper elements. */
.ik-concert-date { grid-column: 1; grid-row: 1; }
.ik-concert-main { grid-column: 2; grid-row: 1; }
.ik-concert-program { grid-column: 3; grid-row: 1; }
.ik-concert-arrow {
  grid-column: 4;
  grid-row: 1;
  position: relative;
  justify-self: end;
  color: var(--ik-ink);
  font-size: 0 !important;
  line-height: 0;
}
.ik-concert-arrow img.emoji { display: none !important; }
.ik-concert-arrow::before,
.ik-concert-arrow::after {
  content: "";
  position: absolute;
  display: block;
  color: inherit;
  pointer-events: none;
}
.ik-concert-arrow::before {
  left: 50%;
  top: 50%;
  width: 15px;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%) rotate(-45deg);
  transform-origin: center;
}
.ik-concert-arrow::after {
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translate(1px, -8px);
}

@media (min-width: 1500px) {
  .ik-hero { min-height: 760px; }
  .ik-hero-grid { column-gap: 72px !important; }
  .ik-hero-visual { max-width: 590px; }
  .ik-hero-image img { min-height: 560px; }
  .ik-section-title { font-size: clamp(2.75rem, 3.8vw, 4.45rem) !important; }
  .ik-quote { font-size: clamp(2.3rem, 3.2vw, 3.8rem) !important; }
}

@media (max-width: 1100px) {
  .ik-concert-date { grid-column: 1; grid-row: 1; }
  .ik-concert-main { grid-column: 2; grid-row: 1; }
  .ik-concert-program { grid-column: 2; grid-row: 2; }
  .ik-concert-arrow { grid-column: 3; grid-row: 1 / 3; }
}

@media (max-width: 900px) {
  .ik-hero-grid { width: min(calc(100% - 40px), 720px) !important; }
  .ik-hero-grid > .wp-block-column:first-child,
  .ik-hero-grid > .wp-block-column:last-child { flex-basis: auto !important; }
  .ik-hero-visual { max-width: 650px; margin-left: auto !important; margin-right: auto !important; }
  .ik-next-card { margin-left: 20px !important; }
  .ik-support > .wp-block-columns { gap: 54px !important; }
}

@media (max-width: 700px) {
  .ik-hero-grid { width: calc(100% - 36px) !important; }
  .ik-next-card { margin-left: 8px !important; }
  .ik-concert-date { grid-column: 1; grid-row: 1; }
  .ik-concert-main { grid-column: 2; grid-row: 1; }
  .ik-concert-program { grid-column: 2 / 4; grid-row: 2; }
  .ik-concert-arrow { grid-column: 3; grid-row: 1; }
  .ik-concert-arrow::before { width: 12px; }
  .ik-concert-arrow::after { width: 6px; height: 6px; transform: translate(1px, -7px); }
}

.ik-next-card--dynamic {
  display: block;
  color: inherit;
  text-decoration: none;
}
.ik-next-card--dynamic:hover h2 { color: var(--ik-blue-dark); }

/* =========================================================
   v0.5 – compact hero, floating header and refined modules
   ========================================================= */
:root {
  --ik-max: 1220px;
  --ik-gutter: clamp(20px, 4vw, 58px);
}
html { scroll-padding-top: 88px; }

/* The header is calm and transparent at the top. After 90px it becomes a
   floating, softly translucent bar and drops in from above. */
.ik-site-header {
  position: absolute !important;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  min-height: 76px;
  background: rgba(251, 252, 250, .16) !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.ik-site-header.is-scrolled {
  position: fixed !important;
  min-height: 68px;
  background: rgba(251, 252, 250, .78) !important;
  border-bottom-color: rgba(23, 33, 39, .10) !important;
  box-shadow: 0 12px 34px rgba(10, 40, 50, .08) !important;
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
  animation: ik-header-drop .42s cubic-bezier(.22,.8,.26,1) both;
}
@keyframes ik-header-drop {
  from { transform: translateY(-115%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.admin-bar .ik-site-header { top: 32px; }

/* Outline buttons stay light: blue line and blue type, no filled hover. */
.ik-button.is-style-outline .wp-block-button__link:hover,
.ik-button.is-style-outline .wp-block-button__link:focus-visible {
  border-color: var(--ik-blue) !important;
  background: transparent !important;
  color: var(--ik-blue-dark) !important;
  transform: translateY(-2px);
}

/* Hero: compact enough to fit in the first viewport on common desktop sizes. */
.ik-hero {
  min-height: 100svh !important;
  padding-top: clamp(88px, 8vh, 108px) !important;
  padding-bottom: clamp(38px, 5vh, 62px) !important;
}
.ik-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
  width: min(calc(100% - (2 * var(--ik-gutter))), var(--ik-max)) !important;
  max-width: var(--ik-max) !important;
  gap: clamp(38px, 5vw, 70px) !important;
  align-items: center !important;
}
.ik-hero-grid > .wp-block-column { flex-basis: auto !important; min-width: 0; }
.ik-hero-title {
  max-width: 660px;
  margin-bottom: 22px !important;
  font-size: clamp(3.35rem, 5vw, 5.35rem) !important;
  line-height: .9 !important;
}
.ik-hero-copy { max-width: 565px; margin-bottom: 28px !important; }
.ik-hero-visual {
  width: 100%;
  max-width: 540px;
  margin-inline: auto !important;
  padding: 0 0 24px;
}
.ik-hero-image img {
  min-height: 0 !important;
  height: min(54svh, 515px);
  aspect-ratio: 4 / 5;
}
.ik-hero-visual > .wp-block-shortcode { margin: 0 !important; }
.ik-next-card,
.ik-next-card--dynamic {
  width: min(372px, 92%);
  margin: -88px 0 0 -28px !important;
  padding: 22px 25px !important;
}

/* Dynamic shortcode modules share the same page axis. */
.ik-concerts > .wp-block-shortcode,
.ik-support > .wp-block-shortcode {
  width: min(calc(100% - (2 * var(--ik-gutter))), var(--ik-max));
  max-width: var(--ik-max);
  margin-inline: auto !important;
}

/* Reliable, typographic concert arrow. The text variation selector prevents
   browsers from replacing it with a coloured emoji on mobile. */
.ik-concert-arrow {
  position: relative;
  z-index: 2;
  display: grid !important;
  place-items: center;
  justify-self: end;
  align-self: center;
  width: 44px;
  height: 44px;
  color: var(--ik-ink);
  font-size: 0 !important;
  line-height: 1;
}
.ik-concert-arrow::before {
  content: "\2197\FE0E" !important;
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border: 0 !important;
  color: currentColor;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  transform: none !important;
}
.ik-concert-arrow::after { display: none !important; }

/* Mona Asuka: narrower measure and a quotation mark that sits above the D. */
.ik-editorial-columns { align-items: center !important; }
.ik-editorial-columns > .wp-block-column:last-child { max-width: 690px; }
.ik-quote {
  position: relative;
  max-width: 670px;
  padding-top: 26px;
  margin-bottom: 25px !important;
  font-size: clamp(2.05rem, 3.05vw, 3.45rem) !important;
  letter-spacing: -.022em;
  line-height: 1.06 !important;
}
.ik-quote::before {
  content: "“" !important;
  position: absolute;
  top: -18px;
  left: 0;
  margin: 0 !important;
  color: var(--ik-blue);
  font-size: 1.65em;
  line-height: 1;
  vertical-align: initial;
}
.ik-editorial-copy { max-width: 610px; line-height: 1.62; }
.ik-editorial-copy p { max-width: none !important; }

/* Venue: more breathing room between the photograph and the facts. */
.ik-venue > .wp-block-columns,
.ik-venue .wp-block-columns.alignwide {
  display: grid !important;
  grid-template-columns: minmax(0, .98fr) minmax(350px, .82fr);
  gap: clamp(72px, 8vw, 118px) !important;
  align-items: center !important;
}
.ik-venue .wp-block-column { flex-basis: auto !important; min-width: 0; }
.ik-venue-image { min-height: 600px; max-width: 610px; }
.ik-fact {
  align-items: start;
  min-height: 0;
  padding: 18px 0;
  column-gap: 18px !important;
  row-gap: 0 !important;
}
.ik-fact > * { margin: 0 !important; align-self: start; }
.ik-fact p { line-height: 1.5; }

/* The ticket section now uses only a quiet blue gradient. */
.ik-tickets {
  background: linear-gradient(135deg, #039dc3 0%, #078fb4 55%, #007d9d 100%) !important;
}
.ik-tickets::after { display: none !important; }

/* Supporter logos are produced by the manager plugin. */
.ik-supporter-logos {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  width: 100%;
  border: 1px solid var(--ik-line);
  background: var(--ik-line);
}
.ik-supporter-logos--1 { grid-template-columns: minmax(220px, 360px); }
.ik-supporter-logos--2 { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
.ik-supporter-logos--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ik-supporter-logos--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ik-supporter-logo {
  display: grid;
  place-items: center;
  min-height: 124px;
  padding: 22px;
  background: #fff;
  text-decoration: none;
}
.ik-supporter-logo img {
  width: auto;
  max-width: min(170px, 100%);
  height: auto;
  max-height: 72px;
  object-fit: contain;
}
.ik-supporter-logo:hover img { opacity: .72; }

/* Footer logo uses the same uploaded logo, optically inverted to white. */
.ik-footer-logo { margin: 0 0 22px !important; }
.ik-footer-logo img {
  width: auto !important;
  max-width: 238px;
  max-height: 64px;
  filter: brightness(0) invert(1);
}

@media (min-width: 1450px) {
  .ik-hero-grid { max-width: 1180px !important; }
  .ik-hero-visual { max-width: 515px; }
  .ik-hero-title { font-size: 5.15rem !important; }
}

@media (max-width: 900px) {
  .ik-hero { min-height: auto !important; padding-top: 104px !important; }
  .ik-hero-grid { grid-template-columns: 1fr; width: min(calc(100% - 40px), 720px) !important; }
  .ik-hero-visual { max-width: 620px; }
  .ik-hero-image img { height: auto; min-height: 500px !important; }
  .ik-next-card, .ik-next-card--dynamic { margin-left: 18px !important; }
  .ik-venue > .wp-block-columns,
  .ik-venue .wp-block-columns.alignwide { grid-template-columns: 1fr; gap: 52px !important; }
  .ik-venue-image { max-width: none; min-height: 500px; }
  .ik-supporter-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .admin-bar .ik-site-header { top: 46px; }
  .ik-site-header { min-height: 68px; background: rgba(251,252,250,.42) !important; }
  .ik-site-header.is-scrolled { min-height: 64px; }
  .ik-hero { padding-top: 92px !important; padding-bottom: 58px !important; }
  .ik-hero-grid { width: calc(100% - 36px) !important; gap: 42px !important; }
  .ik-hero-title { font-size: clamp(3.1rem, 14.5vw, 4.65rem) !important; }
  .ik-hero-image img { min-height: 405px !important; }
  .ik-next-card, .ik-next-card--dynamic { width: calc(100% - 14px); margin: -58px 7px 0 !important; }
  .ik-concert-arrow { width: 36px; height: 36px; }
  .ik-concert-arrow::before { font-size: .88rem; }
  .ik-quote { padding-top: 22px; font-size: clamp(2rem, 9.4vw, 2.95rem) !important; }
  .ik-quote::before { top: -14px; }
  .ik-venue-image { min-height: 390px; }
  .ik-supporter-logos,
  .ik-supporter-logos--1,
  .ik-supporter-logos--2,
  .ik-supporter-logos--3,
  .ik-supporter-logos--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ik-supporter-logo { min-height: 98px; padding: 16px; }
}

/* =========================================================
   v0.6 – original SVG arrows, archive page and glass menu
   ========================================================= */

/* The supplied Illustrator arrow is used as a mask, so it always inherits
   the text colour and remains identical across desktop and mobile browsers. */
.ik-button .wp-block-button__link::after {
  content: "" !important;
  display: block;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
  mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
}

.ik-concert-arrow {
  position: relative;
  display: grid !important;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(23, 33, 39, .18);
  border-radius: 50%;
  background: transparent;
  color: var(--ik-ink);
  transition: background-color .24s ease, border-color .24s ease, color .24s ease, transform .24s ease;
}
.ik-concert-arrow::before {
  content: "" !important;
  display: block !important;
  width: 15px !important;
  height: 15px !important;
  border: 0 !important;
  background: currentColor !important;
  -webkit-mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
  mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
  transform: none !important;
  transition: transform .24s ease;
}
.ik-concert-arrow::after { display: none !important; }
.ik-concert-row:hover .ik-concert-arrow,
.ik-concert-row:focus-within .ik-concert-arrow {
  border-color: var(--ik-ink);
  background: var(--ik-ink);
  color: #fff;
  transform: none;
}
.ik-concert-row:hover .ik-concert-arrow::before,
.ik-concert-row:focus-within .ik-concert-arrow::before {
  transform: translate(1px, -1px) !important;
}

/* Archive button below the current season. */
.ik-concert-archive-link-wrap {
  width: min(calc(100% - (2 * var(--ik-gutter))), var(--ik-max));
  max-width: var(--ik-max);
  margin: 30px auto 0;
  text-align: right;
}
.ik-concert-archive-link {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  min-height: 48px;
  padding: 12px 18px;
  border: 1px solid var(--ik-ink);
  color: var(--ik-ink);
  font-size: .84rem;
  font-weight: 400;
  letter-spacing: .025em;
  text-decoration: none;
  transition: color .22s ease, border-color .22s ease, transform .22s ease;
}
.ik-concert-archive-link span {
  display: block;
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
  mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
}
.ik-concert-archive-link:hover,
.ik-concert-archive-link:focus-visible {
  border-color: var(--ik-blue);
  color: var(--ik-blue-dark);
  transform: translateY(-2px);
}

/* Only the ticket-section outline button remains white on hover. */
.ik-tickets .ik-button.is-style-outline .wp-block-button__link:hover,
.ik-tickets .ik-button.is-style-outline .wp-block-button__link:focus-visible {
  border-color: rgba(255,255,255,.72) !important;
  background: transparent !important;
  color: #fff !important;
  opacity: .76;
}

/* Supporters: pure white section and evenly distributed, frameless logos. */
.ik-support { background: #fff !important; }
.ik-supporter-logos,
.ik-supporter-logos--1,
.ik-supporter-logos--2,
.ik-supporter-logos--3,
.ik-supporter-logos--4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)) !important;
  align-items: center;
  gap: clamp(30px, 5vw, 78px) !important;
  width: 100%;
  border: 0 !important;
  background: transparent !important;
}
.ik-supporter-logo {
  min-width: 0;
  min-height: 90px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.ik-supporter-logo img {
  max-width: min(190px, 100%) !important;
  max-height: 78px !important;
}

/* Past-events page. */
.ik-archive-page { min-height: 65svh; }
.ik-archive-head { margin-left: 0 !important; }
.ik-archive-title {
  max-width: 850px;
  margin: 0 0 20px !important;
  font-family: var(--ik-serif) !important;
  font-size: clamp(3.4rem, 6vw, 6rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.045em;
  line-height: .9 !important;
}
.ik-archive-intro { margin-left: 0 !important; color: var(--ik-muted); }
.ik-archive-season + .ik-archive-season { margin-top: clamp(64px, 8vw, 104px); }
.ik-archive-season-title {
  margin: 0 0 22px !important;
  color: var(--ik-blue-dark);
  font-family: var(--ik-sans) !important;
  font-size: .74rem !important;
  font-weight: 500 !important;
  letter-spacing: .16em;
  line-height: 1.3 !important;
  text-transform: uppercase;
}
.ik-concert-list--archive .ik-concert-row { opacity: 1 !important; }
.ik-concert-list--archive .ik-concert-row::after { display: none !important; }

/* Mobile navigation based on the first uploaded concept: luminous full-screen
   glass, large serif links and softly staggered movement. */
body.ik-mobile-menu-open { overflow: hidden; }

@media (min-width: 960px) {
  .ik-main-nav .wp-block-navigation__responsive-container-open { display: none !important; }
  .ik-main-nav .wp-block-navigation__responsive-container.hidden-by-default {
    position: static !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
  }
}

@media (max-width: 959px) {
  .ik-brand-year { display: none; }
  .ik-site-header .wp-block-site-logo img { max-width: 188px; max-height: 47px; }

  .ik-main-nav .wp-block-navigation__responsive-container-open {
    display: grid !important;
    place-items: center;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(23,52,58,.13);
    border-radius: 50%;
    background: rgba(255,255,255,.66);
    color: var(--ik-ink);
    box-shadow: 0 9px 26px rgba(23,52,58,.10);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .ik-main-nav .wp-block-navigation__responsive-container-open svg { width: 24px; height: 24px; }

  .ik-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    z-index: 9999;
    inset: 0 !important;
    display: block !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-height: none !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: linear-gradient(160deg, rgba(250,249,244,.91), rgba(207,230,233,.82)) !important;
    color: var(--ik-ink) !important;
    opacity: 1;
    backdrop-filter: blur(26px) saturate(138%);
    -webkit-backdrop-filter: blur(26px) saturate(138%);
    animation: ik-mobile-glass-in .48s ease both;
  }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 36% -10% -8%;
    background: url("assets/images/aquarell-blau.jpg") center bottom / cover no-repeat;
    opacity: .12;
    filter: saturate(.65);
    mix-blend-mode: multiply;
    pointer-events: none;
  }
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: 126px;
    right: -54px;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 50%;
    box-shadow: inset 0 0 60px rgba(255,255,255,.34);
    pointer-events: none;
  }
  @keyframes ik-mobile-glass-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  .ik-main-nav .wp-block-navigation__responsive-close,
  .ik-main-nav .wp-block-navigation__responsive-dialog {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-close {
    top: max(18px, env(safe-area-inset-top));
    right: max(20px, env(safe-area-inset-right));
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(23,52,58,.13);
    border-radius: 50%;
    background: rgba(255,255,255,.52);
    color: var(--ik-ink);
    box-shadow: 0 9px 26px rgba(23,52,58,.08);
  }
  .ik-main-nav .wp-block-navigation__responsive-container-close svg { width: 23px; height: 23px; }

  .ik-main-nav .wp-block-navigation__responsive-container-content {
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: stretch !important;
    width: 100%;
    height: 100%;
    padding: max(118px, calc(env(safe-area-inset-top) + 104px)) max(24px, env(safe-area-inset-right)) max(25px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)) !important;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content::before {
    content: "Navigation";
    margin-bottom: 20px;
    color: rgba(23,52,58,.53);
    font-size: .52rem;
    font-weight: 500;
    letter-spacing: .20em;
    line-height: 1;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(8px);
    animation: ik-mobile-item-in .42s .08s ease forwards;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content::after {
    content: "Herrenchiemsee\A Saison 2026";
    display: block;
    margin-top: auto;
    padding-top: 18px;
    padding-right: 88px;
    border-top: 1px solid rgba(23,52,58,.18);
    color: rgba(23,52,58,.57);
    font-size: .48rem;
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 1.5;
    text-transform: uppercase;
    white-space: pre;
    opacity: 0;
    transform: translateY(12px);
    animation: ik-mobile-item-in .5s .34s cubic-bezier(.2,.75,.2,1) forwards;
  }

  .ik-main-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
    position: static;
    display: flex !important;
    flex: 0 0 auto;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100%;
    counter-reset: ik-mobile-nav;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
    position: relative;
    width: 100%;
    counter-increment: ik-mobile-nav;
    opacity: 0;
    transform: translateY(22px);
    animation: ik-mobile-item-in .58s cubic-bezier(.2,.75,.2,1) forwards;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:nth-child(1) { animation-delay: .10s; }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:nth-child(2) { animation-delay: .15s; }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:nth-child(3) { animation-delay: .20s; }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:nth-child(4) { animation-delay: .25s; }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:nth-child(5) { animation-delay: .30s; }
  @keyframes ik-mobile-item-in {
    to { opacity: 1; transform: translateY(0); }
  }

  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.ik-ticket-nav)::after {
    content: "0" counter(ik-mobile-nav);
    position: absolute;
    right: 0;
    bottom: 15px;
    color: rgba(23,52,58,.43);
    font-size: .52rem;
    font-weight: 500;
    letter-spacing: .10em;
    line-height: 1;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.ik-ticket-nav) > .wp-block-navigation-item__content {
    display: block;
    width: 100%;
    padding: 9px 42px 9px 0 !important;
    color: var(--ik-ink) !important;
    font-family: var(--ik-serif) !important;
    font-size: clamp(2.45rem, 10.5vw, 3.6rem) !important;
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: .96 !important;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content::after {
    display: none !important;
  }

  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav {
    position: absolute;
    right: max(24px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    width: 64px;
    height: 64px;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    padding: 0 0 9px !important;
    border-radius: 50%;
    background: var(--ik-blue) !important;
    color: #fff !important;
    font-family: var(--ik-sans) !important;
    font-size: .53rem !important;
    font-weight: 500;
    letter-spacing: .08em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    box-shadow: 0 12px 25px rgba(3,157,195,.24);
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content::after {
    content: "" !important;
    position: absolute;
    bottom: 13px;
    display: block !important;
    width: 11px;
    height: 11px;
    background: currentColor;
    -webkit-mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
    mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
  }
}

@media (max-width: 700px) {
  .ik-concert-arrow { width: 36px; height: 36px; }
  .ik-concert-arrow::before { width: 12px !important; height: 12px !important; }
  .ik-concert-archive-link-wrap { text-align: left; }
  .ik-supporter-logos,
  .ik-supporter-logos--1,
  .ik-supporter-logos--2,
  .ik-supporter-logos--3,
  .ik-supporter-logos--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px 24px !important;
  }
  .ik-supporter-logo { min-height: 72px !important; }
  .ik-archive-title { font-size: clamp(3rem, 14vw, 4.45rem) !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open,
  .ik-main-nav .wp-block-navigation__responsive-container-content::before,
  .ik-main-nav .wp-block-navigation__responsive-container-content::after,
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* =========================================================
   v0.7 – refreshed homepage, wider dynamic modules and refined glass menu
   ========================================================= */
:root {
  --ik-module-max: 1520px;
  --ik-module-gutter: clamp(18px, 3.2vw, 54px);
}

/* The small season label beside the desktop logo is intentionally removed. */
.ik-brand-year { display: none !important; }

/* The two hero buttons now share one exact optical height. */
.ik-hero .wp-block-buttons { align-items: stretch; }
.ik-hero .wp-block-button { display: flex; }
.ik-hero .ik-button .wp-block-button__link {
  min-height: 50px;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  line-height: 1.15;
}

/* Dynamic concert rows and partner logos use the broad page axis instead of
   the narrower text measure above them. */
.ik-concerts > .wp-block-shortcode,
.ik-support > .wp-block-shortcode {
  position: relative;
  left: 50%;
  width: min(calc(100vw - (2 * var(--ik-module-gutter))), var(--ik-module-max)) !important;
  max-width: var(--ik-module-max) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: translateX(-50%);
}

/* Artistic direction: the supplied biography needs a calm, readable measure. */
.ik-editorial-columns > .wp-block-column:last-child { max-width: 720px; }
.ik-quote { max-width: 690px; }
.ik-editorial-copy {
  max-width: 660px;
  font-size: .98rem;
  line-height: 1.66;
}
.ik-editorial-copy p { margin-bottom: 1.18rem !important; }

/* Stronger translucent blur and slightly larger typography in the full-screen
   menu, while preserving the first supplied mobile-menu concept. */
@media (max-width: 959px) {
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: linear-gradient(160deg, rgba(250,249,244,.76), rgba(199,226,231,.66)) !important;
    backdrop-filter: blur(34px) saturate(152%);
    -webkit-backdrop-filter: blur(34px) saturate(152%);
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content::before {
    font-size: .58rem;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content::after {
    font-size: .56rem;
    letter-spacing: .14em;
    line-height: 1.55;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.ik-ticket-nav)::after {
    bottom: 17px;
    font-size: .60rem;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.ik-ticket-nav) > .wp-block-navigation-item__content {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    font-size: clamp(2.7rem, 11.4vw, 3.95rem) !important;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav,
  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content {
    width: 72px;
    height: 72px;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 0 !important;
    font-size: .60rem !important;
    line-height: 1;
  }
  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content::after {
    position: static;
    flex: 0 0 11px;
    width: 11px;
    height: 11px;
  }
}

@media (max-width: 700px) {
  /* Clear separation between the two support cards and again before sponsors. */
  .ik-support > .wp-block-columns { gap: 68px !important; }
  .ik-partner-label { margin-top: 78px !important; }

  .ik-concerts > .wp-block-shortcode,
  .ik-support > .wp-block-shortcode {
    width: calc(100vw - 36px) !important;
  }
}

/* Keep the archive call-to-action aligned with the new wide concert axis. */
.ik-concerts .ik-concert-archive-link-wrap {
  width: 100%;
  max-width: none;
}


/* =========================================================
   v0.8 – true wide module axis and visible mobile backdrop blur
   ========================================================= */
:root {
  /* This is the broad inner page container used by the large homepage
     modules. It deliberately keeps a quiet outer gutter on wide screens. */
  --ik-wide-module-max: 1520px;
  --ik-wide-module-gutter: clamp(24px, 6vw, 116px);
}

/* Core/shortcode does not always keep its Gutenberg wrapper in the rendered
   frontend. Target the actual plugin output as well as future wrapper groups.
   margin-left:50% (rather than left:50%) breaks the module out of WordPress's
   760px content column and centres it on the viewport reliably. */
.ik-concerts > :is(
  .ik-concert-list,
  .ik-concert-archive-link-wrap,
  .ik-wide-dynamic-module,
  .wp-block-shortcode
),
.ik-support > :is(
  .ik-supporter-logos,
  .ik-supporter-empty,
  .ik-wide-dynamic-module,
  .wp-block-shortcode
) {
  position: relative !important;
  left: auto !important;
  width: min(calc(100vw - (2 * var(--ik-wide-module-gutter))), var(--ik-wide-module-max)) !important;
  max-width: var(--ik-wide-module-max) !important;
  margin-right: 0 !important;
  margin-left: 50% !important;
  transform: translateX(-50%) !important;
}

/* If the shortcode is inside the new explicit group, the generated module
   simply fills that already-wide group rather than breaking out a second time. */
.ik-wide-dynamic-module > :is(
  .ik-concert-list,
  .ik-concert-archive-link-wrap,
  .ik-supporter-logos,
  .ik-supporter-empty,
  .wp-block-shortcode
) {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  transform: none !important;
}
.ik-wide-dynamic-module > .ik-concert-archive-link-wrap { margin-top: 30px !important; }

/* The list and logo grid themselves must be allowed to occupy the complete
   broad axis, even when a plugin stylesheet was loaded after the theme. */
.ik-concerts .ik-concert-list,
.ik-concerts .ik-concert-archive-link-wrap,
.ik-support .ik-supporter-logos {
  box-sizing: border-box;
  max-width: none;
}

@media (max-width: 700px) {
  .ik-concerts > :is(
    .ik-concert-list,
    .ik-concert-archive-link-wrap,
    .ik-wide-dynamic-module,
    .wp-block-shortcode
  ),
  .ik-support > :is(
    .ik-supporter-logos,
    .ik-supporter-empty,
    .ik-wide-dynamic-module,
    .wp-block-shortcode
  ) {
    width: calc(100vw - 36px) !important;
  }
}

/* Real glass on the mobile overlay. WordPress inserts several full-size inner
   wrappers; they have to remain transparent, otherwise they conceal the
   backdrop-filter of the responsive container. */
@media (max-width: 959px) {
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: linear-gradient(
      158deg,
      rgba(250, 250, 247, .58),
      rgba(198, 226, 232, .50)
    ) !important;
    -webkit-backdrop-filter: blur(28px) saturate(145%) !important;
    backdrop-filter: blur(28px) saturate(145%) !important;
    will-change: backdrop-filter;
  }

  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open :is(
    .wp-block-navigation__responsive-close,
    .wp-block-navigation__responsive-dialog,
    .wp-block-navigation__responsive-container-content,
    .wp-block-navigation__container
  ) {
    background: transparent !important;
  }

  /* Keep the decorative watercolour subtle enough that the blurred page below
     remains perceptible. */
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open::before {
    opacity: .085;
  }
}


/* =========================================================
   v0.9 – calmer mobile menu and a fixed four-column sponsor grid
   ========================================================= */

/* Desktop: eight current sponsors form two balanced rows of four. Additional
   logos continue in further rows of four without changing the visual rhythm. */
@media (min-width: 960px) {
  .ik-support .ik-supporter-logos,
  .ik-support .ik-supporter-logos--1,
  .ik-support .ik-supporter-logos--2,
  .ik-support .ik-supporter-logos--3,
  .ik-support .ik-supporter-logos--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: clamp(42px, 5vw, 88px) !important;
    row-gap: clamp(54px, 6vw, 92px) !important;
  }

  .ik-support .ik-supporter-logo {
    min-width: 0;
  }
}

/* Some mobile browsers do not visibly render backdrop-filter on WordPress's
   responsive navigation container. The overlay is therefore slightly more
   opaque and the page beneath receives a subtle real blur as a dependable
   fallback. */
@media (max-width: 959px) {
  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: linear-gradient(
      158deg,
      rgba(250, 250, 247, .94),
      rgba(211, 233, 237, .89)
    ) !important;
    -webkit-backdrop-filter: blur(30px) saturate(135%) !important;
    backdrop-filter: blur(30px) saturate(135%) !important;
  }

  body.ik-mobile-menu-open main,
  body.ik-mobile-menu-open .ik-site-footer {
    filter: blur(9px);
    transform: scale(1.008);
    transform-origin: center top;
    transition: filter .28s ease, transform .28s ease;
    pointer-events: none;
  }

  .ik-main-nav .wp-block-navigation__responsive-container.is-menu-open::before {
    opacity: .055;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.ik-mobile-menu-open main,
  body.ik-mobile-menu-open .ik-site-footer {
    transition: none;
  }
}

/* --------------------------------------------------------------
   v0.13 – remove WordPress template gap and unify archive rows
-------------------------------------------------------------- */
/* WordPress' global block spacing can otherwise create a visible white strip
   between the fixed/transparent header and the first full-width hero. */
:where(.wp-site-blocks) > * {
  margin-block-start: 0 !important;
}

/* The archive uses exactly the same wide axis and row rhythm as the concert
   list on the homepage. */
.ik-archive-concerts {
  width: min(calc(100% - (2 * var(--ik-gutter))), var(--ik-max)) !important;
  max-width: var(--ik-max) !important;
  margin-inline: auto !important;
}
.ik-archive-concerts > .wp-block-shortcode,
.ik-archive-concerts .ik-past-concerts,
.ik-archive-concerts .ik-archive-season,
.ik-archive-concerts .ik-concert-list--archive {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
.ik-concert-list--archive .ik-concert-row {
  display: grid !important;
  grid-template-columns: 135px minmax(270px, 1.12fr) minmax(240px, .88fr) 58px !important;
  gap: 30px !important;
  align-items: center !important;
  min-height: 116px !important;
  padding: 28px 0 !important;
}
.ik-concert-list--archive .ik-concert-arrow {
  align-self: center !important;
  justify-self: end !important;
  grid-column: 4 !important;
  grid-row: 1 !important;
  margin-block: auto !important;
}

@media (max-width: 1050px) {
  .ik-concert-list--archive .ik-concert-row {
    grid-template-columns: 118px minmax(0, 1fr) 54px !important;
  }
  .ik-concert-list--archive .ik-concert-program {
    grid-column: 2 / 3 !important;
  }
  .ik-concert-list--archive .ik-concert-arrow {
    grid-column: 3 !important;
    grid-row: 1 / 3 !important;
  }
}

@media (max-width: 700px) {
  .ik-concert-list--archive .ik-concert-row {
    grid-template-columns: 78px minmax(0, 1fr) 38px !important;
    gap: 14px !important;
    min-height: 0 !important;
    padding: 25px 0 !important;
  }
  .ik-concert-list--archive .ik-concert-program {
    grid-column: 2 / 4 !important;
  }
  .ik-concert-list--archive .ik-concert-arrow {
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
  }
}


/* --------------------------------------------------------------
   v0.15 – larger logo and unified Mona contact
-------------------------------------------------------------- */
.ik-site-header .wp-block-site-logo img {
  max-width: 218px !important;
  max-height: 54px !important;
}
@media (max-width: 959px) {
  .ik-site-header .wp-block-site-logo img {
    max-width: 188px !important;
    max-height: 47px !important;
  }
}


/* --------------------------------------------------------------
   v0.17 – mobile menu footer, centered ticket circle and stronger circles
-------------------------------------------------------------- */
.ik-season-stamp {
  background: linear-gradient(145deg, #46abc5, #278ba8) !important;
}

@media (max-width: 959px) {
  .ik-main-nav .wp-block-navigation__responsive-container-content::after {
    content: "Kammermusik auf Herrenchiemsee\A Saison 2026" !important;
    margin-top: auto;
    padding: 16px 94px 2px 0 !important;
    border-top: 0 !important;
    color: rgba(23,52,58,.66) !important;
    font-size: .56rem !important;
    font-weight: 500;
    letter-spacing: .145em;
    line-height: 1.65;
    text-transform: uppercase;
    white-space: pre-wrap;
  }

  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav {
    right: max(24px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    width: 76px !important;
    height: 76px !important;
  }

  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content {
    display: grid !important;
    place-items: center !important;
    width: 76px !important;
    height: 76px !important;
    padding: 0 !important;
    border-radius: 50%;
    background: #278ba8 !important;
    color: #fff !important;
    font-size: .61rem !important;
    line-height: 1 !important;
    text-align: center !important;
    text-transform: uppercase;
  }

  .ik-main-nav .wp-block-navigation__responsive-container-content .ik-ticket-nav .wp-block-navigation-item__content::after {
    display: none !important;
    content: none !important;
  }
}


/* v0.19 – on mobile the concert modules get a little more breathing room */
@media (max-width: 700px) {
  .ik-concerts > :is(
    .ik-concert-list,
    .ik-concert-archive-link-wrap,
    .ik-wide-dynamic-module,
    .wp-block-shortcode
  ) {
    width: calc(100vw - 60px) !important;
  }
}


/* =========================================================
   v0.20 – mobile concert polish and softer editorial section
   ========================================================= */
@media (max-width: 700px) {
  /* Keep a little breathing room around the concert block on phones. */
  .ik-concerts > :is(
    .ik-concert-list,
    .ik-concert-archive-link-wrap,
    .ik-wide-dynamic-module,
    .wp-block-shortcode
  ) {
    width: calc(100vw - 60px) !important;
  }
}


/* v0.20 – small mobile refinements for alternative 3 */
@media (max-width: 700px) {
  body.ik-page-alt-3 .ik-concerts .ik-concert-archive-link {
    color: #fff !important;
    border-color: rgba(255,255,255,.58) !important;
  }
  body.ik-page-alt-3 .ik-concerts .ik-concert-archive-link span {
    background: currentColor !important;
  }
  body.ik-page-alt-3 .ik-concerts .ik-concert-row--past::after {
    color: rgba(255,255,255,.74) !important;
  }
}


/* v0.21 – bundled vector logo replaces the former raster logo everywhere. */
.ik-site-header .wp-block-site-logo img,
.ik-site-footer .wp-block-site-logo img {
  height: auto !important;
  object-fit: contain;
}


/* v0.22 – robust bundled SVG logo output */
.wp-block-site-logo.ik-vector-site-logo {
  display: block;
  flex: 0 0 auto;
  line-height: 0;
}
.wp-block-site-logo.ik-vector-site-logo a {
  display: block;
  line-height: 0;
}
.wp-block-site-logo.ik-vector-site-logo img {
  display: block !important;
  width: auto;
  height: auto !important;
  opacity: 1;
  visibility: visible;
}


/* =========================================================
   v0.23 – guaranteed inline SVG logo in header and footer
   ========================================================= */
.ik-brand {
  position: relative;
  color: var(--ik-ink);
}
.ik-vector-site-logo,
.ik-vector-logo-link {
  display: block !important;
  flex: 0 0 auto;
  line-height: 0;
}
.ik-site-header .ik-vector-site-logo,
.ik-site-header .ik-vector-logo-link {
  width: min(218px, 24vw);
}
.ik-logo-svg {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  overflow: visible;
  color: inherit;
  opacity: 1 !important;
  visibility: visible !important;
}
.ik-site-footer .ik-vector-site-logo,
.ik-site-footer .ik-vector-logo-link,
.ik-footer-logo {
  width: min(238px, 100%);
  color: #fff;
}
body.ik-has-alt-hero .ik-site-header:not(.is-scrolled) .ik-brand,
body.ik-page-alt-3 .ik-site-header .ik-brand {
  color: #fff;
}
body.ik-has-alt-hero .ik-site-header.is-scrolled .ik-brand,
body:not(.ik-has-alt-hero) .ik-site-header .ik-brand {
  color: var(--ik-ink);
}
@media (max-width: 959px) {
  .ik-site-header .ik-vector-site-logo,
  .ik-site-header .ik-vector-logo-link {
    width: min(188px, 52vw);
  }
}


/* =========================================================
   v0.24 – media-library SVG logo, with a client-side fallback
   ========================================================= */
.ik-brand {
  display: flex !important;
  align-items: center;
  flex: 0 0 auto !important;
  min-width: min(218px, 24vw);
  min-height: 34px;
  overflow: visible !important;
}
.ik-site-header .ik-vector-site-logo,
.ik-site-header .ik-vector-logo-link,
.ik-site-header .ik-logo-image,
.ik-site-header .ik-header-logo-runtime {
  display: block !important;
  width: min(218px, 24vw) !important;
  min-width: 150px;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  line-height: 0;
  opacity: 1 !important;
  visibility: visible !important;
}
.ik-logo-image,
.ik-header-logo-runtime {
  object-fit: contain;
  object-position: left center;
}
.ik-header-logo-runtime-link {
  display: block !important;
  flex: 0 0 auto;
  line-height: 0;
}
body.ik-has-alt-hero .ik-site-header:not(.is-scrolled) :is(.ik-logo-image,.ik-header-logo-runtime),
body.ik-page-alt-3 .ik-site-header :is(.ik-logo-image,.ik-header-logo-runtime) {
  filter: brightness(0) invert(1) !important;
}
body.ik-has-alt-hero .ik-site-header.is-scrolled :is(.ik-logo-image,.ik-header-logo-runtime),
body:not(.ik-has-alt-hero) .ik-site-header :is(.ik-logo-image,.ik-header-logo-runtime) {
  filter: none !important;
}
.ik-site-footer :is(.ik-logo-image,.ik-header-logo-runtime) {
  filter: brightness(0) invert(1) !important;
}
html:not(.ik-brand-intro-pending):not(.ik-brand-intro-running) body.ik-page-alternative .ik-site-header {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}
@media (max-width: 959px) {
  .ik-brand {
    min-width: min(188px, 52vw);
  }
  .ik-site-header .ik-vector-site-logo,
  .ik-site-header .ik-vector-logo-link,
  .ik-site-header .ik-logo-image,
  .ik-site-header .ik-header-logo-runtime {
    width: min(188px, 52vw) !important;
    min-width: 132px;
  }
}


/* =========================================================
   v0.26 – legal pages
   ========================================================= */
.ik-legal-page {
  background: var(--ik-paper);
}
.ik-legal-shell {
  width: min(calc(100% - 48px), 1120px) !important;
  margin-inline: auto !important;
}
.ik-legal-header {
  max-width: 820px;
  padding: clamp(120px, 14vw, 190px) 0 clamp(48px, 7vw, 84px);
}
.ik-legal-header .wp-block-post-title {
  margin: 0 !important;
  color: var(--ik-ink);
  font-family: var(--ik-serif) !important;
  font-size: clamp(3.3rem, 8vw, 7.4rem) !important;
  font-weight: 400 !important;
  letter-spacing: -.045em;
  line-height: .88 !important;
}
.ik-legal-content {
  max-width: 800px;
  padding-bottom: clamp(88px, 12vw, 150px);
}
.ik-legal-content > :where(h2,h3) {
  color: var(--ik-ink);
  font-family: var(--ik-serif) !important;
  font-weight: 400 !important;
  letter-spacing: -.025em;
}
.ik-legal-content > h2 {
  margin: 70px 0 18px !important;
  padding-top: 24px;
  border-top: 1px solid rgba(3,157,195,.24);
  font-size: clamp(2rem, 4vw, 3rem) !important;
  line-height: 1 !important;
}
.ik-legal-content > h3 {
  margin: 36px 0 12px !important;
  font-size: clamp(1.45rem, 2.5vw, 2rem) !important;
}
.ik-legal-content :where(p,li) {
  color: var(--ik-muted);
  font-size: 1rem;
  line-height: 1.72;
}
.ik-legal-content a {
  color: var(--ik-blue-dark);
  text-underline-offset: .18em;
}
.ik-legal-content ul {
  padding-left: 1.2em;
}
.ik-legal-meta {
  display: inline-block;
  margin-top: 20px !important;
  color: var(--ik-blue-dark) !important;
  font-size: .72rem !important;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ik-legal-review-notice {
  margin: 0 0 44px;
  padding: 18px 20px;
  border-left: 4px solid #dba617;
  background: #fff8dd;
  color: #4d421e;
  font-size: .9rem;
  line-height: 1.55;
  box-shadow: 0 8px 30px rgba(23,33,39,.06);
}
@media (max-width: 700px) {
  .ik-legal-shell { width: calc(100% - 36px) !important; }
  .ik-legal-header { padding-top: 110px; }
  .ik-legal-content > h2 { margin-top: 54px !important; }
}


/* =========================================================
   v0.31 – compact ticket seller glass chooser
   ========================================================= */
.ik-tickets .ik-tickets-lead a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  text-decoration-color: rgba(255,255,255,.62);
}
.ik-tickets .ik-tickets-lead a:hover,
.ik-tickets .ik-tickets-lead a:focus-visible { text-decoration-color: currentColor; }
.ik-tickets .wp-block-buttons {
  position: relative;
  z-index: 8;
  overflow: visible;
}
.ik-ticket-sellers-popover[hidden] { display: none !important; }
.ik-ticket-sellers-popover {
  position: absolute;
  z-index: 40;
  top: calc(100% + 12px);
  left: 0;
  width: min(330px, calc(100vw - 48px));
  padding: 16px;
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,255,255,.26), rgba(223,245,250,.14)), rgba(5,78,110,.58);
  box-shadow: 0 22px 54px rgba(0,35,57,.24), inset 0 1px 0 rgba(255,255,255,.26);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
  backdrop-filter: blur(22px) saturate(135%);
}
.ik-ticket-sellers-popover__label {
  margin: 0 0 11px !important;
  color: rgba(255,255,255,.78) !important;
  font-size: .64rem !important;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 1.35;
  text-transform: uppercase;
}
.ik-ticket-sellers-popover__actions {
  display: grid;
  gap: 8px;
}
.ik-ticket-seller-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 11px;
  background: rgba(255,255,255,.10);
  color: #fff !important;
  text-decoration: none !important;
  font-size: .82rem;
  letter-spacing: .015em;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.ik-ticket-seller-link::after {
  content: "";
  flex: 0 0 13px;
  width: 13px;
  height: 13px;
  margin-left: 14px;
  background: currentColor;
  -webkit-mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
  mask: url("assets/images/arrow-inselkonzerte.svg") center / contain no-repeat;
}
.ik-ticket-seller-link:hover,
.ik-ticket-seller-link:focus-visible {
  border-color: rgba(255,255,255,.76);
  background: rgba(255,255,255,.18);
  transform: translateY(-1px);
}
@media (max-width: 700px) {
  .ik-tickets .wp-block-buttons { width: 100%; }
  .ik-ticket-sellers-trigger { width: 100%; justify-content: space-between; }
  .ik-ticket-sellers-popover {
    right: 0;
    left: 0;
    width: 100%;
    border-radius: 16px;
  }
}
