/* DAMO PIZZA — sdílené styly všech stránek (tokeny, typografie, tlačítka, sekce s vlnkami, navigace, mobilní menu, vstupenky, patička). Specifické styly jsou inline v každé stránce. */
:root{
  --cream:#F4ECDA;
  --paper:#FBF6EA;
  --green:#2F5F3A;
  --green-deep:#1F4127;
  --green-ink:#14301B;
  --tomato:#D4412A;
  --tomato-deep:#9E2C1C;
  --butter:#F3D77E;
  --butter-2:#EAC65C;
  --orange:#C0561C;
  --ink:#1D2A20;
  --serif:"Google Sans Flex","Segoe UI",system-ui,sans-serif;
  --sans:"Google Sans Flex","Segoe UI",system-ui,sans-serif;
  --anton:"Google Sans Flex","Arial Narrow",sans-serif;
  --safe-x:max(env(safe-area-inset-left),env(safe-area-inset-right));
  --gut:calc(16px + var(--safe-x));
  --nav-off:calc(92px + env(safe-area-inset-top));
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --wobble:cubic-bezier(.2,1.55,.4,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
@supports (overflow:clip){body{overflow-x:clip}}
body::after{content:"";position:fixed;inset:0;background-image:var(--grain);opacity:.09;pointer-events:none;z-index:200;mix-blend-mode:multiply}
img,svg{display:block}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px dashed var(--green);outline-offset:4px}
.on-dark :focus-visible,.nav :focus-visible,.mnav :focus-visible{outline-color:var(--butter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(1200px,100% - 32px - 2 * var(--safe-x));margin-inline:auto}

/* ---------- type ---------- */
.display{font-family:var(--serif);font-weight:600;line-height:.98;letter-spacing:-.015em;margin:0}
em,i,cite,address{font-style:normal}
.display em{font-style:normal;font-weight:500}
.h2{font-size:clamp(2.4rem,6vw,5.2rem)}
.label{display:flex;align-items:center;gap:14px;font:600 .75rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;margin:0 0 20px}
.label::before,.label::after{content:"";height:1px;width:42px;background:currentColor;opacity:.7}
@media (max-width:520px){.label{letter-spacing:.15em;gap:10px}.label::before,.label::after{width:22px}}
.lead{font-size:clamp(1.0625rem,1.6vw,1.22rem);max-width:34em}

/* headline letters: rise in one by one, all on one baseline (no overshoot = no bounce) */
.wavy .ln{display:block}
.wavy .w{display:inline-block;white-space:nowrap}
.wavy .ch{display:inline-block;translate:0 .55em;opacity:0;transition:translate .9s cubic-bezier(.2,.9,.3,1) var(--d,0s),opacity .5s ease var(--d,0s)}
.wavy.in .ch{translate:0 0;opacity:1}

/* reveal */
.rv{opacity:0;translate:0 28px;transition:opacity .8s ease,translate .9s cubic-bezier(.2,.9,.3,1)}
.rv.in{opacity:1;translate:0 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:13px 24px;border-radius:999px;font:600 .82rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1.5px solid currentColor;cursor:pointer;transition:background .3s,color .3s,translate .4s cubic-bezier(.2,.9,.3,1);background:transparent}
.btn:hover{translate:0 -3px}
.btn--solid{background:var(--green);border-color:var(--green);color:var(--paper);box-shadow:0 5px 0 -1px var(--green-ink)}
.btn--solid:hover{background:var(--green-deep);border-color:var(--green-deep)}
.btn--ghost{color:var(--green)}
.btn--ghost:hover{background:var(--green);color:var(--cream);border-color:var(--green)}
.on-dark .btn--ghost{color:var(--cream)}
.on-dark .btn--ghost:hover{background:var(--cream);color:var(--green-deep);border-color:var(--cream)}
.btn--sm{padding:12px 18px;font-size:.75rem;letter-spacing:.14em}
.btn svg{width:16px;height:16px;flex:none}
.btn--cream{background:var(--cream);border-color:var(--cream);color:var(--green-deep);box-shadow:0 5px 0 -1px var(--green-ink)}
.btn--cream:hover{background:var(--butter);border-color:var(--butter);color:var(--green-ink)}

/* organické bloby (tvar dopočítá site.js) */
.lava{position:absolute;pointer-events:none;overflow:visible}

/* ---------- sections + wavy edges ---------- */
.sec{position:relative;background:var(--bg,var(--cream));overflow-x:hidden}
@supports (overflow:clip){.sec{overflow-x:clip}}
.edge{position:absolute;left:0;width:100%;height:clamp(36px,6vw,80px);top:1px;translate:0 -100%;pointer-events:none;color:var(--bg,var(--cream))}
.edge path{fill:currentColor}
/* starší Safari (<16) neumí overflow:clip → overflow-x:hidden ořízne i vlnku nad sekcí.
   Záloha: sekce s vlnkou (všechny .sec) se vysune o výšku vlnky nahoru, horní pás
   nechá průhledný (pozadí kreslí až pod ním), vlnku vykreslí uvnitř sebe a ::before vrátí obsah
   na původní místo — výsledek je stejný jako s overflow:clip. */
@supports not (overflow:clip){
  .sec{--eh:clamp(36px,6vw,80px);margin-top:calc(-1 * var(--eh));background:linear-gradient(var(--bg,var(--cream)),var(--bg,var(--cream))) 0 var(--eh)/100% 100% no-repeat}
  .sec::before{content:"";display:block;height:var(--eh)}
  .sec>.edge{top:1px;translate:none;transform:none}
}
main section[id]{scroll-margin-top:calc(16px + env(safe-area-inset-top))}

/* ---------- nav ---------- */
.nav{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;translate:-50% 0;z-index:100;width:min(1200px,100% - 24px - 2 * var(--safe-x));display:flex;align-items:center;gap:16px;padding:7px 8px;color:var(--cream);background:rgba(31,65,39,.94);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);border:1px solid rgba(244,236,218,.16);border-radius:999px;box-shadow:0 14px 34px -16px rgba(20,48,27,.7)}
.nav__logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.nav__logo svg{width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 1.5px rgba(244,236,218,.55)}
.nav__logo span{font:600 .75rem/1.15 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--cream)}
.nav__links{display:none;gap:4px;margin-left:auto;list-style:none;padding:0;margin-block:0}
.nav__links a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:99px;font:500 .95rem/1 var(--sans);text-decoration:none;transition:background .25s,color .25s}
.nav__links a:hover{background:rgba(244,236,218,.12);color:var(--butter)}
.nav__links a[aria-current="page"]{background:rgba(244,236,218,.14);color:var(--butter)}
.nav .btn{margin-left:auto;padding:0 20px;font-size:.75rem}
.nav .btn--solid{background:var(--cream);border-color:var(--cream);color:var(--green-deep);box-shadow:none}
.nav .btn--solid:hover{background:var(--butter);border-color:var(--butter);color:var(--green-ink)}
@media (min-width:900px){.nav__links{display:flex}.nav .btn{margin-left:8px}}
@media (max-width:420px){.nav__logo span{display:none}}

/* mobile nav */
.nav__burger{display:none}
.mnav{position:fixed;inset:0;z-index:99;display:flex;flex-direction:column;gap:28px;padding:calc(100px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));background:var(--green);color:var(--cream);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;clip-path:circle(0 at var(--mx,calc(100% - 40px)) var(--my,40px));transition:clip-path .5s cubic-bezier(.7,0,.25,1),visibility 0s linear .5s}
.mnav.open{visibility:visible;clip-path:circle(150vmax at var(--mx,calc(100% - 40px)) var(--my,40px));transition:clip-path .7s cubic-bezier(.2,.85,.25,1),visibility 0s}
.mnav__blob{width:min(95vw,520px);right:-38%;bottom:-22%;color:var(--green-deep);z-index:-1}
.mnav__list{list-style:none;margin:0;padding:0}
.mnav__list li,.mnav__foot{opacity:0;translate:0 18px;transition:opacity .3s ease,translate .5s cubic-bezier(.2,.9,.3,1)}
.mnav.open li,.mnav.open .mnav__foot{opacity:1;translate:0 0;transition-delay:calc(.12s + var(--i,0) * .045s)}
.mnav__list li{border-bottom:1px dashed rgba(244,236,218,.3)}
.mnav__list a{display:flex;align-items:baseline;gap:14px;min-height:56px;padding:10px 0;font:600 clamp(1.9rem,8.4vw,2.6rem)/1.05 var(--serif);color:var(--cream);text-decoration:none;transition:color .25s,translate .45s cubic-bezier(.2,.9,.3,1)}
.mnav__list a span{flex:none;min-width:2.4ch;font:800 ultra-condensed .8rem/1 var(--anton);letter-spacing:.14em;color:var(--butter)}
.mnav__list a em{color:var(--butter)}
.mnav__list a:hover,.mnav__list a:focus-visible{color:var(--butter);font-style:normal;translate:8px 0}
.mnav__list a[aria-current="page"]{color:var(--butter)}
.mnav__foot{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;padding-right:84px}
.mnav__foot p{margin:0 0 4px;font:600 .75rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--butter)}
.mnav__foot a{display:inline-flex;align-items:center;min-height:44px;font-size:1.0625rem;color:var(--cream);text-decoration:underline;text-decoration-color:rgba(244,236,218,.4);text-underline-offset:5px}
.mnav__foot a:hover{color:var(--butter);text-decoration-color:var(--butter)}
.mnav__mascot{position:absolute;right:calc(22px + env(safe-area-inset-right));bottom:calc(26px + env(safe-area-inset-bottom));width:62px;height:auto;color:var(--cream);opacity:.9}
html.menu-open,html.menu-open body{overflow:hidden}
@media (min-width:900px){.mnav{display:none}}
@media (max-width:899px){
  .nav{gap:10px}
  .nav__burger{position:relative;display:block;flex:none;width:46px;height:46px;padding:0;border-radius:50%;border:1.5px solid rgba(244,236,218,.45);background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .25s,border-color .25s}
  .nav__burger:hover{background:rgba(244,236,218,.12)}
  .nav__burger i{position:absolute;left:50%;top:50%;width:18px;height:2px;margin:-1px 0 0 -9px;border-radius:2px;background:var(--cream);transition:translate .45s var(--wobble),rotate .45s var(--wobble),opacity .2s,background .25s}
  .nav__burger i:nth-child(1){translate:0 -6px}
  .nav__burger i:nth-child(3){translate:0 6px}
  .nav__burger[aria-expanded="true"]{background:var(--cream);border-color:var(--cream)}
  .nav__burger[aria-expanded="true"] i{background:var(--green-deep)}
  .nav__burger[aria-expanded="true"] i:nth-child(1){translate:0 0;rotate:45deg}
  .nav__burger[aria-expanded="true"] i:nth-child(2){opacity:0}
  .nav__burger[aria-expanded="true"] i:nth-child(3){translate:0 0;rotate:-45deg}
}

/* ---------- VSTUPENKY (pop-upy) ---------- */
.tickets{list-style:none;margin:44px 0 0;padding:0;display:grid;gap:18px}
.ticket{display:grid;grid-template-columns:auto 1fr;gap:18px 22px;align-items:center;background:var(--paper);border-radius:28px;padding:20px 22px;position:relative;box-shadow:0 10px 0 -4px rgba(47,95,58,.32);transition:translate .5s cubic-bezier(.2,.9,.3,1)}
.ticket:hover{translate:0 -4px}
.stamp{position:relative;width:104px;height:104px;display:grid;place-items:center;text-align:center;color:var(--paper);flex:none}
.stamp svg{position:absolute;inset:0;width:100%;height:100%;color:var(--tomato);transition:rotate .8s var(--wobble)}
.ticket:hover .stamp svg{rotate:45deg}
.stamp span{position:relative;font:600 .75rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.stamp b{display:block;font:800 ultra-condensed 2.3rem/1 var(--anton);letter-spacing:0;margin:3px 0 2px}
.ticket h3{font:600 clamp(1.35rem,2.6vw,1.9rem)/1.1 var(--serif);color:var(--green-deep);margin:0 0 6px}
.ticket p{margin:0;font-size:1rem}
.ticket .meta{font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--tomato-deep);margin-bottom:6px}
.ticket--past{background:rgba(251,246,234,.55);box-shadow:none}
.ticket--past .stamp svg{color:#8F7A5A}
.ticket--past::after,.ticket--soon::after{position:absolute;right:18px;top:16px;font:600 .75rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:6px 9px;border-radius:99px}
.ticket--past::after{content:"Proběhlo";border:1.5px solid currentColor;color:var(--tomato-deep)}
.ticket--soon::after{content:"Brzy";background:var(--green);color:var(--cream)}
@media (min-width:760px){.ticket{grid-template-columns:auto 1.2fr 1fr;padding:22px 30px}.ticket .desc{grid-column:3}.stamp{width:112px;height:112px}}
@media (max-width:759px){.ticket .desc{grid-column:1/-1}.ticket--past::after,.ticket--soon::after{top:-10px;right:14px}}

/* ---------- FOOTER ---------- */
.foot{--bg:var(--green);color:var(--cream);padding:70px 0 calc(28px + env(safe-area-inset-bottom))}
.foot__word{font:800 ultra-condensed 19vw/.86 var(--anton);text-transform:uppercase;color:var(--cream);white-space:nowrap;text-align:center;margin:0 0 48px;transition:color .5s,-webkit-text-stroke-color .5s}
.foot__word:hover{color:var(--butter)}
.foot__grid{display:grid;gap:30px}
.foot__brand{display:flex;align-items:center;gap:16px}
.foot__brand svg{width:84px;height:84px;flex:none}
.foot__brand p{margin:0;font:500 1.35rem/1.2 var(--serif);}
.foot__brand em{color:var(--butter)}
.foot h4{font:600 .75rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--butter);margin:0 0 12px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.foot li a,.foot li span{display:inline-flex;align-items:center;min-height:44px}
.foot li a{min-width:44px}
.foot a{text-decoration:none;text-decoration-color:rgba(244,236,218,.35)}
.foot li a{text-decoration:underline;text-decoration-color:rgba(244,236,218,.3);text-underline-offset:5px}
.foot a:hover{color:var(--butter);text-decoration-color:var(--butter)}
.foot__bottom{display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;font-size:.875rem;opacity:.75;margin-top:28px;border-top:1px solid rgba(244,236,218,.2);padding-top:18px}
@media (min-width:760px){.foot__grid{grid-template-columns:1.6fr 1fr 1fr 1fr;align-items:start}}

/* ---------- mobil: kratší vertikální rytmus ---------- */
@media (max-width:899px){
  .tickets{margin-top:32px}
  .foot{padding-top:56px}
  .foot__word{margin-bottom:34px}
}
@media (max-width:599px){.foot__grid{grid-template-columns:1fr 1fr;gap:26px 16px}.foot__brand,.foot__grid>div:nth-child(2){grid-column:1/-1}}
@media (orientation:landscape) and (max-height:500px){
  .mnav{padding-top:calc(80px + env(safe-area-inset-top));gap:18px}
  .mnav__list{display:grid;grid-template-columns:1fr 1fr;column-gap:36px}
  .mnav__list a{font-size:1.6rem;min-height:48px;padding:6px 0}
  .mnav__foot{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:22px}
  .mnav__foot p{margin:0}
}

/* ---------- PODSTRÁNKY: hlavička + závěrečná výzva ---------- */
.phead{position:relative;isolation:isolate;overflow:hidden;background:var(--cream);padding:calc(132px + env(safe-area-inset-top)) 0 clamp(72px,9vw,112px)}
@supports (overflow:clip){.phead{overflow:clip}}
.phead .label{color:var(--green)}
.phead h1{font-size:clamp(2.8rem,8.4vw,6.6rem);color:var(--green);margin:0 0 20px}
.phead h1 em{color:var(--tomato)}
.phead .lead{margin:0}
.phead__blob{width:min(64vw,600px);right:-16vw;top:-14vw;color:var(--butter);opacity:.55;z-index:-1}
.phead__mascot{display:none}
@media (min-width:760px){
  .phead{padding-top:calc(168px + env(safe-area-inset-top))}
  .phead__mascot{display:block;position:absolute;right:max(24px,(100vw - 1200px) / 2);bottom:clamp(56px,7vw,96px);width:clamp(96px,10vw,132px);height:auto;color:var(--green)}
}
.cta{--bg:var(--cream);padding:clamp(84px,10vw,120px) 0 clamp(92px,11vw,130px)}
.cta .label{color:var(--green)}
.cta h2{color:var(--green);margin-bottom:18px}
.cta h2 em{color:var(--tomato)}
.cta .lead{margin:0 0 28px}
.cta__btns{display:flex;flex-wrap:wrap;gap:12px}
/* contact list: label left, value right, thin rules — like the footer of the printed menu */
.contact,.cta__contact{list-style:none;margin:24px 0 0;padding:0;max-width:26rem;border-top:1.5px solid rgba(47,95,58,.25)}
.contact li,.cta__contact li{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;border-bottom:1.5px solid rgba(47,95,58,.25)}
.ct-l{font:600 .75rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#6b756d}
.contact a,.cta__contact a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--green-deep);text-decoration:none;text-underline-offset:4px;text-decoration-thickness:1.5px}
.contact a:hover,.cta__contact a:hover{text-decoration-line:underline}

/* ---------- reduced motion: nic se netočí ani neodkrývá, vše viditelné ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important}
  .mnav,.mnav.open,.mnav li,.mnav__foot,.nav__burger i{transition:none!important}
  .wavy .ch,.rv{opacity:1!important;translate:none!important;transition:none!important}
  .ticket,.btn{transition:none}
}
