/* ============================================================
   CVIČÍRNA ŠUMPERK — Complete Redesign
   Fonts: Barlow Condensed (headings) + Barlow (body)
   Palette: #0A0A0A black · #FF3D00 orange · #F5F5F5 white
   ============================================================ */

/* ---------- RESET ---------- */
/* Písma leží u nás, ne u Googlu: stahují se hned s webem (menší poskočení
   stránky po načtení) a IP návštěvníků nejdou třetí straně. */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/barlow-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/barlow-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/barlow-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/barlow-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-condensed-700i-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-condensed-700i-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/barlow-condensed-800i-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/barlow-condensed-800i-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/barlow-condensed-900i-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/barlow-condensed-900i-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/barlow-condensed-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/barlow-condensed-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-condensed-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-condensed-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-condensed-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-condensed-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/barlow-condensed-800-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/barlow-condensed-800-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/barlow-condensed-900-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/barlow-condensed-900-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  background: #0A0A0A;
  color: #F5F5F5;
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
  line-height: 1.6;
  overflow-x: hidden;
  cursor: none;
}
a, button, [role="button"] { cursor: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
strong { font-weight: 700; color: #fff; }

/* ---------- DESIGN TOKENS ---------- */
:root {
  --orange:  #FF3D00;   /* akcent: linky, štítky, nadpisy — na tmavém pozadí 5,58:1 */
  --orange-btn: #D42F00; /* plocha tlačítka pod bílým textem — 4,99:1 */
  --orange2: #FF6B35;
  --black:   #0A0A0A;
  --dark:    #111111;
  --card:    #161616;
  --line:    #252525;
  --gray:    #888;
  --white:   #F5F5F5;
  --font-h:  'Barlow Condensed', sans-serif;
  --font-b:  'Barlow', sans-serif;
  --ease:    cubic-bezier(.4,0,.2,1);
  --dur:     .35s;
}

/* ---------- BUTTONS ---------- */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--orange-btn);
  color: #fff;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 15px 38px;
  border: 2px solid var(--orange-btn);
  cursor: pointer;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.btn-primary:hover {
  background: transparent;
  color: var(--orange);
  transform: translateY(-2px);
}
.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: rgba(245,245,245,.8);
  font-family: var(--font-h);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 15px 38px;
  border: 2px solid rgba(245,245,245,.25);
  cursor: pointer;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.btn-ghost:hover {
  border-color: var(--white);
  color: var(--white);
  transform: translateY(-2px);
}
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: var(--white);
  font-family: var(--font-h);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 15px 38px;
  border: 2px solid var(--line);
  cursor: pointer;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.btn-outline:hover {
  border-color: var(--orange);
  color: var(--orange);
  transform: translateY(-2px);
}

/* ---------- LABEL ROW ---------- */
.label-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 18px;
}
.label-line {
  display: inline-block;
  width: 32px;
  height: 2px;
  background: var(--orange);
  flex-shrink: 0;
}

/* ---------- SECTION TOP ---------- */
.section-top {
  padding: 100px 64px 56px;
  max-width: 1440px;
  margin: 0 auto;
}
.section-top h2 {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(2.8rem, 6vw, 5rem);
  text-transform: uppercase;
  line-height: .95;
  color: var(--white);
}
.section-top h2 em {
  font-style: italic;
  color: var(--orange);
}

/* ==================== HEADER ==================== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 48px;
  transition: background var(--dur) var(--ease), padding var(--dur) var(--ease);
}
.site-header.scrolled {
  background: rgba(10,10,10,.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 14px 48px;
  border-bottom: 1px solid var(--line);
}
.header-logo {
  display: flex;
  align-items: center;
  gap: 12px;
}
.header-logo img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid var(--orange);
  object-fit: cover;
  filter: brightness(0) invert(1);
}
.header-logo span {
  font-family: var(--font-h);
  font-size: 1.15rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(245,245,245,.7);
}
.header-logo span strong {
  color: var(--white);
  font-weight: 800;
}
.header-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}
.header-nav a {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(245,245,245,.6);
  padding: 8px 14px;
  transition: color var(--dur);
}
.header-nav a:hover,
.header-nav a.active {
  color: var(--orange);
}
.header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
.btn-nav {
  font-family: var(--font-h);
  font-weight: 800;
  font-size: .9rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: var(--orange-btn);
  padding: 11px 28px;
  border: 2px solid var(--orange-btn);
  transition: background var(--dur), color var(--dur);
}
.btn-nav:hover {
  background: transparent;
  color: var(--orange);
}
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 6px;
}
.hamburger span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--white);
  transition: all var(--dur) var(--ease);
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile Nav — celoobrazovkové menu na telefonu. Obsah začíná pod hlavičkou
   (aby první položka nelezla do názvu webu) a když se nevejde, dá se scrollovat. */
.mobile-nav {
  display: none;
  position: fixed;
  inset: 0;
  height: 100dvh;
  background: #080808;
  z-index: 999;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 18px;
  padding: clamp(84px, 13vh, 130px) 20px calc(40px + env(safe-area-inset-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mobile-nav.open { display: flex; }
/* Na vyšších displejích se menu jistě vejde, tak ho vysaď na střed výšky;
   na nízkých zůstává od shora, aby šlo scrollovat bez oříznutí. */
@media (min-height: 720px) {
  .mobile-nav {
    justify-content: center;
    padding-block: 100px;
  }
}
/* Otevřené menu potřebuje pod hlavičkou plnou barvu, jinak přes ni při
   scrollování prosvítají položky. */
.mobile-nav.open ~ .site-header {
  background: #080808;
  border-bottom: 1px solid var(--line);
}
/* Zavírá se hamburgerem v hlavičce, který se přepne na křížek — tenhle
   křížek ležel přesně na něm a dělal rozmazané dvojité X. */
.mobile-nav-close { display: none; }
.mobile-nav a {
  flex: none;
  display: block;
  width: 100%;
  max-width: 100%;
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(1.5rem, 6.4vw, 2.25rem);
  line-height: 1.1;
  text-transform: uppercase;
  text-align: center;
  color: var(--white);
  letter-spacing: .04em;
  transition: color var(--dur);
}
.mobile-nav a:hover { color: var(--orange); }
.mobile-nav-cta {
  width: auto;
  margin-top: 8px;
  background: var(--orange-btn);
  color: #fff !important;
  padding: 14px 36px;
  font-size: 1.05rem !important;
}

/* ==================== HERO ==================== */
.hero {
  position: relative;
  height: 100vh;
  min-height: 660px;
  overflow: hidden;
  display: flex;
}
.hero-media {
  position: absolute;
  inset: 0;
}
.hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  filter: brightness(.55);
}
.hero-vignette {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to right, rgba(10,10,10,.9) 0%, rgba(10,10,10,.4) 55%, rgba(10,10,10,.1) 100%),
    linear-gradient(to top,   rgba(10,10,10,.8) 0%, transparent 50%);
}
.hero-body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 80px 96px;
  max-width: 860px;
}
.hero-tag {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 18px;
}
.dot {
  width: 7px;
  height: 7px;
  background: var(--orange);
  border-radius: 50%;
  animation: blink 2s ease-in-out infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }
.hero-h1 {
  font-family: var(--font-h);
  font-weight: 900;
  font-style: normal;
  font-size: clamp(5rem, 13vw, 11rem);
  line-height: .9;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 18px;
}
.hero-h1 em {
  font-style: italic;
  color: var(--orange);
}
.hero-sub {
  display: block;
  font-family: var(--font-h);
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.6;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(245,245,245,.55);
  /* Je uvnitř H1 (město v hlavním nadpisu), mezera od tlačítek zůstává 44 px. */
  margin: 18px 0 26px;
}
.hero-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.hero-scroll {
  position: absolute;
  bottom: 44px;
  right: 64px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.hero-scroll-line {
  width: 1px;
  height: 56px;
  background: linear-gradient(to bottom, var(--orange), transparent);
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.hero-scroll span {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(245,245,245,.4);
  writing-mode: vertical-rl;
}

/* ==================== STATS BAND ==================== */
.stats-band {
  background: var(--orange);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
}
.stat-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 52px;
  text-align: center;
}
.stat-block strong {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 2.6rem;
  color: #fff;
  line-height: 1;
  letter-spacing: .02em;
}
.stat-block strong sup {
  font-size: 1.4rem;
  vertical-align: super;
}
.stat-block span {
  font-family: var(--font-h);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin-top: 4px;
}
.stat-sep {
  width: 1px;
  height: 50px;
  background: rgba(255,255,255,.25);
  flex-shrink: 0;
}

/* ==================== O NÁS ==================== */
.about-section {
  background: var(--dark);
  padding: 0;
}
.about-inner {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 0;
  max-width: 1440px;
  margin: 0 auto;
}
.about-headline {
  padding: 100px 60px 100px 64px;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.about-h2 {
  font-family: var(--font-h);
  font-weight: 900;
  font-style: normal;
  font-size: clamp(3.5rem, 8vw, 7rem);
  text-transform: uppercase;
  line-height: .92;
  color: var(--white);
  margin-top: 0;
}
.about-h2 em {
  font-style: italic;
  color: var(--orange);
}
.about-content {
  padding: 100px 64px 100px 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.about-content p {
  color: #aaa;
  font-size: 1.05rem;
  line-height: 1.85;
  margin-bottom: 20px;
}
.about-content p:last-of-type { margin-bottom: 0; }

/* ==================== GALLERY ==================== */
.gallery-section {
  background: var(--black);
  padding-bottom: 100px;
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  padding: 0 64px;
  max-width: 1440px;
  margin: 0 auto;
}
.gitem {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: #1a1a1a;
}
.gitem--tall {
  grid-column: span 2;
  grid-row: span 2;
  aspect-ratio: auto;
}
.gitem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s var(--ease), filter .4s ease;
  filter: brightness(.8) saturate(.9);
}
.gitem:hover img {
  transform: scale(1.07);
  filter: brightness(.6) saturate(.7);
}
.gitem::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--orange);
  opacity: 0;
  transition: opacity .35s ease;
  mix-blend-mode: multiply;
}
.gitem:hover::after { opacity: .25; }

/* ==================== TRAINER ==================== */
.trainer-section {
  background: var(--black);
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 600px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.trainer-img-col {
  position: relative;
  overflow: hidden;
  background: var(--card);
}
.trainer-img-col::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent 55%, var(--black) 100%);
  pointer-events: none;
}
.trainer-img-col img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  filter: grayscale(15%) brightness(.9);
  display: block;
}
.trainer-text-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px 80px 80px 60px;
}
.trainer-name {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(2.5rem, 5vw, 4rem);
  text-transform: uppercase;
  line-height: .95;
  color: var(--white);
  margin-bottom: 24px;
}
.trainer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 40px;
}
.trainer-badges span {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--orange);
  background: rgba(255,61,0,.08);
  border: 1px solid rgba(255,61,0,.25);
  padding: 6px 14px;
}

/* ==================== PROGRAMS ==================== */
.programs-section {
  background: var(--dark);
}
.programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  padding: 0 64px;
  max-width: 1440px;
  margin: 0 auto;
}
.prog-card {
  background: var(--card);
  overflow: hidden;
  transition: transform var(--dur) var(--ease);
  position: relative;
  cursor: default;
}
.prog-img-wrap {
  position: relative;
  height: 240px;
  overflow: hidden;
}
.prog-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease), filter .4s ease;
  filter: brightness(.7) saturate(.8);
}
.prog-card:hover .prog-img-wrap img {
  transform: scale(1.07);
  filter: brightness(.5) saturate(.6);
}
.prog-num {
  position: absolute;
  bottom: 12px;
  right: 16px;
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 4.5rem;
  line-height: 1;
  color: rgba(255,255,255,.12);
  pointer-events: none;
}
.prog-body {
  padding: 28px 30px 36px;
  border-top: 3px solid var(--orange);
}
.prog-body h3 {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 1.8rem;
  text-transform: uppercase;
  color: var(--white);
  letter-spacing: .04em;
  margin-bottom: 10px;
}
.prog-body p {
  font-size: .95rem;
  color: #999;
  line-height: 1.75;
}
.prog-card:hover {
  transform: translateY(-5px);
}
.programs-cta {
  text-align: center;
  padding: 56px 64px;
  max-width: 1440px;
  margin: 0 auto;
}

/* ==================== SCHEDULE ==================== */
.schedule-section {
  background: var(--black);
  padding-bottom: 100px;
}
.rozpis-tyden {
  /* Sekce má text na střed kvůli nadpisu; seznam lekcí patří doleva,
     jinak se rozchází s barevným proužkem u okraje. */
  text-align: left;
  display: grid;
  /* Sedm sloupců napevno — týden se nesmí zalomit na 6 + 1. */
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 2px;
  background: var(--line);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  max-width: 1440px;
  margin: 0 auto;
  padding: 0;
}
/* Na užších obrazovkách se sedm sloupců čitelně nevejde. Týden zůstane celý
   a roluje se vodorovně; teprve na mobilu se dny skládají pod sebe. */
@media (max-width: 1100px) {
  .rozpis-tyden { grid-template-columns: repeat(7, minmax(125px, 1fr)); overflow-x: auto; }
  .rozpis-den { padding: 20px 14px 22px; }
}
.rozpis-den { background: var(--card); padding: 22px 18px 24px; }
.rozpis-den--volny { background: #0d0d0d; }

.rozpis-den-nazev {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--font-h);
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.rozpis-den--volny .rozpis-den-nazev { color: #4a4a4a; }

.rozpis-seznam { list-style: none; display: flex; flex-direction: column; gap: 10px; }

.rozpis-polozka {
  border-left: 3px solid var(--barva);
  padding: 8px 0 8px 12px;
}

.rozpis-cas {
  display: block;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .08em;
  color: var(--gray);
  margin-bottom: 3px;
}

.rozpis-nazev {
  display: block;
  font-family: var(--font-h);
  font-weight: 800;
  font-size: 1.06rem;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--white);
}

.rozpis-volno {
  font-family: var(--font-h);
  font-weight: 800;
  font-size: .9rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #3d3d3d;
  padding: 20px 0;
}
.rozpis-volno--tise { color: #2e2e2e; }

.events-section {
  background: var(--dark);
  padding-bottom: 100px;
}
.events-grid {
  display: grid;
  /* Karty se řadí zleva a nedopočítávají se prázdné sloupce — s jedinou akcí
     zbývala vedle ní široká šedá plocha. Linku proto nese karta, ne mřížka. */
  grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 480px));
  justify-content: start;
  gap: 2px;
  padding: 0 64px;
  max-width: 1440px;
  margin: 0 auto;
}
.event-card {
  background: var(--card);
  box-shadow: 0 0 0 1px var(--line);
  overflow: hidden;
  transition: transform var(--dur) var(--ease);
}
.event-card:hover { transform: translateY(-5px); }
.event-img {
  position: relative;
  overflow: hidden;
}
/* Plakát se ukazuje celý — na výšku i na šířku. Ořez na pevný poměr by
   z plakátu na výšku uřízl půlku informací. */
.event-img img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .6s var(--ease);
  filter: brightness(.8);
}
.event-card:hover .event-img img { transform: scale(1.05); }
.event-body {
  padding: 24px 28px 32px;
  border-top: 3px solid var(--orange);
}
.event-body h3 {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 1.6rem;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 16px;
  letter-spacing: .03em;
}
.event-meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.event-meta li {
  font-family: var(--font-h);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #999;
}
.event-meta li em {
  font-style: normal;
  color: var(--orange);
  margin-right: 6px;
}
.event-popis {
  margin-top: 18px;
  max-width: 46ch;
  color: #aaa;
  font-size: 1rem;
  line-height: 1.7;
}
.event-odkaz {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--orange);
  transition: gap var(--dur) var(--ease), color var(--dur) var(--ease);
}
.event-odkaz::after { content: '→'; }
.event-odkaz:hover { gap: 14px; color: var(--white); }
/* Sekce „Co chystáme" se ukazuje i bez akcí. Místo prázdné plochy drží místo
   karta v témže rastru — přerušovaný rámeček říká „sem přijde další event". */
.event-card--prazdna {
  display: flex;
  align-items: center;
  min-height: 300px;
  padding: 40px 36px;
  background: transparent;
  box-shadow: none;
  border: 1px dashed #3a3a3a;
}
.event-card--prazdna:hover { transform: none; }
.event-card--prazdna p {
  color: var(--gray);
  font-size: 1.05rem;
  line-height: 1.8;
}
.events-cta { text-align: center; padding: 56px 64px 0; }

/* ==================== PARTNERS ==================== */
.partners-section {
  background: var(--black);
  padding-bottom: 100px;
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  max-width: none;
}
/* Obal drží stejné odsazení jako `.section-top` nad ním, ať loga lícují
   s nadpisem sekce. Padding nemůže nést sama mřížka — prosvítala by jím
   barva, kterou grid kreslí mezery mezi dlaždicemi. */
.partners-wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 64px;
}
/* Loga jsou očištěná na průhledné pozadí a sjednocená na stejnou výšku,
   takže nepotřebují světlou podložku — sedí rovnou na tmavém webu. */
.partner {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--card);
  height: 132px;
  padding: 26px 34px;
  overflow: hidden;
  transition: background var(--dur) var(--ease);
}
.partner:hover { background: #1d1d1d; }
.partner img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  opacity: .72;
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.partner:hover img { opacity: 1; transform: scale(1.04); }
/* Partner bez nahraného loga — místo obrázku jen jeho jméno, ať dlaždice
   nezůstane prázdná a odkaz šel dál proklikat. */
.partner--text {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: center;
  color: #8d8d8d;
  transition: color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.partner--text:hover { color: var(--white); }

.contact-section {
  background: var(--dark);
  padding: 100px 64px;
  border-top: 1px solid var(--line);
}
.contact-inner {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 72px;
  max-width: 1312px;
  margin: 0 auto;
  align-items: start;
}
.contact-left h2 {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(2.5rem, 5vw, 4rem);
  text-transform: uppercase;
  color: var(--white);
  line-height: 1;
  margin-bottom: 40px;
}
.cinfo-block {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 28px;
}
.cinfo-icon {
  width: 46px;
  height: 46px;
  background: rgba(255,61,0,.07);
  border: 1px solid rgba(255,61,0,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--orange);
  flex-shrink: 0;
}
.cinfo-label {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 4px;
}
.cinfo-val {
  font-size: 1rem;
  color: var(--white);
  transition: color var(--dur);
}
.cinfo-val:hover { color: var(--orange); }
.contact-map {
  border: 1px solid var(--line);
  overflow: hidden;
  height: 440px;
}
.contact-map iframe { width: 100%; height: 100%; border: none; display: block; }

/* ==================== FOOTER ==================== */
.site-footer {
  background: #060606;
  border-top: 1px solid var(--line);
  padding: 44px 64px;
}
.footer-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}
.footer-logo {
  display: flex;
  align-items: center;
  gap: 12px;
}
.footer-logo img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  opacity: .45;
  object-fit: cover;
}
.footer-logo span {
  font-family: var(--font-h);
  font-weight: 600;
  font-size: .95rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #555;
}
.footer-logo span strong {
  color: #888;
  font-weight: 800;
}
.footer-nav {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.footer-nav a {
  font-family: var(--font-h);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #555;
  transition: color var(--dur);
}
.footer-nav a:hover { color: var(--orange); }
.footer-ig {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #555;
  transition: color var(--dur);
}
.footer-ig:hover { color: var(--orange); }
.footer-copy {
  font-size: .78rem;
  color: #777;
}
.footer-credit a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: #444;
  text-underline-offset: 3px;
  transition: color var(--dur);
}
.footer-credit a:hover { color: var(--orange); }

/* ==================== PAGE HERO (other pages) ==================== */
.page-hero {
  position: relative;
  padding: 160px 64px 80px;
  text-align: center;
  overflow: hidden;
  background: var(--dark);
  border-bottom: 3px solid var(--orange);
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,61,0,.1) 0%, transparent 55%);
  pointer-events: none;
}
.page-hero-title {
  position: relative;
  z-index: 1;
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(3rem, 8vw, 6.5rem);
  text-transform: uppercase;
  line-height: .95;
  color: var(--white);
}
.page-hero-title em { font-style: italic; color: var(--orange); }
.page-hero-subtitle {
  position: relative;
  z-index: 1;
  font-family: var(--font-h);
  font-weight: 600;
  font-size: .85rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--gray);
  margin-top: 16px;
}
/* Tlačítko pod větou (stránka 404) — ať se nelepí na text nad sebou. */
.page-hero-akce { margin-top: 32px; }

/* ==================== OTHER PAGE SECTIONS ==================== */
.crossfit-intro,
.eventy-uvod { background: var(--black); padding: 100px 64px; }
.crossfit-intro-inner,
.eventy-uvod-inner { max-width: 860px; margin: 0 auto; text-align: center; }
.crossfit-intro p,
.eventy-uvod p { font-size: 1.1rem; color: #aaa; line-height: 1.9; }

.all-programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  padding: 0 64px;
  max-width: 1440px;
  margin: 0 auto;
}
.program-number {
  position: absolute;
  bottom: 12px; right: 14px;
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 4.5rem;
  line-height: 1;
  color: rgba(255,255,255,.1);
  pointer-events: none;
}
.program-card {
  background: var(--card);
  overflow: hidden;
  transition: transform var(--dur) var(--ease);
  position: relative;
  cursor: default;
}
.program-card-img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease), filter .4s ease;
  filter: brightness(.7) saturate(.8);
}
.program-card:hover .program-card-img {
  transform: scale(1.07);
  filter: brightness(.5) saturate(.6);
}
.program-card-body {
  padding: 28px 30px 36px;
  border-top: 3px solid var(--orange);
}
.program-card-title {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 1.8rem;
  text-transform: uppercase;
  color: var(--white);
  letter-spacing: .04em;
  margin-bottom: 10px;
}
.program-card-desc { font-size: .95rem; color: #999; line-height: 1.75; }
.program-card:hover { transform: translateY(-5px); }
.programs-cta { text-align: center; padding: 56px 64px; max-width: 1440px; margin: 0 auto; }

/* Pricing */
/* Členství drží stejně široký kontejner jako ostatní stránky (1440) — s 1000 px
   visel obsah jako úzký sloupec nad širokou kontaktní sekcí pod ním.
   Čtecí text si šířku hlídá sám v `.pricing-info-box p`. */
.pricing-section { padding: 100px 64px; max-width: 1440px; margin: 0 auto; }
.pricing-info-box {
  background: var(--card);
  border-left: 3px solid var(--orange);
  padding: 32px 40px;
  margin-bottom: 40px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--orange);
}
.pricing-info-box p { color: #bbb; font-size: 1.05rem; line-height: 1.8; margin-bottom: 12px; max-width: 68ch; }
.pricing-info-box p:last-child { margin-bottom: 0; }
.multisport-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,61,0,.07);
  border: 1px solid rgba(255,61,0,.25);
  color: var(--orange);
  padding: 10px 22px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .1em;
  margin-top: 20px;
}
/* Pronájem je na stránce Spolupráce vedle mřížky partnerů — musí mít stejně
   široký kontejner jako ona, jinak visí odsazený uprostřed. Odstup zdola
   nese až `.section-top` následující sekce. */
.rental-section { padding: 100px 64px 0; max-width: 1440px; margin: 0 auto; }
.rental-box { background: var(--card); padding: 40px; border: 1px solid var(--line); }
.pdf-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: var(--card);
  border: 1px solid var(--line);
  color: var(--white);
  padding: 20px 44px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: all var(--dur);
}
.pdf-btn:hover { border-color: var(--orange); color: var(--orange); }
.contact-panel { background: var(--dark); padding: 80px 64px; border-top: 1px solid var(--line); }
.contact-panel-inner { max-width: 1312px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }

/* Section headings reuse in sub-pages */
.section { padding: 100px 64px; max-width: 1440px; margin: 0 auto; }
.section-full { padding: 100px 64px; }
.section-dark { background: var(--dark); }
.section-label {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .28em;
  color: var(--orange);
  text-transform: uppercase;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-label::before { content: ''; width: 28px; height: 2px; background: var(--orange); }
.section-title { color: var(--white); margin-bottom: 20px; font-family: var(--font-h); font-weight: 900; font-size: clamp(2.5rem,6vw,4.5rem); text-transform: uppercase; line-height: .95; }
.section-title span { color: var(--orange); }
.schedule-table-wrap { margin: 48px auto 0; max-width: 1200px; }
.schedule-section { padding: 100px 64px; background: var(--dark); text-align: center; }
.events-section-page { background: var(--dark); padding: 0 64px 100px; }
.events-cta-p { text-align: center; margin-top: 48px; }
.partners-section-p { background: var(--black); padding: 80px 64px; text-align: center; }
.partners-grid-p { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); margin-top: 48px; max-width: 1060px; margin-left: auto; margin-right: auto; }
.partner-item { display: flex; align-items: center; justify-content: center; background: var(--card); height: 130px; padding: 28px 40px; overflow: hidden; transition: background var(--dur); }
.partner-item.partner-dark, .partner-item.partner-tall { background: var(--card); }
.partner-item.partner-tall { padding: 28px 40px; }
.partner-item.partner-tall img { transform: none; max-height: 80%; width: auto; }
.partner-item.partner-tall:hover img { transform: none; }
.partner-item:hover { background: #1f1f1f; }
.partner-item img { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); opacity: .5; transition: opacity var(--dur); }
.partner-item:hover img { opacity: .95; }
.contact-section-p { padding: 100px 64px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: start; margin-top: 60px; }
.contact-info { }
.contact-item { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 32px; }
.contact-icon { width: 46px; height: 46px; background: rgba(255,61,0,.07); border: 1px solid rgba(255,61,0,.2); display: flex; align-items: center; justify-content: center; color: var(--orange); flex-shrink: 0; }
.contact-label { font-family: var(--font-h); font-weight: 700; font-size: .7rem; letter-spacing: .2em; color: var(--orange); text-transform: uppercase; margin-bottom: 4px; }
.contact-value { color: var(--white); font-size: 1rem; }
.contact-value a { color: var(--white); transition: color var(--dur); }
.contact-value a:hover { color: var(--orange); }
.map-embed { border: 1px solid var(--line); overflow: hidden; height: 420px; }
.map-embed iframe { width: 100%; height: 100%; border: none; }

/* ==================== REVEAL ANIMATIONS ==================== */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }

/* ==================== RESPONSIVE ==================== */
@media (max-width: 1100px) {
  .programs-grid { grid-template-columns: repeat(2,1fr); }
  .all-programs-grid { grid-template-columns: repeat(2,1fr); }
  .gallery-grid { grid-template-columns: repeat(3,1fr); }
  .gitem--tall { grid-column: span 2; }
  .trainer-section { grid-template-columns: 1fr; }
  .trainer-img-col { height: 420px; }
  .trainer-img-col::after { background: linear-gradient(to bottom, transparent 55%, var(--black) 100%); }
  .trainer-text-col { padding: 56px 64px; }
  .partners-grid { grid-template-columns: repeat(2,1fr); }
}
/* Menu má sedm položek — pod tuhle šířku se do lišty nevejdou a patří
   do hamburgeru, ať se hlavička nezalomí na dva řádky. */
@media (max-width: 1100px) {
  .header-nav, .btn-nav { display: none; }
  .hamburger { display: flex; }
}
@media (max-width: 768px) {
  .site-header { padding: 14px 22px; }
  .site-header.scrolled { padding: 10px 22px; }
  .hero-body { padding: 0 24px 80px; }
  .hero-scroll { right: 22px; }
  .hero-h1 { font-size: clamp(4rem,15vw,7rem); }
  .stats-band { gap: 0; }
  .stat-block { padding: 20px 28px; }
  .stat-sep { display: none; }
  .about-inner { grid-template-columns: 1fr; }
  .about-headline { padding: 64px 22px 40px; border-right: none; border-bottom: 1px solid var(--line); }
  .about-content { padding: 40px 22px 64px; }
  .gallery-grid { grid-template-columns: repeat(2,1fr); padding: 0 22px; }
  .gitem--tall { grid-column: span 2; }
  .trainer-section { grid-template-columns: 1fr; }
  .trainer-img-col { height: 340px; }
  .trainer-text-col { padding: 44px 22px; }
  .programs-grid { grid-template-columns: 1fr; padding: 0 22px; }
  .all-programs-grid { grid-template-columns: 1fr; padding: 0 22px; }
  .rozpis-tyden { grid-template-columns: 1fr; }
  .events-grid { padding: 0 22px; }
  .events-cta { padding: 44px 22px 0; }
  .partners-grid { grid-template-columns: repeat(2,1fr); }
  .partners-wrap { padding: 0 22px; }
  .contact-section { padding: 80px 22px; }
  .contact-inner { grid-template-columns: 1fr; gap: 48px; }
  .site-footer { padding: 40px 22px; }
  .footer-inner { flex-direction: column; align-items: flex-start; gap: 20px; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .section-top { padding: 80px 22px 44px; }
  .programs-cta { padding: 40px 22px; }
  .partners-section { padding-bottom: 80px; }
  .section, .section-full { padding: 80px 22px; }
  .pricing-section, .rental-section, .contact-panel { padding-left: 22px; padding-right: 22px; }
  /* Čtecí text potřebuje i na mobilu šířku — se 64px po stranách zbyl sloupec
     na třicet znaků. */
  .crossfit-intro, .eventy-uvod { padding: 72px 22px; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-panel-inner { grid-template-columns: 1fr; }
  .page-hero { padding: 140px 22px 80px; }
}
@media (max-width: 480px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .gitem--tall { grid-column: span 1; }
  .partners-grid { grid-template-columns: repeat(2,1fr); }
  .stats-band { flex-direction: column; }
  .stat-block { width: 100%; border-bottom: 1px solid rgba(255,255,255,.1); padding: 20px; }
  .stat-block:last-child { border-bottom: none; }
}

/* ==================== CUSTOM CURSOR ==================== */
@media (pointer: fine) {
  .cursor-dot {
    position: fixed;
    top: 0; left: 0;
    width: 10px; height: 10px;
    background: var(--orange);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    transform: translate(-50%, -50%);
    transition: transform 0.1s ease, width 0.25s ease, height 0.25s ease;
    box-shadow: 0 0 10px rgba(255,61,0,0.9), 0 0 20px rgba(255,61,0,0.5);
  }
  .cursor-ring {
    position: fixed;
    top: 0; left: 0;
    width: 36px; height: 36px;
    border: 2px solid var(--orange);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9998;
    transform: translate(-50%, -50%);
    transition: width 0.3s ease, height 0.3s ease, border-color 0.3s ease;
    box-shadow: 0 0 10px rgba(255,61,0,0.3);
    opacity: 0.85;
  }
  .cursor-ring.hover {
    width: 54px; height: 54px;
    border-color: var(--orange2);
    box-shadow: 0 0 18px rgba(255,107,53,0.45);
  }
  .cursor-dot.hover {
    width: 6px; height: 6px;
    opacity: 0.4;
  }
}

/* ==================== TŘÍDY MÍSTO INLINE STYLŮ ==================== */
/* Nadpisy sekcí na podstránkách — dřív se stejné pravidlo opakovalo
   v atributu style u každého h2. */
.section-h2 {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(2.8rem, 6vw, 5rem);
  text-transform: uppercase;
  line-height: .95;
  color: var(--white);
  margin-bottom: 40px;
}
.section-h2 em { font-style: italic; color: var(--orange); }
.section-h2 span { color: var(--orange); }
.section-h2--sm { font-size: clamp(2rem, 4vw, 3.5rem); margin-bottom: 32px; }
.section-h2--md { font-size: clamp(2.5rem, 5vw, 4rem); margin-bottom: 32px; }

.label-row--center { justify-content: center; margin-bottom: 24px; }
/* Obal rich textu (jedna kotva pro proklik z náhledu) — do rozvržení nevstupuje. */
.cms-rich { display: contents; }
.section-top--center { text-align: center; }
.section-top--center .label-row { justify-content: center; }

/* Stránka Programy — seznam všech lekcí */
.all-programs-section { background: var(--dark); }
.all-programs-inner { max-width: 1440px; margin: 0 auto; padding: 100px 64px; }
.all-programs-inner .section-h2 { margin-bottom: 56px; }
/* Mřížka si vlastní odsazení nese kvůli starému rozvržení; uvnitř .all-programs-inner
   by se sčítalo s jeho paddingem a na mobilu odsadilo karty o 86 px. */
.all-programs-inner .all-programs-grid { padding: 0; max-width: none; }

/* Kontaktní panel na podstránkách */
.contact-panel-title {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 2.2rem;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 32px;
}
.contact-panel-title span { color: var(--orange); }

/* Drobnosti, které byly dřív v atributu style */
.about-cta { margin-top: 32px; display: inline-flex; }
.crossfit-intro p + p,
.eventy-uvod p + p { margin-top: 20px; }
/* Zarovnané vlevo jako zbytek stránky — vycentrované tlačítko pod levě
   zarovnaným boxem po rozšíření kontejneru odplouvalo doprostřed. */
.pricing-cta { margin-top: 40px; }
.rental-text { color: rgba(245,245,245,.8); font-size: 1.05rem; line-height: 1.8; max-width: 65ch; }
.rental-actions { margin-top: 28px; display: flex; gap: 16px; flex-wrap: wrap; }
.btn-primary--lg { font-size: 1.1rem; padding: 18px 48px; }

@media (max-width: 768px) {
  .all-programs-inner { padding: 80px 22px; }
}

/* ==================== KARTY LEKCÍ S BANNEREM ==================== */
/* Text jen pro čtečky obrazovky a vyhledávače — vizuálně ho nese banner. */
.jen-pro-ctecky {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Banner má poměr 4:3 a nese v sobě název lekce i logo — nesmí se oříznout
   ani ztmavit tak, aby přestal být čitelný. */
.program-card-img,
.prog-img-wrap {
  height: auto;
  aspect-ratio: 4 / 3;
}
.program-card-img,
.prog-img-wrap img { filter: none; }
.program-card:hover .program-card-img,
.prog-card:hover .prog-img-wrap img { filter: brightness(1.06); }

/* Lekce bez banneru (třeba založená z rozpisu): název místo obrázku, ať karta nezůstane prázdná. */
.program-card-zastupce,
.prog-zastupce {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 4 / 3; padding: 24px; text-align: center;
  background: #1c1c1c;
  font-family: var(--font-h); font-weight: 900; font-size: 1.8rem;
  letter-spacing: .04em; text-transform: uppercase; color: var(--white);
}
.prog-zastupce { width: 100%; height: 100%; aspect-ratio: auto; }

/* Oranžová linka patří pod banner, ne nad popis — jinak ji karta bez popisu
   nemá a mezi kartami vznikne rozdíl. */
.program-card-img { border-bottom: 3px solid var(--orange); }
.prog-img-wrap { border-bottom: 3px solid var(--orange); }
.program-card-body, .prog-body { border-top: none; }

/* ==================== CENÍK ==================== */
.cenik-section { padding: 0 64px 100px; max-width: 1440px; margin: 0 auto; }
.cenik-clenstvi { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 32px; }
.cenik-clen-box {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 3px solid var(--orange);
  padding: 24px 28px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.cenik-clen-nazev { color: var(--gray); font-size: .95rem; }
.cenik-clen-cena {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: 1.7rem;
  color: var(--white);
  white-space: nowrap;
}
/* Tabulka se na úzkém displeji posouvá sama v sobě, ne celou stránkou. */
.cenik-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cenik-table { width: 100%; border-collapse: collapse; min-width: 520px; }
.cenik-table th, .cenik-table td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  text-align: right;
  font-size: .95rem;
  color: var(--white);
  white-space: nowrap;
}
.cenik-table thead th {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--orange);
  border-bottom: 1px solid var(--orange);
}
.cenik-table tbody th[scope="row"] {
  text-align: left;
  font-family: var(--font-h);
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--gray);
  text-transform: uppercase;
}
.cenik-table thead th:first-child { border-bottom-color: var(--orange); }
.cenik-table tbody tr:hover { background: rgba(255,255,255,.02); }

@media (max-width: 768px) {
  .cenik-section { padding-left: 22px; padding-right: 22px; }
  .cenik-clenstvi { grid-template-columns: 1fr; }
}

/* Popisky lekcí jsou z rezervačního systému delší, než byly původní krátké
   věty, a pořadové číslo v rohu karty se s nimi křížilo. Patří nad banner. */
.program-number {
  bottom: auto;
  top: 10px;
  right: 16px;
  font-size: 3.2rem;
  color: rgba(255,255,255,.35);
  text-shadow: 0 2px 12px rgba(0,0,0,.6);
  z-index: 1;
}


/* ==================== PORTRÉT TRENÉRA ==================== */
/* Zdrojová fotka má kruhový ořez zapečený v sobě. Roztažená přes celý sloupec
   ukazovala oblouk na černém pozadí; jako kruhový portrét vypadá jako záměr
   a menší rozlišení tolik nevadí. */
.trainer-img-col {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 64px;
  background: var(--black);
}
.trainer-img-col::after { content: none; }
.trainer-portret {
  position: relative;
  width: min(420px, 70%);
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  background: var(--card);
  border: 2px solid var(--line);
  box-shadow: 0 0 0 12px rgba(255,61,0,.06), 0 24px 60px rgba(0,0,0,.5);
}
.trainer-portret img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(10%) brightness(.95);
  display: block;
}
@media (max-width: 1100px) {
  .trainer-img-col { height: auto; padding: 56px 22px 24px; }
  .trainer-portret { width: min(320px, 72%); }
}
@media (max-width: 768px) {
  .trainer-img-col { height: auto; padding: 48px 22px 16px; }
  .trainer-portret { width: min(260px, 70%); }
}

/* ==================== DETAIL LEKCE (rozklik karty) ==================== */
/* Karta je tlačítko — musí ztratit výchozí vzhled tlačítka a vypadat
   pořád jako karta. */
button.program-card {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
}
button.program-card:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px;
}
.program-card-body, .program-card-desc { display: block; }

/* Lupa v rohu — bez ní není poznat, že se karta dá rozkliknout. */
.program-card-lupa {
  position: absolute;
  top: 12px;
  left: 14px;
  z-index: 1;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(10,10,10,.55);
  color: #fff;
  opacity: 0;
  transform: scale(.9);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.program-card-lupa svg { width: 17px; height: 17px; }
.program-card:hover .program-card-lupa,
.program-card:focus-visible .program-card-lupa { opacity: 1; transform: scale(1); }

.lekce-detail {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(6,6,6,.94);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  transition: opacity .2s var(--ease);
}
.lekce-detail.je-videt { opacity: 1; }

.lekce-detail-obal {
  position: relative;
  width: 100%;
  max-width: 1000px;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lekce-detail-karta {
  width: 100%;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background: var(--card);
  border: 1px solid var(--line);
  transform: scale(.97);
  transition: transform .22s var(--ease);
}
.lekce-detail.je-videt .lekce-detail-karta { transform: scale(1); }

.lekce-detail-obrazek {
  display: block;
  width: 100%;
  height: auto;
}

.lekce-detail-text { padding: 32px 36px 36px; }

/* Na širokém displeji vedle sebe — banner má poměr 4:3 a pod sebou by
   popis vytlačil pod ohyb, takže by se kvůli němu muselo scrollovat. */
@media (min-width: 900px) {
  .lekce-detail-karta {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: stretch;
  }
  .lekce-detail-obrazek {
    height: 100%;
    max-height: calc(100vh - 48px);
    object-fit: cover;
    border-right: 3px solid var(--orange);
  }
  .lekce-detail-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 44px 44px 48px;
    overflow-y: auto;
  }
}

@media (max-width: 899px) {
  .lekce-detail-obrazek {
    max-height: 42vh;
    object-fit: cover;
    border-bottom: 3px solid var(--orange);
  }
}

.lekce-detail-nazev {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1;
  color: var(--white);
  margin-bottom: 18px;
}

.lekce-detail-popis {
  font-size: 1.02rem;
  line-height: 1.85;
  color: #bbb;
}

.lekce-detail-poradi {
  display: block;
  margin-top: 26px;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .22em;
  color: var(--gray);
}

.lekce-detail-zavrit,
.lekce-detail-sip {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(20,20,20,.9);
  border: 1px solid var(--line);
  color: var(--white);
  cursor: pointer;
  transition: background var(--dur), color var(--dur), border-color var(--dur);
}
.lekce-detail-zavrit:hover,
.lekce-detail-sip:hover { background: var(--orange-btn); border-color: var(--orange-btn); }
.lekce-detail-zavrit:focus-visible,
.lekce-detail-sip:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }

.lekce-detail-zavrit {
  top: -14px; right: -14px;
  width: 44px; height: 44px;
  font-size: 1.1rem;
  border-radius: 50%;
}

.lekce-detail-sip {
  top: 50%;
  transform: translateY(-50%);
  width: 48px; height: 72px;
  font-size: 2rem;
  line-height: 1;
}
.lekce-detail-sip--vlevo  { left: -66px; }
.lekce-detail-sip--vpravo { right: -66px; }

@media (max-width: 1180px) {
  .lekce-detail-sip--vlevo  { left: 4px; }
  .lekce-detail-sip--vpravo { right: 4px; }
  .lekce-detail-zavrit { top: 4px; right: 4px; }
}

/* Na úzkém displeji nemají šipky po stranách kam — ležely by přes popis.
   Jdou dolů pod text, kam se v textu nechá místo. */
@media (max-width: 899px) {
  .lekce-detail-text { padding-bottom: 78px; }
  .lekce-detail-sip {
    top: auto;
    bottom: 14px;
    transform: none;
    width: 54px;
    height: 46px;
    font-size: 1.7rem;
  }
  .lekce-detail-sip--vlevo  { left: auto; right: 50%; margin-right: 8px; }
  .lekce-detail-sip--vpravo { right: auto; left: 50%; margin-left: 8px; }
}

@media (max-width: 768px) {
  .lekce-detail { padding: 10px; }
  .lekce-detail-text { padding: 24px 22px 30px; }
  .lekce-detail-sip { width: 40px; height: 58px; font-size: 1.6rem; }
  .lekce-detail-popis { font-size: 1rem; }
  /* Lupa na dotykovém displeji nemá co ukazovat — hover tam není. */
  .program-card-lupa { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .lekce-detail, .lekce-detail-karta, .program-card-lupa { transition: none; }
}

/* Rozpis tažený z rezervačního systému nese datum a případný podnázev lekce. */
.rozpis-tyden-popis {
  margin: 0 auto 16px;
  text-align: center;
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gray);
}

/* Proběhlé akce jsou vzpomínka, ne pozvánka — drží se zpátky, dokud na ně
   návštěvník nesáhne. */
.event-card--probehla { background: #0d0d0d; }
.event-card--probehla .event-img img { filter: grayscale(1); opacity: .55; transition: filter var(--dur) var(--ease), opacity var(--dur) var(--ease); }
.event-card--probehla:hover .event-img img { filter: grayscale(0); opacity: 1; }
.event-card--probehla .event-body h3 { color: var(--gray); }

/* Na úvodní stránce navazuje pás s výzvou, takže rozpis nepotřebuje plné
   odsazení sekce — jinak by mezi tabulkou a výzvou zela díra. */
.schedule-section--tesne { padding-bottom: 56px; }

/* Výzva do rezervačního systému a podmínky k němu. Stojí pod sebou a nejsou
   si rovné: výzva je jediná akce, kterou po rozpisu chceme, podmínky jsou
   doplněk — proto je druhý panel znatelně nižší a s menším nadpisem. */
.rezervace-pas {
  background: var(--dark);
  border-top: 1px solid var(--line);
  padding: 0 64px 80px;
}
.rezervace-mrizka {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  background: var(--line);
  max-width: 1440px;
  margin: 0 auto;
}
.rezervace-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--card);
  padding: 64px 40px;
}
.rezervace-nadpis {
  font-family: var(--font-h);
  font-weight: 900;
  font-size: clamp(1.8rem, 2.6vw, 2.6rem);
  letter-spacing: -.01em;
  text-transform: uppercase;
  line-height: .95;
  color: var(--white);
  margin-bottom: 36px;
}
.rezervace-nadpis span { color: var(--orange); }
.rezervace-panel .pdf-btn { padding: 18px 32px; white-space: nowrap; }

/* Dominantní pole hned pod tabulkou rozpisu. */
.rezervace-panel--hlavni { padding: 72px 40px; }

/* Podmínky: stejná stavba, menší měřítko — nižší panel, drobnější nadpis
   i tlačítko, ať je na první pohled jasné, co je hlavní akce. */
.rezervace-panel--vedlejsi { padding: 40px 40px 44px; }
.rezervace-panel--vedlejsi .rezervace-nadpis {
  font-size: clamp(1.1rem, 1.5vw, 1.45rem);
  margin-bottom: 24px;
}
.rezervace-panel--vedlejsi .pdf-btn { padding: 13px 26px; font-size: .92rem; }

@media (max-width: 900px) {
  .rezervace-pas { padding: 0 22px 60px; }
  .rezervace-panel--hlavni { padding: 48px 24px; }
  .rezervace-panel--vedlejsi { padding: 32px 20px 36px; }
  /* Na úzké obrazovce se tlačítko vejde jen menší; text se smí zalomit. */
  .rezervace-panel .pdf-btn { padding: 14px 20px; font-size: .9rem; white-space: normal; }
}

/* Věta pod nadpisem rozpisu. Souvislý text, ne prostrkaný štítek —
   proto se řídí šířkou čtení, ne šířkou sekce. */
.rozpis-podnadpis-sekce {
  margin: 18px auto 0;
  max-width: 44rem;
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(245,245,245,.75);
}

/* Přepínač týdnů. Bez JavaScriptu tlačítka nic nedělají a týdny zůstanou
   pod sebou — proto je každý blok uvozený vlastním datem. */
.rozpis-prepinac {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 26px;
}
.rozpis-prepinac-tl {
  background: transparent;
  color: rgba(245,245,245,.65);
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 11px 26px;
  border: 2px solid rgba(245,245,245,.2);
  cursor: pointer;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.rozpis-prepinac-tl:hover { border-color: var(--white); color: var(--white); }
.rozpis-prepinac-tl:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
.rozpis-prepinac-tl.je-aktivni {
  background: var(--orange-btn);
  border-color: var(--orange-btn);
  color: #fff;
}
@media (max-width: 768px) {
  /* Na mobilu se musí obě tlačítka vejít vedle sebe na jeden řádek. */
  .rozpis-prepinac { gap: 8px; }
  .rozpis-prepinac-tl { font-size: .85rem; letter-spacing: .08em; padding: 10px 14px; }
}

/* Dnešek ať je v týdnu vidět na první pohled. */
.rozpis-den--dnes { box-shadow: inset 0 3px 0 var(--orange); }
.rozpis-den--dnes .rozpis-den-datum { color: var(--orange); }

/* Dny, které v probíhajícím týdnu už proběhly. Lekce zůstanou vypsané —
   jen ztlumené a přeškrtnuté, ať je vidět, co v týdnu bylo. */
.rozpis-den--minulo { background: #0d0d0d; }
.rozpis-den--minulo .rozpis-den-nazev { color: #4a4a4a; }
.rozpis-den--minulo .rozpis-den-datum { color: #3d3d3d; }
.rozpis-den--minulo .rozpis-seznam { opacity: .5; }
.rozpis-den--minulo .rozpis-cas,
.rozpis-den--minulo .rozpis-nazev,
.rozpis-den--minulo .rozpis-podnazev { text-decoration: line-through; }
.rozpis-probehlo {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #4a4a4a;
  margin-bottom: 14px;
}
.rozpis-den-datum {
  white-space: nowrap;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--gray);
}
.rozpis-podnazev {
  display: block;
  margin-top: 3px;
  font-family: var(--font-b);
  font-size: .82rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--orange);
}

/* ==================== PLÁNEK ==================== */
.mapa { position: relative; }
.mapa-zastupce {
  width: 100%;
  height: 100%;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 32px 24px;
  text-align: center;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.012) 0 12px, transparent 12px 24px),
    var(--card);
}
.mapa-ikona { width: 40px; height: 40px; color: var(--orange); }
.mapa-adresa {
  font-family: var(--font-h);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: .04em;
  color: var(--white);
}
.mapa-odkaz {
  font-size: .88rem;
  color: var(--gray);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--dur);
}
.mapa-odkaz:hover { color: var(--orange); }
.mapa iframe { width: 100%; height: 100%; border: none; display: block; }
