/* ============================================================
   Hotelová škola Poděbrady – Hlavní stylesheet
   Barevné schéma A: Granátová + Zlatá
   Bootstrap 5.3 + vlastní komponenty
   ============================================================ */

/* ── CSS Custom Properties ──────────────────────────────── */
:root {
  /* Primární – granátová */
  --hs-primary:          #8B1A2F;
  --hs-primary-dark:     #5E0F1F;
  --hs-primary-light:    #C43050;
  --hs-primary-rgb:      139, 26, 47;

  /* Sekundární – zlatá */
  --hs-secondary:        #C4962A;
  --hs-secondary-light:  #E8B84B;
  --hs-secondary-pale:   rgba(196, 150, 42, 0.12);

  /* Akcent – námořní modrá */
  --hs-accent:           #1A3A5C;

  /* Pozadí */
  --hs-bg:               #FAFAF8;
  --hs-bg-alt:           #F4F1EC;
  --hs-bg-dark:          #1C1C1C;

  /* Povrchy */
  --hs-surface:          #FFFFFF;
  --hs-surface-2:        #FDFBF9;

  /* Texty */
  --hs-text:             #1C1C1C;
  --hs-text-muted:       #6B6560;
  --hs-text-light:       rgba(255,255,255,0.85);

  /* Ohraničení */
  --hs-border:           #E0D9D0;
  --hs-border-light:     rgba(255,255,255,0.12);

  /* Navigace */
  --hs-nav-bg:           #8B1A2F;
  --hs-topbar-bg:        #5E0F1F;
  --hs-footer-bg:        #1A0A0D;

  /* Typografie */
  --hs-font-body:       'Inter', system-ui, -apple-system, sans-serif;
  --hs-font-heading:    'Playfair Display', Georgia, serif;

  /* Zaoblení */
  --hs-radius-sm:        6px;
  --hs-radius:           10px;
  --hs-radius-lg:        16px;

  /* Přechody */
  --hs-transition:       0.22s ease;
  --hs-shadow:           0 2px 16px rgba(0,0,0,0.08);
  --hs-shadow-lg:        0 8px 40px rgba(0,0,0,0.12);
}

/* ── Reset & základní nastavení ──────────────────────────── */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--hs-font-body);
  color: var(--hs-text);
  background: var(--hs-bg);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

/* Přepsat Bootstrap primary barvu na naši */
.btn-primary  { --bs-btn-bg: var(--hs-primary); --bs-btn-border-color: var(--hs-primary); --bs-btn-hover-bg: var(--hs-primary-dark); --bs-btn-hover-border-color: var(--hs-primary-dark); }
.text-primary { color: var(--hs-primary) !important; }
.bg-primary   { background-color: var(--hs-primary) !important; }
a { color: var(--hs-primary); text-decoration: none; }
a:hover { color: var(--hs-primary-dark); text-decoration: underline; }

/* ── Nadpisy ─────────────────────────────────────────────── */
h1, h2, h3, .hs-heading {
  font-family: var(--hs-font-heading);
  font-weight: 700;
  line-height: 1.25;
  color: var(--hs-text);
}

h1 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
h2 { font-size: clamp(1.5rem, 2.5vw, 2.1rem); }
h3 { font-size: clamp(1.1rem, 1.8vw, 1.5rem); }

/* ══════════════════════════════════════════════════
   TOPBAR
══════════════════════════════════════════════════ */
.hs-topbar {
  background: var(--hs-topbar-bg);
  color: var(--hs-text-light);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 5px 0;
}

.hs-topbar-name { opacity: 0.75; }

.hs-topbar-link {
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  font-size: 12px;
  transition: color var(--hs-transition);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.hs-topbar-link:hover { color: var(--hs-secondary-light); }

.hs-social-mini a {
  color: rgba(255,255,255,0.5);
  font-size: 14px;
  transition: color var(--hs-transition);
  text-decoration: none;
}
.hs-social-mini a:hover { color: var(--hs-secondary); }

/* ══════════════════════════════════════════════════
   NAVBAR
══════════════════════════════════════════════════ */
.hs-navbar {
  background: var(--hs-nav-bg) !important;
  padding: 0;
  box-shadow: 0 2px 20px rgba(0,0,0,0.25);
}

.hs-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  text-decoration: none;
}

.hs-brand-text {
  font-family: var(--hs-font-heading);
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
  letter-spacing: 0.01em;
}
.hs-brand-text small {
  display: block;
  font-family: var(--hs-font-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--hs-secondary-light);
  opacity: 0.9;
}

/* Nav links */
.hs-navbar .nav-link {
  color: rgba(255,255,255,0.85) !important;
  font-size: 13.5px;
  font-weight: 600;
  padding: 0 14px !important;
  height: 62px;
  display: flex;
  align-items: center;
  border-bottom: 3px solid transparent;
  transition: color var(--hs-transition), border-color var(--hs-transition), background var(--hs-transition);
  letter-spacing: 0.01em;
}
.hs-navbar .nav-link:hover,
.hs-navbar .nav-link.active {
  color: #fff !important;
  border-bottom-color: var(--hs-secondary);
  background: rgba(255,255,255,0.07);
}
.hs-navbar .dropdown-toggle::after {
  margin-left: 5px;
  opacity: 0.6;
}

/* Dropdown menu */
.hs-dropdown {
  border: none;
  border-top: 3px solid var(--hs-secondary);
  border-radius: 0 0 var(--hs-radius) var(--hs-radius);
  box-shadow: 0 12px 40px rgba(0,0,0,0.15);
  padding: 8px 0;
  min-width: 230px;
  animation: dropIn 0.18s ease;
}
@keyframes dropIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.hs-dropdown .dropdown-item {
  font-size: 13.5px;
  padding: 8px 20px;
  color: var(--hs-text);
  font-weight: 500;
  transition: background var(--hs-transition), color var(--hs-transition), padding-left var(--hs-transition);
  border-left: 3px solid transparent;
}
.hs-dropdown .dropdown-item:hover,
.hs-dropdown .dropdown-item:focus {
  background: var(--hs-bg-alt);
  color: var(--hs-primary);
  border-left-color: var(--hs-secondary);
  padding-left: 24px;
}
.hs-dropdown .dropdown-divider { border-color: var(--hs-border); margin: 4px 12px; }

/* Hamburger */
.navbar-toggler { padding: 8px; }
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-toggler:focus { box-shadow: 0 0 0 2px rgba(196,150,42,0.4); }

/* Hledání v navbaru */
.hs-search-form { max-width: 220px; }
.hs-search-input {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 13px;
  border-radius: var(--hs-radius-sm) 0 0 var(--hs-radius-sm);
}
.hs-search-input::placeholder { color: rgba(255,255,255,0.45); }
.hs-search-input:focus {
  background: rgba(255,255,255,0.18);
  border-color: var(--hs-secondary);
  color: #fff;
  box-shadow: none;
}
.hs-search-btn {
  background: var(--hs-secondary);
  border-color: var(--hs-secondary);
  color: #fff;
  border-radius: 0 var(--hs-radius-sm) var(--hs-radius-sm) 0;
}
.hs-search-btn:hover { background: var(--hs-secondary-light); border-color: var(--hs-secondary-light); color: #fff; }

/* Mobile menu */
@media (max-width: 991.98px) {
  .hs-navbar .nav-link {
    height: auto;
    padding: 10px 16px !important;
    border-bottom: none;
    border-left: 3px solid transparent;
  }
  .hs-navbar .nav-link.active,
  .hs-navbar .nav-link:hover {
    border-bottom: none;
    border-left-color: var(--hs-secondary);
  }
  .hs-dropdown {
    border-top: none;
    border-left: 3px solid var(--hs-secondary);
    border-radius: 0;
    box-shadow: none;
    background: rgba(0,0,0,0.15);
    animation: none;
  }
  .hs-search-form { max-width: 100%; margin: 8px 16px 12px; }
}

/* ══════════════════════════════════════════════════
   HERO SLIDER
══════════════════════════════════════════════════ */
.hs-hero {
  position: relative;
  background: var(--hs-primary-dark);
  overflow: hidden;
}
.hs-hero .carousel-item { height: 520px; }
@media (max-width: 767.98px) { .hs-hero .carousel-item { height: 340px; } }

.hs-hero .carousel-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.75;
}
.hs-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(94,15,31,0.85) 0%, rgba(94,15,31,0.35) 60%, transparent 100%);
  display: flex; align-items: center;
}
.hs-hero-content {
  padding: 0 48px;
  max-width: 680px;
}
@media (max-width: 767.98px) { .hs-hero-content { padding: 0 20px; } }

.hs-hero-badge {
  display: inline-block;
  background: var(--hs-secondary);
  color: #fff;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 20px;
  margin-bottom: 14px;
}
.hs-hero-title {
  font-family: var(--hs-font-heading);
  font-size: clamp(1.6rem, 3.5vw, 2.8rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 14px;
  text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.hs-hero-text {
  font-size: 15px; color: rgba(255,255,255,0.85);
  margin-bottom: 24px; max-width: 480px;
}
.hs-hero-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--hs-secondary); color: #fff;
  padding: 12px 26px; border-radius: var(--hs-radius-sm);
  font-weight: 700; font-size: 14px;
  transition: all var(--hs-transition);
  text-decoration: none;
}
.hs-hero-btn:hover {
  background: var(--hs-secondary-light); color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
.hs-hero .carousel-control-prev,
.hs-hero .carousel-control-next {
  width: 48px; background: rgba(0,0,0,0.25);
  border-radius: var(--hs-radius-sm);
  opacity: 0; transition: opacity var(--hs-transition);
}
.hs-hero:hover .carousel-control-prev,
.hs-hero:hover .carousel-control-next { opacity: 0.8; }
.hs-hero .carousel-indicators [data-bs-target] {
  background: rgba(255,255,255,0.5);
  width: 8px; height: 8px; border-radius: 50%;
}
.hs-hero .carousel-indicators .active { background: var(--hs-secondary); }

/* ══════════════════════════════════════════════════
   RYCHLÉ ODKAZY
══════════════════════════════════════════════════ */
.hs-quicklinks { padding: 28px 0; background: var(--hs-surface); }
.hs-quicklinks-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 767.98px) { .hs-quicklinks-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479.98px) { .hs-quicklinks-grid { grid-template-columns: 1fr; } }

.hs-ql-item {
  display: flex; align-items: center; gap: 14px;
  background: var(--hs-surface-2);
  border: 1px solid var(--hs-border);
  border-left: 4px solid var(--hs-primary);
  border-radius: var(--hs-radius);
  padding: 16px 18px;
  text-decoration: none;
  transition: all var(--hs-transition);
  color: var(--hs-text);
}
.hs-ql-item:hover {
  background: var(--hs-bg-alt);
  border-left-color: var(--hs-secondary);
  transform: translateY(-2px);
  box-shadow: var(--hs-shadow);
  color: var(--hs-text);
  text-decoration: none;
}
.hs-ql-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  background: rgba(var(--hs-primary-rgb), 0.08);
  border-radius: var(--hs-radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: var(--hs-primary);
}
.hs-ql-text strong { display: block; font-size: 13px; font-weight: 700; }
.hs-ql-text span   { font-size: 12px; color: var(--hs-text-muted); }

/* ══════════════════════════════════════════════════
   SEKCE NADPIS (s oddělovačem)
══════════════════════════════════════════════════ */
.hs-section-header {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 28px;
}
.hs-section-header h2,
.hs-section-header h3 {
  margin: 0;
  white-space: nowrap;
}
.hs-section-header::after {
  content: '';
  flex: 1; height: 1px;
  background: var(--hs-border);
}
.hs-section-header .hs-all-link {
  font-size: 13px; font-weight: 700;
  color: var(--hs-primary);
  white-space: nowrap;
  text-decoration: none;
  transition: color var(--hs-transition);
}
.hs-section-header .hs-all-link:hover { color: var(--hs-secondary); }

/* ══════════════════════════════════════════════════
   KARTA ČLÁNKU
══════════════════════════════════════════════════ */
.hs-article-card {
  background: var(--hs-surface);
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius);
  overflow: hidden;
  transition: all var(--hs-transition);
  height: 100%;
  display: flex; flex-direction: column;
}
.hs-article-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--hs-shadow-lg);
  border-color: transparent;
}
.hs-article-card-img {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--hs-bg-alt);
  flex-shrink: 0;
}
.hs-article-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.hs-article-card:hover .hs-article-card-img img { transform: scale(1.04); }

.hs-article-card-body {
  padding: 18px;
  flex: 1;
  display: flex; flex-direction: column;
}
.hs-article-badge {
  display: inline-block;
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.07em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 20px;
  background: var(--hs-secondary-pale);
  color: var(--hs-secondary);
  margin-bottom: 10px;
}
.hs-article-card h3 {
  font-size: 15px; font-weight: 700;
  margin-bottom: 8px;
  color: var(--hs-text);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hs-article-card h3 a {
  color: inherit; text-decoration: none;
  transition: color var(--hs-transition);
}
.hs-article-card h3 a:hover { color: var(--hs-primary); }

.hs-article-perex {
  font-size: 13px; color: var(--hs-text-muted);
  line-height: 1.5;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hs-article-card-footer {
  padding: 12px 18px;
  border-top: 1px solid var(--hs-border);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; color: var(--hs-text-muted);
}
.hs-read-more {
  font-size: 13px; font-weight: 700;
  color: var(--hs-primary); text-decoration: none;
  transition: color var(--hs-transition);
}
.hs-read-more:hover { color: var(--hs-secondary); }

/* Přichycená karta (pinned) */
.hs-article-card.hs-pinned {
  border-top: 3px solid var(--hs-secondary);
}
.hs-pinned-marker {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 700;
  color: var(--hs-secondary); text-transform: uppercase; letter-spacing: 0.06em;
  margin-bottom: 6px;
}

/* ══════════════════════════════════════════════════
   CTA PRUH (Domov mládeže přihláška)
══════════════════════════════════════════════════ */
.hs-cta-strip {
  background: linear-gradient(90deg, var(--hs-accent) 0%, #0D2A48 100%);
  padding: 32px 0;
}
.hs-cta-strip h2 {
  font-family: var(--hs-font-heading);
  color: #fff;
  font-size: 1.5rem;
  margin: 0 0 6px;
}
.hs-cta-strip p { color: rgba(255,255,255,0.8); margin: 0; font-size: 14px; }
.hs-cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--hs-secondary); color: #fff;
  padding: 12px 26px; border-radius: var(--hs-radius-sm);
  font-weight: 700; font-size: 14px; text-decoration: none;
  white-space: nowrap;
  transition: all var(--hs-transition);
}
.hs-cta-btn:hover {
  background: var(--hs-secondary-light); color: #fff;
  transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,0.25);
}

/* ══════════════════════════════════════════════════
   BREADCRUMB
══════════════════════════════════════════════════ */
.hs-breadcrumb-wrap {
  background: var(--hs-bg-alt);
  border-bottom: 1px solid var(--hs-border);
  padding: 10px 0;
}
.breadcrumb {
  margin: 0;
  font-size: 13px;
}
.breadcrumb-item a { color: var(--hs-primary); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--hs-secondary); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--hs-text-muted); }
.breadcrumb-item.active { color: var(--hs-text-muted); }

/* ══════════════════════════════════════════════════
   DETAIL ČLÁNKU
══════════════════════════════════════════════════ */
.hs-article-hero {
  width: 100%;
  max-height: 500px;
  object-fit: cover;
  border-radius: var(--hs-radius);
  margin-bottom: 28px;
}
.hs-article-meta {
  display: flex; flex-wrap: wrap; gap: 16px;
  font-size: 13px; color: var(--hs-text-muted);
  margin-bottom: 28px; padding-bottom: 20px;
  border-bottom: 1px solid var(--hs-border);
}
.hs-article-meta span { display: inline-flex; align-items: center; gap: 5px; }

.hs-article-content {
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--hs-text);
}
.hs-article-content h2 { font-size: 1.6rem; margin-top: 2rem; color: var(--hs-primary); }
.hs-article-content h3 { font-size: 1.3rem; margin-top: 1.5rem; }
.hs-article-content img { max-width: 100%; height: auto; border-radius: var(--hs-radius-sm); }
.hs-article-content table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.hs-article-content table td,
.hs-article-content table th {
  border: 1px solid var(--hs-border);
  padding: 8px 12px;
  font-size: 14px;
}
.hs-article-content table th {
  background: var(--hs-bg-alt);
  font-weight: 700; color: var(--hs-primary);
}
.hs-article-content blockquote {
  border-left: 4px solid var(--hs-secondary);
  padding-left: 20px; margin-left: 0;
  color: var(--hs-text-muted); font-style: italic;
}
.hs-article-content a { color: var(--hs-primary); font-weight: 500; }

/* ══════════════════════════════════════════════════
   FOTOGALERIE
══════════════════════════════════════════════════ */
.hs-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
}
.hs-gallery-item {
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: var(--hs-radius-sm);
  position: relative;
}
.hs-gallery-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.hs-gallery-item:hover img { transform: scale(1.06); }
.hs-gallery-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--hs-transition);
  color: #fff; font-size: 24px;
  opacity: 0;
}
.hs-gallery-item:hover .hs-gallery-overlay {
  background: rgba(139,26,47,0.45);
  opacity: 1;
}

/* ══════════════════════════════════════════════════
   SOUBORY KE STAŽENÍ
══════════════════════════════════════════════════ */
.hs-file-list { list-style: none; padding: 0; }
.hs-file-item {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 16px;
  background: var(--hs-surface);
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-sm);
  margin-bottom: 8px;
  text-decoration: none;
  color: var(--hs-text);
  transition: all var(--hs-transition);
}
.hs-file-item:hover {
  background: var(--hs-bg-alt);
  border-color: var(--hs-primary);
  color: var(--hs-primary);
}
.hs-file-icon { font-size: 24px; color: var(--hs-primary); flex-shrink: 0; }
.hs-file-name { font-weight: 600; font-size: 14px; }
.hs-file-size { font-size: 12px; color: var(--hs-text-muted); margin-left: auto; }

/* ══════════════════════════════════════════════════
   ZAMĚSTNANCI – KARTA
══════════════════════════════════════════════════ */
.hs-staff-card {
  background: var(--hs-surface);
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius);
  overflow: hidden;
  text-align: center;
  padding: 28px 20px 22px;
  transition: all var(--hs-transition);
}
.hs-staff-card:hover { transform: translateY(-3px); box-shadow: var(--hs-shadow); }
.hs-staff-photo {
  width: 90px; height: 90px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--hs-border);
  margin: 0 auto 14px;
  display: block;
}
.hs-staff-name { font-size: 15px; font-weight: 700; color: var(--hs-text); margin-bottom: 4px; }
.hs-staff-role { font-size: 13px; color: var(--hs-text-muted); margin-bottom: 10px; }
.hs-staff-contact a { font-size: 13px; color: var(--hs-primary); text-decoration: none; display: block; }

/* ══════════════════════════════════════════════════
   FORMULÁŘE
══════════════════════════════════════════════════ */
.hs-form-section {
  background: var(--hs-surface);
  border: 1px solid var(--hs-border);
  border-radius: var(--hs-radius-lg);
  padding: 36px;
}
@media (max-width: 575.98px) { .hs-form-section { padding: 24px 20px; } }

.form-label { font-weight: 600; font-size: 13px; color: var(--hs-text); margin-bottom: 5px; }
.form-control, .form-select {
  border-color: var(--hs-border);
  border-radius: var(--hs-radius-sm);
  font-size: 14px;
  padding: 10px 14px;
  transition: border-color var(--hs-transition), box-shadow var(--hs-transition);
}
.form-control:focus, .form-select:focus {
  border-color: var(--hs-primary);
  box-shadow: 0 0 0 3px rgba(var(--hs-primary-rgb), 0.12);
}

/* Primární tlačítko formuláře */
.btn-hs-primary {
  background: var(--hs-primary);
  border-color: var(--hs-primary);
  color: #fff;
  font-weight: 700;
  padding: 11px 28px;
  border-radius: var(--hs-radius-sm);
  font-size: 14px;
  transition: all var(--hs-transition);
}
.btn-hs-primary:hover {
  background: var(--hs-primary-dark);
  border-color: var(--hs-primary-dark);
  color: #fff;
  transform: translateY(-1px);
}
.btn-hs-secondary {
  background: var(--hs-secondary);
  border-color: var(--hs-secondary);
  color: #fff;
  font-weight: 700;
  padding: 11px 28px;
  border-radius: var(--hs-radius-sm);
  font-size: 14px;
  transition: all var(--hs-transition);
}
.btn-hs-secondary:hover { background: var(--hs-secondary-light); border-color: var(--hs-secondary-light); color: #fff; }

/* ══════════════════════════════════════════════════
   STRÁNKOVÁNÍ
══════════════════════════════════════════════════ */
.pagination .page-link {
  color: var(--hs-primary);
  border-color: var(--hs-border);
  font-size: 14px;
  padding: 8px 14px;
  transition: all var(--hs-transition);
}
.pagination .page-item.active .page-link {
  background: var(--hs-primary);
  border-color: var(--hs-primary);
}
.pagination .page-link:hover {
  background: var(--hs-bg-alt);
  border-color: var(--hs-primary);
  color: var(--hs-primary);
}

/* ══════════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════════ */
.hs-footer {
  background: var(--hs-footer-bg);
  color: rgba(255,255,255,0.55);
}
.hs-footer-heading {
  color: rgba(255,255,255,0.9);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.hs-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.hs-footer-links li { margin-bottom: 7px; }
.hs-footer-links a {
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  font-size: 13px;
  transition: color var(--hs-transition);
}
.hs-footer-links a:hover { color: var(--hs-secondary-light); }

.hs-footer-text {
  font-size: 13px;
  line-height: 1.8;
  color: rgba(255,255,255,0.5);
}
.hs-footer-text a {
  color: rgba(255,255,255,0.55);
  text-decoration: none;
  transition: color var(--hs-transition);
}
.hs-footer-text a:hover { color: var(--hs-secondary-light); }

.hs-footer-social {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.hs-footer-social a {
  width: 34px; height: 34px;
  border-radius: var(--hs-radius-sm);
  background: rgba(255,255,255,0.07);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.5);
  font-size: 16px; text-decoration: none;
  transition: all var(--hs-transition);
}
.hs-footer-social a:hover {
  background: var(--hs-secondary);
  color: #fff;
  transform: translateY(-2px);
}

.hs-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  font-size: 12px;
  color: rgba(255,255,255,0.25);
}
.hs-footer-bottom a { color: rgba(255,255,255,0.3); text-decoration: none; }
.hs-footer-bottom a:hover { color: var(--hs-secondary-light); }

/* ══════════════════════════════════════════════════
   BACK TO TOP
══════════════════════════════════════════════════ */
.hs-back-to-top {
  position: fixed;
  bottom: 28px; right: 24px;
  width: 42px; height: 42px;
  background: var(--hs-primary);
  color: #fff;
  border: none;
  border-radius: 50%;
  font-size: 18px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: all var(--hs-transition);
  z-index: 999;
  display: flex; align-items: center; justify-content: center;
}
.hs-back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
}
.hs-back-to-top:hover { background: var(--hs-secondary); transform: translateY(-3px); }

/* ══════════════════════════════════════════════════
   UTILITY TŘÍDY
══════════════════════════════════════════════════ */
.hs-divider {
  height: 3px;
  width: 48px;
  background: var(--hs-secondary);
  border-radius: 2px;
  margin: 14px 0 20px;
}
.hs-label-gold {
  display: inline-block;
  background: var(--hs-secondary-pale);
  color: var(--hs-secondary);
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.07em; text-transform: uppercase;
  padding: 4px 11px; border-radius: 20px;
}
.hs-section { padding: 56px 0; }
.hs-section-sm { padding: 36px 0; }
.hs-bg-alt { background: var(--hs-bg-alt); }

/* Alert styles */
.alert-success { background: #f0faf4; border-color: #86efac; color: #166534; }
.alert-danger   { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.alert-info     { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.alert-warning  { background: #fffbeb; border-color: #fcd34d; color: #92400e; }

/* ══════════════════════════════════════════════════
   PRINT STYLY
══════════════════════════════════════════════════ */
@media print {
  .hs-topbar, .hs-navbar, .hs-footer, .hs-back-to-top, .hs-quicklinks,
  .hs-cta-strip, .pagination, .navbar-toggler { display: none !important; }
  body { font-size: 12pt; color: #000; background: #fff; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 10pt; }
}

/* ════════════════════════════════════════════════════
   HOMEPAGE – HERO SLIDER
════════════════════════════════════════════════════ */
.hero-section { position: relative; overflow: hidden; background: #1A0A0D; }
.hero-carousel { position: relative; height: 520px; }
@media (max-width: 991px) { .hero-carousel { height: 380px; } }
@media (max-width: 575px)  { .hero-carousel { height: 280px; } }

.hero-slide {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity .7s ease;
  pointer-events: none;
}
.hero-slide.active { opacity: 1; pointer-events: auto; z-index: 1; }

.hero-img-wrap { position: absolute; inset: 0; }
.hero-img      { width: 100%; height: 100%; object-fit: cover; }
.hero-img-fallback {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--gold) 100%);
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to right,
    rgba(0,0,0,.65) 0%,
    rgba(0,0,0,.35) 50%,
    rgba(0,0,0,.1)  100%
  );
}

/* Obsah slidu */
.hero-content {
  position: absolute; z-index: 2;
  left: 0; right: 0; bottom: 0; top: 0;
  display: flex; flex-direction: column;
  justify-content: center;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad) 60px;
}
.hero-badge {
  display: inline-block; align-self: flex-start;
  background: var(--gold); color: #fff;
  font-size: 11px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 20px;
  margin-bottom: 14px;
}
.hero-title {
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 700; color: #fff;
  line-height: 1.2; margin: 0 0 14px;
  text-shadow: 0 2px 12px rgba(0,0,0,.4);
  max-width: 620px;
}
.hero-subtitle {
  font-size: clamp(.95rem, 1.5vw, 1.1rem);
  color: rgba(255,255,255,.85);
  margin: 0 0 24px;
  max-width: 500px;
  line-height: 1.6;
}
.hero-cta {
  display: inline-flex; align-items: center;
  background: var(--gold); color: #fff;
  font-weight: 700; font-size: .95rem;
  padding: 13px 28px; border-radius: 6px;
  text-decoration: none; align-self: flex-start;
  transition: background .2s, transform .2s;
  box-shadow: 0 4px 20px rgba(0,0,0,.25);
}
.hero-cta:hover { background: #B8861F; color: #fff; transform: translateY(-2px); }

/* Šipky */
.hero-arrow {
  position: absolute; z-index: 3; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.15); border: 1.5px solid rgba(255,255,255,.3);
  color: #fff; font-size: 20px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
  backdrop-filter: blur(6px);
}
.hero-arrow:hover { background: rgba(255,255,255,.3); }
.hero-arrow--prev { left: 20px; }
.hero-arrow--next { right: 20px; }

/* Dots */
.hero-dots {
  position: absolute; z-index: 3; bottom: 20px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 8px;
}
.hero-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.4);
  border: none; cursor: pointer; padding: 0;
  transition: all .2s;
}
.hero-dot.active {
  background: var(--gold);
  width: 24px; border-radius: 4px;
}

/* ════════════════════════════════════════════════════
   HOMEPAGE – RYCHLÉ AKCE
════════════════════════════════════════════════════ */
.quick-links-section {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 0;
}
.quick-links-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}
@media (max-width: 991px) { .quick-links-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px)  { .quick-links-grid { grid-template-columns: repeat(2, 1fr); } }

.quick-link-card {
  display: flex; flex-direction: column; align-items: center;
  padding: 22px 12px;
  text-decoration: none; color: var(--text);
  border-right: 1px solid var(--border);
  transition: background .2s;
  gap: 10px;
}
.quick-link-card:last-child { border-right: none; }
.quick-link-card:hover { background: var(--bg); }
.quick-link-icon {
  width: 48px; height: 48px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px;
  transition: transform .2s;
}
.quick-link-card:hover .quick-link-icon { transform: scale(1.1); }
.quick-link-label {
  font-size: 12.5px; font-weight: 600;
  color: var(--text); text-align: center; line-height: 1.3;
}

/* ════════════════════════════════════════════════════
   SEKCE OBECNĚ (section-pad, section-header)
════════════════════════════════════════════════════ */
.section-pad { padding: 60px 0; }
.section-pad--alt { background: var(--bg); }
@media (max-width: 767px) { .section-pad { padding: 40px 0; } }

.section-header {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 32px; gap: 16px;
}
.section-title {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  font-weight: 700; color: var(--primary);
  margin: 0; position: relative; padding-bottom: 10px;
}
.section-title::after {
  content: '';
  position: absolute; bottom: 0; left: 0;
  width: 48px; height: 3px;
  background: var(--gold); border-radius: 2px;
}
.section-more {
  font-size: 13.5px; font-weight: 700;
  color: var(--primary); text-decoration: none;
  display: flex; align-items: center; gap: 4px;
  flex-shrink: 0;
  transition: color .2s;
}
.section-more:hover { color: var(--gold); }

/* ════════════════════════════════════════════════════
   FEATURED ARTICLES (přichycené)
════════════════════════════════════════════════════ */
.featured-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 24px;
}
@media (max-width: 767px) { .featured-grid { grid-template-columns: 1fr; } }

.featured-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .2s, transform .2s;
}
.featured-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.1); transform: translateY(-3px); }

.featured-card-img-wrap {
  position: relative; display: block;
  aspect-ratio: 16/9;
  overflow: hidden; background: var(--bg);
}
.featured-card--main .featured-card-img-wrap { aspect-ratio: 16/9; }

.featured-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.featured-card:hover .featured-card-img { transform: scale(1.04); }

.featured-card-img-ph {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg); color: var(--primary); opacity: .2; font-size: 48px;
}
.featured-card-cat {
  position: absolute; top: 12px; left: 12px;
  background: var(--primary); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .05em;
  padding: 3px 10px; border-radius: 20px;
  text-transform: uppercase;
}
.featured-card-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.featured-card-title {
  font-family: var(--font-serif);
  font-size: 1.15rem; font-weight: 700;
  margin: 0 0 10px; line-height: 1.35;
}
.featured-card-title a { color: var(--text); text-decoration: none; transition: color .2s; }
.featured-card-title a:hover { color: var(--primary); }
.featured-card-perex {
  font-size: .9rem; color: var(--text-muted); line-height: 1.6;
  margin: 0 0 14px; flex: 1;
}
.card-meta {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; font-size: .8rem; color: var(--text-muted);
  margin-top: auto; flex-wrap: wrap;
}
.card-read-more {
  font-weight: 700; color: var(--primary); text-decoration: none;
  display: flex; align-items: center; gap: 4px; white-space: nowrap;
  transition: color .2s;
}
.card-read-more:hover { color: var(--gold); }

/* ════════════════════════════════════════════════════
   ARTICLES GRID
════════════════════════════════════════════════════ */
.articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.articles-grid--wide { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991px) {
  .articles-grid,
  .articles-grid--wide { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .articles-grid,
  .articles-grid--wide { grid-template-columns: 1fr; }
}

.article-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden; display: flex; flex-direction: column;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
  transition: box-shadow .2s, transform .2s;
}
.article-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.1); transform: translateY(-3px); }

.article-card-img-wrap {
  display: block; aspect-ratio: 16/9;
  overflow: hidden; background: var(--bg);
}
.article-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.article-card:hover .article-card-img { transform: scale(1.05); }
.article-card-img-ph {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  color: var(--primary); opacity: .18; font-size: 36px;
}
.article-card-body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
.article-card-cat {
  font-size: 10.5px; font-weight: 700;
  color: var(--primary); text-decoration: none;
  text-transform: uppercase; letter-spacing: .08em;
  display: block; margin-bottom: 6px;
  transition: color .2s;
}
.article-card-cat:hover { color: var(--gold); }
.article-card-title {
  font-size: .95rem; font-weight: 700;
  line-height: 1.4; margin: 0 0 8px;
}
.article-card-title a { color: var(--text); text-decoration: none; transition: color .2s; }
.article-card-title a:hover { color: var(--primary); }
.article-card-perex {
  font-size: .85rem; color: var(--text-muted);
  line-height: 1.55; margin: 0 0 12px; flex: 1;
}

/* ════════════════════════════════════════════════════
   PAGE HERO (header stránky)
════════════════════════════════════════════════════ */
.page-hero {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  color: #fff; padding: 48px 0 40px;
}
.page-hero--category { padding: 40px 0 32px; }
.page-hero-title {
  font-family: var(--font-serif);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 700; margin: 8px 0 10px;
}
.page-hero-desc { font-size: 1rem; opacity: .85; margin: 0 0 10px; max-width: 640px; }
.page-hero-meta { font-size: .85rem; opacity: .7; }
.page-hero-meta span { margin-right: 16px; }

/* Breadcrumb */
.breadcrumb-wrap { margin-bottom: 8px; }
.breadcrumb-list {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 6px; list-style: none; padding: 0; margin: 0;
  font-size: .8rem;
}
.breadcrumb-list li { display: flex; align-items: center; gap: 6px; }
.page-hero .breadcrumb-list a { color: rgba(255,255,255,.7); text-decoration: none; transition: color .2s; }
.page-hero .breadcrumb-list a:hover { color: var(--gold); }
.page-hero .breadcrumb-list [aria-current] { color: rgba(255,255,255,.55); }
.page-hero .breadcrumb-list .bi { font-size: .6rem; opacity: .6; }

/* Breadcrumb na bílém pozadí (detail článku) */
.article-page-header {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
}
.article-page-header .breadcrumb-list a { color: var(--primary); text-decoration: none; }
.article-page-header .breadcrumb-list a:hover { color: var(--gold); }
.article-page-header .breadcrumb-list [aria-current] { color: var(--text-muted); }
.article-page-header .breadcrumb-list .bi { font-size: .6rem; color: var(--text-muted); }

/* ════════════════════════════════════════════════════
   ARTICLE DETAIL
════════════════════════════════════════════════════ */
.article-section { background: var(--bg); }
.article-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 32px; align-items: start;
}
@media (max-width: 991px) {
  .article-layout { grid-template-columns: 1fr; }
  .article-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
}
@media (max-width: 575px) {
  .article-sidebar { grid-template-columns: 1fr; }
}

/* Hlavní článek */
.article-main {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.article-cover { aspect-ratio: 16/9; overflow: hidden; }
.article-cover-img { width: 100%; height: 100%; object-fit: cover; }

/* Meta řádek */
.article-meta {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 14px; padding: 18px 28px 0;
  font-size: .8rem; color: var(--text-muted);
}
.article-cat-badge {
  background: var(--primary); color: #fff;
  font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  padding: 3px 10px; border-radius: 20px;
  text-decoration: none; transition: background .2s;
}
.article-cat-badge:hover { background: var(--gold); color: #fff; }
.article-date, .article-author, .article-views {
  display: flex; align-items: center; gap: 5px;
}

/* Nadpis + perex */
.article-title {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 700; color: var(--text);
  line-height: 1.3;
  padding: 16px 28px 4px; margin: 0;
}
.article-perex {
  font-size: 1.05rem; color: var(--text-muted);
  line-height: 1.65; font-style: italic;
  padding: 0 28px 18px; margin: 0;
  border-bottom: 2px solid var(--bg);
}

/* Prose – obsah z TinyMCE */
.prose {
  padding: 24px 28px;
  font-size: 1rem; line-height: 1.8; color: var(--text);
}
@media (max-width: 575px) {
  .article-meta, .article-title, .article-perex, .prose { padding-left: 18px; padding-right: 18px; }
}
.prose h2 {
  font-family: var(--font-serif); font-size: 1.5rem;
  color: var(--primary); margin: 2em 0 .6em;
  padding-bottom: .3em; border-bottom: 1px solid var(--border);
}
.prose h3 {
  font-family: var(--font-serif); font-size: 1.2rem;
  color: var(--navy); margin: 1.5em 0 .5em;
}
.prose h4 { font-size: 1.05rem; font-weight: 700; margin: 1.3em 0 .4em; }
.prose p  { margin: 0 0 1.1em; }
.prose a  { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; }
.prose a:hover { color: var(--gold); }
.prose ul, .prose ol { padding-left: 1.6rem; margin: 0 0 1.1em; }
.prose li { margin-bottom: .4em; }
.prose blockquote {
  margin: 1.5em 0; padding: .9em 1.2em;
  border-left: 4px solid var(--gold);
  background: rgba(196,150,42,.06);
  border-radius: 0 8px 8px 0;
  font-style: italic; color: #555;
}
.prose img { max-width: 100%; height: auto; border-radius: 8px; margin: .5em 0; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .9em; }
.prose table th {
  background: var(--primary); color: #fff;
  padding: 9px 14px; text-align: left; font-weight: 700;
}
.prose table td { padding: 9px 14px; border-bottom: 1px solid var(--border); }
.prose table tr:hover td { background: var(--bg); }
.prose pre {
  background: #1E1E2E; color: #CDD6F4;
  padding: 1em 1.3em; border-radius: 8px;
  overflow-x: auto; font-size: .87em; margin: 1.5em 0;
}
.prose code {
  background: rgba(139,26,47,.08); color: var(--primary);
  padding: .1em .35em; border-radius: 3px; font-size: .9em;
}
.prose pre code { background: none; color: inherit; padding: 0; }
.prose .info-box    { background:#eff6ff;border-left:4px solid #2563eb;padding:12px 16px;border-radius:0 6px 6px 0;color:#1e40af;margin:1.2em 0; }
.prose .warning-box { background:#fffbeb;border-left:4px solid #d97706;padding:12px 16px;border-radius:0 6px 6px 0;color:#92400e;margin:1.2em 0; }
.prose .tip-box     { background:#f0fdf4;border-left:4px solid #16a34a;padding:12px 16px;border-radius:0 6px 6px 0;color:#15803d;margin:1.2em 0; }
.prose hr { border: none; border-top: 2px solid var(--border); margin: 2em 0; }

/* Galerie v detailu */
.article-gallery { padding: 0 28px 28px; }
.article-gallery-title {
  font-size: 1rem; font-weight: 700;
  color: var(--text); margin: 0 0 16px;
  display: flex; align-items: center; gap: 8px;
}
.article-gallery-count { font-size: .8rem; color: var(--text-muted); font-weight: 400; }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px;
}
.gallery-item {
  display: block; border-radius: 6px; overflow: hidden;
  aspect-ratio: 4/3; position: relative;
  transition: opacity .2s;
}
.gallery-item:hover { opacity: .9; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item-caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(0,0,0,.6); color: #fff;
  font-size: 10px; padding: 3px 7px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Videa */
.article-videos { padding: 0 28px 28px; }
.article-section-title {
  font-size: 1rem; font-weight: 700;
  display: flex; align-items: center; gap: 8px; margin: 0 0 16px;
}
.videos-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px;
}
.video-embed-wrap {
  position: relative; aspect-ratio: 16/9;
  border-radius: 8px; overflow: hidden; background: #000;
}
.video-embed-wrap iframe { width: 100%; height: 100%; border: none; }

/* Přílohy */
.article-files { padding: 0 28px 28px; }
.file-list { list-style: none; padding: 0; margin: 0; }
.file-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; border-radius: 8px;
  border: 1px solid var(--border);
  margin-bottom: 8px; background: var(--bg);
  transition: border-color .2s;
}
.file-item:hover { border-color: var(--primary); }
.file-icon { font-size: 22px; color: var(--primary); flex-shrink: 0; }
.file-info { flex: 1; min-width: 0; }
.file-name { font-weight: 600; font-size: .9rem; color: var(--text); text-decoration: none; }
.file-name:hover { color: var(--primary); }
.file-size { display: block; font-size: .75rem; color: var(--text-muted); margin-top: 1px; }
.file-download {
  padding: 7px 12px; border: 1px solid var(--border); border-radius: 6px;
  color: var(--primary); text-decoration: none;
  transition: all .2s; flex-shrink: 0;
}
.file-download:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

/* Tagy */
.article-tags {
  padding: 16px 28px;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
}
.article-tag {
  display: inline-block;
  background: var(--bg); border: 1px solid var(--border);
  color: var(--text-muted); font-size: .75rem;
  padding: 3px 10px; border-radius: 20px;
  text-decoration: none; transition: all .2s;
}
.article-tag:hover { border-color: var(--primary); color: var(--primary); }

/* Sdílení */
.article-share {
  padding: 16px 28px 24px;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.share-label { font-size: .8rem; font-weight: 700; color: var(--text-muted); }
.share-btn {
  width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; border: none; cursor: pointer; transition: all .2s;
  text-decoration: none;
}
.share-btn--fb   { background: #1877F2; color: #fff; }
.share-btn--fb:hover { background: #1558b0; }
.share-btn--tw   { background: #000; color: #fff; }
.share-btn--tw:hover { background: #333; }
.share-btn--copy { background: var(--bg); color: var(--text-muted); border: 1px solid var(--border); }
.share-btn--copy:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

/* ════════════════════════════════════════════════════
   SIDEBAR
════════════════════════════════════════════════════ */
.sidebar-widget {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden; margin-bottom: 20px;
}
.sidebar-widget--cta { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); }
.sidebar-widget--cta .sidebar-widget-title { color: #fff; border-color: rgba(255,255,255,.15); }
.sidebar-widget--cta p { color: rgba(255,255,255,.8) !important; }

.sidebar-widget-title {
  font-size: .8rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .07em;
  color: var(--primary);
  padding: 13px 18px;
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 8px;
  margin: 0;
}
.sidebar-article-list { list-style: none; padding: 10px 0; margin: 0; }
.sidebar-article-item {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 8px 18px; transition: background .2s;
}
.sidebar-article-item:hover { background: var(--bg); }
.sidebar-article-thumb {
  width: 64px; height: 48px; flex-shrink: 0;
  border-radius: 5px; overflow: hidden; display: block;
}
.sidebar-article-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sidebar-article-info { min-width: 0; }
.sidebar-article-title {
  font-size: .8rem; font-weight: 600; color: var(--text);
  text-decoration: none; line-height: 1.35; display: block;
  transition: color .2s;
}
.sidebar-article-title:hover { color: var(--primary); }
.sidebar-article-date { font-size: .7rem; color: var(--text-muted); margin-top: 3px; display: block; }
.sidebar-more-link {
  display: flex; align-items: center; gap: 5px;
  padding: 10px 18px; font-size: .8rem; font-weight: 700;
  color: var(--primary); text-decoration: none;
  border-top: 1px solid var(--border);
  transition: color .2s;
}
.sidebar-more-link:hover { color: var(--gold); }
.sidebar-contact-list {
  list-style: none; padding: 14px 18px; margin: 0;
  font-size: .82rem; color: var(--text-muted);
  display: flex; flex-direction: column; gap: 8px;
}
.sidebar-contact-list li { display: flex; align-items: flex-start; gap: 8px; }
.sidebar-contact-list .bi { color: var(--primary); flex-shrink: 0; margin-top: 2px; }
.sidebar-contact-list a { color: var(--text-muted); text-decoration: none; transition: color .2s; }
.sidebar-contact-list a:hover { color: var(--primary); }

/* Sidebar padding pro CTA */
.sidebar-widget--cta .sidebar-widget-title + * { padding: 16px 18px 18px; }

/* ════════════════════════════════════════════════════
   RUBRIKY GRID (homepage)
════════════════════════════════════════════════════ */
.categories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.category-card {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 8px; text-decoration: none;
  color: var(--text); transition: all .2s;
  border-left: 3px solid var(--primary);
}
.category-card:hover {
  border-left-color: var(--gold);
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  transform: translateX(3px);
}
.category-card-count {
  font-size: 1.2rem; font-weight: 700;
  color: var(--primary); min-width: 28px;
}
.category-card:hover .category-card-count { color: var(--gold); }
.category-card-name { font-size: .85rem; font-weight: 600; flex: 1; }
.category-card-arrow { color: var(--text-muted); font-size: .75rem; transition: transform .2s; }
.category-card:hover .category-card-arrow { transform: translateX(3px); color: var(--gold); }

/* ════════════════════════════════════════════════════
   CTA PRUH
════════════════════════════════════════════════════ */
.cta-section {
  background: linear-gradient(135deg, var(--navy) 0%, #1A3A5C 100%);
  padding: 48px 0;
}
.cta-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}
.cta-text h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2vw, 1.8rem);
  color: #fff; margin: 0 0 8px;
}
.cta-text p { color: rgba(255,255,255,.75); margin: 0; }
.cta-btn {
  display: inline-flex; align-items: center;
  background: var(--gold); color: #fff;
  font-weight: 700; font-size: .95rem;
  padding: 14px 28px; border-radius: 6px;
  text-decoration: none; white-space: nowrap;
  transition: background .2s;
  flex-shrink: 0;
}
.cta-btn:hover { background: #B8861F; color: #fff; }

/* ════════════════════════════════════════════════════
   TLAČÍTKA (veřejný web)
════════════════════════════════════════════════════ */
.btn-outline-primary-school {
  display: inline-flex; align-items: center;
  border: 2px solid var(--primary); color: var(--primary);
  font-weight: 700; font-size: .9rem;
  padding: 11px 24px; border-radius: 6px;
  text-decoration: none; transition: all .2s;
}
.btn-outline-primary-school:hover { background: var(--primary); color: #fff; }

.btn-primary-school {
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.15); color: #fff;
  border: 1.5px solid rgba(255,255,255,.4);
  font-weight: 700; font-size: .9rem;
  padding: 10px 20px; border-radius: 6px;
  text-decoration: none; transition: all .2s;
}
.btn-primary-school:hover { background: rgba(255,255,255,.25); }
.w-100 { width: 100%; }

/* ════════════════════════════════════════════════════
   STRÁNKOVÁNÍ (frontend)
════════════════════════════════════════════════════ */
.pagination-wrap { margin-top: 40px; display: flex; justify-content: center; }
.pagination-list {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 6px; list-style: none; padding: 0; margin: 0;
}
.page-link {
  display: flex; align-items: center; gap: 4px;
  padding: 8px 14px; border: 1px solid var(--border);
  border-radius: 6px; font-size: .85rem; font-weight: 600;
  color: var(--primary); text-decoration: none;
  transition: all .2s; background: var(--surface);
}
.page-link:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.page-link.active {
  background: var(--primary); color: #fff; border-color: var(--primary);
  pointer-events: none;
}
.page-dots { color: var(--text-muted); padding: 0 4px; }

/* ════════════════════════════════════════════════════
   PRÁZDNÝ STAV
════════════════════════════════════════════════════ */
.empty-state {
  text-align: center; padding: 64px 20px;
  color: var(--text-muted);
}
.empty-state .bi { font-size: 52px; opacity: .2; display: block; margin-bottom: 16px; }
.empty-state h3  { font-size: 1.2rem; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.empty-state p   { margin-bottom: 20px; }

/* ╔══════════════════════════════════════════════════════════╗
   ║  DOMOV MLÁDEŽE – FORMULÁŘ PŘIHLÁŠKY                     ║
   ╚══════════════════════════════════════════════════════════╝ */

/* ── Page Hero DM ─────────────────────────────────────── */
.page-hero--dm {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 55%, var(--navy) 100%);
  padding: 44px 0 36px;
}
.page-hero-desc { font-size: .9rem; opacity: .8; margin: 6px 0 0; }

/* ── Krokovník ────────────────────────────────────────── */
.dm-stepper-wrap {
  background: var(--surface);
  border-bottom: 2px solid var(--border);
  position: sticky;
  top: 68px;
  z-index: 90;
}
.dm-stepper {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.dm-step {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-s);
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  transition: all var(--t);
  cursor: default;
}
.dm-step.active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}
.dm-step.completed {
  color: var(--success, #2D6A4F);
  border-bottom-color: transparent;
}
.dm-step-n {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--border);
  color: var(--text-m);
  font-size: .75rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all var(--t);
}
.dm-step.active  .dm-step-n { background: var(--primary); color: #fff; }
.dm-step.completed .dm-step-n { background: #2D6A4F; color: #fff; }
.dm-step-lbl { display: none; }
@media (min-width: 768px) { .dm-step-lbl { display: block; } }

/* ── Form Layout ──────────────────────────────────────── */
.dm-form-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 28px;
  align-items: start;
}
@media (max-width: 991px) {
  .dm-form-layout { grid-template-columns: 1fr; }
  .dm-form-sidebar { order: -1; }
}

/* ── Sekce formuláře ──────────────────────────────────── */
.dm-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 28px;
  margin-bottom: 20px;
  scroll-margin-top: 130px;
}
.dm-section--submit { border-color: var(--primary); }
.dm-section-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border-l);
}
.dm-section-num {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 1rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dm-section-title { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 700; margin: 0 0 4px; color: var(--primary); }
.dm-section-desc  { font-size: .83rem; color: var(--text-m); margin: 0; }

/* ── Formulářová pole ─────────────────────────────────── */
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 575px) { .form-row-2 { grid-template-columns: 1fr; } }

.form-field { margin-bottom: 18px; }
.form-field:last-child { margin-bottom: 0; }
.form-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .83rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}
.form-label--req::after {
  content: '*';
  color: var(--primary);
  font-size: .9em;
}
.form-hint {
  font-size: .72rem;
  color: var(--text-s);
  font-weight: 400;
  display: flex;
  align-items: center;
  gap: 3px;
}
.form-inp {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: .9rem;
  color: var(--text);
  background: var(--surface);
  transition: border-color var(--t), box-shadow var(--t);
  font-family: inherit;
}
.form-inp:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(139, 26, 47, .1);
}
.form-inp.is-invalid { border-color: #DC2626; background: #FFF5F5; }
.form-inp.is-invalid:focus { box-shadow: 0 0 0 3px rgba(220, 38, 38, .1); }
.form-textarea { resize: vertical; min-height: 90px; }
.form-help {
  font-size: .75rem;
  color: var(--text-s);
  margin-top: 5px;
}
.field-error {
  font-size: .78rem;
  color: #DC2626;
  margin-top: 5px;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ── Subsection title ─────────────────────────────────── */
.dm-subsection-title {
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--primary);
  margin: 24px 0 14px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border-l);
}

/* ── ZZ bloky ─────────────────────────────────────────── */
.dm-zz-block {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 18px;
  margin-bottom: 16px;
}
.dm-zz-block--secondary { border-color: var(--border); background: var(--bg); }
.dm-zz-label {
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--navy);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dm-remove-zz {
  background: none;
  border: none;
  color: #DC2626;
  font-size: .78rem;
  cursor: pointer;
  font-weight: 600;
  padding: 2px 6px;
}
.dm-add-zz {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1.5px dashed var(--border);
  border-radius: 8px;
  padding: 10px 16px;
  font-size: .83rem;
  font-weight: 700;
  color: var(--primary);
  cursor: pointer;
  width: 100%;
  justify-content: center;
  transition: all var(--t);
  margin-bottom: 16px;
}
.dm-add-zz:hover { border-color: var(--primary); background: rgba(139, 26, 47, .04); }

/* ── GDPR box ─────────────────────────────────────────── */
.gdpr-box {
  background: #F8F9FF;
  border: 1.5px solid #C7D2FE;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 22px;
}
.gdpr-box--error { border-color: #DC2626; background: #FFF5F5; }
.gdpr-text p { font-size: .82rem; color: #4B5563; margin: 6px 0 14px; line-height: 1.6; }
.gdpr-text strong { font-size: .9rem; color: var(--text); }
.gdpr-text a { color: var(--navy); }
.gdpr-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: .88rem;
  color: var(--text);
}
.gdpr-check input[type=checkbox] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--primary);
  margin-top: 1px;
}

/* ── Souhrn (live preview) ────────────────────────────── */
.dm-summary {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px 20px;
  margin-bottom: 22px;
}
.dm-summary-title {
  font-size: .8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-m);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}
.dm-summary-grid { display: flex; flex-direction: column; gap: 6px; }
.dss-row { display: flex; gap: 10px; font-size: .82rem; }
.dss-lbl { color: var(--text-s); width: 160px; flex-shrink: 0; }
.dss-val { font-weight: 600; color: var(--text); }

/* ── Submit row ───────────────────────────────────────── */
.dm-submit-row { text-align: center; }
.dm-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 15px 40px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--t);
  min-width: 320px;
  gap: 8px;
  box-shadow: 0 4px 20px rgba(139, 26, 47, .3);
}
.dm-submit-btn:hover:not(:disabled) {
  background: var(--primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 28px rgba(139, 26, 47, .35);
}
.dm-submit-btn:disabled { opacity: .7; cursor: not-allowed; transform: none; }
.dm-submit-note {
  font-size: .8rem;
  color: var(--text-s);
  margin: 10px 0 0;
}
/* Spinner pro loading stav */
.spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Alert boxy ───────────────────────────────────────── */
.alert-box {
  padding: 14px 18px;
  border-radius: 8px;
  font-size: .88rem;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.alert-box--error   { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.alert-box--warning { background: #FFFBEB; color: #92400E; border: 1px solid #FDE68A; }
.alert-box--success { background: #F0FDF4; color: #166534; border: 1px solid #BBF7D0; }

/* ── Sidebar karty ────────────────────────────────────── */
.dm-info-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 22px;
  margin-bottom: 16px;
}
.dm-info-card--contact { border-top: 4px solid var(--primary); }
.dm-info-card--timeline { border-top: 4px solid var(--navy); }
.dm-info-card-icon {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, var(--primary-dark), var(--primary));
  color: #fff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 14px;
}
.dm-info-card-title { font-weight: 700; font-size: .95rem; color: var(--primary); margin: 0 0 10px; }
.dm-info-card p { font-size: .83rem; color: var(--text-m); margin: 0 0 12px; line-height: 1.6; }
.dm-info-list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.dm-info-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .83rem;
  color: var(--text-m);
}
.dm-info-list .bi-check-circle-fill { color: #2D6A4F; }
.dm-info-link {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .83rem;
  font-weight: 700;
  color: var(--primary);
  text-decoration: none;
  transition: color var(--t);
}
.dm-info-link:hover { color: var(--gold); }

.dm-contact-mini {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: .83rem;
  color: var(--text-m);
}
.dm-contact-mini li { display: flex; align-items: flex-start; gap: 8px; }
.dm-contact-mini .bi { color: var(--primary); flex-shrink: 0; margin-top: 2px; }
.dm-contact-mini a { color: var(--text-m); text-decoration: none; transition: color var(--t); }
.dm-contact-mini a:hover { color: var(--primary); }

/* ── Timeline ─────────────────────────────────────────── */
.dm-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.dm-timeline::before {
  content: '';
  position: absolute;
  left: 7px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: var(--border);
  border-radius: 2px;
}
.dm-timeline li {
  display: flex;
  gap: 14px;
  padding: 0 0 16px 0;
  position: relative;
}
.dm-timeline li:last-child { padding-bottom: 0; }
.dm-tl-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid var(--border);
  background: var(--surface);
  flex-shrink: 0;
  margin-top: 2px;
  position: relative;
  z-index: 1;
  transition: all var(--t);
}
.dm-timeline li.active .dm-tl-dot {
  border-color: var(--gold);
  background: var(--gold);
}
.dm-timeline li div { font-size: .81rem; color: var(--text-m); line-height: 1.5; }
.dm-timeline li div strong { display: block; font-size: .83rem; color: var(--text); }

/* ════════════════════════════════════════════════════════
   POTVRZOVACÍ STRÁNKA (dm/potvrzeni.php)
════════════════════════════════════════════════════════ */
.confirm-wrap {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
  padding: 24px 0 48px;
}
.confirm-icon-wrap { position: relative; display: inline-block; margin-bottom: 24px; }
.confirm-icon {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2D6A4F, #38A169);
  color: #fff;
  font-size: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 32px rgba(45, 106, 79, .35);
  animation: popIn .5s cubic-bezier(.175, .885, .32, 1.275) both;
}
@keyframes popIn {
  from { transform: scale(.3); opacity: 0; }
  to   { transform: scale(1);  opacity: 1; }
}
.confirm-confetti { position: absolute; inset: -24px; pointer-events: none; }
.confetti-dot {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  top: 0;
  animation: confettiFall 1.2s ease-out forwards;
  opacity: 0;
}
@keyframes confettiFall {
  0%   { transform: translateY(0) scale(0); opacity: 1; }
  100% { transform: translateY(60px) scale(1); opacity: 0; }
}
.confirm-title {
  font-family: var(--font-serif);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  color: var(--primary);
  margin: 0 0 10px;
  font-weight: 700;
}
.confirm-subtitle { font-size: 1rem; color: var(--text-m); margin: 0 0 28px; line-height: 1.6; }
.confirm-id-box {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: var(--bg);
  border: 2px solid var(--gold);
  border-radius: 12px;
  padding: 14px 36px;
  margin-bottom: 32px;
}
.confirm-id-label {
  font-size: .73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--text-s);
  margin-bottom: 4px;
}
.confirm-id-value {
  font-size: 2rem;
  font-weight: 800;
  color: var(--primary);
  letter-spacing: .06em;
}
.confirm-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 32px;
  text-align: left;
}
@media (max-width: 767px) { .confirm-info-grid { grid-template-columns: 1fr; } }
.confirm-info-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 18px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.confirm-info-item .bi { font-size: 22px; color: var(--primary); flex-shrink: 0; margin-top: 2px; }
.confirm-info-item strong { display: block; font-size: .88rem; margin-bottom: 4px; }
.confirm-info-item p { font-size: .8rem; color: var(--text-m); margin: 0; line-height: 1.5; }

/* Details shrnutí */
.confirm-details {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0;
  margin-bottom: 28px;
  text-align: left;
  overflow: hidden;
}
.confirm-details summary {
  padding: 14px 20px;
  font-weight: 700;
  font-size: .88rem;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--primary);
  border-bottom: 1px solid var(--border);
}
.confirm-details summary::before { content: '▶'; font-size: .7rem; transition: transform var(--t); }
.confirm-details[open] summary::before { transform: rotate(90deg); }
.confirm-details-grid { padding: 12px 0; }
.cd-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  padding: 7px 20px;
  gap: 12px;
  font-size: .83rem;
  border-bottom: 1px solid var(--border-l);
}
.cd-row:last-child { border-bottom: none; }
.cd-row span { color: var(--text-m); }
.cd-row strong { color: var(--text); }
@media (max-width: 575px) {
  .cd-row { grid-template-columns: 1fr; gap: 2px; }
}
.confirm-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}
.btn-outline-primary-school {
  display: inline-flex;
  align-items: center;
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  font-size: .88rem;
  padding: 11px 22px;
  border-radius: 8px;
  text-decoration: none;
  transition: background var(--t);
}
.btn-outline-primary-school:hover { background: var(--primary-dark); color: #fff; }
.btn-outline-print {
  display: inline-flex;
  align-items: center;
  background: none;
  border: 1.5px solid var(--border);
  color: var(--text-m);
  font-weight: 700;
  font-size: .88rem;
  padding: 11px 22px;
  border-radius: 8px;
  cursor: pointer;
  transition: all var(--t);
}
.btn-outline-print:hover { border-color: var(--primary); color: var(--primary); }

/* ════════════════════════════════════════════════════════
   ADMIN: DM PŘIHLÁŠKY
════════════════════════════════════════════════════════ */
.dm-stat-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.dm-stat-card {
  flex: 1;
  min-width: 100px;
  background: var(--surface, #fff);
  border: 1.5px solid var(--border, #E0D9D0);
  border-radius: 10px;
  padding: 14px 16px;
  text-align: center;
  text-decoration: none;
  color: inherit;
  transition: all var(--t, .2s);
  cursor: pointer;
}
.dm-stat-card:hover { border-color: var(--primary, #8B1A2F); transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.dm-stat-card.active { border-color: var(--primary, #8B1A2F); border-width: 2px; background: rgba(139,26,47,.04); }
.dm-stat-icon { font-size: 22px; color: var(--primary, #8B1A2F); display: block; margin-bottom: 6px; }
.dm-stat-count { font-size: 1.5rem; font-weight: 800; color: var(--primary, #8B1A2F); line-height: 1; margin-bottom: 4px; }
.dm-stat-lbl { font-size: .72rem; font-weight: 600; color: var(--text-m, #6B6560); }
.dm-stat-card--total { border-color: var(--navy, #1A3A5C); }
.dm-stat-card--total .dm-stat-icon,
.dm-stat-card--total .dm-stat-count { color: var(--navy, #1A3A5C); }
.dm-stat-card--total.active { background: rgba(26,58,92,.04); border-color: var(--navy, #1A3A5C); }

/* Tabulka řádky */
.dm-row { transition: background var(--t, .2s); }
.dm-row--new       td:first-child { border-left: 3px solid var(--primary, #8B1A2F); }
.dm-row--confirmed td:first-child { border-left: 3px solid #2D6A4F; }
.dm-row--waiting   td:first-child { border-left: 3px solid #B8861F; }
.dm-row--cancelled td:first-child { border-left: 3px solid #9A9590; }
.dm-name strong { font-size: .9rem; }
.dm-class-badge { display: inline-block; background: rgba(139,26,47,.1); color: var(--primary,#8B1A2F); font-size: .7rem; font-weight: 700; padding: 1px 8px; border-radius: 10px; margin-left: 6px; }
.dm-health-badge { display: inline-flex; align-items: center; gap: 4px; background: #FEF2F2; color: #991B1B; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; margin-top: 4px; cursor: help; }

/* Detail layout */
.admin-detail-layout { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
@media (max-width: 991px) { .admin-detail-layout { grid-template-columns: 1fr; } }
.detail-grid { display: flex; flex-direction: column; gap: 0; }
.detail-grid--compact .detail-row { padding: 6px 0; }
.detail-row { display: grid; grid-template-columns: 160px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--border-l, #EDE8E2); font-size: .85rem; }
.detail-row:last-child { border-bottom: none; }
.detail-label { color: var(--text-m, #6B6560); }
.detail-val { font-weight: 500; }
.detail-info-block { border-left: 3px solid var(--border,#E0D9D0); padding: 10px 14px; margin-bottom: 12px; border-radius: 0 6px 6px 0; }
.detail-info-block--health { border-left-color: #991B1B; background: #FEF2F2; }
.detail-info-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-m,#6B6560); margin-bottom: 6px; display: flex; align-items: center; }
.detail-info-text { font-size: .85rem; line-height: 1.6; color: var(--text,#1C1C1C); }
.dm-zz-info { padding: 14px; background: var(--bg,#F0EDE8); border-radius: 8px; }
.dm-zz-title { font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--navy,#1A3A5C); margin-bottom: 10px; }

/* Admin card danger */
.admin-card--action .admin-card-header { background: rgba(139,26,47,.07); }
.admin-card--danger { border-color: #FCA5A5; }
.admin-card--danger .admin-card-header { background: #FEF2F2; color: #991B1B; }

/* ═══════════════════════════════════════════════════════════════
   NOTICES – Rychlá oznámení vedení (homepage widget)          v10
   ═══════════════════════════════════════════════════════════════ */
.notices-section { padding: 0; background: transparent; }
.notices-section .container { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; padding-bottom: 12px; }

.notice-bar {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 20px; border-radius: 8px;
  font-size: .88rem; border-left: 4px solid transparent;
}
.notice-bar-icon { font-size: 1.1rem; flex-shrink: 0; }
.notice-bar-body { flex: 1; line-height: 1.5; }
.notice-bar-sep  { opacity: .6; margin: 0 4px; }
.notice-bar-btn  { flex-shrink: 0; white-space: nowrap; }

.notice-info    { background: #EFF6FF; color: #1E40AF; border-color: #3B82F6; }
.notice-info    .notice-bar-icon { color: #2563EB; }
.notice-info    .notice-bar-btn  { border-color: #3B82F6; color: #1D4ED8; }
.notice-info    .notice-bar-btn:hover { background: #3B82F6; color: #fff; }

.notice-warning { background: #FFFBEB; color: #92400E; border-color: #F59E0B; }
.notice-warning .notice-bar-icon { color: #D97706; }
.notice-warning .notice-bar-btn  { border-color: #F59E0B; color: #B45309; }

.notice-success { background: #ECFDF5; color: #065F46; border-color: #10B981; }
.notice-success .notice-bar-icon { color: #059669; }
.notice-success .notice-bar-btn  { border-color: #10B981; color: #047857; }

.notice-danger  { background: #FEF2F2; color: #991B1B; border-color: #EF4444; }
.notice-danger  .notice-bar-icon { color: #DC2626; }
.notice-danger  .notice-bar-btn  { border-color: #EF4444; color: #B91C1C; }

/* ═══════════════════════════════════════════════════════════════
   EVENTS – Nadcházející akce (homepage + list)               v10
   ═══════════════════════════════════════════════════════════════ */
.events-section { /* inherits section-pad */ }

.events-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 22px;
}

.event-card {
  background: var(--surface, #fff);
  border: 1px solid var(--border-l, #EDE8E2);
  border-radius: var(--radius, 12px);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}
.event-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  transform: translateY(-2px);
}

.event-card-img {
  height: 180px; overflow: hidden;
}
.event-card-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .4s;
}
.event-card:hover .event-card-img img { transform: scale(1.04); }

.event-card-img--ph {
  background: linear-gradient(135deg, var(--primary,#8B1A2F) 0%, #A62040 100%);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.4); font-size: 3rem;
}

.event-card-body {
  padding: 18px 20px 20px;
  display: flex; flex-direction: column; flex: 1;
}

.event-card-date {
  font-size: .78rem; font-weight: 600; color: var(--primary,#8B1A2F);
  margin-bottom: 8px; display: flex; align-items: center; flex-wrap: wrap; gap: 0 4px;
}
.event-card-loc { font-weight: 400; color: var(--text-m, #6B6560); }

.event-card-title {
  font-family: var(--ff-display, 'Playfair Display', serif);
  font-size: 1.05rem; line-height: 1.3; margin-bottom: 8px;
}
.event-card-title a { color: var(--text, #1C1C1C); text-decoration: none; }
.event-card-title a:hover { color: var(--primary, #8B1A2F); }

.event-card-desc {
  font-size: .84rem; color: var(--text-m, #6B6560);
  line-height: 1.55; flex: 1; margin-bottom: 14px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

.event-card-footer {
  display: flex; align-items: center; gap: 10px;
  border-top: 1px solid var(--border-l, #EDE8E2); padding-top: 12px;
}
.event-price      { font-size: .82rem; font-weight: 700; color: var(--text, #1C1C1C); }
.event-price-free { font-size: .82rem; font-weight: 700; color: #059669; }

/* ─── Frontend stránka Akce ─── */
.events-page-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
}

/* ─── Detail akce ─── */
.event-detail-meta {
  display: flex; flex-wrap: wrap; gap: 16px;
  padding: 20px 24px; background: var(--surface-2,#F7F4F0);
  border-radius: 10px; margin-bottom: 28px; font-size: .9rem;
}
.event-detail-meta-item {
  display: flex; align-items: center; gap: 8px;
  color: var(--text-m, #6B6560);
}
.event-detail-meta-item strong { color: var(--text, #1C1C1C); }

/* ─── Registrační formulář ─── */
.event-reg-form {
  background: var(--surface-2, #F7F4F0);
  border-radius: 12px; padding: 28px 32px;
  border: 1px solid var(--border-l, #EDE8E2);
}
.event-reg-form .form-label { font-weight: 500; font-size: .88rem; }
.event-reg-section-title {
  font-size: .75rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .1em; color: var(--primary,#8B1A2F);
  margin: 20px 0 12px; padding-top: 16px;
  border-top: 1px solid var(--border-l,#EDE8E2);
}
.event-reg-section-title:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }

/* ─── Kapacita badge ─── */
.event-capacity-bar {
  height: 6px; background: var(--border-l,#EDE8E2);
  border-radius: 3px; overflow: hidden; margin-top: 4px;
}
.event-capacity-fill {
  height: 100%; border-radius: 3px;
  background: var(--gold, #C4962A);
  transition: width .4s;
}
.event-capacity-fill--full { background: var(--primary, #8B1A2F); }

/* ══════════════════════════════════════════════════
   PŘEPÍNAČ JAZYKA
══════════════════════════════════════════════════ */
.lang-switcher {
  display: flex;
  align-items: center;
  gap: 4px;
}

.lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-decoration: none;
  color: var(--text-muted);
  background: transparent;
  border: 1.5px solid transparent;
  transition: all .15s;
  line-height: 1;
}

.lang-btn:hover {
  color: var(--primary);
  background: rgba(139, 26, 47, .06);
  border-color: rgba(139, 26, 47, .2);
  text-decoration: none;
}

.lang-btn--active {
  color: var(--primary);
  background: rgba(139, 26, 47, .08);
  border-color: rgba(139, 26, 47, .35);
  cursor: default;
  pointer-events: none;
}

.lang-code {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
}

/* Mobilní – zobrazit vodorovně v collapsed menu */
@media (max-width: 991.98px) {
  .lang-switcher {
    padding: .5rem 1rem;
    border-top: 1px solid var(--bg);
    justify-content: flex-start;
  }
  .lang-btn { padding: 6px 12px; font-size: .8rem; }
  .lang-code { font-size: .75rem; }
}

/* ══════════════════════════════════════════════════
   ADMIN: STATUS NAPLÁNOVÁNO
══════════════════════════════════════════════════ */
.admin-status--scheduled {
  background: #fff3cd;
  color: #856404;
  border: 1px solid #ffecb5;
}

