/* Pisma jsou na vlastnim serveru (zadne volani na Google Fonts: rychlejsi start, IP navstevniku nejdou tretim stranam).
   Work Sans: variabilni font, rezy 300-700, latinka + stredoevropske znaky (OFL, viz OFL-WorkSans.txt).
   "Fallback" rodiny jsou systemova pisma prepocitana na rozmery webovych pisem, aby text pri jejich nacteni neposkocil
   (hodnoty spocitane z metrik pisem, Times New Roman / Arial). */
@font-face {
  font-family: 'Work Sans';
  src: url('/assets/fonts/work-sans-var.woff2') format('woff2');
  font-weight: 300 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-bold.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Adobe Garamond Pro';
  src: url('/assets/fonts/agp-bolditalic.woff2') format('woff2');
  font-weight: 700; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Garamond Fallback';
  src: local('Times New Roman'), local('TimesNewRomanPSMT'), local('Liberation Serif');
  size-adjust: 96.1%; ascent-override: 75.4%; descent-override: 28.6%; line-gap-override: 20.8%;
}
@font-face {
  font-family: 'Work Sans Fallback';
  src: local('Arial'), local('ArialMT'), local('Liberation Sans');
  size-adjust: 108.5%; ascent-override: 85.7%; descent-override: 22.4%; line-gap-override: 0%;
}

  :root{
    --ivory:#F5F0E3;
    --ivory-deep:#ECE4D2;
    --ink:#1B1811;
    --hunter-deep:#182417;
    --cognac:#8A5A34;
    --cognac-deep:#6E4527;
    --brass:#C6A15B;
    --brass-bright:#E4C077;
    --midnight:#121110;
    --error:#B3261E;   /* funkcni barva Chyba (logomanual v2.0) */
    --success:#3F7438; /* funkcni barva Uspech */
    --midnight-2:#1B1815;
    --line: rgba(27,24,17,0.14);
    --line-light: rgba(245,240,227,0.16);
    /* Pristupnost (WCAG 1.4.11): ramecek formularoveho pole a obrys fokusu musi mit kontrast aspon 3:1.
       --line (0.14) je jen na dekorativni cary, pole ho nepouzivaji. */
    --field-border: rgba(27,24,17,0.54);
    --focus: var(--cognac); /* zlata (brass) ma na svetlem pozadi jen 2:1, v tmavych sekcich se prepne, viz konec souboru */
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  html:has(dialog[open]){overflow:hidden;} /* stranka pod otevrenym dialogem se neposouva */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *, *::before, *::after{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  body{
    background:var(--ivory);
    color:var(--ink);
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif;
    font-weight:400;
    line-height:1.55;
    overflow-x:hidden;
    overflow-x:clip; /* clip nerozbije position:sticky a na iOS spolehlive zabrani posouvani do strany */
    -webkit-text-size-adjust:100%; text-size-adjust:100%;
    -webkit-tap-highlight-color:rgba(198,161,91,0.18);
  }
  h1,h2,h3,h4{
    text-wrap:balance; /* na uzkem displeji se radky nadpisu rozdeli rovnomerne */
    font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif;
    font-weight:400;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  .mono{
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif;
    font-weight:600;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  /* <picture> jen vybira format a velikost, rozlozeni urcuje <img> uvnitr (<source> by jinak v mrizce zabral bunku) */
  picture{display:contents;}
  picture > source{display:none;}
  .wrap{max-width:73.75rem; margin:0 auto; padding:0 32px;}
  @media (max-width:40em){ .wrap{padding:0 20px;} }


  /* ---------- HEADER ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px 0;
    transition:padding .4s ease;
  }
  header .wrap{display:flex; align-items:center; justify-content:space-between;}
  /* Svetle pozadi hlavicky je v ::before: backdrop-filter primo na <header> by z nej udelal containing block
     pro position:fixed a rozbalene mobilni menu (inset:0) by melo jen vysku hlavicky. */
  header::before{
    content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
    background:rgba(245,240,227,0.92);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    box-shadow:0 1px 0 var(--line);
    opacity:0; transition:opacity .4s ease;
  }
  header.scrolled{padding:14px 0;}
  header.scrolled::before{opacity:1;}
  .logo{
    font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif;
    font-size:1.25rem;
    font-weight:600;
    letter-spacing:0.02em;
    color:var(--ivory);
    transition:color .4s ease;
    display:flex; align-items:baseline; gap:8px;
  }
  /* Logo podle logomanualu v2.0: na zelenem heru negativ (slonova kost), na svetle hlavicce lovecka zelena.
     V hlavicce jsou obe verze pres sebe a prepinaji se pruhlednosti (driv to delal filtr na cernem logu). */
  .logo{position:relative;}
  .logo-img{
    height:36px; width:auto; display:block;
    transition:opacity .4s ease;
  }
  .logo-img-dark{position:absolute; left:0; top:0; opacity:0;}
  header.scrolled .logo-img-light{opacity:0;}
  header.scrolled .logo-img-dark{opacity:1;}
  .logo-img-footer{height:48px;}
  header.scrolled .logo{color:var(--ink);}

  nav.mainnav{display:flex; align-items:center; gap:34px;}
  nav.mainnav a.navlink{
    font-size:0.875rem;
    color:var(--ivory);
    opacity:0.82;
    position:relative;
    padding:4px 0;
    transition:opacity .3s ease, color .4s ease;
  }
  header.scrolled nav.mainnav a.navlink{color:var(--ink);}
  nav.mainnav a.navlink::after{
    content:"";
    position:absolute; left:0; bottom:-2px;
    width:0; height:1px;
    background:var(--brass-bright);
    transition:width .3s ease;
  }
  header.scrolled nav.mainnav a.navlink::after{background:var(--cognac);}
  nav.mainnav a.navlink:hover, nav.mainnav a.navlink.active{opacity:1;}
  nav.mainnav a.navlink:hover::after, nav.mainnav a.navlink.active::after{width:100%;}

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:12px 24px;
    border:1px solid currentColor;
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif;
    font-size:0.8125rem;
    text-transform:uppercase;
    letter-spacing:0.1em;
    border-radius:2px;
    transition:background .3s ease, color .3s ease, transform .3s ease;
    cursor:pointer;
    background:transparent;
  }
  .btn-brass{
    color:var(--ink);
    background:var(--brass);
    border-color:var(--brass);
  }
  .btn-brass:hover{background:var(--brass-bright); transform:translateY(-2px);}
  .btn-outline-light{color:var(--ivory);}
  .btn-outline-light:hover{background:var(--ivory); color:var(--ink); transform:translateY(-2px);}
  .btn-disabled, .btn-disabled:hover{opacity:0.55; cursor:default; background:transparent; color:var(--ivory); transform:none;}
  .btn-outline-dark{color:var(--ink);}
  .btn-outline-dark:hover{background:var(--ink); color:var(--ivory); transform:translateY(-2px);}

  .navcta{display:flex; align-items:center; gap:18px;}
  /* Nenapadne prihlaseni pro vystavovatele vedle vstupenek (na mobilu jen ikona) */
  .nav-login{
    display:inline-flex; align-items:center; gap:7px;
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.1em;
    color:var(--ivory); opacity:0.62; transition:opacity .3s ease, color .4s ease;
  }
  .nav-login svg{width:17px; height:17px; flex-shrink:0;}
  .nav-login:hover, .nav-login:focus-visible{opacity:1;}
  header.scrolled .nav-login{color:var(--ink);}
  /* Prepinac jazyku s vlajkami (generuje scripts/build.mjs): v hlavicce na desktopu, na mobilu v rozbalovacim menu, v paticce */
  .lang-switch{display:flex; align-items:center; gap:10px;}
  .lang-switch a{display:inline-flex; border-radius:2px; opacity:0.55; transition:opacity .3s ease, transform .3s ease;}
  .lang-switch a:hover, .lang-switch a:focus-visible{opacity:1; transform:translateY(-1px);}
  .lang-switch a.is-current{opacity:1;}
  .lang-switch a img{display:block; width:21px; height:14px; object-fit:cover; border-radius:2px; box-shadow:0 0 0 1px rgba(27,24,17,0.15);}
  .lang-switch a.is-current img{box-shadow:0 0 0 2px var(--brass);}
  nav.mainnav .lang-switch{display:none;}
  /* Hlavicka na desktopu: viditelna je jen aktualni vlajka, ostatni se rozbali pod ni (hover, fokus, klik na aktualni vlajku; main.js) */
  .navcta .lang-switch{flex-direction:column; align-items:center; gap:0; height:22px; position:relative; z-index:2;}
  .navcta .lang-switch a{padding:4px;}
  .navcta .lang-switch a.is-current{order:-1; cursor:pointer;}
  /* Sipka u aktualni vlajky: plny mosazny trojuhelnik, je videt, ze jde jazyk prepnout */
  .navcta .lang-switch a.is-current{align-items:center; gap:6px;}
  .navcta .lang-switch a.is-current::after{content:""; width:0; height:0; border:solid transparent; border-width:5px 4px 0; border-top-color:var(--brass); transition:transform .3s ease;}
  .navcta .lang-switch:hover a.is-current::after, .navcta .lang-switch:focus-within a.is-current::after, .navcta .lang-switch.open a.is-current::after{transform:rotate(180deg);}
  .navcta .lang-switch a:not(.is-current){background:var(--hunter-deep); visibility:hidden; opacity:0;}
  .navcta .lang-switch a:not(.is-current):last-child{border-radius:0 0 4px 4px;}
  .navcta .lang-switch:hover a:not(.is-current), .navcta .lang-switch:focus-within a:not(.is-current), .navcta .lang-switch.open a:not(.is-current){visibility:visible; opacity:0.85;}
  .navcta .lang-switch a:not(.is-current):hover, .navcta .lang-switch a:not(.is-current):focus-visible{opacity:1;}
  /* Dotykove displeje: vlajka ma kolem sebe plochu aspon 24 px pro prst */
  @media (pointer:coarse){ .lang-switch{gap:2px;} .lang-switch a{padding:5px;} }
  .foot-bottom .lang-switch{gap:12px;}
  /* Tlacitko menu (jen mobil): tri cary, po otevreni se promeni v krizek */
  .hamburger{
    display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:44px; height:44px; margin-right:-10px; padding:0; border:none; background:transparent;
    cursor:pointer; border-radius:2px;
  }
  .hamburger span{display:block; width:24px; height:1.5px; background:var(--ivory); transition:transform .3s ease, opacity .3s ease, background .4s ease;}
  header.scrolled .hamburger span{background:var(--ink);}
  .hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  .hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

  /* Hamburger az do 1180 px: na mensich notebookach a iPadu na sirku se polozky menu jinak lamou pres logo */
  @media (max-width:73.75em){
    /* Logo a tlacitka zustanou nad rozbalenym menu */
    header .logo, .navcta{position:relative; z-index:2;}
    nav.mainnav{
      position:fixed; inset:0; z-index:1; background:var(--hunter-deep);
      flex-direction:column; justify-content:center; align-items:center; gap:8px;
      padding:96px 24px max(40px, env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain;
      transform:translateX(100%); visibility:hidden;
      transition:transform .4s ease, visibility 0s linear .4s;
    }
    nav.mainnav.open{transform:translateX(0); visibility:visible; transition:transform .4s ease, visibility 0s;}
    nav.mainnav a.navlink{color:var(--ivory) !important; font-size:1.375rem; padding:12px 16px;}
    nav.mainnav a.navlink::after{bottom:8px; left:16px;}
    nav.mainnav a.navlink:hover::after, nav.mainnav a.navlink.active::after{width:calc(100% - 32px);}
    .hamburger{display:flex;}
    .navcta{gap:6px;}
    .navcta .btn-brass{padding:10px 16px; font-size:0.75rem; white-space:nowrap;}
    .nav-login{padding:10px; margin-right:2px;}
    .nav-login span{display:none;}
    .navcta .lang-switch{display:none;}
    nav.mainnav .lang-switch{display:flex; gap:10px; margin-top:24px;}
    nav.mainnav .lang-switch a{padding:8px;}
    nav.mainnav .lang-switch a img{width:30px; height:20px;}
    .nav-login svg{width:20px; height:20px;}
    /* Otevrene menu: hlavicka pruhledna a svetla na tmavem panelu, stranka pod menu se neposouva */
    header.menu-open::before{opacity:0;}
    header.menu-open .logo-img-light{opacity:1;}
    header.menu-open .logo-img-dark{opacity:0;}
    header.menu-open .nav-login{color:var(--ivory);}
    header.menu-open .hamburger span{background:var(--ivory);}
    html.nav-locked, html.nav-locked body{overflow:hidden;}
  }
  @media (max-width:26.25em){
    .navcta{gap:2px;}
    .navcta .btn-brass{padding:9px 12px; font-size:0.75rem; letter-spacing:0.04em;}
    .logo-img{height:30px;}
  }
  @media (max-width:22.4375em){
    /* Nejuzsi telefony (iPhone SE 1. gen.): mensi logo, jinak se hlavicka nevejde */
    .logo-img{height:25px;}
    .navcta .btn-brass{padding:8px 10px; letter-spacing:0.05em;}
    .nav-login{padding:8px 6px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh; min-height:100svh;
    display:flex; flex-direction:column; justify-content:center;
    background:radial-gradient(ellipse at 80% 20%, #2c3f24 0%, var(--hunter-deep) 45%, var(--hunter-deep) 100%);
    color:var(--ivory);
    overflow:hidden;
    padding-top:120px; padding-bottom:60px;
  }
  .hero-grain{
    position:absolute; inset:0;
    background-image:radial-gradient(rgba(245,240,227,0.05) 1px, transparent 1px);
    background-size:3px 3px;
    opacity:0.5;
    pointer-events:none;
  }
  .hero .wrap{position:relative; z-index:2; width:100%;}
  .hero-top{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:40px; align-items:center;
  }
  .hero h1{
    font-size:clamp(3rem, 7vw, 5.75rem);
    color:var(--ivory);
  }
  .hero-sub{
    margin-top:24px; max-width:460px;
    font-size:1.0625rem; color:rgba(245,240,227,0.78); font-weight:300;
  }
  .hero-meta{
    display:flex; gap:28px; margin-top:38px; flex-wrap:wrap;
  }
  .hero-meta div{border-left:1px solid var(--line-light); padding-left:16px;}
  .hero-meta .mono{font-size:0.8125rem; color:var(--brass-bright); display:block; margin-bottom:4px;}
  .hero-meta .val{font-size:0.9375rem; color:var(--ivory);}
  .val-sep{display:inline-block; width:4px; height:4px; border-radius:50%; background:var(--brass-bright); margin:0 10px; vertical-align:middle; position:relative; top:-1px;}
  .hero-cta{display:flex; gap:16px; margin-top:44px; flex-wrap:wrap;}

  .hero-logo-draw, .hero-emblem-draw{width:100%; justify-self:end;}
  .hero-logo-draw{max-width:600px;}
  .hero-emblem-draw{max-width:340px;}
  .hero-logo-draw svg, .hero-emblem-draw svg{width:100%; height:auto; overflow:visible;}
  .logo-draw-path{
    fill:none; stroke:var(--brass-bright); stroke-width:1.4;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:1; stroke-dashoffset:1;
    animation:draw-logo 1.6s cubic-bezier(.4,0,.2,1) .3s forwards;
  }
  .logo-sub-group .logo-draw-path{animation-duration:1.1s; animation-delay:1.5s;}
  rect.logo-draw-path{animation-duration:.5s; animation-delay:1.3s;}
  .hero-emblem-draw .logo-draw-path:nth-child(2){animation-delay:.5s;}
  .hero-emblem-draw .logo-draw-path:nth-child(3){animation-delay:.65s;}
  .hero-emblem-draw .logo-draw-path:nth-child(4){animation-delay:.8s;}
  @keyframes draw-logo{ to{stroke-dashoffset:0;} }

  .scroll-hint{
    margin-top:70px; display:flex; align-items:center; gap:12px;
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.75rem; letter-spacing:0.1em;
    color:rgba(245,240,227,0.7); text-transform:uppercase; text-decoration:none; width:fit-content;
  }
  .scroll-hint .line{width:1px; height:34px; background:rgba(245,240,227,0.4); position:relative; overflow:hidden;}
  .scroll-hint .line::after{
    content:""; position:absolute; top:-100%; left:0; width:100%; height:100%;
    background:var(--brass-bright);
    animation:scrolldown 1.8s ease-in-out infinite;
  }
  @keyframes scrolldown{ 0%{top:-100%;} 60%{top:100%;} 100%{top:100%;} }

  /* Hero na tabletu a mobilu: jeden sloupec, znak se kresli male nad nadpisem */
  @media (max-width:56.25em){
    .hero{padding-top:104px; padding-bottom:48px;}
    .hero-top{grid-template-columns:1fr; gap:0;}
    .hero-top > :first-child{order:2;}
    .hero-emblem-draw{order:1; justify-self:start; max-width:110px; margin-bottom:30px;}
    .hero-emblem-draw .logo-draw-path{stroke-width:2.2;}
    .hero-sub{max-width:560px;}
    .scroll-hint{margin-top:44px;}
  }
  @media (max-width:35em){
    .hero-emblem-draw{max-width:72px; margin-bottom:26px;}
    .hero h1{font-size:clamp(2.5rem, 12vw, 3.25rem);}
    .hero-sub{font-size:1rem; margin-top:20px;}
    .hero-meta{gap:16px 22px; margin-top:30px;}
    .hero-meta .val{font-size:0.875rem;}
    .hero-cta{margin-top:32px; gap:12px;}
    .hero-cta .btn{flex:1 1 100%; justify-content:center; padding:15px 20px;}
    .hero .scroll-hint{display:none;}
  }

  /* ---------- AFTERMOVIE ---------- */
  .aftermovie{
    position:relative;
    height:78vh; min-height:460px; max-height:760px;
    overflow:hidden;
    color:var(--ivory);
  }
  .aftermovie-video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0;
  }
  .aftermovie-poster{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover;
    transition:opacity .5s ease;
  }
  .aftermovie-poster.is-hidden{opacity:0; pointer-events:none;}
  .aftermovie-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(18,17,16,0.8) 0%, rgba(18,17,16,0.68) 40%, rgba(18,17,16,0.92) 100%);
  }
  .aftermovie-toggle{
    position:absolute; right:24px; bottom:24px; z-index:3;
    width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
    background:rgba(18,17,16,0.55); color:var(--ivory); border:1px solid rgba(245,240,227,0.5); border-radius:50%;
    cursor:pointer; transition:background .3s ease, border-color .3s ease;
  }
  .aftermovie-toggle[hidden]{display:none;}
  .aftermovie-toggle:hover{background:rgba(18,17,16,0.8); border-color:var(--brass-bright);}
  .aftermovie-toggle svg{width:18px; height:18px;}
  .aftermovie-toggle .icon-play, .aftermovie-toggle.is-paused .icon-pause{display:none;}
  .aftermovie-toggle.is-paused .icon-play{display:block;}
  .aftermovie-content{
    position:relative; z-index:2;
    height:100%;
    display:flex; flex-direction:column; justify-content:center;
    max-width:640px;
  }
  .aftermovie-content h2{font-size:clamp(2rem,4.4vw,3rem);}
  .aftermovie-content p{margin-top:18px; font-size:1rem; color:rgba(245,240,227,0.8); font-weight:300; max-width:460px;}
  .aftermovie-content .btn{margin-top:32px; align-self:flex-start;}
  @media (max-width:40em){
    .aftermovie{height:auto; min-height:0; max-height:none;}
    .aftermovie-content{padding-top:96px; padding-bottom:96px;}
  }

  /* ---------- SECTION SHARED ---------- */
  section{scroll-margin-top:90px;}
  /* Prvek s fokusem z klavesnice se nesmi schovat pod pevnou hlavicku (WCAG 2.4.11) */
  a, button, input, textarea, select, summary, [tabindex]{scroll-margin-top:100px; scroll-margin-bottom:24px;}
  .section-pad{padding:110px 0;}
  .section-head{max-width:680px; margin-bottom:56px;}
  .section-head h2{font-size:clamp(2rem,4.2vw,3rem);}
  .section-head p{margin-top:18px; font-size:1.0625rem; color:rgba(27,24,17,0.68); font-weight:300;}
  /* Hlavicka sekce s tlacitkem vedle textu (Pro navstevniky -> vstupenky) */
  .section-head-cta{max-width:none;}
  .section-head-cta-row{margin-top:18px; display:grid; grid-template-columns:minmax(0,680px) 1fr; align-items:center; gap:24px 48px;}
  .section-head-cta-row p{margin-top:0;}
  .section-head-cta-row .btn{justify-self:center;}
  @media (max-width:53.75em){ .section-head-cta-row{grid-template-columns:1fr;} }
  #tickets{scroll-margin-top:90px;}
  @media (max-width:40em){
    section{scroll-margin-top:70px;}
    #tickets{scroll-margin-top:70px;}
    .section-pad{padding:72px 0;}
    .section-head{margin-bottom:36px;}
    .section-head p{font-size:1rem;}
    .section-head-cta-row .btn{justify-self:stretch; justify-content:center;}
  }

  /* ---------- VISITORS SECTION ---------- */
  #navstevnici{background:var(--ivory-deep); border-top:1px solid var(--line); box-shadow:0 1px 0 var(--ivory) inset;}
  /* Haly jako fotograficke bloky: velka fotka s cislem haly, text, tri dlazdice programu a stitky.
     Hala 4 je zrcadlove otocena a tmava, navazuje na Night Show pod ni. */
  .halls{display:flex; flex-direction:column; gap:28px; margin-bottom:90px;}
  .hall-feature{display:grid; grid-template-columns:1.05fr 1fr; background:var(--ivory); border:1px solid var(--line); overflow:hidden;}
  .hall-photo{position:relative; min-height:520px; overflow:hidden;}
  .hall-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease;}
  .hall-feature:hover .hall-photo img{transform:scale(1.03);}
  .hall-photo::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,17,16,0) 45%, rgba(18,17,16,0.55) 100%);}
  .hall-num{
    position:absolute; left:28px; bottom:16px; z-index:1;
    font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:clamp(2.25rem, 4vw, 3.25rem); line-height:1; color:var(--ivory);
    text-shadow:0 4px 24px rgba(0,0,0,0.35); opacity:0.75;
  }
  .hall-body{padding:52px 48px; display:flex; flex-direction:column; justify-content:center;}
  .hall-kicker{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.75rem; font-weight:500; text-transform:uppercase; letter-spacing:0.1em; color:var(--cognac);}
  .hall-body h3{margin-top:14px; font-size:clamp(1.75rem, 3vw, 2.25rem); line-height:1.15;}
  .hall-body > p{margin-top:16px; color:rgba(27,24,17,0.72); font-weight:300; font-size:1rem;}
  .hall-tiles{list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:12px;}
  .hall-tiles li{position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:2px; background:var(--ivory-deep);}
  .hall-tiles img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease;}
  .hall-tiles li:hover img{transform:scale(1.06);}
  /* Tmavsi spodek a stin pod textem: popisky musi byt citelne i na svetlych mistech fotky (WCAG 1.4.3) */
  .hall-tiles li::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,17,16,0) 35%, rgba(18,17,16,0.55) 62%, rgba(18,17,16,0.88) 100%);}
  .hall-tiles span{position:absolute; left:12px; right:12px; bottom:10px; z-index:1; font-size:0.8125rem; font-weight:500; line-height:1.25; color:var(--ivory); text-shadow:0 1px 3px rgba(18,17,16,0.8);}
  .hall-body .program-tags{margin-top:22px;}
  .program-tags-center{justify-content:center;}
  .hall-feature-dark{grid-template-columns:1fr 1.05fr; background:var(--hunter-deep); border-color:var(--hunter-deep); color:var(--ivory);}
  .hall-feature-dark .hall-photo{order:2;}
  .hall-feature-dark .hall-num{left:auto; right:28px;}
  .hall-feature-dark .hall-kicker{color:var(--brass-bright);}
  .hall-feature-dark .hall-body > p{color:rgba(245,240,227,0.72);}
  .hall-feature-dark .tag{border-color:rgba(245,240,227,0.22); color:var(--ivory);}
  .tag-link{transition:background .3s ease, border-color .3s ease;}
  .hall-feature-dark .tag-link{border-color:var(--brass); color:var(--brass-bright);}
  .hall-feature-dark .tag-link:hover{background:var(--brass); color:var(--ink);}
  @media (max-width:61.25em){
    .hall-feature{grid-template-columns:1fr;}
    .hall-feature-dark .hall-photo{order:0;}
    .hall-photo{min-height:300px; aspect-ratio:16/10;}
    .hall-body{padding:34px 26px 38px;}
  }
  @media (max-width:40em){
    .halls{gap:20px; margin-bottom:64px;}
    .hall-photo{min-height:0;}
    .hall-num{left:20px; font-size:2.25rem;}
    .hall-feature-dark .hall-num{right:20px;}
    .hall-body{padding:28px 20px 30px;}
    .hall-tiles{margin-top:22px;}
  }
  @media (max-width:32.5em){
    .hall-tiles{gap:8px;}
    .hall-tiles span{font-size:0.75rem; left:8px; right:8px; bottom:8px; overflow-wrap:break-word;}
  }
  @media (max-width:25em){
    .hall-tiles{grid-template-columns:repeat(2, 1fr);}
    .hall-tiles li{aspect-ratio:4/3;}
    .hall-tiles li:last-child:nth-child(odd){grid-column:1 / -1; aspect-ratio:8/3;}
  }

  .program-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
  .tag{
    font-size:0.8125rem; padding:8px 16px; border:1px solid var(--line);
    border-radius:100px; color:var(--ink); background:transparent;
    font-weight:400;
  }

  /* Gala dark subsection */
  .gala{
    background:radial-gradient(ellipse at 20% 0%, #25201a 0%, var(--midnight) 60%);
    color:var(--ivory);
    padding:120px 0;
    width:100vw;
    margin-left:calc(50% - 50vw);
    position:relative;
  }
  .gala::before{
    content:""; position:absolute; inset:0;
    background-image:linear-gradient(rgba(198,161,91,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(198,161,91,0.06) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse at center, black, transparent 75%);
  }
  .gala .wrap{position:relative; z-index:2;}
  .gala h2{font-size:clamp(2.25rem,5vw,3.5rem);}
  .gala-desc{color:rgba(245,240,227,0.72); font-weight:300; font-size:1.0625rem; margin-top:24px; max-width:46rem;}
  .gala-note{
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; text-transform:uppercase;
    letter-spacing:0.08em; color:var(--brass-bright); margin-top:24px;
    border-left:2px solid var(--brass); padding-left:14px;
  }
  @media (max-width:40em){
    .gala{padding:76px 0;}
    .gala-desc{margin-top:18px; font-size:1rem;}
  }

  /* Night Show box mezi hlavickou vstupenek a cenami */
  .nightshow-box{
    margin-top:64px; display:grid; grid-template-columns:1fr 1fr; gap:24px 50px; align-items:start;
    padding:40px 44px; border:1px solid rgba(198,161,91,0.45); border-left:3px solid var(--brass);
    background:linear-gradient(120deg, rgba(198,161,91,0.10), rgba(198,161,91,0.02) 60%);
  }
  .nightshow-box h3{font-size:clamp(1.625rem,3vw,2.25rem); color:var(--ivory);}
  .nightshow-box-head .ticket-badge{margin-bottom:18px;}
  .ticket-badge-lg{padding:8px 16px; font-size:0.8125rem; letter-spacing:0.14em;}
  .nightshow-box .scroll-hint{margin-top:30px; color:rgba(245,240,227,0.8);}
  #ticketPrices{scroll-margin-top:90px;}
  /* Izometricka aréna (Night Show): generuje scripts/arena-iso.mjs, kresli se po zobrazeni boxu jako znak v hero */
  .nightshow-arena{margin-top:20px; flex-grow:1; display:flex; align-items:center; justify-content:center;}
  .ticket .tdesc:has(+ .nightshow-arena){flex-grow:0;}
  .nightshow-arena svg{width:100%; max-width:420px; height:auto; overflow:visible; display:block;}
  .arena-p{
    fill:none; stroke:var(--brass-bright); stroke-width:1.3;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:1; stroke-dashoffset:1;
  }
  .tickets.in .arena-p{animation:draw-logo 1.6s cubic-bezier(.4,0,.2,1) var(--d,0s) forwards;}
  .arena-frame{opacity:.3;}
  .arena-hall{opacity:.55;}
  .arena-stairs{opacity:.6;}
  .arena-spot{
    fill:rgba(228,192,119,0.14); stroke:var(--brass-bright); stroke-width:1; opacity:0;
  }
  .tickets.in .arena-spot{animation:arena-spot-in .9s ease 4.4s forwards, arena-spot-move 7s ease-in-out 4.4s infinite alternate;}
  @keyframes arena-spot-in{ to{opacity:1;} }
  @keyframes arena-spot-move{
    from{transform:translate(calc(var(--mx) * -0.5), calc(var(--my) * -0.5));}
    to{transform:translate(calc(var(--mx) * 0.5), calc(var(--my) * 0.5));}
  }
  @media (max-width:40em){ #ticketPrices{scroll-margin-top:70px;} }
  .nightshow-box-body p{color:rgba(245,240,227,0.72); font-weight:300; font-size:1rem;}
  .nightshow-box-body .gala-note{margin-top:20px;}
  @media (max-width:51.25em){ .nightshow-box{grid-template-columns:1fr; margin-top:44px;} }
  @media (max-width:40em){ .nightshow-box{padding:28px 22px;} }

  /* Stitek (NOVINKA, NEJVYHODNEJSI) */
  .ticket-badge{
    display:inline-block; align-self:flex-start; padding:5px 10px; border-radius:2px;
    background:var(--brass-bright); color:var(--ink);
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.6875rem; font-weight:600;
    text-transform:uppercase; letter-spacing:0.12em; line-height:1.2;
  }
  .ticket-badge-quiet{background:var(--midnight-2); color:var(--brass-bright); box-shadow:inset 0 0 0 1px var(--brass);} /* zakladni varianta, at vynikaji NOVINKA a NEJVYHODNEJSI */
  .ticket-flag{position:relative;}
  .ticket-flag .ticket-badge{position:absolute; top:-12px; left:30px;}
  .ticket.ticket-best{background:#25201a; border-top-color:var(--brass);}

  /* Tickets */
  .tickets{margin-top:72px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line-light);}
  .gala .tickets{background:rgba(245,240,227,0.12);}
  .ticket{
    background:var(--midnight-2); padding:38px 30px;
    display:flex; flex-direction:column;
    border-top:2px solid transparent;
    transition:border-color .3s ease, transform .3s ease;
  }
  .ticket:hover{border-color:var(--brass); transform:translateY(-4px);}
  .ticket .tname{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--brass-bright);}
  .ticket .tprice{font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:2.125rem; margin-top:14px; color:var(--ivory);}
  .ticket .tprice-hidden{filter:blur(9px); user-select:none; pointer-events:none;} /* Night Show: cena zatim skryta, do spusteni prodeje */
  .ticket .tprice-mask::before{content:"0 000";} /* zastupne cislo jen v CSS, aby v HTML nebyla vymyslena cena pro vyhledavace */
  .ticket .tprice small{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; color:rgba(245,240,227,0.55); margin-left:6px;}
  /* Cenik denni vstupenky: kategorie, predprodej, na miste (zdarma pres oba sloupce) */
  .ticket .tprice-table{width:100%; margin-top:18px; border-collapse:collapse; border-top:1px solid var(--line-light); font-size:0.8125rem;}
  .tprice-table th, .tprice-table td{padding:9px 0; border-top:1px solid var(--line-light); vertical-align:baseline;}
  .tprice-table thead th{
    padding-top:14px; border-top:none; font-weight:400; font-size:0.6875rem; text-transform:uppercase; letter-spacing:0.08em;
    color:rgba(245,240,227,0.55); text-align:right;
  }
  .tprice-table thead th + th{padding-left:14px; white-space:nowrap; width:1%;} /* sloupce s cenami jen na sirku obsahu, zbytek pro kategorie */
  .tprice-table tbody th{text-align:left; font-weight:400; color:rgba(245,240,227,0.8); padding-right:12px;}
  .tprice-table tbody th small{display:block; margin-top:2px; font-size:0.75rem; font-weight:300; color:rgba(245,240,227,0.6);}
  .tprice-table td{text-align:right; color:var(--brass-bright); white-space:nowrap; padding-left:14px;}
  .tprice-table td[colspan]{text-align:right; padding-left:14px;}
  /* Podminka slevy (doklady) pod radkem pres celou sirku tabulky */
  .tprice-table tr.has-note > *{padding-bottom:4px;}
  .tprice-table tr.tprice-note td{
    border-top:none; padding:0 0 9px; text-align:left; white-space:normal;
    font-size:0.75rem; font-weight:300; color:rgba(245,240,227,0.6);
  }
  @media (max-width:20em){ .tprice-table td{white-space:normal;} } /* velke pismo na uzkem displeji */
  .ticket .tdesc{margin-top:14px; font-size:0.9375rem; color:rgba(245,240,227,0.65); font-weight:300;}
  .ticket .tdesc:last-of-type{flex-grow:1;} /* tlacitka zarovnana dole, odstavce u sebe */
  .ticket .tprice-from{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.9375rem; color:rgba(245,240,227,0.7);}
  /* Co vstupenka obsahuje: odrazky s ikonou (fajfka, hodiny, krizek = neplati, i = upozorneni, darek = sleva) */
  .tfacts-lead{margin-top:18px; font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:1.25rem; color:var(--ivory);}
  .tfacts{list-style:none; margin:18px 0 0; padding:14px 0 0; border-top:1px solid var(--line-light); display:flex; flex-direction:column; gap:10px;}
  .tfacts-lead + .tfacts{margin-top:10px;}
  .tfacts li{position:relative; padding-left:28px; font-size:0.9375rem; line-height:1.45; color:rgba(245,240,227,0.85);}
  .tfacts li::before{
    content:""; position:absolute; left:0; top:2px; width:18px; height:18px; background:var(--brass-bright);
    -webkit-mask:var(--tfact-icon) center/contain no-repeat; mask:var(--tfact-icon) center/contain no-repeat;
  }
  .tfacts strong{color:var(--brass-bright); font-weight:600; white-space:nowrap;}
  .tfact-yes{--tfact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");}
  .tfact-time{--tfact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");}
  .tfact-info{--tfact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");}
  .tfact-no{--tfact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E"); color:rgba(245,240,227,0.65);}
  .tfacts li.tfact-no::before{background:#d98b6a;}
  .ticket .tprice-table + .tfacts{flex-grow:1; align-content:flex-start;} /* denni vstupenka: tlacitko zarovnane dole jako u ostatnich */
  /* Night Show: zvyrazneny slevovy kod na denni vstupenku */
  .tbonus{
    margin-top:20px; display:flex; gap:14px; align-items:flex-start;
    padding:16px 18px; border:1px solid rgba(198,161,91,0.55); background:rgba(198,161,91,0.08); border-radius:2px;
  }
  .tbonus svg{flex-shrink:0; width:26px; height:26px; color:var(--brass-bright);}
  .tbonus p{font-size:0.9375rem; line-height:1.45; color:var(--ivory);}
  .tbonus strong{color:var(--brass-bright); font-weight:600; white-space:nowrap;}
  .tbonus small{display:block; margin-top:6px; font-size:0.8125rem; font-weight:300; color:rgba(245,240,227,0.65);}
  .ticket .btn{margin-top:24px;}
  @media (max-width:47.5em){
    .tickets{grid-template-columns:minmax(0,1fr); margin-top:44px;}
    .ticket-flag .ticket-badge{position:static; margin-bottom:16px;} /* pod sebou by stitek zasahoval do karty nad nim */
  }
  @media (max-width:40em){
    .ticket{padding:30px 22px;}
    .ticket .btn{justify-content:center;}
  }

  /* ---------- EXHIBITORS SECTION ---------- */
  #vystavovatele{background:var(--ivory-deep);}
  .why-title{font-size:1.5rem; margin-bottom:24px;}
  .why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); margin-bottom:90px;}
  .why-card{background:var(--ivory-deep); padding:34px 26px;}
  .why-card .mono{font-size:0.75rem; color:var(--cognac); letter-spacing:0.08em;}
  .why-card h4{margin-top:14px; font-size:1.1875rem;}
  .why-card p{margin-top:10px; font-size:0.9375rem; color:rgba(27,24,17,0.66); font-weight:300;}
  @media (max-width:56.25em){.why-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:35em){
    .why-grid{grid-template-columns:1fr; margin-bottom:56px;}
    .why-card{padding:24px 20px;}
    .why-card h4{margin-top:8px;}
  }

  /* Obory na veletrhu (sekce Pro navstevniky nad vstupenkami; skupiny oboru z prihlasky v portalu, lang home.fields) */
  .fields{margin-bottom:110px;}
  .fields-head{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:12px 48px; align-items:end; margin-bottom:32px;}
  .fields-head h3{font-size:clamp(1.75rem,3.4vw,2.375rem);}
  .fields-head p{font-size:1rem; font-weight:300; color:rgba(27,24,17,0.68); max-width:520px;}
  .fields-grid{list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
  .field-card{
    display:flex; align-items:flex-start; gap:16px; padding:22px 20px;
    background:var(--ivory); border:1px solid var(--line); border-radius:2px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  }
  .field-icon{
    flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:50%;
    color:var(--cognac); background:var(--ivory-deep); border:1px solid rgba(138,90,52,0.25);
    transition:background .35s ease, color .35s ease;
  }
  .field-icon svg{width:24px; height:24px;}
  .field-name{padding-top:2px; font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:1.1875rem; line-height:1.2;}
  .field-name small{display:block; margin-top:5px; font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; line-height:1.4; color:rgba(27,24,17,0.68);}
  /* 14 oboru + "…a mnohem vic": ve 4 a 2 sloupcich zabere dve pole, aby posledni rada byla plna */
  .field-more{grid-column:span 2; background:var(--hunter-deep); border-color:var(--hunter-deep); color:var(--ivory);}
  .field-more .field-icon{color:var(--brass-bright); background:rgba(245,240,227,0.06); border-color:rgba(228,192,119,0.35);}
  .field-more .field-name small{color:rgba(245,240,227,0.65);}
  @media (hover:hover){
    .field-card:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(27,24,17,0.08); border-color:rgba(138,90,52,0.3);}
    .field-card:not(.field-more):hover .field-icon{background:var(--cognac); color:var(--ivory);}
  }
  @media (max-width:68.75em){ .fields-grid{grid-template-columns:repeat(3,1fr);} .field-more{grid-column:auto;} }
  @media (max-width:53.75em){ .fields-head{grid-template-columns:1fr;} .fields-grid{grid-template-columns:repeat(2,1fr);} .field-more{grid-column:span 2;} }
  @media (max-width:40em){
    .fields{margin-bottom:72px;}
    .fields-grid{grid-template-columns:1fr; gap:10px;}
    .field-more{grid-column:auto;}
    .field-card{padding:16px; gap:14px; align-items:center;}
    .field-icon{width:42px; height:42px;}
    .field-name{font-size:1.125rem; padding-top:0;}
  }
  .price-table-wrap{
    margin-bottom:70px; border:1px solid var(--line); padding:44px;
    background:var(--ivory);
  }
  .price-table-head h3{font-size:1.5rem;}
  .price-table-head p{margin-top:10px; color:rgba(27,24,17,0.68); font-weight:300; font-size:0.9375rem;}
  .price-table{margin-top:30px; overflow-x:auto;}
  .price-row{
    display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:14px; align-items:center;
    padding:14px 0; border-top:1px solid var(--line); font-size:0.875rem; min-width:420px;
  }
  .price-row:first-child{border-top:none;}
  .price-row-head{
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.75rem; text-transform:uppercase;
    letter-spacing:0.06em; color:var(--cognac); border-top:none; padding-bottom:8px;
  }
  .price-row .mono{font-size:0.875rem;}
  /* Aktualne platna cena (pricing.js / portal vystavovatele) */
  .price-table [data-tier].is-current{color:var(--cognac); font-weight:600;}
  .price-fee{
    margin-top:22px; padding-top:18px; border-top:1px solid var(--line);
    display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px 24px; align-items:center;
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; text-transform:uppercase; letter-spacing:0.06em;
  }
  .price-fee .mono{text-transform:none;} /* Kč, ne KČ */
  @media (max-width:40em){
    .price-table-wrap{padding:26px 20px; margin-bottom:56px;}
    .price-table{margin-top:22px;}
    /* Cenik se na mobilu vejde cely (jinak ma min. sirku 420 px a treti sloupec je schovany za posunem do strany) */
    .price-row{min-width:0; grid-template-columns:1.1fr 1fr 1fr; gap:10px; font-size:0.8125rem;}
    .price-row .mono{font-size:0.8125rem;}
    .price-row-head{font-size:0.75rem; letter-spacing:0.02em;}
    .price-fee{justify-content:space-between; gap:12px; font-size:0.8125rem;}
    .price-fee .mono{white-space:nowrap;}
  }

  .packages{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .package{
    border:1px solid var(--line); padding:40px 32px; background:var(--ivory);
    display:flex; flex-direction:column;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .package:hover{transform:translateY(-6px); box-shadow:0 16px 40px rgba(27,24,17,0.08);}
  .package.featured{background:var(--hunter-deep); color:var(--ivory); border-color:var(--hunter-deep);}
  .package .mono{font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--cognac);}
  .package.featured .mono{color:var(--brass-bright);}
  .package h3{margin-top:16px; font-size:1.625rem;}
  .package ul{margin-top:22px; list-style:none; flex-grow:1;}
  .package li{
    padding:10px 0; font-size:0.875rem; font-weight:300;
    border-top:1px solid var(--line);
    color:rgba(27,24,17,0.75);
  }
  .package.featured li{border-color:var(--line-light); color:rgba(245,240,227,0.82);}
  .package .btn{margin-top:28px;}
  @media (max-width:56.25em){.packages{grid-template-columns:1fr;}}

  .cta-strip{
    margin-top:90px; padding:56px; border:1px solid var(--cognac);
    display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  }
  .cta-strip h3{font-size:1.625rem; max-width:480px;}
  .cta-strip p{margin-top:8px; color:rgba(27,24,17,0.68); font-weight:300; font-size:0.9375rem;}
  .cta-strip-center{justify-content:center;}

  /* ---------- ZAJEM VYSTAVOVAT: text + animovana ukazka formulare ---------- */
  .interest-cta{
    position:relative; margin-top:90px; border:1px solid var(--cognac);
    display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
  }
  .interest-copy{padding:56px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center;}
  .interest-copy h3{font-size:1.875rem; max-width:420px;}
  .interest-copy p{margin-top:12px; max-width:420px; color:rgba(27,24,17,0.68); font-weight:300; font-size:1rem;}
  .interest-copy .btn{margin-top:30px; padding:15px 28px;}

  /* Tlacitko: obcas pres nej prejede odlesk, sipka se pri najeti posune */
  .btn-shine{position:relative; overflow:hidden;}
  .btn-shine::after{
    content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%;
    background:linear-gradient(100deg, transparent, rgba(255,255,255,0.55), transparent);
    transform:skewX(-20deg); animation:btn-shine 5s ease-in-out 1.5s infinite;
  }
  @keyframes btn-shine{0%{left:-60%;} 22%,100%{left:130%;}}
  .btn-arrow{display:inline-block; transition:transform .3s ease;}
  .btn-shine:hover .btn-arrow{transform:translateX(4px);}

  .interest-demo{
    position:relative; overflow:hidden; cursor:pointer;
    background:var(--hunter-deep); padding:48px 56px;
    display:flex; align-items:center; justify-content:center;
  }
  .interest-demo::before{
    content:""; position:absolute; width:360px; height:360px; border-radius:50%;
    background:radial-gradient(circle, rgba(198,161,91,0.22), transparent 70%);
    top:-120px; right:-120px; animation:demo-glow 9s ease-in-out infinite alternate;
  }
  @keyframes demo-glow{to{transform:translate(-60px,80px);}}
  .demo-card{
    position:relative; width:100%; max-width:360px;
    background:var(--ivory); padding:26px 26px 24px; border-radius:2px;
    box-shadow:0 24px 50px rgba(0,0,0,0.35);
    transition:transform .5s ease;
  }
  .interest-demo:hover .demo-card{transform:translateY(-4px);}
  .demo-head{font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:21px; margin-bottom:16px;}
  .demo-field{margin-bottom:12px;}
  .demo-label{display:block; font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:rgba(27,24,17,0.68); margin-bottom:5px;}
  .demo-input{
    display:flex; align-items:center; height:36px; padding:0 12px;
    border:1px solid var(--line); background:#fff; font-size:13px; white-space:nowrap; overflow:hidden;
    transition:border-color .3s ease, box-shadow .3s ease;
  }
  .demo-field.is-active .demo-input{border-color:var(--brass); box-shadow:0 0 0 3px rgba(198,161,91,0.18);}
  .demo-field.is-active .demo-text::after{
    content:""; display:inline-block; width:1px; height:15px; margin-left:1px; vertical-align:-3px;
    background:var(--ink); animation:demo-caret 1s steps(1) infinite;
  }
  @keyframes demo-caret{50%{opacity:0;}}
  .demo-submit{
    display:inline-block; margin-top:6px; padding:10px 20px;
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:0.1em;
    background:var(--brass); color:var(--ink); transition:transform .15s ease, background .2s ease;
  }
  .demo-submit.is-hover{background:var(--brass-bright);}
  .demo-cursor{
    position:absolute; left:0; top:0; width:22px; height:22px; z-index:2;
    fill:var(--ivory); stroke:var(--ink); stroke-width:1.2; stroke-linejoin:round;
    filter:drop-shadow(0 2px 3px rgba(0,0,0,0.35));
    opacity:0; transition:transform .9s cubic-bezier(.5,0,.2,1), opacity .3s ease;
  }
  @media (max-width:56.25em){
    .interest-cta{grid-template-columns:1fr;}
    .interest-copy{padding:40px 28px;}
    .interest-demo{padding:40px 28px;}
  }
  @media (max-width:40em){
    .interest-cta{margin-top:56px;}
    .interest-copy{padding:32px 20px;}
    .interest-copy h3{font-size:1.625rem;}
    .interest-copy .btn{align-self:stretch; justify-content:center;}
    .interest-demo{padding:28px 20px;}
    .demo-card{padding:20px 18px 18px;}
  }
  @media (prefers-reduced-motion: reduce){
    .btn-shine::after, .interest-demo::before{display:none;}
    .demo-cursor{display:none;}
  }

  /* ---------- MODAL ---------- */
  .modal{
    position:fixed; inset:0; margin:auto;
    border:none; border-radius:2px; padding:0;
    max-width:640px; width:calc(100% - 40px);
    max-height:calc(100% - 40px);
    background:var(--ivory-deep);
    box-shadow:0 30px 80px rgba(27,24,17,0.35);
  }
  .modal::backdrop{background:rgba(27,24,17,0.6); backdrop-filter:blur(2px);}
  .modal-form{display:flex; flex-direction:column; gap:22px; padding:44px;}
  .modal-head{display:flex; align-items:flex-start; justify-content:space-between; gap:20px;}
  .modal-head h3{font-size:1.625rem;}
  .modal-close{
    background:transparent; border:none; cursor:pointer;
    font-size:1.75rem; line-height:1; color:var(--ink); opacity:0.6;
    transition:opacity .3s ease;
  }
  .modal-close:hover{opacity:1;}
  .modal-sub{color:rgba(27,24,17,0.68); font-weight:300; font-size:0.9375rem; margin-top:-10px;}
  @media (max-width:40em){
    .modal{width:calc(100% - 24px); max-height:calc(100% - 24px); max-height:calc(100dvh - 24px);}
    .modal-form{padding:26px 20px; gap:18px;}
    .modal-head h3{font-size:1.4375rem;}
    .modal-form .form-actions .btn{flex:1 1 100%; justify-content:center;}
  }
  .modal-close{min-width:44px; min-height:44px;}
  .modal-head .modal-close{margin:-10px -12px 0 0;}

  /* ---------- GALERIE FOTEK (okno pres celou obrazovku, main.js [data-gallery]) ---------- */
  .lightbox{
    position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0;
    border:none; background:var(--midnight); color:var(--ivory); --focus:var(--brass-bright);
  }
  .lightbox[open]{display:grid; grid-template-rows:auto minmax(0,1fr);}
  .lightbox::backdrop{background:rgba(18,17,16,0.6);}
  .lightbox-bar{display:flex; align-items:center; gap:12px; padding:10px 14px 10px 24px;}
  .lightbox-count{margin-right:auto; font-size:0.875rem; letter-spacing:0.08em; font-variant-numeric:tabular-nums; color:rgba(245,240,227,0.75);}
  .lightbox-download{
    display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px;
    border:1px solid var(--line-light); border-radius:2px; color:var(--ivory); text-decoration:none;
    font-size:0.75rem; font-weight:500; letter-spacing:0.14em; text-transform:uppercase;
    transition:border-color .3s ease, color .3s ease;
  }
  .lightbox-download svg{width:16px; height:16px;}
  .lightbox-download:hover{border-color:var(--brass-bright); color:var(--brass-bright);}
  .lightbox-close{
    min-width:44px; min-height:44px; background:transparent; border:none; cursor:pointer;
    font-size:2rem; line-height:1; color:var(--ivory); opacity:0.8; transition:opacity .3s ease;
  }
  .lightbox-close:hover{opacity:1;}
  .lightbox-stage{display:flex; align-items:center; justify-content:center; min-height:0; padding:0 96px 28px; touch-action:pan-y pinch-zoom;}
  .lightbox-img{display:block; max-width:100%; max-height:100%; object-fit:contain; transition:opacity .25s ease;}
  .lightbox-img.is-loading{opacity:0.3;}
  .lightbox-nav{
    position:absolute; top:50%; translate:0 -50%; width:56px; height:56px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    border:1px solid var(--line-light); background:rgba(18,17,16,0.55); color:var(--ivory);
    transition:border-color .3s ease, color .3s ease;
  }
  .lightbox-nav svg{width:24px; height:24px;}
  .lightbox-nav:hover{border-color:var(--brass-bright); color:var(--brass-bright);}
  .lightbox-prev{left:20px;}
  .lightbox-next{right:20px;}
  @media (max-width:40em){
    .lightbox-bar{padding:6px 6px 6px 16px;}
    .lightbox-stage{padding:0 0 84px;}
    .lightbox-nav{top:auto; bottom:18px; translate:none; width:52px; height:52px;}
    .lightbox-prev{left:16px;}
    .lightbox-next{right:16px;}
  }
  @media (prefers-reduced-motion: reduce){ .lightbox-img{transition:none;} }

  /* ---------- CONTACT ---------- */
  .contact-section{background:var(--ivory-deep); border-top:1px solid var(--line);}
  .contact-form{max-width:720px; display:flex; flex-direction:column; gap:24px;}
  /* Kontaktni formular a vedle nej odkaz pro media */
  .contact-grid{display:grid; grid-template-columns:minmax(0,720px) minmax(260px,340px); gap:48px; align-items:start; justify-content:space-between;}
  .press-card{
    position:relative; overflow:hidden; display:flex; flex-direction:column; gap:10px;
    padding:34px 30px; border-radius:2px; color:var(--ivory);
    background:radial-gradient(ellipse at 90% 0%, #2c3f24 0%, var(--hunter-deep) 45%, var(--hunter-deep) 100%);
    box-shadow:0 18px 40px rgba(27,24,17,0.12); transition:transform .4s ease, box-shadow .4s ease;
  }
  .press-card-kicker{font-size:0.75rem; font-weight:500; text-transform:uppercase; letter-spacing:0.14em; color:var(--brass-bright);}
  .press-card-title{font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:1.75rem; line-height:1.15;}
  .press-card-text{font-size:0.9375rem; font-weight:300; color:rgba(245,240,227,0.75);}
  .press-card-cta{margin-top:10px; font-size:0.8125rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--brass-bright); border-top:1px solid rgba(245,240,227,0.16); padding-top:16px;}
  @media (hover:hover){
    .press-card:hover{transform:translateY(-4px); box-shadow:0 24px 50px rgba(27,24,17,0.2);}
    .press-card:hover .btn-arrow{transform:translateX(4px);}
  }
  .press-card:focus-visible{outline:2px solid var(--cognac); outline-offset:4px;} /* obrys lezi venku na svetlem pozadi */
  @media (max-width:61.25em){ .contact-grid{grid-template-columns:minmax(0,1fr); gap:36px;} .press-card{max-width:520px;} }
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
  .form-field{display:flex; flex-direction:column; gap:8px; min-width:0;} /* pole se nesmi roztahovat podle vychozi sirky inputu (pri vetsim pismu pretekalo) */
  .form-field label{
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; text-transform:uppercase;
    letter-spacing:0.08em; color:var(--cognac);
  }
  .form-field input, .form-field textarea{
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:1rem; color:var(--ink); /* min. 16 px, jinak iOS pri fokusu priblizi stranku */
    background:var(--ivory); border:1px solid var(--field-border); border-radius:2px;
    padding:13px 14px; resize:vertical;
    transition:border-color .3s ease;
  }
  .form-field input:focus, .form-field textarea:focus{border-color:var(--cognac);} /* obrys fokusu dodava :focus-visible */
  .form-actions{display:flex; align-items:center; gap:20px; margin-top:4px; flex-wrap:wrap;}
  .form-status{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:0.8125rem; color:rgba(27,24,17,0.65);}
  .form-status.success{color:var(--hunter-deep);}
  .form-status.error{color:var(--error);}
  .form-field [aria-invalid="true"]{border-color:var(--error); box-shadow:inset 0 0 0 1px var(--error);}
  .field-error{font-size:0.8125rem; color:var(--error);}
  .field-error:empty{display:none;}
  .field-hint{font-size:0.8125rem; color:rgba(27,24,17,0.68);}
  @media (max-width:40em){
    .form-row{grid-template-columns:1fr;}
    .contact-form .form-actions .btn{flex:1 1 100%; justify-content:center;}
  }

  /* ---------- VENUE / MAP ---------- */
  .venue{background:var(--ivory); padding:110px 0;}
  .venue-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:center;}
  .venue-info .mono{color:var(--cognac);}
  .venue-info h2{font-size:clamp(1.875rem,4vw,2.5rem);}
  .venue-info p{margin-top:18px; color:rgba(27,24,17,0.68); font-weight:300;}
  .venue-facts{margin-top:32px; display:grid; gap:16px;}
  .venue-facts div{display:flex; gap:16px; border-top:1px solid var(--line); padding-top:14px;}
  .venue-facts .mono{min-width:110px; color:var(--cognac); font-size:0.8125rem; padding-top:3px;}
  /* velmi uzky displej nebo velke pismo v prohlizeci: datum nad textem (em: prepne se drive pri vetsim pismu) */
  @media (max-width:20em){ .venue-facts div{flex-direction:column; gap:2px;} }
  /* Nakres arealu PVA EXPO (index.html) - haly 3 a 4 zvyraznene, ostatni tlumene */
  .floorplan{margin:0; background:var(--ivory-deep); border:1px solid var(--line); padding:28px 24px 20px;}
  .floorplan svg{width:100%; height:auto; display:block;}
  /* Klik na nakres otevre velky nahled (#arealDialog, assets/js/main.js) */
  .floorplan-zoom{display:block; position:relative; width:100%; padding:0; border:none; background:none; cursor:zoom-in; text-align:left;}
  .floorplan-zoom:focus-visible{outline:2px solid var(--cognac); outline-offset:4px;}
  .floorplan-zoom-hint{
    position:absolute; right:0; top:0; display:inline-flex; align-items:center; justify-content:center;
    width:32px; height:32px; color:var(--cognac); background:rgba(245,240,227,0.85); border-radius:2px;
    opacity:0.75; transition:opacity .3s ease;
  }
  .floorplan-zoom-hint svg{width:15px; height:15px;}
  .floorplan-zoom:hover .floorplan-zoom-hint, .floorplan-zoom:focus-visible .floorplan-zoom-hint{opacity:1;}
  /* Pri najeti: nakres se lehce priblizi k halam 3 a 4 a tecky trasy od vstupu se rozbehnou */
  .floorplan{transition:box-shadow .5s ease, border-color .5s ease;}
  .floorplan:hover{border-color:rgba(138,90,52,0.35); box-shadow:0 18px 40px rgba(27,24,17,0.10);}
  .floorplan-zoom{overflow:hidden;}
  .floorplan-zoom .areal-svg{transform-origin:66% 58%; transition:transform .9s cubic-bezier(.2,.7,.2,1);}
  .floorplan-zoom:hover .areal-svg, .floorplan-zoom:focus-visible .areal-svg{transform:scale(1.06);}
  .floorplan-zoom:hover #arealWalk, .floorplan-zoom:focus-visible #arealWalk{animation:areal-walk 1.1s linear infinite;}
  @keyframes areal-walk{to{stroke-dashoffset:-17;}}
  @media (prefers-reduced-motion: reduce){ .floorplan-zoom:hover .areal-svg{transform:none;} }
  .modal-image{max-width:min(1400px, calc(100% - 40px)); padding:0; background:var(--ivory-deep);}
  .modal-image .modal-close{position:absolute; top:10px; right:14px; z-index:1;}
  .modal-image-body{padding:48px 32px 28px;}
  .modal-image-body svg{display:block; width:100%; height:auto; max-height:calc(100vh - 140px); max-height:calc(100dvh - 140px);}
  /* Na mobilu je nakres v nahledu siroky a posouva se prstem do stran (na sirku displeje by byl necitelny) */
  @media (max-width:40em){
    .modal-image{width:100%; max-width:100%; max-height:100%; height:100%; height:100dvh; margin:0;}
    .modal-image-body{display:flex; height:100%; padding:56px 0 0; overflow:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;}
    .modal-image-body svg{flex-shrink:0; width:880px; max-width:none; max-height:none; margin:auto 0; padding:0 16px 24px;}
    .modal-image .modal-close{top:6px; right:8px; margin:0; background:rgba(245,240,227,0.9);}
  }
  .floorplan figcaption{margin-top:14px; font-size:0.8125rem; color:rgba(27,24,17,0.7); text-align:center;}
  /* Mapa Google pod informacemi a nakresem (index.html #gmap): do kliknuti jen nahled v barvach webu,
     nactena mapa je v puvodnich barvach Googlu (tlumene varianty Kuba 2026-10-18 nechtel) */
  .gmap{position:relative; margin-top:56px; height:420px; background:var(--ivory-deep); border:1px solid var(--line); overflow:hidden;}
  .gmap-placeholder{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
    padding:24px 16px; text-align:center;
    background:
      repeating-linear-gradient(28deg, transparent 0 46px, rgba(27,24,17,0.06) 46px 47px),
      repeating-linear-gradient(-62deg, transparent 0 74px, rgba(27,24,17,0.05) 74px 75px),
      radial-gradient(circle at 50% 46%, var(--ivory) 0, rgba(245,240,227,0) 62%);
  }
  .gmap-pin{width:34px; height:34px; color:var(--cognac); margin-bottom:6px;}
  .gmap-name{font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:1.5rem; font-weight:700;}
  .gmap-address{color:rgba(27,24,17,0.7); font-weight:300;}
  .gmap-actions{margin-top:18px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 24px;}
  .gmap-open{color:var(--cognac); font-size:0.875rem; text-decoration:underline; text-underline-offset:3px;}
  .gmap-open:hover{color:var(--cognac-deep);}
  .gmap-note{margin-top:14px; max-width:34em; font-size:0.75rem; color:rgba(27,24,17,0.66);}
  .gmap iframe{display:block; width:100%; height:100%; border:0;}
  @media (max-width:53.75em){.venue-grid{grid-template-columns:1fr;}}
  @media (max-width:40em){
    .venue{padding:72px 0;}
    .venue-grid{gap:36px;}
    .venue-facts .mono{min-width:88px;}
    .floorplan{padding:16px 12px 14px;}
    .floorplan-zoom-hint{opacity:1; width:36px; height:36px;}
    .gmap{margin-top:36px; height:340px;}
  }

  /* ---------- CASTE DOTAZY (rozbalovaci otazky, <details>) ---------- */
  .faq{background:var(--ivory); border-top:1px solid var(--line);}
  .faq-head{max-width:680px;}
  .faq-head p a{color:var(--cognac); text-decoration:underline; text-underline-offset:2px;}
  .faq-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 56px; align-items:start;}
  .faq-col{border-top:1px solid var(--line);}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-item summary{
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding:20px 4px; cursor:pointer; list-style:none;
    font-family:'Adobe Garamond Pro', 'Garamond Fallback', serif; font-size:1.3125rem; line-height:1.3;
    overflow-wrap:break-word; hyphens:auto; /* dlouha slova (pl, de) pri velkem pismu na uzkem displeji */
    transition:color .3s ease;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  /* Plus, ktery se po otevreni otoci na krizek */
  .faq-item summary::after{
    content:"+"; flex-shrink:0; width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center;
    font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:1.375rem; font-weight:300; color:var(--cognac);
    border:1px solid var(--line); border-radius:50%; transition:transform .3s ease, background .3s ease;
  }
  .faq-item[open] summary::after{transform:rotate(45deg); background:var(--ivory-deep);}
  .faq-item summary:hover{color:var(--cognac);}
  .faq-item summary:focus-visible{outline:2px solid var(--focus); outline-offset:2px;}
  .faq-answer{padding:0 52px 22px 4px;}
  .faq-answer p{font-size:1rem; font-weight:300; color:rgba(27,24,17,0.75); overflow-wrap:break-word;}
  .faq-answer a{color:var(--cognac); text-decoration:underline; text-underline-offset:2px;}
  @media (max-width:53.75em){
    .faq-list{grid-template-columns:minmax(0,1fr);}
    .faq-col + .faq-col{border-top:none;}
  }
  @media (max-width:40em){
    .faq-item summary{font-size:1.1875rem; padding:16px 2px;}
    .faq-answer{padding:0 8px 18px 2px;}
  }

  /* ---------- SOCIALNI SITE (upoutavka na Instagram a Facebook) ---------- */
  .social{
    position:relative; overflow:hidden; color:var(--ivory);
    background:radial-gradient(ellipse at 78% 40%, #2c3f24 0%, var(--hunter-deep) 42%, var(--hunter-deep) 100%);
  }
  .social::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:radial-gradient(rgba(245,240,227,0.05) 1px, transparent 1px); background-size:3px 3px; opacity:0.5;
  }
  .social-grid{position:relative; display:grid; grid-template-columns:0.95fr 1.05fr; gap:40px; align-items:center;}
  .social-copy h2{font-size:clamp(2.125rem,4.6vw,3.375rem);}
  .social-copy p{margin-top:18px; max-width:460px; font-size:1.0625rem; font-weight:300; color:rgba(245,240,227,0.75);}
  .social-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:34px;}
  .social-cta svg{width:17px; height:17px; flex-shrink:0;}
  .social-handle{display:block; margin-top:22px; font-size:0.8125rem; letter-spacing:0.08em; color:rgba(245,240,227,0.7);}

  /* Scena s telefony - rozmery v px, na mensich displejich se cela zmensi (transform: scale) */
  .social-stage{position:relative; height:640px;}
  .phone{
    position:absolute; width:270px; height:560px; border-radius:44px; padding:10px;
    background:linear-gradient(145deg, #2b2a28, #0c0c0b 60%);
    box-shadow:0 0 0 1px rgba(245,240,227,0.08), 0 40px 80px rgba(0,0,0,0.45), inset 0 0 0 2px rgba(255,255,255,0.06);
  }
  .phone-screen{position:relative; width:100%; height:100%; border-radius:34px; overflow:hidden; background:#fff; color:#111;}
  .phone-front{left:50%; top:30px; margin-left:-60px; z-index:2; animation:phone-float 7s ease-in-out infinite;}
  .phone-back{left:50%; top:70px; margin-left:-250px; width:240px; height:500px; z-index:1; transform:rotate(-8deg); animation:phone-float-back 8s ease-in-out infinite;}
  @keyframes phone-float{0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);}}
  @keyframes phone-float-back{0%,100%{transform:rotate(-8deg) translateY(0);} 50%{transform:rotate(-7deg) translateY(10px);}}

  /* Profil (predni telefon) */
  .ig{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:11px; line-height:1.35; display:flex; flex-direction:column;}
  /* Status bar jako na iPhonu: cas, Dynamic Island, sila signalu, wifi a baterie */
  .ig-status{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:12px 18px 6px 24px; font-size:12px;}
  .ig-status b{font-weight:600; letter-spacing:-0.01em;}
  .ig-island{width:78px; height:22px; border-radius:12px; background:#0c0c0b;}
  .ig-icons{display:flex; align-items:center; justify-content:flex-end; gap:4px; color:#111;}
  .ig-icons svg{display:block; fill:currentColor;}
  .ig-signal{width:15px; height:10px;}
  .ig-wifi{width:14px; height:10px;}
  .ig-battery{width:23px; height:11px;}
  /* Profilovka jako na Instagramu: emblem lovecka a mosaz (logomanual v2.0) v bilem kolecku */
  .ig-avatar{
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    width:58px; height:58px; border-radius:50%; background:#fff; overflow:hidden;
    box-shadow:0 0 0 1px rgba(0,0,0,0.12);
  }
  .ig-avatar img{width:auto; height:62%;}
  .ig-profile{display:flex; align-items:center; gap:14px; padding:10px 16px 0;}
  .ig-profile div b{display:block; font-size:13px; font-weight:600; margin-bottom:2px;}
  .ig-profile div span{display:block; color:#555;}
  .ig-follow{margin:12px 16px 0; padding:7px 0; border-radius:8px; background:var(--cognac); color:#fff; text-align:center; font-weight:600;}
  .ig-highlights{display:flex; gap:12px; padding:12px 16px 10px; border-bottom:1px solid #eee;}
  .ig-hl{display:flex; flex-direction:column; align-items:center; gap:4px; width:48px;}
  .ig-hl img{width:46px; height:46px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 1.5px #fff, 0 0 0 3px #ddd;}
  .ig-hl small{font-size:9px; color:#333; white-space:nowrap;}
  .ig-feed{flex:1; overflow:hidden; position:relative;}
  .ig-feed::after{content:""; position:absolute; left:0; right:0; bottom:0; height:40px; background:linear-gradient(transparent, rgba(255,255,255,0.9)); pointer-events:none;}
  .ig-track{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; animation:feed-scroll 42s linear infinite;}
  .ig-track img{width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; background:#e9e4d8;}
  /* Mrizka je v HTML dvakrat za sebou, posun o polovinu = plynula smycka (2px mezera se zapocita pres calc) */
  @keyframes feed-scroll{from{transform:translateY(0);} to{transform:translateY(calc(-50% - 1px));}}

  /* Stories (zadni telefon): 5 fotek po 4 s, ukazatele prubehu nahore */
  .story{background:#111;}
  .story-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; animation:story-show 20s infinite;}
  .story picture:nth-of-type(2) .story-img{animation-delay:4s;}
  .story picture:nth-of-type(3) .story-img{animation-delay:8s;}
  .story picture:nth-of-type(4) .story-img{animation-delay:12s;}
  .story picture:nth-of-type(5) .story-img{animation-delay:16s;}
  @keyframes story-show{
    0%{opacity:0; transform:scale(1.12);}
    2%{opacity:1;}
    20%{opacity:1; transform:scale(1);}
    22%,100%{opacity:0; transform:scale(1);}
  }
  .story-top{position:absolute; top:0; left:0; right:0; padding:34px 12px 30px; background:linear-gradient(rgba(0,0,0,0.45), transparent); color:#fff; font-family:'Work Sans', 'Work Sans Fallback', sans-serif;}
  .story-bars{display:flex; gap:3px;}
  .story-bars span{flex:1; height:2px; border-radius:1px; background:rgba(255,255,255,0.35); overflow:hidden;}
  .story-bars i{display:block; height:100%; background:#fff; transform-origin:left; transform:scaleX(0);}
  .story-bars span:nth-child(1) i{animation:bar-1 20s linear infinite;}
  .story-bars span:nth-child(2) i{animation:bar-2 20s linear infinite;}
  .story-bars span:nth-child(3) i{animation:bar-3 20s linear infinite;}
  .story-bars span:nth-child(4) i{animation:bar-4 20s linear infinite;}
  .story-bars span:nth-child(5) i{animation:bar-5 20s linear infinite;}
  @keyframes bar-1{0%{transform:scaleX(0);} 20%,99.9%{transform:scaleX(1);} 100%{transform:scaleX(0);}}
  @keyframes bar-2{0%,20%{transform:scaleX(0);} 40%,99.9%{transform:scaleX(1);} 100%{transform:scaleX(0);}}
  @keyframes bar-3{0%,40%{transform:scaleX(0);} 60%,99.9%{transform:scaleX(1);} 100%{transform:scaleX(0);}}
  @keyframes bar-4{0%,60%{transform:scaleX(0);} 80%,99.9%{transform:scaleX(1);} 100%{transform:scaleX(0);}}
  @keyframes bar-5{0%,80%{transform:scaleX(0);} 100%{transform:scaleX(1);}}
  .story-user{display:flex; align-items:center; gap:8px; margin-top:10px; font-size:11px;}
  .story-user .ig-avatar{width:28px; height:28px; box-shadow:none;}
  .story-user small{opacity:0.7;}
  .story-bottom{position:absolute; left:12px; right:12px; bottom:16px; display:flex; align-items:center; gap:10px; color:#fff; font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:11px;}
  .story-bottom span{flex:1; padding:8px 12px; border:1px solid rgba(255,255,255,0.6); border-radius:20px;}
  .story-bottom svg{width:22px; height:22px; fill:none; stroke:#fff; stroke-width:1.8;}

  /* Srdicka kolem telefonu */
  .social-heart{position:absolute; left:50%; bottom:90px; margin-left:228px; width:30px; height:30px; opacity:0; animation:heart-float 6s ease-out infinite; z-index:3;}
  .social-heart svg{width:100%; height:100%; fill:#e0475b; filter:drop-shadow(0 6px 12px rgba(0,0,0,0.35));}
  .social-heart:nth-of-type(2){animation-delay:1.5s; margin-left:252px; width:22px; height:22px;}
  .social-heart:nth-of-type(3){animation-delay:3s; margin-left:222px; width:26px; height:26px;}
  .social-heart:nth-of-type(4){animation-delay:4.5s; margin-left:262px; width:18px; height:18px;}
  @keyframes heart-float{
    0%{opacity:0; transform:translate(0,0) scale(0.4);}
    12%{opacity:1; transform:translate(-6px,-30px) scale(1);}
    60%{opacity:0.9; transform:translate(10px,-150px) scale(1);}
    100%{opacity:0; transform:translate(-8px,-260px) scale(0.8);}
  }

  /* Animace bezi jen, kdyz je sekce videt (main.js prida .is-paused, kdyz neni) */
  .social.is-paused *{animation-play-state:paused !important;}

  /* Omezeni pohybu: staticky nahled - prvni story, mrizka stoji, bez srdicek */
  @media (prefers-reduced-motion: reduce){
    .story picture:first-of-type .story-img{opacity:1;}
    .story-bars span:first-child i{transform:scaleX(1);}
    .social-heart{display:none;}
  }

  @media (max-width:68.75em){
    .social-heart{margin-left:0;}
    .social-heart{left:auto; right:40px;}
  }
  @media (max-width:53.75em){
    .social-grid{grid-template-columns:1fr; gap:10px;}
    .social-stage{height:600px; transform:scale(0.92); transform-origin:top center;}
  }
  @media (max-width:32.5em){
    .social-copy .btn{flex:1 1 100%; justify-content:center;}
    .social-stage{height:540px; transform:scale(0.8); margin:0 -20px -40px;}
    .phone-front{margin-left:-95px;}
    .phone-back{margin-left:-215px;}
    .social-heart{right:0;}
  }

  /* ---------- FOOTER ---------- */
  footer{background:var(--midnight); color:rgba(245,240,227,0.7); padding:80px 0 30px;}
  .footer-top{display:grid; grid-template-columns:1.3fr 0.7fr 0.7fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid var(--line-light);}
  footer .logo{color:var(--ivory);}
  footer .foot-title{font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-weight:700; line-height:1.55; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--brass-bright); margin-bottom:18px;}
  footer .foot-links{display:flex; flex-direction:column; gap:10px; font-size:0.875rem;}
  footer .foot-links a:hover{color:var(--brass-bright);}
  footer p{font-size:0.9375rem;}
  .foot-bottom{padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.8125rem; color:rgba(245,240,227,0.6);} /* 0.6: kontrast aspon 4.5:1 */
  .foot-bottom a{color:rgba(245,240,227,0.75); text-decoration:underline; text-underline-offset:2px;}
  .foot-bottom a:hover{color:var(--brass-bright);}
  @media (max-width:51.25em){.footer-top{grid-template-columns:1fr 1fr; row-gap:40px;}}
  @media (max-width:32.5em){
    footer{padding:60px 0 calc(24px + env(safe-area-inset-bottom));}
    .footer-top{grid-template-columns:1fr; row-gap:32px; padding-bottom:40px;}
    footer .foot-links{gap:0;}
    footer .foot-links a{padding:8px 0;} /* vetsi plocha pro prst */
    footer .foot-title{margin-bottom:8px;}
    .foot-bottom{flex-direction:column; gap:14px;}
    .foot-bottom .lang-switch a{padding:6px;}
    .foot-bottom .lang-switch{gap:4px; margin-left:-6px;}
    .foot-bottom a{display:inline-block; padding:4px 0;}
  }

  /* Dotykova zarizeni: hover efekty (zvednuti, priblizeni) by po klepnuti zustaly "viset" */
  @media (hover:none){
    .btn-brass:hover, .btn-outline-light:hover, .btn-outline-dark:hover,
    .ticket:hover, .package:hover, .interest-demo:hover .demo-card{transform:none;}
    .ticket:hover{border-color:transparent;}
    .ticket.ticket-best:hover{border-color:var(--brass);}
    .hall-feature:hover .hall-photo img, .hall-tiles li:hover img{transform:none;}
    .floorplan:hover{border-color:var(--line); box-shadow:none;}
    .floorplan-zoom:hover .areal-svg{transform:none;}
    .floorplan-zoom #arealWalk{animation:areal-walk 1.1s linear infinite;}
  }

  /* ---------- ODBER NOVINEK (paticka) ---------- */
  .footer-newsletter{
    display:grid; grid-template-columns:1fr 1.1fr; gap:24px 56px; align-items:center;
    padding-bottom:56px; margin-bottom:56px; border-bottom:1px solid var(--line-light);
  }
  .footer-newsletter-title{font-size:clamp(1.625rem,3vw,2.125rem); color:var(--ivory);}
  .footer-newsletter-copy p{margin-top:10px; font-size:1rem; font-weight:300; color:rgba(245,240,227,0.68); max-width:440px;}
  .newsletter-row{display:flex; gap:10px;}
  .newsletter-row input[type="email"]{
    flex:1; min-width:0; font-family:'Work Sans', 'Work Sans Fallback', sans-serif; font-size:1rem;
    color:var(--ivory); background:rgba(245,240,227,0.06); border:1px solid rgba(245,240,227,0.42); border-radius:2px; /* 0.42: kontrast ramecku aspon 3:1 */
    padding:13px 14px; transition:border-color .3s ease;
  }
  .newsletter-row input[type="email"]::placeholder{color:rgba(245,240,227,0.4);}
  .newsletter-row input[type="email"]:focus{border-color:var(--brass);}
  .newsletter-row .btn{white-space:nowrap;}
  /* Widget Cloudflare Turnstile (assets/js/main.js): vetsinou neviditelny, objevi se jen pri podezreni na robota */
  .turnstile-slot{margin-top:12px;}
  .turnstile-slot:empty{display:none;}
  .newsletter-note{margin-top:12px; font-size:0.8125rem; color:rgba(245,240,227,0.6);}
  .newsletter-note a{color:rgba(245,240,227,0.8); text-decoration:underline; text-underline-offset:2px;}
  .newsletter-note a:hover{color:var(--brass-bright);}
  .newsletter-status{margin-top:8px; min-height:1em; color:rgba(245,240,227,0.75);}
  .newsletter-status:empty{display:none;}
  .newsletter-status.success{color:#9fd08f;}
  .newsletter-status.error{color:#f0a08c;}
  .nl-trap{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
  .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;}
  .nowrap{white-space:nowrap;}
  @media (max-width:51.25em){ .footer-newsletter{grid-template-columns:1fr;} }
  @media (max-width:32.5em){
    .footer-newsletter{padding-bottom:40px; margin-bottom:40px;}
    .newsletter-row{flex-direction:column;}
    .newsletter-row .btn{justify-content:center;}
  }

  /* reveal on scroll */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  :focus-visible{outline:2px solid var(--focus); outline-offset:3px;}
  /* Tmave sekce: na nich je dobre videt svetla zlata (konak by zanikl) */
  header:not(.scrolled), .hero, .aftermovie, .hall-feature-dark, .gala, .field-more, .package.featured,
  .press-card, .social, footer{--focus:var(--brass-bright);}
  @media (max-width:73.75em){ nav.mainnav{--focus:var(--brass-bright);} }

  /* Odkaz Preskocit na obsah: skryty, objevi se az pri prvnim stisku Tabu */
  .skip-link{
    position:fixed; top:12px; left:12px; z-index:1000; padding:12px 18px;
    background:var(--ink); color:var(--ivory); font-size:0.9375rem; border-radius:2px;
    transform:translateY(-200%);
  }
  .skip-link:focus{transform:none; outline:2px solid var(--brass-bright); outline-offset:2px;}

  /* Cookie lista (assets/js/consent.js): dole pres sirku stranky, stranku neblokuje */
  .link-button{background:none; border:0; padding:0; font:inherit; color:inherit; text-decoration:inherit; cursor:pointer;}
  .link-button:hover{text-decoration:underline;}
  .consent{
    position:fixed; left:16px; right:16px; bottom:16px; z-index:900;
    max-width:880px; margin:0 auto; max-height:calc(100vh - 32px); overflow-y:auto;
    background:var(--ivory); color:var(--ink); border:1px solid var(--line); border-radius:2px;
    box-shadow:0 12px 40px rgba(18,17,16,0.22);
  }
  .consent[hidden]{display:none;}
  .consent-inner{padding:24px 28px;}
  .consent-title{font-size:1.375rem; margin-bottom:8px;}
  .consent-text{font-size:0.9375rem; font-weight:300; color:rgba(27,24,17,0.8);}
  .consent-text a{color:var(--cognac); text-decoration:underline;}
  .consent-settings{margin-top:16px; display:grid; gap:12px;}
  .consent-settings[hidden]{display:none;}
  .consent-option{display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border:1px solid var(--line); font-size:0.875rem; font-weight:300; cursor:pointer;}
  .consent-option strong{font-weight:600;}
  .consent-option em{font-style:normal; color:var(--cognac);}
  .consent-option input{width:18px; height:18px; margin-top:2px; flex:none; accent-color:var(--cognac);}
  .consent-option:has(input:disabled){cursor:default;}
  .consent-actions{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:20px;}
  @media (max-width:40em){
    /* Na mobilu co nejnizsi: tlacitka vedle sebe misto pod sebou, mensi nadpis a text */
    .consent{left:8px; right:8px; bottom:8px;}
    .consent-inner{padding:16px 16px 14px;}
    .consent-title{font-size:1.125rem; margin-bottom:6px;}
    .consent-text{font-size:0.8125rem; line-height:1.45;}
    .consent-actions{gap:8px; margin-top:14px;}
    .consent-actions .btn{flex:1 1 auto; justify-content:center; padding:12px 10px; font-size:0.6875rem;}
  }

  /* Odkaz na zasady pod formulari (informace pri ziskani udaju, cl. 13 GDPR) */
  .form-privacy{margin-top:14px; font-size:0.8125rem; font-weight:300; color:rgba(27,24,17,0.72);}
  .form-privacy a{color:var(--cognac); text-decoration:underline; text-underline-offset:2px;}
