
:root {
  --bg: #0f1012;
  --bg-soft: #17191d;
  --card: rgba(255,255,255,0.05);
  --stroke: rgba(255,255,255,0.1);
  --text: #f4f1ea;
  --muted: #c6c0b5;
  --accent: #b9482f;
  --accent-2: #d8b56a;
  --shadow: 0 16px 50px rgba(0,0,0,0.28);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Inter', Arial, sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, #0c0d0f 0%, #111317 100%);
  line-height: 1.65;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
.container {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(14px);
  background: rgba(10, 10, 10, 0.8);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 84px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}
.brand-logo {
  width: 56px;
  height: 56px;
  object-fit: contain;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  padding: 4px;
}
.brand strong {
  display: block;
  font-size: 1rem;
}
.brand span {
  display: block;
  font-size: 0.82rem;
  color: var(--muted);
}
.site-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 18px;
}
.site-nav a {
  text-decoration: none;
  color: #f7f0e0;
  font-weight: 500;
}
.site-nav a:hover { color: var(--accent-2); }
.nav-toggle {
  display: none;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-direction: column;
}
.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 999px;
  transition: transform .25s ease, opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero {
  position: relative;
  min-height: 78svh;
  display: grid;
  align-items: center;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(9,10,12,0.84) 0%, rgba(9,10,12,0.65) 40%, rgba(9,10,12,0.35) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.55) 100%),
    url('images/HERO.jpg') center/cover no-repeat;
  transform: scale(1.03);
}
.hero-content {
  position: relative;
  z-index: 1;
  max-width: 740px;
  padding: 84px 0;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.82rem;
  color: var(--accent-2);
  font-weight: 700;
  margin: 0 0 16px;
}
.hero h1 {
  font-size: clamp(3.2rem, 7vw, 6rem);
  line-height: 0.98;
  margin: 0 0 16px;
  text-shadow: 0 10px 28px rgba(0,0,0,0.28);
}
.hero-kicker {
  margin-bottom: 14px;
}
.hero-subtitle {
  font-size: clamp(1.02rem, 1.9vw, 1.34rem);
  color: #efe5d2;
  max-width: 760px;
  margin: 0 0 16px;
  font-weight: 600;
}
.hero-text {
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  color: #f0e9da;
  max-width: 640px;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 10px 24px rgba(185,72,47,.25);
}
.btn-secondary {
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.04);
  color: #fff;
}
.btn.disabled {
  opacity: .65;
  pointer-events: none;
}
.section { padding: 88px 0; }
.section-dark { background: var(--bg-soft); }
.section-heading {
  margin-bottom: 30px;
  text-align: center;
}
.section-heading.left { text-align: left; }
.section-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3rem);
}
.card {
  background: var(--card);
  border: 1px solid var(--stroke);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.news-card {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  padding: 8px;
  display: flex;
  align-items: flex-end;
  background: #06080b;
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 16px 50px rgba(0,0,0,0.28);
  isolation: isolate;
}
.news-card::after {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 20px;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.news-card::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.46) 0%, rgba(0,0,0,0.72) 42%, rgba(0,0,0,0.995) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.1) 100%);
  z-index: 0;
}
.news-card.featured { grid-column: span 1; }
.news-card h3, .event-card h3, .history-box h3 { margin-top: 14px; font-size: 1.35rem; }
.tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(216,181,106,.16);
  color: #f0cf8f;
  font-size: 0.8rem;
  font-weight: 700;
}
.two-col {
  display: grid;
  grid-template-columns: 1.7fr .9fr;
  gap: 28px;
  align-items: start;
}
.history-box { padding: 28px; }
.facts {
  list-style: none;
  padding: 0;
  margin: 0;
}
.facts li {
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.facts li:last-child { border-bottom: 0; }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.gallery-grid img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.08);
  transition: transform .25s ease, border-color .25s ease;
}
.gallery-grid img:hover {
  transform: translateY(-4px);
  border-color: rgba(216,181,106,0.45);
}
.event-card {
  padding: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.partner-card {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
  background: rgba(255,255,255,0.035);
  transition: transform .22s ease, border-color .22s ease, background .22s ease;
  text-decoration: none;
  text-align: center;
}
.partner-card:hover {
  transform: translateY(-4px);
  border-color: rgba(216,181,106,0.35);
  background: rgba(255,255,255,0.06);
}
.partner-card img {
  max-height: 74px;
  width: auto;
  object-fit: contain;
  mix-blend-mode: screen;
}
.contact-section { padding-bottom: 60px; }
.contact-card {
  padding: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.contact-list p { margin: 8px 0; font-size: 1.05rem; }
.contact-list a { text-decoration: none; color: #fff; }
.site-footer {
  padding: 24px 0 34px;
  border-top: 1px solid rgba(255,255,255,0.08);
  background: #0b0c0e;
}
.footer-wrap {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--muted);
  font-size: 0.95rem;
}
@media (max-width: 1024px) {
  .news-grid, .partners-grid, .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .two-col, .contact-card, .event-card { grid-template-columns: 1fr; display: grid; }
}

.partner-note {
  display: block;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 220px;
}

@media (max-width: 760px) {
  body.menu-open { overflow: hidden; }
  .nav-wrap {
    min-height: auto;
    padding: 14px 0;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .brand { width: calc(100% - 72px); }
  .brand span { display: none; }
  .nav-toggle { display: inline-flex; margin-left: auto; }
  .site-nav {
    display: none;
    width: 100%;
    justify-content: flex-start;
    gap: 0;
    margin-top: 14px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(14,15,18,0.96);
    border-radius: 18px;
  }
  .site-nav.is-open { display: flex; flex-direction: column; }
  .site-nav a {
    width: 100%;
    padding: 12px 10px;
    border-radius: 12px;
  }
  .site-nav a:hover { background: rgba(255,255,255,0.06); }
  .hero { min-height: 70svh; }
  .hero h1 { font-size: clamp(2.7rem, 12vw, 4rem); }
  .hero-subtitle { font-size: 1rem; }
  .scroll-top { right: 14px; bottom: 16px; width: 50px; height: 50px; }
  .section { padding: 70px 0; }
  .news-grid, .partners-grid, .gallery-grid { grid-template-columns: 1fr; }
  .footer-wrap, .contact-card { flex-direction: column; align-items: flex-start; }
}


.page-hero.compact-hero {
  padding-top: 110px;
  padding-bottom: 48px;
}
.page-title {
  margin: 0 0 14px;
  font-size: clamp(2.2rem, 4.6vw, 4rem);
}
.page-intro {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.08rem;
}
.calendar-shell {
  padding: 26px;
}
.calendar-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}
.calendar-label {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 0.92rem;
}
#calendar-title {
  margin: 0;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
}
.calendar-nav {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,0.05);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}
.calendar-weekdays {
  margin-bottom: 10px;
}
.calendar-weekdays div {
  text-align: center;
  color: var(--muted);
  font-weight: 700;
  padding: 8px 4px;
}
.calendar-day {
  min-height: 118px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  color: #fff;
  text-align: left;
  padding: 12px;
  position: relative;
}
.calendar-day.has-event {
  background: linear-gradient(180deg, rgba(185,72,47,0.22) 0%, rgba(255,255,255,0.05) 100%);
  border-color: rgba(216,181,106,0.36);
  cursor: pointer;
}
.calendar-day.is-empty {
  visibility: hidden;
}
.calendar-day.no-event {
  opacity: 0.68;
}
.calendar-day-number {
  display: inline-block;
  font-size: 1rem;
  font-weight: 800;
  margin-bottom: 12px;
}
.calendar-event-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--accent-2);
  display: block;
  margin-bottom: 10px;
}
.calendar-event-title {
  display: block;
  font-size: 0.88rem;
  line-height: 1.35;
  color: #f7efe0;
}
.events-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}
.event-list-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0;
}
.event-list-card.is-active {
  border-color: rgba(216,181,106,0.45);
}
.event-list-image {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}
.event-list-copy {
  padding: 24px;
}
.event-meta {
  color: var(--muted);
  margin: 10px 0;
}
.event-detail-btn {
  margin-top: 16px;
  cursor: pointer;
}
.event-detail {
  padding: 30px;
}
.event-detail-grid {
  display: grid;
  grid-template-columns: 1.2fr .9fr;
  gap: 28px;
  align-items: center;
}
.event-detail-image {
  width: 100%;
  border-radius: 22px;
  min-height: 320px;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,0.08);
}
.muted-text {
  color: var(--muted);
}
.event-card-preview {
  align-items: center;
}
@media (max-width: 1024px) {
  .events-list { grid-template-columns: 1fr; }
  .event-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .calendar-shell { padding: 18px; }
  .calendar-grid { gap: 8px; }
  .calendar-day {
    min-height: 84px;
    padding: 10px 8px;
  }
  .calendar-event-title {
    font-size: 0.72rem;
    line-height: 1.2;
  }
  .event-list-card { grid-template-columns: 1fr; }
  .event-list-image { min-height: 200px; }
}

.news-card-image,
.news-list-image,
.news-detail-image {
  width: 100%;
  object-fit: cover;
}
.news-card-image {
  display:none;
}

.scroll-top {
  position: fixed;
  right: 18px;
  bottom: 22px;
  width: 58px;
  height: 58px;
  border-radius: 999px;
  border: 1px solid rgba(216,181,106,0.22);
  background: linear-gradient(180deg, rgba(185,72,47,0.96) 0%, rgba(145,47,28,0.96) 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 18px 35px rgba(0,0,0,0.28);
  z-index: 1200;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease, background .2s ease, border-color .2s ease;
}
.scroll-top:hover {
  background: linear-gradient(180deg, rgba(12,14,18,0.96) 0%, rgba(18,20,24,0.92) 100%);
  border-color: rgba(216,181,106,0.45);
}
.scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.scroll-top svg {
  width: 24px;
  height: 24px;
}
.scroll-top::after {
  content: "START";
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  color: rgba(216,181,106,0.82);
  font-weight: 800;
}

.news-card-body {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 22px;
}
.news-date {
  color: var(--muted);
  font-size: 0.92rem;
  margin: 8px 0 10px;
}
.text-link {
  display: inline-flex;
  margin-top: 8px;
  color: var(--accent-2);
  text-decoration: none;
  font-weight: 700;
}
.text-link:hover { text-decoration: underline; }
.section-actions {
  margin-top: 22px;
  display: flex;
  justify-content: center;
}
.skeleton-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
}
.news-page-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 24px;
  align-items: start;
}
.news-list-grid {
  display: grid;
  gap: 20px;
}
.news-list-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0;
  transition: border-color .22s ease, transform .22s ease, background .22s ease;
}
.news-list-card:hover {
  border-color: rgba(216,181,106,0.26);
}
.news-list-card.is-active {
  border-color: rgba(216,181,106,0.45);
}
.news-list-image {
  min-height: 220px;
  height: 100%;
}
.news-list-copy {
  padding: 24px;
}
.news-list-grid {
  display: grid;
  gap: 20px;
}
.news-list-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0;
  transition: border-color .22s ease, transform .22s ease, background .22s ease;
}
.news-list-card:hover {
  border-color: rgba(216,181,106,0.26);
}
.news-list-card.is-active {
  border-color: rgba(216,181,106,0.45);
  background: rgba(255,255,255,0.045);
}
.news-list-image {
  min-height: 220px;
  height: 100%;
}
.news-list-copy {
  padding: 24px;
}
.news-list-extra {
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease, margin-top .3s ease, opacity .25s ease;
  opacity: 0;
}
.news-list-card.is-active .news-list-extra {
  max-height: 520px;
  margin-top: 16px;
  opacity: 1;
}
.news-toggle-btn {
  margin-top: 14px;
}
.news-toggle-btn[aria-expanded="true"] {
  background: rgba(216,181,106,0.12);
  border-color: rgba(216,181,106,0.32);
}
@media (max-width: 1024px) {
  .news-page-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .news-list-card { grid-template-columns: 1fr; }
}

.brand-logo {
  width: 56px;
  height: 56px;
  object-fit: contain;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  padding: 4px;
}
.brand strong {
  display: block;
  font-size: 1rem;
}
.brand span {
  display: block;
  font-size: 0.82rem;
  color: var(--muted);
}
.site-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 18px;
}
.site-nav a {
  text-decoration: none;
  color: #f7f0e0;
  font-weight: 500;
}
.site-nav a:hover { color: var(--accent-2); }
.nav-toggle {
  display: none;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-direction: column;
}
.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  border-radius: 999px;
  transition: transform .25s ease, opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero {
  position: relative;
  min-height: 78svh;
  display: grid;
  align-items: center;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(9,10,12,0.84) 0%, rgba(9,10,12,0.65) 40%, rgba(9,10,12,0.35) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.55) 100%),
    url('images/HERO.jpg') center/cover no-repeat;
  transform: scale(1.03);
}
.hero-content {
  position: relative;
  z-index: 1;
  max-width: 740px;
  padding: 84px 0;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.82rem;
  color: var(--accent-2);
  font-weight: 700;
  margin: 0 0 16px;
}
.hero h1 {
  font-size: clamp(3.2rem, 7vw, 6rem);
  line-height: 0.98;
  margin: 0 0 16px;
  text-shadow: 0 10px 28px rgba(0,0,0,0.28);
}
.hero-kicker {
  margin-bottom: 14px;
}
.hero-subtitle {
  font-size: clamp(1.02rem, 1.9vw, 1.34rem);
  color: #efe5d2;
  max-width: 760px;
  margin: 0 0 16px;
  font-weight: 600;
}
.hero-text {
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  color: #f0e9da;
  max-width: 640px;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 10px 24px rgba(185,72,47,.25);
}
.btn-secondary {
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.04);
  color: #fff;
}
.btn.disabled {
  opacity: .65;
  pointer-events: none;
}
.section { padding: 88px 0; }
.section-dark { background: var(--bg-soft); }
.section-heading {
  margin-bottom: 30px;
  text-align: center;
}
.section-heading.left { text-align: left; }
.section-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3rem);
}
.card {
  background: var(--card);
  border: 1px solid var(--stroke);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.news-card {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  padding: 8px;
  display: flex;
  align-items: flex-end;
  background: #06080b;
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 16px 50px rgba(0,0,0,0.28);
  isolation: isolate;
}
.news-card::after {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 20px;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.news-card::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.46) 0%, rgba(0,0,0,0.72) 42%, rgba(0,0,0,0.995) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.1) 100%);
  z-index: 0;
}
.news-card.featured { grid-column: span 1; }
.news-card h3, .event-card h3, .history-box h3 { margin-top: 14px; font-size: 1.35rem; }
.tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(216,181,106,.16);
  color: #f0cf8f;
  font-size: 0.8rem;
  font-weight: 700;
}
.two-col {
  display: grid;
  grid-template-columns: 1.7fr .9fr;
  gap: 28px;
  align-items: start;
}
.history-box { padding: 28px; }
.facts {
  list-style: none;
  padding: 0;
  margin: 0;
}
.facts li {
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.facts li:last-child { border-bottom: 0; }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.gallery-grid img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.08);
  transition: transform .25s ease, border-color .25s ease;
}
.gallery-grid img:hover {
  transform: translateY(-4px);
  border-color: rgba(216,181,106,0.45);
}
.event-card {
  padding: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.partner-card {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
  padding: 24px;
  background: rgba(255,255,255,0.035);
  transition: transform .22s ease, border-color .22s ease, background .22s ease;
  text-decoration: none;
  text-align: center;
}
.partner-card:hover {
  transform: translateY(-4px);
  border-color: rgba(216,181,106,0.35);
  background: rgba(255,255,255,0.06);
}
.partner-card img {
  max-height: 74px;
  width: auto;
  object-fit: contain;
  mix-blend-mode: screen;
}
.contact-section { padding-bottom: 60px; }
.contact-card {
  padding: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.contact-list p { margin: 8px 0; font-size: 1.05rem; }
.contact-list a { text-decoration: none; color: #fff; }
.site-footer {
  padding: 24px 0 34px;
  border-top: 1px solid rgba(255,255,255,0.08);
  background: #0b0c0e;
}
.footer-wrap {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--muted);
  font-size: 0.95rem;
}
@media (max-width: 1024px) {
  .news-grid, .partners-grid, .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .two-col, .contact-card, .event-card { grid-template-columns: 1fr; display: grid; }
}

.partner-note {
  display: block;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 220px;
}

@media (max-width: 760px) {
  body.menu-open { overflow: hidden; }
  .nav-wrap {
    min-height: auto;
    padding: 14px 0;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .brand { width: calc(100% - 72px); }
  .brand span { display: none; }
  .nav-toggle { display: inline-flex; margin-left: auto; }
  .site-nav {
    display: none;
    width: 100%;
    justify-content: flex-start;
    gap: 0;
    margin-top: 14px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(14,15,18,0.96);
    border-radius: 18px;
  }
  .site-nav.is-open { display: flex; flex-direction: column; }
  .site-nav a {
    width: 100%;
    padding: 12px 10px;
    border-radius: 12px;
  }
  .site-nav a:hover { background: rgba(255,255,255,0.06); }
  .hero { min-height: 70svh; }
  .hero h1 { font-size: clamp(2.7rem, 12vw, 4rem); }
  .hero-subtitle { font-size: 1rem; }
  .scroll-top { right: 14px; bottom: 16px; width: 50px; height: 50px; }
  .section { padding: 70px 0; }
  .news-grid, .partners-grid, .gallery-grid { grid-template-columns: 1fr; }
  .footer-wrap, .contact-card { flex-direction: column; align-items: flex-start; }
}


.page-hero.compact-hero {
  padding-top: 110px;
  padding-bottom: 48px;
}
.page-title {
  margin: 0 0 14px;
  font-size: clamp(2.2rem, 4.6vw, 4rem);
}
.page-intro {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.08rem;
}
.calendar-shell {
  padding: 26px;
}
.calendar-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}
.calendar-label {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 0.92rem;
}
#calendar-title {
  margin: 0;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
}
.calendar-nav {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,0.05);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}
.calendar-weekdays {
  margin-bottom: 10px;
}
.calendar-weekdays div {
  text-align: center;
  color: var(--muted);
  font-weight: 700;
  padding: 8px 4px;
}
.calendar-day {
  min-height: 118px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  color: #fff;
  text-align: left;
  padding: 12px;
  position: relative;
}
.calendar-day.has-event {
  background: linear-gradient(180deg, rgba(185,72,47,0.22) 0%, rgba(255,255,255,0.05) 100%);
  border-color: rgba(216,181,106,0.36);
  cursor: pointer;
}
.calendar-day.is-empty {
  visibility: hidden;
}
.calendar-day.no-event {
  opacity: 0.68;
}
.calendar-day-number {
  display: inline-block;
  font-size: 1rem;
  font-weight: 800;
  margin-bottom: 12px;
}
.calendar-event-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--accent-2);
  display: block;
  margin-bottom: 10px;
}
.calendar-event-title {
  display: block;
  font-size: 0.88rem;
  line-height: 1.35;
  color: #f7efe0;
}
.events-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}
.event-list-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0;
}
.event-list-card.is-active {
  border-color: rgba(216,181,106,0.45);
}
.event-list-image {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}
.event-list-copy {
  padding: 24px;
}
.event-meta {
  color: var(--muted);
  margin: 10px 0;
}
.event-detail-btn {
  margin-top: 16px;
  cursor: pointer;
}
.event-detail {
  padding: 30px;
}
.event-detail-grid {
  display: grid;
  grid-template-columns: 1.2fr .9fr;
  gap: 28px;
  align-items: center;
}
.event-detail-image {
  width: 100%;
  border-radius: 22px;
  min-height: 320px;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,0.08);
}
.muted-text {
  color: var(--muted);
}
.event-card-preview {
  align-items: center;
}
@media (max-width: 1024px) {
  .events-list { grid-template-columns: 1fr; }
  .event-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .calendar-shell { padding: 18px; }
  .calendar-grid { gap: 8px; }
  .calendar-day {
    min-height: 84px;
    padding: 10px 8px;
  }
  .calendar-event-title {
    font-size: 0.72rem;
    line-height: 1.2;
  }
  .event-list-card { grid-template-columns: 1fr; }
  .event-list-image { min-height: 200px; }
}

.news-card-image,
.news-list-image,
.news-detail-image {
  width: 100%;
  object-fit: cover;
}
.news-card-image {
  display:none;
}

.scroll-top {
  position: fixed;
  right: 18px;
  bottom: 22px;
  width: 58px;
  height: 58px;
  border-radius: 999px;
  border: 1px solid rgba(216,181,106,0.22);
  background: linear-gradient(180deg, rgba(185,72,47,0.96) 0%, rgba(145,47,28,0.96) 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 18px 35px rgba(0,0,0,0.28);
  z-index: 1200;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease, background .2s ease, border-color .2s ease;
}
.scroll-top:hover {
  background: linear-gradient(180deg, rgba(12,14,18,0.96) 0%, rgba(18,20,24,0.92) 100%);
  border-color: rgba(216,181,106,0.45);
}
.scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.scroll-top svg {
  width: 24px;
  height: 24px;
}
.scroll-top::after {
  content: "START";
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  color: rgba(216,181,106,0.82);
  font-weight: 800;
}

.news-card-body {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 22px;
}
.news-date {
  color: var(--muted);
  font-size: 0.92rem;
  margin: 8px 0 10px;
}
.text-link {
  display: inline-flex;
  margin-top: 8px;
  color: var(--accent-2);
  text-decoration: none;
  font-weight: 700;
}
.text-link:hover { text-decoration: underline; }
.section-actions {
  margin-top: 22px;
  display: flex;
  justify-content: center;
}
.skeleton-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
}
.news-page-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 24px;
  align-items: start;
}
.news-list-grid {
  display: grid;
  gap: 20px;
}
.news-list-card {
  overflow: hidden;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0;
  transition: border-color .22s ease, transform .22s ease, background .22s ease;
}
.news-list-card:hover {
  border-color: rgba(216,181,106,0.26);
}
.news-list-card.is-active {
  border-color: rgba(216,181,106,0.45);
}
.news-list-image {
  min-height: 220px;
  height: 100%;
}
.news-list-copy {
  padding: 24px;
}
.news-detail {
  padding: 0;
  overflow: hidden;
  position: sticky;
  top: 100px;
}
.news-detail-image {
  aspect-ratio: 16 / 10;
}
.news-detail-copy {
  padding: 26px;
}
@media (max-width: 1024px) {
  .news-page-layout { grid-template-columns: 1fr; }
  .news-detail { position: static; }
}
@media (max-width: 760px) {
  .news-list-card { grid-template-columns: 1fr; }
}


.brand-logo {
  background: transparent;
  padding: 0;
}

.album-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.album-card {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  align-items: flex-end;
  background: #06080b;
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: 0 16px 50px rgba(0,0,0,0.28);
  isolation: isolate;
  padding: 8px;
}
.album-card::after {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 20px;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.album-card::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(0,0,0,0.24) 0%, rgba(0,0,0,0.56) 48%, rgba(0,0,0,0.94) 100%);
  z-index: 0;
}
.album-card-copy {
  position: relative;
  z-index: 1;
  padding: 22px;
  width: 100%;
}
.album-card-copy h3 {
  margin: 6px 0 8px;
  font-size: 1.35rem;
}
.album-meta {
  color: var(--muted);
  font-size: 0.95rem;
}

.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: #f7f0e0;
  text-decoration: none;
  font-weight: 700;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.filter-chip:hover,
.filter-chip.is-active {
  background: rgba(216,181,106,0.14);
  border-color: rgba(216,181,106,0.34);
  transform: translateY(-1px);
}

.gallery-page-grid {
  display: grid;
  gap: 28px;
}
.album-section-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.gallery-shot {
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  cursor: pointer;
  aspect-ratio: 4 / 3;
  background: rgba(255,255,255,0.03);
  padding: 0;
}
.gallery-shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
.gallery-shot:hover img { transform: scale(1.04); }

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(3,4,6,.88);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2000;
  padding: 24px;
}
.lightbox.is-open { display: flex; }
.lightbox-inner {
  position: relative;
  max-width: min(1100px, 100%);
  max-height: 100%;
}
.lightbox-image {
  max-width: 100%;
  max-height: 80vh;
  border-radius: 18px;
  box-shadow: 0 16px 50px rgba(0,0,0,.35);
}
.lightbox-close, .lightbox-prev, .lightbox-next {
  position: absolute;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(0,0,0,.42);
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  cursor: pointer;
  font-size: 1.6rem;
}
.lightbox-close { top: -58px; right: 0; }
.lightbox-prev { left: -60px; top: calc(50% - 24px); }
.lightbox-next { right: -60px; top: calc(50% - 24px); }
.lightbox-caption {
  margin-top: 12px;
  color: var(--muted);
  text-align: center;
}

@media (max-width: 1024px) {
  .album-grid, .album-section-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .album-grid, .album-section-grid { grid-template-columns: 1fr; }
  .news-card { min-height: 300px; }
  .lightbox-prev, .lightbox-next { top: auto; bottom: -62px; }
  .lightbox-prev { left: calc(50% - 58px); }
  .lightbox-next { right: calc(50% - 58px); }
}

.news-year-nav {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 24px;
}
.news-page-layout.with-nav {
  grid-template-columns: 1fr;
}
.news-year-nav {
  justify-content: center;
}
.event-detail-shell {
  margin-bottom: 28px;
}
@media (max-width:760px){
  .scroll-top::after { display:none; }
}

.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }


/* EVO6 homepage card polish */
.news-card,
.album-card {
  background: #0a0c10;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 28px;
  padding: 12px;
  box-shadow: 0 16px 50px rgba(0,0,0,0.28);
}
.news-card::after,
.album-card::after {
  inset: 12px;
  border-radius: 18px;
  background-image: var(--card-image);
  filter: brightness(0.76) saturate(0.94);
}
.news-card::before,
.album-card::before {
  inset: 12px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(0,0,0,0.24) 0%, rgba(0,0,0,0.62) 46%, rgba(0,0,0,0.97) 100%);
}
.news-card-body,
.album-card-copy {
  padding: 26px;
}
.news-card h3,
.album-card-copy h3 {
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}
.news-card p,
.album-card-copy p,
.news-date {
  text-shadow: 0 2px 10px rgba(0,0,0,0.42);
}
.news-card .tag,
.album-card .tag {
  background: rgba(216,181,106,0.18);
  backdrop-filter: blur(4px);
}
.news-card .text-link {
  text-shadow: none;
}
@media (max-width: 760px) {
  .news-card,
  .album-card { padding: 10px; }
  .news-card::after,
  .album-card::after,
  .news-card::before,
  .album-card::before { inset: 10px; }
  .news-card-body,
  .album-card-copy { padding: 22px; }
}


/* EVO7 */
.news-card::after { filter: brightness(0.52) saturate(0.88); }
.news-card::before { background: linear-gradient(180deg, rgba(0,0,0,0.38) 0%, rgba(0,0,0,0.74) 42%, rgba(0,0,0,0.985) 100%); }
.news-card { border-color: rgba(8,10,14,0.98); background:#080a0e; }
.news-card-body { padding: 28px; }
.news-card p { color:#f4efe4; }
.news-date { color:#f0e6cf; }
.page-title-compact { margin:0; font-size: clamp(2.2rem, 5vw, 3.6rem); }
.album-tags { display:flex; flex-wrap:wrap; gap:8px; margin: 8px 0 12px; }
.mini-chip { display:inline-flex; align-items:center; min-height:32px; padding:0 12px; border-radius:999px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); color:var(--muted); font-size:0.85rem; font-weight:700; }
.gallery-page-grid .album-section { scroll-margin-top: 110px; }
@media (max-width:760px){ .news-card-body{padding:22px;} }


/* 3.6A admin galerie + víc sazí na novinky */
.news-card::after { filter: brightness(0.40) saturate(0.82); }
.news-card::before { background: linear-gradient(180deg, rgba(0,0,0,0.48) 0%, rgba(0,0,0,0.78) 38%, rgba(0,0,0,0.995) 100%); }
.news-card .tag { background: rgba(216,181,106,0.14); }

.admin-layout { display:grid; grid-template-columns: 320px minmax(0,1fr); gap: 28px; align-items:start; }
.admin-help, .admin-panel { padding: 28px; }
.admin-help h2, .admin-panel h2 { margin-top: 0; }
.admin-note { color: var(--muted); font-size: 0.95rem; }
.admin-bullets { margin: 0; padding-left: 18px; display:grid; gap: 10px; }
.admin-bullets.ordered { padding-left: 22px; }
.admin-main { display:grid; gap: 18px; }
.admin-status { border-radius: 18px; padding: 14px 18px; border:1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.04); font-weight: 600; }
.admin-status.info { color: #f6f2e7; }
.admin-status.success { color: #dff5df; border-color: rgba(117, 211, 117, 0.28); background: rgba(48, 102, 53, 0.22); }
.admin-status.warn { color: #ffe9a8; border-color: rgba(216,181,106,0.28); background: rgba(120, 91, 28, 0.18); }
.admin-status.error { color: #ffd3d3; border-color: rgba(228, 87, 87, 0.28); background: rgba(94, 27, 27, 0.2); }
.rally-form-shell > .admin-status { margin-bottom: 1rem; }
.admin-panel-head { display:flex; justify-content:space-between; gap: 16px; align-items:center; margin-bottom: 22px; }
.admin-form { display:grid; gap: 18px; }
.admin-form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.admin-form label { display:grid; gap: 8px; font-weight: 600; }
.admin-form input, .admin-form textarea, .admin-form select {
  width: 100%; border-radius: 14px; border:1px solid rgba(255,255,255,0.10); background:#0d1016; color:#fff; padding: 14px 16px; font: inherit;
}
.admin-form textarea { resize: vertical; min-height: 110px; }
.admin-form .span-2 { grid-column: 1 / -1; }
.admin-actions { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.admin-progress { margin:0; color: var(--muted); }

@media (max-width: 920px) {
  .admin-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .admin-form-grid { grid-template-columns: 1fr; }
  .admin-panel-head { align-items:flex-start; flex-direction:column; }
}


/* 3.6A-LITE galerie ze složek + návodovka */
.album-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin: 0 0 30px;
}
.album-overview-card {
  position: relative;
  min-height: 180px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.06);
  background: #0a0c10;
  text-decoration: none;
  display: flex;
  align-items: flex-end;
  padding: 10px;
  isolation: isolate;
  box-shadow: 0 14px 34px rgba(0,0,0,0.24);
}
.album-overview-card::before,
.album-overview-card::after {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 18px;
}
.album-overview-card::before {
  background-image: var(--card-image);
  background-size: cover;
  background-position: center;
  filter: brightness(0.72) saturate(0.92);
  z-index: 0;
}
.album-overview-card::after {
  background: linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.56) 44%, rgba(0,0,0,0.94) 100%);
  z-index: 0;
}
.album-overview-copy {
  position: relative;
  z-index: 1;
  padding: 20px;
  width: 100%;
}
.album-overview-copy h3 {
  margin: 8px 0 6px;
  color: #fff;
  font-size: 1.2rem;
}
.album-overview-copy p {
  margin: 0;
  color: var(--muted);
}
.album-count {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}
.guide-only-layout { grid-template-columns: 320px minmax(0, 1fr); }

.admin-help code, .admin-panel code {
  display:inline-block;
  padding: 4px 8px;
  border-radius: 10px;
  background: #05070a;
  border: 1px solid rgba(255,255,255,0.08);
  color: #f6f2e7;
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 0.92em;
  line-height: 1.35;
}
.admin-code {
  margin: 14px 0;
  padding: 16px 18px;
  border-radius: 18px;
  background: #0b0f14;
  border: 1px solid rgba(255,255,255,0.08);
  color: #f6f1e4;
  overflow-x: auto;
  white-space: pre-wrap;
}
.admin-size-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
}
.admin-size-grid article {
  padding: 18px;
  border-radius: 18px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
}
.admin-size-grid h3 {
  margin-top: 0;
  margin-bottom: 8px;
}
@media (max-width: 1024px) {
  .album-overview-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .album-overview-grid { grid-template-columns: 1fr; }
  .admin-size-grid { grid-template-columns: 1fr; }
}


/* 3.6B gallery speed & mobile polish */
.gallery-layout-section { padding-top: 22px; }
.gallery-chip-bar {
  position: sticky;
  top: 82px;
  z-index: 35;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  margin: 0 0 22px;
  padding: 10px 0 12px;
  background: linear-gradient(180deg, rgba(6,8,12,0.96) 0%, rgba(6,8,12,0.92) 78%, rgba(6,8,12,0) 100%);
  backdrop-filter: blur(10px);
}
.filter-chips-wrap {
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
  cursor: grab;
}
.filter-chips-wrap::-webkit-scrollbar { display: none; }
.filter-chips-wrap.is-dragging { cursor: grabbing; }
.filter-chips {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 10px;
  min-width: max-content;
  margin: 0;
  padding: 0 2px;
}
.chip-scroll-btn {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(7,10,15,0.88);
  color: #f6f0e1;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  box-shadow: 0 10px 24px rgba(0,0,0,0.24);
}
.chip-scroll-btn:hover { background: rgba(17,22,30,0.95); }
.chip-scroll-btn[hidden] { display: none; }
.chip-scroll-btn:disabled { opacity: .35; cursor: default; }
.album-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0 0 26px;
}
.album-overview-card { min-height: 158px; }
.album-overview-copy { padding: 20px; }
.album-overview-copy h3 { font-size: clamp(1.05rem, 2vw, 1.6rem); }
.gallery-page-grid { display: grid; gap: 26px; }
.album-section-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.album-count { margin: 8px 0 0; }
.gallery-page-grid .section-heading .page-intro { display: none; }
.gallery-shot img { loading: lazy; }
@media (max-width: 1200px) {
  .album-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .album-section-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .gallery-chip-bar { top: 72px; }
  .album-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .album-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .gallery-chip-bar {
    position: sticky;
    top: 70px;
    grid-template-columns: 38px 1fr 38px;
    gap: 8px;
    margin-bottom: 18px;
  }
  .chip-scroll-btn { width: 38px; height: 38px; border-radius: 12px; }
  .album-overview-grid { grid-template-columns: 1fr; gap: 14px; }
  .album-overview-card { min-height: 132px; }
  .album-overview-copy { padding: 16px; }
  .album-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}


/* 3.7.1 admin novinky + firebase auth */
.login-shell { max-width: 560px; margin: 0 auto; }
.login-card { padding: 32px; display: grid; gap: 18px; }
.login-card p { margin: 0; }
.admin-auth-row { display:flex; justify-content:space-between; gap:16px; align-items:center; flex-wrap:wrap; }
.admin-tabs { display:flex; gap:12px; flex-wrap:wrap; margin-bottom: 18px; }
.admin-tab { appearance:none; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.04); color:#fff; border-radius:14px; padding:12px 18px; font-weight:700; cursor:pointer; }
.admin-tab.is-active { background:linear-gradient(180deg, rgba(216,181,106,0.18), rgba(216,181,106,0.08)); border-color: rgba(216,181,106,0.34); color: var(--accent-2); }
.admin-pane[hidden] { display:none !important; }

.admin-dropzone {
  margin-top: 10px;
  border: 1px dashed rgba(255,255,255,.22);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,.03);
  color: var(--text);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.admin-dropzone small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
}
.admin-dropzone.is-dragover,
.admin-dropzone:hover,
.admin-dropzone:focus-visible {
  border-color: rgba(217, 111, 67, .75);
  background: rgba(217, 111, 67, .08);
  outline: none;
}
.admin-hidden { display:none !important; }
.admin-tool-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.admin-list { display:grid; gap:14px; }
.admin-news-item { padding:18px 20px; border-radius:20px; border:1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03); display:grid; gap:12px; }
.admin-news-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.admin-news-head h3 { margin:0; font-size:1.15rem; }
.admin-news-meta { color: var(--muted); font-size:0.95rem; }
.admin-news-actions { display:flex; gap:10px; flex-wrap:wrap; }
.admin-mini-btn { appearance:none; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.05); color:#fff; border-radius:12px; padding:10px 14px; font-weight:700; cursor:pointer; }
.admin-mini-btn.warn { color:#ffe9a8; }
.admin-mini-btn.danger { color:#ffd3d3; }
.admin-mini-btn:hover, .admin-tab:hover { background: rgba(255,255,255,0.1); }
.admin-form small { color: var(--muted); display:block; margin-top:6px; }
.news-link-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top: 10px; }
.news-gallery-link { display:inline-flex; align-items:center; gap:8px; color: var(--accent-2); font-weight:700; text-decoration:none; }
.news-gallery-link:hover { color:#f5d99f; }
.admin-empty { color: var(--muted); }
@media (max-width: 760px) {
  .login-card { padding: 24px; }
  .admin-news-head { flex-direction:column; }
}


/* 3.7.2 anti-lama admin + roky novinek */
.admin-inline-tools { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
#news-gallery-select { min-height: 52px; }
.news-year-nav .filter-chip { cursor:pointer; }

.news-year-nav .filter-chip { cursor:pointer; }


/* 3.7.2 novinky + galerie kosmetika */
.news-page-section {
  padding-top: 34px;
}

.album-overview-card {
  border-color: rgba(255,255,255,0.1);
  background: #11161d;
  box-shadow: 0 18px 38px rgba(0,0,0,0.28);
}
.album-overview-card::before {
  filter: brightness(1.02) saturate(1.04) contrast(1.02);
}
.album-overview-card::after {
  background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0.22) 38%, rgba(0,0,0,0.56) 100%);
}
.album-overview-copy h3 {
  color: #fff;
  text-shadow: 0 2px 10px rgba(0,0,0,0.34);
}
.album-overview-copy p {
  color: rgba(244,241,234,0.94);
  text-shadow: 0 2px 8px rgba(0,0,0,0.28);
}
.album-overview-card .tag {
  background: rgba(216,181,106,0.3);
  color: #ffe6a7;
  box-shadow: 0 8px 18px rgba(0,0,0,0.18);
}

.lightbox-inner {
  touch-action: pan-y;
  user-select: none;
}
.lightbox-image {
  cursor: grab;
}
.lightbox-image.is-dragging {
  cursor: grabbing;
}


/* 3.8-LITE akce admin + pinned logika */
.admin-check-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.admin-check-row input[type="checkbox"] { width:20px; height:20px; accent-color:#d6b36a; }
.admin-event-item.is-pinned { border-color: rgba(214,179,106,0.5); box-shadow: 0 0 0 1px rgba(214,179,106,0.14) inset; }
.admin-event-item.is-past { opacity: 0.9; }
.calendar-day.is-past-event { opacity: 0.72; }
.calendar-day.is-past-event .calendar-event-dot { background: rgba(255,255,255,0.55); }
.calendar-day.is-pinned-event { box-shadow: inset 0 0 0 1px rgba(214,179,106,0.45), 0 12px 22px rgba(214,179,106,0.12); }
.tag-muted { background: rgba(255,255,255,0.08); color: rgba(244,241,234,0.82); }
.event-list-card.is-pinned { border-color: rgba(214,179,106,0.42); box-shadow: 0 18px 42px rgba(0,0,0,0.28), 0 0 0 1px rgba(214,179,106,0.18) inset; }


/* 3.8.1-lite home CTA + admin login ergonomie */
.homepage-event-btn {
  text-align: center;
  min-width: 190px;
  align-self: center;
}
.password-field-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.admin-password-toggle {
  appearance: none;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.05);
  color: #fff;
  border-radius: 14px;
  min-height: 52px;
  padding: 0 16px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.admin-password-toggle:hover {
  background: rgba(255,255,255,0.1);
}
@media (max-width: 760px) {
  .password-field-wrap {
    grid-template-columns: 1fr;
  }
  .admin-password-toggle {
    width: 100%;
  }
}

.calendar-day.is-range-event { position: relative; }
.calendar-day.is-range-event::after {
  content: '';
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 8px;
  height: 3px;
  border-radius: 999px;
  background: rgba(214,179,106,0.5);
}
.calendar-day.is-range-middle::after { opacity: 0.9; }
.calendar-day.is-range-start::after,
.calendar-day.is-range-end::after { opacity: 0.75; }
.calendar-day.is-past-event.is-range-event::after { background: rgba(255,255,255,0.35); }


/* 3.9.0 – přihláška na hlavní akci */
.event-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(8, 15, 28, 0.72);
  backdrop-filter: blur(4px);
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}
.event-popup {
  max-width: 640px;
  width: 100%;
  position: relative;
  padding: 1.5rem;
}
.event-popup-close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 2rem;
  cursor: pointer;
}
.event-landing-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .8fr);
  align-items: start;
}
.event-hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1rem;
}
.countdown-card {
  padding: 1.5rem;
}
.countdown-wrap {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
  margin: 1rem 0;
}
.countdown-wrap > div { min-width: 0; }
.countdown-wrap div {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: .95rem .35rem;
  text-align: center;
}
.countdown-wrap strong {
  display: block;
  font-size: clamp(1.35rem, 3vw, 2.3rem);
  line-height: 1;
}
.countdown-wrap span {
  display: block;
  margin-top: .28rem;
  color: rgba(255,255,255,.76);
  font-size: .92rem;
}
.event-facts-list {
  margin-top: 1rem;
}
.rally-form-shell {
  padding: 1.25rem;
}
.rally-form {
  display: grid;
  gap: 1rem;
}
.rally-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.rally-section-title {
  margin: .5rem 0 0;
}
.full-span {
  grid-column: 1 / -1;
}
.photo-preview-box {
  min-height: 220px;
  border: 1px dashed rgba(148,163,184,.35);
  border-radius: 18px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: rgba(148,163,184,.05);
}
.registration-photo-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fee-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
}
.fee-card-value {
  text-align: right;
}
.fee-card-value strong {
  display: block;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
}
.consent-check {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
}
.registration-result {
  padding-top: 1rem;
}
.public-entry-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.public-entry-card {
  overflow: hidden;
}
.public-entry-image, .public-entry-fallback {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.public-entry-fallback {
  display: grid;
  place-items: center;
  background: rgba(148,163,184,.08);
  color: var(--text-muted);
}
.public-entry-copy {
  padding: 1rem 1rem 1.2rem;
}
.registrations-table-wrap {
  overflow-x: auto;
}
.registrations-table {
  width: 100%;
  border-collapse: collapse;
}
.registrations-table th,
.registrations-table td {
  padding: .8rem;
  border-bottom: 1px solid rgba(148,163,184,.18);
  vertical-align: top;
  text-align: left;
}
.registration-select {
  width: 100%;
  min-width: 140px;
}
.switch-inline {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.event-detail-cta {
  margin: 1rem 0 0;
}
@media (max-width: 900px) {
  .event-landing-grid,
  .rally-grid-2 {
    grid-template-columns: 1fr;
  }
  .fee-card {
    flex-direction: column;
    align-items: flex-start;
  }
  .fee-card-value {
    text-align: left;
  }
}


/* === Veteran registration refresh === */
.rally-form-shell {
  padding: clamp(1rem, 2vw, 1.5rem);
}
.rally-form-topline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.rally-mini-card {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  padding: 1rem 1.1rem;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.rally-mini-card strong {
  display: block;
  font-size: 1.08rem;
  margin-bottom: .2rem;
}
.rally-mini-card small,
.rally-mini-label {
  color: var(--text-muted);
}
.rally-mini-label {
  display: block;
  margin-bottom: .45rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .75rem;
}
.rally-mini-card-accent {
  border-color: rgba(216,181,106,.28);
  background: linear-gradient(180deg, rgba(216,181,106,.14), rgba(255,255,255,.035));
}
.rally-section-card {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 26px;
  padding: 1.1rem;
  background: rgba(255,255,255,.03);
}
.rally-section-card-soft {
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
}
.rally-section-heading {
  margin-bottom: 1rem;
}
.rally-section-heading .muted-text {
  max-width: 62ch;
}
.rally-section-title {
  margin: .2rem 0 .35rem;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
}
.rally-grid-comfort {
  gap: 1rem;
}
.rally-form .admin-form-grid label {
  display: grid;
  gap: .45rem;
  align-content: start;
}
.rally-form .admin-form-grid label > span,
.rally-form .admin-form-grid label:not(.consent-check) {
  font-weight: 600;
  color: #f5f3ec;
}
.rally-form input,
.rally-form select,
.rally-form textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(8, 12, 20, .72);
  color: #fff;
  border-radius: 16px;
  padding: .95rem 1rem;
  min-height: 52px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.rally-form textarea {
  min-height: 128px;
  resize: vertical;
}
.rally-form input::placeholder,
.rally-form textarea::placeholder {
  color: rgba(255,255,255,.42);
}
.rally-form input:focus,
.rally-form select:focus,
.rally-form textarea:focus {
  border-color: rgba(216,181,106,.52);
  box-shadow: 0 0 0 4px rgba(216,181,106,.12);
}
.rally-form input:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.rally-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .9fr);
  gap: 1rem;
  align-items: start;
  margin-bottom: 1rem;
}
.rally-summary-points {
  display: grid;
  gap: .8rem;
}
.rally-summary-points div {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: .9rem 1rem;
  background: rgba(255,255,255,.035);
}
.rally-summary-points strong {
  display: block;
  margin-bottom: .18rem;
}
.rally-summary-points span {
  color: var(--text-muted);
  font-size: .95rem;
}
.rally-actions {
  margin-top: 1rem;
}
.fee-card {
  display: none;
}
.consent-check {
  margin-top: .25rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  background: rgba(255,255,255,.03);
}
.consent-check input {
  width: 20px;
  min-width: 20px;
  min-height: 20px;
  margin-top: .15rem;
  padding: 0;
}
.public-entry-card {
  display: grid;
  grid-template-columns: 132px 1fr;
  align-items: stretch;
}
.public-entry-fallback {
  min-height: 100%;
  aspect-ratio: auto;
  font-weight: 700;
  letter-spacing: .04em;
  background: linear-gradient(180deg, rgba(216,181,106,.16), rgba(255,255,255,.05));
}
.public-entry-copy p:last-child {
  margin-bottom: 0;
}
@media (max-width: 900px) {
  .rally-form-topline,
  .rally-summary-grid,
  .public-entry-card {
    grid-template-columns: 1fr;
  }
  .public-entry-fallback {
    min-height: 96px;
  }
}

.rally-photo-meta {
  color: var(--text-muted);
  font-size: .95rem;
  align-self: center;
}
.rally-photo-preview-wrap {
  border: 1px dashed rgba(216,181,106,.28);
  border-radius: 22px;
  background: rgba(255,255,255,.025);
  min-height: 240px;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.rally-photo-preview {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  display: block;
}
.rally-photo-preview-empty {
  color: var(--text-muted);
  padding: 1.2rem;
  text-align: center;
}
.public-entry-image {
  background: #0b1018;
}
.registration-thumb {
  width: 72px;
  height: 54px;
  object-fit: cover;
  border-radius: 12px;
  margin-top: .45rem;
  border: 1px solid rgba(255,255,255,.12);
  display: block;
}


.btn-danger-soft { border-color: rgba(239, 68, 68, 0.35); color: #fecaca; background: rgba(127, 29, 29, 0.18); }
.btn-danger-soft:hover { border-color: rgba(239, 68, 68, 0.55); background: rgba(127, 29, 29, 0.3); }
.registration-thumb { display:block; margin-top:10px; width:76px; height:76px; object-fit:cover; border-radius:16px; border:1px solid rgba(255,255,255,0.08); }

.admin-gallery-photo-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap:14px; }
.admin-gallery-photo-card { margin:0; padding:12px; border-radius:16px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); display:grid; gap:10px; }
.admin-gallery-photo-card img { width:100%; aspect-ratio: 4 / 3; object-fit:cover; border-radius:12px; }
.admin-gallery-item .admin-news-actions { align-items:center; }


.calendar-title-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: center;
}
.calendar-today-btn {
  appearance: none;
  border: 1px solid rgba(214,179,106,0.28);
  background: rgba(214,179,106,0.12);
  color: #f6e8c9;
  border-radius: 14px;
  min-height: 44px;
  padding: 0 16px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.calendar-today-btn:hover {
  background: rgba(214,179,106,0.18);
}
.calendar-day.is-today {
  box-shadow: inset 0 0 0 1px rgba(214,179,106,0.42);
}
.calendar-day.is-today .calendar-day-number {
  color: #f6e8c9;
}
@media (max-width: 760px) {
  .calendar-title-wrap {
    flex-direction: column;
    gap: 10px;
    align-items: center;
  }
  .calendar-today-btn {
    min-height: 40px;
    width: 100%;
  }
}

.album-desc {
  margin-top: 8px;
  font-size: .95rem;
  line-height: 1.45;
  color: rgba(255,255,255,.78);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.album-desc--section {
  max-width: 880px;
  margin-top: 10px;
  -webkit-line-clamp: unset;
}


/* Admin access roles */
.admin-access-box{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}
.admin-access-summary{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}
.admin-access-chip{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.admin-access-chip.is-empty{opacity:.8}
.admin-access-hint{margin:0}
.admin-tab.admin-hidden{display:none !important}

.vc-loader-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(6, 8, 12, 0.82);
  backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
  z-index: 9999;
}
.vc-loader-overlay.is-visible { opacity: 1; visibility: visible; pointer-events: auto; }
.vc-loader-box {
  display: grid;
  gap: 16px;
  justify-items: center;
  padding: 24px 28px;
  border-radius: 22px;
  border: 1px solid rgba(216,181,106,.24);
  background: rgba(12,15,20,.92);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.vc-loader-emblem {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  position: relative;
  animation: vc-wheel-spin 1.6s linear infinite;
  box-shadow: 0 0 0 1px rgba(216,181,106,.22), 0 0 26px rgba(216,181,106,.16);
}
.vc-loader-emblem::before {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 3px solid rgba(216,181,106,.22);
  border-top-color: rgba(216,181,106,.95);
  border-right-color: rgba(255,255,255,.7);
}
.vc-loader-emblem::after {
  content: '';
  position: absolute;
  inset: -18px;
  border-radius: 50%;
  border: 1px dashed rgba(216,181,106,.24);
  opacity: .9;
}
.vc-loader-emblem img {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  display: block;
  box-shadow: 0 10px 26px rgba(0,0,0,.35);
}
.vc-loader-text { color: #f4efe3; font-weight: 700; text-align: center; }
@keyframes vc-wheel-spin { to { transform: rotate(360deg); } }

.calendar-day.event-color-gold .calendar-event-dot { background: #d8b56a; }
.calendar-day.event-color-green .calendar-event-dot { background: #6ebf7b; }
.calendar-day.event-color-blue .calendar-event-dot { background: #76a8ff; }
.calendar-day.event-color-red .calendar-event-dot { background: #f07d7d; }
.calendar-event-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  margin-left: 8px;
}


/* admin 5.2 hotfix */
.admin-authenticated .compact-hero { display:none; }
.admin-authenticated .site-header .nav-wrap { min-height: 62px; }
.admin-authenticated .brand-logo { width:44px; height:44px; }
.admin-tabs { position: sticky; top: 72px; z-index: 20; background: rgba(19,20,24,.92); backdrop-filter: blur(12px); padding: 8px 0 2px; }
#admin-pane-registrations .admin-layout { display:block; }
#admin-pane-registrations .admin-help { margin-bottom: 18px; }
#admin-pane-registrations .admin-main { max-width:none; }
.registrations-stats { display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap:10px; margin-top:14px; }
.reg-stat { background: rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:12px 14px; }
.reg-stat strong { display:block; font-size:1.15rem; line-height:1.2; }
.reg-stat span { color: var(--muted); font-size:.9rem; }
.registrations-table-wrap { overflow:auto; }
.registrations-table { min-width: 1320px; width:100%; }
.registration-thumb { width: 92px; max-width: 92px; border-radius: 12px; margin-top: 8px; border:1px solid rgba(255,255,255,.1); }
.registration-photo-link { display:inline-flex; margin-top:8px; font-size:.88rem; color: var(--accent-2); }
@media (max-width: 760px){
  .admin-tabs { top: 62px; }
}


.admin-authenticated .site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  backdrop-filter: blur(14px);
}
.admin-authenticated .admin-shell .admin-tabs-row {
  position: sticky;
  top: 72px;
  z-index: 55;
  background: rgba(8, 12, 20, 0.94);
  border-bottom: 1px solid rgba(214,179,106,0.16);
  padding-top: 10px;
  padding-bottom: 10px;
}
.admin-pane#admin-pane-registrations .admin-layout {
  grid-template-columns: 1fr;
}
.admin-pane#admin-pane-registrations .admin-help {
  max-width: none;
}
.admin-pane#admin-pane-registrations .admin-main,
.admin-pane#admin-pane-registrations .admin-panel,
.admin-pane#admin-pane-registrations .admin-table-wrap {
  width: 100%;
  max-width: none;
}
.admin-check-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.admin-check-row input[type="checkbox"] {
  order: 0;
  flex: 0 0 auto;
  margin: 0;
}
.admin-check-row span {
  order: 1;
}
input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.6);
  opacity: 1;
  cursor: pointer;
}
input[type="date"] { color-scheme: dark; }
.calendar-day.event-color-gray .calendar-event-dot { background: rgba(214,214,214,0.82); }
.calendar-day.event-color-gray { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1); }

.event-related-list { margin-top: 18px; display: grid; gap: 10px; }
.event-related-list h4 { margin: 0; font-size: 1rem; }
.event-related-btn { justify-self: start; }


/* admin 5.2.2 follow-up */
body.admin-authenticated {
  padding-top: 134px;
}
body.admin-authenticated .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 100;
}
body.admin-authenticated #admin-app-section .admin-tabs-row {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 95;
  margin: 0;
  padding: 10px max(16px, calc((100vw - 1200px) / 2)) 12px;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid rgba(214,179,106,0.16);
  background: rgba(8, 12, 20, 0.96);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.22);
}
body.admin-authenticated #admin-app-section .admin-tabs-row .admin-tab { margin-right: 8px; }
body.admin-authenticated #admin-app-section .admin-panel:first-child { padding-bottom: 84px; }
#admin-pane-registrations .container.admin-layout {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
#admin-pane-registrations .admin-help,
#admin-pane-registrations .admin-main,
#admin-pane-registrations .admin-panel,
#admin-pane-registrations .admin-table-wrap {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}
#admin-pane-registrations .admin-main {
  width: 100%;
}
.admin-auto-color-wrap input[readonly] {
  opacity: 1;
  color: #fff;
  font-weight: 700;
}
.admin-auto-color-wrap small { display:block; margin-top:8px; }
input[type="date"] {
  color-scheme: dark;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 18px 18px;
  padding-right: 44px;
}
input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: .01;
  position: relative;
  z-index: 2;
  cursor: pointer;
}
@media (max-width: 760px){
  body.admin-authenticated { padding-top: 62px; }
  body.admin-authenticated .admin-shell .admin-tabs-row { top: 62px; }
}


/* admin 5.2.6 follow-up */
.admin-form label.admin-check-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.admin-form label.admin-check-row input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  accent-color: #d6b36a;
}
.admin-form label.admin-check-row span,
.admin-form label.admin-check-row small {
  display: inline;
}
.admin-form label.admin-check-row small {
  margin-left: 6px;
  font-weight: 400;
  color: var(--muted);
}
#admin-pane-users .admin-form-grid {
  grid-template-columns: 1fr;
}
#admin-pane-users .admin-form-grid label.admin-check-row {
  justify-content: flex-start;
}
#admin-pane-registrations .card,
#admin-pane-registrations .admin-help,
#admin-pane-registrations .admin-panel,
#admin-pane-registrations .admin-table-wrap {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
#admin-pane-registrations .admin-layout {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(2.2) contrast(1.3);
  opacity: 1;
}
.calendar-event-dots {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-right: 8px;
  vertical-align: middle;
}
.calendar-event-dots .calendar-event-dot {
  position: static;
  margin: 0;
}
.calendar-event-dots .calendar-event-dot.event-color-gold { background: #d8b56a; }
.calendar-event-dots .calendar-event-dot.event-color-green { background: #6ebf7b; }
.calendar-event-dots .calendar-event-dot.event-color-blue { background: #76a8ff; }
.calendar-event-dots .calendar-event-dot.event-color-red { background: #f07d7d; }
.calendar-event-dots .calendar-event-dot.event-color-gray { background: rgba(214,214,214,0.82); }
@media (max-width: 760px) {
  body.admin-authenticated { padding-top: 124px; }
  body.admin-authenticated #admin-app-section .admin-tabs-row {
    top: 62px;
    padding-left: 14px;
    padding-right: 14px;
    overflow-x: auto;
    white-space: nowrap;
  }
}

.vc-toast-stack{position:fixed;right:18px;top:96px;z-index:300;display:grid;gap:10px;max-width:min(420px,calc(100vw - 32px));}
.vc-toast{opacity:0;transform:translateY(-8px);transition:all .22s ease;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px);box-shadow:0 14px 32px rgba(0,0,0,.28);font-weight:700;background:rgba(17,24,39,.94);color:#fff;}
.vc-toast.is-visible{opacity:1;transform:translateY(0);}
.vc-toast.success{border-color:rgba(34,197,94,.35);}
.vc-toast.warn{border-color:rgba(245,158,11,.45);}
.vc-toast.error{border-color:rgba(239,68,68,.45);}
.event-filter-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;}
.event-filter-btn.is-active{background:rgba(214,179,106,.18);border-color:rgba(214,179,106,.55);color:#fff;}

/* === navrat-ke-korenum polish v16a === */
.manual-year-input { margin-top: .65rem; }
.rally-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.checkbox-card span { display: grid; gap: .25rem; }
.checkbox-card small { color: var(--text-muted); }
.rally-total-box {
  display: grid;
  gap: .25rem;
  margin: 1rem 0;
  padding: 1rem 1.15rem;
  border-radius: 22px;
  border: 1px solid rgba(216,181,106,.28);
  background: linear-gradient(180deg, rgba(216,181,106,.12), rgba(255,255,255,.03));
}
.rally-total-label {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .76rem;
  color: var(--text-muted);
}
.rally-total-box strong {
  font-size: clamp(1.55rem, 4vw, 2.35rem);
}
.rally-total-box small { color: #f3e6c1; }
.rally-finish-note {
  margin-top: 1rem;
  padding: 1rem 1.15rem;
  border-radius: 22px;
}
.rally-finish-note h3 { margin: 0 0 .4rem; }
.rally-finish-note p { margin: 0; color: var(--text-muted); }
.rally-live-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .95fr);
  gap: 1.1rem;
  align-items: start;
}
.rally-stats-wrap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.rally-stat-card {
  padding: 1rem 1.05rem;
  display: grid;
  gap: .35rem;
}
.rally-stat-card span,
.rally-stat-card small { color: var(--text-muted); }
.rally-stat-card strong { font-size: 1.7rem; }
.rally-map-card { padding: 1rem 1rem 1.15rem; }
.rally-map-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.rally-map-head h3 { margin: 0 0 .3rem; }
.rally-map-head p { margin: 0; }
.rally-map-caption { max-width: 60ch; }
.rally-cz-map {
  position: relative;
  min-height: 360px;
  border-radius: 26px;
  overflow: hidden;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    radial-gradient(circle at 20% 20%, rgba(216,181,106,.12), transparent 28%),
    linear-gradient(180deg, rgba(8,12,18,.92), rgba(4,7,10,.98));
  background-size: 34px 34px, 34px 34px, auto, auto;
  border: 1px solid rgba(255,255,255,.08);
}
.rally-cz-map-bg {
  position: absolute;
  inset: 0;
  background-image: url("images/cz-outline-gold.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .82;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.24));
}
.rally-cz-map-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1.2rem;
  text-align: center;
  color: var(--text-muted);
}
.rally-map-pin {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 0;
  border-radius: 999px;
  background: #d8b56a;
  box-shadow: 0 0 0 6px rgba(216,181,106,.14), 0 8px 18px rgba(0,0,0,.35);
  transform: translate(-50%, -50%);
  cursor: default;
}
.rally-map-pin span {
  position: absolute;
  left: 50%;
  top: calc(100% + 10px);
  transform: translateX(-50%);
  white-space: nowrap;
  background: rgba(6,8,12,.92);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  padding: .24rem .48rem;
  font-size: .76rem;
  color: #fff;
  opacity: 0;
  pointer-events: none;
}
.rally-map-pin:hover span { opacity: 1; }
.public-entry-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.public-entry-card-overlay {
  position: relative;
  min-height: 330px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.07);
  background: #0a0c10;
  isolation: isolate;
}
.public-entry-card-overlay::before,
.public-entry-card-overlay::after {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 18px;
}
.public-entry-card-overlay::before {
  background-image: var(--entry-image, none);
  background-size: cover;
  background-position: center;
  filter: brightness(0.72) saturate(0.96);
  z-index: 0;
}
.public-entry-card-overlay::after {
  background: linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.42) 42%, rgba(0,0,0,.82) 100%);
  z-index: 0;
}
.public-entry-card-overlay .overlay-copy {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 1;
  padding: 1.4rem;
}
.public-entry-card-overlay .overlay-copy h3,
.public-entry-card-overlay .overlay-copy p,
.public-entry-card-overlay .overlay-copy .tag { color: #fff; }
.public-entry-card-overlay .overlay-copy .tag { background: rgba(216,181,106,.16); }
.public-entry-year {
  margin: .35rem 0 .55rem;
  font-size: 1.05rem;
  font-weight: 700;
}
.public-entry-card-overlay .public-entry-fallback {
  position: absolute;
  inset: 10px;
  min-height: auto;
  border-radius: 18px;
  aspect-ratio: auto;
}
@media (max-width: 980px) {
  .rally-live-grid,
  .rally-stats-wrap,
  .rally-grid-3 {
    grid-template-columns: 1fr;
  }
  .rally-map-head { flex-direction: column; }
}
@media (max-width: 640px) {
  .countdown-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.registration-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(4, 8, 14, .72);
  backdrop-filter: blur(8px);
  display: grid;
  place-items: center;
  padding: 1rem;
  z-index: 2500;
}
.registration-modal-overlay.admin-hidden { display: none; }
.registration-modal {
  width: min(1100px, 100%);
  max-height: min(92vh, 980px);
  overflow: auto;
  padding: 1.25rem;
}
.registration-modal-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
  margin-bottom: 1rem;
}
.registration-modal-head h3 { margin: 0; }
.registration-modal-close { min-width: 48px; padding: 0 16px; }
.registration-modal-grid { display: grid; gap: 1rem; }
.registration-modal-section {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  padding: 1rem;
  background: rgba(255,255,255,.03);
}
.registration-modal-section h4 { margin: 0 0 .8rem; }
.registration-modal-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.registration-modal-form-grid label { display: grid; gap: .45rem; }
.registration-modal-form-grid label > span { font-weight: 600; }
.registration-modal-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; margin-top: 1rem; }
.registration-modal textarea, .registration-modal input, .registration-modal select { width: 100%; }
.registration-modal-check {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: .7rem;
  min-height: 54px;
  padding: .65rem .9rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
}
.registration-modal-check input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #d6b36a;
}
.registration-modal-check span {
  display: block;
  line-height: 1.35;
}
@media (max-width: 760px) {
  .registration-modal-form-grid { grid-template-columns: 1fr; }
  .registration-modal-head { flex-direction: column; }
}


.btn-loading {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
}
.btn-loading-logo {
  width: 22px;
  height: 22px;
  object-fit: contain;
  animation: vcSpin 1s linear infinite;
  filter: drop-shadow(0 0 8px rgba(216,181,106,.28));
}
@keyframes vcSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.public-entry-card-clickable {
  cursor: zoom-in;
}
.public-entry-card-overlay::before {
  filter: brightness(0.9) saturate(1.02);
}
.public-entry-card-overlay::after {
  background: linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.30) 42%, rgba(0,0,0,.74) 100%);
}
.public-entry-zoom-hint {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  padding: .38rem .72rem;
  border-radius: 999px;
  background: rgba(6,8,12,.78);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.88);
  font-size: .78rem;
  font-weight: 700;
  backdrop-filter: blur(6px);
}
.vehicle-lightbox-inner {
  max-width: min(1300px, 100%);
}
.vehicle-lightbox-inner .lightbox-image {
  max-height: 84vh;
  width: auto;
}


/* 3.9.x admin final polish + easter egg */
.registration-row.is-paid td { background: rgba(34, 197, 94, 0.06); }
.registration-row.is-free td { background: rgba(214,179,106,0.08); }
.payment-pill, .payment-toggle-btn { display:inline-flex; align-items:center; justify-content:center; min-width: 150px; }
.payment-pill { padding:.7rem .9rem; border-radius:14px; border:1px solid rgba(255,255,255,.1); font-weight:700; }
.payment-pill.is-paid, .payment-toggle-btn.is-paid { border-color: rgba(74, 222, 128, 0.4); background: rgba(21, 128, 61, 0.22); color: #dcfce7; }
.payment-pill.is-free, .payment-toggle-btn.is-free { border-color: rgba(214,179,106,.35); background: rgba(214,179,106,.12); color: #ffe8b5; }
.payment-pill.is-waiting, .payment-toggle-btn.is-waiting { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.05); color: #fff; }
.registration-photo-link { display:inline-block; margin-top:.45rem; }
.registration-modal-note { color: var(--muted); grid-template-columns: 1fr; }

.vc-easter-overlay { position: fixed; inset:0; z-index: 1600; background: rgba(0,0,0,.76); display:flex; align-items:center; justify-content:center; padding: 1rem; }
.vc-easter-box { position: relative; max-width: min(92vw, 520px); width: 100%; }
.vc-easter-box img { width:100%; height:auto; display:block; border-radius: 24px; box-shadow: 0 24px 60px rgba(0,0,0,.42); }
.vc-easter-close { position:absolute; top:10px; right:10px; width:42px; height:42px; border-radius:50%; border:0; background: rgba(0,0,0,.56); color:#fff; font-size:28px; cursor:pointer; }
