:root{
  --ink:#123978;
  --ink2:#0a2d66;
  --blue:#2f8ff2;
  --blue2:#54a5f6;
  --pale:#e8f4ff;
  --pale2:#f5faff;
  --line:#cfe6f8;
  --muted:#5f7fa6;
  --white:#fff;
  --green:#50c88e;
  --shadow:0 9px 24px rgba(62,118,173,.10);
}
*{box-sizing:border-box}
html{background:#e9f2fa}
body{margin:0;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased;background:#e9f2fa}
button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{text-decoration:none;color:inherit}svg{display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.page-wrap{width:min(100%,430px);min-height:100vh;margin:0 auto;background:linear-gradient(180deg,#fff 0,#f8fcff 68%,#eef8ff 100%);position:relative;overflow:hidden;box-shadow:0 0 34px rgba(35,77,119,.08)}
.app-main{padding:0 18px 34px}.site-header{height:64px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #e1edf7;position:relative;z-index:20}.brand{font-size:30px;font-weight:950;letter-spacing:-2px;line-height:1}.brand span{color:#153f83}.brand b{color:#56a4f6}.header-right{display:flex;align-items:center;gap:15px;min-width:0}.header-context{font-size:12px;color:#2b68bd;white-space:nowrap}.header-location{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:#174887;white-space:nowrap}.header-location svg{width:17px;height:17px;color:#2f8ff2}.menu-toggle{width:30px;height:30px;border:0;background:transparent;padding:3px;display:grid;align-content:center;gap:4px;cursor:pointer}.menu-toggle span{display:block;height:2px;background:#2f8ff2;border-radius:4px}.menu-toggle.static{pointer-events:none}.menu-backdrop{position:fixed;inset:0;background:rgba(7,31,66,.28);z-index:80}.mobile-menu{position:fixed;top:0;right:max(calc((100vw - 430px)/2),0px);width:min(86vw,330px);height:100vh;background:#fff;z-index:90;padding:18px;transform:translateX(110%);transition:transform .22s ease;box-shadow:-18px 0 44px rgba(13,45,94,.18)}.mobile-menu.open{transform:translateX(0)}.menu-head{height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6eff8;margin-bottom:10px}.menu-head strong{font-size:24px;color:#16417f}.menu-close{width:38px;height:38px;border:0;background:#edf6ff;color:#277fdc;border-radius:50%;font-size:27px;line-height:1;cursor:pointer}.mobile-menu>a:not(.menu-age){min-height:56px;display:flex;align-items:center;gap:13px;border-radius:15px;padding:0 13px;font-weight:800;color:#294f81}.mobile-menu>a svg{width:22px;height:22px;color:#2f8ff2}.mobile-menu>a.active{background:#eaf5ff;color:#123978}.menu-age{display:block;margin-top:10px;padding:14px;border-top:1px solid #e6eff8;color:#2f8ff2;font-weight:800;font-size:13px}
/* AGE */
.age-page,.age-page body{background:#e9f2fa}.age-wrap{background:linear-gradient(180deg,#fff 0,#f7fbff 65%,#edf7ff 100%)}.age-header{height:64px}.age-main{padding:24px 24px 30px}.age-copy{text-align:center;margin:0 0 18px}.age-copy h1{margin:0;color:#103773;font-size:31px;line-height:1.08;letter-spacing:-1.35px;font-weight:900}.age-copy p{margin:8px 0 0;color:#426da1;font-size:16px}.age-list{display:grid;gap:9px}.age-choice{width:100%;min-height:58px;border:0;border-radius:29px;background:linear-gradient(180deg,#eaf5ff,#e4f1fc);display:grid;grid-template-columns:44px 1fr;align-items:center;padding:7px 19px;text-align:left;box-shadow:inset 0 0 0 1px rgba(204,229,248,.45);cursor:pointer}.age-choice:active{transform:scale(.992)}.age-choice-icon{width:40px;height:40px;display:grid;place-items:center;color:#0876db}.age-choice-icon svg{width:30px;height:30px;stroke-width:2.2}.age-choice strong{font-size:17px;color:#123b78;font-weight:850;letter-spacing:-.25px}.age-note{margin-top:19px;border:1px solid #cbe4f8;border-radius:20px;background:rgba(240,248,255,.92);padding:14px 14px 14px 12px;display:flex;gap:13px;align-items:flex-start}.heart-circle{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#def0ff;color:#2e8ef1;font-size:19px}.age-note strong{display:block;color:#17477f;font-size:14px;margin:2px 0 5px}.age-note p{margin:0;color:#4773a8;font-size:13px;line-height:1.45}
/* HOME exact mock direction */
.home-main{padding-top:12px;background:linear-gradient(180deg,#fff 0,#f7fbff 100%)}.age-badge-row{height:48px;display:flex;align-items:center}.age-badge{display:inline-flex;align-items:center;gap:8px;background:#dff0ff;border-radius:22px;padding:7px 12px 7px 8px;color:#16498a;font-size:11px;line-height:1.15}.age-badge-person{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#84c3fb;color:#fff;font-size:0}.age-badge-person:before{content:"";width:10px;height:10px;border-radius:50%;background:#207bd5;box-shadow:0 8px 0 2px #207bd5}.candidate-stage{height:242px;position:relative;overflow:hidden;margin:0 -18px;padding:4px 18px 0;background:linear-gradient(180deg,#fff 0,#eef7ff 70%,#e6f3ff 100%)}.candidate-stage:after{content:"";position:absolute;right:-58px;bottom:-95px;width:250px;height:250px;border-radius:50%;background:rgba(80,160,240,.13)}.candidate-copy{position:relative;z-index:5;width:53%;padding-top:5px}.candidate-copy h1{font-size:34px;line-height:1.02;letter-spacing:-1.7px;margin:0 0 9px;color:#11377a;font-weight:950}.candidate-lead{font-size:18px;line-height:1.2;font-weight:700;color:#153c7b;margin:0 0 9px}.candidate-mini{font-size:11px;line-height:1.35;color:#3e6695;margin:0}.candidate-number{position:absolute;right:16px;top:-4px;z-index:8;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(145deg,#54a8fa,#1878de);box-shadow:0 9px 22px rgba(36,124,218,.23);line-height:1}.candidate-number span{font-size:10px;font-weight:800;margin-top:8px}.candidate-number strong{font-size:30px;line-height:.85;margin-bottom:8px}.candidate-photo{position:absolute;z-index:4;right:6px;bottom:-2px;width:51%;height:205px}.photo-head{position:absolute;top:26px;left:50%;transform:translateX(-50%);width:67px;height:67px;border-radius:50%;background:linear-gradient(180deg,#9ab8da,#769bc7)}.photo-neck{position:absolute;top:86px;left:50%;transform:translateX(-50%);width:35px;height:35px;background:#86a8ce}.photo-suit{position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:145px;height:126px;border-radius:58px 58px 8px 8px;background:linear-gradient(180deg,#92b0d1,#6f95bf)}.city-silhouette{position:absolute;left:40%;bottom:61px;width:135px;height:96px;opacity:.22;z-index:1}.tower,.roof{position:absolute;bottom:0;background:#5aa4eb}.tower:before{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:100%;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:24px solid #5aa4eb}.t1{left:16px;width:18px;height:56px}.t2{left:52px;width:13px;height:38px}.r1{left:0;width:70px;height:28px;clip-path:polygon(0 45%,18% 0,55% 25%,72% 0,100% 42%,100% 100%,0 100%)}.r2{left:66px;width:63px;height:22px;clip-path:polygon(0 40%,30% 0,65% 28%,100% 8%,100% 100%,0 100%)}.home-topic-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.home-topic-card{position:relative;min-height:116px;border-radius:15px;background:#fff;padding:14px 12px 12px;box-shadow:0 6px 18px rgba(46,100,151,.10);border:1px solid #e3eff9;display:flex;flex-direction:column}.topic-picto{width:38px;height:38px;display:grid;place-items:center;color:#2f8ff2;margin-bottom:7px}.topic-picto svg{width:31px;height:31px;stroke-width:2.3}.home-topic-card strong{font-size:16px;color:#123b78;line-height:1.1;margin-bottom:4px}.home-topic-card small{font-size:11px;color:#4776a7;line-height:1.28;padding-right:12px}.tiny-arrow{position:absolute;right:10px;bottom:9px;color:#1f82ea;font-size:24px;line-height:1}.wide-cta{height:48px;border-radius:24px;background:linear-gradient(180deg,#3f9cf5,#187be3);display:flex;align-items:center;justify-content:center;gap:18px;color:#fff;font-size:16px;font-weight:850;margin-top:13px;box-shadow:0 10px 20px rgba(29,125,224,.18)}.wide-cta span{font-size:25px;font-weight:400}.script-quote{text-align:center;color:#16478a;font-family:"Segoe Print","Bradley Hand",cursive;font-size:15px;font-style:italic;margin:13px 0 0;transform:rotate(-1deg)}.minor-banner{margin:8px 0 12px;padding:12px 13px;border-radius:14px;background:#edf7ff;color:#315b8a;font-size:12px;line-height:1.45}.minor-banner strong{display:block;color:#16477f;margin-bottom:4px}
/* QUESTIONS */
.qa-main{padding-top:12px}.qa-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:3px 0 7px}.qa-intro h1{font-size:31px;line-height:1.02;letter-spacing:-1px;margin:0 0 8px;color:#0c3578;font-weight:950}.qa-intro p{margin:0;font-size:14px;color:#35689d;line-height:1.35}.chat-bubble{width:55px;height:48px;border-radius:22px 22px 22px 7px;background:#4da1f4;display:flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;margin-top:2px}.chat-bubble i{width:5px;height:5px;border-radius:50%;background:#fff}.question-box{margin-top:9px;background:#fff;border-radius:15px;padding:11px;box-shadow:0 5px 18px rgba(47,99,149,.10);border:1px solid #edf3f8}.question-box label{display:block;font-size:14px;font-weight:850;color:#123b78;margin-bottom:6px}.question-box textarea{width:100%;height:88px;resize:none;border:1px solid #d6e8f7;border-radius:10px;background:#fbfdff;padding:10px 11px 20px;color:#173c71;font-size:14px;outline:none}.question-box textarea:focus{border-color:#8dc7f8;box-shadow:0 0 0 3px rgba(71,156,240,.08)}.question-meta{height:0;position:relative}.question-meta span{position:absolute;right:8px;bottom:7px;font-size:10px;color:#7895b5}.send-question{margin-top:7px;width:100%;height:39px;border:0;border-radius:10px;background:linear-gradient(180deg,#3f9df5,#1b7ee6);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.send-question svg{width:20px;height:20px}.form-status{font-size:12px;margin-top:6px}.form-status.success{color:#1f8a5a}.form-status.error{color:#ad4242}.answer-list{margin-top:12px}.answer-list h2{font-size:14px;color:#123b78;margin:0 0 8px}.answer-card{position:relative;display:grid;grid-template-columns:34px 1fr 14px;gap:9px;background:#fff;border:1px solid #e7f0f8;border-radius:14px;padding:10px 9px;margin-bottom:8px;box-shadow:0 3px 13px rgba(44,93,139,.07)}.answer-q{width:31px;height:31px;border-radius:50%;background:#e3f2ff;display:grid;place-items:center;color:#2187ec;font-weight:900}.answer-card h3{font-size:13px;line-height:1.24;margin:1px 0 2px;color:#143d79}.answer-card small{font-size:9px;color:#8aa0b9}.answer-card p{font-size:11px;line-height:1.32;color:#3c668f;margin:5px 0 0}.answer-more{color:#1e7fdf;font-size:18px;line-height:1}.empty-answer{padding:18px;border-radius:14px;background:#fff;border:1px solid #e2edf7;color:#6883a1;text-align:center;font-size:13px}
/* TOPICS */
.topics-main,.topic-detail-main{padding-top:20px}.simple-heading h1{margin:0 0 6px;font-size:31px;letter-spacing:-1px;color:#0d3576}.simple-heading p{margin:0;color:#5678a0;font-size:14px}.topics-page-grid{display:grid;gap:10px;margin-top:18px}.topic-row-card{position:relative;min-height:78px;border-radius:16px;background:#fff;border:1px solid #dcecf8;padding:11px 34px 11px 11px;display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;box-shadow:0 5px 16px rgba(45,94,143,.07)}.topic-picto.large{width:46px;height:46px;border-radius:13px;background:#e8f4ff}.topic-picto.large svg{width:27px;height:27px}.topic-row-card strong{display:block;font-size:16px;color:#143d79;margin-bottom:4px}.topic-row-card small{display:block;font-size:12px;color:#6683a4}.topic-row-card .tiny-arrow{top:50%;transform:translateY(-50%);bottom:auto}.back-link{display:inline-block;color:#2787e7;font-size:13px;font-weight:850;margin-bottom:12px}.topic-detail-card{background:#fff;border:1px solid #dcebf7;border-radius:18px;padding:18px;box-shadow:var(--shadow)}.topic-picto.xlarge{width:58px;height:58px;border-radius:16px;background:#e8f4ff}.topic-picto.xlarge svg{width:34px;height:34px}.topic-detail-card h1{font-size:31px;color:#0d3576;margin:12px 0 4px}.topic-subtitle{font-size:14px;color:#5d7fa4;margin:0}.topic-copy{margin-top:19px;padding-top:16px;border-top:1px solid #e7f0f8;color:#365d86;font-size:15px;line-height:1.7}
/* GAMES */
.games-main{padding-top:15px}.games-intro{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.games-intro h1{font-size:28px;line-height:1.04;letter-spacing:-.8px;color:#0d3576;margin:0 0 8px}.games-intro p{margin:0 0 15px;color:#3e6c9d;font-size:13px;line-height:1.4}.gamepad-large{width:48px;height:48px;color:#3d97ef}.gamepad-large svg{width:48px;height:48px}.game-row{position:relative;width:100%;min-height:82px;border:1px solid #d9eaf8;border-radius:15px;background:#fff;padding:11px 34px 11px 11px;display:grid;grid-template-columns:54px 1fr;gap:11px;align-items:center;text-align:left;color:inherit;margin-bottom:10px;box-shadow:0 4px 14px rgba(47,93,139,.07)}button.game-row{cursor:pointer}.game-circle{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#429cf2;color:#fff;font-size:20px;font-weight:900}.game-circle.trophy{background:#ffba2f}.game-row strong{display:block;font-size:16px;color:#143d79;margin-bottom:4px}.game-row small{display:block;color:#5b7da1;font-size:11px;line-height:1.3}.game-row .tiny-arrow{top:50%;transform:translateY(-50%);bottom:auto}.game-row.disabled{opacity:.76}.quiz-box{margin-top:12px;background:#fff;border:1px solid #dbeaf7;border-radius:16px;padding:15px;box-shadow:var(--shadow)}.quiz-progress{font-size:11px;font-weight:900;color:#2f8ff2;text-transform:uppercase}.quiz-box h2{font-size:22px;color:#123b78}.quiz-options{display:grid;gap:8px}.quiz-options button{min-height:44px;border:1px solid #dceaf7;background:#f8fcff;border-radius:11px;text-align:left;padding:0 12px;color:#153e76;font-weight:700}.quiz-result{text-align:center}.quiz-result h2{font-size:40px;margin:8px 0}
/* senior mode visibly larger */
body.senior-mode .header-location,body.senior-mode .header-context{font-size:15px}body.senior-mode .age-badge{font-size:14px;padding:9px 14px 9px 9px}body.senior-mode .candidate-copy h1{font-size:39px}body.senior-mode .candidate-lead{font-size:21px}body.senior-mode .candidate-mini{font-size:13px}body.senior-mode .home-topic-card{min-height:130px}body.senior-mode .home-topic-card strong{font-size:19px}body.senior-mode .home-topic-card small{font-size:13px}body.senior-mode .wide-cta{height:56px;font-size:19px}body.senior-mode .qa-intro h1,body.senior-mode .simple-heading h1,body.senior-mode .topic-detail-card h1{font-size:36px}body.senior-mode .qa-intro p,body.senior-mode .simple-heading p{font-size:17px}body.senior-mode .question-box label{font-size:17px}body.senior-mode .question-box textarea{height:110px;font-size:17px}body.senior-mode .send-question{height:49px;font-size:17px}body.senior-mode .answer-card h3{font-size:16px}body.senior-mode .answer-card p{font-size:14px}body.senior-mode .answer-card small{font-size:11px}body.senior-mode .topic-row-card{min-height:94px}body.senior-mode .topic-row-card strong{font-size:19px}body.senior-mode .topic-row-card small{font-size:15px}body.senior-mode .topic-copy{font-size:18px;line-height:1.8}
@media(min-width:431px){body{padding:22px 0}.page-wrap{border-radius:28px;min-height:calc(100vh - 44px)}}
@media(max-width:360px){.age-copy h1{font-size:28px}.candidate-copy h1{font-size:30px}.candidate-copy{width:55%}.candidate-number{width:68px;height:68px}.home-topic-card strong{font-size:15px}.qa-intro h1{font-size:28px}.header-context{font-size:11px}}


/* ===== v0.6 pixel pass ===== */
.solid-icon{fill:currentColor!important;stroke:none!important}
html,body{background:#f5faff}
.page-wrap{background:#fff;box-shadow:none}
.age-wrap{background:linear-gradient(180deg,#fff 0%,#fff 63%,#f7fbff 100%)}
.age-main{position:relative;background:radial-gradient(120% 38% at 50% 103%,#edf7ff 0,#f8fcff 54%,transparent 55%);min-height:calc(100vh - 64px)}
.age-choice{background:#e8f4ff;box-shadow:none;border:1px solid #dceefe}
.age-choice-icon{color:#087bdd}.age-choice-icon svg{width:29px;height:29px}
.age-note{background:#f2f9ff;border-color:#d8ecfb}
.home-main,.qa-main,.games-main,.topics-main,.topic-detail-main{background:linear-gradient(180deg,#fff 0%,#fff 70%,#f8fcff 100%)}
.candidate-stage{height:250px;overflow:visible;background:linear-gradient(180deg,#fff 0,#eef7ff 70%,#e6f3ff 100%)}
.candidate-stage.has-custom-hero{background-image:var(--candidate-bg);background-size:cover;background-position:var(--candidate-bg-x) var(--candidate-bg-y);background-repeat:no-repeat}
.candidate-stage.has-custom-hero:after{display:none}
.candidate-stage.has-custom-hero .candidate-photo,.candidate-stage.has-custom-hero .city-silhouette{display:none}
.candidate-number{right:10px;top:6px;width:74px;height:74px;overflow:visible}
.candidate-copy{padding-top:12px}.candidate-copy h1{font-size:33px}.candidate-lead{font-size:18px;max-width:190px}.candidate-mini{font-size:11px;max-width:190px}
.topic-picto svg{fill:currentColor;stroke:none}.topic-picto{color:#3194f2}
.home-topic-card{border-color:#edf3f9;box-shadow:0 5px 16px rgba(47,91,135,.08)}
.header-location,.header-context{color:#164b92}.site-header{border-bottom-color:#edf3f8}
/* desktop preview should not look like a floating rounded card */
@media(min-width:431px){body{padding:0}.page-wrap{border-radius:0;min-height:100vh;box-shadow:0 0 30px rgba(25,67,108,.05)}}
@media(max-width:360px){.candidate-number{right:7px;top:7px;width:68px;height:68px}.candidate-number strong{font-size:28px}}

.game-symbol{width:27px!important;height:27px!important;fill:#fff!important;stroke:none}.game-circle.trophy .game-symbol{width:26px!important;height:26px!important}

/* ===== v0.8 celostrankove pozadie ===== */
.page-wrap.has-page-background{
  background-color:#f7fbff;
  background-image:var(--page-bg);
  background-size:100% auto;
  background-position:top center;
  background-repeat:no-repeat;
}
.has-page-background.age-wrap{
  background-color:#f7fbff;
  background-image:var(--page-bg);
  background-size:100% auto;
  background-position:top center;
  background-repeat:no-repeat;
}
.has-page-background .site-header{
  background:rgba(255,255,255,.91);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.has-page-background .age-main,
.has-page-background .home-main,
.has-page-background .qa-main,
.has-page-background .games-main,
.has-page-background .topics-main,
.has-page-background .topic-detail-main{
  background:transparent;
}
.has-page-background .candidate-stage:not(.has-custom-hero){
  background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(239,248,255,.76) 72%,rgba(231,244,255,.72) 100%);
}
.has-page-background .question-box,
.has-page-background .answer-card,
.has-page-background .empty-answer,
.has-page-background .game-row,
.has-page-background .topic-row-card,
.has-page-background .topic-detail-card,
.has-page-background .home-topic-card,
.has-page-background .age-choice,
.has-page-background .age-note{
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}


/* ===== v0.9 media rendering fix =====
   Uploady sa uz nevykresluju cez CSS custom-property url(), ale ako realne IMG vrstvy.
   Tým odstranujeme problemy s relativnymi cestami a hned vidime 404 v browseri. */
.page-wrap{position:relative;isolation:isolate}
.page-background-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top center;
  z-index:0;
  pointer-events:none;
  user-select:none;
}
.page-wrap.has-page-background{background:#f7fbff!important;background-image:none!important}
.has-page-background.age-wrap{background:#f7fbff!important;background-image:none!important}
.page-wrap>.site-header,.page-wrap>.app-main,.page-wrap>.age-main{position:relative;z-index:1}
.has-page-background .site-header{background:rgba(255,255,255,.90)}
.candidate-stage.has-custom-hero{background:none!important;overflow:hidden}
.candidate-hero-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  pointer-events:none;
  user-select:none;
}
.candidate-stage.has-custom-hero .candidate-copy,
.candidate-stage.has-custom-hero .candidate-number{position:relative;z-index:5}
.candidate-stage.has-custom-hero .candidate-number{position:absolute;z-index:8}

/* ===== v0.11 lighter photo treatment + clean election badge ===== */
/* Keep the real hero artwork visible. Only a subtle local wash protects the text. */
.candidate-stage.has-custom-hero{
  overflow:visible;
  isolation:isolate;
}
.candidate-stage.has-custom-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.66) 0%,
      rgba(255,255,255,.52) 27%,
      rgba(255,255,255,.29) 43%,
      rgba(255,255,255,.08) 57%,
      rgba(255,255,255,0) 68%);
}
.candidate-stage.has-custom-hero .candidate-copy{
  position:relative;
  z-index:5;
}
.candidate-stage.has-custom-hero .candidate-copy h1{
  color:#082f6a;
  text-shadow:0 1px 0 rgba(255,255,255,.92),0 1px 8px rgba(255,255,255,.56);
}
.candidate-stage.has-custom-hero .candidate-lead{
  color:#0b3474;
  font-weight:900;
  text-shadow:0 1px 0 rgba(255,255,255,.94),0 1px 7px rgba(255,255,255,.55);
}
.candidate-stage.has-custom-hero .candidate-mini{
  color:#163f73;
  font-weight:700;
  line-height:1.42;
  text-shadow:0 1px 0 rgba(255,255,255,.96),0 1px 6px rgba(255,255,255,.50);
}
/* Only the number itself, bigger and safely above the candidate's head. */
.candidate-stage.has-custom-hero .candidate-number{
  top:-40px;
  right:12px;
  width:78px;
  height:78px;
  z-index:12;
  display:grid;
  place-items:center;
  box-shadow:0 9px 22px rgba(24,105,195,.25),0 0 0 3px rgba(255,255,255,.30);
}
.candidate-stage.has-custom-hero .candidate-number span{display:none}
.candidate-stage.has-custom-hero .candidate-number strong{
  font-size:42px;
  line-height:1;
  margin:0;
  font-weight:950;
}

/* Image-backed section headings: enough contrast to read, without hiding the city artwork. */
.has-page-background .qa-intro,
.has-page-background .games-intro,
.has-page-background .simple-heading{
  position:relative;
  border-radius:18px;
  background:linear-gradient(90deg,rgba(255,255,255,.52) 0%,rgba(255,255,255,.30) 58%,rgba(255,255,255,.04) 100%);
  padding:11px 10px 12px;
  margin-left:-10px;
  margin-right:-4px;
}
.has-page-background .qa-intro h1,
.has-page-background .games-intro h1,
.has-page-background .simple-heading h1{
  color:#082f6a;
  text-shadow:0 1px 0 rgba(255,255,255,.92),0 1px 8px rgba(255,255,255,.55);
}
.has-page-background .qa-intro p,
.has-page-background .games-intro p,
.has-page-background .simple-heading p{
  color:#183f72;
  font-weight:650;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 1px 6px rgba(255,255,255,.48);
}
.has-page-background .answer-list>h2{
  display:inline-block;
  color:#082f6a;
  background:rgba(255,255,255,.46);
  border-radius:9px;
  padding:4px 8px;
  margin-left:-4px;
  text-shadow:0 1px 0 rgba(255,255,255,.95);
}

@media(max-width:430px){
  .candidate-stage.has-custom-hero .candidate-number{
    top:-39px;
    right:10px;
    width:76px;
    height:76px;
  }
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:41px}
  .candidate-stage.has-custom-hero .candidate-copy{width:54%;}
}
@media(max-width:360px){
  .candidate-stage.has-custom-hero .candidate-number{
    top:-35px;
    right:8px;
    width:70px;
    height:70px;
  }
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:38px}
  .candidate-stage.has-custom-hero .candidate-copy{width:56%}
}


/* ===== v0.12 compact age picker ===== */
/* Intro: two choices per row on mobile, less dead space, stronger closing callout. */
.age-main{
  padding:22px 18px 24px;
}
.age-copy{
  margin:0 0 16px;
}
.age-copy h1{
  font-size:30px;
  line-height:1.08;
  letter-spacing:-1.25px;
}
.age-copy p{
  margin-top:7px;
  font-size:15px;
}
.age-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.age-choice{
  min-width:0;
  min-height:78px;
  border-radius:22px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 11px;
  background:rgba(232,244,255,.91);
  border:1px solid rgba(200,225,247,.9);
  box-shadow:0 5px 14px rgba(39,104,165,.045);
}
.age-choice-icon{
  flex:0 0 37px;
  width:37px;
  height:37px;
}
.age-choice-icon svg{
  width:27px;
  height:27px;
}
.age-choice strong{
  min-width:0;
  font-size:14.5px;
  line-height:1.18;
  letter-spacing:-.15px;
}
.age-note{
  position:relative;
  margin-top:16px;
  padding:17px 15px 17px 14px;
  border-radius:21px;
  border:1px solid rgba(104,173,235,.50);
  background:linear-gradient(135deg,rgba(255,255,255,.94) 0%,rgba(222,240,255,.96) 100%);
  box-shadow:0 10px 24px rgba(30,106,181,.11);
  gap:13px;
  align-items:center;
  overflow:hidden;
}
.age-note::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(180deg,#5aaff9,#1b7fe5);
}
.heart-circle{
  width:46px;
  height:46px;
  background:linear-gradient(145deg,#55aafb,#2584e8);
  color:#fff;
  box-shadow:0 7px 15px rgba(35,130,224,.22);
  font-size:20px;
}
.age-note strong{
  color:#0b3977;
  font-size:15px;
  line-height:1.2;
  margin:0 0 5px;
  font-weight:900;
}
.age-note p{
  color:#285a91;
  font-size:13.5px;
  line-height:1.42;
  font-weight:600;
}
.has-page-background .age-choice{
  background:rgba(232,244,255,.90);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.has-page-background .age-note{
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(219,239,255,.94));
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
@media(max-width:350px){
  .age-main{padding-left:14px;padding-right:14px}
  .age-list{gap:8px}
  .age-choice{min-height:75px;padding:9px 9px;gap:7px;border-radius:19px}
  .age-choice-icon{flex-basis:33px;width:33px;height:33px}
  .age-choice-icon svg{width:25px;height:25px}
  .age-choice strong{font-size:13.5px}
  .age-note{padding:15px 12px 15px 11px}
  .heart-circle{width:42px;height:42px}
}


/* ===== v0.14 intro headline treatment ===== */
/* Admin text stays editable as one sentence; trailing IN is rendered as a stronger standalone signature line. */
.age-copy h1{
  display:block;
  margin:0;
}
.age-title-main{
  display:block;
  color:#0d3978;
  font-size:29px;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-1.2px;
}
.age-title-accent{
  display:block;
  width:max-content;
  max-width:100%;
  margin:10px auto 0;
  padding:0 10px 2px;
  color:#1687e9;
  font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;
  font-size:54px;
  line-height:.94;
  font-weight:900;
  letter-spacing:-1.8px;
  -webkit-text-stroke:1.15px #1687e9;
  paint-order:stroke fill;
  text-shadow:0 4px 13px rgba(29,126,224,.16);
  transform:rotate(-2deg);
  transform-origin:center;
}
.age-copy p{
  margin-top:30px;
  color:#174f88;
  font-size:16px;
  line-height:1.3;
  font-weight:700;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}
@media(max-width:350px){
  .age-title-main{font-size:26px}
  .age-title-accent{font-size:47px;margin-top:9px;padding-left:8px;padding-right:8px}
  .age-copy p{margin-top:26px;font-size:15px;font-weight:700}
}

/* ===== v0.16 age subtitle readability ===== */
.age-copy p{
  margin-top:34px;
  color:#0b3977;
  font-size:17px;
  line-height:1.28;
  font-weight:900;
  letter-spacing:-.15px;
  text-shadow:0 1px 0 rgba(255,255,255,.72),0 0 8px rgba(255,255,255,.35);
}
@media(max-width:350px){
  .age-copy p{margin-top:30px;font-size:16px;font-weight:900}
}


/* ===== v0.17 topic gallery + question CTA ===== */
.topic-gallery-section{margin-top:26px}.topic-gallery-section h2{margin:0 0 12px;color:#0c3a78;font-size:20px;line-height:1.2}.topic-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.topic-gallery-item{position:relative;display:block;overflow:hidden;border-radius:16px;background:#eaf5ff;border:1px solid rgba(151,198,239,.55);aspect-ratio:1/1;text-decoration:none;box-shadow:0 8px 18px rgba(20,86,151,.08)}.topic-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.topic-gallery-item span{position:absolute;left:0;right:0;bottom:0;padding:24px 9px 8px;background:linear-gradient(transparent,rgba(5,34,72,.78));color:#fff;font-size:12px;font-weight:800;line-height:1.25}.topic-gallery-item:active img{transform:scale(.985)}.topic-question-cta{margin-top:24px;padding:16px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(218,239,255,.95));border:1px solid rgba(112,177,235,.55);display:grid;gap:13px;box-shadow:0 9px 22px rgba(25,94,159,.09)}.topic-question-cta strong,.topic-question-cta span{display:block}.topic-question-cta strong{color:#0b3977;font-size:17px}.topic-question-cta span{margin-top:4px;color:#55759a;font-size:13px}.topic-question-cta a{display:flex;justify-content:center;align-items:center;gap:9px;min-height:46px;border-radius:14px;background:linear-gradient(135deg,#4aa9fa,#1682e8);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 8px 17px rgba(25,126,224,.18)}.question-topic-context{margin:-4px 0 12px;padding:11px 13px;border-radius:14px;background:rgba(232,244,255,.92);border:1px solid rgba(140,195,238,.55);display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center}.question-topic-context span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#5f7ea2;font-weight:900}.question-topic-context strong{color:#0d3e7d;font-size:14px}.question-topic-context a{grid-column:1/-1;margin-top:4px;color:#1682e8;font-size:12px;font-weight:800;text-decoration:none}.answer-topic{display:inline-flex;margin:0 0 5px;padding:4px 7px;border-radius:999px;background:#e8f4ff;color:#2666a5;font-size:10px;font-weight:900}


/* ===== v0.18 responsive desktop layout ===== */
.header-inner{width:100%;display:flex;align-items:center;justify-content:space-between;min-width:0}
.desktop-nav,.desktop-age-link{display:none}

@media (min-width:768px){
  html,body{background:#edf5fb}
  body{min-width:768px}
  .page-wrap{
    width:min(calc(100% - 40px),1260px);
    min-height:calc(100vh - 40px);
    margin:20px auto;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 60px rgba(24,66,108,.12);
  }
  .page-background-media{object-position:top center}

  .site-header{height:78px;padding:0 32px;background:rgba(255,255,255,.95)}
  .site-header .header-inner{max-width:1180px;margin:0 auto;gap:24px}
  .brand{font-size:34px;flex:0 0 auto}
  .desktop-nav{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;min-width:0}
  .desktop-nav a{position:relative;display:flex;align-items:center;min-height:42px;padding:0 15px;border-radius:14px;color:#436487;font-size:14px;font-weight:800;white-space:nowrap;transition:background .18s ease,color .18s ease}
  .desktop-nav a.active{background:#e8f4ff;color:#0d4385}
  .header-right{gap:13px;flex:0 0 auto}
  .header-location,.header-context{font-size:13px}
  .desktop-age-link{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid #d7e9f7;border-radius:12px;background:rgba(255,255,255,.78);color:#2c70b7;font-size:12px;font-weight:850;white-space:nowrap}
  .menu-toggle{display:none}
  .mobile-menu,.menu-backdrop{display:none!important}

  .app-main{max-width:1180px;margin:0 auto;padding-left:34px;padding-right:34px;padding-bottom:54px}

  /* Vstup - desktop je samostatna kompozicia, mobil zostava bez zmeny. */
  .age-wrap{min-height:calc(100vh - 40px)}
  .age-header{height:78px;padding-left:34px;padding-right:34px}
  .age-main{
    max-width:1120px;
    min-height:calc(100vh - 118px);
    margin:0 auto;
    padding:58px 44px 54px;
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(470px,1.12fr);
    grid-template-areas:"copy choices" "note choices";
    grid-template-rows:auto 1fr;
    column-gap:70px;
    row-gap:30px;
    align-content:center;
    background:transparent;
  }
  .age-copy{grid-area:copy;text-align:left;margin:0;align-self:end}
  .age-copy h1{text-align:left}
  .age-title-main{font-size:47px;line-height:1.03;letter-spacing:-2px;max-width:480px}
  .age-title-accent{font-size:76px;margin:18px 0 0;padding:0 8px 4px 2px;transform:rotate(-2deg)}
  .age-copy p{margin-top:46px;font-size:21px;line-height:1.3;max-width:410px}
  .age-list{grid-area:choices;align-self:center;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .age-choice{min-height:104px;border-radius:26px;padding:15px 18px;gap:13px;background:rgba(237,247,255,.92);box-shadow:0 10px 28px rgba(27,91,153,.07)}
  .age-choice-icon{flex-basis:48px;width:48px;height:48px}
  .age-choice-icon svg{width:35px;height:35px}
  .age-choice strong{font-size:18px}
  .age-note{grid-area:note;align-self:start;margin:0;max-width:460px;padding:20px 20px 20px 18px;border-radius:24px}
  .heart-circle{width:54px;height:54px;font-size:23px}
  .age-note strong{font-size:18px}
  .age-note p{font-size:15px;line-height:1.5}

  /* Kandidat / home */
  .home-main{padding-top:22px}
  .age-badge-row{height:62px}
  .age-badge{font-size:13px;padding:9px 15px 9px 9px;border-radius:26px}
  .age-badge-person{width:34px;height:34px}
  .candidate-stage{height:440px;margin:0;border-radius:28px;padding:0;overflow:hidden}
  .candidate-stage.has-custom-hero{overflow:hidden}
  .candidate-stage.has-custom-hero::before{background:linear-gradient(90deg,rgba(255,255,255,.69) 0%,rgba(255,255,255,.54) 27%,rgba(255,255,255,.25) 45%,rgba(255,255,255,.04) 63%,rgba(255,255,255,0) 75%)}
  .candidate-copy{width:48%;padding:82px 0 0 58px}
  .candidate-copy h1{font-size:56px;line-height:.98;letter-spacing:-2.7px;margin-bottom:18px}
  .candidate-lead{max-width:470px;font-size:28px;line-height:1.18;margin-bottom:15px}
  .candidate-mini{max-width:450px;font-size:15px;line-height:1.52}
  .candidate-stage.has-custom-hero .candidate-number{top:28px;right:38px;width:108px;height:108px}
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:60px}
  .candidate-number{top:28px;right:38px;width:108px;height:108px}
  .candidate-number strong{font-size:52px;margin:0}
  .candidate-photo{right:70px;width:42%;height:375px}
  .photo-head{width:106px;height:106px;top:35px}.photo-neck{top:130px;width:55px;height:55px}.photo-suit{width:245px;height:230px;border-radius:92px 92px 10px 10px}
  .city-silhouette{left:52%;bottom:86px;transform:scale(1.5);transform-origin:left bottom}
  .home-topic-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}
  .home-topic-card{min-height:168px;border-radius:20px;padding:21px 19px 18px}
  .topic-picto{width:48px;height:48px;margin-bottom:13px}.topic-picto svg{width:38px;height:38px}
  .home-topic-card strong{font-size:19px;margin-bottom:7px}.home-topic-card small{font-size:13px;line-height:1.4;padding-right:18px}
  .tiny-arrow{right:15px;bottom:13px}
  .wide-cta{max-width:420px;height:56px;margin:22px auto 0;border-radius:28px;font-size:17px}
  .script-quote{font-size:18px;margin-top:17px}
  .minor-banner{max-width:720px;margin:14px auto 18px;padding:16px 18px;font-size:14px}

  /* Otazky - formular vlavo, odpovede vpravo. */
  .qa-main{
    padding-top:34px;
    display:grid;
    grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr);
    grid-template-areas:"intro answers" "context answers" "form answers";
    gap:14px 34px;
    align-items:start;
  }
  .qa-intro{grid-area:intro;padding:8px 0 16px;gap:18px}
  .qa-intro h1{font-size:46px;line-height:1.02;letter-spacing:-1.8px;margin-bottom:13px}
  .qa-intro p{font-size:16px;line-height:1.5;max-width:460px}
  .chat-bubble{width:68px;height:58px;border-radius:26px 26px 26px 8px}
  .question-topic-context{grid-area:context;margin:0 0 2px}
  .question-box{grid-area:form;margin:0;border-radius:20px;padding:18px}
  .question-box label{font-size:16px;margin-bottom:9px}
  .question-box textarea{height:145px;border-radius:14px;padding:14px 15px 24px;font-size:16px}
  .send-question{height:48px;border-radius:13px;font-size:15px;margin-top:10px}
  .answer-list{grid-area:answers;margin:0;padding-top:8px}
  .answer-list h2{font-size:18px;margin-bottom:12px}
  .answer-card{grid-template-columns:44px 1fr 18px;gap:12px;border-radius:18px;padding:16px 15px;margin-bottom:12px}
  .answer-q{width:40px;height:40px;font-size:17px}
  .answer-card h3{font-size:16px;line-height:1.35;margin-bottom:3px}
  .answer-card small{font-size:11px}.answer-card p{font-size:14px;line-height:1.5;margin-top:8px}
  .answer-topic{font-size:11px;padding:5px 8px}
  .empty-answer{font-size:15px;padding:28px}

  /* Temy */
  .topics-main,.topic-detail-main{padding-top:38px}
  .simple-heading h1{font-size:46px;letter-spacing:-1.8px}.simple-heading p{font-size:16px;max-width:650px}
  .topics-page-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
  .topic-row-card{min-height:170px;border-radius:20px;padding:22px 44px 20px 20px;display:block}
  .topic-picto.large{width:58px;height:58px;border-radius:16px;margin-bottom:14px}.topic-picto.large svg{width:34px;height:34px}
  .topic-row-card strong{font-size:20px;margin-bottom:7px}.topic-row-card small{font-size:14px;line-height:1.45}
  .topic-row-card .tiny-arrow{top:auto;transform:none;bottom:16px;right:18px}
  .back-link{font-size:14px;margin-bottom:16px}
  .topic-detail-card{border-radius:24px;padding:36px 40px}
  .topic-picto.xlarge{width:70px;height:70px;border-radius:19px}.topic-picto.xlarge svg{width:41px;height:41px}
  .topic-detail-card h1{font-size:45px;margin:18px 0 7px}.topic-subtitle{font-size:17px}
  .topic-copy{font-size:17px;line-height:1.8;margin-top:25px;padding-top:22px;max-width:920px}
  .topic-gallery-section{margin-top:34px}.topic-gallery-section h2{font-size:25px;margin-bottom:16px}
  .topic-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
  .topic-gallery-item{border-radius:20px}.topic-gallery-item span{font-size:14px;padding:36px 13px 11px}
  .topic-question-cta{margin-top:32px;padding:22px 24px;border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:24px}
  .topic-question-cta strong{font-size:20px}.topic-question-cta span{font-size:14px}
  .topic-question-cta a{min-width:230px;min-height:50px;padding:0 22px}

  /* Hry */
  .games-main{padding-top:38px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-items:start}
  .games-intro{grid-column:1/-1;padding-bottom:10px}.games-intro h1{font-size:44px;letter-spacing:-1.5px}.games-intro p{font-size:16px;max-width:660px}.gamepad-large,.gamepad-large svg{width:64px;height:64px}
  .game-row{min-height:142px;margin:0;border-radius:20px;padding:20px 48px 20px 20px;grid-template-columns:70px 1fr;gap:17px}
  .game-circle{width:68px;height:68px}.game-row strong{font-size:20px}.game-row small{font-size:14px;line-height:1.45}
  .quiz-box{grid-column:1/-1;margin-top:4px;border-radius:20px;padding:24px}.quiz-box h2{font-size:27px}.quiz-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quiz-options button{min-height:52px;font-size:15px}

  /* 61+ ostava vacsie aj na PC, ale bez rozbitia layoutu. */
  body.senior-mode .candidate-copy h1{font-size:62px}
  body.senior-mode .candidate-lead{font-size:31px}
  body.senior-mode .candidate-mini{font-size:17px}
  body.senior-mode .home-topic-card strong{font-size:21px}
  body.senior-mode .home-topic-card small{font-size:15px}
  body.senior-mode .qa-intro h1,body.senior-mode .simple-heading h1,body.senior-mode .topic-detail-card h1{font-size:50px}
  body.senior-mode .qa-intro p,body.senior-mode .simple-heading p{font-size:19px}
  body.senior-mode .answer-card h3{font-size:18px}body.senior-mode .answer-card p{font-size:16px}
  body.senior-mode .topic-row-card strong{font-size:22px}body.senior-mode .topic-row-card small{font-size:16px}
  body.senior-mode .topic-copy{font-size:19px}
}

@media (min-width:1100px){
  .topics-page-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .topic-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media (hover:hover) and (pointer:fine){
  .desktop-nav a:hover,.desktop-age-link:hover{background:#eef7ff;color:#0d4385}
  .age-choice,.home-topic-card,.topic-row-card,.game-row,.wide-cta,.topic-question-cta a{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .age-choice:hover,.home-topic-card:hover,.topic-row-card:hover,.game-row:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(25,87,146,.12);border-color:#cbe4f7}
  .wide-cta:hover,.topic-question-cta a:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(27,118,208,.24)}
  .topic-gallery-item:hover img{transform:scale(1.035)}
}

/* ===== v0.19 detske hry ===== */
.games-hub-main{display:block}
.games-eyebrow{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:rgba(220,239,255,.92);color:#1f73c9;font-size:11px;font-weight:900;letter-spacing:.02em;margin-bottom:8px}
.games-kids-note{margin:2px 0 13px;padding:11px 13px;border:1px solid rgba(174,214,246,.85);border-radius:14px;background:rgba(248,252,255,.91);color:#386a9c;font-size:12px;line-height:1.45}
.kids-games-grid{display:grid;gap:10px}
.game-launch-card{margin:0}
.game-circle.memory{background:linear-gradient(145deg,#48a5f5,#1d7bd6)}
.game-circle.puzzle{background:linear-gradient(145deg,#776ee8,#5b4fc5)}
.game-circle.brain{background:linear-gradient(145deg,#43a8ec,#2682db)}
.game-circle.city{background:linear-gradient(145deg,#5fc79a,#2e9d72)}
.contest-preview{margin-top:13px;min-height:76px;border:1px dashed #c9dff0;border-radius:16px;background:rgba(255,255,255,.77);display:grid;grid-template-columns:52px 1fr;gap:11px;align-items:center;padding:11px 13px;color:#55779c}
.contest-preview .game-circle{width:50px;height:50px}
.contest-preview strong{display:block;color:#244c7c;font-size:14px;margin-bottom:4px}
.contest-preview small{display:block;font-size:11px;line-height:1.4}

.game-play-main{padding-top:14px;padding-bottom:38px}
.game-back-link{margin:0 0 13px}
.game-play-head{display:grid;grid-template-columns:58px 1fr;gap:13px;align-items:center;margin-bottom:13px;padding:13px;border:1px solid rgba(203,226,245,.9);border-radius:18px;background:rgba(255,255,255,.86);backdrop-filter:blur(7px)}
.game-play-head .game-circle{width:58px;height:58px}
.game-play-head h1{margin:0 0 4px;color:#103978;font-size:23px;line-height:1.08;letter-spacing:-.6px}
.game-play-head p{margin:0;color:#52779f;font-size:12px;line-height:1.4}
.game-stage{min-height:330px;border:1px solid rgba(201,225,245,.92);border-radius:20px;background:rgba(255,255,255,.91);box-shadow:0 9px 25px rgba(42,91,137,.08);padding:14px;overflow:hidden}
.game-statbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:#456e9b;font-size:12px;font-weight:800}
.game-statbar strong{color:#0d4a8f;font-size:15px}
.game-help{text-align:center;color:#6280a0;font-size:11px;line-height:1.4;margin:12px 0 0}
.primary-game-action{width:100%;min-height:48px;border:0;border-radius:14px;background:linear-gradient(135deg,#429ff4,#227edb);color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(37,126,216,.2);cursor:pointer;padding:0 16px}
.primary-game-action:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.secondary-action{min-height:42px;border:1px solid #c9e1f5;border-radius:12px;background:#f1f8ff;color:#1c68b4;font-weight:850;padding:0 15px;cursor:pointer}
.game-private-note{margin:9px 0 14px!important;color:#6a849f!important;font-size:11px!important}

/* Pexeso */
.memory-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;perspective:900px}
.memory-card{aspect-ratio:1/1;border:0;background:transparent;padding:0;cursor:pointer;perspective:700px}
.memory-card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .32s ease}
.memory-card.flipped .memory-card-inner{transform:rotateY(180deg)}
.memory-front,.memory-back{position:absolute;inset:0;border-radius:15px;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 5px 13px rgba(40,95,148,.11)}
.memory-front{background:linear-gradient(145deg,#51a9f6,#2a82dc);color:#fff;font-size:27px;font-weight:950;border:1px solid rgba(255,255,255,.55)}
.memory-back{transform:rotateY(180deg);grid-template-rows:1fr auto;background:#f5fbff;border:1px solid #cfe5f7;color:#2b88dd;padding:8px 6px 7px}
.memory-back svg{width:38px;height:38px;fill:currentColor;stroke:none;align-self:end}
.memory-back small{font-size:9px;font-weight:900;color:#365f8b;line-height:1;margin-top:4px}

/* Puzzle */
.puzzle-board{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-width:360px;margin:0 auto;aspect-ratio:1/1;background:#dcebf7;border:5px solid #dcebf7;border-radius:18px;overflow:hidden}
.puzzle-tile,.puzzle-blank{border:0;border-radius:8px;min-width:0;min-height:0}
.puzzle-tile{cursor:pointer;background-image:var(--puzzle-image);background-size:300% 300%;background-position:var(--px) var(--py);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);transition:transform .12s ease}
.puzzle-tile:active{transform:scale(.96)}
.puzzle-blank{background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px rgba(126,177,222,.15)}
.puzzle-complete-image{width:min(100%,360px);aspect-ratio:1/1;margin:0 auto;border-radius:18px;background-position:center;background-size:cover;box-shadow:0 10px 25px rgba(39,96,150,.14)}

/* Kviz */
.quiz-progress-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin-bottom:14px;color:#2a7dcc;font-size:11px;font-weight:950}
.quiz-progress-row>div{height:6px;border-radius:99px;background:#e1eef9;overflow:hidden}.quiz-progress-row i{display:block;height:100%;border-radius:inherit;background:#409cf0}
.kids-quiz-card h2{font-size:22px;line-height:1.18;letter-spacing:-.4px;color:#123c78;margin:5px 0 15px}
.kids-quiz-card .quiz-options{display:grid;gap:8px}
.kids-quiz-card .quiz-options button{min-height:50px;border:1px solid #d7e8f7;border-radius:13px;background:#f8fcff;color:#173f75;text-align:left;padding:10px 13px;font-weight:800;cursor:pointer}
.kids-quiz-card .quiz-options button.correct{background:#e5f8ee;border-color:#92d9b3;color:#176b43}
.kids-quiz-card .quiz-options button.wrong{background:#fff0f0;border-color:#f0b2b2;color:#a34141}
.quiz-feedback{margin-top:12px;padding:13px;border-radius:14px;background:#eef7ff;border:1px solid #cfe4f6;display:grid;gap:6px;color:#436d99;font-size:12px;line-height:1.45}
.quiz-feedback strong{font-size:16px;color:#16477e}.quiz-feedback .secondary-action{margin-top:3px}

/* Postav mesto */
.city-budget{position:relative;margin-bottom:12px;padding:12px 13px;border-radius:15px;background:linear-gradient(135deg,#eef8ff,#f8fcff);border:1px solid #d3e7f7;display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:center;color:#4b739d;font-size:12px;font-weight:800}
.city-budget strong{font-size:24px;color:#1776d2}.budget-dots{grid-column:1/-1;display:flex;gap:4px;flex-wrap:wrap}.budget-dots i{width:12px;height:12px;border-radius:50%;background:#d5e8f7}.budget-dots i.used{background:#3f9bf0}
.city-builder-list{display:grid;gap:8px;margin-bottom:13px}
.city-builder-row{display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid #dbeaf7;border-radius:14px;background:#fff}
.city-builder-icon{width:38px;height:38px;border-radius:11px;background:#e8f4ff;display:grid;place-items:center;font-size:20px}
.city-builder-copy{min-width:0}.city-builder-copy strong{display:block;color:#174274;font-size:12px;margin-bottom:6px}.city-score-bar{height:5px;background:#e7f0f8;border-radius:99px;overflow:hidden}.city-score-bar i{display:block;height:100%;background:#409cf0;border-radius:inherit}
.city-stepper{display:grid;grid-template-columns:31px 24px 31px;align-items:center;text-align:center}.city-stepper button{width:31px;height:31px;border:1px solid #cde2f4;border-radius:9px;background:#edf7ff;color:#1975cc;font-size:20px;line-height:1;cursor:pointer}.city-stepper button:disabled{opacity:.35}.city-stepper b{color:#123b78;font-size:14px}
.city-result{text-align:center}.city-result h2{font-size:21px;line-height:1.25;color:#123b78;margin:6px 0 16px}.city-result-bars{display:grid;gap:10px;text-align:left}.city-result-bars>div{display:grid;grid-template-columns:1fr auto;gap:4px 10px;color:#315d8b;font-size:11px}.city-result-bars span{font-weight:800}.city-result-bars b{color:#14569a}.city-result-bars i{grid-column:1/-1;height:7px;background:#e5eff8;border-radius:99px;overflow:hidden}.city-result-bars em{display:block;height:100%;background:linear-gradient(90deg,#54a8f6,#2b86de);border-radius:inherit}
.city-result>p{font-size:13px;color:#496f98;line-height:1.45;margin:15px 0 6px}

/* Vysledok */
.game-result-panel{text-align:center;padding:28px 8px 12px}.result-spark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:linear-gradient(145deg,#5badf5,#287fdc);color:#fff;font-size:26px;box-shadow:0 9px 22px rgba(42,128,216,.2)}
.game-result-panel h2{margin:0;color:#123b78;font-size:23px;line-height:1.2}.game-result-big{font-size:43px;line-height:1;font-weight:950;color:#267fd9;margin:14px 0 10px;letter-spacing:-1.5px}.game-result-panel>p{color:#4f739a;font-size:13px;line-height:1.45;margin:0 auto 5px;max-width:360px}

@media (min-width:768px){
  .games-hub-main{padding-top:38px}.games-hub-main .games-intro{padding-bottom:3px}.games-kids-note{max-width:760px;margin:0 0 4px;padding:13px 15px;font-size:14px}
  .kids-games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;margin-top:12px}
  .game-launch-card{min-height:142px}
  .contest-preview{margin-top:18px;min-height:92px;grid-template-columns:64px 1fr;padding:16px 18px}.contest-preview .game-circle{width:62px;height:62px}.contest-preview strong{font-size:17px}.contest-preview small{font-size:13px}
  .game-play-main{padding-top:34px;padding-bottom:60px;max-width:960px;margin:0 auto}
  .game-play-head{grid-template-columns:76px 1fr;padding:18px 20px;border-radius:22px;margin-bottom:18px}.game-play-head .game-circle{width:74px;height:74px}.game-play-head h1{font-size:34px}.game-play-head p{font-size:15px}
  .game-stage{padding:24px;border-radius:24px;min-height:480px}
  .game-statbar{font-size:14px;margin-bottom:17px}.game-statbar strong{font-size:18px}
  .memory-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:720px;margin:0 auto}.memory-card{aspect-ratio:1.08/1}.memory-front,.memory-back{border-radius:18px}.memory-back svg{width:52px;height:52px}.memory-back small{font-size:11px}
  .puzzle-board,.puzzle-complete-image{max-width:520px}
  .kids-quiz-card{max-width:720px;margin:0 auto}.kids-quiz-card h2{font-size:30px}.kids-quiz-card .quiz-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.kids-quiz-card .quiz-options button{min-height:62px;font-size:15px}
  .city-budget,.city-builder-list,.game-stage>.primary-game-action,.game-stage>.game-help{max-width:720px;margin-left:auto;margin-right:auto}.city-builder-row{padding:13px}.city-builder-copy strong{font-size:15px}.city-builder-icon{width:48px;height:48px;font-size:24px}.city-stepper{grid-template-columns:38px 32px 38px}.city-stepper button{width:38px;height:38px}.city-stepper b{font-size:17px}
  .game-result-panel{padding-top:58px}.game-result-panel h2{font-size:31px}.game-result-big{font-size:58px}.game-result-panel>p{font-size:15px}.game-result-panel .primary-game-action{max-width:360px}
  .city-result{max-width:720px;margin:0 auto}.city-result h2{font-size:29px}.city-result-bars>div{font-size:14px}.city-result>p{font-size:15px}.city-result .primary-game-action{max-width:360px;margin:15px auto 0}
}

/* IN26 v0.20 – nastaviteľné hry */
.game-circle.differences{background:linear-gradient(145deg,#f3a34d,#d97a27)}
.memory-back img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:10px;grid-row:1/-1;grid-column:1}.memory-back:has(img){padding:5px;display:grid}.memory-back:has(img) small{position:absolute;left:8px;right:8px;bottom:7px;padding:4px 6px;border-radius:7px;background:rgba(255,255,255,.9);color:#1d4d7b;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.puzzle-board{grid-template-columns:repeat(3,1fr)}.puzzle-tile{background-size:var(--puzzle-size,300%) var(--puzzle-size,300%)}
.city-project-picker{display:grid;gap:9px;margin:0 0 14px}.city-project-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto 30px;gap:10px;align-items:center;width:100%;border:1px solid #d8e8f5;border-radius:15px;background:#fff;padding:10px;text-align:left;color:#173f75;cursor:pointer;transition:.16s ease}.city-project-card:hover{border-color:#a9d1ef;background:#f9fcff}.city-project-card.selected{border-color:#54a4ec;background:#edf7ff;box-shadow:inset 0 0 0 1px #76b6ef}.city-project-card:disabled{opacity:.45;cursor:not-allowed}.city-project-icon{width:44px;height:44px;border-radius:12px;background:#e8f4ff;display:grid;place-items:center;font-size:22px}.city-project-text{min-width:0}.city-project-text strong{display:block;font-size:13px;margin-bottom:3px}.city-project-text small{display:block;color:#6481a0;font-size:10px;line-height:1.35}.city-project-cost{font-weight:900;color:#267fd9;font-size:12px;white-space:nowrap}.city-project-check{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf6ff;color:#2983d9;font-weight:950;font-size:18px}.city-project-card.selected .city-project-check{background:#2d8be1;color:#fff}.city-result-projects{display:grid;gap:8px;text-align:left;margin:14px 0}.city-result-projects>div{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;padding:10px;border:1px solid #dbeaf7;border-radius:13px;background:#f8fcff}.city-result-projects>div>span{font-size:22px}.city-result-projects strong{font-size:12px;color:#174274}.city-result-projects small{font-size:10px;color:#5e7d9d}.game-empty-state{text-align:center;padding:42px 14px;color:#54789b}.game-empty-state strong{display:block;color:#173f75;font-size:20px;margin-bottom:8px}.game-empty-state p{margin:0;font-size:13px;line-height:1.5}
.difference-game-board{display:grid;gap:10px}.difference-game-image{position:relative;border-radius:15px;overflow:hidden;border:1px solid #cfe3f3;background:#edf5fb;cursor:crosshair;touch-action:manipulation}.difference-game-image img{display:block;width:100%;height:auto}.difference-found-marker{position:absolute;border:3px solid #ff4545;border-radius:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.08);box-shadow:0 0 0 2px rgba(255,255,255,.9),0 2px 8px rgba(0,0,0,.18);pointer-events:none}.difference-miss{height:20px;text-align:center;color:#bd4b4b;font-size:11px;font-weight:800;margin-top:7px}
@media(min-width:760px){.difference-game-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.city-project-picker{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin-left:auto;margin-right:auto}.city-result-projects{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin-left:auto;margin-right:auto}.city-project-text strong{font-size:15px}.city-project-text small{font-size:12px}.city-project-cost{font-size:14px}}

/* ===== IN26 v0.21 – vekove hry + detske puzzle ===== */
.game-circle.kids-puzzle{background:linear-gradient(145deg,#ffbf59,#ef8d35)}
.kids-puzzle-status{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:10px;color:#4e7398;font-size:12px;font-weight:850}.kids-puzzle-status strong{font-size:18px;color:#1477cf}
.kids-puzzle-board{position:relative;display:grid;grid-template-columns:repeat(var(--kids-cols),1fr);grid-template-rows:repeat(var(--kids-rows),1fr);gap:5px;max-width:430px;aspect-ratio:1/1;margin:0 auto 18px;padding:6px;border-radius:20px;background:linear-gradient(rgba(255,255,255,.68),rgba(255,255,255,.68)),var(--kids-image) center/cover no-repeat;border:1px solid #cae1f2;box-shadow:0 10px 28px rgba(35,87,133,.08)}
.kids-puzzle-slot{min-width:0;border:2px dashed rgba(48,139,218,.42);border-radius:12px;background:rgba(255,255,255,.34);cursor:pointer;position:relative;overflow:hidden;transition:.16s ease}.kids-puzzle-slot:before{content:"";position:absolute;inset:0;background-image:var(--kids-image);background-size:calc(var(--kids-cols)*100%) calc(var(--kids-rows)*100%);background-position:var(--px) var(--py);opacity:.12}.kids-puzzle-slot.filled{border-style:solid;border-color:#5eafe9;background:#fff}.kids-puzzle-slot.filled:before{opacity:1}.kids-puzzle-slot>span{position:absolute;right:6px;top:6px;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#25a66d;color:#fff;font-size:13px;font-weight:950;box-shadow:0 2px 8px rgba(0,0,0,.14)}.kids-puzzle-slot.wrong{animation:kidsPuzzleShake .34s ease;border-color:#e46969;background:#fff0f0}
.kids-puzzle-tray{display:grid;grid-template-columns:repeat(var(--tray-cols),minmax(0,1fr));gap:9px;max-width:430px;margin:0 auto}.kids-puzzle-piece{aspect-ratio:1/1;border:3px solid #fff;border-radius:14px;background-image:var(--kids-image);background-size:calc(var(--piece-cols)*100%) calc(var(--piece-rows)*100%);background-position:var(--px) var(--py);box-shadow:0 5px 14px rgba(35,87,133,.14);cursor:pointer;transition:.15s ease}.kids-puzzle-piece.selected{border-color:#258ee8;box-shadow:0 0 0 4px rgba(37,142,232,.16),0 7px 18px rgba(35,87,133,.16);transform:translateY(-2px)}.kids-puzzle-hint{min-height:20px;text-align:center;margin-top:6px;color:#b14f4f;font-size:11px;font-weight:850}
@keyframes kidsPuzzleShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(min-width:760px){.kids-puzzle-board,.kids-puzzle-tray{max-width:560px}.kids-puzzle-tray{gap:12px}.kids-puzzle-piece,.kids-puzzle-slot{border-radius:17px}}

/* ===== IN26 v0.22 – mobile fixes: pexeso + detske puzzle ===== */
.memory-board{grid-template-columns:repeat(var(--memory-cols,3),minmax(0,1fr))}
.memory-board.memory-cols-4{gap:6px}
.memory-board.memory-cols-4 .memory-front,.memory-board.memory-cols-4 .memory-back{border-radius:11px}
.memory-board.memory-cols-4 .memory-back{padding:3px}
.memory-board.memory-cols-4 .memory-back small{font-size:7px;left:4px;right:4px;bottom:4px;padding:3px 4px}
.memory-board.memory-cols-4 .memory-front{font-size:22px}

.kids-puzzle-loading{min-height:220px;display:grid;place-items:center;color:#4d739a;font-weight:850}
.kids-puzzle-board{position:relative;display:block;width:100%;max-width:430px;height:auto;margin:0 auto 14px;padding:0;border-radius:18px;overflow:hidden;background:#edf7ff;border:1px solid #cae1f2;box-shadow:0 10px 28px rgba(35,87,133,.08)}
.kids-puzzle-guide{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.20;pointer-events:none;user-select:none;-webkit-user-drag:none}
.kids-puzzle-slots{position:absolute;inset:6px;display:grid;grid-template-columns:repeat(var(--kids-cols),minmax(0,1fr));grid-template-rows:repeat(var(--kids-rows),minmax(0,1fr));gap:5px}
.kids-puzzle-slot{min-width:0;min-height:0;width:100%;height:100%;border:2px dashed rgba(48,139,218,.55);border-radius:10px;background-color:rgba(255,255,255,.18);cursor:pointer;position:relative;overflow:hidden;transition:.16s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.kids-puzzle-slot.filled{border-style:solid;border-color:#5eafe9;background-color:#fff;background-repeat:no-repeat}
.kids-puzzle-slot>span{position:absolute;right:4px;top:4px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#25a66d;color:#fff;font-size:11px;font-weight:950;box-shadow:0 2px 8px rgba(0,0,0,.14)}
.kids-puzzle-select-note{text-align:center;min-height:36px;margin:0 auto 9px;padding:8px 10px;border-radius:11px;background:#edf7ff;color:#356993;font-size:11px;font-weight:850;max-width:430px}
.kids-puzzle-tray{display:grid;grid-template-columns:repeat(var(--tray-cols),minmax(0,1fr));gap:8px;width:100%;max-width:430px;margin:0 auto}
.kids-puzzle-piece{width:100%;min-width:0;border:3px solid #fff;border-radius:12px;background-color:#dcecf8;background-repeat:no-repeat;box-shadow:0 5px 14px rgba(35,87,133,.14);cursor:pointer;transition:.15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.kids-puzzle-piece:active{transform:scale(.97)}
.kids-puzzle-piece.selected{border-color:#258ee8;box-shadow:0 0 0 4px rgba(37,142,232,.16),0 7px 18px rgba(35,87,133,.16);transform:translateY(-2px)}
.kids-puzzle-hint{min-height:24px;text-align:center;margin-top:8px;color:#b14f4f;font-size:11px;font-weight:850}

@media(max-width:420px){
  .game-stage{padding:10px}
  .memory-board.memory-cols-4{gap:5px}
  .memory-board.memory-cols-4 .memory-card{aspect-ratio:1/1}
  .kids-puzzle-board,.kids-puzzle-tray,.kids-puzzle-select-note{max-width:100%}
  .kids-puzzle-slots{inset:5px;gap:4px}
  .kids-puzzle-piece{border-width:2px;border-radius:10px}
}
@media(min-width:760px){
  .memory-board{grid-template-columns:repeat(var(--memory-cols,4),minmax(0,1fr))}
  .memory-board.memory-cols-4{gap:12px}
  .memory-board.memory-cols-4 .memory-front,.memory-board.memory-cols-4 .memory-back{border-radius:18px}
  .memory-board.memory-cols-4 .memory-back{padding:5px}
  .memory-board.memory-cols-4 .memory-back small{font-size:10px;left:8px;right:8px;bottom:7px;padding:4px 6px}
  .kids-puzzle-board,.kids-puzzle-tray,.kids-puzzle-select-note{max-width:560px}
  .kids-puzzle-tray{gap:12px}
  .kids-puzzle-piece,.kids-puzzle-slot{border-radius:16px}
}

/* ===== IN26 v0.23 – detske puzzle bez predlohy + 4x4 pexeso ===== */
.memory-board.memory-cols-4{
  width:100%;
  max-width:430px;
  margin-left:auto;
  margin-right:auto;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:1fr;
}
.memory-board.memory-cols-4 .memory-card{aspect-ratio:1/1;min-width:0}
.memory-board.memory-cols-4 .memory-card-inner{width:100%;height:100%}

.kids-puzzle-board-clean{
  background:rgba(239,248,255,.94);
}
.kids-puzzle-board-clean .kids-puzzle-slots{
  position:absolute;
  inset:7px;
}
.kids-puzzle-board-clean .kids-puzzle-slot{
  background:rgba(255,255,255,.72);
  border:2px dashed rgba(43,137,218,.58);
}
.kids-puzzle-board-clean .kids-puzzle-slot:before{display:none!important}
.kids-puzzle-board-clean .kids-puzzle-slot.filled{
  background-color:#fff;
  background-repeat:no-repeat;
  border-style:solid;
  border-color:#64afea;
}
.kids-puzzle-complete{
  position:relative;
  width:100%;
  max-width:560px;
  margin:0 auto;
  overflow:hidden;
  border-radius:20px;
  background:#eaf5fd;
  border:1px solid #c9e1f3;
  box-shadow:0 12px 30px rgba(35,87,133,.14);
}
.kids-puzzle-complete>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.kids-puzzle-complete-message{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(82%,360px);
  padding:16px 18px;
  border-radius:18px;
  background:rgba(8,68,126,.82);
  color:#fff;
  text-align:center;
  box-shadow:0 10px 28px rgba(0,0,0,.2);
  backdrop-filter:blur(4px);
}
.kids-puzzle-complete-message strong{
  display:block;
  font-size:28px;
  line-height:1;
  margin-bottom:7px;
  font-weight:950;
}
.kids-puzzle-complete-message span{
  display:block;
  font-size:14px;
  line-height:1.35;
  font-weight:800;
}
.kids-puzzle-restart{max-width:430px;margin:14px auto 0}

@media(max-width:480px){
  .memory-board.memory-cols-4{gap:5px;max-width:100%}
  .memory-board.memory-cols-4 .memory-back small{display:none}
  .memory-board.memory-cols-4 .memory-back{padding:2px}
  .memory-board.memory-cols-4 .memory-back img{border-radius:8px}
  .kids-puzzle-tray{margin-bottom:9px}
  .kids-puzzle-select-note{margin-bottom:10px}
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:5px;gap:4px}
  .kids-puzzle-complete{border-radius:16px}
  .kids-puzzle-complete-message{padding:13px 14px;border-radius:15px}
  .kids-puzzle-complete-message strong{font-size:24px}
  .kids-puzzle-complete-message span{font-size:12px}
}

/* ===== IN26 v0.23 – robustne detske puzzle pre mobil ===== */
.kids-puzzle-tray-mobile{
  display:flex;
  width:100%;
  max-width:560px;
  margin:0 auto 10px;
  gap:9px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:6px 4px 10px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.kids-puzzle-tray-mobile .kids-puzzle-piece{
  flex:0 0 92px;
  width:92px;
  min-width:92px;
  max-width:92px;
  scroll-snap-align:start;
  background-color:#dcecf8;
}
.kids-puzzle-tray-mobile .kids-puzzle-piece.placed{
  opacity:0;
  transform:scale(.75);
  pointer-events:none;
}
.kids-puzzle-board-clean{
  width:100%;
  max-width:560px;
  margin:0 auto;
  touch-action:manipulation;
}
.kids-puzzle-board-clean .kids-puzzle-slots{
  display:grid;
  grid-template-columns:repeat(var(--kids-cols),minmax(0,1fr));
  grid-template-rows:repeat(var(--kids-rows),minmax(0,1fr));
}
.kids-puzzle-board-clean .kids-puzzle-slot{
  min-width:0;
  min-height:0;
  width:100%;
  height:100%;
  background-color:rgba(255,255,255,.78);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.kids-puzzle-board-clean .kids-puzzle-slot.filled{
  background-color:#fff;
  background-repeat:no-repeat;
}
@media(max-width:600px){
  .kids-puzzle-status{margin-bottom:7px}
  .kids-puzzle-tray-mobile{gap:7px;padding:4px 2px 8px;margin-bottom:7px}
  .kids-puzzle-tray-mobile .kids-puzzle-piece{flex-basis:78px;width:78px;min-width:78px;max-width:78px;border-radius:10px}
  .kids-puzzle-select-note{margin-bottom:8px;min-height:32px;padding:7px 9px}
  .kids-puzzle-board-clean{border-radius:14px}
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:5px;gap:4px}
  .kids-puzzle-board-clean .kids-puzzle-slot{border-radius:8px}
}

/* ===== IN26 v0.25 – vacsie hry na desktope ===== */
@media(min-width:900px){
  .game-play-main{max-width:1220px;padding-left:28px;padding-right:28px}
  .game-play-head{max-width:1080px;margin-left:auto;margin-right:auto}
  .game-stage{min-height:560px;padding:32px 36px;border-radius:28px}
  .game-statbar{max-width:980px;margin-left:auto;margin-right:auto;margin-bottom:18px;font-size:15px}
  .memory-board.memory-cols-4{max-width:840px;gap:16px}
  .memory-board.memory-cols-4 .memory-front,.memory-board.memory-cols-4 .memory-back{border-radius:22px}
  .memory-board.memory-cols-4 .memory-front{font-size:38px}
  .memory-board.memory-cols-4 .memory-back{padding:7px}
  .memory-board.memory-cols-4 .memory-back small{display:block;font-size:12px;left:10px;right:10px;bottom:9px;padding:5px 7px}
  .memory-board.memory-cols-4 .memory-back img{border-radius:16px}
  .kids-puzzle-board-clean,.kids-puzzle-select-note{max-width:760px}
  .kids-puzzle-tray-mobile{max-width:880px;justify-content:center;overflow:visible;flex-wrap:wrap;gap:14px}
  .kids-puzzle-tray-mobile .kids-puzzle-piece{flex:0 0 128px;width:128px;min-width:128px;max-width:128px;border-radius:16px}
  .puzzle-board,.puzzle-complete-image{max-width:680px}
  .kids-quiz-card{max-width:920px}
  .kids-quiz-card h2{font-size:34px}
  .kids-quiz-card .quiz-options button{min-height:72px;font-size:17px;padding:14px 18px}
  .city-project-picker{max-width:1040px;gap:14px}
  .city-project-card{padding:15px;border-radius:19px;grid-template-columns:58px minmax(0,1fr) auto 34px}
  .city-project-icon{width:56px;height:56px;font-size:28px;border-radius:15px}
  .city-project-text strong{font-size:17px}.city-project-text small{font-size:13px}.city-project-cost{font-size:15px}
  .difference-game-board{max-width:1100px;margin-left:auto;margin-right:auto;gap:20px}
  .difference-game-image{border-radius:20px}
}

/* ===== IN26 v0.26 – detské puzzle ako klasické puzzle dieliky ===== */
.kids-puzzle-piece-jigsaw,
.kids-puzzle-slot-jigsaw{
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  background-origin:border-box;
  box-shadow:none;
}
.kids-puzzle-piece-jigsaw{
  position:relative;
  overflow:visible;
  filter:drop-shadow(0 6px 12px rgba(35,87,133,.16));
}
.kids-puzzle-piece-jigsaw.selected{
  box-shadow:none;
  filter:drop-shadow(0 0 0 rgba(0,0,0,0)) drop-shadow(0 0 0 4px rgba(37,142,232,.22)) drop-shadow(0 8px 18px rgba(35,87,133,.18));
}
.kids-puzzle-slot-jigsaw{
  position:relative;
  overflow:visible;
  min-height:0;
}
.kids-puzzle-slot-jigsaw.filled{
  background-color:transparent !important;
}
.kids-puzzle-board-clean{
  background:rgba(239,248,255,.9);
}
.kids-puzzle-board-clean .kids-puzzle-slots{
  inset:10px;
  gap:6px;
}
.kids-puzzle-board-clean .kids-puzzle-slot.wrong{
  filter:drop-shadow(0 0 0 rgba(0,0,0,0)) drop-shadow(0 0 0 3px rgba(228,105,105,.22));
}
@media(max-width:600px){
  .kids-puzzle-tray-mobile .kids-puzzle-piece.kids-puzzle-piece-jigsaw{
    flex-basis:84px;
    width:84px;
    min-width:84px;
    max-width:84px;
  }
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:8px;gap:5px}
}
@media(min-width:900px){
  .kids-puzzle-tray-mobile .kids-puzzle-piece.kids-puzzle-piece-jigsaw{
    flex:0 0 142px;
    width:142px;
    min-width:142px;
    max-width:142px;
  }
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:12px;gap:8px}
}

/* ===== IN26 v0.29 – tesnejsie a variabilne detske puzzle ===== */
.kids-puzzle-board-clean .kids-puzzle-slots{
  inset:8px;
  gap:0 !important;
}
.kids-puzzle-slot-jigsaw,
.kids-puzzle-piece-jigsaw{
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
}
.kids-puzzle-slot-jigsaw{overflow:visible}
.kids-puzzle-piece-jigsaw{
  overflow:visible;
  filter:drop-shadow(0 4px 8px rgba(27,77,121,.14));
}
.kids-puzzle-piece-jigsaw.selected{
  filter:drop-shadow(0 0 0 rgba(0,0,0,0)) drop-shadow(0 0 0 3px rgba(37,142,232,.22)) drop-shadow(0 6px 12px rgba(27,77,121,.18));
}
.kids-puzzle-tray-mobile{gap:7px}
@media(max-width:600px){
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:5px;gap:0 !important}
  .kids-puzzle-tray-mobile{gap:5px}
}
@media(min-width:900px){
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:8px;gap:0 !important}
  .kids-puzzle-tray-mobile{gap:9px}
}

/* ===== IN26 v0.30 – puzzle bez veľkých medzier ===== */
.kids-puzzle-board-clean .kids-puzzle-slots{
  inset:0 !important;
  gap:0 !important;
}
.kids-puzzle-slot-jigsaw{
  margin:0 !important;
  padding:0 !important;
  box-shadow:none !important;
}
.kids-puzzle-slot-jigsaw.filled{
  background-color:transparent !important;
  box-shadow:none !important;
}
@media(max-width:600px){
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:0 !important;gap:0 !important}
}
@media(min-width:900px){
  .kids-puzzle-board-clean .kids-puzzle-slots{inset:0 !important;gap:0 !important}
}

/* ===== IN26 v0.32 – Správna cesta / súťaž ===== */
.contest-main{padding-bottom:42px}.contest-hero{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:16px;align-items:center;padding:24px 20px 18px}.contest-eyebrow{display:block;color:#2487e4;font-size:11px;font-weight:950;letter-spacing:.14em;margin-bottom:7px}.contest-hero h1{margin:0;color:#0b3471;font-size:30px;line-height:1.04;font-weight:950}.contest-hero p{margin:10px 0 0;color:#315f8b;font-size:14px;line-height:1.5;font-weight:650}.contest-hero-badge{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#49a9fb,#147de0);color:#fff;font-size:38px;font-weight:950;box-shadow:0 10px 24px rgba(28,126,214,.25)}
.contest-prize-strip{display:flex;gap:14px;align-items:center;margin:0 18px 16px;padding:14px 16px;border:1px solid rgba(61,156,234,.34);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(225,243,255,.9));box-shadow:0 8px 22px rgba(39,104,158,.08)}.contest-prize-strip>span{font-size:30px}.contest-prize-strip small{display:block;color:#5f83a7;font-weight:800}.contest-prize-strip strong{display:block;color:#0b3471;font-size:18px;margin-top:2px}.contest-prize-strip p{margin:3px 0 0;color:#4d7398;font-size:12px}
.contest-scorebar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 18px 14px}.contest-scorebar>div{padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.9);border:1px solid #cfe5f5;text-align:center}.contest-scorebar span{display:block;color:#6886a4;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.contest-scorebar strong{font-size:27px;color:#0b3471}.contest-scorebar small{color:#7290ad;font-weight:800;margin-left:3px}
.contest-path{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px;margin:0 18px;padding:22px 12px;border-radius:24px;background:rgba(255,255,255,.82);border:1px solid #cfe4f4;box-shadow:0 12px 28px rgba(39,104,158,.08)}.contest-path:before{content:"";position:absolute;inset:44px 14% 44px;border:4px dotted rgba(63,153,229,.28);border-radius:80px;pointer-events:none}.contest-stop{position:relative;z-index:1;min-width:0;border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:5px;color:#0b3471;cursor:pointer}.contest-stop:nth-child(6n+4),.contest-stop:nth-child(6n+5),.contest-stop:nth-child(6n+6){transform:translateX(0)}.contest-stop-number{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#e8f4ff;border:3px solid #b8dcf8;color:#147fdc;font-size:26px;font-weight:950;box-shadow:0 7px 18px rgba(36,118,186,.13);transition:.2s ease}.contest-stop-name{max-width:105px;font-size:11px;line-height:1.15;font-weight:900;text-align:center}.contest-stop-points{font-size:10px;color:#6988a5;font-weight:850}.contest-stop.locked{opacity:.44;cursor:not-allowed}.contest-stop.current .contest-stop-number{background:linear-gradient(145deg,#48aafa,#1683e4);border-color:#fff;color:#fff;transform:scale(1.08);box-shadow:0 0 0 6px rgba(41,147,233,.13),0 10px 24px rgba(36,118,186,.22)}.contest-stop.done-correct .contest-stop-number{background:#dff8ec;border-color:#6ed4a3;color:#16895b}.contest-stop.done-wrong .contest-stop-number{background:#fff1f1;border-color:#ef9c9c;color:#c14e4e}.contest-stop.done-correct .contest-stop-number:after{content:"✓";position:absolute;width:22px;height:22px;right:calc(50% - 38px);top:-4px;border-radius:50%;display:grid;place-items:center;background:#20a66e;color:white;font-size:13px}.contest-stop.done-wrong .contest-stop-number:after{content:"×";position:absolute;width:22px;height:22px;right:calc(50% - 38px);top:-4px;border-radius:50%;display:grid;place-items:center;background:#df6666;color:white;font-size:15px}
.contest-rules-card{margin:16px 18px 0;padding:16px 17px;border-radius:18px;background:rgba(237,248,255,.93);border:1px solid #cbe4f6;color:#3d678e}.contest-rules-card strong{display:block;color:#0b3471;font-size:15px}.contest-rules-card p{margin:7px 0;font-size:12px;line-height:1.5}.contest-rules-card small{font-weight:800;color:#4681b4}
.contest-modal[hidden]{display:none!important}.contest-modal{position:fixed;z-index:1000;inset:0;background:rgba(5,31,62,.55);display:grid;place-items:center;padding:20px;overflow:auto}.contest-modal-open{overflow:hidden}.contest-modal-card{position:relative;width:min(100%,560px);padding:22px;border-radius:25px;background:#fff;box-shadow:0 22px 60px rgba(3,27,54,.3)}.contest-modal-close{position:absolute;right:12px;top:10px;width:40px;height:40px;border:0;border-radius:50%;background:#edf6fd;color:#346f9f;font-size:25px;cursor:pointer}.contest-candidate-head{display:flex;align-items:center;gap:12px;padding-right:44px;margin-bottom:17px}.contest-candidate-photo{width:64px;height:64px;border-radius:18px;background:#ddecf8;overflow:hidden;display:grid;place-items:center;color:#147fdc;font-size:27px;font-weight:950}.contest-candidate-photo img{width:100%;height:100%;object-fit:cover}.contest-candidate-head div:last-child span{display:block;color:#288fe8;font-size:11px;font-weight:900;text-transform:uppercase}.contest-candidate-head strong{display:block;color:#0b3471;font-size:18px}.contest-candidate-head small{color:#5a7fa1;font-size:11px;font-weight:750}.contest-modal-card h2{font-size:22px;line-height:1.22;color:#0b3471;margin:0 0 15px}.contest-answer-grid{display:grid;gap:9px}.contest-answer-grid button{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border:1px solid #cfe3f3;border-radius:14px;background:#f8fcff;color:#123f74;font-size:14px;font-weight:800;cursor:pointer}.contest-answer-grid button span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e1f1fd;color:#1683e4;font-weight:950}.contest-answer-grid button.correct{border-color:#63cf9b;background:#e9faf2;color:#17754f}.contest-answer-grid button.correct span{background:#27a66f;color:#fff}.contest-answer-grid button.wrong{border-color:#ed9999;background:#fff0f0;color:#a84848}.contest-answer-grid button.wrong span{background:#d96060;color:#fff}.contest-feedback{margin-top:14px;padding:14px;border-radius:15px;background:#eef8ff;color:#365f83}.contest-feedback strong{display:block;color:#0b3471;font-size:16px}.contest-feedback p{margin:6px 0 8px;font-size:12px;line-height:1.45}.contest-feedback>a{display:inline-block;margin-bottom:10px;color:#147edb;font-weight:850;font-size:12px}.contest-feedback .primary-game-action{margin-top:5px}
.contest-finish{margin:18px}.contest-finish-loading,.contest-not-ready{padding:24px;border-radius:20px;background:rgba(255,255,255,.9);border:1px solid #cfe3f3;text-align:center;color:#416b91}.contest-result-card{padding:22px;border-radius:24px;background:rgba(255,255,255,.96);border:1px solid #cce3f4;text-align:center;box-shadow:0 13px 35px rgba(34,99,151,.12)}.contest-result-card h2{margin:8px 0;color:#0b3471;font-size:28px}.contest-result-spark{font-size:32px;color:#f2ad2e}.contest-final-score{display:flex;justify-content:center;align-items:baseline;gap:6px;margin:8px 0}.contest-final-score strong{font-size:46px;color:#1684e5;line-height:1}.contest-final-score span{color:#5b7d9d;font-weight:850}.contest-result-card>p{color:#4b7195;line-height:1.5;font-size:13px;max-width:520px;margin:10px auto}.contest-qr{display:grid;place-items:center;margin:15px auto 8px;padding:10px;width:max-content;border-radius:15px;background:#fff;border:1px solid #d8e8f4}.in26-qr-svg{display:block;max-width:100%;height:auto}.contest-code{font-size:20px;letter-spacing:.08em;color:#0b3471;font-weight:950;margin:8px 0 15px}.contest-result-card .primary-game-action{display:block;text-decoration:none;max-width:330px;margin:0 auto 10px}.contest-result-card>small{display:block;color:#7892aa;font-size:10px}
.contest-result-main{padding-bottom:42px}.contest-result-lookup{margin:18px;padding:20px;border-radius:22px;background:rgba(255,255,255,.9);border:1px solid #cfe3f3}.contest-result-lookup h1{margin:4px 0 15px;color:#0b3471}.contest-result-lookup form{display:grid;gap:10px}.contest-result-lookup label{font-size:12px;font-weight:850;color:#315f88}.contest-result-lookup input{display:block;width:100%;margin-top:5px;padding:12px 13px;border:1px solid #c5ddf0;border-radius:12px;font-size:16px;text-transform:uppercase}.contest-result-card.result-page{margin:18px}.contest-status{padding:14px 15px;border-radius:14px;margin:12px 0}.contest-status strong{display:block;font-size:17px}.contest-status p{margin:5px 0 0!important}.contest-status.waiting{background:#eef7ff;color:#2e6898}.contest-status.winner{background:#e7faef;color:#197750}.contest-status.not-winner{background:#f2f5f7;color:#546b7e}
@media(min-width:760px){.contest-main,.contest-result-main{max-width:1120px}.contest-hero{grid-template-columns:minmax(0,1fr) 110px;padding:34px 38px 24px}.contest-hero h1{font-size:46px;max-width:780px}.contest-hero p{font-size:17px;max-width:720px}.contest-hero-badge{width:98px;height:98px;font-size:54px}.contest-path{grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 18px;padding:34px 26px;margin:0 38px}.contest-stop-number{width:82px;height:82px;font-size:34px}.contest-stop-name{max-width:150px;font-size:13px}.contest-scorebar,.contest-prize-strip,.contest-rules-card{margin-left:38px;margin-right:38px}.contest-scorebar{max-width:430px}.contest-result-lookup,.contest-result-card.result-page{max-width:650px;margin-left:auto;margin-right:auto}}
.contest-preview-live{grid-template-columns:52px minmax(0,1fr) auto;text-decoration:none;cursor:pointer;border-style:solid;border-color:#b9daf3;transition:.18s ease}.contest-preview-live:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(32,103,161,.1)}.contest-preview-live .tiny-arrow{font-size:28px;color:#258ee8}
@media(min-width:760px){.contest-preview-live{grid-template-columns:64px minmax(0,1fr) auto}}

/* ===== IN26 v0.36 – súťaž rozdelená na obvody Juh / Sever ===== */
.contest-districts{display:grid;gap:18px;margin:0 18px}
.contest-district-block{border-radius:26px;background:rgba(255,255,255,.72);border:1px solid #cfe4f4;box-shadow:0 12px 28px rgba(39,104,158,.07);overflow:hidden}
.contest-district-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 10px}
.contest-district-head span{font-size:10px;letter-spacing:.14em;font-weight:900;color:#7a98b2}
.contest-district-head strong{font-size:18px;line-height:1;color:#0d4f92;font-weight:950;padding:8px 13px;border-radius:999px;background:#e8f4ff;border:1px solid #c6e2f8}
.contest-district-block.district-sever .contest-district-head strong{background:#eef1ff;border-color:#d7dcff;color:#4d5db5}
.contest-district-block .contest-path{margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;padding-top:12px}
.contest-district-block .contest-path:before{inset:34px 14% 36px}
.contest-candidate-head>div:last-child>span{display:block;font-size:12px;font-weight:900;letter-spacing:.04em;color:#147fdc;text-transform:uppercase;margin-bottom:3px}
@media(min-width:760px){
  .contest-districts{margin:0 38px;gap:24px}
  .contest-district-head{padding:18px 26px 8px}
  .contest-district-head strong{font-size:21px;padding:9px 16px}
  .contest-district-block .contest-path{margin:0;padding:26px 26px 32px}
}


/* ===== IN26 v0.39 – profil kandidáta pred súťažnou otázkou ===== */
.contest-candidate-profile{
  margin:0 0 16px;
  padding:15px 16px;
  border-radius:16px;
  background:linear-gradient(145deg,#f2f9ff,#e7f4ff);
  border:1px solid #cfe5f6;
  color:#315f86;
  font-size:13px;
  line-height:1.55;
  white-space:pre-line;
}
.contest-candidate-profile[hidden]{display:none!important}
.contest-question-label{
  margin:2px 0 6px;
  color:#298ee7;
  font-size:10px;
  font-weight:950;
  letter-spacing:.12em;
}
@media(max-width:600px){
  .contest-candidate-profile{padding:13px 14px;font-size:12px;line-height:1.5}
}

/* ===== IN26 v0.40 – výrazný profil kandidáta v súťažnom modale ===== */
.contest-modal-card{
  width:min(100%,700px);
  padding:28px;
  border-radius:30px;
}
.contest-candidate-head{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  align-items:center;
  gap:22px;
  padding-right:48px;
  margin-bottom:22px;
}
.contest-candidate-photo{
  width:118px;
  height:118px;
  border-radius:50%;
  background:linear-gradient(145deg,#eef8ff,#dceeff);
  border:6px solid #edf7ff;
  box-shadow:0 10px 28px rgba(31,106,170,.13);
  overflow:hidden;
  display:grid;
  place-items:center;
  color:#147fdc;
  font-size:38px;
  font-weight:950;
}
.contest-candidate-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.contest-candidate-identity{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.contest-candidate-badge{
  display:inline-flex!important;
  align-items:center;
  min-height:36px;
  padding:7px 14px;
  margin:0 0 7px!important;
  border-radius:999px;
  background:linear-gradient(145deg,#e8f5ff,#d9edff);
  border:1px solid #c8e3f8;
  color:#1684e5!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
}
.contest-candidate-name{
  display:block;
  color:#0b3471;
  font-size:30px!important;
  line-height:1.08;
  font-weight:950;
  margin:0 0 8px;
}
.contest-candidate-slogan{
  color:#396f9f;
  font-size:16px;
  line-height:1.35;
  font-weight:850;
  margin:0 0 10px;
  max-width:520px;
}
.contest-candidate-slogan[hidden]{display:none!important}
.contest-candidate-points{
  display:flex!important;
  align-items:center;
  gap:7px;
  color:#39709f!important;
  font-size:13px!important;
  line-height:1.2;
  font-weight:900!important;
}
.contest-candidate-points:before{
  content:"★";
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e4f3ff;
  color:#1684e5;
  font-size:14px;
}
.contest-candidate-profile{
  margin:0 0 22px;
  padding:18px 20px;
  border-radius:20px;
  background:linear-gradient(145deg,#f0f8ff,#e7f4ff);
  border:1px solid #c9e2f5;
  color:#315f86;
  font-size:14px;
  line-height:1.62;
  white-space:pre-line;
}
.contest-question-label{
  margin:2px 0 7px;
  color:#258ee8;
  font-size:11px;
  font-weight:950;
  letter-spacing:.13em;
}
.contest-modal-card h2{
  font-size:28px;
  line-height:1.18;
  color:#0b3471;
  margin:0 0 18px;
  font-weight:950;
}
.contest-answer-grid{gap:10px}
.contest-answer-grid button{
  min-height:58px;
  padding:13px 15px;
  border-radius:16px;
  font-size:15px;
}
.contest-answer-grid button span{
  width:34px;
  height:34px;
  font-size:14px;
}

@media(max-width:600px){
  .contest-modal{padding:10px}
  .contest-modal-card{
    width:100%;
    padding:18px;
    border-radius:24px;
  }
  .contest-modal-close{
    right:10px;
    top:10px;
    width:38px;
    height:38px;
  }
  .contest-candidate-head{
    grid-template-columns:88px minmax(0,1fr);
    gap:14px;
    padding-right:38px;
    margin-bottom:17px;
    align-items:start;
  }
  .contest-candidate-photo{
    width:88px;
    height:88px;
    border-width:4px;
    font-size:30px;
  }
  .contest-candidate-badge{
    min-height:30px;
    padding:6px 10px;
    margin-bottom:6px!important;
    font-size:12px!important;
  }
  .contest-candidate-name{
    font-size:23px!important;
    line-height:1.08;
    margin-bottom:6px;
  }
  .contest-candidate-slogan{
    font-size:13px;
    line-height:1.34;
    margin-bottom:8px;
  }
  .contest-candidate-points{
    font-size:11px!important;
    gap:5px;
  }
  .contest-candidate-points:before{
    width:22px;
    height:22px;
    font-size:12px;
  }
  .contest-candidate-profile{
    padding:14px 15px;
    margin-bottom:17px;
    border-radius:16px;
    font-size:12.5px;
    line-height:1.55;
  }
  .contest-modal-card h2{
    font-size:22px;
    line-height:1.2;
    margin-bottom:14px;
  }
  .contest-answer-grid button{
    min-height:54px;
    padding:11px 12px;
    font-size:14px;
  }
}


/* ===== IN26 v0.41 – vacsia portretova foto kandidata v sutaznom modale ===== */
.contest-candidate-head{
  grid-template-columns:160px minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.contest-candidate-photo{
  width:160px;
  height:190px;
  border-radius:22px;
  border:5px solid #edf7ff;
  background:linear-gradient(145deg,#eef8ff,#dceeff);
  box-shadow:0 12px 30px rgba(31,106,170,.15);
  overflow:hidden;
  align-self:start;
}
.contest-candidate-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}
.contest-candidate-identity{
  padding-top:2px;
}

@media(max-width:600px){
  .contest-candidate-head{
    grid-template-columns:112px minmax(0,1fr);
    gap:14px;
    align-items:start;
  }
  .contest-candidate-photo{
    width:112px;
    height:140px;
    border-radius:16px;
    border-width:4px;
  }
  .contest-candidate-name{
    font-size:22px!important;
  }
  .contest-candidate-slogan{
    font-size:12.5px;
  }
}

@media(max-width:390px){
  .contest-candidate-head{
    grid-template-columns:100px minmax(0,1fr);
    gap:12px;
  }
  .contest-candidate-photo{
    width:100px;
    height:126px;
  }
  .contest-candidate-badge{
    font-size:11px!important;
    padding:5px 9px;
  }
  .contest-candidate-name{
    font-size:20px!important;
  }
}

/* IN26 v0.42 – jednotna klukata cesta z dola hore */
.contest-route-board{
  margin:0 18px;
  padding:18px 16px 20px;
  border-radius:28px;
  background:rgba(255,255,255,.76);
  border:1px solid #cfe4f4;
  box-shadow:0 16px 36px rgba(39,104,158,.10);
  backdrop-filter:blur(2px);
}
.contest-route-goal{
  margin-bottom:10px;
}
.contest-route-goal-label{
  display:block;
  font-size:10px;
  letter-spacing:.18em;
  font-weight:900;
  color:#7a98b2;
  margin:0 0 8px;
}
.contest-finish-stop{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px;
  border-radius:22px;
  background:linear-gradient(145deg,rgba(235,246,255,.96),rgba(245,250,255,.92));
  border:1px solid #d2e6f7;
  box-shadow:0 10px 26px rgba(39,104,158,.08);
}
.contest-finish-badge{
  flex:0 0 54px;
  width:54px;
  height:54px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:26px;
  color:#fff;
  background:linear-gradient(145deg,#48aafa,#1683e4);
  box-shadow:0 10px 22px rgba(22,131,228,.28);
}
.contest-finish-copy strong{
  display:block;
  color:#0b3471;
  font-size:24px;
  line-height:1.05;
  margin-bottom:4px;
}
.contest-finish-copy small{
  display:block;
  color:#5e7f9c;
  font-size:12px;
  font-weight:800;
}
.contest-route-summary{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.contest-route-summary span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:7px 10px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid #d5e8f7;
  color:#244e82;
  font-size:12px;
  font-weight:800;
}
.contest-vertical-path{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:8px 0 4px;
}
.contest-vertical-path:before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:4px;
  transform:translateX(-50%);
  border-radius:999px;
  background:repeating-linear-gradient(to bottom,rgba(63,153,229,.48) 0 10px,rgba(63,153,229,0) 10px 20px);
  pointer-events:none;
}
.contest-stop--route{
  position:relative;
  z-index:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  width:calc(50% + 38px);
  padding:0;
  background:transparent;
  border:0;
}
.contest-stop--route.align-right{
  margin-left:50%;
  padding-left:14px;
  justify-content:flex-start;
  text-align:left;
}
.contest-stop--route.align-left{
  margin-right:50%;
  padding-right:14px;
  justify-content:flex-end;
  text-align:right;
  flex-direction:row-reverse;
}
.contest-stop--route .contest-stop-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  padding:11px 13px;
  border-radius:18px;
  background:rgba(255,255,255,.95);
  border:1px solid #cfe4f4;
  box-shadow:0 8px 20px rgba(39,104,158,.08);
}
.contest-stop--route .contest-stop-number{
  position:relative;
  flex:0 0 72px;
  width:72px;
  height:72px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e8f4ff;
  border:3px solid #b8dcf8;
  color:#147fdc;
  font-size:30px;
  font-weight:950;
  box-shadow:0 8px 18px rgba(36,118,186,.13);
  transition:.2s ease;
}
.contest-stop--route .contest-stop-district{
  display:block;
  color:#6888a5;
  font-size:10px;
  letter-spacing:.06em;
  font-weight:900;
  text-transform:uppercase;
}
.contest-stop--route .contest-stop-name{
  max-width:none;
  color:#0b3471;
  font-size:16px;
  line-height:1.15;
  font-weight:900;
  text-align:inherit;
}
.contest-stop--route .contest-stop-points{
  color:#6a88a5;
  font-size:11px;
  font-weight:850;
}
.contest-stop--route.locked{
  opacity:.42;
  cursor:not-allowed;
}
.contest-stop--route.current .contest-stop-number{
  background:linear-gradient(145deg,#48aafa,#1683e4);
  border-color:#fff;
  color:#fff;
  transform:scale(1.08);
  box-shadow:0 0 0 6px rgba(41,147,233,.13),0 10px 24px rgba(36,118,186,.22);
}
.contest-stop--route.current .contest-stop-card{
  border-color:#b7daf6;
  box-shadow:0 10px 24px rgba(39,104,158,.12);
}
.contest-stop--route.done-correct .contest-stop-number{
  background:#dff8ec;
  border-color:#6ed4a3;
  color:#16895b;
}
.contest-stop--route.done-wrong .contest-stop-number{
  background:#fff1f1;
  border-color:#ef9c9c;
  color:#c14e4e;
}
.contest-stop--route.done-correct .contest-stop-number:after{
  content:"✓";
  position:absolute;
  width:22px;
  height:22px;
  right:-2px;
  top:-2px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#20a66e;
  color:#fff;
  font-size:13px;
}
.contest-stop--route.done-wrong .contest-stop-number:after{
  content:"×";
  position:absolute;
  width:22px;
  height:22px;
  right:-2px;
  top:-2px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#df6666;
  color:#fff;
  font-size:15px;
}
.contest-stop--route.is-juh .contest-stop-district{color:#0d73cc}
.contest-stop--route.is-sever .contest-stop-district{color:#5868ba}

@media (max-width:759px){
  .contest-route-board{margin:0 12px;padding:16px 12px 18px}
  .contest-finish-copy strong{font-size:21px}
  .contest-route-summary{gap:6px}
  .contest-route-summary span{font-size:11px;padding:6px 9px}
  .contest-vertical-path:before{left:36px;transform:none}
  .contest-stop--route,
  .contest-stop--route.align-left,
  .contest-stop--route.align-right{
    width:100%;
    margin:0;
    padding:0 0 0 0;
    flex-direction:row;
    justify-content:flex-start;
    text-align:left;
  }
  .contest-stop--route{padding-left:0}
  .contest-stop--route .contest-stop-number{
    flex:0 0 72px;
    width:72px;
    height:72px;
  }
  .contest-stop--route .contest-stop-card{
    min-width:0;
    flex:1 1 auto;
  }
}

@media (min-width:760px){
  .contest-route-board{margin:0 38px;padding:26px 28px 28px}
  .contest-finish-stop{padding:18px 20px}
  .contest-finish-badge{width:62px;height:62px;flex-basis:62px;font-size:30px}
  .contest-finish-copy strong{font-size:30px}
  .contest-stop--route{width:calc(50% + 52px)}
  .contest-stop--route.align-right{padding-left:18px}
  .contest-stop--route.align-left{padding-right:18px}
  .contest-stop--route .contest-stop-number{width:82px;height:82px;flex-basis:82px;font-size:34px}
  .contest-stop--route .contest-stop-card{padding:13px 16px}
  .contest-stop--route .contest-stop-name{font-size:18px}
  .contest-stop--route .contest-stop-points{font-size:12px}
}

/* IN26 v0.43 – realna spojena cesta + priehladne pozadie */
.contest-route-board{
  position:relative;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  overflow:visible;
}
.contest-route-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  overflow:visible;
  pointer-events:none;
}
.contest-route-line-base,
.contest-route-line-progress{
  fill:none;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contest-route-line-base{
  stroke:rgba(93,169,232,.42);
  stroke-width:8;
  stroke-dasharray:3 15;
}
.contest-route-line-progress{
  stroke:#2b94eb;
  stroke-width:7;
  stroke-dasharray:0 100;
  filter:drop-shadow(0 3px 7px rgba(43,148,235,.25));
  transition:stroke-dasharray .45s ease;
}
.contest-route-goal,
.contest-vertical-path{
  position:relative;
  z-index:2;
}
.contest-finish-stop{
  background:rgba(245,251,255,.70)!important;
  backdrop-filter:blur(6px);
}
.contest-stop--route .contest-stop-card{
  background:rgba(255,255,255,.66)!important;
  backdrop-filter:blur(5px);
}
.contest-vertical-path:before{display:none!important}
.contest-route-summary[hidden]{display:none!important}
.contest-route-board.is-complete .contest-finish-stop{
  border-color:#78bdf4;
  box-shadow:0 12px 30px rgba(28,132,219,.15);
}
.contest-route-board.is-complete .contest-finish-badge{
  transform:scale(1.06);
  box-shadow:0 0 0 7px rgba(41,147,233,.13),0 12px 26px rgba(22,131,228,.30);
}

@media(max-width:759px){
  .contest-route-board{padding-left:8px;padding-right:8px}
  .contest-route-line-base{stroke-width:7;stroke-dasharray:3 13}
  .contest-route-line-progress{stroke-width:6}
  .contest-stop--route .contest-stop-card{background:rgba(255,255,255,.72)!important}
}

/* IN26 v0.44 - mapa Sever -> most -> Juh, len cisla a orientacne dominanty */
.contest-map{
  position:relative;
  margin:0 18px;
  padding:12px 0 26px;
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:hidden;
}
.contest-map .contest-route-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  overflow:visible;
  pointer-events:none;
}
.contest-map .contest-route-line-base{
  stroke:rgba(87,164,227,.50);
  stroke-width:8;
  stroke-dasharray:4 14;
}
.contest-map .contest-route-line-progress{
  stroke:#238fe8;
  stroke-width:7;
  filter:drop-shadow(0 3px 8px rgba(35,143,232,.28));
}
.contest-map-start{
  position:relative;
  z-index:5;
  width:max-content;
  max-width:90%;
  margin:0 auto 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  text-align:center;
}
.contest-map-start strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  padding:12px 26px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(145deg,#36a3f5,#0876d5);
  box-shadow:0 10px 24px rgba(21,126,214,.25),0 0 0 6px rgba(47,154,238,.10);
  font-size:26px;
  line-height:1;
  font-weight:950;
  letter-spacing:.04em;
}
.contest-map-start span{
  color:#376b98;
  font-size:11px;
  font-weight:850;
}
.contest-map-zone{
  position:relative;
  min-height:520px;
  z-index:1;
}
.contest-zone-title{
  position:absolute;
  z-index:5;
  top:18px;
  left:24px;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:9px 14px 10px;
  border-radius:18px;
  background:rgba(241,249,255,.70);
  border:1px solid rgba(183,218,245,.72);
  backdrop-filter:blur(5px);
}
.contest-zone-title span{
  font-size:9px;
  letter-spacing:.14em;
  font-weight:900;
  color:#7596b2;
}
.contest-zone-title strong{
  font-size:26px;
  line-height:1;
  color:#0d4f92;
  font-weight:950;
}
.contest-map-zone-south .contest-zone-title{
  left:auto;
  right:24px;
}
.contest-map-stops{
  position:relative;
  z-index:4;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:80px 0 18px;
}
.contest-stop--map{
  position:relative;
  z-index:4;
  display:block;
  width:100%;
  height:70px;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.contest-stop-anchor{
  position:absolute;
  left:var(--route-x,var(--stop-x,50%));
  top:50%;
  width:2px;
  height:2px;
  transform:translate(-50%,-50%);
  opacity:0;
  pointer-events:none;
}
.contest-stop--map .contest-stop-number{
  position:absolute;
  left:var(--stop-x,50%);
  top:50%;
  transform:translate(-50%,-50%);
  width:64px;
  height:64px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(245,251,255,.94);
  border:4px solid #a8d4f5;
  color:#147fdc;
  font-size:27px;
  font-weight:950;
  box-shadow:0 7px 20px rgba(36,118,186,.17),0 0 0 5px rgba(255,255,255,.30);
  transition:.2s ease;
}
.contest-stop--map.locked{
  opacity:.46;
  cursor:not-allowed;
}
.contest-stop--map.current{
  opacity:1;
}
.contest-stop--map.current .contest-stop-number{
  background:linear-gradient(145deg,#48aafa,#1683e4);
  border-color:#fff;
  color:#fff;
  transform:translate(-50%,-50%) scale(1.08);
  box-shadow:0 0 0 7px rgba(41,147,233,.14),0 11px 26px rgba(36,118,186,.25);
}
.contest-stop--map.done-correct .contest-stop-number{
  background:#dff8ec;
  border-color:#6ed4a3;
  color:#16895b;
}
.contest-stop--map.done-wrong .contest-stop-number{
  background:#fff1f1;
  border-color:#ef9c9c;
  color:#c14e4e;
}
.contest-stop--map.done-correct .contest-stop-number:after,
.contest-stop--map.done-wrong .contest-stop-number:after{
  position:absolute;
  right:-5px;
  top:-5px;
  width:22px;
  height:22px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:13px;
  font-weight:950;
}
.contest-stop--map.done-correct .contest-stop-number:after{content:"✓";background:#20a66e}
.contest-stop--map.done-wrong .contest-stop-number:after{content:"×";background:#df6666;font-size:15px}

.contest-landmark{
  position:absolute;
  z-index:1;
  pointer-events:none;
  opacity:.90;
  filter:drop-shadow(0 12px 22px rgba(47,109,158,.16));
}
.contest-landmark svg{display:block;width:100%;height:100%}
.contest-landmark-church{
  right:4%;
  top:96px;
  width:128px;
  height:220px;
}
.contest-landmark-stadium{
  left:3%;
  top:88px;
  width:245px;
  height:150px;
}

.contest-river-crossing{
  position:relative;
  z-index:1;
  height:180px;
  margin:2px -10px 8px;
}
.contest-river-water{
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  top:38px;
  height:104px;
  background:
    repeating-linear-gradient(172deg,rgba(255,255,255,.32) 0 2px,transparent 2px 15px),
    linear-gradient(180deg,rgba(97,190,244,.70),rgba(46,151,219,.72));
  border-top:1px solid rgba(104,189,237,.75);
  border-bottom:1px solid rgba(58,148,208,.55);
  box-shadow:inset 0 10px 25px rgba(255,255,255,.22),inset 0 -9px 20px rgba(31,123,188,.12);
}
.contest-river-label{
  position:absolute;
  z-index:3;
  right:8%;
  top:70px;
  color:rgba(255,255,255,.96);
  font-size:18px;
  font-style:italic;
  font-weight:800;
  transform:rotate(-5deg);
  text-shadow:0 2px 6px rgba(18,86,135,.28);
}
.contest-bridge{
  position:absolute;
  z-index:3;
  left:50%;
  top:10px;
  width:76px;
  height:160px;
  transform:translateX(-50%);
}
.contest-bridge-road{
  position:absolute;
  left:18px;
  top:0;
  width:40px;
  height:160px;
  border-radius:12px;
  background:linear-gradient(90deg,#dce8f1,#f9fcff 40%,#edf5fb 60%,#d5e4ef);
  border:1px solid #a8c9df;
  box-shadow:0 10px 20px rgba(20,91,139,.18);
}
.contest-bridge-road:after{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  bottom:8px;
  width:2px;
  transform:translateX(-50%);
  background:repeating-linear-gradient(to bottom,#8bb6d2 0 8px,transparent 8px 16px);
}
.contest-bridge-rail{
  position:absolute;
  top:4px;
  bottom:4px;
  width:5px;
  border-radius:4px;
  background:#8bb9d9;
  box-shadow:0 0 0 2px rgba(255,255,255,.75);
}
.contest-bridge-rail.rail-left{left:11px}
.contest-bridge-rail.rail-right{right:11px}
.contest-bridge-point{
  position:absolute;
  left:50%;
  top:50%;
  width:4px;
  height:4px;
  transform:translate(-50%,-50%);
}

.contest-map-finish{
  position:relative;
  z-index:5;
  width:min(92%,460px);
  margin:14px auto 0;
  padding:14px 18px 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  border-radius:24px;
  background:rgba(238,248,255,.76);
  border:1px solid #c7e2f5;
  backdrop-filter:blur(6px);
  box-shadow:0 12px 28px rgba(39,104,158,.09);
}
.contest-finish-flag{font-size:28px;color:#167fdc;line-height:1}
.contest-map-finish>strong{
  color:#0d76d2;
  font-size:11px;
  letter-spacing:.16em;
  font-weight:950;
  margin-top:2px;
}
.contest-map-finish>b{
  display:block;
  margin-top:3px;
  color:#0b3471;
  font-size:28px;
  line-height:1;
  font-weight:950;
}
.contest-map .contest-route-summary{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:7px;
  margin-top:12px;
}
.contest-map .contest-route-summary[hidden]{display:none!important}
.contest-map .contest-route-summary span{
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  border:1px solid #d1e6f5;
  color:#315c84;
  font-size:11px;
  font-weight:800;
}
.contest-map.is-complete .contest-map-finish{
  border-color:#73baf1;
  box-shadow:0 0 0 7px rgba(41,147,233,.10),0 16px 34px rgba(39,104,158,.12);
}

@media(min-width:760px){
  .contest-map{margin:0 38px;padding-top:18px}
  .contest-map-start strong{min-width:190px;font-size:30px;padding:14px 34px}
  .contest-map-zone{min-height:610px}
  .contest-map-stops{padding-top:92px;gap:17px}
  .contest-stop--map{height:76px}
  .contest-stop--map .contest-stop-number{width:72px;height:72px;font-size:31px}
  .contest-landmark-church{right:6%;top:115px;width:155px;height:258px}
  .contest-landmark-stadium{left:4%;top:105px;width:310px;height:188px}
  .contest-zone-title{left:6%;top:32px}
  .contest-map-zone-south .contest-zone-title{left:auto;right:6%}
  .contest-zone-title strong{font-size:32px}
  .contest-river-crossing{height:205px;margin-left:-18px;margin-right:-18px}
  .contest-river-water{top:44px;height:118px}
  .contest-bridge{top:10px;height:184px;width:88px}
  .contest-bridge-road{height:184px;width:46px;left:21px}
  .contest-map-finish>b{font-size:34px}
}

@media(max-width:759px){
  .contest-map{margin:0 8px;padding-left:0;padding-right:0}
  .contest-map-zone{min-height:500px}
  .contest-map-stops{padding-top:82px;gap:7px}
  .contest-stop--map{height:66px}
  .contest-stop--map .contest-stop-number{width:58px;height:58px;font-size:24px;border-width:3px}
  .contest-zone-title{top:16px;left:8px;padding:7px 10px}
  .contest-map-zone-south .contest-zone-title{left:auto;right:8px}
  .contest-zone-title strong{font-size:22px}
  .contest-landmark-church{right:-3px;top:108px;width:92px;height:164px;opacity:.78}
  .contest-landmark-stadium{left:-5px;top:104px;width:152px;height:94px;opacity:.76}
  .contest-river-crossing{height:160px;margin-left:-4px;margin-right:-4px}
  .contest-river-water{top:33px;height:94px}
  .contest-bridge{height:150px;width:68px;top:5px}
  .contest-bridge-road{height:150px;width:36px;left:16px}
  .contest-bridge-rail.rail-left{left:10px}
  .contest-bridge-rail.rail-right{right:10px}
  .contest-river-label{right:6%;top:61px;font-size:15px}
  .contest-map-start strong{font-size:23px;min-width:140px}
  .contest-map-finish{width:94%}
  .contest-map-finish>b{font-size:26px}
  .contest-map .contest-route-line-base{stroke-width:7;stroke-dasharray:4 12}
  .contest-map .contest-route-line-progress{stroke-width:6}
}

/* IN26 v0.46 - vyrazna herna cesta + nove dominanty, bez zmeny sirky mapy */
.contest-map .contest-route-line-outline,
.contest-map .contest-route-line-base,
.contest-map .contest-route-line-progress,
.contest-map .contest-route-line-center{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contest-map .contest-route-line-outline{
  stroke:rgba(255,255,255,.86);
  stroke-width:22;
  filter:drop-shadow(0 5px 9px rgba(30,101,157,.16));
}
.contest-map .contest-route-line-base{
  stroke:rgba(72,165,231,.62);
  stroke-width:14;
  stroke-dasharray:none;
}
.contest-map .contest-route-line-progress{
  stroke:#087fdc;
  stroke-width:14;
  filter:drop-shadow(0 4px 8px rgba(8,127,220,.26));
}
.contest-map .contest-route-line-center{
  stroke:rgba(255,255,255,.94);
  stroke-width:3;
  stroke-dasharray:2 3.2;
  vector-effect:non-scaling-stroke;
}
.contest-landmark{
  opacity:1;
  filter:drop-shadow(0 13px 20px rgba(31,91,137,.18));
}
.contest-landmark-church svg,
.contest-landmark-stadium svg{
  overflow:visible;
}
.contest-landmark-church{
  right:5%;
}
.contest-landmark-stadium{
  left:3%;
}

@media(min-width:760px){
  .contest-landmark-church{width:170px;height:270px}
  .contest-landmark-stadium{width:325px;height:198px}
}

@media(max-width:759px){
  .contest-map .contest-route-line-outline{stroke-width:18}
  .contest-map .contest-route-line-base{stroke-width:11}
  .contest-map .contest-route-line-progress{stroke-width:11}
  .contest-map .contest-route-line-center{stroke-width:2.5;stroke-dasharray:2 3.2}
  .contest-landmark-church{width:106px;height:174px;opacity:.94}
  .contest-landmark-stadium{width:168px;height:104px;opacity:.94}
}

/* IN26 v0.48 - klukata cesta + klukaty Hornad */
.contest-map .contest-route-svg{
  z-index:2;
}
.contest-stop--map .contest-stop-number{
  background:#f8fcff;
  box-shadow:
    0 0 0 8px rgba(255,255,255,.94),
    0 7px 20px rgba(36,118,186,.18);
}
.contest-stop--map.current .contest-stop-number{
  box-shadow:
    0 0 0 8px rgba(255,255,255,.96),
    0 0 0 14px rgba(41,147,233,.12),
    0 11px 26px rgba(36,118,186,.25);
}
.contest-stop--map.done-correct .contest-stop-number,
.contest-stop--map.done-wrong .contest-stop-number{
  box-shadow:
    0 0 0 8px rgba(255,255,255,.95),
    0 7px 20px rgba(36,118,186,.14);
}

.contest-river-crossing{
  overflow:visible;
}
.contest-river-water{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}
.contest-river-bank{
  fill:none;
  stroke:rgba(52,138,195,.20);
  stroke-width:126;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contest-river-flow{
  fill:none;
  stroke:url(#riverBlue48);
  stroke-width:112;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 6px 10px rgba(25,112,171,.13));
}
.contest-river-ripple{
  fill:none;
  stroke:rgba(255,255,255,.46);
  stroke-width:3;
  stroke-linecap:round;
  stroke-dasharray:18 24;
}
.contest-river-ripple.ripple-b{
  stroke-opacity:.34;
  stroke-dasharray:10 18;
}
.contest-river-label{
  z-index:4;
  right:7%;
  top:48%;
  transform:translateY(-50%) rotate(-6deg);
}
.contest-bridge{
  z-index:5;
}

@media(max-width:759px){
  .contest-stop--map .contest-stop-number{
    box-shadow:
      0 0 0 6px rgba(255,255,255,.94),
      0 6px 16px rgba(36,118,186,.16);
  }
  .contest-stop--map.current .contest-stop-number{
    box-shadow:
      0 0 0 6px rgba(255,255,255,.96),
      0 0 0 11px rgba(41,147,233,.12),
      0 9px 22px rgba(36,118,186,.23);
  }
  .contest-river-bank{stroke-width:116}
  .contest-river-flow{stroke-width:102}
  .contest-river-label{right:4%;font-size:15px}
}

/* IN26 v0.50 - body trasy na ceste, dalsi krok nad otazkou, vyraznejsi ciel */
.contest-map .contest-route-svg{
  z-index:2;
}
.contest-stop--map{
  z-index:5;
}
.contest-stop--map.locked{
  opacity:1;
  cursor:not-allowed;
}
.contest-stop--map.locked .contest-stop-number{
  background:#f8fcff;
  border-color:#d6ebfa;
  color:#9bcaf0;
  box-shadow:
    0 0 0 9px rgba(255,255,255,.96),
    0 6px 18px rgba(36,118,186,.10);
}
.contest-stop--map .contest-stop-number{
  position:absolute;
  z-index:6;
  background:#f8fcff;
  box-shadow:
    0 0 0 9px rgba(255,255,255,.98),
    0 7px 20px rgba(36,118,186,.18);
}
.contest-stop--map.current .contest-stop-number{
  box-shadow:
    0 0 0 9px rgba(255,255,255,.98),
    0 0 0 15px rgba(41,147,233,.12),
    0 11px 26px rgba(36,118,186,.25);
}
.contest-stop--map.done-correct .contest-stop-number,
.contest-stop--map.done-wrong .contest-stop-number{
  box-shadow:
    0 0 0 9px rgba(255,255,255,.98),
    0 7px 20px rgba(36,118,186,.14);
}

.contest-next-top[hidden]{display:none!important}
.contest-next-top{
  margin:0 0 16px;
  padding:12px;
  border-radius:18px;
  background:linear-gradient(180deg,#eef8ff,#e6f4ff);
  border:1px solid #cfe6f7;
  box-shadow:0 8px 20px rgba(42,117,173,.08);
}
.contest-next-top .primary-game-action{
  width:100%;
  margin:0;
  min-height:52px;
  font-size:17px;
}

.contest-map .contest-route-summary{
  gap:10px;
  margin-top:16px;
}
.contest-map .contest-route-summary span{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:16px;
  background:#fff;
  border:2px solid #c7e2f5;
  color:#0b3471;
  box-shadow:0 5px 12px rgba(39,104,158,.08);
}
.contest-map .contest-route-summary span b{
  min-width:48px;
  font-size:13px;
  line-height:1;
  color:#167fdc;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.contest-map .contest-route-summary span em{
  font-style:normal;
  font-size:16px;
  line-height:1.15;
  font-weight:950;
  letter-spacing:.025em;
  color:#0b3471;
}

.in26-qr-svg{
  display:block;
  max-width:100%;
  height:auto;
  margin:0 auto;
  background:#fff;
  border-radius:12px;
  box-shadow:0 0 0 10px #fff,0 8px 24px rgba(11,52,113,.12);
}
.in26-qr-fallback{
  padding:16px;
  border-radius:12px;
  background:#fff;
  color:#0b3471;
  font-weight:900;
  word-break:break-all;
}

@media(max-width:759px){
  .contest-stop--map.locked .contest-stop-number,
  .contest-stop--map .contest-stop-number{
    box-shadow:
      0 0 0 7px rgba(255,255,255,.98),
      0 6px 16px rgba(36,118,186,.14);
  }
  .contest-stop--map.current .contest-stop-number{
    box-shadow:
      0 0 0 7px rgba(255,255,255,.98),
      0 0 0 12px rgba(41,147,233,.12),
      0 9px 22px rgba(36,118,186,.23);
  }
  .contest-map .contest-route-summary{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }
  .contest-map .contest-route-summary span{
    justify-content:center;
    padding:10px 12px;
  }
  .contest-map .contest-route-summary span em{
    font-size:15px;
  }
}

/* IN26 v0.51 - cisla vedla cesty, nie pod nou */
.contest-stop--map .contest-stop-number{
  left:var(--stop-x,50%);
}
.contest-stop-anchor{
  left:var(--route-x,var(--stop-x,50%));
}
@media(max-width:759px){
  .contest-stop--map .contest-stop-number{
    width:54px;
    height:54px;
    font-size:23px;
  }
}

/* ===== IN26 v0.52 – sutaz ako prva hra ===== */
.contest-preview-featured{
  position:relative;
  margin:6px 0 14px;
  min-height:104px;
  grid-template-columns:60px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:18px 18px 18px 16px;
  border:1px solid #ffd36b;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,252,242,.98),rgba(255,255,255,.95));
  box-shadow:0 16px 34px rgba(29,95,160,.10),0 0 0 4px rgba(255,210,92,.12);
  overflow:hidden;
}
.contest-preview-featured::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at right top,rgba(255,214,99,.22),transparent 34%);
  pointer-events:none;
}
.contest-preview-featured .game-circle{
  width:58px;
  height:58px;
  background:linear-gradient(145deg,#ffc84c,#f2a100);
  color:#fff;
  box-shadow:0 10px 22px rgba(236,176,22,.28);
}
.contest-preview-copy{display:grid;gap:5px;min-width:0;position:relative;z-index:1}
.contest-preview-featured strong{font-size:22px;line-height:1.1;color:#143f7c;margin:0}
.contest-preview-featured small{font-size:13px;line-height:1.45;color:#5a79a0}
.contest-preview-featured em{font-style:normal;font-size:12px;line-height:1.35;color:#b16c00;font-weight:900;letter-spacing:.01em}
.contest-preview-cta{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:44px;
  padding:0 16px;
  border-radius:999px;
  background:linear-gradient(135deg,#43a0f4,#227dd9);
  color:#fff;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 12px 24px rgba(36,126,218,.22);
}
.contest-badge{
  position:absolute;
  top:12px;
  right:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 10px;
  border-radius:999px;
  background:linear-gradient(135deg,#ffcb4e,#f3ac10);
  color:#7a4b00;
  font-size:11px;
  font-weight:950;
  letter-spacing:.06em;
}
.contest-preview-closed{border-style:dashed;box-shadow:none}
@media (max-width:759px){
  .contest-preview-featured{grid-template-columns:52px minmax(0,1fr);padding:16px 14px 14px;gap:12px}
  .contest-preview-featured .game-circle{width:52px;height:52px}
  .contest-preview-featured strong{font-size:18px;padding-right:64px}
  .contest-preview-featured small{font-size:12px}
  .contest-preview-featured em{font-size:11px}
  .contest-preview-cta{grid-column:1/-1;justify-content:center;width:100%;margin-top:4px}
}

/* IN26 v0.56 FIX - zjednoteny aktualny CSS po kolizii v0.52/v0.54 */


/* ===== IN26 v0.57 – domace skratky + odpovede priamo v teme ===== */
.home-action-grid{
  display:grid;
  gap:10px;
  margin-top:13px;
}
.home-action-card{
  position:relative;
  min-height:72px;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 18px;
  gap:11px;
  align-items:center;
  padding:11px 13px;
  border:1px solid #d9e9f6;
  border-radius:16px;
  background:rgba(255,255,255,.94);
  box-shadow:0 7px 18px rgba(37,94,147,.08);
  color:#163f78;
  text-decoration:none;
}
.home-action-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#e7f4ff;
  color:#2586e3;
}
.home-action-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.home-action-card>span:nth-child(2){min-width:0}
.home-action-card strong{display:block;font-size:15px;line-height:1.2;color:#123b78;margin-bottom:3px}
.home-action-card small{display:block;font-size:11px;line-height:1.35;color:#5c7b9d}
.home-action-arrow{font-size:28px;line-height:1;color:#2486e5}
.home-action-questions .home-action-icon{background:#eef0ff;color:#625fd2}
.home-action-games .home-action-icon{background:#e8f8f0;color:#259469}

.topic-answers-section{
  margin-top:26px;
  padding-top:4px;
}
.topic-answers-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.topic-answers-head span{
  display:block;
  margin-bottom:3px;
  color:#6d8aa8;
  font-size:9px;
  font-weight:950;
  letter-spacing:.12em;
}
.topic-answers-head h2{
  margin:0;
  color:#103b77;
  font-size:20px;
  line-height:1.15;
}
.topic-answers-head a{
  color:#1682e8;
  font-size:11px;
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
}
.topic-answer-list{display:grid;gap:8px}
.topic-answer-card{margin:0;grid-template-columns:34px 1fr}
.topic-answer-card .answer-more{display:none}

@media(min-width:760px){
  .home-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
  .home-action-card{min-height:96px;padding:16px;grid-template-columns:54px minmax(0,1fr) 18px;border-radius:20px}
  .home-action-icon{width:52px;height:52px;border-radius:15px}
  .home-action-icon svg{width:30px;height:30px}
  .home-action-card strong{font-size:17px}
  .home-action-card small{font-size:12px}
  .topic-answers-section{margin-top:32px}
  .topic-answers-head h2{font-size:24px}
  .topic-answer-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .topic-answer-card{padding:15px 14px}
}

@media(hover:hover) and (pointer:fine){
  .home-action-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .home-action-card:hover{transform:translateY(-2px);border-color:#b9daf3;box-shadow:0 14px 28px rgba(37,94,147,.13)}
  .topic-answers-head a:hover{text-decoration:underline}
}


/* ===== IN26 v0.59 – transparentny kandidat + posterovy odznak + intro v hero ===== */

/* Custom hero uz nema byt horizontalna fotka s bielym platnom.
   PNG kandidata sa vykresli ako samostatny vyrez nad celostrankovym pozadim. */
.candidate-stage.has-custom-hero{
  background:transparent!important;
  isolation:isolate;
  overflow:hidden;
}
.candidate-stage.has-custom-hero::before,
.candidate-stage.has-custom-hero::after{
  display:none!important;
}
.candidate-stage.has-custom-hero .candidate-hero-media{
  position:absolute;
  z-index:3;
  inset:auto 0 0 auto;
  width:auto;
  height:92%;
  max-width:58%;
  object-fit:contain;
  object-position:right bottom!important;
  pointer-events:none;
  user-select:none;
}
.candidate-stage.has-custom-hero.has-candidate-intro .candidate-hero-media{
  bottom:76px;
  height:72%;
}

/* Text vlavo zostava citatelny bez bieleho prekrytia cez kandidata. */
.candidate-stage.has-custom-hero .candidate-copy{
  position:relative;
  z-index:6;
  width:56%;
}
.candidate-stage.has-custom-hero .candidate-copy h1,
.candidate-stage.has-custom-hero .candidate-lead,
.candidate-stage.has-custom-hero .candidate-mini{
  text-shadow:0 1px 0 rgba(255,255,255,.86),0 2px 8px rgba(255,255,255,.34);
}

/* Volebne cislo podla kruhoveho vizualu z predlohy:
   biele jadro + viacfarebny obvod + tmavofialove cislo. */
.candidate-number,
.candidate-stage.has-custom-hero .candidate-number{
  position:absolute;
  overflow:visible;
  display:grid;
  place-items:center;
  border:4px solid #fff;
  border-radius:50%;
  color:#3d218f;
  background:conic-gradient(from 210deg,
    #18b9dc 0deg 48deg,
    #2e7bd2 48deg 118deg,
    #613ca4 118deg 152deg,
    #d92485 152deg 226deg,
    #ef3d69 226deg 278deg,
    #f18d31 278deg 315deg,
    #18b9dc 315deg 360deg);
  box-shadow:0 8px 20px rgba(25,74,126,.20);
}
.candidate-number::before,
.candidate-stage.has-custom-hero .candidate-number::before{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:50%;
  background:#fff;
  z-index:0;
}
.candidate-number strong,
.candidate-stage.has-custom-hero .candidate-number strong{
  position:relative;
  z-index:1;
  color:#3d218f;
  text-shadow:none;
  margin:0;
  font-weight:950;
  line-height:1;
}
.candidate-number span,
.candidate-stage.has-custom-hero .candidate-number span{display:none}

/* Predstavenie kandidata je sucast hero – nevytvara dalsiu kartu medzi hero a temami. */
.candidate-intro-strip{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:10;
  min-height:72px;
  padding:10px 15px 11px;
  color:#fff;
  background:linear-gradient(90deg,rgba(55,30,131,.96) 0%,rgba(91,30,132,.96) 52%,rgba(174,31,111,.96) 100%);
  box-shadow:0 -8px 22px rgba(53,31,112,.10);
}
.candidate-intro-strip strong{
  display:block;
  margin:0 0 3px;
  font-size:12px;
  line-height:1.15;
  font-weight:950;
}
.candidate-intro-strip p{
  margin:0;
  max-width:100%;
  font-size:10px;
  line-height:1.3;
  color:rgba(255,255,255,.98);
}
body.senior-mode .candidate-intro-strip strong{font-size:14px}
body.senior-mode .candidate-intro-strip p{font-size:12px;line-height:1.36}

@media(max-width:430px){
  .candidate-stage.has-custom-hero{height:270px}
  .candidate-stage.has-custom-hero.has-candidate-intro{height:340px}
  .candidate-stage.has-custom-hero .candidate-hero-media{
    right:-6px;
    bottom:0;
    height:83%;
    max-width:55%;
  }
  .candidate-stage.has-custom-hero.has-candidate-intro .candidate-hero-media{
    bottom:80px;
    height:68%;
  }
  .candidate-stage.has-custom-hero .candidate-number{
    top:8px;
    right:10px;
    width:76px;
    height:76px;
  }
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:39px}
  .candidate-stage.has-custom-hero .candidate-copy{width:57%;padding-top:14px}
  .candidate-stage.has-custom-hero .candidate-copy h1{font-size:31px}
  .candidate-stage.has-custom-hero .candidate-lead{font-size:16px;max-width:180px}
  .candidate-stage.has-custom-hero .candidate-mini{font-size:10.5px;max-width:180px}
}

@media(max-width:360px){
  .candidate-stage.has-custom-hero .candidate-number{width:69px;height:69px;right:7px}
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:35px}
  .candidate-stage.has-custom-hero .candidate-copy{width:58%}
  .candidate-intro-strip p{font-size:9.5px}
}

@media(min-width:760px){
  .candidate-stage.has-custom-hero{height:440px}
  .candidate-stage.has-custom-hero.has-candidate-intro{height:535px}
  .candidate-stage.has-custom-hero .candidate-hero-media{
    right:38px;
    bottom:0;
    height:95%;
    max-width:49%;
  }
  .candidate-stage.has-custom-hero.has-candidate-intro .candidate-hero-media{
    bottom:102px;
    height:78%;
  }
  .candidate-stage.has-custom-hero .candidate-copy{
    width:52%;
    padding:82px 0 0 58px;
  }
  .candidate-stage.has-custom-hero .candidate-number{
    top:28px;
    right:38px;
    width:108px;
    height:108px;
    border-width:5px;
  }
  .candidate-stage.has-custom-hero .candidate-number::before{inset:9px}
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:57px}
  .candidate-intro-strip{
    min-height:96px;
    padding:15px 28px 16px;
  }
  .candidate-intro-strip strong{font-size:16px;margin-bottom:5px}
  .candidate-intro-strip p{font-size:13px;line-height:1.38;max-width:960px}
}

/* ===== IN26 v0.60 – jednotný vizuál volebných čísel + predstavenie kandidáta ===== */
:root{
  --in26-number-purple:#3b168e;
  --in26-number-shadow:0 8px 22px rgba(44,49,126,.18);
  --in26-number-ring:conic-gradient(from 218deg,
    #18c7df 0deg,
    #1ab7e9 35deg,
    #246fe0 78deg,
    #5530b7 126deg,
    #a719a6 165deg,
    #ef0084 212deg,
    #ff225f 265deg,
    #ff7b31 315deg,
    #18c7df 360deg);
}

/* Hero – kruh v štýle dodanej predlohy: farebný prstenec, biele jadro, fialové číslo. */
.candidate-number,
.candidate-stage.has-custom-hero .candidate-number{
  border:7px solid transparent!important;
  border-radius:50%!important;
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box!important;
  color:var(--in26-number-purple)!important;
  box-shadow:var(--in26-number-shadow)!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
}
.candidate-number::before,
.candidate-stage.has-custom-hero .candidate-number::before{display:none!important}
.candidate-number strong,
.candidate-stage.has-custom-hero .candidate-number strong{
  margin:0!important;
  color:var(--in26-number-purple)!important;
  font-weight:950!important;
  line-height:1!important;
  text-shadow:none!important;
}

/* Samostatné textové pole pod hero. Nezakrýva fotografiu kandidáta. */
.candidate-intro-panel{
  position:relative;
  z-index:12;
  margin:12px 0 8px;
  padding:15px 17px 16px;
  overflow:hidden;
  border:1px solid rgba(119,174,222,.34);
  border-radius:17px;
  background:rgba(255,255,255,.90);
  box-shadow:0 8px 24px rgba(39,92,145,.09);
  color:#254f7d;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.candidate-intro-panel::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:4px;
  background:linear-gradient(90deg,#18c7df 0%,#246fe0 28%,#6b2db3 55%,#ef0084 78%,#ff6f35 100%);
}
.candidate-intro-panel h2{
  margin:0 0 7px;
  color:#113b78;
  font-size:17px;
  line-height:1.15;
  font-weight:950;
}
.candidate-intro-panel p{
  margin:0;
  color:#315c88;
  font-size:12px;
  line-height:1.52;
}
body.senior-mode .candidate-intro-panel h2{font-size:20px}
body.senior-mode .candidate-intro-panel p{font-size:15px;line-height:1.6}

/* Predchádzajúci pás sa už nepoužíva; hero ostáva plnej výšky aj keď je predstavenie vyplnené. */
.candidate-stage.has-custom-hero.has-candidate-intro{height:auto}
.candidate-stage.has-custom-hero.has-candidate-intro .candidate-hero-media{bottom:0;height:92%}

/* Súťaž – rovnaký volebný kruh na mape. Stav hry sa ukazuje glowom/ikonou, nie zmenou dizajnu čísla. */
.contest-stop-number,
.contest-stop--route .contest-stop-number,
.contest-stop--map .contest-stop-number{
  border:5px solid transparent!important;
  border-radius:50%!important;
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box!important;
  color:var(--in26-number-purple)!important;
  font-weight:950!important;
  box-shadow:var(--in26-number-shadow)!important;
}
.contest-stop.current .contest-stop-number,
.contest-stop--route.current .contest-stop-number,
.contest-stop--map.current .contest-stop-number{
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box!important;
  color:var(--in26-number-purple)!important;
  box-shadow:0 0 0 7px rgba(56,142,229,.13),0 10px 25px rgba(50,79,158,.23)!important;
}
.contest-stop.done-correct .contest-stop-number,
.contest-stop.done-wrong .contest-stop-number,
.contest-stop--route.done-correct .contest-stop-number,
.contest-stop--route.done-wrong .contest-stop-number,
.contest-stop--map.done-correct .contest-stop-number,
.contest-stop--map.done-wrong .contest-stop-number{
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box!important;
  color:var(--in26-number-purple)!important;
}

/* Detail kandidáta v súťaži – samotné číslo je kruh, obvod je pod ním samostatne. */
.contest-candidate-badge{
  width:76px!important;
  height:76px!important;
  min-height:76px!important;
  padding:0!important;
  margin:0 0 7px!important;
  border:6px solid transparent!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box!important;
  color:var(--in26-number-purple)!important;
  box-shadow:var(--in26-number-shadow)!important;
  font-size:36px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:-.02em!important;
  text-transform:none!important;
}
.contest-candidate-district{
  display:block;
  margin:0 0 5px;
  color:#6d7391;
  font-size:10px;
  line-height:1.2;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.contest-candidate-district[hidden]{display:none!important}

/* Ak kandidát v súťaži nemá fotografiu, aj fallback číslo dostane rovnaký vizuál. */
.contest-candidate-photo>span{
  width:76px;
  height:76px;
  border:5px solid transparent;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box;
  color:var(--in26-number-purple);
  font-size:34px;
  font-weight:950;
}

@media(max-width:430px){
  .candidate-intro-panel{margin-top:9px;padding:13px 14px 14px;border-radius:15px}
  .candidate-intro-panel h2{font-size:16px;margin-bottom:5px}
  .candidate-intro-panel p{font-size:11.5px;line-height:1.48}
  .candidate-stage.has-custom-hero .candidate-number{border-width:6px!important}
  .contest-candidate-badge{width:64px!important;height:64px!important;min-height:64px!important;border-width:5px!important;font-size:30px!important}
}

@media(min-width:760px){
  .candidate-intro-panel{
    margin:16px 38px 12px;
    padding:18px 22px 20px;
    border-radius:20px;
  }
  .candidate-intro-panel h2{font-size:20px;margin-bottom:8px}
  .candidate-intro-panel p{font-size:14px;line-height:1.55}
  .candidate-stage.has-custom-hero .candidate-number{border-width:9px!important}
}

/* Hlavné volebné číslo na úvode súťaže používa rovnaký prstenec. */
.contest-hero-badge{
  border:7px solid transparent!important;
  border-radius:50%!important;
  background:
    linear-gradient(#fff,#fff) padding-box,
    var(--in26-number-ring) border-box!important;
  color:var(--in26-number-purple)!important;
  box-shadow:var(--in26-number-shadow)!important;
  font-weight:950!important;
}

/* ===== IN26 v0.61 – mobile: volebne cislo mimo tvare kandidata ===== */
@media(max-width:430px){
  /* Kruh moze ist mierne nad hero; na pravej strane neprekryje vekovy odznak. */
  .candidate-stage.has-custom-hero{overflow:visible}
  .candidate-stage.has-custom-hero .candidate-number{
    top:-26px!important;
    right:7px!important;
    width:70px!important;
    height:70px!important;
    border-width:6px!important;
  }
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:36px!important}
}
@media(max-width:360px){
  .candidate-stage.has-custom-hero .candidate-number{
    top:-23px!important;
    right:5px!important;
    width:64px!important;
    height:64px!important;
    border-width:5px!important;
  }
  .candidate-stage.has-custom-hero .candidate-number strong{font-size:33px!important}
}

/* ===== IN26 v0.62 – mobile typography pass =====
   Verejna cast je primarne mobilna: zvacsene texty bez zmeny desktopu. */
@media(max-width:430px){
  /* Hlavicka a menu */
  .header-location{font-size:14px}
  .header-context{font-size:13px}
  .mobile-menu>a:not(.menu-age){font-size:17px}
  .menu-age{font-size:15px}

  /* Vyber veku */
  .age-copy h1{font-size:clamp(31px,8.8vw,36px);line-height:1.08}
  .age-copy p{font-size:17px;line-height:1.42}
  .age-choice strong{font-size:18.5px;line-height:1.2}
  .age-note strong{font-size:16px}
  .age-note p{font-size:14.5px;line-height:1.55}

  /* Home */
  .age-badge{font-size:13.5px;line-height:1.18;padding-right:14px}
  .candidate-copy h1{font-size:clamp(36px,10vw,40px);line-height:1.01}
  .candidate-lead{font-size:clamp(19px,5.4vw,22px);line-height:1.22;max-width:205px}
  .candidate-mini{font-size:14px;line-height:1.45;max-width:205px}

  .candidate-intro-panel{padding:16px 16px 17px}
  .candidate-intro-panel h2{font-size:22px!important;line-height:1.18;margin-bottom:9px}
  .candidate-intro-panel p{font-size:16px!important;line-height:1.58}

  .home-topic-card{min-height:126px;padding:14px 13px 13px}
  .home-topic-card strong{font-size:17.5px;line-height:1.18}
  .home-topic-card small{font-size:14px;line-height:1.38;padding-right:14px}
  .wide-cta{font-size:17.5px;min-height:52px;height:auto;padding:10px 16px}
  .script-quote{font-size:16.5px;line-height:1.45}
  .minor-banner{font-size:14px;line-height:1.55}

  /* Otazky a odpovede */
  .qa-intro h1{font-size:clamp(31px,8.8vw,35px);line-height:1.05}
  .qa-intro p{font-size:16px;line-height:1.48}
  .question-box label{font-size:16px}
  .question-box textarea{font-size:16px;line-height:1.45}
  .question-meta span{font-size:11px}
  .send-question{font-size:16px;min-height:44px;height:auto;padding:9px 12px}
  .form-status{font-size:14px}
  .answer-list h2{font-size:16px}
  .answer-card h3{font-size:15px;line-height:1.32}
  .answer-card small{font-size:11px}
  .answer-card p{font-size:14px;line-height:1.48}
  .empty-answer{font-size:15px;line-height:1.45}

  /* Temy */
  .simple-heading h1{font-size:clamp(31px,8.8vw,35px);line-height:1.06}
  .simple-heading p{font-size:16px;line-height:1.48}
  .topic-row-card{min-height:88px}
  .topic-row-card strong{font-size:17.5px;line-height:1.22}
  .topic-row-card small{font-size:14px;line-height:1.42}
  .back-link{font-size:15px}
  .topic-detail-card h1{font-size:clamp(31px,8.8vw,35px);line-height:1.08}
  .topic-subtitle{font-size:16px;line-height:1.45}
  .topic-copy{font-size:17px;line-height:1.72}

  /* Hry */
  .games-intro h1{font-size:clamp(29px,8vw,33px);line-height:1.06}
  .games-intro p{font-size:15.5px;line-height:1.5}
  .game-row{min-height:90px}
  .game-row strong{font-size:17.5px;line-height:1.22}
  .game-row small{font-size:14px;line-height:1.4}
  .quiz-progress{font-size:13px}
  .quiz-box h2{font-size:24px;line-height:1.25}
  .quiz-options button{font-size:16px;line-height:1.35;min-height:49px}

  /* Sutaz */
  .contest-preview strong{font-size:16px}
  .contest-preview small{font-size:13.5px;line-height:1.45}
  .contest-eyebrow{font-size:12.5px}
  .contest-hero h1{font-size:clamp(31px,8.8vw,35px);line-height:1.06}
  .contest-hero p{font-size:16px;line-height:1.5}
  .contest-prize-strip small{font-size:13px}
  .contest-prize-strip strong{font-size:19px}
  .contest-prize-strip p{font-size:14px;line-height:1.4}
  .contest-scorebar span{font-size:12px}
  .contest-scorebar small{font-size:12px}
  .contest-stop-name{font-size:12.5px;line-height:1.25}
  .contest-stop-points{font-size:11px}
  .contest-rules-card strong{font-size:17px}
  .contest-rules-card p{font-size:14px;line-height:1.55}
  .contest-rules-card small{font-size:12.5px;line-height:1.4}
  .contest-candidate-name{font-size:24px!important}
  .contest-candidate-slogan{font-size:15px!important;line-height:1.42}
  .contest-candidate-points{font-size:12.5px!important}
  .contest-candidate-profile{font-size:14.5px!important;line-height:1.6}
  .contest-question-label{font-size:13px}
  .contest-modal-card h2{font-size:24px!important;line-height:1.24}
  .contest-answer-grid button{font-size:16px!important;line-height:1.35}
  .contest-feedback strong{font-size:17px}
  .contest-feedback p{font-size:14px;line-height:1.5}
  .contest-feedback>a{font-size:14px}
  .contest-result-card>p{font-size:15px;line-height:1.55}
  .contest-result-card>small{font-size:12px}
  .contest-result-lookup label{font-size:14px}
  .contest-status p{font-size:14px!important}
  .contest-district-head span{font-size:11.5px}
  .contest-stop--route .contest-stop-name{font-size:15px;line-height:1.25}
  .contest-stop--route .contest-stop-points{font-size:11.5px}
  .contest-route-summary span{font-size:12px}

  /* Senior rezim musi ostat este citatelnejsi nez bezny mobil. */
  body.senior-mode .age-badge{font-size:15px}
  body.senior-mode .candidate-copy h1{font-size:41px}
  body.senior-mode .candidate-lead{font-size:23px}
  body.senior-mode .candidate-mini{font-size:16px}
  body.senior-mode .candidate-intro-panel h2{font-size:25px!important}
  body.senior-mode .candidate-intro-panel p{font-size:18px!important;line-height:1.65}
  body.senior-mode .home-topic-card strong{font-size:20px}
  body.senior-mode .home-topic-card small{font-size:16px}
  body.senior-mode .qa-intro p,
  body.senior-mode .simple-heading p{font-size:18px}
  body.senior-mode .answer-card h3{font-size:17px}
  body.senior-mode .answer-card p{font-size:16px}
  body.senior-mode .topic-row-card strong{font-size:20px}
  body.senior-mode .topic-row-card small{font-size:16px}
  body.senior-mode .topic-copy{font-size:19px;line-height:1.8}
}


/* UPRAVA 05: spodny rukopisny slogan na home - lepsia citatelnost */
.script-quote{color:#ffffff!important;font-weight:800;text-shadow:0 2px 8px rgba(17,55,122,.38),0 1px 2px rgba(17,55,122,.45);letter-spacing:.2px}
@media(max-width:430px){.script-quote{font-size:18px!important;line-height:1.5!important;color:#ffffff!important;font-weight:800!important;text-shadow:0 2px 10px rgba(17,55,122,.46),0 1px 2px rgba(17,55,122,.58);padding:0 10px}}


/* ===== IN26 v0.64 – nove logo IN a podpis pod predstavenim kandidata ===== */
.brand{display:inline-flex;align-items:flex-end;gap:2px;text-decoration:none}
.brand .brand-in{position:relative;display:inline-block;font-size:1em;font-weight:1000;letter-spacing:-.09em;line-height:.9;color:#173f86;text-transform:uppercase;padding-right:3px}
.brand .brand-in::after{content:"";position:absolute;right:3px;bottom:2px;width:.27em;height:.62em;background:linear-gradient(180deg,#4b96ea 0%,#1e5da9 100%);clip-path:polygon(48% 0,62% 12%,56% 34%,82% 52%,60% 56%,58% 76%,44% 100%,30% 78%,34% 58%,13% 56%,39% 33%,33% 14%);opacity:.95;transform:rotate(7deg)}
.brand .brand-26{font-size:1em;font-weight:950;letter-spacing:-.08em;line-height:.9;color:#5daaf6}
.menu-brand{display:inline-flex;align-items:flex-end;gap:2px;font-size:24px;line-height:1}
.menu-brand .brand-in{position:relative;display:inline-block;font-weight:1000;letter-spacing:-.09em;line-height:.9;color:#16417f;padding-right:3px}
.menu-brand .brand-in::after{content:"";position:absolute;right:3px;bottom:2px;width:.27em;height:.62em;background:linear-gradient(180deg,#4b96ea 0%,#1e5da9 100%);clip-path:polygon(48% 0,62% 12%,56% 34%,82% 52%,60% 56%,58% 76%,44% 100%,30% 78%,34% 58%,13% 56%,39% 33%,33% 14%);opacity:.95;transform:rotate(7deg)}
.menu-brand .brand-26{font-weight:950;letter-spacing:-.08em;line-height:.9;color:#56a4f6}
.candidate-signature{margin-top:14px;display:flex;justify-content:center;align-items:center}
.candidate-signature img{display:block;width:min(86%,300px);max-width:300px;height:auto;mix-blend-mode:multiply;opacity:.98}
@media(min-width:768px){.candidate-signature{margin-top:18px}.candidate-signature img{width:min(70%,360px);max-width:360px}}
@media(max-width:430px){.brand .brand-in,.brand .brand-26{line-height:.88}.brand .brand-in::after{right:2px;bottom:1px}.candidate-signature{margin-top:12px}.candidate-signature img{width:min(88%,280px)}}


/* ===== IN26 v0.65 – hlavne logo ako PNG ===== */
.brand{display:inline-flex;align-items:center;flex:0 0 auto;text-decoration:none}
.brand img{display:block;width:auto;height:42px;max-width:150px;object-fit:contain}
.menu-brand{display:inline-flex;align-items:center;line-height:1}
.menu-brand img{display:block;width:auto;height:34px;max-width:130px;object-fit:contain}
@media(max-width:430px){
  .brand img{height:38px;max-width:135px}
  .menu-brand img{height:32px;max-width:120px}
}

/* ===== IN26 v0.66 – volebný kruh ako PNG + číslo nad ním ===== */
:root{
  --in26-number-text:#2f1f88;
  --in26-number-png:url('../img/number-ring.png');
}

/* PNG je pozadie prvku, takže číslo zostáva vždy nad obrázkom. */
.candidate-number,
.candidate-stage.has-custom-hero .candidate-number,
.contest-hero-badge,
.contest-candidate-badge,
.contest-candidate-photo>span,
.contest-stop-number,
.contest-stop--route .contest-stop-number,
.contest-stop--map .contest-stop-number{
  border:0!important;
  border-radius:0!important;
  background:transparent var(--in26-number-png) center/contain no-repeat!important;
  box-shadow:none!important;
  color:var(--in26-number-text)!important;
  overflow:visible!important;
}

/* staré CSS pseudo-vrstvy na home vypneme – tie predtým vedeli prekryť číslo */
.candidate-number::before,
.candidate-stage.has-custom-hero .candidate-number::before{
  display:none!important;
  content:none!important;
}

.candidate-number strong,
.candidate-stage.has-custom-hero .candidate-number strong{
  position:relative!important;
  z-index:2!important;
  margin:0!important;
  color:var(--in26-number-text)!important;
  font-weight:950!important;
  line-height:1!important;
  text-shadow:none!important;
}
.candidate-number span,
.candidate-stage.has-custom-hero .candidate-number span{display:none!important}

/* Súťaž – aj stavy nechávajú rovnaký PNG kruh, mení sa iba glow/ikona stavu. */
.contest-stop.current .contest-stop-number,
.contest-stop--route.current .contest-stop-number,
.contest-stop--map.current .contest-stop-number,
.contest-stop.done-correct .contest-stop-number,
.contest-stop.done-wrong .contest-stop-number,
.contest-stop--route.done-correct .contest-stop-number,
.contest-stop--route.done-wrong .contest-stop-number,
.contest-stop--map.done-correct .contest-stop-number,
.contest-stop--map.done-wrong .contest-stop-number{
  background:transparent var(--in26-number-png) center/contain no-repeat!important;
  color:var(--in26-number-text)!important;
  border:0!important;
}
.contest-stop.current .contest-stop-number,
.contest-stop--route.current .contest-stop-number,
.contest-stop--map.current .contest-stop-number{
  box-shadow:0 0 0 7px rgba(56,142,229,.13),0 10px 25px rgba(50,79,158,.23)!important;
}
.contest-stop.done-correct .contest-stop-number,
.contest-stop.done-wrong .contest-stop-number,
.contest-stop--route.done-correct .contest-stop-number,
.contest-stop--route.done-wrong .contest-stop-number,
.contest-stop--map.done-correct .contest-stop-number,
.contest-stop--map.done-wrong .contest-stop-number{
  box-shadow:none!important;
}

/* číslo je text prvku – background ho už nemôže prekryť */
.contest-hero-badge,
.contest-candidate-badge,
.contest-candidate-photo>span,
.contest-stop-number,
.contest-stop--route .contest-stop-number,
.contest-stop--map .contest-stop-number{
  font-weight:950!important;
  text-shadow:none!important;
}


/* ===== IN26 v0.67 – formatovany obsah tem mesta ===== */
.topic-copy p{margin:0 0 1.05em}
.topic-copy p:last-child{margin-bottom:0}
.topic-copy h2,.topic-copy h3,.topic-copy h4,.topic-copy h5{color:#103c78;font-weight:950;letter-spacing:-.02em;line-height:1.18}
.topic-copy h2{font-size:1.55em;margin:1.35em 0 .55em}
.topic-copy h3{font-size:1.28em;margin:1.2em 0 .5em}
.topic-copy h4,.topic-copy h5{font-size:1.1em;margin:1.05em 0 .45em}
.topic-copy h2:first-child,.topic-copy h3:first-child{margin-top:0}
.topic-copy strong{color:#123d78;font-weight:900}
.topic-copy em{font-style:italic}
.topic-copy ul,.topic-copy ol{margin:.65em 0 1.05em;padding-left:1.45em}
.topic-copy li{margin:.34em 0;padding-left:.15em}
.topic-copy li::marker{color:#2589e7;font-weight:900}
.topic-copy blockquote{margin:1em 0;padding:.8em 1em;border-left:4px solid #3a98ed;border-radius:0 12px 12px 0;background:rgba(232,245,255,.75);color:#315d89}
.topic-copy hr{border:0;border-top:1px solid rgba(72,133,190,.25);margin:1.45em 0}
.topic-copy a{color:#147fdc;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.topic-copy code{padding:.12em .35em;border-radius:5px;background:#edf5fc;color:#174b82;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em}
@media(max-width:430px){
  .topic-copy h2{font-size:1.38em}
  .topic-copy h3{font-size:1.2em}
  .topic-copy ul,.topic-copy ol{padding-left:1.25em}
}


/* ===== IN26 v0.68 – hlavny obrazok temy hore pod nazvom ===== */
.topic-hero-image{
  position:relative;
  width:100vw;
  margin:14px 0 0 calc(50% - 50vw);
  padding:0;
  overflow:hidden;
  background:#eaf4fc;
  aspect-ratio:16/9;
}
.topic-hero-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.topic-hero-image figcaption{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:28px 18px 10px;
  margin:0;
  background:linear-gradient(transparent,rgba(7,34,70,.72));
  color:#fff;
  font-size:12px;
  line-height:1.35;
  font-weight:800;
}
.topic-hero-image + .topic-copy{margin-top:0;padding-top:18px;border-top:0}
@media(min-width:768px){
  .topic-hero-image{margin-top:18px;aspect-ratio:21/8}
  .topic-hero-image figcaption{padding:44px 34px 14px;font-size:14px}
  .topic-hero-image + .topic-copy{padding-top:28px}
}


/* ===== IN26 v0.69 – tema: banner pod nazvom, nie obrovsky obrazok ===== */
.topic-hero-image{
  width:calc(100% + 36px)!important;
  height:190px!important;
  aspect-ratio:auto!important;
  margin:10px -18px 0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#eaf4fc;
}
.topic-hero-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}
.topic-hero-image + .topic-copy{
  margin-top:0!important;
  padding-top:18px!important;
}
@media(min-width:768px){
  .topic-hero-image{
    width:calc(100% + 80px)!important;
    height:300px!important;
    margin:12px -40px 0!important;
  }
  .topic-hero-image + .topic-copy{padding-top:26px!important}
}
@media(min-width:1200px){
  .topic-hero-image{height:320px!important}
}


/* ===== IN26 v0.70 – desktop banner: zaber smerom hore, mobil bez zmeny ===== */
@media(min-width:768px){
  .topic-hero-image img{
    object-position:center 20%!important;
  }
}
