/************* RESET *************/
/* Kevin Powell   https://youtu.be/cCAtD_BAHNw */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  font: inherit; /* Get rid of all font sizes and heights */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  hanging-punctuation: first last; /* Not supported in Chrome */
}

body {
  min-height: 100svh;
}

/* Media responsive */
img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

p {
  text-wrap: pretty; /* Prevents orphans on lines */
}

@media (prefers-reduced-motion: no-preference) {
  :has(:target) {
    scroll-behavior: smooth;
    scroll-padding-top: 3rem;
  }
}

/************* BASE *************/

:root {
  --col-r: #ff7547;
  --col-g: #00c980;
  --col-b: #8a7dd1;
  --z-top: 10000;
}

html {
  font-family: RagazRHPluto, Inter, Roboto, "Helvetica Neue", "Arial Nova",
    "Nimbus Sans", Arial, sans-serif;
  font-weight: normal;
  font-size: clamp(21px, 1.7vw, 36px);
  line-height: 1.2;
}

em,
i {
  font-style: italic;
}

body {
  position: relative;
  margin: 0;
  --swup-slide-theme-translate: 60px;
  --swup-slide-theme-duration-fade: 0.5s;
  --swup-slide-theme-duration-slide: 0.4s;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: filter 150ms ease-in-out;
}

a:hover {
  filter: brightness(1.1);
  transition: filter 150ms ease-in-out;
}

a[href*="clara-ragaz.test"]:not(.nav-item),
a[href*="huciqoru.cyon.site"]:not(.nav-item),
a[href*="hopefightlove.ch"]:not(.nav-item) {
  color: var(--link-color);
}

header.header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: var(--z-top);
}

h1,
time.Event_Datetime,
.blockquote > span,
.block-type-heading {
  font-size: 2.6rem;
  font-weight: 400;
  line-height: 1.024;
  text-align: left;
  paint-order: stroke fill;
  -webkit-text-fill-color: white;
  -webkit-text-stroke-width: 0.04em;
  -webkit-text-stroke-color: var(--color, currentColor);
  -webkit-filter: drop-shadow(0 0 3px var(--color, currentColor));
  filter: drop-shadow(0 0 3px var(--color, currentColor));
}

.block-type-heading h2 {
  hyphens: auto;
}

.blockquote > span {
  -webkit-text-stroke-color: var(--blockquote-clr, currentColor);
  -webkit-filter: drop-shadow(0 0 3px var(--blockquote-clr, currentColor));
  filter: drop-shadow(0 0 3px var(--blockquote-clr, currentColor));
}

::-moz-selection {
  background-color: var(--col-r);
  color: white;
}

::selection {
  background-color: var(--col-r);
  color: white;
}

/************* SITE *************/

nav {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  height: 32px;
}

.nav-item {
  text-align: center;
  background-color: var(--color);
  color: white;
  text-decoration: none;
  padding: 0.15rem 0 0.2rem 0;
}

.background-layer__wrapper {
  position: relative;
}

.background-layer {
  position: absolute;
  display: flex;
  width: 100%;
  height: min-content;
  bottom: 0;
  top: 0;
  flex-direction: column;
  z-index: -500;
}

.background-image_wrapper {
  transform: translate3d(var(--drift), 0, 0);
  margin-top: 66svh;
}

.background-image {
  --bg-image-animation: bg-image-float;
  --bg-image-horizontal: 95;
  --bg-image-vertical: 5em;
  --bg-image-vertical-mobile: 5em;
  animation: var(--bg-image-animation) 6s ease infinite;
}
@keyframes bg-image-float {
  0%,
  to {
    -webkit-transform: translate3d(0.5%, 0.7%, 0);
    transform: translate3d(0.5%, 0.7%, 0);
  }

  50% {
    -webkit-transform: translate3d(0.2%, -4%, 0);
    transform: translate3d(-0.2%, -0.4%, 0);
  }
}

.background-image_wrapper:nth-of-type(3n + 1) {
  --drift: 25vw;
  /* background: blue; */
}

.background-image_wrapper:nth-of-type(3n + 2) {
  --drift: 0vw;
  /* background: pink; */
}

.background-image_wrapper:nth-of-type(3n + 3) {
  --drift: -25vw;
  /* background: yellow; */
}

.background-image_wrapper:first-of-type {
  margin-top: 0;
}

.content {
  position: relative;
  display: grid;
  gap: 1rem;
  color: var(--color, black);
  grid-template-columns: repeat(3, 1fr);
  padding-top: 2rem;
  height: -webkit-min-content;
  height: -moz-min-content;
  height: min-content;
  margin: 1rem;
}

main {
  display: grid;
  grid-column: 1 / span 2;
  grid-template-columns: subgrid;
}
main .block,
main .Event,
main .Events,
main .Tickets_text,
main .Tickets_embed {
  grid-column: 1 / span 2;
}
main .block-type-image {
  grid-column: 1 / span 1;
}

footer.footer a {
  color: #00c980 !important;
  text-decoration: none;
}

footer {
  color: #00c980;
  grid-column: 1 / span 2;
}

footer.footer {
  margin-top: 3rem;
}

footer.footer .footer-logo_wrapper {
  width: 100%;
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 1rem;
  margin-bottom: 3rem;
}

.footer-item img {
  height: 2.1rem;
}

/************* BANNER *************/
header.header {
  background-color: #fff;
}

.banner {
  opacity: 0;
  padding: 0.15rem 0 0.2rem 0;
}

.banner.visible {
  display: flex;
  width: var(--container-width);
  opacity: 1;
  justify-content: space-around;
  -webkit-animation-duration: var(--animation-duration);
  animation-duration: var(--animation-duration);
  -webkit-animation-name: scrolly-boi;
  animation-name: scrolly-boi;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-delay: 0;
  animation-delay: 0;
}

.banner-item {
  color: black;
  text-shadow: currentColor var(--container-width) 0;
  white-space: nowrap;
  padding-inline: 0.15rem;
}

.banner.visible .banner-item:nth-of-type(3n + 0) {
  color: var(--col-r, currentColor);
}
.banner.visible .banner-item:nth-of-type(3n + 1) {
  color: var(--col-g, currentColor);
}
.banner.visible .banner-item:nth-of-type(3n + 2) {
  color: var(--col-b, currentColor);
}

@-webkit-keyframes scrolly-boi {
  from {
    transform: translate3d(0vw, 0, 0);
  }
  to {
    transform: translate3d(calc(-1 * var(--container-width)), 0, 0);
  }
}

@keyframes scrolly-boi {
  from {
    transform: translate3d(0vw, 0, 0);
  }
  to {
    transform: translate3d(calc(-1 * var(--container-width)), 0, 0);
  }
}

/************* FIXED LOGOS *************/

.logo-fixed_wrapper {
  position: sticky;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  grid-column: 1 / span 3;
  bottom: 1rem;
  width: 100vw;
  margin-left: -1rem;
  padding-right: 1rem;
}
.logo-fixed {
  height: 1rem;
}

.logo-fixed#Jahre {
  height: 150px;
  -webkit-text-fill-color: white;
  -webkit-text-stroke-width: 0.04em;
  -webkit-text-stroke-color: var(white, currentColor);
  -webkit-filter: drop-shadow(0 0 6px var(white, currentColor));
  filter: drop-shadow(0 0 6px var(white, currentColor));
}
.logo-fixed#NeueWege {
  height: auto;
  width: 252px;
  aspect-ratio: 5/1;
}

@media only screen and (max-width: 600px) {
  .logo-fixed_wrapper {
    position: static;
  }
}

@-moz-document url-prefix() {
  .logo-fixed_wrapper {
    position: static;
    margin-bottom: 1rem;
  }
}

/************* TYPOGRAPHY *************/
h1 {
  margin-block: 1.5rem;
}

p {
  margin: 0;
}

p + p {
  margin-top: 0.5rem;
}

.block-type-heading {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

/************* BLOCKS *************/

.blockquote {
  margin-block: 1rem;
  color: var(--blockquote-clr, black);
}
.blockquote footer {
  margin-top: 0.5rem;
}

.block-type-image {
  margin-block: 1rem;
}

/************* IFRAME *************/

iframe body.embed {
  background-color: transparent !important;
}

/************* PARALLAX *************/

.parallax {
  height: 100vh;
  height: 100svh;
  overflow-x: hidden;
  perspective: 1px;
}

.parallax-layer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.parallax-layer1 {
  --parallax-background-tx: translateZ(-0.5px);
  transform: var(--parallax-background-tx);
}

.parallax-layer2 {
  transform: translateZ(0);
}

/************* FADE IN UP *************/

.fade-up {
  opacity: 0;
  transform: translate3d(0, 5rem, 0);
  transition: transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.05),
    opacity 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.05);
}

.fade-up.faded {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/************* UTILITY *************/

.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Hide scrollbar for Chrome, Safari and Opera */
html::-webkit-scrollbar,
.parallax::-webkit-scrollbar {
  display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
html,
.parallax {
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
}

/************* MOBILE *************/

#menu-icon {
  display: none;
}

@media only screen and (max-width: 600px) {
  header {
    position: relative;
  }
  nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10000;
  }

  nav {
    grid-template-columns: 1fr 1fr;
  }

  .nav-item[aria-current="page"] {
    display: none;
  }

  .content {
    display: block;
    height: max-content;
    margin-block-start: 1rem;
    padding-block-end: 3rem;
    margin-inline: 0.5rem;
  }

  main {
    display: block;
  }

  footer.footer {
    flex-direction: column;
    margin-block: 3rem;
  }

  .background-image_wrapper {
    margin-top: 100svh;
  }

  .parallax-layer1 {
    --parallax-background-tx: translateZ(-0.33px);
    transform: var(--parallax-background-tx);
  }

  .background-image_wrapper:nth-of-type(3n + 1) {
    --drift: 17vw;
  }

  .background-image_wrapper:nth-of-type(3n + 2) {
    --drift: 0vw;
  }

  .background-image_wrapper:nth-of-type(3n + 3) {
    --drift: -17vw;
  }
  .logo-fixed_wrapper {
    margin-left: -0.5rem;
  }
}

@media only screen and (min-width: 1440px) {
  .content {
    grid-template-columns: repeat(3, 1fr);
  }
  main,
  footer.footer {
    grid-column-start: 1;
  }
}

iframe {
  opacity: 0;
  transition: opacity 200ms ease;
}
iframe[id*="iFrameResizer"] {
  opacity: 1;
}
