/* Festival navazuje na společné fonty a navigaci. Všechna média jsou zatím záměrné placeholdery. */
.festival-page { --accent: #f64b32; --muted: #aaa; }
.festival-page .site-header { mix-blend-mode: normal; background: linear-gradient(#080808d9,transparent); }
.festival-page [aria-current="page"] { color: var(--accent); }
.festival-flow { display: flex; flex-direction: column; }
.festival-flow > section { min-width: 0; }
.eyebrow { font: 500 .875rem/1.4 var(--mono-font); text-transform: uppercase; letter-spacing: .04em; }
.festival-hero { position: relative; min-height: max(850px,100svh); padding: 190px 5vw 100px; display: grid; grid-template-columns: 3fr 2fr; gap: 48px; align-items: end; isolation: isolate; }
.media-slot { position: relative; overflow: hidden; background: linear-gradient(130deg,#242424,#111 70%); border: 1px solid #ffffff16; min-width: 0; }
.media-slot::before { content: '+'; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); color: #ffffff29; font: 300 34px var(--mono-font); }
.media-slot img,.media-slot video { position: absolute; width: 100%; height: 100%; object-fit: cover; inset: 0; }
.media-slot.has-media::before { display: none; }
.slot-label { position: absolute; z-index: 1; left: 20px; bottom: 20px; font: 500 .75rem/1.4 var(--mono-font); text-transform: uppercase; letter-spacing: .06em; color: #999; }
.hero-media { position: absolute; inset: 0; z-index: -2; border: 0; background: radial-gradient(ellipse at 78% 34%,#3d241f 0, #171515 38%,#080808 80%); }
.hero-media::before { left: 80%; top: 32%; }
.hero-media .slot-label { left: auto; right: 5vw; top: 170px; bottom: auto; }
.hero-media.has-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(#0005,#0002 30%,#000b); }
.hero-heading .eyebrow { margin-bottom: 40px; }
.hero-heading h1 { font: 400 clamp(5rem,10.5vw,11rem)/.94 var(--display-font); letter-spacing: -.025em; }
.festival-hero-copy { max-width: 420px; padding-bottom: 12px; }
.festival-hero-copy h2 { font-size: clamp(1.5rem,2.4vw,2.3rem); line-height: 1.06; margin-bottom: 28px; font-weight: 500; }
.festival-hero-copy p { font-size: 1rem; line-height: 1.45; margin-top: 16px; color: #ccc; }
.autumn-hint { grid-column: 1/-1; display: flex; justify-content: space-between; border-top: 1px solid #ffffff40; padding-top: 22px; font: 500 .875rem/1.5 var(--mono-font); text-transform: uppercase; }
.f-wide { padding: 110px 5vw; }
.f-section { padding: 150px 5vw; display: grid; grid-template-columns: 1fr 4fr; gap: 40px; }
.f-content { min-width: 0; }
.f-title { font: 400 clamp(3rem,6vw,6rem)/1.02 var(--display-font); text-transform: uppercase; }
.text-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-top: 60px; max-width: 1000px; }
.text-columns p,.edition-story p,.beyond-intro p,.pop-description p,.film-copy p { font-size: 1rem; line-height: 1.6; color: #bdbdbd; }
.text-columns p + p,.pop-description p + p { margin-top: 22px; }
.first-edition { padding: 90px 5vw 130px; border-top: 1px solid #292929; }
.edition-intro { display: grid; grid-template-columns: 1fr 4fr; gap: 40px; }
.date-title { font-size: clamp(3rem,8vw,8rem); line-height: 1; font-weight: 500; letter-spacing: -.06em; }
.edition-intro h3 { font: 500 1rem/1.5 var(--mono-font); text-transform: uppercase; margin-top: 22px; }
.festival-stats { display: grid; grid-template-columns: repeat(4,1fr); margin: 90px 0 60px; border-block: 1px solid #3a3a3a; }
.festival-stats > div { padding: 38px 16px 34px; border-right: 1px solid #3a3a3a; display: flex; flex-direction: column; gap: 14px; }
.festival-stats > div:first-child { padding-left: 0; }
.festival-stats > div:last-child { border-right: 0; }
.festival-stats strong { font-size: clamp(3.5rem,9vw,10rem); line-height: 1; font-weight: 500; letter-spacing: -.07em; }
.festival-stats strong span { color: var(--accent); }
.festival-stats > div > span { font: 500 .875rem/1.4 var(--mono-font); text-transform: uppercase; }
.edition-story { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; max-width: 1000px; margin-left: auto; }
.edition-story strong { color: white; font-weight: 500; }
.section-top { display: grid; grid-template-columns: 1fr 4fr; gap: 40px; margin-bottom: 60px; }
.artist-grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #666 #171717; padding-bottom: 22px; }
.artist-grid > .artist { flex: 0 0 calc((100% - 48px) / 3.25); scroll-snap-align: start; }
.artist-controls { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin: -20px 0 24px; }
.artist-position { margin-right: 12px; font: 500 .875rem var(--mono-font); color: #aaa; }
.artist-controls button { width: 48px; height: 48px; border: 1px solid #555; border-radius: 50%; background: transparent; color: #fff; font-size: 24px; }
.artist-controls button:hover:not(:disabled) { background: #fff; color: #080808; }
.artist-controls button:disabled { opacity: .3; cursor: default; }
.artist-grid:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }
.artist { position: relative; min-width: 0; }
.artist .media-slot { aspect-ratio: 4/5; }
.artist:nth-child(3n+2) .media-slot { background: linear-gradient(130deg,#24201f,#141414); }
.artist h3 { margin: 18px 38px 0 0; font-size: clamp(1.15rem,2.3vw,2.2rem); line-height: 1.1; font-weight: 500; letter-spacing: -.03em; }
.artist-number { position: absolute; bottom: 0; right: 0; color: #888; font: 500 .75rem var(--mono-font); }
.beyond-intro { margin: 0 0 60px auto; max-width: 650px; }
.pop-collage { display: grid; grid-template-columns: 1.3fr .8fr 1fr; gap: 28px; align-items: start; }
.pop-main { grid-column: 1/3; aspect-ratio: 16/10; }
.pop-names { padding: 30px 0 0 30px; }
.pop-names > p:nth-child(2) { margin: 28px 0 16px; font-size: clamp(1.4rem,2.6vw,2.5rem); line-height: 1.3; letter-spacing: -.03em; }
.muted { color: #aaa; }
.pop-detail { aspect-ratio: 4/5; width: 85%; margin-top: -20px; }
.pop-food { aspect-ratio: 4/5; margin-top: 55px; }
.pop-description { align-self: end; padding-left: 30px; }
.atmosphere { padding: 90px 0; }
.atmosphere .f-wide { padding-top: 0; padding-bottom: 48px; }
.atmosphere h2 { font-size: clamp(1.8rem,4vw,4rem); line-height: 1.12; font-weight: 500; letter-spacing: -.03em; margin-top: 36px; }
.atmosphere-gallery { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x proximity; padding: 0 5vw 24px; scrollbar-color: #777 #171717; }
.atmosphere-gallery .media-slot { flex: 0 0 52%; height: 530px; scroll-snap-align: center; }
.atmosphere-gallery .media-slot:nth-child(even) { flex-basis: 30%; height: 450px; margin-top: 80px; }
.film-copy { max-width: 600px; margin: 0 0 44px auto; }
.film-stage { position: relative; aspect-ratio: 16/9; }
.film-stage > .media-slot { position: absolute; inset: 0; }
.film-cta { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; }
.film-play { display: flex; gap: 20px; align-items: center; padding: 20px 30px; background: #080808b0; border: 1px solid #777; color: white; font: 500 .875rem var(--mono-font); text-transform: uppercase; }
.film-play span { font-size: 24px; }
.film-play:disabled { cursor: default; color: #aaa; }
.film-cta p { font-size: .875rem; color: #aaa; }
.film-stage iframe,.film-stage > video { width: 100%; height: 100%; border: 0; background: #000; }
.partners { border-top: 1px solid #292929; text-align: center; }
.partners h2 { font-size: clamp(1.5rem,3vw,2.6rem); font-weight: 500; margin-top: 28px; }
.partner-grid { display: grid; grid-template-columns: repeat(3,1fr); margin: 60px 0 40px; }
.partner { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; border: 1px solid #303030; margin-left: -1px; }
.partner > span { font-size: clamp(1.4rem,2.6vw,2.5rem); font-weight: 500; }
.partner small { font: 500 .75rem var(--mono-font); text-transform: uppercase; color: #777; }
.partner img { display: block; width: 75%; height: auto; max-height: 110px; object-fit: contain; filter: brightness(0) invert(1); }
.partner-thanks { max-width: 620px; margin: auto; color: #aaa; font-size: 1rem; line-height: 1.5; }
.autumn-section { background: var(--accent); color: #080808; padding: 90px 5vw; }
.autumn-section .f-title { margin: 60px 0 40px; font-size: clamp(3rem,9.5vw,10rem); }
.autumn-copy { max-width: 540px; margin-left: auto; font-size: 1rem; line-height: 1.5; }
.autumn-copy p + p { margin-top: 20px; }
.rap-statement { font-size: clamp(4rem,13vw,13rem); font-weight: 700; letter-spacing: -.06em; line-height: .95; margin: 70px 0; }
.instagram-cta { display: flex; justify-content: space-between; padding: 24px 0; border-block: 1px solid #08080870; font: 500 1rem/1.5 var(--mono-font); text-transform: uppercase; }
.instagram-cta:hover { color: #fff; }
.festival-ending { padding: 140px 5vw 40px; text-align: center; }
.festival-ending h2 { font-size: clamp(1.8rem,4.8vw,4.7rem); line-height: 1.12; font-weight: 500; letter-spacing: -.03em; }
.festival-ending h2 span { color: var(--accent); }
.festival-ending img { width: min(680px,100%); height: auto; object-fit: contain; margin: 40px auto 0; }
.festival-footer { margin: 0 5vw; border-top: 1px solid #333; padding: 32px 0; display: flex; justify-content: space-between; gap: 30px; font: 500 .875rem/1.5 var(--mono-font); text-transform: uppercase; }
.festival-footer nav { display: flex; gap: 24px; flex-wrap: wrap; }
.festival-footer > span { color: #888; }
@media(max-width:1000px) {
  .festival-hero { grid-template-columns: 1fr; gap: 40px; padding-top: 200px; }
  .hero-heading h1 { font-size: 15vw; }
  .festival-hero-copy { max-width: 560px; }
  .f-section,.section-top,.edition-intro { grid-template-columns: 1fr; gap: 30px; }
  .pop-names { padding-left: 0; }
  .pop-description { padding-left: 0; }
  .artist-grid > .artist { flex-basis: calc((100% - 32px) / 2.25); }
  .text-columns { gap: 32px; }
}
@media(max-width:719px) {
  .festival-hero { min-height: 100svh; padding: 150px 20px 32px; gap: 36px; }
  .hero-media .slot-label { top: 100px; right: 20px; font-size: .75rem; }
  .hero-heading .eyebrow { margin-bottom: 24px; }
  .hero-heading h1 { font-size: clamp(3rem,15vw,7rem); }
  .festival-hero-copy h2 { font-size: 1.6rem; margin-bottom: 20px; }
  .festival-hero-copy p { font-size: 1rem; }
  .autumn-hint { gap: 20px; font-size: .75rem; }
  .f-wide,.f-section { padding: 70px 20px; }
  .f-title { font-size: clamp(2.5rem,11vw,4rem); }
  .concept { order: 4; }
  .first-edition { order: 2; padding: 70px 20px; }
  .atmosphere { order: 3; padding: 20px 0 40px; }
  .artists { order: 5; }
  .beyond { order: 6; }
  .film-section { order: 7; }
  .partners { order: 8; }
  .autumn-section { order: 9; }
  .festival-ending { order: 10; }
  .text-columns,.edition-story { grid-template-columns: 1fr; gap: 24px; margin-top: 32px; }
  .date-title { font-size: 15vw; }
  .festival-stats { grid-template-columns: 1fr 1fr; margin: 44px 0 36px; }
  .festival-stats > div { padding: 24px 16px; }
  .festival-stats > div:first-child { padding-left: 16px; }
  .festival-stats > div:nth-child(2) { border-right: 0; }
  .festival-stats > div:nth-child(-n+2) { border-bottom: 1px solid #3a3a3a; }
  .festival-stats strong { font-size: clamp(3rem,16vw,6rem); }
  .edition-story { margin-top: 0; }
  .section-top { margin-bottom: 32px; }
  .artist-grid { gap: 12px; }
  .artist-grid > .artist { flex-basis: 82%; }
  .artist-controls { margin: 0 0 20px; }
  .artist h3 { font-size: 1.125rem; margin-right: 24px; }
  .artist-number { font-size: .75rem; }
  .slot-label { font-size: .75rem; left: 12px; bottom: 12px; }
  .pop-collage { grid-template-columns: 1fr 1fr; gap: 20px; }
  .pop-main { grid-column: 1/-1; }
  .pop-names { grid-column: 1/-1; padding: 12px 0; }
  .pop-names > p:nth-child(2) { columns: 2; font-size: 1.3rem; }
  .pop-detail { width: 100%; margin-top: 0; }
  .pop-food { margin-top: 44px; }
  .pop-description { grid-column: 1/-1; }
  .beyond-intro { margin-bottom: 32px; }
  .atmosphere h2 { font-size: 1.6rem; }
  .atmosphere-gallery { padding-inline: 20px; gap: 12px; }
  .atmosphere-gallery .media-slot { flex-basis: 80%; height: 330px; }
  .atmosphere-gallery .media-slot:nth-child(even) { flex-basis: 65%; height: 280px; margin-top: 50px; }
  .film-stage { aspect-ratio: 4/3; }
  .film-copy { margin-bottom: 30px; }
  .film-play { padding: 14px 22px; }
  .partner-grid { grid-template-columns: 1fr; margin-block: 36px; }
  .partner { min-height: 145px; margin: -1px 0 0; }
  .autumn-section { padding: 70px 20px; }
  .autumn-section .f-title { font-size: 11vw; margin-top: 40px; }
  .rap-statement { font-size: 16vw; margin: 48px 0; }
  .instagram-cta { font-size: .875rem; gap: 20px; }
  .festival-ending { padding: 80px 20px 24px; }
  .festival-ending h2 { font-size: 1.8rem; }
  .festival-footer { flex-direction: column; gap: 24px; margin: 0 20px; }
}
@media(prefers-reduced-motion:no-preference) {
  .artist .has-media img,
  .pop-collage .has-media img,
  .atmosphere-gallery .has-media img { transition: transform .3s ease; }
  .artist:hover .has-media img,
  .pop-collage .has-media:hover img,
  .atmosphere-gallery .has-media:hover img { transform: scale(1.025); }
}

/* Dodané festivalové logo: celé viditelné, vždy s původními proporcemi. */
.hero-heading .festival-logo-heading { font-size: 0; line-height: 1; }
.festival-logo-heading img { display: block; width: min(100%, 600px); height: auto; max-height: 56svh; object-fit: contain; object-position: left center; }
@media (max-width: 719px) { .festival-logo-heading img { width: 100%; max-height: 46svh; object-position: center; } }

/* Trvalé popisky fotografií tvůrců a značek. */
.media-slot[data-keep-label] .slot-label { color: #fff; background: #000b; padding: 7px 11px; }

.photo-slideshow .slideshow-image { opacity: 0; }
.photo-slideshow .slideshow-image.is-current { opacity: 1; }
.slideshow-controls { position: absolute; z-index: 2; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 8px; background: #000b; color: #fff; padding: 4px 8px; font: 500 .75rem var(--mono-font); }
.slideshow-controls button { min-width: 36px; min-height: 36px; border: 0; background: transparent; color: inherit; cursor: pointer; }
.slideshow-controls button:focus-visible { outline: 2px solid white; outline-offset: -2px; }
@media(prefers-reduced-motion:no-preference) {
  .pop-collage .photo-slideshow.has-media img { transition: opacity .7s ease, transform .3s ease; }
}
@media(max-width:719px) { .slideshow-controls { right: 12px; bottom: 12px; } }

/* Čistá automatická slideshow bez viditelných ovládacích prvků. */
.slideshow-controls { display: none; }
