/* Shared mobile header, navigation and footer for every public page. */
html body header.top .logo .logoText,
html body header.top .logoText{display:none!important}
html body .login-options{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
html body .login-options[hidden]{display:none!important}
html body .jdb-login-choice{font:inherit;text-align:left;cursor:pointer}
html body .jdb-user-auth-panel{margin-top:20px;padding:24px;border:1px solid #d5e8f7;border-radius:20px;background:linear-gradient(145deg,#f7fbff,#fff)}
html body .jdb-user-auth-panel[hidden]{display:none!important}
html body .jdb-auth-back{border:0;background:transparent;color:#376887;font-weight:800;cursor:pointer;padding:0 0 14px}
html body .jdb-auth-badge{display:inline-block;padding:6px 9px;border-radius:99px;background:#e5f4ff;color:#0877ce;font-size:11px;font-weight:900;letter-spacing:.08em}
html body .jdb-user-auth-panel h2{margin:12px 0 7px;color:#082b59}
html body .jdb-user-auth-panel p{color:#62788e}
html body .jdb-auth-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
html body .jdb-live-auth{display:block!important}
html body .jdb-auth-form{display:grid!important;gap:11px!important;margin-top:16px!important}
html body .jdb-auth-form label{display:grid!important;gap:6px!important;color:#173b5e!important;font-size:13px!important;font-weight:800!important}
html body .jdb-auth-form input,html body .jdb-auth-form select{width:100%!important;padding:12px 13px!important;border:1px solid #cfe1ef!important;border-radius:12px!important;background:#fff!important;color:#082b59!important;font:inherit!important}
html body .jdb-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:12px 0;padding:5px;background:#edf6fd;border-radius:13px}
html body .jdb-auth-tabs button{padding:10px;border:0;border-radius:9px;background:transparent;color:#53708a;font-weight:850}
html body .jdb-auth-tabs button.active{background:#0787f2;color:#fff}
html body .jdb-auth-note{padding:12px;border-radius:12px;background:#edf7ff;color:#285675;line-height:1.45}
html body .jdb-auth-success{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px;border-radius:13px;background:#e9f9ef;color:#176f3e}
html body .jdb-auth-success span{font-size:12px;font-weight:800}
html body .jdb-profile-list{display:grid;gap:9px;margin:12px 0}
html body .jdb-profile-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px;border:1px solid #d9e8f3;border-radius:13px;background:#fbfdff}
html body .jdb-profile-row span{display:block;margin-top:3px;color:#688097;font-size:12px}
html body .jdb-profile-row code{padding:7px 9px;border-radius:9px;background:#e8f5ff;color:#0877ce;font-weight:900;letter-spacing:.1em}

/* Main navigation stays deliberately calm on desktop, mobile and in dropdowns. */
html body header.top nav.menu .navBtn,
html body header.top nav.menu .navBtnLink{
  font-weight:500!important
}
html body header.top nav.menu .drop a{font-weight:400!important}

@media(max-width:1180px){
  html body header.top,
  html body header.top .wrap.nav{height:64px!important;min-height:64px!important}
  html body header.top .wrap.nav{padding:0 14px!important;gap:8px!important}
  html body header.top .logo{flex:0 0 150px!important;width:150px!important;min-width:150px!important;overflow:hidden!important}
  html body header.top .logo .logoImg{width:150px!important;height:46px!important;object-fit:contain!important}
  html body header.top .headerSearch{display:none!important}
  html body header.top .actions{display:flex!important;height:64px!important;margin-left:auto!important;margin-right:0!important;align-items:center!important;order:4!important}
  html body header.top .actions .btn,
  html body header.top .actions .login{display:inline-flex!important;height:38px!important;min-height:38px!important;padding:0 13px!important;line-height:38px!important;font-size:12px!important;border-radius:12px!important}
  html body header.top .mobileOnly,
  html body header.top .jdbMobileMenuBtn{display:inline-grid!important;width:40px!important;height:40px!important;margin-left:0!important;order:5!important;border-radius:13px!important;background:#edf6ff!important;border:1px solid #c9e4fb!important;color:#07539c!important;font-size:21px!important}
  html body header.top .jdb-mobile-menu-btn{display:none!important}

  html body header.top .wrap.nav nav.menu{display:none!important}
  html body.jdb-mobile-nav-open header.top .wrap.nav nav.menu{
    display:flex!important;position:fixed!important;top:64px!important;right:12px!important;bottom:auto!important;left:12px!important;
    width:auto!important;height:calc(100vh - 78px)!important;max-height:760px!important;margin:0!important;padding:14px!important;
    overflow-y:auto!important;overscroll-behavior:contain!important;flex-direction:column!important;justify-content:flex-start!important;align-items:stretch!important;gap:8px!important;
    background:linear-gradient(180deg,#f7fbff 0%,#eaf5ff 100%)!important;border:1px solid #cfe6fa!important;border-radius:22px!important;
    box-shadow:0 24px 65px rgba(9,35,72,.22)!important;z-index:100000!important
  }
  html body.jdb-mobile-nav-open header.top .menu .navItem{display:block!important;height:auto!important;min-height:0!important;margin:0!important}
  html body.jdb-mobile-nav-open header.top .menu .navBtn,
  html body.jdb-mobile-nav-open header.top .menu .navBtnLink{
    display:flex!important;width:100%!important;height:44px!important;padding:0 14px!important;justify-content:space-between!important;
    color:#082b59!important;background:#fff!important;border:1px solid #d4e8f8!important;border-radius:13px!important;
    box-shadow:0 5px 14px rgba(9,55,102,.05)!important;font-size:13px!important
  }
  html body.jdb-mobile-nav-open header.top .menu .navBtn .arrow{color:#0787f2!important}
  html body.jdb-mobile-nav-open header.top .menu .navItem .drop{display:none!important}
  html body.jdb-mobile-nav-open header.top .menu .navItem.jdb-submenu-open .drop{
    display:grid!important;position:static!important;inset:auto!important;transform:none!important;min-width:0!important;width:100%!important;
    margin:6px 0 2px!important;padding:6px!important;gap:3px!important;background:rgba(255,255,255,.64)!important;
    border:1px solid #d7eaf9!important;border-radius:14px!important;box-shadow:none!important
  }
  html body.jdb-mobile-nav-open header.top .menu .drop:before{display:none!important}
  html body.jdb-mobile-nav-open header.top .menu .drop a{
    min-height:39px!important;padding:9px 11px!important;color:#23486d!important;background:transparent!important;border-radius:10px!important;
    font-size:12.5px!important;font-weight:400!important
  }
  html body.jdb-mobile-nav-open header.top .menu .drop a:hover{background:#e6f4ff!important;color:#006ac3!important}

  html body .footer{padding:28px 0!important;margin-top:28px!important}
  html body .footer .footerGrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px 22px!important}
  html body .footer .footerGrid>:first-child{grid-column:1/-1!important}
  html body .footer .footerGrid>div{min-width:0!important}
  html body .footer .footerGrid b{margin-bottom:7px!important;font-size:14px!important}
  html body .footer .footerGrid a{margin:5px 0!important;padding:1px 0!important;font-size:13px!important;line-height:1.35!important}
  html body .footer .footerGrid p{margin:6px 0!important;font-size:13px!important;line-height:1.45!important}
}

/* Původní jednoduché přihlašovací formuláře */
.jdb-live-auth .br-auth-tabs{display:flex;gap:8px;background:#eef8ff;border:1px solid #dcecf9;border-radius:18px;padding:6px;margin:0 0 18px}
.jdb-live-auth .br-auth-tab{flex:1;border:0;border-radius:13px;padding:12px 10px;font-weight:950;cursor:pointer;background:transparent;color:#0755bb}
.jdb-live-auth .br-auth-tab.active{background:#fff;box-shadow:0 8px 20px rgba(7,27,61,.08);color:#071b3d}
.jdb-live-auth .br-form{display:grid;gap:12px}
.jdb-live-auth .br-form label{display:grid;gap:7px;font-weight:850;color:#071b3d}
.jdb-live-auth .br-form input,.jdb-live-auth .br-form select{width:100%;box-sizing:border-box;border:1px solid #dbeaf7;border-radius:14px;padding:13px 14px;background:#fff}
.jdb-live-auth [hidden]{display:none!important}
.jdb-real-qr{display:block;width:min(100%,340px);height:auto;aspect-ratio:1;object-fit:contain;background:#fff;border:10px solid #fff;border-radius:18px;box-shadow:0 12px 30px rgba(9,35,72,.14);margin:14px auto}
#operatorQrVisual .jdb-real-qr{width:120px;margin:0;border-width:5px;border-radius:12px}
.jdb-qr-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:12px 0}
.jdb-qr-code{display:block;max-width:100%;overflow-wrap:anywhere;font-size:11px;color:#5f7088}
.jdb-ticket-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #e3ebf6;border-radius:20px;padding:14px;margin-top:12px}
.jdb-ticket-row .jdb-real-qr{width:78px;border-width:4px;margin:0;border-radius:10px}
@media(max-width:620px){.jdb-ticket-row{grid-template-columns:74px 1fr}.jdb-ticket-row>.btn{grid-column:1/-1}.jdb-ticket-row .jdb-real-qr{width:64px}}

@media(max-width:900px){
  html body .login-options{grid-template-columns:1fr!important}
  html body main .contentHero,html body main .infoHero,html body main .userHero{padding:34px 0!important;min-height:0!important;border-radius:0 0 24px 24px!important}
  html body main .contentHero h1,html body main .infoHero h1,html body main .userHero h1{font-size:clamp(31px,8vw,44px)!important;line-height:1.02!important;margin:10px 0!important}
  html body main .contentHero p,html body main .infoHero p,html body main .userHero p{font-size:15px!important;line-height:1.5!important;margin:8px 0!important}
  html body main .heroActions,html body main .heroCtas,html body main .br-cta{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
  html body main .heroActions .btn,html body main .heroCtas .btn,html body main .br-cta a,html body main .br-cta button{width:auto!important;min-width:0!important;min-height:40px!important;padding:9px 13px!important;flex:0 0 auto!important}
  html body main .section,html body main .sectionSoft,html body main .sectionWhite,html body main .br-section{padding-top:24px!important;padding-bottom:24px!important}
  html body main .panel,html body main .card,html body main .featureCard,html body main .infoCard,html body main .userCard{min-height:0!important;padding:16px!important;border-radius:18px!important}
  html body main .featureGrid,html body main .cards,html body main .info-grid,html body main .services-matrix,html body main .admin-user-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  html body main .panel:empty,html body main .card:empty,html body main section:empty{display:none!important}
  html body main h2{font-size:clamp(23px,5vw,30px)!important;line-height:1.1!important;margin-top:0!important}
  html body main .sectionTitle{display:block!important;margin-bottom:16px!important}
  html body main .sectionTitle p{margin-top:6px!important}
  html body main .form,html body main form{gap:10px!important}
}

@media(max-width:520px){
  html body main .featureGrid,html body main .cards,html body main .info-grid,html body main .services-matrix,html body main .admin-user-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html body main .featureGrid>*,html body main .cards>*,html body main .info-grid>*,html body main .services-matrix>*{min-width:0!important}
  html body main .cardImg{height:110px!important}
}

/* Footer must stay inside the mobile viewport even on pages with their own .wrap rules. */
@media(max-width:620px){
  html body .footer{overflow:hidden!important}
  html body .footer .wrap.footerGrid{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:14px!important;
    padding-right:14px!important;
    box-sizing:border-box!important;
  }
  html body .footer .footerGrid>*{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important}
}

/* Compact mobile Bruslík hero. */
@media(max-width:900px){
  html body .br-hero{min-height:0!important;padding:30px 0 18px!important}
  html body .br-hero-grid{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(140px,.75fr)!important;gap:12px!important;align-items:center!important}
  html body .br-hero h1{font-size:clamp(31px,7vw,45px)!important;line-height:.98!important;margin:8px 0!important}
  html body .br-hero p{font-size:14px!important;line-height:1.45!important;margin:8px 0!important}
  html body .br-hero-visual{min-height:180px!important;height:180px!important;align-self:end!important}
  html body .br-hero .br-mascot,html body .br-hero .br-mascot-big{max-height:190px!important;width:auto!important;object-fit:contain!important}
  html body .br-stamp-card{padding:12px!important;border-radius:16px!important}
}
@media(max-width:560px){
  html body .br-hero-grid{grid-template-columns:1fr minmax(110px,.5fr)!important}
  html body .br-hero-visual{height:150px!important;min-height:150px!important}
  html body .br-hero .br-mascot,html body .br-hero .br-mascot-big{max-height:155px!important}
  html body .br-stamp-card{display:none!important}
}

@media(max-width:520px){
  html body header.top .logo{flex-basis:126px!important;width:126px!important;min-width:126px!important}
  html body header.top .logo .logoImg{width:126px!important;height:42px!important}
  html body header.top .actions .btn,
  html body header.top .actions .login{padding:0 10px!important;font-size:11px!important}
  html body header.top .mobileOnly,
  html body header.top .jdbMobileMenuBtn{width:38px!important;height:38px!important}
  html body .footer .footerGrid{gap:16px!important}
}

/* Firemní eventy: na telefonu musí být vidět celé postavy a ilustrace. */
@media(max-width:760px){
  html body .grid4:has(>.eventTypeCard){
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important
  }
  html body .eventTypeCard{
    position:relative!important;min-height:260px!important;height:260px!important;padding:14px 12px 0!important;
    display:block!important;overflow:hidden!important
  }
  html body .eventTypeCard h3{font-size:16px!important;line-height:1.12!important;margin:0 0 5px!important}
  html body .eventTypeCard p{max-width:none!important;font-size:11.5px!important;line-height:1.32!important;margin:0!important;color:#667792!important}
  html body .eventMascotBox{
    position:absolute!important;left:8px!important;right:8px!important;top:auto!important;bottom:4px!important;
    height:138px!important;min-height:138px!important;margin:0!important;overflow:visible!important;display:block!important
  }
  html body .eventMascotBox img,
  html body .eventMascotBox.family img,
  html body .eventMascotBox.client img,
  html body .eventMascotBox.birthday img,
  html body .eventMascotBox.christmas img{
    position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;
    max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center bottom!important;
    transform:none!important;margin:0 auto!important
  }
  html body .eventTypeCard:hover .eventMascotBox img{transform:none!important}
}

/* Homepage Bruslík: stejně široké akce a volné místo pro celého maskota. */
@media(max-width:900px){
  html body .bruslikCard{position:relative!important;padding-right:16px!important;overflow:hidden!important}
  html body .bruslikHomeActionsStack{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:none!important;align-items:stretch!important}
  html body .bruslikHomeActionsStack .bruslikActionWide,
  html body .bruslikHomeActionsStack .bruslikActionSoft,
  html body .bruslikHomeActionsStack .bruslikActionBlue{grid-column:auto!important;grid-row:auto!important;width:100%!important;min-height:72px!important;aspect-ratio:auto!important}
  html body .bruslikCard>img{display:block!important;right:0!important;bottom:-5px!important;width:min(38vw,155px)!important;max-height:190px!important;object-fit:contain!important;object-position:right bottom!important;opacity:.9!important;z-index:2!important}
}
@media(max-width:420px){
  html body .bruslikHomeActionsStack{gap:8px!important}
  html body .bruslikActionBtn{padding:12px!important;min-width:0!important}
  html body .bruslikActionBtn strong{font-size:13px!important}
  html body .bruslikActionBtn small{font-size:11px!important}
  html body .bruslikCard>img{width:142px!important;opacity:.92!important}
}

/* Školička bruslení: kompaktní mobilní kompozice bez prázdných ploch. */
@media(max-width:900px){
  html body .schoolHero13{padding:32px 0 34px!important;border-radius:0 0 25px 25px!important;background-position:center!important}
  html body .schoolHero13 h1{font-size:clamp(32px,9vw,46px)!important;line-height:1!important;margin:10px 0!important;max-width:680px!important}
  html body .schoolHero13 p{font-size:15px!important;line-height:1.48!important;margin:0!important;max-width:580px!important}
  html body .schoolHero13 .heroActions{margin-top:15px!important}
  html body .schoolHero13 .heroActions .btn{width:auto!important;padding:10px 14px!important;min-height:40px!important}
  html body .schoolSection13{padding:25px 0!important}
  html body .schoolSection13[style]{padding-top:0!important}
  html body .schoolHead13{margin-bottom:16px!important}
  html body .schoolHead13 h2{font-size:clamp(27px,7vw,36px)!important;margin:8px 0!important}
  html body .schoolHead13 p{font-size:14px!important;line-height:1.5!important;margin:0!important}
  html body .benefits13{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
  html body .benefit13{padding:14px!important;border-radius:18px!important;min-height:0!important}
  html body .benefit13 .ico{width:40px!important;height:40px!important;border-radius:12px!important;font-size:20px!important}
  html body .benefit13 h3{font-size:16px!important;line-height:1.15!important;margin:10px 0 5px!important}
  html body .benefit13 p{font-size:12px!important;line-height:1.42!important}
  html body .timeline13{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important;margin-top:18px!important}
  html body .timeline13:before{display:none!important}
  html body .tstep13{padding:11px 8px!important;border:1px solid #dbe9f5!important;border-radius:16px!important;background:#fff!important}
  html body .tstep13 .dot{width:35px!important;height:35px!important;border-width:2px!important;border-radius:11px!important;margin:0 auto 8px!important}
  html body .tstep13 b{font-size:12px!important;line-height:1.2!important}
  html body .tstep13 small{font-size:10px!important;line-height:1.3!important;margin-top:3px!important}
  html body .partner13{grid-template-columns:1.12fr .88fr!important;gap:12px!important}
  html body .partnerCard13{padding:18px!important;border-radius:20px!important}
  html body .partnerCard13 h2{font-size:25px!important;margin:7px 0!important}
  html body .partnerCard13 p{font-size:13px!important;line-height:1.48!important;margin:0!important}
  html body .partnerPhoto13{min-height:0!important;aspect-ratio:4/5!important;border-radius:20px!important;margin:0!important}
  html body .bruslik13{grid-template-columns:120px minmax(0,1fr)!important;gap:15px!important;padding:16px!important;border-radius:21px!important}
  html body .bruslik13 img{width:120px!important;max-height:150px!important;object-fit:cover!important;border-radius:15px!important}
  html body .bruslik13 h2{font-size:24px!important;margin:6px 0!important}
  html body .bruslik13 p{font-size:13px!important;line-height:1.45!important;margin:0!important}
  html body .schoolEquipment20{padding:0 0 26px!important}
  html body .schoolEquipment20 .equipmentBox20{padding:16px!important;border-radius:21px!important}
  html body .schoolEquipment20 h2{font-size:25px!important;margin:8px 0!important}
  html body .schoolEquipment20 p{font-size:13px!important;line-height:1.45!important;margin:0!important}
  html body .schoolEquipment20 img{width:min(210px,65%)!important;margin-top:8px!important}
}
@media(max-width:560px){
  html body .benefits13{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html body .benefits13 .benefit13:last-child{grid-column:1/-1!important}
  html body .timeline13{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html body .partner13{grid-template-columns:1fr!important}
  html body .partnerPhoto13{aspect-ratio:16/9!important;min-height:0!important}
  html body .bruslik13{grid-template-columns:92px minmax(0,1fr)!important}
  html body .bruslik13 img{width:92px!important;height:120px!important}
}

/* Rychlé volby „Kam dnes na brusle?“ jsou plnohodnotná tlačítka. */
.todayItem{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}
.todayItem:focus-visible{outline:3px solid rgba(7,135,242,.28);outline-offset:3px;border-radius:14px}
.todayItem:disabled{cursor:wait;opacity:.72}
.rink-meta .jdb-distance{background:#edf7ff;color:#07539c;border-radius:999px;padding:4px 8px;font-weight:800}

/* Kalendář akcí: Bruslík je hlavní volba, typy akcí patří do dalších filtrů. */
.jdb-bruslik-filter{margin-top:14px!important;padding:13px 14px;border:1px solid #f3d575;border-radius:18px;background:linear-gradient(135deg,#fff9df,#fff)}
.jdb-bruslik-filter h3{margin:0 0 9px!important;color:#6d4d00}
.jdb-bruslik-filter .checkChip{background:#fff;border-color:#efc94c;color:#6d4d00}
.filterExtrasDetails .jdb-extra-event-types{margin:0!important;padding:0 14px 14px}
.filterExtrasDetails .jdb-extra-event-types h3{font-size:14px;margin:0 0 9px}
.filterExtrasDetails .jdb-extra-event-types .chipGrid{padding:0}
