/* Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
h1, h2, h3, h4, h5, h6,
p, ul, ol, dl, dd,
figure, blockquote {
  margin: 0;
}

ul, ol {
  padding: 0;
}

img {
  max-width: 100%;
  height: auto !important;
  vertical-align: middle;
}

/* Fonts */
@font-face {
  font-family: NerudnyFestFonts;
  src: url(../fonts/TTFirsNeue-Bold.woff2) format("woff2"),
       url(../fonts/TTFirsNeue-Bold.woff) format("woff");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: NerudnyFestFonts;
  src: url(../fonts/Tusar-Regular.woff) format("woff"),
       url(../fonts/Tusar-Regular.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* Base */
html {
  -webkit-text-size-adjust: 100%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
  font-size: 16px;
}

@media screen and (min-width: 1180px) {
  html { font-size: calc(16px + 4 * (100vw - 1180px) / 740); }
}

@media screen and (min-width: 1920px) {
  html { font-size: 20px; }
}

@media (max-width: 767px) {
  html { font-size: 20px; }
}

body {
  font-family: NerudnyFestFonts, Arial, sans-serif;
  line-height: 1em;
  background: #fff;
  text-align: center;
  color: #000;
  padding-top: 5.7rem;
}

@media (max-width: 1040px) {
  body { padding-top: 3.95rem; }
}

a {
  color: #f26b73;
  text-decoration: underline;
  transition: all .15s ease-out;
}

a:hover {
  text-decoration: none;
}

b, strong { font-weight: 700; }
em, i { font-style: italic; }

.h1, h1 { font-size: 4rem; line-height: 1.1em; }
@media (max-width: 767px) { .h1, h1 { font-size: 1.6rem; line-height: 1.25em; } }

.h2, h2 { font-size: 2.8rem; line-height: 1.2857142857em; }
@media (max-width: 767px) { .h2, h2 { font-size: 1.2rem; line-height: 1.3333333333em; } }

.h3, h3 { font-size: 2rem; line-height: 1.325em; }
@media (max-width: 767px) { .h3, h3 { font-size: 1.2rem; line-height: 1.3333333333em; } }

.h4, h4 { font-size: 1.6rem; line-height: 1.25em; }
@media (max-width: 767px) { .h4, h4 { font-size: 1.2rem; line-height: 1.0833333333em; } }

.h5, h5 { font-size: 1.2rem; }
.h6, h6 { font-size: 1.1rem; line-height: 1.3636363636em; }
@media (max-width: 767px) { .h6, h6 { font-size: .8rem; } }

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  margin: 0;
}

p, ul, ol {
  font-size: 1.2rem;
  line-height: 1.6666666667em;
  margin: 0 0 1.6666666667em;
}
@media (max-width: 767px) { p, ul, ol { font-size: .8rem; } }
p:last-child, ul:last-child, ol:last-child { margin-bottom: 0; }
ul { list-style: circle; }
ol { list-style: decimal; }

.co-1 { color: #fff; }
.co-3 { color: #f26b73; }

hr {
  display: block;
  margin: 5.5rem 0;
  border: 0;
  width: 100%;
  height: 0;
  padding: 0 0 8.333%;
  background: url(../img/hr.svg) 0 no-repeat;
  background-size: 100% auto;
}
@media (max-width: 767px) {
  hr {
    margin: 2.25rem 0;
    background-image: url(../img/hr-S.svg);
    padding: 0 0 13.03%;
  }
}

/* Layout */
.inner {
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  padding: 0 4rem;
}
@media (max-width: 1360px) { .inner { padding: 0 1.5rem; } }
@media (max-width: 870px) { .inner { padding: 0 1rem; } }

.btn {
  display: inline-flex;
  flex-grow: 0;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  height: 3.65rem;
  padding: 0 2rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s ease-out;
}
@media (max-width: 767px) { .btn { height: 2.4rem; padding: 0 1.45rem; } }

button.btn { font: inherit; font-weight: 700; }
.btn--outline {
  background: none;
  border: .25rem solid;
}
@media (max-width: 767px) { .btn--outline { border-width: .15rem; } }
.btn--outline:hover { border-color: #f26b73; color: #fff; background-color: #f26b73; }
.btn--outline.co-1 { color: #fff; }
.btn--outline.co-1:hover { color: #f26b73; border-color: #fff; background-color: #fff; }
.btn--outline.co-3 { color: #f26b73; }
.btn--outline.co-3:hover { color: #fff; }

/* Header */
.main_header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99;
  background: #fff;
  padding: 2rem 0 1.7rem;
  transition: all .15s ease-out;
}
.main_header.hidden { transform: translate3d(0, -100%, 0); }
.main_header.opened.hidden { transform: none; }
@media (max-width: 1040px) { .main_header { padding: 1.25rem 0; } }

.main_header .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.main_header__logo { position: relative; z-index: 5; }
.main_header__logo img { max-width: 10.75rem; }
@media (max-width: 1040px) { .main_header__logo img { max-width: 7.75rem; } }

.main_header__nav { list-style: none; font-weight: 700; }
.main_header__nav ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0 -1rem 0 0;
  font-size: 1rem;
}
.main_header__nav li { padding: 0 .75rem; white-space: nowrap; }
.main_header__nav li.current a { color: #f26b73; }
.main_header__nav a {
  color: #000;
  text-decoration: none;
  display: block;
  padding: 0 .25rem;
}
.main_header__nav a:hover { color: #f26b73; }

@media (max-width: 870px) {
  .main_header__nav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 4rem 1rem 0;
    z-index: 4;
    background: #fff;
    text-align: left;
  }
  .main_header__nav.shown { display: block; }
  .main_header__nav ul { flex-direction: column; margin: 0; overflow: auto; max-height: 100%; }
  .main_header__nav ul li { padding: 0; border-top: .15rem solid #ebebeb; }
  .main_header__nav ul a { padding: 1.2rem 0; }
}
@media (max-width: 360px) { .main_header__nav ul a { padding: .8rem 0; } }

.menu_hamburger {
  border: 0;
  padding: 0;
  margin: 0;
  display: none;
  background: transparent;
  align-items: center;
  width: 2.4rem;
  height: 1.15rem;
  position: relative;
  z-index: 5;
  cursor: pointer;
}
@media (max-width: 870px) { .menu_hamburger { display: flex; } }

.menu_hamburger__line {
  width: 100%;
  height: .15rem;
  background: #000;
  display: block;
  position: absolute;
  left: 0;
  transition: all .15s ease-out;
}
.menu_hamburger__line:first-child { top: 0; transform-origin: left center; }
.menu_hamburger__line:nth-child(2) { top: 50%; margin-top: -.075rem; transform-origin: left center; }
.menu_hamburger__line:nth-child(3) { bottom: 0; transform-origin: left center; }
.menu_hamburger.active .menu_hamburger__line:first-child { transform: rotate(22.5deg); top: 0; left: .05rem; }
.menu_hamburger.active .menu_hamburger__line:nth-child(2) { width: 0; opacity: 0; }
.menu_hamburger.active .menu_hamburger__line:nth-child(3) { transform: rotate(-22.5deg); top: .8rem; left: .1rem; }
@media (max-width: 767px) { .menu_hamburger.active .menu_hamburger__line:nth-child(3) { top: .9rem; } }

/* Footer */
.main_footer { background: #f26b73; padding: 5.75rem 0; }
@media (max-width: 870px) { .main_footer { padding: 2.7rem 0 1.5rem; } }

.main_footer .inner { display: flex; align-items: flex-end; justify-content: flex-start; }
@media (max-width: 1040px) { .main_footer .inner { flex-wrap: wrap; } }

.main_footer__newsletter { display: flex; align-items: center; justify-content: flex-start; }
@media (max-width: 767px) { .main_footer__newsletter { flex-wrap: wrap; } }
.main_footer__newsletter p { max-width: 30rem; text-align: left; padding: 0 1.25rem 0 0; margin: 0; }
@media (max-width: 767px) { .main_footer__newsletter p { padding: 0; line-height: 1.2em; } }
@media (min-width: 871px) { .main_footer__newsletter p br { display: none; } }
.main_footer__newsletter .btn { margin: 0 0 0 2rem; }
@media (max-width: 767px) { .main_footer__newsletter .btn { margin: 1.1rem 0 0; } }

.main_footer__meta { margin: 0 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 1rem; }
@media (max-width: 1040px) { .main_footer__meta { width: 100%; margin: 4.1rem 0 0; align-items: flex-start; } }

.main_footer__social { display: flex; gap: 1rem; }
.main_footer__social a { display: flex; color: #fff; }
.main_footer__social a:hover { opacity: .7; }

.main_footer__copy { font-size: .8rem; line-height: 1.3333333333em; font-weight: 700; text-align: right; }
@media (max-width: 1040px) { .main_footer__copy { text-align: left; } }
@media (max-width: 870px) { .main_footer__copy { font-size: .6rem; } }

.festival + .main_footer { margin-top: 9.25rem; }

/* Hero */
.hero_banner {
  color: #f26b73;
  min-height: 22.5rem;
  height: 70vh;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
}
@media (max-width: 1360px) { .hero_banner { min-height: 20rem; } }
@media (max-width: 767px) { .hero_banner { height: auto; min-height: 17.75rem; } }

.hero_banner h1, .hero_banner h2 { max-width: 43rem; margin: 0 auto 1.8rem; }
@media (max-width: 767px) { .hero_banner h1, .hero_banner h2 { margin: 0 auto .4rem; max-width: 15.5rem; } }

.hero_banner blockquote { margin: 0; }
.hero_banner blockquote h1, .hero_banner blockquote h2 { max-width: 73rem; margin-bottom: .65rem; }
@media (max-width: 767px) { .hero_banner blockquote h1, .hero_banner blockquote h2 { max-width: 15.5rem; margin-bottom: 2.2rem; } }
.hero_banner blockquote small { font-size: 1.6rem; line-height: 1.25em; font-weight: 700; }
@media (max-width: 767px) { .hero_banner blockquote small { font-size: .8rem; line-height: 1.25em; } }

.hero_banner.co-3 { background: #f26b73; color: #fff; margin: 0 0 5rem; }
@media (max-width: 767px) { .hero_banner.co-3 { margin: 0 0 1.65rem; } }
.hero_banner.co-3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translate3d(0, 50%, 0);
  display: block;
  width: 100%;
  height: 0;
  padding: 0 0 8.333%;
  background: url(../img/hero_banner-after.svg) 0 no-repeat;
  background-size: 100% auto;
}
@media (max-width: 767px) {
  .hero_banner.co-3::after {
    background-image: url(../img/hero_banner-after-S.svg);
    padding: 0 0 13.03%;
  }
}

.hero_banner--services h1, .hero_banner--services h2 { max-width: 62rem; }

.hero_banner--intro { height: auto; min-height: 0; overflow: visible; padding: 9rem 0 5rem; }
@media (max-width: 1040px) { .hero_banner--intro { padding: 6.5rem 0 3.5rem; } }
@media (max-width: 767px) { .hero_banner--intro { padding: 4rem 0 2.5rem; } }

.hero_banner__lead {
  max-width: 45rem;
  margin: 0 auto 1.2rem;
  font-size: 1.3rem;
  line-height: 1.5em;
  font-weight: 700;
}
.hero_banner__lead:last-of-type { margin-bottom: 0; }
@media (max-width: 767px) {
  .hero_banner__lead { max-width: 18rem; font-size: .9rem; line-height: 1.4em; }
}

.hero_banner__actions { display: flex; justify-content: center; gap: 1.5rem; margin-top: 2rem; }
@media (max-width: 767px) { .hero_banner__actions { flex-wrap: wrap; gap: 1rem; margin-top: 1.2rem; } }

@media (max-width: 767px) { .hero_banner--slides { height: 24rem; min-height: 0; } }
.hero_banner--slides .hero_banner__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .8s ease;
}
.hero_banner--slides .hero_banner__slide.is-active {
  opacity: 1;
  visibility: visible;
}
.hero_banner__slide__text {
  max-width: 50rem;
  margin: 0 auto 1.8rem;
  font-size: 2rem;
  line-height: 1.35em;
  font-weight: 700;
}
@media (max-width: 767px) {
  .hero_banner__slide__text { max-width: 18rem; margin: 0 auto 1.2rem; font-size: 1.1rem; line-height: 1.4em; }
}
.hero_banner__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 1.75rem;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: .6rem;
}
@media (max-width: 767px) { .hero_banner__dots { bottom: 1rem; } }
.hero_banner__dot {
  width: .7rem;
  height: .7rem;
  padding: 0;
  border-radius: 50%;
  border: .1rem solid currentColor;
  background: transparent;
  cursor: pointer;
}
.hero_banner__dot.is-active { background: currentColor; }

/* Our festivals grid */
.our_festivals { margin: 0 0 5rem; }
@media (max-width: 767px) { .our_festivals { margin: 0 0 1.2rem; } }
.our_festivals .inner { text-align: left; }
.our_festivals__title { margin: 0 0 .65rem; }
@media (max-width: 870px) { .our_festivals__title { margin: 0 0 .55rem; } }

.our_festivals__list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1rem;
  padding: 0 0 3.4rem;
}
@media (max-width: 870px) { .our_festivals__list { margin: 0 -.6rem; } }
@media (max-width: 767px) { .our_festivals__list { padding: 0; } }

.our_festivals__list > li { width: 50%; flex-grow: 0; flex-shrink: 0; padding: 1rem; }
.our_festivals__list > li:nth-child(2n) { position: relative; top: 3.4rem; }
@media (max-width: 870px) { .our_festivals__list > li { padding: .6rem; } }
@media (max-width: 767px) {
  .our_festivals__list > li { width: 100%; }
  .our_festivals__list > li:nth-child(2n) { top: 0; }
}

.our_festivals__item {
  height: 0;
  position: relative;
  padding-bottom: 56.16%;
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
}
.our_festivals__item--placeholder { background-color: #f26b73; }
.our_festivals__item--photo { background-color: #222; background-image: linear-gradient(to top, rgba(0,0,0,.68) 0%, rgba(0,0,0,.32) 55%, rgba(0,0,0,.06) 100%), var(--tile); }
.our_festivals__item--kpb { --tile: url(../img/tile-kpb.jpg); }
.our_festivals__item--mlj { --tile: url(../img/tile-mlj.jpg); }
.our_festivals__item--mld { --tile: url(../img/tile-mld.jpg); }
.our_festivals__item--pzh { --tile: url(../img/tile-pzh.jpg); }
.our_festivals__item--sf { --tile: url(../img/tile-sf.jpg); }
@media (max-width: 1360px) { .our_festivals__item { padding-bottom: 66.66%; } }
@media (max-width: 1040px) { .our_festivals__item { padding-bottom: 100%; } }
@media (max-width: 767px) { .our_festivals__item { padding-bottom: 56.16%; } }
@media (max-width: 580px) { .our_festivals__item { padding-bottom: 75%; } }
@media (max-width: 767px) { #vyrocni-zpravy .our_festivals__item { padding-bottom: 55%; } }
@media (max-width: 400px) { .our_festivals__item { padding-bottom: 0; height: auto; } }

.our_festivals__item a { color: inherit; text-decoration: none; }
.our_festivals__item a:hover .btn { color: #fff; border-color: #f26b73; background-color: #f26b73; }

.our_festivals__item__content {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  padding: 2.7rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
}
@media (max-width: 767px) { .our_festivals__item__content { padding: 1.35rem 1.45rem; } }
@media (max-width: 400px) { .our_festivals__item__content { position: static; } }

.our_festivals__item__content h3 { min-height: 4.85rem; line-height: 1.075em; margin: 0 0 1.15rem; }
@media (max-width: 767px) { .our_festivals__item__content h3 { font-size: 1.6rem; line-height: 1.125em; min-height: 3.95rem; margin: 0 0 .55rem; } }
@media (max-width: 400px) { .our_festivals__item__content h3 { min-height: 0; } }

.our_festivals__item__content p { width: 100%; max-width: 18.5rem; margin: 0 0 1.75rem; }
@media (max-width: 767px) { .our_festivals__item__content p { max-width: 12.75rem; margin: 0 0 1.4rem; } }

.our_festivals--top { margin: 1.5rem 0 9.5rem; }
@media (max-width: 767px) { .our_festivals--top { margin: 0 0 2.45rem; } }
.our_festivals--top .our_festivals__list a:hover .link { color: #f26b73; }
.our_festivals--top .our_festivals__title { margin: 0 0 4rem; }
@media (max-width: 870px) { .our_festivals--top .our_festivals__title { margin: 0 0 2rem; } }
@media (max-width: 767px) { .our_festivals--top .our_festivals__title { margin: 0 0 .6rem; } }

.our_festivals--top .our_festivals__item { padding-bottom: 57.79%; }
@media (max-width: 1360px) { .our_festivals--top .our_festivals__item { padding-bottom: 66.66%; } }
@media (max-width: 1040px) { .our_festivals--top .our_festivals__item { padding-bottom: 100%; } }
@media (max-width: 767px) { .our_festivals--top .our_festivals__item { padding-bottom: 57.79%; } }
@media (max-width: 580px) { .our_festivals--top .our_festivals__item { padding-bottom: 75%; } }
@media (max-width: 400px) { .our_festivals--top .our_festivals__item { padding-bottom: 100%; } }

.our_festivals--top .our_festivals__item__content { padding: 3.25rem 3rem; justify-content: space-between; }
@media (max-width: 767px) { .our_festivals--top .our_festivals__item__content { padding: 1.35rem 1.45rem; } }
@media (max-width: 400px) { .our_festivals--top .our_festivals__item__content { position: absolute; } }
.our_festivals--top .our_festivals__item__content h3 { line-height: 1.2em; }
.our_festivals--top .our_festivals__item__content .link {
  display: flex;
  align-items: center;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
}
.our_festivals--top .our_festivals__item__content .link::before {
  content: "";
  width: 1.5rem;
  height: .85rem;
  background: url(../img/link-external.svg) 50% no-repeat;
  filter: invert(100%);
  background-size: 100% auto;
  margin: 0 .75rem 0 0;
  position: relative;
  top: -.05rem;
}

/* Stripe (history / services banners) */
.stripe {
  height: 75vh;
  min-height: 42.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #000;
  background-position: 50%;
  background-attachment: fixed;
  background-size: cover;
  background-repeat: no-repeat;
}
@media (max-width: 1360px) { .stripe { height: 100vh; min-height: 32.75rem; } }
@media (max-width: 1040px) { .stripe { background-attachment: scroll; } }
@media (max-width: 767px) { .stripe { min-height: 24rem; } }

.stripe .inner { flex-direction: column; }
.stripe .h3 { color: #f26b73; }
@media (max-width: 767px) { .stripe .h3 { font-size: 1rem; line-height: 1.35em; } }
.stripe .h1 { color: #fff; max-width: 62rem; margin: 1.35rem auto 2.15rem; }
@media (max-width: 767px) { .stripe .h1 { max-width: 15.5rem; margin: .7rem auto 3.35rem; } }

/* Structured list (about / services / contact) */
.structured_list {
  list-style: none;
  margin: 1rem -1rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  text-align: left;
}
@media (max-width: 580px) { .structured_list { margin: 1rem 0 -1.1rem; } }

.structured_list > li { padding: 0 1rem; width: 33.33%; flex-grow: 0; flex-shrink: 0; }
.structured_list > li:nth-child(3n+1) { margin: 0 66.66% 0 0; }
.structured_list > li:nth-child(3n+2) { margin: 0 33.33%; }
.structured_list > li:nth-child(3n+3) { margin: 0 0 0 66.66%; }
@media (max-width: 1040px) {
  .structured_list > li { width: 50%; }
  .structured_list > li:nth-child(odd) { margin: 0 50% 0 0; }
  .structured_list > li:nth-child(2n+2) { margin: 0 0 0 50%; }
}
@media (max-width: 580px) {
  .structured_list > li { width: 100%; padding: 1.1rem 0; margin: 0 !important; }
}

.structured_list__item h5 { color: #f26b73; margin: 0 0 .95rem; }
.structured_list__item p { font-size: 2rem; line-height: 1.2em; font-weight: 700; }
@media (max-width: 1040px) { .structured_list__item p { max-width: 28rem; } }
@media (max-width: 767px) { .structured_list__item p { max-width: 16.75rem; font-size: 1.2rem; line-height: 1.3333333333em; } }

@media (max-width: 870px) { .structured_list--services { margin: 0; } }
.structured_list--services > li:nth-child(3n+1) { margin: 0; }
.structured_list--services > li:nth-child(3n+2) { margin: 4rem 0 0; }
.structured_list--services > li:nth-child(3n+3) { margin: 8rem 0 0; }
@media (max-width: 1040px) { .structured_list--services > li { width: 33.33%; } }
@media (max-width: 870px) { .structured_list--services > li { width: 100%; margin: 0 !important; padding: 1.75rem 0; } }

.services { margin: 0 0 9rem; }
@media (max-width: 767px) { .services { margin: 0 0 4rem; } }
.structured_list__item__photo {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin: 0 0 2rem;
}
@media (max-width: 767px) { .structured_list__item__photo { margin: 0 0 1.2rem; } }
.structured_list--services h3 { max-width: 17.5rem; margin: 0 0 1.6rem; }
@media (max-width: 767px) { .structured_list--services h3 { margin: 0 0 1.15rem; } }
.structured_list--services p { max-width: 25rem; font-size: 1.2rem; line-height: 1.5833333333em; font-weight: 400; }
@media (max-width: 1040px) { .structured_list--services p { max-width: 15.75rem; font-size: 1rem; line-height: 1.3333333333em; } }
@media (max-width: 870px) { .structured_list--services p { max-width: 25rem; font-size: 1.2rem; line-height: 1.5833333333em; } }
@media (max-width: 767px) { .structured_list--services p { max-width: 15.75rem; font-size: 1rem; line-height: 1.3333333333em; } }

.structured_list--contact { margin-bottom: 10.75rem !important; }
@media (max-width: 1040px) { .structured_list--contact { margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 8.5rem !important; } }
@media (max-width: 870px) { .structured_list--contact { margin-bottom: 5.5rem !important; } }
@media (max-width: 767px) { .structured_list--contact { margin-bottom: 1.75rem !important; } }
.structured_list--contact > li { margin: 0 !important; }
@media (max-width: 1040px) { .structured_list--contact > li { width: 100%; padding: 1.75rem 0; } }
.structured_list--contact h3 { margin: 0 0 1.6rem; }
@media (max-width: 767px) { .structured_list--contact h3 { margin: 0 0 1.15rem; } }
.structured_list--contact p { max-width: 25rem; font-size: 1.2rem; line-height: 1.5833333333em; font-weight: 400; }
@media (max-width: 767px) {
  .structured_list--contact p { font-size: 1rem; line-height: 1.6em; margin: 0 0 .75rem; }
  .structured_list--contact p:last-child { margin: 0; }
}
@media (max-width: 360px) { .structured_list--contact p { font-size: .9rem; } }
.structured_list--contact a { color: inherit; text-decoration: none; }
.structured_list--contact a:hover { text-decoration: underline; }

/* Team */
.our_team .inner { text-align: left; overflow: hidden; }
.our_team__title { margin: 0 0 2.5rem; }
@media (max-width: 870px) { .our_team__title { margin: 0 0 1.25rem; } }
@media (max-width: 767px) { .our_team__title { margin: 0 0 .9rem; } }

.team { list-style: none; margin: 0 -1.75rem; padding: 0; display: flex; flex-wrap: wrap; }
@media (max-width: 767px) { .team { margin: 0 -.75rem; } }
.team > li { flex-grow: 0; flex-shrink: 0; width: 16.66%; padding: 2.5rem .75rem; }
@media (max-width: 1040px) { .team > li { width: 25%; } }
@media (max-width: 767px) { .team > li { width: 33.33%; padding: 1.25rem .75rem; } }
@media (max-width: 580px) { .team > li { width: 50%; } }

.team__item header { max-width: 10.75rem; margin: 0 0 1.5rem; }
@media (max-width: 767px) { .team__item header { margin: 0 0 1.05rem; } }
.team__item__image { display: block; border-radius: 50%; overflow: hidden; }
.team__item__image-placeholder { width: 100%; height: 0; border-radius: 50%; padding-bottom: 100%; background-color: #6179bf; }
.team__item h5 { line-height: 1.3333333333em; font-size: 1rem; }
@media (max-width: 767px) { .team__item h5 { font-size: .7rem; line-height: 1.1428571429em; margin: 0 0 .2rem; } }
.team__item p { font-size: .8rem; line-height: 1.3125em; font-weight: 700; color: #9a9b9f; }
@media (max-width: 767px) { .team__item p { font-size: .55rem; line-height: 1.1818181818em; } }

/* Festival detail pages */
.festival { margin: 7.5rem 0 6.75rem; }
@media (max-width: 870px) { .festival { margin: 5rem 0 4rem; } }
@media (max-width: 767px) { .festival { margin: 0; } }

.festival__navigation { margin: 3.5rem 0 4rem; }
@media (max-width: 870px) { .festival__navigation { margin: 1.75rem 0 2.5rem; } }
@media (max-width: 767px) { .festival__navigation { margin: 0 0 2.5rem; } }
.festival__navigation .inner { text-align: center; }
.festival__navigation ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 -1rem;
  font-size: 1.15rem;
  line-height: 1.25em;
  font-weight: 700;
}
@media (max-width: 1040px) { .festival__navigation ul { margin: 0 -.075rem; } }
@media (max-width: 767px) { .festival__navigation ul { font-size: 1.2rem; line-height: 1.0833333333em; } }
.festival__navigation ul > li { flex-grow: 0; flex-shrink: 0; width: 20%; padding: 0 1rem; }
@media (max-width: 1040px) { .festival__navigation ul > li { padding: .075rem; } }
@media (max-width: 870px) { .festival__navigation ul > li { width: 50%; } }
@media (max-width: 580px) { .festival__navigation ul > li { width: 100%; } }
.festival__navigation ul > li a {
  display: block;
  color: #fff;
  background: #000;
  padding: 1.4rem 1.5rem;
  text-decoration: none;
  text-align: left;
}
@media (max-width: 1040px) { .festival__navigation ul > li a { padding: 1.25rem 1.5rem; } }
@media (max-width: 767px) { .festival__navigation ul > li a { padding: 1.1rem 1.65rem; } }
.festival__navigation ul > li a:hover { background: #f26b73; }
.festival__navigation + .festival { margin-top: 0; }

.festival__cover {
  height: 36rem;
  display: flex;
  align-items: flex-end;
  padding: 0 0 4.5rem;
  color: #fff;
  margin: 0 0 3.25rem;
  background-repeat: no-repeat;
  background-position: 50%;
  background-size: cover;
  background-attachment: fixed;
}
.festival__cover--placeholder { background-color: #f26b73; background-attachment: scroll; }
.festival__cover--photo { background-color: #222; background-image: linear-gradient(to top, rgba(0,0,0,.6) 0%, rgba(0,0,0,.25) 50%, rgba(0,0,0,.05) 100%), var(--cover); }
.festival__cover--kpb { --cover: url(../img/cover-kpb.jpg); }
.festival__cover--mlj { --cover: url(../img/cover-mlj.jpg); }
.festival__cover--mld { --cover: url(../img/cover-mld.jpg); }
.festival__cover--pzh { --cover: url(../img/cover-pzh.jpg); }
.festival__cover--sf { --cover: url(../img/cover-sf.jpg); }
@media (max-width: 1040px) { .festival__cover { background-attachment: scroll; height: 32.5rem; } }
@media (max-width: 870px) { .festival__cover { height: 27.5rem; padding: 0 1rem 2.25rem; margin: 0 -1rem 1.5rem; } }
@media (max-width: 767px) { .festival__cover { height: 16.75rem; padding: 0 1rem .85rem; } }
.festival__cover .h1 { width: 100%; padding-left: 25%; line-height: 1em; text-align: left; }
@media (max-width: 870px) { .festival__cover .h1 { padding: 0; } }
@media (max-width: 767px) { .festival__cover .h1 { font-size: 2rem; } }

.festival__desc { width: 50%; margin: 3rem auto 8rem; text-align: left; }
@media (max-width: 870px) { .festival__desc { width: 66.66%; margin: 2rem 0 4rem; } }
@media (max-width: 767px) { .festival__desc { width: 100%; max-width: 15.75rem; margin: 1.5rem 0 2.35rem; } }
.festival__desc h2, .festival__desc h3 { margin: 0 0 2.9rem; }
@media (max-width: 767px) { .festival__desc h2, .festival__desc h3 { margin: 0 0 1.95rem; } }

.festival__desc__info { display: flex; margin: 4.5rem 0 3rem; }
@media (max-width: 767px) { .festival__desc__info { margin: 2.05rem 0 2.5rem; } }
@media (max-width: 580px) { .festival__desc__info { flex-wrap: wrap; } }
.festival__desc__info dl { min-width: 7.5rem; margin: 0; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; }
@media (max-width: 580px) { .festival__desc__info dl { width: 100%; padding: .5rem 0; } }
.festival__desc__info dt { margin: 0 0 .25rem; font-size: .8rem; line-height: 1em; font-weight: 700; }
.festival__desc__info dd { margin: 0; font-size: 1.2rem; line-height: 1.6666666667em; font-weight: 700; }

.festival__desc a[target="_blank"] { color: #000; display: inline-flex; align-items: center; text-decoration: none; font-weight: 700; }
@media (max-width: 767px) { .festival__desc a[target="_blank"] { font-size: .8rem; line-height: 1.3125em; } }
.festival__desc a[target="_blank"]::before {
  content: "";
  display: block;
  width: 1.5rem;
  height: .85rem;
  background: url(../img/link-external.svg) 50% no-repeat;
  background-size: 100% auto;
  margin: 0 .75rem 0 0;
  position: relative;
  top: -.05rem;
}
.festival__desc a[target="_blank"]:hover { color: #f26b73; }
.festival__desc a[target="_blank"]:hover::before { filter: invert(53%) sepia(42%) saturate(735%) hue-rotate(308deg) brightness(95%) contrast(99%); }

.festival__video { margin: 0 auto; max-width: 42rem; text-align: center; }
.festival__video__title { margin: 0 0 1.5rem; }
.festival__video video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #000; }
@media (max-width: 767px) { .festival__video__title { margin: 0 0 1rem; } }

.festival__gallery { list-style: none; margin: 7.5rem -1rem 0; padding: 0; display: flex; flex-wrap: wrap; }
@media (max-width: 870px) { .festival__gallery { margin: 4rem -.6rem 0; } }
@media (max-width: 767px) { .festival__gallery { margin: 2.35rem -.6rem 0; } }
.festival__gallery > li { flex-grow: 0; flex-shrink: 0; width: 33.33%; padding: 1rem; }
@media (max-width: 870px) { .festival__gallery > li { padding: .6rem; width: 50%; } }
@media (max-width: 400px) { .festival__gallery > li { width: 100%; } }

/* Hero with persistent action buttons (Eventy na míru) */
.hero_banner--cta { min-height: 32rem; }
.hero_banner--cta .hero_banner__slide { padding-bottom: 7rem; }
.hero_banner--cta .hero_banner__actions { position: absolute; left: 0; right: 0; bottom: 4.2rem; z-index: 2; margin: 0; }
@media (max-width: 767px) {
  .hero_banner--cta { height: 27rem; min-height: 0; }
  .hero_banner--cta .hero_banner__slide { padding-bottom: 8rem; }
  .hero_banner--cta .hero_banner__actions { bottom: 3rem; }
}

/* Intro video (Eventy na míru) */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.intro_video__heading { padding-top: 3rem; padding-bottom: 2rem; text-align: center; }
.intro_video__heading h1 { margin: 0; }
@media (max-width: 767px) { .intro_video__heading { padding-top: 2rem; padding-bottom: 1.25rem; } }
.intro_video__player { background: #000; }
.intro_video__player video { display: block; width: 100%; max-height: 80vh; aspect-ratio: 16 / 9; margin: 0 auto; background: #000; }
.intro_video__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.5rem; padding-top: 2.5rem; padding-bottom: 2.5rem; }
@media (max-width: 767px) { .intro_video__actions { gap: 1rem; padding-top: 1.5rem; padding-bottom: 1.5rem; } }

/* Text block (narrow readable copy) */
.text_block { margin: 5rem 0 7rem; }
.text_block .inner { max-width: 56rem; text-align: left; }
.text_block p { font-size: 1.6rem; line-height: 1.5em; font-weight: 700; margin: 0 0 2rem; }
.text_block p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .text_block { margin: 2.5rem 0 3rem; }
  .text_block p { font-size: 1rem; margin: 0 0 1.2rem; }
}

/* Stats band */
.stats { margin: 0; padding: 4rem 0; background: #000; color: #fff; }
@media (max-width: 767px) { .stats { padding: 2.5rem 0; } }
.stats__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem 2.5rem;
  text-align: center;
}
.stats__list > li { display: flex; flex-direction: column; align-items: center; }
.stats__value { font-size: 2.6rem; font-weight: 700; color: #f26b73; line-height: 1.1em; }
.stats__label { margin-top: .4rem; font-size: 1rem; font-weight: 700; }
@media (max-width: 767px) {
  .stats__list { gap: 2rem 2.5rem; }
  .stats__value { font-size: 1.8rem; }
  .stats__label { font-size: .8rem; }
}

/* Original programs */
.programs { margin: 0 0 9rem; }
@media (max-width: 767px) { .programs { margin: 0 0 4rem; } }
.programs__intro { max-width: 50rem; margin: 0 auto 4rem; text-align: center; }
@media (max-width: 767px) { .programs__intro { margin: 0 auto 2rem; } }
.programs__list { list-style: none; margin: 0 -1rem; padding: 0; display: flex; flex-wrap: wrap; text-align: left; }
.programs__item { display: flex; flex-direction: column; align-items: flex-start; width: 33.33%; padding: 1rem; }
@media (max-width: 1040px) { .programs__item { width: 50%; } }
@media (max-width: 767px) { .programs__list { margin: 0; } .programs__item { width: 100%; padding: 1.2rem 0; } }
.programs__item__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  margin: 0 0 1.6rem;
  color: #fff;
  font-size: 4rem;
  font-weight: 700;
}
.programs__item__visual--photo { position: relative; overflow: hidden; background: #eee; }
.programs__item__visual--photo img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.programs__item__visual--photo img.is-kids { object-position: 50% 62%; }
.programs__item h3 { margin: 0 0 1rem; }
.programs__lead { font-weight: 700; margin: 0 0 .8rem; }
.programs__item p:not(.programs__lead) { margin: 0 0 1.6rem; }
.programs__item .btn { margin-top: auto; }
.programs__item__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.8rem; margin-top: auto; }
.programs__item__actions .btn { margin-top: 0; }
.programs__item__visual--video:hover .project__play { transform: scale(1.12); }

/* Inquiry form (Kontakt) */
.inquiry { margin: 5rem 0 7rem; }
@media (max-width: 767px) { .inquiry { margin: 2rem 0 3rem; } }
.inquiry .inner { max-width: 60rem; text-align: left; }
.inquiry__title { margin: 0 0 2.5rem; color: #f26b73; }
.inquiry__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1.6rem; margin: 0 0 1.4rem; }
@media (max-width: 767px) { .inquiry__grid { grid-template-columns: 1fr; gap: 1rem; } }
.field { display: block; }
.field > span { display: block; margin: 0 0 .4rem; font-size: .9rem; font-weight: 700; }
.field input, .field textarea {
  display: block;
  width: 100%;
  padding: .9rem 1.1rem;
  border: .15rem solid #000;
  border-radius: 0;
  background: #fff;
  color: #000;
  font: inherit;
  font-size: 1.1rem;
  line-height: 1.4em;
}
.field textarea { resize: vertical; min-height: 9rem; }
.field input:focus, .field textarea:focus { outline: none; border-color: #f26b73; }
.field--wide { margin: 0 0 1.6rem; }
.inquiry__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.inquiry__status { min-height: 1.5em; margin: 1.2rem 0 0; font-weight: 700; }
.inquiry__status.is-ok { color: #2c8a4a; }
.inquiry__status.is-error { color: #c0392b; }
.inquiry__direct { margin: 1.6rem 0 0; font-size: 1rem; }
.inquiry__direct a { color: #000; }
.inquiry__form button[disabled] { opacity: .5; cursor: wait; }

.contact_social { list-style: none; margin: 0 0 6rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 1.5rem 2.5rem; font-size: 1.1rem; font-weight: 700; }
.contact_social a { display: inline-flex; align-items: center; gap: .6rem; color: #000; text-decoration: none; }
.contact_social a:hover { color: #f26b73; }

/* Projects (Co se nám povedlo) */
.projects { margin: 0 0 6rem; }
.projects .our_festivals__title { margin: 0 0 4rem; text-align: left; }
.projects__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3rem; }
.project { display: grid; grid-template-columns: 52% 1fr; background: #f3f3f3; text-align: left; overflow: hidden; }
.project:nth-child(even) { grid-template-columns: 1fr 52%; }
.project:nth-child(even) .project__media { order: 2; }
.project__media { position: relative; display: block; min-height: 20rem; }
.project__media img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.project__body { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 3rem 3.5rem; }
.project__body h3 { margin: 0 0 1.4rem; }
.project__body p { margin: 0 0 1rem; }
.project__body .btn { align-self: flex-start; margin-top: 1rem; }
.project__play {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5rem;
  height: 5rem;
  margin: -2.5rem 0 0 -2.5rem;
  border-radius: 50%;
  background: #f26b73;
  transition: transform .15s ease-out;
}
.project__play::after {
  content: "";
  position: absolute;
  left: 1.95rem;
  top: 1.45rem;
  border-style: solid;
  border-width: 1.05rem 0 1.05rem 1.6rem;
  border-color: transparent transparent transparent #fff;
}
.project__media--video:hover .project__play { transform: scale(1.12); }
@media (max-width: 870px) {
  .projects__list { gap: 2rem; }
  .project, .project:nth-child(even) { grid-template-columns: 1fr; }
  .project:nth-child(even) .project__media { order: 0; }
  .project__media { min-height: 0; aspect-ratio: 3 / 2; }
  .project__body { padding: 1.6rem 1.4rem 2rem; }
  .project__play { width: 3.6rem; height: 3.6rem; margin: -1.8rem 0 0 -1.8rem; }
  .project__play::after { left: 1.4rem; top: 1rem; border-width: .8rem 0 .8rem 1.2rem; }
}

.reports_more { margin-top: 2rem; }
.reports_more > summary { list-style: none; cursor: pointer; }
.reports_more > summary::-webkit-details-marker { display: none; }
.reports_more[open] > summary { margin-bottom: 2rem; }

/* Events gallery (Eventy na míru) */
.events_gallery { margin: 0 0 9rem; }
@media (max-width: 767px) { .events_gallery { margin: 0 0 4rem; } }
.events_gallery .our_festivals__title { margin: 0 0 3rem; }
@media (max-width: 767px) { .events_gallery .our_festivals__title { margin: 0 0 1.4rem; } }
.events_gallery .festival__gallery { max-width: 48rem; margin: 0 auto; padding: 0; }
.events_gallery .festival__gallery > li { padding: .5rem; }
.events_gallery .festival__gallery img { display: block; width: 100%; height: auto; }
@media (max-width: 870px) { .events_gallery .festival__gallery { margin: 0 -.3rem; max-width: none; } .events_gallery .festival__gallery > li { padding: .3rem; } }
@media (max-width: 400px) { .events_gallery .festival__gallery > li { width: 50%; } }

/* Call to action */
.cta { margin: 11.5rem 0 12.75rem; }
@media (max-width: 870px) { .cta { margin: 5.75rem 0 6.25rem; } }
@media (max-width: 767px) {
  .cta { margin: 1.75rem 0 4.5rem; }
  .cta .inner { text-align: left; }
}
.cta .h2, .cta h2 { color: #f26b73; max-width: 47.5rem; margin: 0 auto 2.75rem; }
@media (max-width: 767px) { .cta .h2, .cta h2 { font-size: 1.6rem; line-height: 1.25em; max-width: 16.25rem; margin: 0 0 1.45rem; } }

/* Partners */
.partners__dl { margin: 0; text-align: left; }
.partners__dl dd, .partners__dl dt { margin: 0; }
.partners__dl dt { margin: 4rem 0 .95rem; }
@media (max-width: 767px) { .partners__dl dt { margin: 3.45rem 0 .9rem; } }
.partners__dl dt:first-child { margin-top: 0; }

.partners__dl__items { list-style: none; margin: 0 -1rem; padding: 0; display: flex; flex-wrap: wrap; }
@media (max-width: 870px) { .partners__dl__items { margin: 0 -.4rem; } }
.partners__dl__items > li { display: flex; align-items: center; justify-content: center; flex-grow: 0; flex-shrink: 0; width: 16.666%; padding: 1rem; }
@media (max-width: 1040px) { .partners__dl__items > li { width: 20%; } }
@media (max-width: 870px) { .partners__dl__items > li { width: 25%; padding: .4rem; } }
@media (max-width: 767px) { .partners__dl__items > li { width: 33.33%; } }
@media (max-width: 400px) { .partners__dl__items > li { width: 50%; } }
.partners__dl__items img { width: auto !important; max-height: 6.25rem; }

.inner--partners + .inner--partners { margin-top: 4rem; }
@media (max-width: 767px) { .inner--partners + .inner--partners { margin-top: 3.45rem; } }
