@import "reset.css";
@import "fonts.css";
@import "remixicon.css";
@import "a11y.css";
@import "colors.css";
@import "gender.css";
@import "layout.css";
@import "menu.css";
@import "partners.css";
@import "countdown.css";

body {
  font-family: "Carlito", sans-serif;
  display: grid;
  margin: 0 auto;
  min-height: 100vh;
  box-sizing: border-box;
  grid-template-areas:
    "gender"
    "header"
    "main"
    "footer";
  grid-template-rows: auto auto 1fr auto auto;

  /* Comfortable line spacing */
  line-height: 1.6;

  font-size: 1.1rem;

  max-width: 100vw;

  position: relative;
}

.content-wrap p {
  margin-bottom: .75em;
}

h1 {
  font-family: "Press Start 2P", monospace;
  text-align: center;
  font-size: 1.5em;
}

h2,
h3 {
  font-family: "Carlito", monospace;
  font-size: x-large;
  font-weight: bold;
  text-align: center;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 0.75em;
  border-bottom: 4px solid;
  border-image: linear-gradient(
    to right,
    var(--color-lila),
    var(--color-blau),
    var(--color-tuerkis),
    var(--color-gruen),
    var(--color-gelborange),
    var(--color-pink)
  ) 1;
}

.page__title {
  color: var(--color-primary);
  padding-inline: var(--content-padding-inline);
  margin-top: 2rem;
  padding-block: 1rem;
}

.page-title-strip {
  position: relative;
  padding-block: 0.75rem;
}

.page-title-strip .page__title {
  color: inherit;
  margin-top: 0;
}

.page-corners {
  position: relative;
  height: 0;
}

.page-corner {
  position: absolute;
  top: 0;
  width: 320px;
  max-width: 35vw;
  height: auto;
  pointer-events: none;
}

.page-corner:first-child {
  left: 0;
}

.page-corner:last-child {
  right: 0;
}

@media screen and (max-width: 40em) {
  .page-corner {
    display: none;
  }
}

.page-hero {
  position: relative;
  background-color: var(--color-primary-pastel);
  background-size: cover;
  background-position: center;
  padding-block: 3rem;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-hero .page__title {
  color: var(--color-primary-dark);
}

.page-hero__back {
  position: absolute;
  top: 1rem;
  left: var(--content-padding-inline);
  z-index: 2;
  background-color: var(--color-primary-dark);
}

.page-hero__back:hover,
.page-hero__back:focus-visible {
  text-decoration: underline;
}

.participant {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  grid-template-areas:
    "side about"
    "social about";
  align-items: start;
  gap: 2rem;
  padding-inline: var(--content-padding-inline);
}

.participant--hide-sidebar {
  grid-template-columns: 1fr;
  grid-template-areas:
    "about";
}

.participant--hide-sidebar .participant__about {
  padding-inline: 0;
}

.participant__title {
  font-family: "Carlito", sans-serif;
  font-weight: bold;
  text-align: start;
  width: fit-content;
  margin-inline: auto;
  margin-top: .5em;
  border-bottom: 4px solid;
  border-image: linear-gradient(
    to right,
    var(--color-lila),
    var(--color-blau),
    var(--color-tuerkis),
    var(--color-gruen),
    var(--color-gelborange),
    var(--color-pink)
  ) 1;

  margin-bottom: .5em;
}

.participant--hide-sidebar .participant__title {
  margin-inline: auto;
}

.participant__side {
  grid-area: side;
}

.participant__about {
  grid-area: about;
  margin-bottom: 2rem;
}

.participant__avatar {
  display: block;
  width: 232px;
  height: 232px;
  border: 0.75rem solid #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  margin-top: -160px;
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
  background-color: #fff;
}

.participant__meta {
  margin-bottom: 0;
  margin-top: 1rem;
}

.participant__meta p {
  margin-bottom: .25em;
}

.participant__about {
  margin-bottom: 2rem;
}

.participant__about h2,
.participant__social-links h2 {
  text-align: start;
  font-size: 1.1em;
  font-weight: normal;
  border-bottom: none;
  border-image: none;
  color: var(--color-primary-dark);
  margin-bottom: .5em;
}

.participant__about h2 {
  margin-inline: auto;
}

.participant__social-links h2 {
  margin-inline: 0;
}

.participant__about p,
.participant__about em {
  margin-bottom: .75em;
}

.participant__about a {
  color: var(--color-primary-dark);
  text-decoration: none;
}

.participant__about a:hover {
  color: var(--color-primary);
}

.participant--hide-sidebar .participant__about p {
  margin-inline: auto;
  width: fit-content;
  text-align: center;
}

.participant--hide-sidebar .cta-button {
  margin-inline: auto;
}

.participant__social-links,
.participant__about {
  margin-bottom: 0;
  padding-inline-start: 0;
}

.participant__social-links {
  grid-area: social;
  padding-top: 0;
}

.participant__social-links ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5em;
  list-style: none;
  margin: 0;
  padding: 0;
}

.participant__social-links a {
  text-decoration: none;
  color: var(--on-page-color-dark);
  font-size: 1.2em;
  background: var(--page-color-dark);
  display: grid;
  width: 1.5em;
  height: 1.5em;
  align-content: center;
  justify-content: center;
}

.participant__social-links a:hover,
.participant__social-links a:focus-within {
  background: transparent;
  color: var(--page-color-dark);
}

.participant__social-links a i {
  color: inherit;
}

@media screen and (max-width: 40em) {
  .participant {
    grid-template-columns: 1fr;
    grid-template-areas:
      "side"
      "about"
      "social";
    gap: 1rem;
  }

  .participant__title {
    margin-inline: auto;
    text-align: center;
  }

  .participant__about,
  .participant__social-links {
    margin-bottom: 1rem;
    padding: 0;
  }
}

.participant-pager {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-block: 2rem;
  margin-inline: auto;
  padding-inline: var(--content-padding-inline);
}

.participant-pager > .cta-button {
  margin-block: 0;
}

.participant-pager__overview {
  order: 2;
  flex: 1 1 100%;
  max-width: 100%;
  text-align: center;
  background-color: var(--page-color-dark);
}

.participant-pager__arrow {
  order: 1;
  flex: 1 1 calc(50% - 0.5rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  min-height: 2.75em;
  padding: 0.5em 1em;
  background-color: var(--page-color-dark);
}

.participant-pager__arrow i {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1;
}

@media screen and (min-width: 40em) {
  .participant-pager {
    flex-wrap: nowrap;
  }

  .participant-pager__overview {
    order: 2;
    flex: 0 1 auto;
    max-width: 60%;
  }

  .participant-pager__arrow {
    flex: 0 0 auto;
  }

  .participant-pager__arrow:last-of-type {
    order: 3;
  }
}

h1 a,
h2 a,
h3 a {
  color: inherit;
}

header {
  grid-area: header;
  min-width: 0;
}

.hero-section {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 60vh;
  text-align: center;
}

.hero__background-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: -1;
}

.hero__background {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: blur(3px);
  transform: scale(1.1);
}

.hero__logo {
  max-width: 400px;
  width: 100%;
  height: auto;
  background-color: rgba(255, 255, 255, 0.75);
  padding: 1.5rem;
  box-sizing: border-box;
}

.cta-button {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  justify-content: center;
  padding: 0.75em 1.5em;
  font-family: "Press Start 2P", monospace;
  font-size: 0.8rem;
  text-align: center;
  color: #fff;
  text-decoration: none;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

i[class^="ri-arrow-right"] {
  margin-left: .8em;
}

i[class^="ri-arrow-left"] {
  margin-right: .8em;
}

.cta-button:hover {
  opacity: 0.7;
}

.home-section {
  text-align: center;
  padding: 3em var(--content-padding-inline);
}

.home-section--wantyou {
  background: var(--color-primary-pastel);
  color: var(--on-color-primary-pastel);
}

.home-section__date {
  font-weight: 700;
}

.home-section__buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.home-section__stats {
  display: flex;
  justify-content: center;
  gap: 3rem;
  margin: 1.5rem 0;
  flex-wrap: wrap;
}

.stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  padding: 0.75em 1em;
  background: var(--color-primary-dark);
  color: var(--on-color-primary-dark);
  border-left: 4px solid #fff;
  flex: 1 1 160px;
}

.stat__number {
  font-family: "Press Start 2P", monospace;
  font-size: 1.5rem;
}

main {
  grid-area: main;
  margin-top: 1.5rem;
  max-width: 100vw;
  min-width: 0;
}

.artist-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  list-style: none;
  margin: 2rem 0;
  padding: 0;
  justify-content: center;
  flex-direction: row;
}

.artist-grid__card a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #000;
  width: 100%;
}

.artist-grid__visual {
  margin: 0;
  position: relative;
  background: #fff;
  width: 9em;
}

.artist-grid__card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0;
  display: block;
  transition: opacity 0.3s ease;
}

.artist-grid__card:hover img,
.artist-grid__card:focus-within img {
  opacity: 0.6;
}

.artist-grid__name {
  margin-top: 0.5em;
  font-family: "Carlito", sans-serif;
  text-align: center;
}

.artist-grid__name--overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 1rem;
  color: #000;
  background: rgba(255, 255, 255, 0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.artist-grid__card:hover .artist-grid__name--overlay,
.artist-grid__card:focus-within .artist-grid__name--overlay {
  opacity: 1;
}

.artist-grid--text-overlay .artist-grid__card img {
  opacity: .8;
}

.artist-grid--text-overlay .artist-grid__name--overlay {
  opacity: 1;
  font-weight: bold;
  background: rgba(255, 255, 255, 0.8);
}

.artist-grid--text-overlay .artist-grid__card:hover img, .artist-grid--text-overlay .artist-grid__card:focus-within img {
  opacity: 1;
}

.artist-grid--text-overlay .artist-grid__card:hover .artist-grid__name--overlay, .artist-grid--text-overlay .artist-grid__card:focus-within .artist-grid__name--overlay {
  opacity: 0;
}

.ticketshop {
  --pretix-brand-primary: var(--page-color-dark);
}

.ticketshop .pretix-widget {
  border: none;
}

.ticketshop .pretix-widget .pretix-widget-category,
.ticketshop .pretix-widget-voucher {
  position: relative;
  border: 2px solid var(--page-color);
  padding: 1.5rem 1rem 1rem;
  margin-bottom: 2.5rem;
}

.ticketshop .pretix-widget h3 {
  position: absolute;
  top: -0.8em;
  left: 1rem;
  margin: 0;
  padding: 0 0.5em;
  background: #fff;
  font-family: "Press Start 2P", monospace;
  font-size: 0.75rem;
  font-weight: normal;
  border-bottom: none;
  border-image: none;
}

.ticketshop .pretix-widget button,
.ticketshop .pretix-widget input[type="button"],
.ticketshop .pretix-widget a.pretix-widget-button {
  font-family: "Press Start 2P", monospace;
  font-size: 0.7rem;
  border-radius: 0;
  background-color: var(--page-color-dark);
  border-color: var(--page-color-dark);
  color: #fff;
  transition: opacity 0.3s ease;
}

.ticketshop .pretix-widget button[type="submit"] {
  padding: 0.6rem 1.2rem;
}

.ticketshop .pretix-widget button:hover,
.ticketshop .pretix-widget button:focus,
.ticketshop .pretix-widget input[type="button"]:hover,
.ticketshop .pretix-widget input[type="button"]:focus,
.ticketshop .pretix-widget a.pretix-widget-button:hover,
.ticketshop .pretix-widget a.pretix-widget-button:focus {
  background-color: var(--page-color-dark);
  border-color: var(--page-color-dark);
  color: #fff;
  opacity: 0.7;
}

.ticketshop .pretix-widget input[type="text"],
.ticketshop .pretix-widget input[type="number"],
.ticketshop .pretix-widget select {
  border-radius: 0;
  border-color: var(--page-color);
  font-family: "Carlito", sans-serif;
  color: #000;
  padding: 0.5em 0.75em;
  box-sizing: border-box;
}

.ticketshop .pretix-widget-action {
  margin-bottom: 2rem;
}

.ticketshop .pretix-widget label {
  font-family: "Carlito", sans-serif;
  font-weight: bold;
}

.ticketshop .pretix-widget-collapse-indicator {
  height: auto !important;
  min-height: 34px;
  white-space: normal !important;
  line-height: 1.3;
  background-color: var(--page-color-dark) !important;
  color: var(--on-page-color-dark) !important;
  border-color: var(--page-color-dark) !important;
  border-radius: 0 !important;
  font-family: "Carlito", sans-serif;
  font-size: 0.85rem;
}

.ticketshop .pretix-widget .pretix-widget-item-availability-col .pretix-widget-collapse-indicator::before {
  margin-inline: .5em;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg' xml:space='preserve'%3E%3Cpath fill='white' d='M6.395 4.151a.268.268 0 0 0-.177.077l-.386.386a.259.259 0 0 0-.077.177c.002.067.029.13.077.179l3.033 3.031-3.033 3.032a.255.255 0 0 0-.077.177.253.253 0 0 0 .077.178l.386.385a.268.268 0 0 0 .177.077.27.27 0 0 0 .178-.077l3.595-3.595a.259.259 0 0 0 .077-.177.255.255 0 0 0-.077-.176L6.573 4.228a.257.257 0 0 0-.178-.077Z'/%3E%3C/svg%3E");
}

.form-block input[type="text"],
.form-block input[type="email"],
.form-block input[type="tel"],
.form-block textarea,
.form-block select {
  border: 2px solid var(--page-color);
  border-radius: 0;
  font-family: "Carlito", sans-serif;
  padding: 0.5em 0.75em;
  width: 100%;
  box-sizing: border-box;
}

.form-block button[type="submit"],
.form-block input[type="submit"] {
  background-color: var(--page-color-dark);
  color: #fff;
  border: none;
  border-radius: 0;
  font-family: "Press Start 2P", monospace;
  font-size: 0.7rem;
  padding: 0.75em 1.5em;
  cursor: pointer;
}

.form-block button[type="submit"]:hover,
.form-block input[type="submit"]:hover {
  opacity: 0.7;
}

.form-block fieldset {
  border: 2px solid var(--page-color);
  border-radius: 0;
  margin-bottom: 1.5rem;
  padding: 1rem;
}

.form-block legend {
  font-family: "Press Start 2P", monospace;
  font-size: 0.75rem;
  padding: 0 0.5em;
}

.form-block label {
  display: block;
  margin-bottom: 0.3em;
  font-family: "Carlito", sans-serif;
  font-weight: bold;
}

@media (prefers-reduced-motion: reduce) {
  .artist-grid__card img,
  .artist-grid__name--overlay {
    transition: none;
  }
}

.programm-intro {
  margin-bottom: 1.5rem;
}

.faq {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: 700px;
  margin-inline: auto;
}

.faq__item {
  border-bottom: 2px solid var(--faq-color, var(--page-color));
  padding-bottom: 1rem;
}

.faq__item summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.75em;
  cursor: pointer;
  font-family: Carlito, sans-serif;
  font-weight: bold;
  padding: 0.5em 0;
}

.faq__item summary::-webkit-details-marker {
  display: none;
}

.faq__item summary::before {
  content: "▶";
  color: var(--faq-color, var(--page-color));
  font-size: 0.7em;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.faq__item[open] summary::before {
  transform: rotate(90deg);
}

.faq__answer {
  padding: 0.25em 0 0 1.4em;
  line-height: 1.6;
}

@media screen and (min-width: 60em) {
  body:not(.has-hero) main {
    margin-top: 0;
  }
}

.site-footer {
  grid-area: footer;
  min-width: 0;
}

.site-footer__legal {
  background: #ffff;
  padding: 1.5em var(--content-padding-inline);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5em;
  text-align: center;
  border-top: 4px solid;
  border-image: linear-gradient(
    to right,
    var(--color-lila),
    var(--color-blau),
    var(--color-tuerkis),
    var(--color-gruen),
    var(--color-gelborange),
    var(--color-pink)
  ) 1;
}

.site-footer__legal a {
  color: var(--color-primary-dark);
  text-decoration: none;
}

.site-footer__legal a:hover {
  color: var(--color-primary);
}

.footer__legal {
  display: flex;
  gap: 0.5em;
  justify-content: center;
  flex-wrap: wrap;
}

.site-footer__corner {
  position: absolute;
  bottom: 0;
  width: 320px;
  max-width: 35vw;
  height: auto;
  pointer-events: none;
  z-index: 1;
}

.site-footer__corner--left {
  left: 0;
}

.site-footer__corner--right {
  right: 0;
}

@media screen and (max-width: 90em) {
  .site-footer__corner {
    display: none;
  }
}

.hero__corner {
  position: absolute;
  width: 320px;
  max-width: 35vw;
  height: auto;
  pointer-events: none;
  z-index: 1;
}

.hero__corner--top-left {
  top: 0;
  left: 0;
}

.hero__corner--top-right {
  top: 0;
  right: 0;
}

.hero__corner--bottom-left {
  bottom: 0;
  left: 0;
}

.hero__corner--bottom-right {
  bottom: 0;
  right: 0;
}

@media screen and (max-width: 90em) {
  .hero__corner {
    display: none;
  }
}
