/* Phase 1: public layout only. Original desktop rules remain above 1100px. */
.public-site .menu-toggle { display: none; }
.public-site a:focus-visible, .public-site button:focus-visible,
.public-site input:focus-visible, .public-site textarea:focus-visible,
.public-site .responsive-table:focus-visible { outline: 3px solid #477db9; outline-offset: 3px; }
.public-site .responsive-table { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.public-site .responsive-table:focus { outline-offset: -3px; }
@media (max-width: 1100px) {
  .public-site { min-width: 0; -webkit-text-size-adjust: 100%; }
  .public-site .container { box-sizing: border-box; width: calc(100% - 40px); padding: 0; }
  .public-site .containersld { box-sizing: border-box; width: 100%; max-width: 1080px; padding: 0; }
  .public-site .page1 { height: auto; }
  .public-site .page1 > .container { height: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 16px 0; }
  .public-site .page1 h1 { position: static; float: none; margin: 0; }
  .public-site .page1 h1 img { width: 120px; height: auto; margin: 0; max-width: 100%; }
  .public-site .page1 .nav { float: none; height: auto; min-width: 0; padding: 0; margin: 0 0 0 auto; }
  .public-site .header_menu { display: flex; flex-wrap: wrap; gap: 4px 16px; }
  .public-site ul.sf-menu > li { float: none; margin: 0; }
  .public-site ul.sf-menu > li > a { padding: 12px 0; }
  .public-site ul.sf-menu > li > a span { float: none; height: auto; }
  .public-site .btns_menu { box-sizing: border-box; float: none; width: 100%; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; overflow: visible; }
  .public-site .btns_menu li { float: none; width: auto; height: auto; margin: 0; }
  .public-site .btns_menu .xmore_btn { display: block; box-sizing: border-box; width: 100%; height: 100%; min-height: 55px; padding: 10px 14px; }
  .public-site .separator { height: 32px; padding: 0; }
  .public-site .box-camera { height: auto; padding: 0; }
  .public-site .bx-wrapper { max-width: 100%; }
  .public-site .bx-wrapper img { width: 100%; height: auto; }
  .public-site .row { display: flex; flex-wrap: wrap; gap: 24px; margin-left: 0; }
  .public-site .row::before, .public-site .row::after { display: none; }
  .public-site .row > [class*="grid_"] { box-sizing: border-box; float: none; min-width: 0; margin: 0; padding-left: 0; padding-right: 0; }
  .public-site .grid_12, .public-site .grid_tournament, .public-site .grid_partners { width: 100%; }
  .public-site .grid_4 { width: calc((100% - 48px)/3); }
  .public-site .grid_6 { width: calc((100% - 24px)/2); }
  .public-site .grid_people, .public-site .grid_ph { width: 200px; }
  .public-site #page { box-sizing: border-box; width: 100%; max-width: 100%; float: none; padding: 0; }
  .public-site .section_content { max-width: 100%; }
  .public-site .section_content img, .public-site .grid_partners img { max-width: 100% !important; height: auto !important; }
  .public-site iframe, .public-site video { max-width: 100%; }
  .public-site .rowph { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-left: 0; }
  .public-site .rowph::before, .public-site .rowph::after { display: none; }
  .public-site .rowph .grid_ph { width: auto; float: none; margin: 0; }
  .public-site .rowph img { width: 100%; height: auto; }
  .public-site .container_contact { box-sizing: border-box; left: auto; height: auto; width: calc(100% - 40px); margin: 0 auto; }
  .public-site .container_contact .grid_3 { width: 100%; padding: 24px; }
  .public-site .contact_addon { width: 50%; }
  .public-site #mapa { width: 100%; max-width: 100%; }
  .public-site #mapa iframe { width: 100%; }
  .public-site #contact_form { box-sizing: border-box; max-width: 100%; width: 45%; }
  .public-site .nabor { width: 100%; }
  .public-site .nabor .section_content { width: 58%; }
  .public-site .nabortext { width: 100%; }
  .public-site #nabor_form { box-sizing: border-box; width: 38%; padding: 16px; }
  .public-site .naborpict { max-width: 100%; }
  .public-site fieldset, .public-site .fieldset_big { max-width: 100%; box-sizing: border-box; }
  .public-site input, .public-site textarea, .public-site select { box-sizing: border-box; max-width: 100%; }
  .public-site .g-recaptcha { max-width: 100%; overflow-x: auto; }
  .public-site .paginate { display: flex; flex-wrap: wrap; gap: 8px; }
  .public-site #back-top { left: auto; right: 16px; margin-left: 0; }
}
@media (max-width: 760px) {
  .public-site .container { width: calc(100% - 32px); }
  .public-site .page1 > .container { gap: 12px; }
  .public-site .page1 h1 img { width: 96px; }
  .public-site .menu-toggle { display: none; margin-left: auto; border: 1px solid #aeb8c9; border-radius: 4px; padding: 10px 16px; background: #002857; color: #fff; font: bold 15px/24px Arial,sans-serif; cursor: pointer; }
  .navigation-ready .public-site .menu-toggle { display: block; }
  .public-site .page1 .nav { width: 100%; margin: 0; }
  .navigation-ready .public-site:not(.site-nav-open) .page1 .nav { display: none; }
  .public-site .header_menu { display: block; }
  .public-site ul.sf-menu > li > a { text-align: left; padding: 12px; min-height: 24px; }
  .public-site ul.sf-menu > li > a strong { display: none; }
  .public-site .header_menu ul { position: static !important; display: block !important; left: auto !important; top: auto !important; width: auto; padding: 0 0 0 16px; background: #181818; visibility: visible !important; opacity: 1 !important; }
  .public-site .header_menu ul a { white-space: normal; text-indent: 0; padding: 10px 12px; line-height: 1.5; }
  .public-site .btns_menu { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-site .btns_menu .xmore_btn { padding: 10px; }
  .public-site .btns_menu .first { font-size: 15px; }
  .public-site .separator { height: 20px; }
  .public-site .dapage { padding-top: 28px; padding-bottom: 32px; }
  .public-site .newslist, .public-site .box-1, .public-site .box-3 { padding-top: 32px; padding-bottom: 32px; }
  .public-site .row { gap: 24px 16px; }
  .public-site .row > [class*="grid_"] { width: 100%; }
  .public-site .row > .grid_people { width: calc((100% - 16px)/2); }
  .public-site .rowph { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-site h2 { font-size: 24px; line-height: 1.35; margin-bottom: 24px; overflow-wrap: anywhere; }
  .public-site h3 { overflow-wrap: anywhere; }
  .public-site .section_content, .public-site .newslist p { overflow-wrap: break-word; }
  .public-site .newslist h2 span { display: block; }
  .public-site .bx-wrapper .bx-caption span { font-size: 14px; line-height: 1.4; padding: 10px 16px; }
  .public-site .container_contact { width: 100%; }
  .public-site .contact_addon, .public-site #contact_form, .public-site .mixed_contact { width: 100%; float: none; }
  .public-site #mapa { height: 300px; margin-bottom: 24px; }
  .public-site #mapa iframe { height: 300px; }
  .public-site #contact_form table { width: 100%; table-layout: fixed; }
  .public-site #contact_form td:first-child { width: 27%; }
  .public-site #contact_form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .public-site #contact_form textarea { width: 100%; }
  .public-site input, .public-site textarea, .public-site select { font-size: 16px; }
  .public-site .nabor { background-size: auto 360px; }
  .public-site .nabor .section_content, .public-site #nabor_form { width: 100%; float: none; }
  .public-site .naborpict { width: 100%; }
  .public-site .naborpict img { box-sizing: border-box; max-width: 100%; padding: 12px 0 0; }
  .public-site .grid_partners { overflow-wrap: anywhere; }
}
@media (max-width: 380px) {
  .public-site .row > .grid_people { width: 100%; }
  .public-site .btns_menu .next { font-size: 11px; }
}
/* Keep the slider in document flow; the legacy theme positioned it absolutely. */
@media (max-width: 1100px) {
  .public-site .slideshow { position: relative; width: 100%; top: auto; }
  .public-site .bxslider > li { width: 100% !important; }
  .public-site .bx-wrapper .bx-prev { left: 0; }
  .public-site .bx-wrapper .bx-next { right: 0; }
  .public-site .bx-wrapper .bx-caption { left: 0; bottom: 24px; max-width: 100%; }
  .public-site .bx-wrapper .bx-caption span { box-sizing: border-box; padding: 10px 24px; }
}
@media (max-width: 760px) {
  .public-site .responsive-table.wide-table > table { min-width: 640px; overflow-wrap: normal; }
  .public-site .bx-wrapper .bx-caption { bottom: 16px; }
  .public-site .bx-wrapper .bx-caption span { padding: 8px 16px; }
}
@media (max-width: 760px) {
  .public-site .responsive-table.wide-table::before { content: 'Tabulku lze posouvat do stran.'; display: block; padding: 0 0 8px; color: #555; font-size: 12px; line-height: 1.5; }
}
/* Phase 2: tablet dropdown above quick links, mobile coach cards. */
.public-site .page1 .nav { position: relative; z-index: 30; }
.public-site .btns_menu { position: relative; z-index: 10; }
.public-site .coach-card__photo, .public-site .coach-card__content { display: contents; }
@media (max-width: 760px) {
  .public-site .coaches-list > .coach-card { width: 100%; display: flex; flex-direction: column; gap: 16px; padding: 20px; border: 0; border-radius: 0; background: #fff; }
  .public-site .coach-card__photo { display: block; position: relative; width: 200px; max-width: 100%; margin: 0 auto; }
  .public-site .coach-card__photo:empty { display: none; }
  .public-site .coach-card__photo a { display: block; }
  .public-site .coach-card__photo img.coachmask { display: block; float: none; width: 200px; max-width: 100%; height: 183px; object-fit: cover; }
  .public-site .coach-card__photo div.coachmask { position: absolute; top: 0; left: 0; width: 200px; max-width: 100%; height: 183px; margin: 0; float: none; pointer-events: none; }
  .public-site .coach-card__content { display: block; width: 100%; min-width: 0; text-align: center; }
  .public-site .coach-card__content h3 { margin: 0 0 12px; }
  .public-site .coach-card__content .perex { display: block; text-align: center; }
}

@media (max-width: 760px) {
 .public-site .grid_partners { text-align: center; }
 .public-site .grid_partners img { display: block !important; float: none !important; margin: 20px auto !important; }
 .public-site .grid_partners a:has(img) { display: block; width: fit-content; max-width: 100%; margin: 0 auto; float: none !important; }
 .public-site .coach-card__content p { text-align: center !important; }
}
@media (max-width: 760px) {
 .public-site .list_partners { display: flex; flex-direction: column; align-items: center; padding: 0; margin: 17px 0 0; }
 .public-site .list_partners > li { display: block; float: none; width: 100%; margin: 0; text-align: center; }
}
