/* ==========================================================================
   Trhák Muzikál
   Rebuilt from the Festy/carnival-z theme. Type scale, colours and spacing
   are carried over from the original main-carnival-z.css so the page reads
   the same; the markup and layout underneath are new.
   ========================================================================== */

/* ---- fonts --------------------------------------------------------- */
/* Signika (headings) + Raleway (body), self-hosted.
   latin-ext is required for Czech diacritics — do not drop it. */

@font-face{font-family:Signika;font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/signika-latin-ext-400-normal.woff2) format('woff2');
  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:Signika;font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/signika-latin-400-normal.woff2) format('woff2');
  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:Signika;font-style:normal;font-weight:600;font-display:swap;
  src:url(../fonts/signika-latin-ext-600-normal.woff2) format('woff2');
  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:Signika;font-style:normal;font-weight:600;font-display:swap;
  src:url(../fonts/signika-latin-600-normal.woff2) format('woff2');
  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:Signika;font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/signika-latin-ext-700-normal.woff2) format('woff2');
  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:Signika;font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/signika-latin-700-normal.woff2) format('woff2');
  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:Raleway;font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/raleway-latin-ext-400-normal.woff2) format('woff2');
  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:Raleway;font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/raleway-latin-400-normal.woff2) format('woff2');
  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:Raleway;font-style:italic;font-weight:400;font-display:swap;
  src:url(../fonts/raleway-latin-ext-400-italic.woff2) format('woff2');
  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:Raleway;font-style:italic;font-weight:400;font-display:swap;
  src:url(../fonts/raleway-latin-400-italic.woff2) format('woff2');
  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:Raleway;font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/raleway-latin-ext-700-normal.woff2) format('woff2');
  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:Raleway;font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/raleway-latin-700-normal.woff2) format('woff2');
  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:Raleway;font-style:italic;font-weight:700;font-display:swap;
  src:url(../fonts/raleway-latin-ext-700-italic.woff2) format('woff2');
  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:Raleway;font-style:italic;font-weight:700;font-display:swap;
  src:url(../fonts/raleway-latin-700-italic.woff2) format('woff2');
  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}

/* ---- tokens -------------------------------------------------------- */
:root{
  --red:#e20613;
  --ink:#1c1c1c;
  --body:#636363;
  --body-alt:#424242;
  --rule:#e7e7e7;
  --sans:Raleway,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --display:Signika,Raleway,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

/* ---- reset --------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:62.5%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  font-family:var(--sans);
  font-size:1.6rem;
  line-height:2.8rem;
  letter-spacing:.01rem;
  color:var(--body);
  background:#fff;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;border:0}
a{color:inherit}
ul{margin:0;padding:0;list-style:none}
p{margin:0 0 1.5rem}
h1,h2,h3,h4,h5,h6{font-family:var(--display);color:var(--ink);margin:0 0 1.5rem;font-weight:700}

h1{font-size:4.5rem;line-height:5.3rem;letter-spacing:.041rem}
h2{font-size:3.5rem;line-height:4.5rem;letter-spacing:.025rem}
h3{font-size:3rem;line-height:4rem;letter-spacing:.03rem}
h4{font-size:2.2rem;line-height:3rem;letter-spacing:.01rem}
h5{font-size:1.8rem;line-height:2.5rem}
h6{font-size:1.6rem;line-height:2.4rem}
@media (min-width:992px){h1{font-size:6.5rem;line-height:6.3rem}h2{font-size:4rem;line-height:5rem}}
@media (min-width:1200px){h1{font-size:7.5rem;line-height:7.3rem}h2{font-size:5rem;line-height:6rem}}

.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#000;color:#fff;
  padding:1rem 2rem;font-family:var(--display)}
.skip-link:focus{left:0}

:focus-visible{outline:.3rem solid var(--red);outline-offset:.3rem}

/* ---- layout -------------------------------------------------------- */
.container{width:100%;margin:0 auto;padding:0 15px;position:relative}
@media (min-width:576px){.container{max-width:540px}}
@media (min-width:768px){.container{max-width:720px}}
@media (min-width:992px){.container{max-width:960px}}
@media (min-width:1200px){.container{max-width:1140px}}
@media (min-width:1640px){.container{max-width:1440px}}
.container--narrow{max-width:600px}
@media (min-width:576px){.container--narrow{max-width:min(600px,90%)}}

.section{padding:6rem 0;position:relative}
@media (min-width:768px){.section{padding:8rem 0}}
@media (min-width:1200px){.section{padding:10rem 0}}

.section__title{text-align:center;padding-bottom:1rem}
.section__title--light{color:#fff}
.section__title--left{text-align:left}

/* ---- reveal on scroll ---------------------------------------------- */
.reveal{opacity:0;transform:translateY(2.5rem);
  transition:opacity .7s ease-out,transform .7s ease-out}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* ---- header -------------------------------------------------------- */
.header{position:absolute;top:0;left:0;width:100%;z-index:50;padding:2rem 0}
.header__inner{display:flex;align-items:center;gap:2rem;
  width:100%;max-width:1440px;margin:0 auto;padding:0 3rem}

.social{display:flex;align-items:center;gap:1rem;flex-shrink:0}
.social a{display:inline-flex;color:#000;transition:color .2s}
.social a:hover{color:#fff}

.nav{margin-left:auto}
.nav ul{display:flex;flex-wrap:wrap;justify-content:flex-end}
.nav li{margin-left:2rem}
@media (min-width:1640px){.nav li{margin-left:4rem}}
.nav a{font-family:var(--display);font-size:1.6rem;line-height:2.5rem;
  color:#333;text-decoration:none;padding:0 1rem;transition:color .3s}
.nav a:hover,.nav a.is-current{color:#fff;text-decoration:underline}

.nav-toggle{display:none;margin-left:auto;background:none;border:0;padding:1rem;cursor:pointer}
.nav-toggle__bars span{display:block;width:30px;height:2px;background:#000;margin-top:5px;
  transition:all .3s}
.nav-toggle__bars span:nth-child(2){width:20px}
.nav-toggle__bars span:last-child{width:15px}
.nav-toggle:hover span{width:30px;background:#fff}

@media (max-width:991px){
  .nav-toggle{display:block}
  .nav{position:fixed;inset:0 0 0 auto;width:min(28rem,80vw);background:#000;
    padding:8rem 2rem 2rem;transform:translateX(100%);transition:transform .3s ease;
    overflow-y:auto;margin-left:0}
  .nav ul{display:block}
  .nav li{margin:0}
  .nav a{display:block;padding:1.2rem 0;color:#fff;font-size:1.8rem}
  body.nav-open .nav{transform:none}
  body.nav-open{overflow:hidden}
  .header__inner{padding:0 1.5rem}
}

/* ---- buttons ------------------------------------------------------- */
.btn{display:inline-block;width:100%;text-align:center;font-family:var(--display);
  font-weight:700;font-size:1.6rem;line-height:2.4rem;padding:1.4rem 2.5rem;
  border-radius:.4rem;text-decoration:none;transition:opacity .2s,background .2s}
.btn--danger{background:var(--red);color:#fff}
.btn--danger:hover{background:#b8050f;color:#fff}

/* ---- prose --------------------------------------------------------- */
.prose{color:var(--body-alt)}
.prose p{margin:0 0 2rem}
.prose--centered{text-align:center;max-width:none}
.prose--italic p{font-style:italic}
.prose--light,.prose--light p{color:#fff;font-size:1.2em}

/* ---- about --------------------------------------------------------- */
.section--about{background:#fff url(../img/ui/about-bg.webp) 0 0 repeat}

/* ---- shop ---------------------------------------------------------- */
.section--shop{background:#fff;text-align:center}
.shop__image{display:block;margin:0 auto 4rem}
.shop__heading{font-size:2.2rem;line-height:3rem;color:#000;margin-bottom:3rem}

/* ---- cast / ensemble grid ------------------------------------------ */
.section--cast{background:#fff url(../img/ui/about-bg.webp) 0 0 repeat}
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem 1.5rem;
  margin:0 0 5rem;text-align:center}
@media (min-width:768px){.people{grid-template-columns:repeat(4,1fr)}}
.people__break{display:none}
@media (min-width:768px){.people__break{display:block;grid-column:2 / -1}}

.person__photo{width:150px;height:150px;object-fit:cover;border-radius:0;margin:0 auto}
.person__name{margin:1.2rem 0 0;font-size:1.6rem;line-height:2.4rem;color:var(--body-alt)}
.person__role{margin:0;font-size:1.5rem;line-height:2.2rem;color:var(--body)}

/* ---- authors ------------------------------------------------------- */
.section--authors{background:#fff}
.author{display:grid;gap:3rem;align-items:center;
  max-width:1140px;margin:0 auto 6rem;padding:0 15px}
@media (min-width:768px){
  .author{grid-template-columns:1fr 1fr;gap:5rem}
  .author--text-right .author__text{order:2}
  .author--text-right .author__figure{order:1}
  .author--text-right{text-align:right}
  .author--text-right .author__credit{text-align:right}
}
.author__name{margin-bottom:.5rem}
.author__role{font-family:var(--display);font-size:2.2rem;line-height:3rem;
  color:var(--ink);margin-bottom:1.5rem}
.author__figure{margin:0}
.author__photo{box-shadow:0 0 5px rgba(0,0,0,.4);display:block;width:100%;height:auto}
.author--text-left .author__photo{margin-left:auto}
.author__credit{font-family:var(--display);font-size:1.6rem;line-height:2.4rem;
  color:var(--ink);margin-top:1rem}
.author--text-left .author__credit{text-align:right}

/* directional reveal, matching the original fadeInLeft / fadeInRight */
.author__text.reveal{transform:translateX(-3rem)}
.author__figure.reveal{transform:translateX(3rem)}
.author--text-right .author__text.reveal{transform:translateX(3rem)}
.author--text-right .author__figure.reveal{transform:translateX(-3rem)}
.author__text.reveal.is-visible,.author__figure.reveal.is-visible{transform:none}

/* ---- credits ------------------------------------------------------- */
.section--credits{background:#fff;text-align:center}
.credits{max-width:66rem;margin:0 auto}
.credits li{margin-bottom:.4rem;color:var(--body-alt)}
.credits__marks{display:flex;justify-content:space-between;align-items:center;
  max-width:66rem;margin:5rem auto 0;padding:0 2rem}
.credits__marks img{width:auto;max-height:9rem}

/* ---- o nás --------------------------------------------------------- */
.section--aboutus{background:var(--red)}
.section--aboutus .container{max-width:1140px}

/* ---- gallery ------------------------------------------------------- */
.section--gallery{background:#fff;padding-top:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,150px);
  justify-content:center;gap:1px}
.gallery__item{display:block;line-height:0;overflow:hidden}
.gallery__item img{width:150px;height:150px;object-fit:cover;
  transition:transform .35s ease,opacity .2s}
.gallery__item:hover img{transform:scale(1.06);opacity:.9}

/* ---- lightbox ------------------------------------------------------ */
.lightbox{border:0;padding:0;background:transparent;max-width:96vw;max-height:96vh;
  overflow:visible}
.lightbox::backdrop{background:rgba(0,0,0,.88)}
.lightbox__img{display:block;max-width:90vw;max-height:88vh;width:auto;height:auto}
.lightbox__close,.lightbox__nav{position:fixed;background:none;border:0;color:#fff;
  cursor:pointer;font-size:4rem;line-height:1;padding:1rem 2rem;opacity:.75}
.lightbox__close:hover,.lightbox__nav:hover{opacity:1}
.lightbox__close{top:1rem;right:2rem;font-size:5rem}
.lightbox__nav--prev{left:.5rem;top:50%;transform:translateY(-50%);font-size:6rem}
.lightbox__nav--next{right:.5rem;top:50%;transform:translateY(-50%);font-size:6rem}

/* ---- partners ------------------------------------------------------ */
.section--partners{background:#fff}
.partners__layout{display:grid;gap:4rem;align-items:center}
@media (min-width:992px){
  .partners__layout{grid-template-columns:2fr 1fr;gap:6rem}
  .partners__groups{order:1}
  .partners__aside{order:2}
}
.partners__grid{display:grid;grid-template-columns:repeat(2,1fr)}
@media (min-width:768px){.partners__grid{grid-template-columns:repeat(4,1fr)}}
.partners__cell{display:flex;align-items:center;justify-content:center;
  min-height:10rem;padding:1.5rem}
@media (min-width:768px){
  /* Vertical rules between cells, one horizontal rule under each group.
     Bordering every cell leaves stray edges when a group's last row is
     ragged (the premiere group has five logos, not four). */
  .partners__grid{border-bottom:.1rem solid var(--rule)}
  .partners__cell{min-height:14rem;border-right:.1rem solid var(--rule)}
  .partners__grid li:nth-child(4n),.partners__grid li:last-child{border-right:none}
}
@media (min-width:992px){.partners__cell{min-height:18rem}}
.partners__cell img{max-height:9rem;width:auto;object-fit:contain;
  transition:filter .2s}
.partners__cell img:hover{filter:grayscale(100%)}
.partners__group-title{font-size:2.2rem;line-height:3rem;margin:3rem 0 1rem}

.partners__aside{text-align:center}
@media (min-width:576px){
  .partners__aside{text-align:right}
  .partners__aside .section__title{text-align:right}
}
.partners__mark{display:block;margin:0 0 1.5rem auto;max-width:13rem}
.partners__intro{color:var(--body-alt)}
.partners__wordmark{margin-top:4rem;text-align:center}
.partners__wordmark img{max-width:100%;height:auto}

/* ---- contact ------------------------------------------------------- */
.section--contact{background:#fff url(../img/hero/asset-17.webp) 0 0 no-repeat;
  background-size:auto 100%}
.contact__grid{display:grid;gap:4rem}
@media (min-width:768px){.contact__grid{grid-template-columns:1fr 1fr;max-width:80rem}}
.contact__col p{color:var(--body-alt)}
.contact__col a{color:var(--red);text-decoration:underline}
.contact__col a:hover{color:#000}
.contact__portrait{width:150px;height:150px;object-fit:cover}
.contact__tickets{display:inline-block;text-decoration:none!important}

/* ---- footer -------------------------------------------------------- */
.footer{background:#000;border-top:.1rem solid rgba(255,255,255,.3);
  position:relative;text-align:center}
.footer__inner{display:flex;flex-direction:column;align-items:center;gap:1rem;
  padding-top:3.2rem;padding-bottom:3.2rem}
@media (min-width:576px){
  .footer__inner{flex-direction:row;justify-content:space-between}
}
.social--footer a{color:#fff;opacity:.7}
.social--footer a:hover{opacity:1}
.copyright{margin:0;color:#fff;opacity:.7;font-size:1.4rem;line-height:2.5rem;
  letter-spacing:.02rem}

.back-top{position:fixed;right:2rem;bottom:2rem;z-index:60;
  width:4.4rem;height:4.4rem;border-radius:50%;border:.1rem solid rgba(255,255,255,.6);
  background:rgba(0,0,0,.7);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.back-top.is-visible{opacity:.8;visibility:visible}
.back-top:hover{opacity:1}

/* ---- print --------------------------------------------------------- */
@media print{
  .header,.footer,.back-top,.hero,.lightbox{display:none!important}
  body{color:#000}
}
