/* Taneční škola Valčík (ukázka) – plakát na taneční akci: fotka ze sálu, velké úzké písmo, noční a světlé pásy, růžovočervená jen na ťukání. Písma uložená u webu (SIL OFL 1.1, fonts/LICENSE.txt). */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/anton-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/anton-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/jost-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/jost-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --night:#121014;--night-2:#1f1b22;--paper:#f2f2f0;--ink:#141114;--ink-2:#57505a;--cream:#f6f1ea;--mute:#c9c1b8;--rose:#ff3b5c;--rose-d:#ff6680;--rose-ink:#c4123a;--line-d:rgba(246,241,234,.28);--line-p:rgba(20,17,20,.22);
  --display:'Anton','Arial Narrow',sans-serif;--text:'Jost',system-ui,sans-serif;
  --gut:20px;--max:1200px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:68px;-webkit-text-size-adjust:100%;scrollbar-color:var(--rose) var(--night)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.55 var(--text);padding-bottom:76px}
::selection{background:var(--rose);color:var(--ink)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
input,textarea,select{caret-color:var(--rose)}
h1,h2{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:1.1;letter-spacing:.005em;margin:0;text-wrap:balance}
h3{font-family:var(--text);font-weight:700;line-height:1.15;letter-spacing:-.01em;margin:0}
p,li,dd{text-wrap:pretty}
.skip{position:fixed;left:.75rem;top:-4rem;z-index:50;background:var(--rose);color:var(--ink);padding:.7rem 1rem;font-weight:700}
.skip:focus{top:.75rem}
[hidden]{display:none!important}

/* hlavička */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem var(--gut);background:rgba(18,16,20,.92);backdrop-filter:blur(8px);color:var(--cream)}
.brand{display:grid;text-decoration:none;line-height:1;min-height:44px;align-content:center}
.brand-name{font:400 1.7rem/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.brand-sub{font:600 .72rem/1.2 var(--text);letter-spacing:.14em;text-transform:uppercase;margin-top:.25rem;color:var(--mute)}
.call{display:inline-flex;align-items:center;min-height:44px;padding:.45rem 1.1rem;background:var(--rose);color:var(--ink);font:700 .98rem/1 var(--text);text-decoration:none}
.call:hover{background:var(--rose-d)}

/* tlačítka: růžovočervená jen tam, kam se ťuká */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:54px;padding:.75rem 1.4rem;border:0;background:var(--rose);color:var(--ink);font:700 1.05rem/1.15 var(--text);text-decoration:none;cursor:pointer;transition:background-color .2s,box-shadow .2s,color .2s}
.btn:hover{background:var(--rose-d)}
.btn-line{background:transparent;color:inherit;box-shadow:inset 0 0 0 2px currentColor}
.btn-line:hover{background:transparent;color:var(--rose-ink);box-shadow:inset 0 0 0 2px var(--rose-ink)}
.hero .btn-line:hover,.picker .btn-line:hover,.signup .btn-line:hover,.gallery .btn-line:hover,.sticky .btn-line:hover{color:var(--rose);box-shadow:inset 0 0 0 2px var(--rose)}
.btn-small{min-height:46px;padding:.6rem 1.1rem;font-size:.98rem}

/* úvod: fotka ze sálu přes celou obrazovku */
.hero{position:relative;min-height:calc(100vh - 60px);min-height:calc(100svh - 60px);display:grid;align-items:end;background:var(--night);color:var(--cream);overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:64% 18%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,16,20,.35) 0,rgba(18,16,20,.04) 30%,rgba(18,16,20,.6) 58%,rgba(18,16,20,.95) 100%)}
.hero-in{position:relative;z-index:1;width:100%;max-width:var(--max);margin:0 auto;padding:2rem var(--gut) 2.2rem}
h1{font-size:clamp(2.6rem,12vw,9rem);line-height:1.12}
.lead{max-width:34rem;margin:.8rem 0 1.2rem;font-size:1.12rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}
.hero-cta .btn{padding-left:1.1rem;padding-right:1.1rem}
.lead-more{display:none}
.now{display:flex;flex-wrap:wrap;gap:0 1.1rem;margin:1rem 0 0;padding:0;list-style:none}
.now a{display:inline-flex;align-items:center;gap:.5rem;min-height:40px;font:700 clamp(.78rem,3.4vw,.95rem)/1.2 var(--text);letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.now a::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:var(--rose)}
.now a:hover{text-decoration:underline}
.hero-credit{margin:.4rem 0 0;font-size:.72rem;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}

/* sekce: světlé a noční pásy */
.sec{max-width:var(--max);margin:0 auto;padding:3.4rem var(--gut)}
.sec+.sec{border-top:1px solid var(--line-p)}
.sec,.next,.form{overflow-x:clip}
h2{font-size:clamp(2.8rem,13vw,5.6rem)}
h3{font-size:1.35rem}
.sec-lead{max-width:38rem;margin:.7rem 0 1.6rem;font-size:1.12rem}
.picker,.signup,.gallery{position:relative;max-width:none;background:var(--night);color:var(--cream);padding-left:max(var(--gut),calc((100% - var(--max)) / 2 + var(--gut)));padding-right:max(var(--gut),calc((100% - var(--max)) / 2 + var(--gut)));border-top:0!important}
.picker+.sec,.signup+.sec,.gallery+.sec{border-top:0}

/* signatura: kdy mám lekci */
.picker-hint{margin:.5rem 0 1.3rem;font-size:1.1rem;color:var(--mute)}
.codes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:36rem}
.code{display:grid;justify-items:start;align-content:end;gap:.15rem;min-height:104px;padding:.6rem .7rem;border:0;background:var(--night-2);color:var(--cream);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line-d);transition:background-color .2s,color .2s}
.code-n{font:400 clamp(2.2rem,10vw,3.2rem)/1 var(--display);letter-spacing:.01em}
.code-d{font:600 .8rem/1 var(--text);letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.code:hover{box-shadow:inset 0 0 0 2px var(--rose)}
.code[aria-checked="true"]{background:var(--rose);color:var(--ink);box-shadow:none}
.code[aria-checked="true"] .code-d{color:var(--ink)}
.next{margin-top:1.8rem;padding-top:1.3rem;border-top:1px solid var(--line-d);max-width:44rem}
.next-what{margin:0;font:400 clamp(2rem,9vw,2.8rem)/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.next-when{margin:.6rem 0 0;font-weight:700;font-size:1.18rem}
.next-wear{margin:.25rem 0 0;color:var(--mute)}
.next-more{margin:.9rem 0 0;color:var(--mute)}
.next-more:empty{display:none}
.rail{margin-top:1.4rem}
.rail-steps{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;max-width:32rem;margin:0;padding:22px 0 0;list-style:none}
.rail-steps li{position:relative;display:grid;place-items:center;aspect-ratio:3/4;box-shadow:inset 0 0 0 1.5px var(--line-d);font:400 1.05rem/1 var(--display)}
.rail-steps li.done{background:var(--cream);color:var(--ink);box-shadow:none}
.rail-steps li.flag{box-shadow:inset 0 0 0 2px var(--cream)}
.rail-steps li.flag::before{content:"Příště";position:absolute;top:-21px;left:50%;transform:translateX(-50%);font:700 .64rem/1 var(--text);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.rail-note{margin:.8rem 0 0;font-size:.98rem;color:var(--mute)}
#ics{margin-top:1.2rem}

/* taneční rok jako line-up na plakátu */
.season{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:0}
.season li{display:grid;gap:.1rem;align-content:start;padding:.9rem 0;border-top:1px solid var(--line-p)}
.s-when{font:400 clamp(1.6rem,7.5vw,2.3rem)/1 var(--display);text-transform:uppercase}
.s-what{font-weight:700;font-size:1.1rem}
.s-where{font-size:.95rem;color:var(--ink-2)}
.s-flag{justify-self:start;margin-top:.35rem;padding:.25rem .6rem;background:var(--ink);color:var(--cream);font:700 .74rem/1.2 var(--text);letter-spacing:.08em;text-transform:uppercase}
.s-open .s-when{font-size:clamp(2.2rem,10vw,3.4rem)}
.s-open .s-what{font-size:1.25rem}

/* kurzy */
.course{display:grid;gap:1.4rem}
.h-date{display:block;margin-top:.12em;color:transparent;-webkit-text-stroke:2px var(--ink)}
.night .h-date{-webkit-text-stroke-color:var(--cream)}
@supports not (-webkit-text-stroke:2px black){.h-date{color:inherit}}
.course-sub{margin:.6rem 0 0;font:700 .9rem/1.3 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.course-lead{margin:0 0 1rem;font-size:1.15rem;max-width:40rem}
.photo{margin:0}
.photo img{width:100%}
.photo figcaption{margin-top:.45rem;font:600 .74rem/1.2 var(--text);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.gallery .photo figcaption{color:var(--mute)}
.photo-feet{max-width:380px}
.facts{margin:0 0 1rem;padding:0;list-style:none;display:grid;gap:.6rem;max-width:42rem}
.facts li{position:relative;padding-left:1.3rem}
.facts li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:.5rem;border-radius:50%;background:var(--ink)}
.more{border-top:1px solid var(--ink);max-width:44rem}
.more:last-child{border-bottom:1px solid var(--ink)}
.more summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:58px;padding:.5rem 0;cursor:pointer;list-style:none;font:400 1.5rem/1.1 var(--display);text-transform:uppercase}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:"";flex:none;width:16px;height:16px;background:linear-gradient(var(--ink),var(--ink)) center/100% 2.5px no-repeat,linear-gradient(var(--ink),var(--ink)) center/2.5px 100% no-repeat}
.more[open] summary::after{background:linear-gradient(var(--ink),var(--ink)) center/100% 2.5px no-repeat}
.more summary:hover{color:var(--rose-ink)}
.more p{margin:0 0 .8rem}
.dates{display:grid;gap:1.2rem;margin:.3rem 0 .8rem}
.dates h3{margin:0 0 .3rem;font:400 1.6rem/1 var(--display);text-transform:uppercase}
.dates table{width:100%;border-collapse:collapse;font-size:.98rem;font-variant-numeric:tabular-nums}
.dates th,.dates td{padding:.42rem .3rem;text-align:left;vertical-align:baseline;border-top:1px solid var(--line-p)}
.dates th{font-weight:700;white-space:nowrap}
.dates td:last-child{text-align:right;white-space:nowrap}
.dates tr.past{color:var(--ink-2)}
.dates tr.past th{text-decoration:line-through;text-decoration-thickness:2px}
.dates-note{font-size:.95rem}
.dances{margin:0 0 .8rem;display:grid;gap:.4rem}
.dances div{display:grid;grid-template-columns:9rem 1fr;gap:.6rem}
.dances dt{font-weight:700}
.dances dd{margin:0}

/* pokračovací stupně jako žebříček: Bronz hlavní, Stříbro a Zlato pod ním */
.ladder{display:grid;gap:1.4rem}
.head-step{position:relative;padding:1.3rem 1.2rem 1.4rem;background:var(--ink);color:var(--cream)}
.head-step h3{font:400 clamp(2.6rem,12vw,4.4rem)/1.05 var(--display);text-transform:uppercase}
.head-when{margin:.7rem 0 .9rem;font:400 clamp(1.5rem,6.5vw,2.2rem)/1.1 var(--display);text-transform:uppercase;color:var(--cream)}
.head-step ul{margin:0 0 1.2rem;padding-left:1.1rem;display:grid;gap:.4rem;max-width:36rem}
.head-step p{margin:0}
.step-flag{display:inline-block;margin:0 0 .6rem!important;padding:.25rem .6rem;background:var(--cream);color:var(--ink);font:700 .74rem/1.2 var(--text);letter-spacing:.08em;text-transform:uppercase}
.next-steps{margin:0;padding:0;list-style:none}
.next-steps li{display:grid;gap:.15rem;padding:.9rem 0;border-top:1px solid var(--ink)}
.next-steps li:last-child{border-bottom:1px solid var(--ink)}
.ns-name{font:400 2.2rem/1.05 var(--display);text-transform:uppercase}
.ns-when{font-weight:700}
.ns-what{color:var(--ink-2);max-width:38rem}

/* dospělí v nočním pásu s fotkou přes celou šířku */
.night{--padx:max(var(--gut),calc((100vw - var(--max)) / 2 + var(--gut)));max-width:none;padding-top:0;padding-left:var(--padx);padding-right:var(--padx);background:var(--night);color:var(--cream);border-top:0!important}
.night+.sec{border-top:0}
.photo-bleed{position:relative;order:-1;margin:0 calc(-1 * var(--padx)) .4rem}
.photo-bleed img{height:clamp(240px,52vw,520px);object-fit:cover}
.photo-bleed figcaption{position:absolute;right:var(--padx);bottom:.6rem;margin:0;padding:.3rem .5rem;background:rgba(18,16,20,.85);color:var(--cream)}
.night .course-sub,.night .course-lead{color:var(--mute)}
.night .course-lead{color:var(--cream)}
.slots{margin:0 0 1.2rem;padding:0;list-style:none;max-width:44rem}
.slots li{display:grid;grid-template-columns:3rem 1fr;gap:.2rem 1rem;align-items:baseline;padding:.8rem 0;border-top:1px solid var(--line-d)}
.slots li:last-child{border-bottom:1px solid var(--line-d)}
.slot-code{grid-row:span 2;font:400 2.6rem/1 var(--display)}
.slot-what b{display:block;font-size:1.1rem}
.slot-when{font-weight:700;color:var(--cream)}
.slot-off{color:var(--mute)}
.slot-off .slot-when{color:var(--mute)}
.price-big{margin:0 0 .8rem;font-size:1.1rem}
.price-big b{font:400 2.4rem/1 var(--display);margin-right:.35rem}
.gift{margin:0 0 1.2rem;padding:.8rem 1rem;max-width:40rem;box-shadow:inset 0 0 0 1px var(--line-d)}
.note{max-width:40rem;margin:.6rem 0 0}
.note-small{margin:.5rem 0 0;font-size:.92rem;color:var(--ink-2)}

/* přihláška v nočním pásu */
.form{max-width:52rem;padding:0}
.choose{margin:0 0 1.2rem;padding:0;border:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choose legend,.fld label{display:block;margin:0 0 .45rem;padding:0;font:700 .8rem/1.2 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.choose legend{float:left;width:100%;grid-column:1/-1}
.tape-opt{position:relative;display:flex;align-items:center;min-height:58px;padding:.5rem .9rem;background:var(--night-2);box-shadow:inset 0 0 0 1px var(--line-d);cursor:pointer;font-weight:700;line-height:1.2}
.tape-opt input{position:absolute;opacity:0;width:1px;height:1px}
.tape-opt:hover{box-shadow:inset 0 0 0 2px var(--rose)}
.tape-opt:has(input:checked){background:var(--rose);color:var(--ink);box-shadow:none}
.tape-opt:has(input:focus-visible){outline:3px solid var(--rose);outline-offset:3px}
.grid{display:grid;gap:1rem}
.fld{margin:0}
.fld input,.fld select,.fld textarea{display:block;width:100%;min-height:52px;padding:.65rem .8rem;border:0;border-radius:0;background:var(--paper);color:var(--ink);font-weight:500}
.fld textarea{resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:3px solid var(--rose);outline-offset:0}
.fld input::placeholder,.fld textarea::placeholder{color:#5f5864;opacity:1}
.fld .is-bad{box-shadow:inset 0 0 0 3px var(--rose)}
.opt-l{text-transform:none;letter-spacing:.02em;font-weight:500}
.form-err{margin:1rem 0 0;font-weight:700;color:var(--rose-d)}
.form .btn{margin-top:1.2rem;width:100%}
.privacy{margin:.8rem 0 0;font-size:.9rem;color:var(--mute)}

/* o škole */
.about-grid{display:grid;gap:1.6rem;margin-top:1rem}
.about-lead{font-size:1.2rem;margin-top:0}
.about-text h3{margin:1.6rem 0 .5rem;font:400 1.9rem/1 var(--display);text-transform:uppercase}
.about-text p{max-width:40rem}
.quotes{margin-top:2.2rem;display:grid;gap:1rem;max-width:46rem}
.quotes h3{font:400 1.9rem/1 var(--display);text-transform:uppercase}
.quotes blockquote{margin:0;font:600 1.3rem/1.35 var(--text)}
.quotes blockquote p{margin:0}

/* fotky z akcí */
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 1.4rem}
.strip img{aspect-ratio:4/5;object-fit:cover}

/* novinky a partneři */
.news-list{margin:1.2rem 0 1rem;padding:0;list-style:none;max-width:52rem}
.news-list li{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;align-items:baseline;padding:.8rem 0;border-top:1px solid var(--line-p)}
.news-list li:last-child{border-bottom:1px solid var(--line-p)}
.nl-when{font:400 1.5rem/1 var(--display);text-transform:uppercase}
.nl-what b{font-weight:700}
.nl-what a,.partners a{color:var(--rose-ink);font-weight:700}
.partners{max-width:52rem;margin:0;color:var(--ink-2)}

/* kde nás najdete */
.places{display:grid;gap:1.6rem;margin-top:1.2rem}
.place{padding-top:1rem;border-top:2px solid var(--ink)}
.place h3{margin-bottom:.4rem;font:400 1.9rem/1 var(--display);text-transform:uppercase}
.place p{margin:0 0 .5rem}
.place-what{font-weight:700}
.maplink{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--rose-ink)}
.contact-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem!important}

/* patička a mobilní lišta */
.foot{background:var(--night);color:var(--cream);padding:2.2rem max(var(--gut),calc((100% - var(--max)) / 2 + var(--gut))) 2.6rem;font-size:.95rem}
.foot p{margin:0 0 .5rem}
.links a{font-weight:700}
.forma{font-size:.85rem;color:var(--mute)}
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1.2fr 1fr;gap:.5rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(18,16,20,.96);color:var(--cream);transform:translateY(110%);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.sticky.on{transform:none}

/* okno po odeslání */
.pop{max-width:min(26rem,calc(100vw - 2rem));padding:1.5rem;border:0;background:var(--night);color:var(--cream);box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.pop::backdrop{background:rgba(18,16,20,.6)}
.pop h2{font-size:2.2rem;margin-bottom:.6rem}
.pop p{margin:0 0 .8rem}
.pop .btn{width:100%}

@media (min-width:600px){
  .hero-cta{display:flex;flex-wrap:wrap}
  .grid{grid-template-columns:1fr 1fr}
  .fld-wide{grid-column:1/-1}
  .choose{grid-template-columns:repeat(4,1fr)}
  .form .btn{width:auto}
}
@media (min-width:960px){
  :root{--gut:40px}
  body{padding-bottom:0}
  .sticky{display:none}
  .hero-in{padding-bottom:3.4rem}
  .sec{padding-top:4.6rem;padding-bottom:4.6rem}
  .sec.night{padding-top:0}
  .picker{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);grid-template-rows:auto auto 1fr;column-gap:4rem;align-items:start}
  .picker>h2,.picker>.picker-hint,.picker>.codes{grid-column:1}
  .picker>.next{grid-column:2;grid-row:1/span 3;margin-top:0;padding:0 0 0 3rem;border-top:0;border-left:1px solid var(--line-d)}
  .season{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:2rem}
  .season li{grid-column:span 3}
  .season li.s-open{grid-column:span 6;order:-1}
  .lead-more{display:inline}
  .course{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:3.5rem;align-items:start}
  .course-head{grid-column:1/-1}
  .ladder{grid-column:1/-1;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:3rem;align-items:start}
  .night .photo-bleed{grid-column:1/-1}
  .night .course-body{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:3.5rem}
  .night .course-lead{grid-column:1/-1}
  .dances div{grid-template-columns:11rem 1fr}
  .dates{grid-template-columns:1fr 1fr;gap:1.2rem 2rem}
  .about-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3.5rem;align-items:start}
  .places{grid-template-columns:repeat(3,1fr);gap:2.5rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ukázka na vizitce FORMA: telefon a odkazy otevřou vysvětlení */
button.call{border:0;cursor:pointer}
.foot button{padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-decoration-color:var(--rose);text-underline-offset:.2em;text-decoration-thickness:2px}
.foot button:hover{color:var(--rose-d)}
.fake{color:var(--mute);font-size:.85rem}
.foot-back{font-weight:700;color:var(--cream)}
/* HERO-OBRAZ (generuje vizitka/tools/hero_obraz.py) */
.hero-obraz{--ho-h:max(34rem,min(calc(100svh - 4.5rem),56.25vw))}
.ho-obraz{position:relative;margin:0;overflow:hidden}
.ho-obraz img{display:block;width:100%;height:auto;aspect-ratio:4/5;max-height:max(20rem,48svh);object-fit:cover;object-position:50% 80%}
@media (prefers-reduced-motion:no-preference){.ho-obraz img{animation:ho-zoom 1.2s cubic-bezier(.16,1,.3,1) both}}
@keyframes ho-zoom{from{transform:scale(1.04)}}
@media (max-width:1099px){
.hero-obraz{overflow-x:clip;padding-top:0}
.hero-obraz>.ho-obraz{grid-column:1/-1;width:100vw;max-width:none;margin:0 calc(50% - 50vw) 1.4rem}
}
@media (min-width:760px) and (max-width:1099px){
.ho-obraz img{aspect-ratio:16/9;max-height:60svh;object-position:50% 50%}
}
@media (min-width:1100px){
.hero-obraz{position:relative;isolation:isolate}
.hero-obraz>.ho-obraz{position:absolute;top:0;left:0;right:0;height:var(--ho-h);z-index:-1;margin:0}
.ho-obraz picture{display:contents}
.ho-obraz img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-position:var(--ho-pos,50% 50%)}
.ho-obraz::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgb(var(--ho-t) / .9) 0,rgb(var(--ho-t) / .72) 30%,rgb(var(--ho-t) / .25) 52%,rgb(var(--ho-t) / 0) 66%)}
}
.hero-obraz>.ho-obraz{position:absolute;inset:0;width:auto;height:auto;margin:0;z-index:auto}
.hero-obraz .ho-obraz img{height:100%;max-height:none;aspect-ratio:auto;object-position:50% 70%}
.hero-obraz .ho-obraz::after{display:none}

.ho-v{display:none}
.ho-btn{position:absolute;z-index:3;display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid rgb(255 255 255 / .6);border-radius:999px;background:rgb(0 0 0 / .55);color:#fff;cursor:pointer}
.ho-btn:hover{background:rgb(0 0 0 / .75)}
.ho-btn:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #000}
.ho-btn{opacity:0;transition:opacity .2s}
.ho-btn:focus-visible{opacity:1}
@media (hover:hover){.hero-obraz:hover .ho-btn{opacity:1}}
.ho-ico{width:.72rem;height:.8rem;border-left:.24rem solid currentColor;border-right:.24rem solid currentColor;box-sizing:border-box}
.ho-btn[aria-pressed="true"] .ho-ico{width:0;height:0;border:0;border-top:.42rem solid transparent;border-bottom:.42rem solid transparent;border-left:.7rem solid currentColor;margin-left:.15rem}
@media (min-width:760px){
.ho-v{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:0;transition:opacity .9s linear;pointer-events:none}
.ho-v.is-on{opacity:1}
.ho-btn.is-on{display:inline-flex}
}
@media (min-width:760px) and (max-width:1099px){
.hero-obraz{position:relative}
.ho-btn{top:calc(min(56.25vw,60svh) - 4.9rem);right:calc(50% - 50vw + .5rem)}
}
@media (min-width:1100px){
.ho-v{object-position:var(--ho-pos,50% 50%)}
.ho-btn{top:calc(var(--ho-h) - 4.9rem);right:.5rem}
}
.ho-btn{top:1rem;right:1rem}
.hero-obraz .ho-obraz .ho-v{object-position:50% 70%}
/* /HERO-OBRAZ */

/* TUNING 31. 10. 2026 (generuje vizitka/tools/ukazka-valcik.py) */
:root{--max:1440px;--pad:max(var(--gut),calc((100vw - var(--max)) / 2 + var(--gut)));--wine:#2c0b18;--bronz:#c98545;--stribro:#d0d1d2;--zlato:#eec24f;--pas:14.9rem;--h2:clamp(3.3rem,15.4vw,10rem)}
html{scroll-padding-top:60px}
body{padding-bottom:0}
.top{background:var(--night);backdrop-filter:none}
.top{justify-content:flex-start}
.top .brand{margin-right:auto}
.call-l{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 2px var(--cream);white-space:nowrap}
.call-l:hover{background:transparent;color:var(--rose);box-shadow:inset 0 0 0 2px var(--rose)}
.top button.call{display:none}
@media (max-width:599px){
.brand-sub{font-size:.66rem;letter-spacing:.06em;white-space:nowrap}
.call-l{padding:.45rem .8rem;font-size:.95rem}
}
.sec{max-width:none;padding:clamp(4rem,9vw,8rem) var(--pad)}
.sec+.sec,.sec+.parket+.sec{border-top:0}
h2{font-size:var(--h2);line-height:1.17}
h3{letter-spacing:0}
.h-date{-webkit-text-stroke-width:clamp(1.5px,.2vw,3px)}
.course-sub{font-size:1.0625rem}
.choose legend,.fld label{font-size:.95rem}
.privacy{font-size:1.0625rem}

/* úvod a červený pás: hlavní otázka je v první obrazovce */
.hero-obraz .ho-obraz img,.hero-obraz .ho-obraz .ho-v{object-position:50% 86%}
.hero{min-height:calc(100svh - 60px - var(--pas))}
h1{font-size:clamp(3.5rem,min(17.6vw,23svh),9.6rem);line-height:1.17}
.hero-in{padding-top:1rem;padding-bottom:1.1rem;max-width:none;padding-left:var(--pad);padding-right:var(--pad)}
.lead{margin:.4rem 0 .8rem;font-size:1.1rem;line-height:1.35}
.hero-cta .btn{padding-left:1.5rem;padding-right:1.5rem;min-height:50px}
.now{gap:0 1rem;margin-top:.3rem}
.now a{min-height:44px}

@media (max-width:759px){
.hero-obraz{grid-template-rows:minmax(8.5rem,1fr) auto;align-items:stretch}
.hero-obraz::after{display:none}
.hero-obraz>.ho-obraz{position:relative;inset:auto;grid-row:1;width:auto;height:auto;margin:0;min-height:0}
.hero-obraz .ho-obraz picture{display:contents}
.hero-obraz .ho-obraz img{position:absolute;inset:0;width:100%;height:100%;object-position:50% 80%}
.hero-obraz .ho-obraz::after{content:"";position:absolute;inset:auto 0 0;display:block;height:34%;background:linear-gradient(180deg,rgba(18,16,20,0),var(--night))}
.hero-in{grid-row:2;padding-top:.3rem}
.now{gap:0 .9rem}
.now a{font-size:clamp(.72rem,3.1vw,.78rem);letter-spacing:.04em;gap:.35rem}
}
@media (max-width:759px) and (max-height:700px){
.lead,.now{display:none}
h1{margin-bottom:.5rem}
}
.picker{position:relative;z-index:2;display:grid;gap:.7rem;max-width:none;padding:.95rem var(--pad) 1.1rem;background:var(--rose);color:var(--ink);overflow-x:clip}
.picker h2{font-size:clamp(2.5rem,11.8vw,4.6rem);line-height:1.1}
.picker-hint{margin:.25rem 0 0;font-size:1.0625rem;line-height:1.25;font-weight:500;color:var(--ink)}
.codes{max-width:none;gap:6px}
.code{min-height:78px;padding:.45rem .6rem;background:var(--ink);color:var(--cream);box-shadow:none;transition:background-color .16s,color .16s,transform .14s}
.code-n{font-size:clamp(2rem,9vw,2.8rem)}
.code-d{color:var(--mute);font-size:.8rem}
.code:hover{box-shadow:none;background:#2e2730}
.code:active{transform:translateY(1px)}
.code[aria-checked="true"]{background:var(--cream);color:var(--ink)}
.code:focus-visible{outline-color:var(--ink)}
.next{margin:0;padding:0;border:0;max-width:none;overflow:visible}
.next-what{font-size:clamp(1.9rem,8.4vw,3rem);line-height:1.14}
.next-when{margin-top:.3rem;font-size:1.2rem;line-height:1.3}
.next-wear,.next-more,.rail-note{color:var(--ink)}
.next-wear{margin-top:.1rem;font-size:1.0625rem}
.next-plus{display:grid;gap:.9rem}
.next-plus:not(:has(.rail:not([hidden]))){display:none}
.rail{margin:.4rem 0 0}
.rail-steps{gap:3px;max-width:none;padding-top:24px}
.rail-steps li{box-shadow:inset 0 0 0 1.5px rgba(20,17,20,.55);aspect-ratio:auto;height:3.1rem;font-size:1.2rem}
.rail-steps li.done{background:var(--ink);color:var(--cream)}
.rail-steps li.flag{background:var(--cream);color:var(--ink);box-shadow:none}
.rail-steps li.flag::before{top:-20px;font-size:.72rem;color:var(--ink)}
.rail-note{font-size:1.0625rem;font-weight:500}
.next-more{margin:0;font-size:1.0625rem}
.next-kal{display:grid;gap:.7rem;justify-items:start}
#ics{margin:0;background:var(--ink);color:var(--cream)}
#ics:hover{background:#2e2730}

.nb{white-space:nowrap}
.next-when,.slot-when,.rail-note{font-variant-numeric:tabular-nums}
.picker ::selection,.salsa ::selection,.signup h2::selection,.signup .sec-lead::selection{background:var(--ink);color:var(--cream)}
#ics:focus-visible{outline-color:var(--ink)}

/* scéna Parket: bez JS a při omezeném pohybu je tohle hotový obraz */
.parket{position:relative;background:var(--night);color:var(--cream)}
.pk-defs{position:absolute;width:0;height:0}
.pk-pin{display:grid;gap:2.2rem;padding:clamp(4rem,8vw,7rem) var(--pad);overflow:hidden}
.pk-kamera{position:relative;width:min(100%,44rem);aspect-ratio:1;margin-inline:auto}
.pk-disk,.pk-kruh{position:absolute;inset:0;display:block;width:100%;height:100%}
.pk-disk{width:auto;height:auto;inset:1%}
.pk-ctverec,.pk-svetlo{display:none}
.pk-p{fill:var(--cream)}.pk-d{fill:var(--rose)}
.pk-pc{stroke:var(--cream)}.pk-dc{stroke:var(--rose)}
.pk-cara,.pk-sip,.pk-hrot{fill:none;stroke-linecap:round;stroke-linejoin:round}
.pk-cara{stroke-width:2.1;stroke-dasharray:4.5 6}
.pk-sip{stroke-width:1.5}
.pk-hrot{stroke-width:1.5}
.pk-kopie .pk-sip{stroke-dasharray:3.5 4}
.pk-obrys{fill:none;stroke-width:2.6}
.pk-obrys.pk-p{stroke:var(--cream)}.pk-obrys.pk-d{stroke:var(--rose)}
.pk-n,.pk-c{font-family:var(--display);text-anchor:middle;dominant-baseline:central}
.pk-n{font-size:40px;fill:var(--cream)}
.pk-k{font-size:52px;fill:var(--rose)}
.pk-c{font-size:17px;fill:var(--cream)}
.pk-lp{font:700 7.4px var(--text);text-anchor:middle;dominant-baseline:central;fill:var(--ink)}
.pk-texty h2{font-size:clamp(2.6rem,min(13vw,13svh),7.6rem);line-height:1.15}
.pk-doby{display:flex;gap:.08em;margin:0;font:400 clamp(3.6rem,min(20vw,19svh),11rem)/1 var(--display)}
.pk-doby span{color:transparent;-webkit-text-stroke:2px var(--cream)}
.pk-kroky{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.3rem;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.2;font-weight:500}
.pk-leg{display:flex;gap:1.2rem;margin:1rem 0 0;font-size:1.0625rem;font-weight:600}
.pk-leg span{display:inline-flex;align-items:center;gap:.45rem}
.pk-leg span::before{content:"";width:.7rem;height:.7rem;border-radius:50%;background:var(--cream)}
.pk-leg .pk-l2::before{background:var(--rose)}
.pk-zaver p{margin:0 0 1.4rem;font:400 clamp(1.9rem,8.9vw,3.5rem)/1.16 var(--display);text-transform:uppercase}
.pk-stred{position:absolute;display:none}

.pk-zive{height:calc(100svh * 4.8)}
.pk-zive .pk-pin{position:sticky;top:0;display:block;height:100svh;padding:0;perspective:1300px}
.pk-zive .pk-kamera{position:absolute;inset:0;width:auto;aspect-ratio:auto;margin:0;will-change:transform}
.pk-zive .pk-disk,.pk-zive .pk-kruh,.pk-zive .pk-ctverec{position:absolute;left:0;top:0;right:auto;bottom:auto;display:block;max-width:none;transform-origin:50% 50%;will-change:transform;overflow:visible}
.pk-zive .pk-kruh{visibility:hidden}
.pk-zive .pk-kruh.je-videt{visibility:visible}
.pk-zive .pk-svetlo{position:absolute;inset:0;display:block;pointer-events:none;opacity:.75;background:radial-gradient(circle min(62vh,60vw) at var(--sx,50%) var(--sy,50%),rgba(255,196,140,.17),rgba(255,180,120,.07) 54%,rgba(18,16,20,0) 100%);transition:opacity .4s linear}
.pk-zive .pk-svetlo.je-konec{opacity:1}
.pk-zive .pk-b{opacity:0;transition:opacity .16s linear}
.pk-zive .pk-b.on{opacity:1}
.pk-zive .pk-otisk{transform:scale(1.24);transform-box:fill-box;transform-origin:50% 50%;transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.pk-zive .pk-b.on .pk-otisk{transform:none}
.pk-zive .pk-hrot{opacity:0;transition:opacity .1s linear}
.pk-zive .pk-b.on .pk-hrot{opacity:1}
.pk-zive .pk-sip{opacity:1}
.pk-zive .pk-r{opacity:0;transition:opacity .14s linear}
.pk-zive .pk-r.on{opacity:1}
.pk-zive .pk-kopie{opacity:0}
.pk-zive .pk-kopie .pk-b{opacity:1}
.pk-zive .pk-kopie.on{opacity:1}
.pk-zive .pk-n{opacity:.3;transition:opacity .2s linear}
.pk-zive .pk-n.on{opacity:1}
.pk-zive .pk-texty{position:absolute;z-index:3;left:var(--pad);top:calc(50% + 30px);width:min(33.4rem,35vw);display:grid;transform:translateY(-50%);pointer-events:none}
.pk-zive .pk-tx{grid-area:1/1;align-self:center;opacity:0;transition:opacity .22s linear}
.pk-zive .pk-tx.on{opacity:1}
.pk-zive .pk-zaver .btn{visibility:hidden}
.pk-zive .pk-zaver.on .btn{visibility:visible;pointer-events:auto}
.pk-zive .pk-kroky{display:grid}
.pk-zive .pk-kroky li{grid-area:1/1;opacity:0;transition:opacity .16s linear}
.pk-zive .pk-kroky li.on{opacity:1}
.pk-zive .pk-doby span{transition:color .1s linear}
.pk-zive .pk-doby span.on{color:var(--rose);-webkit-text-stroke-color:var(--rose)}
.pk-zive .pk-stred{position:absolute;left:0;top:0;z-index:3;display:grid;justify-items:center;width:18rem;margin:-6rem 0 0 -9rem;height:12rem;align-content:center;color:var(--cream);opacity:0;transition:opacity .25s linear;pointer-events:none;text-align:center}
.pk-zive .pk-stred.on{opacity:1}
.pk-stred b{font:400 clamp(5rem,14vmin,8.4rem)/1 var(--display)}
.pk-stred span{font:600 clamp(1.1rem,2.6vmin,1.5rem)/1.2 var(--text)}
.pk-stred.je-k b{color:var(--rose)}

/* Taneční rok: line-up na plakátu, přijde po tmavé scéně jako ostrý střih */
.year{background:var(--paper)}
.season{margin-top:clamp(2rem,4vw,3.4rem);column-gap:clamp(1.4rem,3vw,3rem)}
.season li{padding:1.05rem 0 1.15rem;border-top:2px solid var(--ink)}
.s-when{font-size:clamp(2.1rem,9vw,3.5rem);line-height:1.18}
.s-what{font-size:1.2rem;line-height:1.25;text-decoration:none}
a.s-what{display:block;padding-block:.65rem;margin-block:-.5rem}
a.s-what:hover{color:var(--rose-ink);text-decoration:underline}
.s-where{font-size:1.0625rem}
.s-open .s-when{font-size:clamp(3.2rem,15vw,7.6rem);line-height:1.14}
.s-open .s-what{font-size:clamp(1.3rem,2vw,1.7rem)}
.s-flag{margin-top:.55rem;padding:.34rem .7rem;background:var(--rose);color:var(--ink);font-size:.85rem}

/* Mládež: fotka shora a obří čísla */
.mladez{display:block;padding:0 0 clamp(4rem,8vw,7rem);background:var(--paper)}
.ml-obraz{position:relative;display:grid;align-items:end;min-height:min(92svh,56rem);background:var(--night);color:var(--cream)}
.ml-obraz .photo-wide{position:absolute;inset:0;margin:0}
.ml-obraz .photo-wide img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.ml-obraz::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,16,20,.1) 30%,rgba(18,16,20,.86) 100%);pointer-events:none}
.ml-obraz .course-head{position:relative;z-index:1;padding:0 var(--pad) clamp(1.6rem,3.6vw,3.2rem)}
.ml-obraz .h-date{-webkit-text-stroke-color:var(--cream)}
.ml-obraz .course-sub{color:var(--cream)}
.tri{list-style:none;margin:0;padding:clamp(2.4rem,6vw,5rem) var(--pad) clamp(2rem,5vw,4rem);display:grid;gap:1.6rem}
.tri li{display:grid;grid-template-columns:auto 1fr;column-gap:.9rem;align-items:baseline}
.tri b{grid-row:span 2;font:400 clamp(6.4rem,29vw,15rem)/.98 var(--display);color:var(--ink)}
.tri span{font:400 clamp(1.9rem,8vw,3.3rem)/1.16 var(--display);text-transform:uppercase;align-self:end}
.tri small{font-size:1.0625rem;line-height:1.3;align-self:start;margin-top:.25rem}
.mladez .course-body{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;padding:0 var(--pad)}
.facts{font-size:1.125rem;gap:.8rem}
.facts li::before{background:var(--rose)}
.price-big{margin:0 0 1rem;font-size:1.125rem}
.price-big b{font-size:clamp(3rem,12vw,5rem);display:block;line-height:1.02;margin:0 0 .2rem}
.ml-cta{margin:0}
.more{max-width:none;border-top:2px solid var(--ink)}
.more:last-child{border-bottom:2px solid var(--ink)}
.more summary{min-height:68px;font-size:clamp(1.55rem,5vw,2.2rem)}
.more summary::after{width:20px;height:20px}
.more p,.dances,.dates{font-size:1.0625rem}
.dates{grid-template-columns:minmax(0,1fr)}
.dates h3{font-size:1.9rem}
.dates th,.dates td{font-size:1.0625rem;padding:.5rem .4rem .5rem 0}
.dates th{white-space:normal;line-height:1.25}
.dates td{line-height:1.25}
.dates tr.past th{text-decoration:none;font-weight:500}
.dates td:last-child{padding-right:0}
.dates-note{font-size:1.0625rem}

/* Stupně: skutečné schody */
.stupne{display:grid;gap:0;padding-bottom:0;background:var(--night);color:var(--cream);overflow:clip;view-timeline-name:--schody}
.stupne .h-date{-webkit-text-stroke-color:var(--cream)}
.stupne .course-sub{color:var(--mute);margin-bottom:2.4rem}
.schod{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:1.4rem 1.2rem 1.6rem;color:var(--ink);min-width:0}
.schod h3{margin:0;font:400 clamp(4rem,19vw,8.2rem)/1.14 var(--display);text-transform:uppercase}
.schod .head-when{margin:.1rem 0 .8rem;font:400 clamp(1.5rem,6.4vw,2.1rem)/1.2 var(--display);text-transform:uppercase;color:var(--ink)}
.schod p{margin:0}
.schod ul{margin:0 0 1.3rem;padding:0 0 0 1.1rem;display:grid;gap:.4rem}
.schod .step-flag{margin:0 0 .7rem!important;background:var(--ink);color:var(--cream);font-size:.85rem;padding:.34rem .7rem}
.schod .btn{background:var(--ink);color:var(--cream)}
.schod .btn:hover{background:#2e2730}
.schod .btn:focus-visible{outline-color:var(--ink)}
.s1{background:var(--bronz);margin-right:14%}
.s2{background:var(--stribro);margin-right:7%}
.s3{background:var(--zlato);margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad));padding-left:var(--pad);padding-right:var(--pad)}
.s1,.s2{margin-left:calc(-1 * var(--pad));padding-left:var(--pad)}

/* Dospělí: vínový pás, program nedělního večera */
.dospeli{display:block;padding:0;background:var(--wine)}
.dospeli .photo-bleed{order:0;margin:0}
.dospeli .photo-bleed img{width:100%;height:clamp(15rem,62vw,38rem);object-fit:cover;object-position:50% 80%}
.dosp-in{padding:clamp(3rem,7vw,6.5rem) var(--pad) clamp(2.4rem,5vw,4.5rem)}
.dospeli .dosp-in>.course-lead{margin-top:1.1rem;color:var(--cream)}
.dospeli .course-sub{color:var(--mute)}
.dospeli .course-body{display:block;margin-top:1.4rem}
.dospeli .course-lead{font-size:clamp(1.2rem,1.8vw,1.45rem);line-height:1.35}
.slots{max-width:none;margin:0 0 1.6rem;border-bottom:1px solid var(--line-d)}
.slots li{grid-template-columns:3.4rem 1fr;gap:.1rem .9rem;padding:.95rem 0 1rem}
.slots li:last-child{border-bottom:0}
.slot-code{font-size:3.2rem;line-height:1;color:var(--rose)}
.slot-off .slot-code{color:var(--mute)}
.slot-what{font-size:1.125rem}
.slot-what b{font:400 clamp(1.8rem,5vw,2.4rem)/1.2 var(--display);text-transform:uppercase}
.slot-when{font-size:1.125rem}
.dospeli .price-big b{color:var(--cream)}
.gift{max-width:none;padding:0;box-shadow:none;margin:0 0 1.5rem;font-size:1.125rem}

/* Salsa: druhý červený pás, celý */
.salsa{display:block;background:var(--rose);color:var(--ink);overflow:clip;view-timeline-name:--osm}
.salsa .h-date{-webkit-text-stroke-color:var(--ink)}
.salsa .course-sub{color:var(--ink)}
.osm{display:grid;grid-template-columns:repeat(4,1fr);margin:clamp(1.4rem,3vw,2.4rem) 0;font:400 clamp(7rem,38vw,23.5rem)/.94 var(--display);text-align:left}
.osm .pz{color:transparent;-webkit-text-stroke:clamp(2px,.3vw,4px) var(--ink)}
.salsa .photo-wide{margin:0 0 1.6rem}
.salsa .photo-wide img{width:100%;height:auto;aspect-ratio:900/760;object-fit:cover}
.salsa .course-body{display:block}
.salsa .course-lead{font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.28;font-weight:500;color:var(--ink)}
.salsa .facts{max-width:none;font-size:1.125rem}
.salsa .facts li::before{background:var(--ink)}
.salsa .note{max-width:none;font-size:1.0625rem}

/* O škole */
.about{background:var(--paper)}
.about-grid{margin-top:1.8rem;gap:2rem}
.about-lead{margin:0 0 1rem;font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.2;font-weight:500}
.about-text p{max-width:38em}
.about-text h3,.quotes h3{font-size:clamp(1.9rem,4vw,2.6rem)}
.quotes{max-width:none;margin-top:clamp(2.6rem,6vw,5rem);gap:1.5rem}
.quotes h3{grid-column:1/-1}
.quotes .note-small{grid-column:1/-1;margin:-.6rem 0 0;font-size:1.0625rem}
.quotes blockquote{font:500 clamp(1.5rem,3vw,2.4rem)/1.18 var(--text);padding-top:.9rem;border-top:2px solid var(--ink)}

/* fotky */
.gallery{padding-bottom:0;background:var(--night);overflow:clip}
.gallery .sec-lead{font-size:clamp(1.15rem,1.7vw,1.4rem);margin-bottom:1.8rem}
.strip{gap:0;margin:0 calc(-1 * var(--pad));grid-template-columns:5fr 4fr}
.strip .photo:last-child{grid-column:1/-1}
.strip img{width:100%;height:clamp(15rem,62vw,32rem);aspect-ratio:auto;object-fit:cover}
.gallery>p:last-child{margin:0;padding:1.8rem 0 2.6rem}

/* novinky a kontakty: klidný papír před finále */
.news{background:var(--paper);padding-bottom:0}
.news-list{max-width:none;margin:1.8rem 0 0}
.news-list li{grid-template-columns:1fr;gap:.2rem;padding:1rem 0;border-top:2px solid var(--ink)}
.news-list li:last-child{border-bottom:2px solid var(--ink)}
.nl-when{font-size:clamp(1.7rem,6vw,2.4rem)}
.nl-what{font-size:1.125rem}
.nl-what b{font-size:clamp(1.25rem,1.9vw,1.5rem)}
.where{background:var(--paper)}
.place h3{font-size:clamp(2rem,4vw,2.8rem)}
.place p{font-size:1.0625rem}
.maplink{padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--rose-ink);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:2px;cursor:pointer}
.maplink:hover{color:var(--ink)}

/* finále: třetí červený pás, celá obrazovka a vyzvání k tanci */
.signup{background:var(--rose);color:var(--ink);padding-bottom:clamp(3rem,6vw,5.5rem)}
.signup h2{font-size:clamp(5.9rem,28vw,24rem);line-height:1.14}
.signup .sec-lead{margin:1rem 0 1.6rem;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.3;font-weight:500}
.form{max-width:none;padding:clamp(1.2rem,3.4vw,3.2rem);background:var(--night);color:var(--cream)}
.privacy{color:var(--mute)}

/* patička */
.foot{padding-top:clamp(2.6rem,6vw,5rem);padding-bottom:1.4rem;overflow:clip;font-size:1.0625rem}
.foot-sl{display:grid;gap:.5rem}
.foot button{display:inline-flex;align-items:center;min-height:44px}
.foot-back{display:inline-flex;align-items:center;min-height:44px}
.foot-znak{margin:1.6rem 0 -.1em!important;font:400 min(calc((100vw - 2 * var(--gut)) / 2.54),calc((var(--max) - 2 * var(--gut)) / 2.54))/.86 var(--display);text-transform:uppercase;letter-spacing:.005em;color:transparent;-webkit-text-stroke:clamp(1.5px,.2vw,3px) var(--rose);white-space:nowrap}
.forma{font-size:1.0625rem}
.fake{font-size:.95rem}
.sticky{grid-template-columns:1.2fr 1fr}

@media (min-width:600px){
.top button.call{display:inline-flex}
.strip{grid-template-columns:5fr 4fr 6fr}
.strip .photo:last-child{grid-column:auto}
}
@media (min-width:760px){
.schod{padding:1.8rem 2rem 2.2rem}
}
@media (min-width:960px){
:root{--gut:40px;--pas:16.4rem}
body{font-size:1.1875rem}
.lead{max-width:40rem;font-size:1.3rem;margin-bottom:1.1rem}
.hero-in{padding-bottom:1.6rem}
.hero-cta{align-items:center;gap:1.6rem}
.now{margin:0;display:inline-flex}
.hero-cta{float:left;margin-right:1.6rem}
.picker{grid-template-columns:auto auto minmax(0,1fr);column-gap:clamp(2rem,3.4vw,3.4rem);align-items:center;padding-top:1.3rem;padding-bottom:1.4rem}
.picker>h2,.picker>.picker-hint,.picker>.codes{grid-column:auto}
.pi-otazka{width:16.6rem}
.picker h2{font-size:4.5rem}
.codes{grid-template-columns:repeat(4,7rem)}
.code{min-height:9.4rem;padding:.7rem .8rem}
.code-n{font-size:3.7rem}
.code-d{font-size:.95rem}
.picker>.next{grid-column:3;grid-row:auto;margin:0;padding:0;border:0}
.next-what{font-size:clamp(2.4rem,3.3vw,3.1rem)}
.next-when{font-size:1.35rem}
.next-wear{font-size:1.125rem}
.next-plus{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;column-gap:3rem;align-items:end;margin-top:.5rem}
.rail-steps li{height:4.2rem;font-size:1.6rem}
.next-kal{justify-items:end;text-align:right;max-width:21rem}
.pk-pin{grid-template-columns:minmax(0,1fr) minmax(0,44rem);align-items:center;gap:3rem}
.pk-zaver p{font-size:clamp(2.5rem,3.9vw,3.5rem)}
.pk-texty{order:-1}
.season li{grid-column:span 3}
.season li.s-open{grid-column:span 6}
.tri{grid-template-columns:auto auto auto;justify-content:space-between;gap:clamp(1.2rem,2.4vw,3rem)}
.tri b{font-size:clamp(9rem,16.6vw,15rem)}
.tri span{font-size:clamp(2.3rem,3.7vw,3.3rem)}
.tri small{max-width:15em}
.tri li{grid-template-columns:auto 1fr;align-items:end}
.mladez .course-body{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.4rem,5vw,5rem);align-items:start}
.stupne{grid-template-columns:6fr 3fr 3fr;grid-template-rows:auto auto;align-items:end;gap:0;padding-top:clamp(3rem,6vw,5.5rem)}
.stupne h2{font-size:clamp(4.2rem,7.6vw,7.4rem)}
.stupne .course-head{grid-column:1;grid-row:1;align-self:start;padding-right:2rem}
.s1,.s2,.s3{margin:0;padding:2rem 1.7rem 2.6rem}
.s1{grid-column:1;grid-row:2;margin-left:calc(-1 * var(--pad));padding-left:var(--pad)}
.s2{grid-column:2;grid-row:1/3;min-height:35rem}
.s3{grid-column:3;grid-row:1/3;min-height:44rem;margin-right:calc(-1 * var(--pad));padding-right:var(--pad)}
.s2 h3,.s3 h3{font-size:clamp(3.7rem,5.6vw,5.4rem)}
.s1 h3{font-size:clamp(5.6rem,9.2vw,9rem)}
.dosp-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);grid-template-rows:auto 1fr;column-gap:clamp(2.4rem,5vw,5rem);row-gap:1.4rem}
.dosp-in .course-head{grid-column:1;grid-row:1}
.dospeli .dosp-in>.course-lead{grid-column:1;grid-row:2;margin:0;align-self:start;max-width:32em}
.dospeli .dosp-in>.course-body{grid-column:2;grid-row:1/3;margin:0;display:block}
.dospeli h2{font-size:clamp(4.6rem,7.6vw,7.4rem)}
.salsa .osm{grid-template-columns:repeat(8,1fr);font-size:clamp(11rem,22.4vw,22rem)}
.salsa{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2.4rem,5vw,5rem);align-items:start}
.salsa .course-head,.salsa .osm{grid-column:1/-1}
.salsa .photo-wide{grid-column:1;margin:0}
.salsa .course-body{grid-column:2}
.about-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2.4rem,5vw,5rem)}
.quotes{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.6rem,3vw,3rem)}
.strip img{height:34rem}
.news{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2.4rem,5vw,5rem);padding-bottom:0}
.news h2,.where h2{font-size:clamp(4.4rem,7vw,7rem)}
.news-list{margin:0}
.news-list li{grid-template-columns:11rem 1fr;gap:1.4rem;align-items:baseline}
.places{grid-template-columns:repeat(3,1fr)}
.where{padding-top:clamp(4rem,7vw,6.5rem)}
.signup{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:clamp(2.4rem,5vw,5rem);align-items:start}
.signup h2{grid-column:1/-1;font-size:min(16.6vw,15.6rem);white-space:nowrap}
.signup .sec-lead{grid-column:1;margin:clamp(1.4rem,3vw,2.6rem) 0 0}
.signup .form{grid-column:2;margin-top:clamp(1.4rem,3vw,2.6rem)}
.foot{display:grid;grid-template-columns:1fr auto;column-gap:3rem;align-items:start}
.foot-znak{grid-column:1/-1}
.pk-zive .pk-stred{width:20rem;margin-left:-10rem}
}
@media (min-width:1200px){
.dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem clamp(1.6rem,2.6vw,2.6rem)}
}
@media (max-width:959px) and (orientation:portrait){
.pk-zive .pk-texty{left:var(--gut);right:var(--gut);top:calc(60px + .7rem);width:auto;transform:none}
.pk-zive .pk-tx{align-self:start}
}
@media (max-width:959px) and (orientation:landscape){
.pk-zive .pk-texty{left:var(--gut);width:42vw}
.pk-zive .pk-leg{margin-top:.4rem}
.pk-zaver p{font-size:min(8.9vw,10svh);margin-bottom:.6rem}
.pk-kroky{font-size:1.15rem}
}
@media (prefers-reduced-motion:no-preference){
@supports (animation-timeline:view()){
@keyframes vz{from{transform:translateY(var(--z))}to{transform:none}}
@media (min-width:960px){
.s1,.s2,.s3{animation:vz linear both;animation-timeline:--schody}
.s1{--z:6rem;animation-range:entry 25% entry 70%}.s2{--z:11rem;animation-range:entry 35% entry 85%}.s3{--z:16rem;animation-range:entry 45% entry 100%}
}
@keyframes zapln{from{color:transparent}to{color:var(--ink)}}
.osm span:not(.pz){color:transparent;-webkit-text-stroke:clamp(2px,.3vw,4px) var(--ink);animation:zapln linear both;animation-timeline:--osm}
.osm span:nth-child(1){animation-range:cover 14% cover 19%}
.osm span:nth-child(2){animation-range:cover 19% cover 24%}
.osm span:nth-child(3){animation-range:cover 24% cover 29%}
.osm span:nth-child(5){animation-range:cover 33% cover 38%}
.osm span:nth-child(6){animation-range:cover 38% cover 43%}
.osm span:nth-child(7){animation-range:cover 43% cover 48%}
}}
/* /TUNING */
/* FORMA-POLISH (generuje vizitka/tools/ukazky-polish.py) */
:where(input,textarea){caret-color:#ff3b5c}
:where(a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible){outline:3px solid #ff3b5c;outline-offset:3px}
:where(a){text-underline-offset:.2em}
:where(table,dd,time,data,[class*=cen],[class*=price],[class*=hod],[class*=hours],[class*=doba],[class*=kc]){font-variant-numeric:tabular-nums}
.photo:not(.hero *){position:relative}.photo:not(.hero *) img{display:block}.photo:not(.hero *) figcaption{position:absolute;right:.5rem;bottom:.5rem;margin:0;z-index:2;padding:.2rem .45rem;border-radius:3px;background:rgb(0 0 0 / .55);color:#fff;font:500 11px/1.2 system-ui,sans-serif;letter-spacing:.02em;text-transform:none;text-align:left;pointer-events:none}
/* /FORMA-POLISH */
