/* ZŠ Klášterní - Custom Styles */

/* ==========================================
   Barevný systém - Sémantické proměnné
   ==========================================

   HIERARCHIE BAREV:
   - Primary CTA: Žlutá (#F7D774) - hlavní akce
   - Secondary CTA: Tmavý teal (#2F6F8F) - vedlejší akce
   - Odkazy: Tmavý teal (#2F6F8F)

   WCAG AA compliance ověřeno pro všechny kombinace
*/
:root {
  /* === AKČNÍ BARVY (CTA) === */
  --color-cta-primary: #F7D774;           /* Hlavní CTA - žlutá */
  --color-cta-primary-hover: #E0A542;     /* Hover - oranžová */
  --color-cta-primary-text: #333333;      /* Text na žluté */

  --color-cta-secondary: #2F6F8F;         /* Vedlejší CTA - tmavý teal */
  --color-cta-secondary-hover: #246075;   /* Hover - tmavší */
  --color-cta-secondary-text: #FFFFFF;    /* Text na teal */

  /* === TEXTOVÉ BARVY === */
  --color-text-primary: #333333;          /* Hlavní text */
  --color-text-secondary: #666666;        /* Sekundární text */
  --color-text-inverse: #FFFFFF;          /* Text na tmavém pozadí */
  --color-text-heading: #2F6F8F;          /* Nadpisy H2, H3 */
  --color-text-link: #2F6F8F;             /* Odkazy */

  /* === POZADÍ === */
  --color-bg-default: #FFFFFF;            /* Výchozí bílé pozadí */
  --color-bg-alt: #F3F5F7;                /* Alternativní šedé pozadí */
  --color-bg-accent: #A9D3C7;             /* Zvýrazněné světle teal */
  --color-bg-dark: #333333;               /* Tmavé pozadí (footer) */
  --color-bg-hero: #2F6F8F;               /* Hero overlay */

  /* DŮLEŽITÉ: Žlutá #F7D774 je POUZE pro tlačítka, NIKDY pro pozadí sekcí! */

  /* === DEKORATIVNÍ PRVKY === */
  --color-icon-bg: #A9D3C7;               /* Pozadí ikon */
  --color-badge: #3FA7A3;                 /* Badge/čísla pilířů */
  --color-border: #F3F5F7;                /* Bordery */
  --color-border-accent: #A9D3C7;         /* Zvýrazněné bordery */

  /* === ZPĚTNÁ KOMPATIBILITA (postupně odstranit) === */
  --color-primary: #2F6F8F;
  --color-secondary: #3FA7A3;
  --color-accent-yellow: #F7D774;
  --color-accent-orange: #E0A542;
  --color-bg-light: #A9D3C7;
  --color-bg-white: #FFFFFF;
  --color-bg-gray: #F3F5F7;
  --color-text: #333333;
  --color-text-light: #666666;

  /* Pico CSS přepsání - vynucení light mode */
  --pico-primary: #2F6F8F;
  --pico-primary-hover: #246075;
  --pico-secondary: #3FA7A3;
  --pico-background-color: #FFFFFF;
  --pico-color: #333333;
  --pico-card-background-color: #FFFFFF;
  --pico-card-sectioning-background-color: #F3F5F7;
  --pico-muted-color: #666666;
  --pico-muted-border-color: #F3F5F7;
  --pico-contrast: #333333;
  --pico-contrast-inverse: #FFFFFF;
  color-scheme: light;
}

/* ==========================================
   Globální styly tlačítek
   ========================================== */

/* Primární CTA - žlutá, hlavní akce */
.btn-primary {
  display: inline-block;
  background: var(--color-cta-primary);
  color: var(--color-cta-primary-text);
  padding: 1rem 2rem;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.btn-primary:hover {
  background: var(--color-cta-primary-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  color: var(--color-cta-primary-text);
}

/* Sekundární CTA - teal, vedlejší akce */
.btn-secondary {
  display: inline-block;
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  padding: 1rem 2rem;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 500;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}

.btn-secondary:hover {
  background: var(--color-cta-secondary-hover);
  transform: translateY(-2px);
  color: var(--color-cta-secondary-text);
}

/* Outline tlačítko - průhledné s rámečkem */
.btn-outline {
  display: inline-block;
  background: transparent;
  color: var(--color-text-primary);
  padding: 1rem 2rem;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 500;
  font-size: 1rem;
  border: 2px solid var(--color-text-primary);
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}

.btn-outline:hover {
  background: rgba(0, 0, 0, 0.05);
  border-color: var(--color-cta-secondary);
  color: var(--color-cta-secondary);
}

/* Outline tlačítko - světlá varianta (na tmavém pozadí) */
.btn-outline-light {
  display: inline-block;
  background: transparent;
  color: var(--color-text-inverse);
  padding: 1rem 2rem;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 500;
  font-size: 1rem;
  border: 2px solid rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}

.btn-outline-light:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--color-text-inverse);
  color: var(--color-text-inverse);
}

/* ==========================================
   Utility navigace (top bar)
   ========================================== */
.utility-nav {
  background: var(--color-cta-secondary);
  padding: 0.5rem 0;
  font-size: 0.875rem;
}

.utility-nav .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.utility-nav a {
  color: white;
  text-decoration: none;
  margin-right: 1.5rem;
}

.utility-nav a:hover {
  text-decoration: underline;
}

.utility-nav .lang-switch a {
  margin-right: 0;
  margin-left: 0.75rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 3px;
}

.utility-nav .lang-switch a.active {
  background: rgba(255,255,255,0.2);
}

/* ==========================================
   Header a hlavní navigace
   ========================================== */
header.main-header {
  background: var(--color-bg-white);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  position: sticky;
  top: 0;
  z-index: 100;
}

header.main-header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
}

.logo img {
  height: 60px;
  width: auto;
}

/* Hlavní navigace */
nav.main-nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.5rem;
}

nav.main-nav a {
  display: block;
  padding: 0.75rem 1rem;
  color: var(--color-text);
  text-decoration: none;
  font-weight: 500;
  border-radius: 4px;
  transition: background 0.2s;
}

nav.main-nav a:hover {
  background: var(--color-bg-gray);
  color: var(--color-primary);
}

/* Dropdown menu */
nav.main-nav > ul > li {
  position: relative;
}

nav.main-nav > ul > li.has-dropdown > a::after {
  content: '▾';
  font-size: 0.7em;
  margin-left: 0.4em;
  opacity: 0.7;
}

nav.main-nav .dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: white;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  border-radius: 4px;
  padding: 0.5rem 0;
  z-index: 200;
  flex-direction: column;
  gap: 0;
}

nav.main-nav > ul > li.has-dropdown:hover > .dropdown,
nav.main-nav > ul > li.has-dropdown.open > .dropdown {
  display: flex;
}

nav.main-nav .dropdown li {
  display: block;
}

nav.main-nav .dropdown a {
  display: block;
  padding: 0.6rem 1.25rem;
  white-space: nowrap;
  border-radius: 0;
  font-weight: 400;
}

nav.main-nav .dropdown a:hover {
  background: var(--color-bg-gray);
  color: var(--color-primary);
}

/* Disabled navigační odkazy - stránka neexistuje */
nav.main-nav a.nav-disabled,
.footer-col a.nav-disabled {
  color: #999 !important;
  cursor: default;
  pointer-events: none;
  opacity: 0.6;
}

nav.main-nav a.nav-disabled:hover,
.footer-col a.nav-disabled:hover {
  background: transparent;
  color: #999 !important;
}

/* Hamburger menu tlačítko */
.menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
}

.menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-text);
  margin: 5px 0;
  transition: 0.3s;
}

/* ==========================================
   Hero sekce
   ========================================== */
.hero {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  overflow: hidden;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  /* Používá --color-bg-hero (#2F6F8F) */
  background: linear-gradient(
    135deg,
    rgba(47, 111, 143, 0.92) 0%,
    rgba(47, 111, 143, 0.7) 40%,
    rgba(47, 111, 143, 0.3) 70%,
    rgba(47, 111, 143, 0.1) 100%
  );
  z-index: 1;
}

.hero .container {
  position: relative;
  z-index: 2;
}

.hero-content {
  max-width: 640px;
  padding: 2rem 0;
}

.hero-tagline {
  color: var(--color-cta-primary);
  font-size: 0.95rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 1rem;
}

.hero h1 {
  color: var(--color-text-inverse);
  font-size: 2.75rem;
  font-style: italic;
  font-weight: 500;
  margin-bottom: 1.5rem;
  line-height: 1.3;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}

.hero-subtitle {
  color: rgba(255, 255, 255, 0.95);
  font-size: 1.2rem;
  line-height: 1.7;
  margin-bottom: 2.5rem;
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* Hero tlačítka - dědí z globálních stylů, specifické úpravy */
.hero-buttons .btn-primary {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.hero-buttons .btn-primary:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* V hero sekci používáme outline-light místo btn-secondary */
.hero-buttons .btn-secondary {
  background: transparent;
  color: var(--color-text-inverse);
  border: 2px solid rgba(255, 255, 255, 0.7);
}

.hero-buttons .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--color-text-inverse);
  color: var(--color-text-inverse);
}

/* ==========================================
   Sekce - obecné
   ========================================== */
section {
  padding: 4rem 0;
  background: var(--color-bg-default);  /* Výchozí bílé pozadí pro všechny sekce */
}

section.bg-gray {
  background: var(--color-bg-alt);
}

section.bg-light {
  background: var(--color-bg-accent);
}

section.bg-cta {
  background: var(--color-bg-cta);
}

.section-title {
  text-align: center;
  margin-bottom: 3rem;
}

.section-title h2 {
  color: var(--color-text-heading);
  margin-bottom: 0.5rem;
}

/* ==========================================
   4 Pilíře
   ========================================== */
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.pillar-card {
  text-align: center;
  padding: 2rem 1rem;
  background: var(--color-bg-default);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.pillar-card .icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1rem;
  background: var(--color-icon-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
}

.pillar-card h3 {
  color: var(--color-text-heading);
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.pillar-card p {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  margin: 0;
}

.pillars-cta {
  text-align: center;
  margin-top: 2rem;
}

.pillars-cta a {
  color: var(--color-text-link);
  font-weight: 500;
}

/* ==========================================
   Rychlé odkazy
   ========================================== */
.quick-links-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.quick-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  background: var(--color-bg-default);
  border-radius: 8px;
  text-decoration: none;
  color: var(--color-text-primary);
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transition: transform 0.2s, box-shadow 0.2s;
}

.quick-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

.quick-link span {
  font-weight: 500;
}

.quick-link .arrow {
  color: var(--color-text-link);
  font-size: 1.25rem;
}

/* ==========================================
   Aktuality
   ========================================== */
.news-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
}

.news-header h2 {
  margin: 0;
  color: var(--color-text-heading);
}

.news-header a {
  color: var(--color-text-link);
  font-weight: 500;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.news-card {
  background: var(--color-bg-default);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.news-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.news-card-content {
  padding: 1.5rem;
}

.news-card h3 {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.news-card h3 a {
  color: var(--color-text-primary);
  text-decoration: none;
}

.news-card h3 a:hover {
  color: var(--color-text-heading);
}

.news-card .date {
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  margin-bottom: 0.75rem;
}

.news-card p {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  margin-bottom: 1rem;
}

.news-card .read-more {
  color: var(--color-text-link);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.9rem;
}

/* ==========================================
   Reference rodičů
   ========================================== */
.testimonials {
  background: var(--color-cta-secondary);
  color: var(--color-text-inverse);
  padding: 4rem 0;
}

.testimonials h2 {
  text-align: center;
  color: var(--color-text-inverse);
  margin-bottom: 3rem;
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.testimonial {
  background: rgba(255,255,255,0.1);
  padding: 2rem;
  border-radius: 8px;
}

.testimonial blockquote {
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.6;
  margin: 0 0 1rem 0;
  padding: 0;
  border: none;
  color: var(--color-text-inverse);
}

.testimonial cite {
  font-style: normal;
  font-size: 0.9rem;
  opacity: 0.9;
  color: var(--color-text-inverse);
}

/* ==========================================
   Fotogalerie
   ========================================== */
.gallery-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
}

.gallery-header h2 {
  margin: 0;
  color: var(--color-text-heading);
}

.gallery-header a {
  color: var(--color-text-link);
  font-weight: 500;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}

.gallery-grid img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 8px;
}

/* ==========================================
   CTA sekce
   ========================================== */
.cta-section {
  background: var(--color-bg-accent);  /* Světle teal - jemné, ne křiklavé */
  padding: 4rem 0;
  text-align: center;
}

.cta-section h2 {
  color: var(--color-text-primary);
  margin-bottom: 2rem;
}

.cta-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* Primární CTA tlačítko - ŽLUTÉ (zde žlutá patří - na tlačítka!) */
.cta-section .btn-primary {
  background: var(--color-cta-primary);
  color: var(--color-cta-primary-text);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.cta-section .btn-primary:hover {
  background: var(--color-cta-primary-hover);
}

/* Sekundární tlačítko - teal outline */
.cta-section .btn-outline,
.cta-buttons .btn-outline {
  background: transparent;
  color: var(--color-cta-secondary);
  border: 2px solid var(--color-cta-secondary);
}

.cta-section .btn-outline:hover,
.cta-buttons .btn-outline:hover {
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
}

/* ==========================================
   Offers Slider - "Co nabízíme našim žákům"
   ========================================== */
.offers-slider {
  padding: 3rem 0 0;
  background: var(--color-bg-light);
}

.offers-slider h2 {
  text-align: center;
  margin-bottom: 2rem;
  color: var(--color-text-primary);
}

.slider-container {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.slider-track {
  display: flex;
  transition: transform 0.5s ease-in-out;
}

.slide {
  min-width: 100%;
  position: relative;
}

.slide-image {
  width: 100%;
  height: 450px;
  object-fit: cover;
  display: block;
}

.slide-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2.5rem 2rem;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.9) 0%,
    rgba(0, 0, 0, 0.85) 40%,
    rgba(0, 0, 0, 0.6) 70%,
    transparent 100%
  );
  color: white;
}

.slide-content h3 {
  font-size: 1.5rem;
  margin-bottom: 0.75rem;
  color: white;
  font-weight: 600;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.slide-content p {
  font-size: 1rem;
  line-height: 1.6;
  max-width: 800px;
  margin: 0;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

/* Slider dots navigation */
.slider-dots {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.5rem 0;
  background: var(--color-bg-light);
}

.slider-dots .dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--color-primary);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
}

.slider-dots .dot:hover {
  background: var(--color-primary-light);
}

.slider-dots .dot.active {
  background: var(--color-primary);
}

/* Responsive slider */
@media (max-width: 992px) {
  .slide-image {
    height: 380px;
  }

  .slide-content h3 {
    font-size: 1.3rem;
  }

  .slide-content p {
    font-size: 0.95rem;
  }
}

@media (max-width: 768px) {
  .slide-image {
    height: 300px;
  }

  .slide-content {
    padding: 1.5rem;
  }

  .slide-content h3 {
    font-size: 1.1rem;
  }

  .slide-content p {
    font-size: 0.9rem;
    line-height: 1.4;
  }
}

@media (max-width: 480px) {
  .slide-image {
    height: 250px;
  }

  .slide-content {
    padding: 1rem;
  }

  .slide-content h3 {
    font-size: 1rem;
    margin-bottom: 0.5rem;
  }

  .slide-content p {
    font-size: 0.85rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

/* ==========================================
   Footer
   ========================================== */
footer.main-footer {
  background: var(--color-bg-dark);
  color: var(--color-text-inverse);
  padding: 3rem 0 1rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-bottom: 2rem;
}

.footer-col h3 {
  color: var(--color-text-inverse);
  font-size: 1rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-col li {
  margin-bottom: 0.5rem;
}

.footer-col a {
  color: rgba(255,255,255,0.8);
  text-decoration: none;
}

.footer-col a:hover {
  color: white;
}

.footer-col address {
  font-style: normal;
  line-height: 1.6;
  color: rgba(255,255,255,0.8);
}

.social-links {
  display: flex;
  gap: 1rem;
  margin-top: 1rem;
}

.social-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
  color: white;
  text-decoration: none;
}

.social-links a:hover {
  background: rgba(255,255,255,0.2);
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.6);
}

.footer-bottom a {
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  margin-left: 1.5rem;
}

.footer-bottom a:hover {
  color: white;
}

/* ==========================================
   Responzivní design
   ========================================== */
@media (max-width: 992px) {
  .pillars-grid,
  .quick-links-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .news-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .testimonials-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  /* Utility nav */
  .utility-nav .container {
    flex-direction: column;
    gap: 0.5rem;
  }

  /* Mobile menu */
  .menu-toggle {
    display: block;
  }

  nav.main-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    padding: 1rem;
  }

  nav.main-nav.active {
    display: block;
  }

  nav.main-nav ul {
    flex-direction: column;
  }

  nav.main-nav a {
    padding: 1rem;
  }

  /* Mobile dropdown */
  nav.main-nav > ul > li.has-dropdown > a::after {
    float: right;
    transition: transform 0.2s;
  }

  nav.main-nav > ul > li.has-dropdown.open > a::after {
    transform: rotate(180deg);
  }

  nav.main-nav .dropdown {
    position: static;
    box-shadow: none;
    min-width: 100%;
    padding: 0;
    padding-left: 1rem;
    background: var(--color-bg-alt);
    border-radius: 0;
  }

  nav.main-nav > ul > li.has-dropdown:hover > .dropdown {
    display: none;
  }

  nav.main-nav > ul > li.has-dropdown.open > .dropdown {
    display: flex;
  }

  nav.main-nav .dropdown a {
    padding: 0.75rem 1rem;
    font-size: 0.95rem;
  }

  /* Hero */
  .hero {
    min-height: 90vh;
    background-position: 65% center;
  }

  .hero-overlay {
    background: linear-gradient(
      180deg,
      rgba(47, 111, 143, 0.95) 0%,
      rgba(47, 111, 143, 0.85) 50%,
      rgba(47, 111, 143, 0.6) 100%
    );
  }

  .hero-tagline {
    font-size: 0.8rem;
    letter-spacing: 1.5px;
  }

  .hero h1 {
    font-size: 1.75rem;
    line-height: 1.35;
  }

  .hero-subtitle {
    font-size: 1rem;
    line-height: 1.6;
  }

  .hero-buttons {
    flex-direction: column;
  }

  .hero-buttons .btn-primary,
  .hero-buttons .btn-secondary {
    text-align: center;
    width: 100%;
  }

  /* Grids */
  .pillars-grid,
  .quick-links-grid,
  .news-grid {
    grid-template-columns: 1fr;
  }

  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }

  .footer-bottom a {
    margin-left: 0;
    margin-right: 1rem;
  }
}

/* ==========================================
   Pomocné třídy
   ========================================== */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* ==========================================
   Breadcrumb navigace
   ========================================== */
.breadcrumb {
  padding: 1rem 0;
  font-size: 0.9rem;
}

.breadcrumb ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.breadcrumb li {
  display: flex;
  align-items: center;
}

.breadcrumb li::after {
  content: '›';
  margin-left: 0.5rem;
  color: var(--color-text-light);
}

.breadcrumb li:last-child::after {
  display: none;
}

.breadcrumb a {
  color: var(--color-primary);
  text-decoration: none;
}

.breadcrumb a:hover {
  text-decoration: underline;
}

.breadcrumb li:last-child {
  color: var(--color-text-light);
}

/* ==========================================
   Page Header
   ========================================== */
.page-header {
  background: linear-gradient(135deg, var(--color-bg-light) 0%, var(--color-secondary) 100%);
  padding: 3rem 0;
  margin-bottom: 0;
}

.page-header h1 {
  color: var(--color-text);
  margin: 0;
  font-size: 2rem;
}

.page-header p {
  color: var(--color-text);
  opacity: 0.9;
  margin-top: 0.5rem;
  font-size: 1.1rem;
}

/* ==========================================
   Hub Grid (navigační karty)
   ========================================== */
.hub-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.hub-card {
  background: var(--color-bg-default);
  border-radius: 8px;
  padding: 2rem;
  text-decoration: none;
  color: var(--color-text-primary);
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transition: transform 0.2s, box-shadow 0.2s;
  display: block;
}

.hub-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

.hub-card h3 {
  color: var(--color-text-heading);
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.hub-card p {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  margin: 0;
}

.hub-card .arrow {
  margin-left: auto;
  color: var(--color-text-link);
}

@media (max-width: 768px) {
  .hub-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================
   Info Box (zvýrazněný box)
   ========================================== */
.info-box {
  background: var(--color-bg-accent);  /* Světle teal, ne žlutá! */
  border-radius: 8px;
  padding: 2rem;
  margin: 2rem 0;
  text-align: center;
}

.info-box.info-box-primary {
  background: var(--color-cta-secondary);
  color: var(--color-text-inverse);
}

.info-box.info-box-highlight {
  background: var(--color-bg-alt);
  border-left: 4px solid var(--color-cta-primary);  /* Žlutý akcent jako border, ne pozadí */
}

.info-box h3 {
  margin-top: 0;
  font-size: 1.5rem;
}

.info-box .date-time {
  font-size: 1.25rem;
  margin: 1rem 0;
}

.info-box .date-time span {
  display: block;
  margin: 0.5rem 0;
}

.info-box .btn-primary {
  display: inline-block;
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  padding: 1rem 2rem;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 500;
  margin-top: 1rem;
}

.info-box.info-box-primary .btn-primary {
  background: var(--color-bg-default);
  color: var(--color-cta-secondary);
}

/* ==========================================
   Timeline (historie)
   ========================================== */
.timeline {
  position: relative;
  padding-left: 2rem;
  margin: 2rem 0;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 0.5rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--color-badge);
}

.timeline-item {
  position: relative;
  padding-bottom: 2rem;
  padding-left: 1.5rem;
}

.timeline-item::before {
  content: '';
  position: absolute;
  left: -1.5rem;
  top: 0.25rem;
  width: 12px;
  height: 12px;
  background: var(--color-cta-secondary);
  border-radius: 50%;
  border: 2px solid var(--color-bg-default);
  box-shadow: 0 0 0 2px var(--color-badge);
}

.timeline-item h3 {
  color: var(--color-text-heading);
  margin: 0 0 0.5rem 0;
  font-size: 1.1rem;
}

.timeline-item .year {
  font-weight: 700;
  color: var(--color-badge);
}

.timeline-item p {
  margin: 0;
  color: var(--color-text-secondary);
}

/* ==========================================
   Staff Grid (zaměstnanci)
   ========================================== */
.staff-section {
  margin-bottom: 3rem;
}

.staff-section h2 {
  color: var(--color-text-heading);
  border-bottom: 2px solid var(--color-border-accent);
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}

.staff-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.staff-card {
  text-align: center;
}

.staff-card img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 1rem;
  border: 3px solid var(--color-border-accent);
}

.staff-card h4 {
  margin: 0 0 0.25rem 0;
  font-size: 1rem;
  color: var(--color-text-primary);
}

.staff-card .position {
  font-size: 0.85rem;
  color: var(--color-text-secondary);
}

.staff-card .contact {
  font-size: 0.8rem;
  color: var(--color-text-link);
  margin-top: 0.5rem;
}

.staff-card-large {
  display: flex;
  align-items: center;
  gap: 2rem;
  background: var(--color-bg-default);
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  margin-bottom: 2rem;
}

.staff-card-large img {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--color-border-accent);
}

.staff-card-large h3 {
  margin: 0 0 0.5rem 0;
  color: var(--color-text-heading);
}

.staff-card-large .position {
  font-size: 1rem;
  color: var(--color-text-secondary);
  margin-bottom: 0.5rem;
}

@media (max-width: 992px) {
  .staff-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .staff-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .staff-card-large {
    flex-direction: column;
    text-align: center;
  }
}

/* ==========================================
   FAQ Accordion
   ========================================== */
.faq-section {
  padding: 3rem 0;
}

.faq-category {
  margin-bottom: 2rem;
}

.faq-category h3 {
  color: var(--color-text-heading);
  border-bottom: 2px solid var(--color-border-accent);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.faq-item {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  margin-bottom: 0.75rem;
  background: var(--color-bg-default);
  overflow: hidden;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.faq-item:hover {
  border-color: var(--color-border-accent);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.faq-question {
  width: 100%;
  padding: 1.25rem 1.5rem;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 500;
  font-size: 1rem;
  text-align: left;
  background: transparent;
  border: none;
  color: var(--color-text-primary);
  line-height: 1.5;
  gap: 1rem;
}

.faq-question:hover {
  background: var(--color-bg-alt);
}

.faq-question:focus {
  outline: 2px solid var(--color-text-link);
  outline-offset: -2px;
}

.faq-question::after {
  content: '';
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232F6F8F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.2s ease;
}

.faq-item.open .faq-question::after {
  transform: rotate(180deg);
}

.faq-answer {
  display: none;
  padding: 0 1.5rem 1.5rem;
  color: var(--color-text-secondary);
  line-height: 1.7;
  border-top: 1px solid var(--color-border);
  background: var(--color-bg-alt);
}

.faq-answer p {
  margin-bottom: 0.75rem;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

.faq-answer ul,
.faq-answer ol {
  margin: 0.75rem 0;
  padding-left: 1.5rem;
}

.faq-answer li {
  margin-bottom: 0.5rem;
}

.faq-answer a {
  color: var(--color-text-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.faq-answer a:hover {
  color: var(--color-cta-secondary-hover);
}

.faq-item.open .faq-answer {
  display: block;
}

/* FAQ na šedém pozadí */
.bg-gray .faq-item {
  background: var(--color-bg-default);
}

.bg-gray .faq-answer {
  background: rgba(255, 255, 255, 0.5);
}

/* ==========================================
   Document List
   ========================================== */
.document-category {
  margin-bottom: 2rem;
}

.document-category h3 {
  color: var(--color-text-heading);
  border-bottom: 2px solid var(--color-border-accent);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.document-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.document-list li {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border);
}

.document-list li:last-child {
  border-bottom: none;
}

.document-list a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--color-text-primary);
}

.document-list a:hover {
  color: var(--color-text-link);
}

.document-list .icon {
  font-size: 1.25rem;
}

/* ==========================================
   Pillar Full (10 pilířů detail)
   ========================================== */
.pillar-full {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
  padding: 3rem 0;
  border-bottom: 1px solid var(--color-border);
}

.pillar-full:nth-child(even) {
  direction: rtl;
}

.pillar-full:nth-child(even) > * {
  direction: ltr;
}

.pillar-full:last-child {
  border-bottom: none;
}

.pillar-full-content h3 {
  color: var(--color-text-heading);
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.pillar-full-content .pillar-number {
  display: inline-block;
  width: 40px;
  height: 40px;
  background: var(--color-badge);
  color: var(--color-text-inverse);
  border-radius: 50%;
  text-align: center;
  line-height: 40px;
  font-weight: 700;
  margin-right: 0.75rem;
}

.pillar-full-image img {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

@media (max-width: 768px) {
  .pillar-full {
    grid-template-columns: 1fr;
  }

  .pillar-full:nth-child(even) {
    direction: ltr;
  }
}

/* ==========================================
   Contact Page
   ========================================== */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
}

.contact-info h3 {
  color: var(--color-primary);
  margin-bottom: 1rem;
}

.contact-info address {
  font-style: normal;
  line-height: 1.8;
  margin-bottom: 1.5rem;
}

.contact-info a {
  color: var(--color-primary);
}

.contact-map {
  background: var(--color-bg-gray);
  border-radius: 8px;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-light);
}

.contact-form {
  background: var(--color-bg-gray);
  padding: 2rem;
  border-radius: 8px;
  margin-top: 2rem;
}

.contact-form h3 {
  color: var(--color-primary);
  margin-top: 0;
  margin-bottom: 1.5rem;
}

.form-group {
  margin-bottom: 1rem;
}

.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 1rem;
}

.form-group textarea {
  min-height: 120px;
  resize: vertical;
}

.contact-additional {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}

.contact-additional-item {
  background: white;
  padding: 1.5rem;
  border-radius: 8px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.contact-additional-item h4 {
  color: var(--color-primary);
  margin: 0 0 0.5rem 0;
}

@media (max-width: 768px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .contact-additional {
    grid-template-columns: 1fr;
  }
}

/* ==========================================
   Specialist Card (poradna)
   ========================================== */
.specialist-card {
  background: white;
  border-radius: 8px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  margin-bottom: 1rem;
}

.specialist-card h4 {
  color: var(--color-primary);
  margin: 0 0 0.5rem 0;
  font-size: 1.1rem;
}

.specialist-card .name {
  font-weight: 500;
  margin-bottom: 0.5rem;
}

.specialist-card .contact-info {
  font-size: 0.9rem;
  color: var(--color-text-light);
}

.specialist-card .contact-info span {
  display: block;
  margin-bottom: 0.25rem;
}

/* ==========================================
   Checkmark List (Proč k nám)
   ========================================== */
.checkmark-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.checkmark-list li {
  padding: 1rem 0;
  padding-left: 2.5rem;
  position: relative;
  border-bottom: 1px solid var(--color-border);
}

.checkmark-list li:last-child {
  border-bottom: none;
}

.checkmark-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 1rem;
  width: 1.5rem;
  height: 1.5rem;
  background: var(--color-badge);
  color: var(--color-text-inverse);
  border-radius: 50%;
  text-align: center;
  line-height: 1.5rem;
  font-size: 0.9rem;
}

/* ==========================================
   Project Card
   ========================================== */
.project-card {
  background: var(--color-bg-default);
  border-radius: 8px;
  padding: 2rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  margin-bottom: 1.5rem;
  display: flex;
  gap: 2rem;
  align-items: flex-start;
}

.project-card .logo {
  width: 80px;
  flex-shrink: 0;
}

.project-card .logo img {
  width: 100%;
}

.project-card h3 {
  color: var(--color-text-heading);
  margin: 0 0 0.5rem 0;
}

.project-card p {
  margin: 0 0 1rem 0;
  color: var(--color-text-secondary);
}

.project-card .btn-link {
  color: var(--color-text-link);
  font-weight: 500;
  text-decoration: none;
}

.project-card .btn-link:hover {
  text-decoration: underline;
}

@media (max-width: 768px) {
  .project-card {
    flex-direction: column;
  }
}

/* ==========================================
   Gallery Page Grid
   ========================================== */
.gallery-page-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.gallery-card {
  background: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  text-decoration: none;
  color: var(--color-text);
  transition: transform 0.2s;
}

.gallery-card:hover {
  transform: translateY(-4px);
}

.gallery-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.gallery-card-content {
  padding: 1rem;
}

.gallery-card h3 {
  margin: 0 0 0.25rem 0;
  font-size: 1rem;
  color: var(--color-text-primary);
}

.gallery-card .count {
  font-size: 0.85rem;
  color: var(--color-text-secondary);
}

@media (max-width: 768px) {
  .gallery-page-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ==========================================
   Filter Buttons
   ========================================== */
.filter-buttons {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}

.filter-btn {
  padding: 0.5rem 1rem;
  background: var(--color-bg-default);
  border: 1px solid var(--color-border);
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.9rem;
  transition: all 0.2s;
}

.filter-btn:hover,
.filter-btn.active {
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  border-color: var(--color-cta-secondary);
}

/* ==========================================
   Virtual Tour Grid
   ========================================== */
.tour-placeholder {
  background: var(--color-bg-alt);
  border-radius: 8px;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
}

.tour-placeholder span {
  font-size: 1.25rem;
  color: var(--color-text-secondary);
}

.room-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.room-card {
  background: var(--color-bg-default);
  border-radius: 8px;
  padding: 1rem;
  text-align: center;
  text-decoration: none;
  color: var(--color-text-primary);
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transition: transform 0.2s;
}

.room-card:hover {
  transform: translateY(-2px);
  color: var(--color-text-link);
}

@media (max-width: 768px) {
  .room-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ==========================================
   Content Section
   ========================================== */
.content-section {
  padding: 2rem 0;
}

.content-section h2 {
  color: var(--color-text-heading);
  margin-bottom: 1rem;
}

.content-section h3 {
  color: var(--color-text-heading);
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.values-list {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.values-list li {
  background: var(--color-bg-alt);
  padding: 1rem 1.5rem;
  border-radius: 4px;
  border-left: 4px solid var(--color-badge);
}

@media (max-width: 768px) {
  .values-list {
    grid-template-columns: 1fr;
  }
}

/* ==========================================
   Page Hero (pro podstránky)
   ========================================== */
.page-hero {
  background: linear-gradient(135deg, var(--color-bg-accent) 0%, var(--color-badge) 100%);
  padding: 2rem 0 3rem;
}

.page-hero .breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}

.page-hero .breadcrumb a {
  color: var(--color-text-heading);
  text-decoration: none;
}

.page-hero .breadcrumb a:hover {
  text-decoration: underline;
}

.page-hero .breadcrumb span {
  color: var(--color-text-secondary);
}

.page-hero h1 {
  color: var(--color-text-primary);
  font-size: 2.5rem;
  margin: 0 0 0.5rem 0;
}

.page-hero .lead {
  color: var(--color-text-primary);
  opacity: 0.9;
  font-size: 1.15rem;
  margin: 0;
}

/* ==========================================
   Contact Page - Main Section
   ========================================== */
.contact-main {
  padding: 4rem 0;
}

.contact-main .contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 3rem;
  align-items: start;
}

.contact-info-card {
  background: white;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.contact-info-card h2 {
  color: var(--color-text-heading);
  margin: 0 0 1.5rem 0;
  font-size: 1.5rem;
}

.contact-item {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.contact-icon {
  width: 48px;
  height: 48px;
  background: var(--color-icon-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-text-heading);
}

.contact-text strong {
  display: block;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.25rem;
}

.contact-text p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
}

.contact-text a {
  color: var(--color-text-link);
  text-decoration: none;
}

.contact-text a:hover {
  text-decoration: underline;
}

.contact-info-card hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 1.5rem 0;
}

.contact-details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.detail-row {
  display: flex;
  flex-direction: column;
}

.detail-row .label {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.detail-row .value {
  font-weight: 500;
  color: var(--color-text-primary);
}

.social-section {
  margin-top: 1.5rem;
}

.social-section strong {
  display: block;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.75rem;
}

.social-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.9rem;
  transition: background 0.2s;
}

.social-btn:hover {
  background: var(--color-cta-secondary-hover);
}

/* Contact Map */
.contact-map {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.contact-map iframe {
  display: block;
  border: none;
}

.map-link {
  display: block;
  padding: 1rem;
  background: var(--color-bg-default);
  color: var(--color-text-link);
  text-decoration: none;
  text-align: center;
  font-weight: 500;
}

.map-link:hover {
  background: var(--color-bg-alt);
}

/* ==========================================
   Contact Leadership Section
   ========================================== */
.contact-leadership {
  padding: 4rem 0;
}

.contact-leadership h2 {
  color: var(--color-text-heading);
  text-align: center;
  margin-bottom: 2.5rem;
}

.leadership-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  max-width: 1000px;
  margin: 0 auto;
}

.person-card {
  display: flex;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  min-height: 200px;
}

.person-photo {
  flex: 0 0 40%;
  position: relative;
}

.person-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.person-info {
  flex: 1;
  background: var(--color-primary);
  color: white;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.person-info h3 {
  color: white;
  margin: 0 0 0.25rem 0;
  font-size: 1.15rem;
}

.person-info .position {
  display: block;
  color: rgba(255,255,255,0.85);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.person-contact {
  margin-top: auto;
}

.person-contact a {
  display: block;
  color: white;
  text-decoration: none;
  font-size: 0.85rem;
  margin-bottom: 0.35rem;
}

.person-contact a:hover {
  text-decoration: underline;
}

/* ==========================================
   Contact Departments Section
   ========================================== */
.contact-departments {
  padding: 4rem 0;
}

.contact-departments h2 {
  color: var(--color-text-heading);
  text-align: center;
  margin-bottom: 2.5rem;
}

.departments-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.department-card {
  background: var(--color-bg-default);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border-top: 4px solid var(--color-badge);
}

.department-card h3 {
  color: var(--color-text-heading);
  margin: 0 0 0.5rem 0;
  font-size: 1.1rem;
}

.dept-desc {
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  margin: 0 0 1rem 0;
  min-height: 2.5em;
}

.dept-contact a {
  display: block;
  color: var(--color-text-link);
  text-decoration: none;
  font-size: 0.9rem;
  margin-bottom: 0.25rem;
}

.dept-contact a:hover {
  text-decoration: underline;
}

.dept-hours {
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  margin: 1rem 0 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}

.departments-note {
  text-align: center;
  margin-top: 2rem;
  color: var(--color-text-secondary);
}

.departments-note a {
  color: var(--color-text-link);
}

/* ==========================================
   Contact Form Section
   ========================================== */
.contact-form-section {
  padding: 4rem 0;
}

.form-wrapper {
  max-width: 700px;
  margin: 0 auto;
  background: white;
  border-radius: 12px;
  padding: 2.5rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.form-header {
  text-align: center;
  margin-bottom: 2rem;
}

.form-header h2 {
  color: var(--color-text-heading);
  margin: 0 0 0.5rem 0;
}

.form-header p {
  color: var(--color-text-secondary);
  margin: 0;
}

.contact-form .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.contact-form .form-group {
  margin-bottom: 1.25rem;
}

.contact-form label {
  display: block;
  font-weight: 500;
  margin-bottom: 0.5rem;
  color: var(--color-text-primary);
}

.contact-form .required {
  color: #e74c3c;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid var(--color-border);
  border-radius: 6px;
  font-size: 1rem;
  transition: border-color 0.2s;
  background: var(--color-bg-default);
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--color-cta-secondary);
}

.contact-form textarea {
  resize: vertical;
  min-height: 120px;
}

.checkbox-group {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.checkbox-group input[type="checkbox"] {
  width: auto;
  margin-top: 0.25rem;
}

.checkbox-group label {
  margin: 0;
  font-weight: 400;
  font-size: 0.9rem;
}

.contact-form .btn-primary {
  display: block;
  width: 100%;
  padding: 1rem;
  background: var(--color-cta-primary);
  color: var(--color-cta-primary-text);
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s;
}

.contact-form .btn-primary:hover {
  background: var(--color-cta-primary-hover);
}

/* ==========================================
   Contact Directions Section
   ========================================== */
.contact-directions {
  padding: 4rem 0;
}

.contact-directions h2 {
  color: var(--color-text-heading);
  text-align: center;
  margin-bottom: 2.5rem;
}

.directions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.direction-card {
  text-align: center;
  padding: 2rem;
}

.direction-icon {
  width: 80px;
  height: 80px;
  background: var(--color-icon-bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  color: var(--color-text-heading);
}

.direction-card h3 {
  color: var(--color-text-heading);
  margin: 0 0 0.75rem 0;
  font-size: 1.1rem;
}

.direction-card p {
  color: var(--color-text-secondary);
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
}

/* ==========================================
   Responsive - Contact Page
   ========================================== */
@media (max-width: 992px) {
  .contact-main .contact-grid {
    grid-template-columns: 1fr;
  }

  .leadership-grid {
    grid-template-columns: 1fr;
  }

  .departments-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .directions-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .page-hero h1 {
    font-size: 1.75rem;
  }

  .contact-info-card {
    padding: 1.5rem;
  }

  .contact-details {
    grid-template-columns: 1fr;
  }

  .person-card {
    flex-direction: column;
    text-align: center;
  }

  .departments-grid {
    grid-template-columns: 1fr;
  }

  .contact-form .form-row {
    grid-template-columns: 1fr;
  }

  .form-wrapper {
    padding: 1.5rem;
  }
}

/* ==========================================
   Školní zahrada - Split Layout
   ========================================== */
.garden-section {
  padding: 4rem 0;
}

.garden-split {
  display: flex;
  gap: 3rem;
  align-items: stretch;
  margin-bottom: 3rem;
}

.garden-image {
  flex: 1;
  min-width: 0;
}

.garden-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.garden-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.garden-content h2 {
  color: var(--color-text-heading);
  margin-bottom: 1rem;
}

.garden-tagline {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--color-text-secondary);
  margin-bottom: 2rem;
}

.garden-features {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.garden-feature {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  background: var(--color-bg-default);
  border-radius: 8px;
  border-left: 4px solid var(--color-badge);
  transition: transform 0.2s, box-shadow 0.2s;
}

.garden-feature:hover {
  transform: translateX(4px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.feature-icon {
  font-size: 1.75rem;
  flex-shrink: 0;
}

.garden-feature h4 {
  color: var(--color-text-heading);
  margin: 0 0 0.25rem 0;
  font-size: 1rem;
}

.garden-feature p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  line-height: 1.5;
}

/* Foto strip */
.garden-photos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.garden-photos img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 8px;
  transition: transform 0.3s;
}

.garden-photos img:hover {
  transform: scale(1.03);
}

/* Responsive - Garden Section */
@media (max-width: 992px) {
  .garden-split {
    flex-direction: column;
    gap: 2rem;
  }

  .garden-image {
    max-height: 350px;
  }

  .garden-photos {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .garden-photos {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }

  .garden-feature {
    padding: 0.75rem;
  }

  .feature-icon {
    font-size: 1.5rem;
  }
}

/* ==========================================
   Article Content (textové stránky)
   ========================================== */
.article-content {
  padding: 3rem 0 2rem;
}

.article-content .container.narrow {
  max-width: 800px;
}

.article-hero-image {
  margin: 0 0 2.5rem 0;
}

.article-hero-image img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.article-content h2 {
  color: var(--color-text-heading);
  font-size: 1.5rem;
  margin: 2rem 0 1rem;
}

.article-content h2:first-of-type {
  margin-top: 0;
}

.article-content p {
  color: var(--color-text-secondary);
  line-height: 1.8;
  margin-bottom: 1.25rem;
}

/* ==========================================
   Page Gallery (galerie na stránce)
   ========================================== */
.page-gallery {
  padding: 0 0 4rem;
}

.page-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.page-gallery-grid .gallery-item {
  display: block;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s, box-shadow 0.3s;
}

.page-gallery-grid .gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.page-gallery-grid .gallery-item img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}

.page-gallery-grid .gallery-item:hover img {
  transform: scale(1.05);
}

@media (max-width: 992px) {
  .page-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 480px) {
  .article-content {
    padding: 2rem 0 1.5rem;
  }

  .article-hero-image {
    margin: 0 0 1.5rem 0;
  }

  .article-content h2 {
    font-size: 1.25rem;
  }

  .page-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
}

/* ==========================================
   Učitelský sbor - Staff Page
   ========================================== */

/* Filter Section */
.staff-filter-section {
  padding: 2rem 0;
  background: var(--color-bg-default);
  border-bottom: 1px solid var(--color-border);
}

.staff-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.staff-filter .filter-btn {
  padding: 0.6rem 1.25rem;
  background: var(--color-bg-default);
  border: 2px solid var(--color-border);
  border-radius: 25px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--color-text-primary);
  transition: all 0.2s ease;
}

.staff-filter .filter-btn:hover {
  border-color: var(--color-badge);
  color: var(--color-text-heading);
}

.staff-filter .filter-btn.active {
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  border-color: var(--color-cta-secondary);
}

/* Staff Category */
.staff-category {
  padding: 4rem 0;
}

.staff-category h2 {
  color: var(--color-text-heading);
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
  position: relative;
  display: inline-block;
}

.staff-category h2::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 60px;
  height: 3px;
  background: var(--color-badge);
  border-radius: 2px;
}

.staff-category__intro {
  color: var(--color-text-secondary);
  font-size: 1.05rem;
  margin: 1.5rem 0 2rem;
  max-width: 600px;
}

/* Staff Grids */
.staff-leadership-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 2rem;
}

.staff-grid {
  display: grid;
  gap: 1.5rem;
  margin-top: 2rem;
}

.staff-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.staff-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

/* Teacher Card */
.teacher-card {
  background: var(--color-bg-default);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.teacher-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.teacher-card__photo {
  position: relative;
  padding-top: 100%;
  background: linear-gradient(135deg, var(--color-bg-accent) 0%, var(--color-badge) 100%);
  overflow: hidden;
}

.teacher-card__photo img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.teacher-card:hover .teacher-card__photo img {
  transform: scale(1.05);
}

.teacher-card__info {
  padding: 1.25rem;
  text-align: center;
}

.teacher-card__name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-text-primary);
  margin: 0 0 0.35rem 0;
  line-height: 1.3;
}

.teacher-card__role {
  display: inline-block;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  margin-bottom: 0.5rem;
}

.teacher-card__role--accent {
  background: var(--color-bg-accent);
  color: var(--color-text-heading);
  padding: 0.25rem 0.75rem;
  border-radius: 15px;
  font-weight: 500;
}

.teacher-card__extra {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  margin: 0.25rem 0 0.75rem;
  font-style: italic;
}

.teacher-card__contact {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border);
}

.teacher-card__email {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--color-text-link);
  text-decoration: none;
  word-break: break-all;
}

.teacher-card__email:hover {
  text-decoration: underline;
}

.teacher-card__email svg {
  flex-shrink: 0;
}

/* Featured Teacher Card (Vedení) */
.teacher-card--featured {
  display: flex;
  flex-direction: row;
  min-height: 200px;
}

.teacher-card--featured .teacher-card__photo {
  flex: 0 0 40%;
  padding-top: 0;
  min-height: 200px;
}

.teacher-card--featured .teacher-card__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
  padding: 1.5rem;
  background: linear-gradient(135deg, var(--color-cta-secondary) 0%, #246075 100%);
  color: var(--color-text-inverse);
}

.teacher-card--featured .teacher-card__name {
  font-size: 1.15rem;
  color: var(--color-text-inverse);
}

.teacher-card--featured .teacher-card__role {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.95rem;
}

.teacher-card--featured .teacher-card__extra {
  color: rgba(255, 255, 255, 0.8);
}

.teacher-card--featured .teacher-card__contact {
  border-top-color: rgba(255, 255, 255, 0.2);
}

.teacher-card--featured .teacher-card__email {
  color: var(--color-cta-primary);
}

.teacher-card--featured .teacher-card__email:hover {
  color: var(--color-text-inverse);
}

/* Compact Teacher Card (Asistenti) */
.teacher-card--compact .teacher-card__photo {
  padding-top: 80%;
}

.teacher-card--compact .teacher-card__info {
  padding: 1rem;
}

.teacher-card--compact .teacher-card__name {
  font-size: 0.95rem;
}

/* Hidden state for filter */
.staff-category.hidden {
  display: none;
}

/* Responsive - Staff Page */
@media (max-width: 1200px) {
  .staff-grid--4 {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 992px) {
  .staff-leadership-grid {
    grid-template-columns: 1fr;
  }

  .staff-grid--3,
  .staff-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .teacher-card--featured {
    flex-direction: column;
  }

  .teacher-card--featured .teacher-card__photo {
    flex: none;
    padding-top: 60%;
    min-height: 0;
  }

  .teacher-card--featured .teacher-card__info {
    text-align: center;
  }
}

@media (max-width: 768px) {
  .staff-filter {
    gap: 0.4rem;
  }

  .staff-filter .filter-btn {
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
  }

  .staff-category {
    padding: 3rem 0;
  }

  .staff-category h2 {
    font-size: 1.5rem;
  }
}

@media (max-width: 576px) {
  .staff-grid--3,
  .staff-grid--4 {
    grid-template-columns: 1fr;
  }

  .teacher-card__photo {
    padding-top: 75%;
  }

  .teacher-card--compact .teacher-card__photo {
    padding-top: 60%;
  }
}

/* ==========================================
   Dokumenty školy - Modern Documents Page
   ========================================== */

/* Quick Navigation */
.documents-nav-section {
  padding: 2.5rem 0;
  background: var(--color-bg-default);
  border-bottom: 1px solid var(--color-border);
}

.documents-quick-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.doc-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.25rem 1rem;
  background: var(--color-bg-alt);
  border-radius: 12px;
  text-decoration: none;
  color: var(--color-text-primary);
  transition: all 0.2s ease;
  border: 2px solid transparent;
}

.doc-nav-item:hover {
  background: var(--color-bg-accent);
  border-color: var(--color-badge);
  transform: translateY(-2px);
}

.doc-nav-icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-default);
  border-radius: 50%;
  color: var(--color-cta-secondary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.doc-nav-label {
  font-weight: 600;
  font-size: 0.95rem;
  text-align: center;
}

.documents-hint {
  text-align: center;
  color: var(--color-text-secondary);
  font-size: 0.95rem;
  margin: 0;
}

.documents-hint a {
  color: var(--color-text-link);
  font-weight: 500;
}

/* Documents Section */
.documents-section {
  padding: 4rem 0;
}

.documents-section .section-header {
  margin-bottom: 2rem;
}

.documents-section .section-header h2 {
  color: var(--color-text-heading);
  margin: 0 0 0.5rem 0;
  font-size: 1.75rem;
}

.documents-section .section-header p {
  color: var(--color-text-secondary);
  margin: 0;
  font-size: 1rem;
}

/* Documents Grid */
.documents-grid {
  display: grid;
  gap: 1.25rem;
}

.documents-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

.documents-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

/* Document Card */
.document-card {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.5rem;
  background: var(--color-bg-default);
  border-radius: 12px;
  text-decoration: none;
  color: var(--color-text-primary);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  border: 1px solid var(--color-border);
  transition: all 0.2s ease;
}

.document-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  border-color: var(--color-badge);
}

.document-card__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-alt);
  border-radius: 12px;
  color: var(--color-text-secondary);
  flex-shrink: 0;
}

.document-card__icon--pdf {
  background: #fee2e2;
  color: #dc2626;
}

.document-card__icon--doc {
  background: #dbeafe;
  color: #2563eb;
}

.document-card__content {
  flex: 1;
  min-width: 0;
}

.document-card__content h3 {
  margin: 0 0 0.35rem 0;
  font-size: 1.05rem;
  color: var(--color-text-primary);
  font-weight: 600;
}

.document-card__content p {
  margin: 0 0 0.5rem 0;
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.document-card__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.document-card__action {
  padding: 0.5rem 1.25rem;
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 500;
  white-space: nowrap;
  transition: background 0.2s;
}

.document-card:hover .document-card__action {
  background: var(--color-cta-secondary-hover);
}

/* Featured Document Card */
.document-card--featured {
  background: linear-gradient(135deg, var(--color-bg-accent) 0%, rgba(169, 211, 199, 0.5) 100%);
  border-color: var(--color-badge);
  padding: 2rem;
}

.document-card--featured .document-card__icon {
  width: 72px;
  height: 72px;
  background: var(--color-bg-default);
}

.document-card--featured .document-card__content h3 {
  font-size: 1.25rem;
}

/* Badges */
.badge {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.badge--current {
  background: var(--color-badge);
  color: var(--color-text-inverse);
}

.badge--pdf {
  background: #fee2e2;
  color: #dc2626;
}

.badge--doc {
  background: #dbeafe;
  color: #2563eb;
}

.file-info {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
}

/* Documents Table */
.documents-table-wrapper {
  overflow-x: auto;
  background: var(--color-bg-default);
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.documents-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
}

.documents-table thead {
  background: var(--color-bg-alt);
}

.documents-table th {
  padding: 1rem 1.25rem;
  text-align: left;
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 2px solid var(--color-border);
}

.documents-table td {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
}

.documents-table tbody tr:last-child td {
  border-bottom: none;
}

.documents-table tbody tr:hover {
  background: var(--color-bg-alt);
}

.documents-table .row--current {
  background: rgba(169, 211, 199, 0.2);
}

.documents-table .row--current:hover {
  background: rgba(169, 211, 199, 0.35);
}

.btn-download {
  display: inline-block;
  padding: 0.4rem 1rem;
  background: var(--color-cta-secondary);
  color: var(--color-cta-secondary-text);
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.2s;
}

.btn-download:hover {
  background: var(--color-cta-secondary-hover);
  color: var(--color-cta-secondary-text);
}

/* Documents Archive (details/summary) */
.documents-archive {
  margin-top: 1.5rem;
  background: var(--color-bg-default);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}

.documents-archive summary {
  padding: 1rem 1.25rem;
  cursor: pointer;
  font-weight: 500;
  color: var(--color-text-secondary);
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.documents-archive summary::-webkit-details-marker {
  display: none;
}

.documents-archive summary::before {
  content: '+';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background: var(--color-bg-alt);
  border-radius: 4px;
  font-weight: 700;
  color: var(--color-text-secondary);
}

.documents-archive[open] summary::before {
  content: '−';
}

.documents-archive summary:hover {
  color: var(--color-text-link);
}

.archive-list {
  list-style: none;
  padding: 0 1.25rem 1rem;
  margin: 0;
}

.archive-list li {
  border-top: 1px solid var(--color-border);
}

.archive-list li:first-child {
  border-top: none;
}

.archive-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  color: var(--color-text-primary);
  text-decoration: none;
}

.archive-list a:hover {
  color: var(--color-text-link);
}

/* Responsive - Documents Page */
@media (max-width: 992px) {
  .documents-quick-nav {
    grid-template-columns: repeat(2, 1fr);
  }

  .documents-grid--2,
  .documents-grid--3 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .documents-nav-section {
    padding: 1.5rem 0;
  }

  .documents-quick-nav {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }

  .doc-nav-item {
    padding: 1rem 0.75rem;
  }

  .doc-nav-icon {
    width: 48px;
    height: 48px;
  }

  .doc-nav-label {
    font-size: 0.85rem;
  }

  .documents-section {
    padding: 3rem 0;
  }

  .document-card {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  .document-card__action {
    width: 100%;
    text-align: center;
    margin-top: 0.5rem;
  }

  .documents-table th,
  .documents-table td {
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
  }

  .documents-table th:nth-child(2),
  .documents-table td:nth-child(2) {
    display: none;
  }
}

@media (max-width: 480px) {
  .documents-quick-nav {
    grid-template-columns: 1fr 1fr;
  }

  .doc-nav-icon {
    width: 40px;
    height: 40px;
  }

  .doc-nav-icon svg {
    width: 20px;
    height: 20px;
  }

  .documents-table th:nth-child(3),
  .documents-table td:nth-child(3) {
    display: none;
  }
}

/* ==========================================
   Breadcrumbs Navigation
   ========================================== */
.breadcrumbs {
  font-size: 0.875rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.breadcrumbs a {
  color: var(--color-text-primary);
  text-decoration: none;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.breadcrumbs a:hover {
  opacity: 1;
  text-decoration: underline;
}

.breadcrumbs span:not([aria-current]) {
  opacity: 0.5;
}

.breadcrumbs [aria-current="page"] {
  font-weight: 500;
}

.page-header .breadcrumbs {
  color: var(--color-text);
}

.page-header .breadcrumbs a {
  color: var(--color-text);
}

/* ==========================================
   News Listing Page
   ========================================== */
.news-listing {
  padding: 3rem 0;
}

/* Filtry aktualit */
.news-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 2rem;
}

.news-filter {
  flex: 0 0 auto;
  padding: 0.35rem 0.75rem;
  font-size: 0.8rem;
  font-weight: 500;
  background: var(--color-bg-default);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  color: var(--color-text-primary);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.news-filter:hover {
  background: var(--color-bg-alt);
  border-color: var(--color-border-accent);
  color: var(--color-text-link);
}

.news-filter.active {
  background: var(--color-cta-secondary);
  border-color: var(--color-cta-secondary);
  color: var(--color-text-inverse);
}

@media (max-width: 480px) {
  .news-filters {
    gap: 0.35rem;
  }

  .news-filter {
    padding: 0.3rem 0.6rem;
    font-size: 0.75rem;
  }
}

.page-subtitle {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-top: 0.5rem;
}

/* Featured (hlavní) aktualita */
.news-featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  background: var(--color-bg-default);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  margin-bottom: 3rem;
}

.news-featured-image img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

.news-featured-content {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.news-badge {
  display: inline-block;
  background: var(--color-cta-primary);
  color: var(--color-text);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.35rem 0.75rem;
  border-radius: 4px;
  margin-bottom: 1rem;
  width: fit-content;
}

.news-featured h2 {
  font-size: 1.5rem;
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

.news-featured h2 a {
  color: var(--color-text-heading);
  text-decoration: none;
}

.news-featured h2 a:hover {
  color: var(--color-text-link);
}

.news-featured .date {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  margin-bottom: 1rem;
}

.news-featured p {
  color: var(--color-text-secondary);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.news-featured .btn-primary {
  width: fit-content;
}

/* Grid aktualit - plná šířka */
.news-grid-full {
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 3rem;
}

/* ==========================================
   Pagination
   ========================================== */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-border);
}

.pagination-prev,
.pagination-next {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  background: var(--color-bg-default);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  text-decoration: none;
  color: var(--color-text-primary);
  font-weight: 500;
  transition: all 0.2s;
}

.pagination-prev:hover,
.pagination-next:hover {
  background: var(--color-bg-alt);
  border-color: var(--color-border-accent);
  color: var(--color-text-link);
}

.pagination-prev.disabled,
.pagination-next.disabled {
  opacity: 0.4;
  pointer-events: none;
  cursor: not-allowed;
}

.pagination-numbers {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.pagination-numbers a,
.pagination-numbers .pagination-current {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 0.5rem;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s;
}

.pagination-numbers a {
  color: var(--color-text-primary);
  background: var(--color-bg-default);
  border: 1px solid var(--color-border);
}

.pagination-numbers a:hover {
  background: var(--color-bg-alt);
  border-color: var(--color-border-accent);
  color: var(--color-text-link);
}

.pagination-current {
  background: var(--color-cta-secondary);
  color: var(--color-text-inverse);
}

.pagination-ellipsis {
  color: var(--color-text-secondary);
  padding: 0 0.5rem;
}

/* Responsive pagination */
@media (max-width: 768px) {
  .news-featured {
    grid-template-columns: 1fr;
  }

  .news-featured-image img {
    min-height: 200px;
    max-height: 250px;
  }

  .news-grid-full {
    grid-template-columns: 1fr;
  }

  .pagination {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .pagination-prev,
  .pagination-next {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
  }

  .pagination-numbers {
    order: -1;
    width: 100%;
    justify-content: center;
  }

  .pagination-numbers a,
  .pagination-numbers .pagination-current {
    min-width: 36px;
    height: 36px;
    font-size: 0.9rem;
  }
}

@media (max-width: 480px) {
  .pagination-prev span[aria-hidden],
  .pagination-next span[aria-hidden] {
    display: none;
  }
}

/* ==========================================
   CONTENT SECTIONS - Pro textové stránky
   ========================================== */
.content-section {
  padding: 4rem 0;
}

.content-prose {
  max-width: 900px;
  margin: 0 auto;
}

.content-prose .intro-text {
  font-size: 1.2rem;
  line-height: 1.8;
  color: var(--color-text-secondary);
  margin-bottom: 3rem;
}

/* Info Cards Grid */
.info-grid {
  display: grid;
  gap: 2rem;
  margin: 2rem 0 3rem;
}

.info-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.info-card {
  background: var(--color-bg-alt);
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
}

.info-card-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1.5rem;
  background: var(--color-bg-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
}

.info-card h3 {
  color: var(--color-text-heading);
  font-size: 1.1rem;
  margin-bottom: 1rem;
}

.info-card p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--color-text-secondary);
  margin: 0;
}

/* Quote Highlight */
.quote-highlight {
  background: var(--color-bg-accent);
  border-left: 4px solid var(--color-primary);
  padding: 2rem 2.5rem;
  margin: 3rem 0;
  border-radius: 0 12px 12px 0;
}

.quote-highlight p {
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.7;
  color: var(--color-text-primary);
  margin: 0 0 1rem;
}

.quote-highlight cite {
  display: block;
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  font-style: normal;
}

/* Section Title */
.section-title {
  color: var(--color-text-heading);
  font-size: 1.75rem;
  margin-bottom: 2rem;
  text-align: center;
}

/* Section CTA */
.section-cta {
  text-align: center;
  margin-top: 3rem;
  padding-top: 2rem;
}

/* Responsive - Info Grid */
@media (max-width: 992px) {
  .info-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .content-section {
    padding: 3rem 0;
  }

  .info-grid-3 {
    grid-template-columns: 1fr;
  }

  .info-card {
    padding: 1.5rem;
  }

  .quote-highlight {
    padding: 1.5rem;
    margin: 2rem 0;
  }

  .quote-highlight p {
    font-size: 1.05rem;
  }
}

/* ==========================================
   TŘÍDY - Rozcestník a stránky tříd
   ========================================== */

/* Classes Section */
.classes-section {
  padding: 4rem 0;
}

.classes-section h2 {
  font-size: 1.75rem;
  color: var(--color-text-heading);
  margin-bottom: 0.5rem;
}

.classes-section .section-intro {
  color: var(--color-text-secondary);
  margin-bottom: 2rem;
}

/* Classes Grid */
.classes-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5rem;
}

/* Class Card */
.class-card {
  display: block;
  background: var(--color-bg-default);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-decoration: none;
}

.class-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.class-card__image {
  position: relative;
  padding-top: 66%;
  background: linear-gradient(135deg, var(--color-bg-accent) 0%, var(--color-badge) 100%);
  overflow: hidden;
}

.class-card__image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.class-card:hover .class-card__image img {
  transform: scale(1.05);
}

.class-card__content {
  padding: 1.25rem;
  text-align: center;
}

.class-card__name {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text-heading);
  margin: 0 0 0.25rem;
}

.class-card__teacher {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  margin: 0 0 0.5rem;
}

.class-card__count {
  display: inline-block;
  font-size: 0.8rem;
  color: var(--color-primary);
  background: var(--color-bg-accent);
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
}

/* Compact Class Card (without image) */
.classes-grid--compact {
  grid-template-columns: repeat(5, 1fr);
}

.class-card--compact {
  padding: 1.5rem;
  text-align: center;
  border-left: 4px solid var(--color-primary);
}

.class-card--compact .class-card__name {
  font-size: 1.75rem;
  margin: 0 0 0.5rem;
}

.class-card--compact .class-card__teacher {
  margin: 0 0 0.75rem;
}

.class-card--compact .class-card__count {
  margin-top: 0;
}

/* Class Page - Hero */
.class-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
  color: #fff;
  padding: 3rem 0 2rem;
}

.class-hero .breadcrumb {
  margin-bottom: 1rem;
}

.class-hero .breadcrumb a,
.class-hero .breadcrumb span {
  color: rgba(255, 255, 255, 0.8);
}

.class-hero .breadcrumb a:hover {
  color: #fff;
}

.class-hero h1 {
  font-size: 2.5rem;
  margin: 0 0 0.5rem;
  color: #fff;
}

.class-hero .lead {
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

/* Class Photo Section */
.class-photo-section {
  padding: 3rem 0;
}

.class-photo {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.class-photo img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.class-photo figcaption {
  margin-top: 1rem;
  font-size: 0.95rem;
  color: var(--color-text-secondary);
  font-style: italic;
}

/* Class Teacher Section */
.class-teacher-section {
  padding: 3rem 0;
}

.class-teacher-section h2 {
  font-size: 1.5rem;
  color: var(--color-text-heading);
  margin-bottom: 1.5rem;
}

.class-teacher-section .teacher-card--featured {
  max-width: 600px;
}

/* Class Events Section */
.class-events-section {
  padding: 4rem 0;
}

.class-events-section h2 {
  font-size: 1.5rem;
  color: var(--color-text-heading);
  margin-bottom: 0.5rem;
}

.class-events-section .section-intro {
  color: var(--color-text-secondary);
  margin-bottom: 2rem;
}

.class-events-grid {
  grid-template-columns: repeat(3, 1fr);
}

/* Class Gallery Section */
.class-gallery-section {
  padding: 4rem 0;
}

.class-gallery-section h2 {
  font-size: 1.5rem;
  color: var(--color-text-heading);
  margin-bottom: 0.5rem;
}

.class-gallery-section .section-intro {
  color: var(--color-text-secondary);
  margin-bottom: 2rem;
}

/* Gallery Grid */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.gallery-item {
  position: relative;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 4/3;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.gallery-item:hover img {
  transform: scale(1.05);
}

.gallery-item__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem;
  background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%);
  color: #fff;
}

.gallery-item__overlay h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.25rem;
  color: #fff;
}

.gallery-item__date {
  display: block;
  font-size: 0.85rem;
  opacity: 0.9;
}

.gallery-item__count {
  display: block;
  font-size: 0.8rem;
  opacity: 0.8;
  margin-top: 0.25rem;
}

/* Class Navigation */
.class-navigation {
  padding: 2rem 0;
  border-top: 1px solid var(--color-border);
}

.class-nav-links {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.class-nav-prev,
.class-nav-next {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  padding: 1rem 1.5rem;
  border-radius: 8px;
  background: var(--color-bg-alt);
  transition: background 0.2s ease;
  min-width: 150px;
}

.class-nav-prev:hover,
.class-nav-next:hover {
  background: var(--color-bg-accent);
}

.class-nav-prev {
  text-align: left;
}

.class-nav-next {
  text-align: right;
}

.class-nav-label {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
}

.class-nav-name {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-text-heading);
}

.class-nav-all {
  padding: 0.75rem 1.5rem;
  background: var(--color-primary);
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 500;
  transition: background 0.2s ease;
}

.class-nav-all:hover {
  background: var(--color-secondary);
}

/* Responsive - Classes */
@media (max-width: 1200px) {
  .classes-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .classes-grid--compact {
    grid-template-columns: repeat(5, 1fr);
  }
}

@media (max-width: 992px) {
  .classes-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .classes-grid--compact {
    grid-template-columns: repeat(4, 1fr);
  }

  .class-events-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .classes-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .classes-grid--compact {
    grid-template-columns: repeat(3, 1fr);
  }

  .class-hero h1 {
    font-size: 2rem;
  }

  .class-events-grid {
    grid-template-columns: 1fr;
  }

  .class-nav-links {
    flex-wrap: wrap;
  }

  .class-nav-prev,
  .class-nav-next {
    flex: 1;
    min-width: 120px;
  }

  .class-nav-all {
    order: -1;
    width: 100%;
    text-align: center;
    margin-bottom: 0.5rem;
  }
}

@media (max-width: 576px) {
  .classes-grid--compact {
    grid-template-columns: repeat(2, 1fr);
  }

  .class-card--compact {
    padding: 1rem;
  }

  .class-card--compact .class-card__name {
    font-size: 1.5rem;
  }
}

@media (max-width: 480px) {
  .classes-grid {
    grid-template-columns: 1fr;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .class-nav-prev,
  .class-nav-next {
    min-width: auto;
  }
}

/* ==========================================
   Partneři (Partners Section)
   ========================================== */
.partners-section {
  background: var(--color-bg-secondary);
  padding: 3rem 0;
  border-top: 1px solid var(--color-border);
}

.partners-section h2 {
  text-align: center;
  color: var(--color-text-heading);
  margin-bottom: 2rem;
  font-size: 1.5rem;
}

.partners-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.partners-group {
  text-align: center;
  width: 100%;
  max-width: 800px;
}

.partners-group h3 {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  font-weight: 600;
}

.partners-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
}

.partners-logos--many {
  max-width: 700px;
}

.partner-logo {
  display: inline-block;
  padding: 0.75rem;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  max-width: 160px;
}

.partner-logo:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.partner-logo img {
  display: block;
  height: 50px;
  width: 120px;
  object-fit: contain;
}

/* Větší logo pro zřizovatele */
.partners-group:first-child .partner-logo img {
  height: 55px;
  width: 160px;
}

@media (max-width: 768px) {
  .partners-section {
    padding: 2rem 0;
  }

  .partners-wrapper {
    flex-direction: column;
    gap: 2rem;
  }

  .partners-logos {
    gap: 1rem;
  }

  .partner-logo img {
    height: 40px;
    max-width: 120px;
  }

  .partners-group:first-child .partner-logo img {
    height: 50px;
    max-width: 150px;
  }
}

@media (max-width: 480px) {
  .partners-logos--many {
    max-width: 100%;
  }

  .partner-logo {
    padding: 0.5rem;
  }

  .partner-logo img {
    height: 35px;
    max-width: 100px;
  }
}

/* Fix: omezení velikosti loga zřizovatele */
.partners-group:first-child .partner-logo {
  max-width: 200px;
}

.partner-logo img {
  max-height: 60px;
  width: auto;
}
