html{scroll-behavior:smooth}.topbar{position:fixed!important;background:rgba(252,250,245,.96)!important;backdrop-filter:blur(8px);border-bottom:1px solid rgba(21,19,16,.12)}.topbar__right{position:relative}.vj-menu-toggle{width:44px;height:44px;border:2px solid #111;border-radius:50%;background:#fff;display:grid;place-content:center;gap:4px;cursor:pointer;box-shadow:4px 4px 0 #2f49ed}.vj-menu-toggle span{display:block;width:20px;height:2px;background:#111}.vj-nav{position:absolute;right:0;top:58px;width:min(340px,calc(100vw - 2rem));padding:.7rem;display:none;flex-direction:column;background:#fff;border:2px solid #111;border-radius:16px;box-shadow:8px 8px 0 #2f49ed;z-index:1000}.vj-nav.is-open{display:flex}.vj-nav a{padding:.75rem .9rem;border-radius:.5rem;font-weight:800;text-decoration:none;color:#111}.vj-nav a:hover{background:#e9edff;color:#213bd8}.vj-coaches{display:flex;flex-direction:column;gap:5rem;margin-top:2.4rem}.vj-coach-card{display:grid;grid-template-columns:minmax(280px,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,4rem);align-items:start}.vj-coach-card .coach__text{max-width:none;margin-bottom:1rem}.vj-coach-card:nth-child(even) .coach__photo{transform:rotate(1.5deg);box-shadow:10px 10px 0 #2f49ed}.vj-coach-card .coach__photo img{width:100%;height:100%;object-fit:cover}.vj-vision{background:#fff}.vj-vision__text{max-width:920px;margin-top:2rem;font-size:1.06rem;font-weight:500}.vj-vision__text p{margin-bottom:1.2rem}

/* Hero image: show the full illustration instead of cropping it. */
.hero__photo{background:#fff!important;overflow:hidden}.hero__photo img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:#fff}.training__photo img{object-fit:contain!important;background:#fff}

/* Replace orange/yellow accents with the VIVA Judo blue/black palette. */
.sticker--age{background:#2f49ed!important;color:#fff!important;border-color:#111!important;box-shadow:7px 7px 0 #111!important}.sticker--hajime{background:#111!important;color:#fff!important;border-color:#2f49ed!important;box-shadow:7px 7px 0 #2f49ed!important}.hero .btn--primary,.day-card__signup,.contact-card__submit{background:#2f49ed!important;color:#fff!important;border-color:#111!important;box-shadow:7px 7px 0 #111!important}.hero .btn--phone,.schedule__note .btn--phone{background:#111!important;color:#fff!important;border-color:#2f49ed!important;box-shadow:7px 7px 0 #2f49ed!important}.hero__underline{background:#2f49ed!important}.belt-tag--yellow,.belt-tag--orange{background:#e9edff!important;color:#111!important;border-color:#2f49ed!important}.belt-tag--blue{background:#2f49ed!important;color:#fff!important}.step__num{background:#2f49ed!important;color:#fff!important}.lang-toggle button.is-active{background:#2f49ed!important;color:#fff!important}.topbar__brand span{color:#2f49ed!important}

@media(max-width:900px){.vj-coach-card{grid-template-columns:1fr}.vj-nav{right:0}.topbar__phone span{display:none}.hero__photo{min-height:360px}}
@media(max-width:560px){.hero__photo{min-height:290px}.vj-menu-toggle{width:40px;height:40px}.vj-nav{top:52px}}

/* Floating contact buttons: VIVA Judo blue / white / black palette. */
.call-fab,
.vj-mail-fab{
  position:fixed!important;
  bottom:24px!important;
  width:58px!important;
  height:58px!important;
  display:grid!important;
  place-items:center!important;
  border:2px solid #111!important;
  border-radius:50%!important;
  background:#2f49ed!important;
  color:#fff!important;
  box-shadow:6px 6px 0 #111!important;
  text-decoration:none!important;
  font-size:0!important;
  z-index:1200!important;
  transition:transform .18s ease,box-shadow .18s ease!important;
}
.call-fab{right:24px!important}
.vj-mail-fab{right:98px!important}
.call-fab::before{content:'☎';font-size:27px;line-height:1;color:#fff}
.vj-mail-fab::before{content:'✉';font-size:27px;line-height:1;color:#fff}
.call-fab:hover,.vj-mail-fab:hover{transform:translate(-2px,-2px)!important;box-shadow:8px 8px 0 #111!important}
.call-fab:focus-visible,.vj-mail-fab:focus-visible{outline:3px solid #fff!important;outline-offset:3px!important}
@media(max-width:560px){.call-fab,.vj-mail-fab{bottom:18px!important;width:52px!important;height:52px!important}.call-fab{right:18px!important}.vj-mail-fab{right:84px!important}.call-fab::before,.vj-mail-fab::before{font-size:24px}}


/* Training section without the former illustrative photograph. */
.training__grid.vj-training-steps-only{
  display:block!important;
  max-width:920px;
}
.training__grid.vj-training-steps-only .training__steps{
  width:100%!important;
}

/* Simple gallery section linking to the public Google Photos album. */
.vj-gallery{
  background:#f4f6ff;
  text-align:center;
}
.vj-gallery__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.vj-gallery .section-title{
  margin-bottom:1.5rem;
}
.vj-gallery__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:220px;
  background:#2f49ed!important;
  color:#fff!important;
  border-color:#111!important;
  box-shadow:7px 7px 0 #111!important;
  text-decoration:none!important;
}

/* Circular hero badge linking to the free introductory lesson. */
.hero{position:relative}
.vj-free-lesson-badge{
  position:absolute;
  right:clamp(1rem,4vw,4rem);
  /* Positioned below the large background character so the two graphics do not overlap. */
  top:clamp(28rem,42vw,36rem);
  z-index:15;
  width:clamp(132px,15vw,180px);
  aspect-ratio:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:1rem;
  border:3px solid #111;
  border-radius:50%;
  background:#2f49ed;
  color:#fff;
  box-shadow:9px 9px 0 #111;
  text-align:center;
  text-decoration:none;
  transform:rotate(5deg);
  transition:transform .2s ease,box-shadow .2s ease;
}
.vj-free-lesson-badge__main{
  display:block;
  max-width:125px;
  font-weight:800;
  font-size:clamp(1rem,1.45vw,1.16rem);
  line-height:1.08;
  text-transform:uppercase;
}
.vj-free-lesson-badge__arrow{
  display:block;
  margin-top:.45rem;
  font-size:1.35rem;
  line-height:1;
}
.vj-free-lesson-badge:hover{
  transform:rotate(1deg) translate(-3px,-3px);
  box-shadow:12px 12px 0 #111;
}
.vj-free-lesson-badge:focus-visible{outline:4px solid #fff;outline-offset:4px}
@media(max-width:900px){
  .vj-free-lesson-badge{top:22rem;right:1rem;width:128px;box-shadow:7px 7px 0 #111}
}
@media(max-width:560px){
  .vj-free-lesson-badge{
    position:relative;
    top:auto;
    right:auto;
    width:128px;
    margin:1.2rem auto 0;
    transform:rotate(3deg);
  }
}

.vj-transfer-faq__body p {
  margin-top: .8rem;
}

.vj-transfer-faq__body p:first-child {
  margin-top: 0;
}

.vj-transfer-faq__heading {
  font-weight: 800;
  font-size: 1.02rem;
}

.vj-transfer-faq__paragraph:nth-of-type(3) {
  font-weight: 800;
}

.vj-transfer-faq__link {
  color: var(--judogi);
  font-weight: 800;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* The phone remains available in Contact and in the floating call button, but not in the header. */
.topbar__phone{display:none!important}

/* Study room: grading requirements by belt and lazily loaded PDF documents. */
.vj-study{
  background:#f4f6ff;
}
.vj-study__intro{
  max-width:820px;
  margin:1rem 0 2rem;
  font-size:1.06rem;
  font-weight:500;
}
.vj-study__card{
  max-width:1080px;
  padding:clamp(1.25rem,3vw,2rem);
  margin-top:1.35rem;
  background:#fff;
  border:2px solid #111;
  border-radius:18px;
  box-shadow:8px 8px 0 #2f49ed;
}
.vj-study__card h3,
.vj-study__card h4{
  margin:0;
  color:#111;
}
.vj-study__grading-title{
  font-size:clamp(1.35rem,2.3vw,1.8rem);
}
.vj-study__grading-intro,
.vj-study__theory-intro{
  margin:.65rem 0 1.2rem;
}
.vj-kyu-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.8rem;
}
.vj-kyu-button{
  min-height:64px;
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.7rem .85rem;
  border:2px solid #111;
  border-radius:12px;
  background:#fff;
  color:#111;
  font:inherit;
  font-weight:800;
  line-height:1.22;
  text-align:left;
  cursor:pointer;
  box-shadow:4px 4px 0 #111;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.vj-kyu-button:hover{
  transform:translate(-2px,-2px);
  box-shadow:6px 6px 0 #111;
}
.vj-kyu-button.is-active{
  background:#e9edff;
  border-color:#2f49ed;
  box-shadow:5px 5px 0 #2f49ed;
}
.vj-kyu-button:focus-visible,
.vj-study__close:focus-visible,
.vj-study__card summary:focus-visible{
  outline:3px solid #2f49ed;
  outline-offset:3px;
}
.vj-kyu-button__belt{
  flex:0 0 44px;
  height:14px;
  border:1px solid #111;
  border-radius:2px;
  background:#fff;
}
.vj-kyu-button--white-yellow .vj-kyu-button__belt{background:linear-gradient(90deg,#fff 0 50%,#f2d21b 50%)}
.vj-kyu-button--yellow .vj-kyu-button__belt{background:#f2d21b}
.vj-kyu-button--yellow-orange .vj-kyu-button__belt{background:linear-gradient(90deg,#f2d21b 0 50%,#ef8c22 50%)}
.vj-kyu-button--orange .vj-kyu-button__belt{background:#ef8c22}
.vj-kyu-button--orange-green .vj-kyu-button__belt{background:linear-gradient(90deg,#ef8c22 0 50%,#2e9d50 50%)}
.vj-kyu-button--green .vj-kyu-button__belt{background:#2e9d50}
.vj-kyu-button--green-blue .vj-kyu-button__belt{background:linear-gradient(90deg,#2e9d50 0 50%,#2f49ed 50%)}
.vj-kyu-button--blue .vj-kyu-button__belt{background:#2f49ed}
.vj-kyu-button--brown .vj-kyu-button__belt{background:#704026}
.vj-study__viewer{
  margin-top:1.5rem;
  padding-top:1.25rem;
  border-top:2px solid rgba(17,17,17,.15);
}
.vj-study__viewer[hidden]{display:none!important}
.vj-study__viewer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.8rem;
}
.vj-study__viewer-title{
  font-size:clamp(1rem,2vw,1.25rem);
}
.vj-study__close{
  flex:0 0 auto;
  padding:.55rem .8rem;
  border:2px solid #111;
  border-radius:9px;
  background:#111;
  color:#fff;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.vj-study__pdf,
.vj-study__theory-pdf{
  display:block;
  width:100%;
  height:min(78vh,900px);
  min-height:620px;
  border:2px solid #111;
  border-radius:12px;
  background:#eee;
}
.vj-study__open-selected,
.vj-study__full-link,
.vj-study__open-theory{
  display:inline-block;
  margin-top:1rem;
  color:#213bd8;
  font-weight:800;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}
.vj-study__full-link{
  margin-top:1.25rem;
}
.vj-study__theory{
  padding:0;
  overflow:hidden;
}
.vj-study__theory summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:clamp(1.2rem,3vw,1.8rem);
  font-size:clamp(1.2rem,2.2vw,1.6rem);
  font-weight:800;
  cursor:pointer;
  list-style:none;
}
.vj-study__theory summary::-webkit-details-marker{display:none}
.vj-study__details-icon{
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:2px solid #111;
  border-radius:50%;
  background:#2f49ed;
  color:#fff;
  font-size:1.3rem;
  line-height:1;
  transition:transform .18s ease;
}
.vj-study__theory[open] .vj-study__details-icon{transform:rotate(45deg)}
.vj-study__theory-body{
  padding:0 clamp(1.2rem,3vw,1.8rem) clamp(1.2rem,3vw,1.8rem);
}

@media(max-width:850px){
  .vj-kyu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vj-study__pdf,.vj-study__theory-pdf{height:70vh;min-height:520px}
}
@media(max-width:560px){
  .vj-kyu-grid{grid-template-columns:1fr}
  .vj-study__card{box-shadow:6px 6px 0 #2f49ed}
  .vj-study__viewer-head{align-items:flex-start;flex-direction:column}
  .vj-study__pdf,.vj-study__theory-pdf{height:68vh;min-height:460px}
}

/* Discreet membership terms link in the bottom footer row. */
.vj-footer-terms{
  display:inline-flex;
  align-items:center;
  gap:.38rem;
  color:inherit;
  font-weight:700;
  text-decoration:none;
  opacity:.86;
  transition:opacity .16s ease,text-decoration-color .16s ease;
}
.vj-footer-terms:hover{
  opacity:1;
  text-decoration:underline;
  text-underline-offset:3px;
}
.vj-footer-terms:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
}
.vj-footer-terms__icon{
  display:inline-grid;
  place-items:center;
  width:1.35rem;
  height:1.35rem;
  border:1px solid currentColor;
  border-radius:4px;
  font-size:.86rem;
  line-height:1;
}


/* Inline History of Judo article: readable on screen, with no PDF download. */
.vj-history-content{
  max-width:900px;
  margin-top:1.4rem;
}
.vj-history-section + .vj-history-section{
  margin-top:2rem;
  padding-top:1.6rem;
  border-top:2px solid rgba(17,17,17,.12);
}
.vj-history-section h4{
  margin:0 0 .85rem;
  font-size:clamp(1.18rem,2.1vw,1.5rem);
  line-height:1.2;
}
.vj-history-section p{
  margin:.75rem 0 0;
  line-height:1.72;
}
.vj-history-section p:first-of-type{margin-top:0}
@media(max-width:560px){
  .vj-history-section p{line-height:1.62}
}

/* Additional parent FAQ answers with comfortable paragraph spacing. */
.vj-parent-faq__body p{
  margin:0;
}
.vj-parent-faq__body p + p{
  margin-top:.9rem;
}


/* Address and first-session date in schedule cards. */
.vj-schedule-details{
  margin:.45rem 0 .9rem;
  display:grid;
  gap:.4rem;
  line-height:1.45;
}
.vj-schedule-address{
  width:fit-content;
  max-width:100%;
  color:inherit;
  font-weight:700;
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-underline-offset:3px;
}
.vj-schedule-address[hidden]{display:none}
.vj-schedule-address:hover{color:#213bd8}
.vj-schedule-start{
  width:fit-content;
  padding:.28rem .58rem;
  border:2px solid #111;
  border-radius:999px;
  background:#e9edff;
  color:#111;
  font-weight:800;
  font-size:.9rem;
}

/* Prices in the “Kdy a kde trénujeme” cards. */
.vj-schedule-price{
  margin:.95rem 0 1rem;
  padding:.8rem .9rem;
  border:2px solid #111;
  background:#f5f6ff;
  box-shadow:4px 4px 0 #2f49ed;
  font-weight:800;
  line-height:1.4;
}
.vj-schedule-price__line + .vj-schedule-price__line{margin-top:.25rem}
.vj-schedule-combo{
  max-width:920px;
  margin:1.4rem auto 0;
  padding:1rem 1.1rem;
  border-left:5px solid #2f49ed;
  background:rgba(47,73,237,.07);
  font-weight:700;
  line-height:1.55;
}

/* Compact expandable registered-association details in the footer. */
.vj-footer-association{
  position:relative;
  color:inherit;
}
.vj-footer-association__summary{
  display:inline-flex;
  align-items:center;
  gap:.38rem;
  cursor:pointer;
  list-style:none;
  font-weight:700;
  opacity:.86;
}
.vj-footer-association__summary::-webkit-details-marker{display:none}
.vj-footer-association__summary:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
.vj-footer-association__summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.vj-footer-association__icon{
  display:inline-grid;
  place-items:center;
  width:1.35rem;
  height:1.35rem;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:.82rem;
  line-height:1;
}
.vj-footer-association__panel{
  margin-top:.7rem;
  padding:.9rem 1rem;
  min-width:min(430px,calc(100vw - 40px));
  border:2px solid currentColor;
  background:#fff;
  color:#111;
  box-shadow:5px 5px 0 #2f49ed;
}
.vj-footer-association__row{
  display:grid;
  grid-template-columns:minmax(120px,.75fr) minmax(180px,1.5fr);
  gap:.7rem;
  align-items:start;
  line-height:1.45;
}
.vj-footer-association__row + .vj-footer-association__row{margin-top:.55rem}
.vj-footer-association__key{font-weight:900}
.vj-footer-association__value{font-weight:600}
@media(max-width:620px){
  .vj-footer-association{width:100%}
  .vj-footer-association__panel{min-width:0;width:100%;box-sizing:border-box}
  .vj-footer-association__row{grid-template-columns:1fr;gap:.12rem}
}

/* Header cleanup: the large hero branding is enough; keep only controls in the top bar. */
.topbar__inner{justify-content:flex-end!important}
.topbar__right{margin-left:auto}
