/* Zumba Višňové – farby a štýl podľa letáku */
:root{
  --magenta:#E8148B; --yellow:#E9F23A; --orange:#FF8A2B; --cyan:#29C4E0;
  --pink:#FDC6E2; --cream:#FFF8E6; --ink:#1A1A1A; --paper:#FFFFFF; --muted:#6B5E6A;
  --line:#F0DCE8; --ok:#2BB673; --warn:#E5484D;
  --script:'Caveat','Brush Script MT',cursive; --sans:'Montserrat','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}
a{color:var(--magenta)}
h1,h2,h3{margin:0;text-wrap:balance}
img{max-width:100%;height:auto}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px}
.wrap.narrow{max-width:640px}
.muted{color:var(--muted)} .small{font-size:14px} .dim{opacity:.8} .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.inline{display:inline}
.link{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--magenta);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link.danger{color:var(--warn)}

/* brush highlight */
.hl{display:inline-block;padding:.05em .35em;margin:0 -.1em;line-height:1.05;clip-path:polygon(1% 12%,99% 4%,100% 88%,2% 96%)}
.hl.m{background:var(--magenta);color:#fff}
.hl.y{background:var(--yellow);color:var(--ink)}
.hl.p{background:var(--pink)}
.hl.c{background:var(--cyan);color:var(--ink)}
.dots{position:relative}
.dots::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:
   radial-gradient(circle,var(--magenta) 0 4px,transparent 5px) 6% 20%/60px 60px no-repeat,
   radial-gradient(circle,var(--cyan) 0 3px,transparent 4px) 12% 70%/60px 60px no-repeat,
   radial-gradient(circle,var(--orange) 0 5px,transparent 6px) 50% 10%/60px 60px no-repeat,
   radial-gradient(circle,var(--yellow) 0 6px,transparent 7px) 46% 85%/60px 60px no-repeat,
   radial-gradient(circle,var(--magenta) 0 3px,transparent 4px) 55% 50%/60px 60px no-repeat}

/* header */
.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:16px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.logo .z{width:36px;height:36px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;font-family:var(--script);font-size:26px;font-weight:700;border:3px solid var(--ink)}
.logo small{font-weight:400;color:var(--muted);font-size:13px;margin-left:4px}
.logo .v{font-family:var(--script);color:var(--magenta);font-size:28px;font-weight:700;margin-left:4px}
.menu{list-style:none;display:flex;gap:20px;margin:0;padding:0;font-size:14px;font-weight:600}
.menu a{color:var(--ink);text-decoration:none}
.menu a:hover{color:var(--magenta)}
.nav-actions{display:flex;align-items:center;gap:14px}

/* buttons */
.btn{display:inline-block;background:var(--magenta);color:#fff;text-decoration:none;font-weight:800;padding:11px 20px;border-radius:999px;border:2px solid var(--magenta);font-family:var(--sans);font-size:15px;cursor:pointer;transition:transform .12s,background .12s,border-color .12s;line-height:1.2}
.btn:hover{background:var(--ink);border-color:var(--ink);transform:translateY(-1px)}
.btn:focus-visible,.link:focus-visible,input:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.done{background:var(--ok);border-color:var(--ok)}
.btn.danger{background:var(--warn);border-color:var(--warn)}
.btn.big{font-size:17px;padding:14px 28px}
.btn.sm{font-size:13px;padding:8px 14px}

/* flashes */
.flashes{padding-top:16px;display:grid;gap:8px}
.flash{padding:12px 16px;border-radius:12px;font-weight:600;font-size:15px;border:2px solid}
.flash-success{background:#E9F9F0;border-color:var(--ok)}
.flash-error{background:#FDECEC;border-color:var(--warn)}
.flash-info{background:#E6F7FB;border-color:var(--cyan)}
.flash-warning{background:#FFF8D6;border-color:#E4C51B}
.notice{background:var(--cream);border:2px dashed var(--orange);border-radius:14px;padding:14px 18px;margin:18px 0;display:flex;gap:14px;align-items:center;flex-wrap:wrap}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:center;padding:0;background:var(--cream);border-radius:28px;margin-top:20px;overflow:hidden;min-height:600px}
.hero-text{padding:44px 12px 52px 36px}
.hero h1{font-family:var(--script);font-size:clamp(56px,8vw,88px);font-weight:700;line-height:.95}
.hero h1 .line2{display:block;margin-top:.15em;margin-left:1.2em}
.hero p.lead{font-size:18px;max-width:34ch;margin:22px 0 26px}
.when{display:grid;gap:6px;font-weight:600;margin:0 0 26px;padding:0;list-style:none}
.when li{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.when b{font-size:22px;color:var(--magenta);font-weight:800}
.hero-art{position:relative;align-self:stretch;min-height:600px}
.hero-art img{position:absolute;left:50%;bottom:-2%;transform:translateX(-50%);height:104%;width:auto;max-width:none;display:block;filter:drop-shadow(0 12px 24px rgba(232,20,139,.18))}

/* next lesson card */
.next{margin:-28px 36px 0;background:#fff;border:3px solid var(--ink);border-radius:20px;padding:18px 22px;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;box-shadow:8px 8px 0 var(--yellow);position:relative}
.next .date{text-align:center;line-height:1;font-weight:800}
.next .date .d{font-size:44px;color:var(--magenta)}
.next .date .m{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.next .date .w{font-size:12px;color:var(--muted);margin-top:4px}
.next h3{font-size:20px;font-weight:800}
.next .meta{color:var(--muted);font-size:14px;margin-top:2px}
.cap{margin-top:8px;height:10px;background:var(--line);border-radius:99px;overflow:hidden;max-width:280px}
.cap i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta))}
.cap + small{color:var(--muted);font-size:12px}

/* sections */
.section{padding:56px 0}
h2,.h2{font-family:var(--script);font-size:52px;font-weight:700;line-height:1;margin-bottom:22px}
.h3{font-family:var(--script);font-size:36px;font-weight:700;line-height:1;margin-bottom:14px}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--magenta);display:block;margin-bottom:10px}
.eyebrow.dark{color:var(--ink)}
.sched{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.lesson{border:2px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:8px;background:#fff;align-content:start}
.lesson .d{font-weight:800;font-size:24px}
.lesson .d span{color:var(--magenta)}
.lesson .m{color:var(--muted);font-size:14px}
.lesson .s{font-size:13px;font-weight:600}
.lesson .s.full{color:var(--warn)}
.lesson .btn{justify-self:start}
.lesson.first{border-color:var(--magenta);background:var(--cream)}
.perks{display:grid;gap:14px;margin:0;padding:0;list-style:none;max-width:560px}
.perks li{font-weight:800;font-size:22px}
.price{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.card{border-radius:22px;padding:28px;display:grid;gap:10px;align-content:start}
.card.p1{background:var(--pink)}
.card.p2{background:var(--yellow)}
.card .amt{font-family:var(--script);font-size:64px;font-weight:700;line-height:1}
.card .amt small{font-family:var(--sans);font-size:15px;font-weight:600}
.card ul{margin:6px 0 0;padding-left:18px;font-size:15px}
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:start}
.portrait{border-radius:24px;overflow:hidden;box-shadow:10px 10px 0 var(--pink)}
.portrait img{display:block;width:100%}
.certs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:0;list-style:none}
.certs li{border:2px solid var(--ink);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;background:#fff}
.contact{background:var(--ink);color:#fff;border-radius:28px;padding:40px 36px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.contact h2{color:var(--yellow);margin-bottom:8px}
.contact a{color:var(--cyan);font-weight:600;text-decoration:none}
.contact .big{font-size:28px;font-weight:800}
.contact .big a{color:#fff}
.contact .quote{font-family:var(--script);font-size:34px;line-height:1.1;color:var(--pink);text-align:right}
.site-footer{padding:26px 0 48px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);margin-top:20px}
.site-footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot-links{display:flex;gap:16px;flex-wrap:wrap}
.foot-links a{color:var(--muted)}

/* forms */
.form-card{background:var(--cream);border-radius:22px;padding:28px 30px;margin:28px 0}
.form{display:grid;gap:14px;margin-top:12px}
.form label{display:grid;gap:6px;font-weight:600;font-size:14px}
.form .opt{font-weight:400;color:var(--muted)}
.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=tel]{font:inherit;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;width:100%}
.form input:disabled{background:#f4eef2;color:var(--muted)}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.form .check input{margin-top:4px}
.form .btn{justify-self:start}
.hp{position:absolute;left:-9999px;top:-9999px}
.danger-zone{border:2px solid var(--warn);background:#fff}
.prose ol,.prose p{font-size:15px}
.prose ol li{margin-bottom:10px}

/* account */
.acct-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;padding-top:28px}
.acct-head .h2{margin-bottom:0}
.acct-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0 40px}
.tile{border:2px solid var(--line);border-radius:22px;padding:22px 24px;background:#fff}
.tile.credit{background:var(--yellow);border-color:var(--yellow);display:grid;gap:8px;justify-items:start}
.tile.credit.low{background:var(--pink);border-color:var(--pink)}
.tile .amt{font-family:var(--script);font-size:64px;font-weight:700;line-height:1}
.list{list-style:none;margin:0 0 12px;padding:0}
.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.list.compact li{padding:6px 0;font-size:14px}
.tag{background:var(--cyan);color:var(--ink);font-size:11px;font-weight:800;padding:2px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl td,.tbl th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.tbl .neg{color:var(--warn)} .tbl .pos{color:var(--ok)}
.tbl.pay th{width:38%;color:var(--muted);font-weight:600}
.tbl.pay .big{font-size:22px;font-weight:800;color:var(--magenta)}

@media (max-width:820px){
  .hero{grid-template-columns:1fr;min-height:0;gap:0}
  .hero-text{padding:28px 22px 8px}
  .hero-art{min-height:0;height:300px;overflow:hidden}
  .hero-art img{position:absolute;left:50%;top:0;bottom:auto;transform:translateX(-50%);height:auto;width:min(88%,360px)}
  .next{grid-template-columns:auto 1fr;margin:-16px 12px 0;padding:16px}
  .next .btn,.next form{grid-column:1/-1}
  .next form .btn{width:100%;text-align:center}
  .sched{grid-template-columns:1fr 1fr}
  .price,.about,.contact,.acct-grid,.form .row2{grid-template-columns:1fr}
  .contact .quote{text-align:left}
  h2,.h2{font-size:42px}
  .menu{width:100%;order:3;gap:14px;font-size:13px;overflow-x:auto;padding-bottom:2px}
  .next h3{font-size:17px}
}
@media (max-width:480px){.sched{grid-template-columns:1fr}.nav-actions .link{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}

/* dobitie – QR */
.topup-choice{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 18px}
.qr-box{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:#fff;border:3px solid var(--ink);border-radius:18px;padding:16px;box-shadow:6px 6px 0 var(--yellow)}
.qr-svg{width:220px;max-width:100%}
.qr-svg svg{width:100%;height:auto;display:block}
.qr-info b{font-size:16px}
.bank-details{margin-top:16px}
.bank-details summary{cursor:pointer;font-weight:700;color:var(--magenta)}
@media (max-width:560px){.qr-box{grid-template-columns:1fr;justify-items:center;text-align:center}}
