/* ============================================================
   KPR Theme — Main Stylesheet
   Palette: #809671 #E5E0D8 #B3B792 #D2AB80 #725C3A #E5D2B8
   ============================================================ */

/* ---------- Preloader ---------- */
#kpr-preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--sage);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity .75s ease .1s, visibility .75s ease .1s;
}
#kpr-preloader.kpr-loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
#kpr-preloader.kpr-skip {
  display: none;
}
/* Page content hidden during preloader, fades in as preloader fades out */
.kpr-preloading > *:not(#kpr-preloader) {
  opacity: 0;
}
body > *:not(#kpr-preloader) {
  transition: opacity .65s ease .28s;
}
.preloader-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}
.preloader-tower {
  width: 130px;
  height: auto;
  display: block;
  animation: kpr-draw-tower 1.9s linear forwards;
}
@keyframes kpr-draw-tower {
  from { clip-path: inset(100% 0 0 0); }
  to   { clip-path: inset(0% 0 0 0); }
}
.preloader-label {
  font-family: var(--font-serif);
  color: #fff;
  font-size: .82rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: 0;
  animation: kpr-fade-label .6s ease 1.7s forwards;
}
@keyframes kpr-fade-label {
  to { opacity: .88; }
}

/* ---------- Reset & Base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --green:       #809671;
  --cream:       #E5E0D8;
  --sage:        #B3B792;
  --sand:        #D2AB80;
  --brown:       #725C3A;
  --pale:        #E5D2B8;
  --dark:        #2C2416;
  --white:       #FDFBF8;
  --font-serif:  'Playfair Display', Georgia, serif;
  --font-sans:   'Inter', system-ui, sans-serif;
  --radius:      6px;
  --shadow:      0 2px 16px rgba(44,36,22,.09);
  --shadow-md:   0 4px 28px rgba(44,36,22,.13);
  --transition:  .22s ease;
}

html { scroll-behavior: smooth; font-size: 18px; }

body {
  font-family: var(--font-sans);
  color: var(--dark);
  background: var(--white);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--green); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--brown); }

img { max-width: 100%; height: auto; display: block; }

ul { list-style: none; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-serif);
  color: var(--brown);
  line-height: 1.25;
  font-weight: 700;
}

/* ---------- Container ---------- */
.container { width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 24px; }

/* Suppress wpautop <br> tags inside flex/inline-flex buttons */
a br, button br, .btn br { display: none; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 28px;
  border-radius: var(--radius);
  font-family: var(--font-sans);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: all var(--transition);
  cursor: pointer;
  border: 2px solid transparent;
  white-space: nowrap;
}
.btn-primary {
  background: var(--green);
  color: var(--white);
  border-color: var(--green);
}
.btn-primary:hover {
  background: var(--brown);
  border-color: var(--brown);
  color: var(--white);
}
.btn-outline {
  background: transparent;
  color: var(--brown);
  border-color: var(--brown);
}
.btn-outline:hover {
  background: var(--brown);
  color: var(--white);
}
.btn-lg { padding: 16px 36px; font-size: 1rem; }

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--white);
  border-bottom: 1px solid var(--cream);
  box-shadow: 0 1px 10px rgba(44,36,22,.06);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
  gap: 12px;
}

/* Logo */
.site-branding {
  margin-left: 16px;
}
.logo-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex-shrink: 0;
}
.logo-mark svg { width: 48px; height: 48px; }
.logo-link .custom-logo { width: auto; height: 48px; display: block; object-fit: contain; }
.logo-kpr {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 700;
  color: #809671;
  letter-spacing: .08em;
  line-height: 1;
}
.logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.logo-title {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--brown);
}
.logo-tagline {
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 600;
  color: var(--green);
  letter-spacing: .15em;
  text-transform: uppercase;
}

/* Nav */
.site-nav { flex: 1; min-width: 0; }
.nav-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  flex-wrap: nowrap;
}
.nav-menu > li { position: relative; }
.nav-menu > li > a {
  display: block;
  padding: 6px 8px;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--dark);
  border-radius: var(--radius);
  transition: all var(--transition);
  white-space: nowrap;
}
.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-parent > a {
  color: var(--green);
  background: var(--cream);
}
.nav-menu .arrow {
  font-size: .6rem;
  margin-left: 4px;
  opacity: .6;
  display: inline-block;
  transition: transform var(--transition);
}
.nav-menu li.has-dropdown.dropdown-open .arrow { transform: rotate(180deg); }
.nav-menu > li.has-dropdown > a { cursor: default; }

/* Dropdown */
.dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 220px;
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  z-index: 200;
  padding: 6px 0;
}
.has-dropdown.dropdown-open .dropdown-menu { display: block; }
.dropdown-menu li a {
  display: block;
  padding: 9px 18px;
  font-size: .82rem;
  font-weight: 500;
  color: var(--dark);
  transition: all var(--transition);
}
.dropdown-menu li a:hover {
  background: var(--cream);
  color: var(--green);
  padding-left: 22px;
}

/* Hamburger */
.menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.menu-toggle span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--brown);
  border-radius: 2px;
  transition: all var(--transition);
}

/* ---------- Hero Section ---------- */
.hero {
  background: linear-gradient(135deg, var(--pale) 0%, var(--cream) 60%, var(--white) 100%);
  padding: 80px 0 72px;
  overflow: hidden;
}
.hero-inner {
  display: grid;
  grid-template-columns: 1fr 340px;
  align-items: center;
  gap: 60px;
}
.hero-eyebrow {
  font-size: .82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--green);
  margin-bottom: 16px;
}
.hero-title {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  color: var(--brown);
  line-height: 1.18;
  margin-bottom: 22px;
}
.hero-title em {
  font-style: italic;
  color: var(--green);
}
.hero-desc {
  font-size: 1.05rem;
  color: #5a4a30;
  max-width: 520px;
  margin-bottom: 36px;
  line-height: 1.75;
}
.hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }

.hero-visual { display: flex; align-items: center; justify-content: center; }
.hero-tower-icon { width: 200px; opacity: .85; }
.hero-tower-icon svg { width: 100%; height: auto; }

/* ---------- Section Shared ---------- */
.section-header { text-align: center; margin-bottom: 52px; }
.section-eyebrow {
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--green);
  margin-bottom: 10px;
}
.section-header h2 {
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  color: var(--brown);
}

/* ---------- Towers Section ---------- */
.towers-section { padding: 80px 0; background: var(--white); }
.towers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.tower-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: 10px;
  overflow: hidden;
  transition: all var(--transition);
  text-decoration: none;
  box-shadow: var(--shadow);
}
.tower-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: var(--sage);
}
.tower-card-icon {
  background: linear-gradient(135deg, var(--pale), var(--cream));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
}
.tower-card-icon svg { width: 64px; height: auto; }

.tower-card-img {
  width: 100%;
  aspect-ratio: 3 / 4;
  background-color: var(--pale);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}
.tower-card-body { padding: 24px; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.tower-card-body h3 {
  font-size: 1.2rem;
  color: var(--brown);
  margin-bottom: 0;
}
.tower-meta {
  font-size: .78rem;
  color: var(--green);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.tower-card-body p {
  font-size: .9rem;
  color: #5a4a30;
  line-height: 1.6;
  flex: 1;
}
.tower-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: .82rem;
  color: var(--dark);
  border-top: 1px solid var(--cream);
  padding-top: 10px;
}
.tower-info li strong { color: var(--brown); }
.tower-link {
  font-size: .82rem;
  font-weight: 600;
  color: var(--green);
  display: inline-block;
  margin-top: 4px;
}
.tower-card:hover .tower-link { color: var(--brown); }

/* ---------- KPR Info Section ---------- */
.kpr-info-section {
  padding: 72px 0;
  background: var(--white);
  border-top: 1px solid var(--cream);
}
.kpr-info-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
}
.kpr-info-title {
  font-size: 1.45rem;
  color: var(--brown);
  margin-bottom: 16px;
}
.kpr-info-block p {
  font-size: .97rem;
  color: #3a2e1e;
  line-height: 1.75;
  margin-bottom: 16px;
}
.kpr-goals-list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kpr-goals-list li {
  font-size: .95rem;
  color: #3a2e1e;
  line-height: 1.65;
  padding-left: 20px;
  position: relative;
}
.kpr-goals-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  flex-shrink: 0;
}
.kpr-citation {
  font-size: .85rem;
  color: #8a7a60;
  border-left: 3px solid var(--sage);
  padding: 8px 14px;
  margin-bottom: 20px !important;
  background: var(--pale);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.kpr-download-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .88rem;
  font-weight: 600;
  color: var(--green);
  border: 1.5px solid var(--green);
  border-radius: var(--radius);
  padding: 9px 16px;
  transition: all var(--transition);
}
.kpr-download-link:hover {
  background: var(--green);
  color: var(--white);
}
@media (max-width: 860px) {
  .kpr-info-inner { grid-template-columns: 1fr; gap: 36px; }
}

/* ---------- About Strip ---------- */
.about-strip {
  background: linear-gradient(135deg, var(--cream) 0%, var(--pale) 100%);
  padding: 80px 0;
}
.about-strip-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.about-strip-text h2 { font-size: clamp(1.6rem, 2.5vw, 2.1rem); margin-bottom: 16px; }
.about-strip-text p { color: #5a4a30; margin-bottom: 28px; line-height: 1.75; }
.about-strip-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.stat {
  background: var(--white);
  border-radius: 10px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-shadow: var(--shadow);
}
.stat-number {
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--brown);
  line-height: 1;
  margin-bottom: 6px;
}
.stat-label {
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--green);
}

/* ---------- News Section ---------- */
.news-section { padding: 80px 0; background: var(--white); }
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.news-card {
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: all var(--transition);
  display: flex;
  flex-direction: column;
}
.news-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.news-card-body {
  padding: 28px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.news-date {
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--sage);
}
.news-card-body h3 { font-size: 1.05rem; margin: 0; }
.news-card-body h3 a { color: var(--brown); }
.news-card-body h3 a:hover { color: var(--green); }
.news-card-body p { font-size: .88rem; color: #5a4a30; flex: 1; line-height: 1.65; }
.read-more {
  font-size: .8rem;
  font-weight: 600;
  color: var(--green);
  display: inline-block;
}
.read-more:hover { color: var(--brown); }

/* ---------- Join CTA ---------- */
.join-section {
  background: var(--brown);
  padding: 64px 0;
}
.join-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.join-inner h2 {
  color: var(--pale);
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  margin-bottom: 10px;
}
.join-inner p { color: var(--sand); max-width: 560px; line-height: 1.7; }
.join-section .btn-primary {
  background: var(--sand);
  border-color: var(--sand);
  color: var(--brown);
  flex-shrink: 0;
}
.join-section .btn-primary:hover {
  background: var(--pale);
  border-color: var(--pale);
}

/* ---------- Page Featured Image ---------- */
.page-featured-img-wrap {
  background: var(--pale);
  padding: 32px 0 0;
}
.page-featured-img-wrap .container {
  display: flex;
  justify-content: center;
}
.page-featured-img {
  display: block;
  max-width: 100%;
  max-height: 520px;
  width: auto;
  height: auto;
  border-radius: 8px;
  box-shadow: var(--shadow-md);
}

/* ---------- Page Hero ---------- */
.page-hero {
  background: linear-gradient(135deg, #B3B792 0%, #9ea57e 100%);
  padding: 52px 0 44px;
  border-bottom: 1px solid #9ea57e;
}
.page-title {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  color: #fff;
  margin-bottom: 10px;
}
.breadcrumb {
  font-size: .82rem;
  color: rgba(255,255,255,.8);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.breadcrumb a { color: #fff; }
.breadcrumb span { color: rgba(255,255,255,.6); }
.breadcrumb a:hover { color: var(--brown); }
.breadcrumb span { color: var(--sage); }
.post-meta-header {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 10px;
  font-size: .85rem;
  color: #8a7a60;
}
.post-meta-header .sep { color: var(--sage); }

/* ---------- Page Layout ---------- */
.page-wrap {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 48px;
  padding-top: 52px;
  padding-bottom: 72px;
  align-items: start;
}
.page-content { min-width: 0; }
.page-content.full-width { grid-column: 1 / -1; }

.entry-content {
  font-size: .98rem;
  line-height: 1.8;
  color: #3a2e1e;
}
.entry-content h2 { font-size: 1.55rem; margin: 36px 0 14px; color: var(--brown); }
.entry-content h3 { font-size: 1.2rem; margin: 28px 0 10px; color: var(--brown); }
.entry-content h4 { font-size: 1rem; margin: 20px 0 8px; color: var(--brown); }
.entry-content p { margin-bottom: 18px; }
.entry-content ul, .entry-content ol { margin: 0 0 18px 24px; }
.entry-content li { margin-bottom: 6px; }
.entry-content a { color: var(--green); border-bottom: 1px solid transparent; transition: border-color var(--transition); }
.entry-content a:hover { border-color: var(--green); }
.entry-content strong { color: var(--brown); font-weight: 600; }
.entry-content table { width: 100%; border-collapse: collapse; margin-bottom: 24px; font-size: .9rem; }
.entry-content th { background: var(--cream); color: var(--brown); padding: 10px 14px; text-align: left; font-weight: 600; }
.entry-content td { padding: 9px 14px; border-bottom: 1px solid var(--cream); }
.entry-content tr:hover td { background: #faf7f2; }
.entry-content blockquote {
  border-left: 3px solid var(--sage);
  margin: 24px 0;
  padding: 14px 22px;
  background: var(--pale);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-style: italic;
  color: #5a4a30;
}

/* ---------- Sidebar ---------- */
.page-sidebar { position: sticky; top: 96px; }
.widget {
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: 10px;
  padding: 22px 20px;
  margin-bottom: 24px;
  box-shadow: var(--shadow);
}
.widget-title {
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--brown);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--cream);
}
.widget ul li { padding: 5px 0; border-bottom: 1px solid #f0ebe3; font-size: .88rem; }
.widget ul li:last-child { border: none; }
.widget ul li a { color: var(--dark); }
.widget ul li a:hover { color: var(--green); }

/* ---------- Post Nav ---------- */
.post-nav {
  display: flex;
  justify-content: space-between;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--cream);
  gap: 16px;
  flex-wrap: wrap;
}
.post-nav-link {
  font-size: .88rem;
  font-weight: 600;
  color: var(--green);
  max-width: 280px;
}
.post-nav-link:hover { color: var(--brown); }
.post-nav-next { text-align: right; margin-left: auto; }

/* ---------- Pagination ---------- */
.pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 48px;
  flex-wrap: wrap;
}
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--radius);
  border: 1px solid var(--cream);
  font-size: .88rem;
  font-weight: 600;
  color: var(--dark);
  background: var(--white);
  transition: all var(--transition);
}
.pagination .page-numbers:hover { background: var(--cream); color: var(--brown); }
.pagination .page-numbers.current { background: var(--green); border-color: var(--green); color: var(--white); }

/* ---------- Header User Area ---------- */
.header-user {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  padding-left: 8px;
  border-left: 1px solid var(--cream);
}
.user-nav-link {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--dark);
  padding: 6px 8px;
  border-radius: var(--radius);
  transition: all var(--transition);
  white-space: nowrap;
}
.user-nav-link:hover { background: var(--cream); color: var(--green); }
.user-nav-link.logout { color: #8a7a60; }
.user-nav-link.logout:hover { color: var(--brown); background: var(--cream); }
.btn-sm { padding: 6px 12px; font-size: .74rem; letter-spacing: .02em; }

/* ---------- Auth & Profile Forms ---------- */
.required { color: #c0392b; }

.auth-wrap {
  max-width: 520px;
  margin: 0 auto;
  padding: 52px 0 80px;
}
.auth-card {
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: 12px;
  padding: 44px 40px;
  box-shadow: var(--shadow-md);
}
.auth-title {
  font-family: var(--font-serif);
  font-size: 1.9rem;
  color: var(--brown);
  margin-bottom: 6px;
  text-align: center;
}
.auth-subtitle {
  font-size: .9rem;
  color: #8a7a60;
  text-align: center;
  margin-bottom: 32px;
}
.form-group { margin-bottom: 18px; }
.form-label {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  color: var(--brown);
  margin-bottom: 6px;
  letter-spacing: .02em;
}
.form-input {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid #d8d0c4;
  border-radius: var(--radius);
  font-family: var(--font-sans);
  font-size: .95rem;
  color: var(--dark);
  background: var(--white);
  transition: border-color var(--transition), box-shadow var(--transition);
  appearance: none;
}
.form-input:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(128,150,113,.15);
}
.form-input::placeholder { color: #c0b8ae; }
textarea.form-input { resize: vertical; min-height: 100px; line-height: 1.6; }
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.form-alert {
  padding: 12px 16px;
  border-radius: var(--radius);
  font-size: .88rem;
  line-height: 1.55;
  margin-bottom: 22px;
}
.form-alert > div + div { margin-top: 4px; }
.form-alert-error   { background: #fdf2f2; border: 1px solid #f0c0c0; color: #8b2020; }
.form-alert-success { background: #f2f8f2; border: 1px solid #b0d8b0; color: #1a5c1a; }
.form-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .88rem;
  color: #5a4a30;
  cursor: pointer;
  line-height: 1.55;
}
.form-check input[type="checkbox"] {
  margin-top: 2px;
  accent-color: var(--green);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  cursor: pointer;
}
.form-submit { width: 100%; margin-top: 6px; justify-content: center; }
.auth-links {
  text-align: center;
  margin-top: 22px;
  font-size: .88rem;
  color: #8a7a60;
}
.auth-links a { color: var(--green); font-weight: 600; }
.auth-links a:hover { color: var(--brown); }
.form-divider { border: none; border-top: 1px solid var(--cream); margin: 28px 0; }
.form-section-title {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--sage);
  margin-bottom: 16px;
}
.form-section-note {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: .78rem;
  color: #a89878;
}

/* ---------- Profile Page ---------- */
.profile-wrap {
  max-width: 640px;
  margin: 0 auto;
  padding: 48px 0 80px;
}
.profile-card {
  background: linear-gradient(135deg, var(--pale), var(--cream));
  border: 1px solid var(--cream);
  border-radius: 12px;
  padding: 28px 32px;
  margin-bottom: 36px;
}
.profile-avatar {
  display: flex;
  align-items: center;
  gap: 18px;
}
.avatar-img { border-radius: 50%; border: 3px solid var(--white); box-shadow: var(--shadow); }
.profile-meta { display: flex; flex-direction: column; gap: 3px; }
.profile-display-name {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  color: var(--brown);
  font-weight: 700;
}
.profile-username { font-size: .82rem; color: #8a7a60; }
.profile-role {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--green);
  margin-top: 2px;
}
.profile-form { margin-bottom: 28px; }
.profile-save-btn { padding: 12px 36px; }
.profile-logout { padding-top: 20px; border-top: 1px solid var(--cream); }

/* ---------- Footer ---------- */
.site-footer { background: var(--dark); color: #c8b490; }

.footer-inner {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr;
  gap: 56px;
  padding: 60px 24px 48px;
  align-items: start;
}

/* Brand column */
.footer-logo { margin-bottom: 16px; display: flex; align-items: center; gap: 14px; }
.footer-logo-img { height: 52px; width: auto; display: block; object-fit: contain; }
.footer-logo-text { display: flex; flex-direction: column; }
.footer-logo-title {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--pale);
  line-height: 1.2;
}
.footer-logo-sub {
  display: block;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sage);
  margin-top: 5px;
}
.footer-desc {
  font-size: .85rem;
  line-height: 1.75;
  color: #c8b490;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.footer-address {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-style: normal;
}
.footer-address span {
  font-size: .8rem;
  color: #baa888;
  line-height: 1.5;
}
.footer-address a { color: var(--sand); text-decoration: none; transition: color var(--transition); }
.footer-address a:hover { color: var(--pale); }
.footer-reg { color: #9a8a6e !important; font-size: .74rem !important; margin-top: 4px; }

/* Social icons */
.footer-social { display: flex; gap: 12px; margin-top: 24px; }
.footer-social a {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.07);
  color: #8a7a60;
  transition: background .2s, color .2s;
  text-decoration: none;
}
.footer-social a:hover { background: rgba(255,255,255,.15); color: var(--pale); }
.footer-social svg { width: 24px; height: 24px; fill: currentColor; }

/* Link columns */
.footer-links-heading {
  font-family: var(--font-sans);
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--sage);
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.flinks-list { list-style: none; margin: 0; padding: 0; }
.flinks-list li { margin-bottom: 10px; }
.flinks-list a {
  color: #baa888;
  font-size: .82rem;
  line-height: 1.4;
  text-decoration: none;
  transition: color var(--transition);
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}
.flinks-list a::after { content: '↗'; font-size: .65rem; opacity: .5; flex-shrink: 0; }
.flinks-list a:hover { color: var(--sand); }
.flinks-list a:hover::after { opacity: .9; }

/* Bottom bar */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 16px 24px;
}
.footer-bottom p { font-size: .76rem; color: #9a8a6e; text-align: center; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .towers-grid { grid-template-columns: 1fr 1fr; }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 36px; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-visual { display: none; }
  .about-strip-inner { grid-template-columns: 1fr; }
  .page-wrap { grid-template-columns: 1fr; }
  .page-sidebar { position: static; }
  .join-inner { flex-direction: column; text-align: center; }
}

@media (max-width: 600px) {
  .auth-card { padding: 28px 20px; }
  .form-row  { grid-template-columns: 1fr; }
  .profile-card { padding: 20px; }
}

@media (max-width: 768px) {
  .header-user { display: none; }
  .menu-toggle { display: flex; }
  .site-nav {
    display: none;
    position: fixed;
    top: 72px;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--white);
    overflow-y: auto;
    padding: 20px 24px 40px;
    z-index: 999;
  }
  .site-nav.open { display: block; }
  .nav-menu { flex-direction: column; align-items: flex-start; gap: 0; }
  .nav-menu > li { width: 100%; border-bottom: 1px solid var(--cream); }
  .nav-menu > li > a { padding: 14px 0; font-size: .9rem; }
  .dropdown-menu { display: none; position: static; box-shadow: none; border: none; padding: 0 0 10px 16px; }
  .has-dropdown.open .dropdown-menu { display: block; }
  .dropdown-menu li a { padding: 8px 0; }
  .towers-grid { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; }
  .about-strip-stats { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; padding: 40px 20px 32px; }
  .footer-brand { grid-column: auto; }
  .hero { padding: 52px 0 48px; }
}

/* Mobile user links (inside nav drawer) */
.mobile-user-links { display: none; }

@media (max-width: 768px) {
  .mobile-user-links {
    display: flex;
    flex-direction: column;
    border-top: 2px solid var(--cream);
    margin-top: 16px;
    padding-top: 8px;
  }
  .mobile-user-link {
    display: block;
    padding: 13px 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--dark);
    border-bottom: 1px solid var(--cream);
    text-transform: none;
    letter-spacing: 0;
  }
  .mobile-user-link:hover { color: var(--green); }
  .mobile-user-link.mobile-register { color: var(--green); }
  .mobile-user-link.mobile-logout   { color: #8a7a60; }
}

@media (max-width: 480px) {
  .hero-title { font-size: 2rem; }
  .hero-cta { flex-direction: column; }
  .btn { justify-content: center; }
}

/* ---------- Rozhlednářské weby ---------- */
.weblinks-page {
  padding-top: 48px;
  padding-bottom: 80px;
}
.weblinks-intro {
  font-size: .97rem;
  color: #5a4a30;
  line-height: 1.75;
  max-width: 720px;
  margin-bottom: 52px;
  padding-left: 16px;
  border-left: 3px solid var(--sage);
}

/* Section */
.weblinks-section { margin-bottom: 52px; }
.weblinks-section-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--cream);
}
.weblinks-flag { font-size: 1.5rem; line-height: 1; flex-shrink: 0; }
.weblinks-heading {
  font-family: var(--font-serif);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--brown);
  line-height: 1.2;
  flex: 1;
}
.weblinks-archive-badge {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #a89878;
  background: var(--cream);
  border-radius: 4px;
  padding: 3px 9px;
  flex-shrink: 0;
}

/* Grid */
.weblinks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}

/* Card */
.weblink-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: var(--radius);
  padding: 16px 18px;
  text-decoration: none;
  color: inherit;
  transition: all var(--transition);
  min-width: 0;
}
.weblink-card:hover {
  border-color: var(--sage);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.weblink-card-archived {
  background: #faf8f5;
  opacity: .78;
}
.weblink-card-archived:hover { opacity: 1; }

.weblink-card-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.weblink-name {
  font-size: .93rem;
  font-weight: 600;
  color: var(--dark);
  line-height: 1.35;
}
.weblink-card:hover .weblink-name { color: var(--green); }
.weblink-desc {
  font-size: .8rem;
  color: #5a4a30;
  line-height: 1.5;
}
.weblink-host {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: .73rem;
  color: #a89878;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.weblink-host-icon {
  width: 11px;
  height: 11px;
  flex-shrink: 0;
  color: var(--sage);
}
.weblink-arrow {
  flex-shrink: 0;
  color: var(--sage);
  transition: color var(--transition), transform var(--transition);
}
.weblink-arrow svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}
.weblink-card:hover .weblink-arrow { color: var(--green); transform: translateX(2px); }

/* Translation panel */
.weblinks-translation {
  margin-top: 16px;
  padding-top: 8px;
}
.weblinks-translation-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 8px;
}
.weblinks-translation-item {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 10px 16px;
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: var(--radius);
  font-size: .88rem;
}
.weblinks-translation-lang {
  font-weight: 700;
  color: var(--brown);
  flex-shrink: 0;
  min-width: 90px;
}
.weblinks-translation-word {
  color: #5a4a30;
  font-style: italic;
}

@media (max-width: 600px) {
  .weblinks-grid { grid-template-columns: 1fr; }
  .weblinks-translation-list { grid-template-columns: 1fr; }
  .weblinks-heading { font-size: 1.15rem; }
}

/* ---------- Press Articles (Články z tisku) ---------- */
.press-page {
  padding-top: 48px;
  padding-bottom: 80px;
}
.press-intro {
  font-size: .97rem;
  color: #5a4a30;
  line-height: 1.75;
  max-width: 720px;
  margin-bottom: 56px;
  padding-left: 16px;
  border-left: 3px solid var(--sage);
}

/* Archiv novinek — monthly article list */
.novinky-archiv-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.novinky-archiv-list li {
  padding: 0;
}
.novinky-archiv-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-radius: 6px;
  background: var(--cream);
  color: var(--brown);
  font-size: .94rem;
  line-height: 1.45;
  border: 1px solid #ddd8ce;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.novinky-archiv-list li a::before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sage);
  flex-shrink: 0;
  transition: background .2s ease;
}
.novinky-archiv-list li a:hover {
  background: var(--sage);
  border-color: var(--sage);
  color: #fff;
}
.novinky-archiv-list li a:hover::before { background: #fff; }
.novinky-mesic { scroll-margin-top: 80px; }

/* Novinky — month sub-groups within year */
.novinky-month-group { margin-bottom: 32px; scroll-margin-top: 80px; }
.novinky-month-title {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--brown);
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e8e2d8;
}

/* Year section */
.press-year-section { margin-bottom: 56px; }
.press-year-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--cream);
}
.press-year-number {
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--brown);
  line-height: 1;
}
.press-year-count {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--sage);
}

/* Article list */
.press-articles-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Base card */
.press-article-item {
  display: flex;
  align-items: center;
  gap: 16px;
  border-radius: var(--radius);
  border: 1px solid var(--cream);
  background: var(--white);
  transition: all var(--transition);
  overflow: hidden;
}

/* Linked card */
.press-article-linked {
  cursor: pointer;
}
.press-article-linked:hover {
  border-color: var(--sage);
  box-shadow: var(--shadow);
  transform: translateX(3px);
}

/* No-link card */
.press-article-nolink {
  background: #faf8f5;
  opacity: .82;
}

/* Anchor fills the whole card except the arrow */
.press-article-anchor {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  padding: 16px 20px;
  text-decoration: none;
  color: inherit;
  min-width: 0;
}

/* No-link card body sits inline */
.press-article-nolink .press-article-body {
  flex: 1;
  padding: 16px 20px;
  min-width: 0;
}

.press-article-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.press-article-title {
  font-size: .94rem;
  font-weight: 600;
  color: var(--dark);
  line-height: 1.45;
}
.press-article-linked:hover .press-article-title { color: var(--green); }

.press-article-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .77rem;
  color: #8a7a60;
  font-weight: 500;
}
.press-meta-icon {
  width: 11px;
  height: 11px;
  fill: var(--sage);
  flex-shrink: 0;
}

/* Arrow icon (linked) */
.press-article-arrow {
  flex-shrink: 0;
  padding-right: 18px;
  color: var(--sage);
  transition: color var(--transition), transform var(--transition);
}
.press-article-arrow svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}
.press-article-linked:hover .press-article-arrow {
  color: var(--green);
  transform: translateX(2px);
}

/* No-link badge */
.press-article-nolink-badge {
  flex-shrink: 0;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #b8ac9a;
  background: var(--cream);
  border-radius: 4px;
  padding: 3px 8px;
  margin-right: 16px;
  white-space: nowrap;
}

/* No-link card with body text — body spans full width */
.press-article-has-text .press-article-body {
  flex: 1;
  padding: 16px 20px;
  min-width: 0;
}

/* Short inline body text */
.press-article-text {
  font-size: .88rem;
  color: #5a4a30;
  line-height: 1.7;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid #ece7df;
}

/* Expandable long text */
.press-article-expand {
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid #ece7df;
}
.press-article-expand > summary {
  cursor: pointer;
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--green);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  user-select: none;
  padding: 2px 0;
}
.press-article-expand > summary::-webkit-details-marker { display: none; }
.press-article-expand .expand-icon {
  font-size: .55em;
  transition: transform var(--transition);
  display: inline-block;
  line-height: 1;
}
.press-article-expand[open] .expand-icon { transform: rotate(90deg); }
.press-article-expand .expand-body {
  font-size: .88rem;
  color: #5a4a30;
  line-height: 1.75;
  margin-top: 12px;
}

@media (max-width: 600px) {
  .press-year-number { font-size: 1.5rem; }
  .press-article-anchor { padding: 13px 14px; }
  .press-article-nolink .press-article-body { padding: 13px 14px; }
  .press-article-has-text .press-article-body { padding: 13px 14px; }
  .press-article-title { font-size: .88rem; }
  .press-article-nolink-badge { display: none; }
  .press-article-arrow { padding-right: 12px; }
}

/* ============================================================
   Výsledky anket
   ============================================================ */
/* medzera pod page-hero bannerom na všetkých podstránkach */
.page-hero + .container,
.page-hero + [class*="-page"] {
  padding-top: 56px;
}

.polls-page { padding-bottom: 64px; }

.polls-intro {
  font-size: 1rem;
  color: var(--brown);
  border-left: 3px solid var(--sage);
  padding-left: 16px;
  margin-bottom: 40px;
  line-height: 1.7;
}

.polls-list {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.poll-card {
  background: #fff;
  border: 1px solid #e4ddd3;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(114,92,58,.06);
}

.poll-card-header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 24px 16px;
  background: linear-gradient(135deg, var(--cream) 0%, #f5f0e8 100%);
  border-bottom: 1px solid #e4ddd3;
}

.poll-year {
  font-family: 'Playfair Display', serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--brown);
  line-height: 1;
  min-width: 90px;
}

.poll-meta-right { display: flex; flex-direction: column; gap: 3px; }

.poll-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--brown);
  line-height: 1.3;
}

.poll-edition {
  font-size: .82rem;
  color: #8a7560;
  font-style: italic;
}

.poll-podium {
  display: flex;
  flex-direction: column;
  padding: 0 24px;
}

.poll-place {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid #f0ebe3;
}
.poll-place:last-child { border-bottom: none; }

.poll-medal { font-size: 1.2rem; flex-shrink: 0; }

.poll-place-name {
  font-size: .97rem;
  font-weight: 600;
  color: #3a2f20;
  flex: 1;
}

.poll-place-1 .poll-place-name { color: var(--brown); font-size: 1.05rem; }

.poll-votes {
  font-size: .82rem;
  color: #8a7560;
  white-space: nowrap;
  background: var(--cream);
  padding: 2px 9px;
  border-radius: 20px;
  flex-shrink: 0;
}

.poll-card-footer {
  padding: 14px 24px 18px;
  border-top: 1px solid #ece7df;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.poll-total {
  font-size: .85rem;
  color: #7a6a55;
  font-style: italic;
}

.poll-body {
  font-size: .92rem;
  color: #4a3f30;
  line-height: 1.75;
}
.poll-body p { margin: 0 0 .75em; }
.poll-body p:last-child { margin-bottom: 0; }

.poll-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.poll-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 20px;
  text-decoration: none;
  border: 1px solid;
  transition: background .15s, color .15s;
}
.poll-link svg { width: 14px; height: 14px; flex-shrink: 0; }

.poll-link-img {
  color: var(--green);
  border-color: var(--green);
  background: #f4f7f1;
}
.poll-link-img:hover { background: var(--green); color: #fff; }

.poll-link-diploma {
  color: var(--brown);
  border-color: var(--sand);
  background: #fdf8f2;
}
.poll-link-diploma:hover { background: var(--sand); color: #fff; }

.poll-link-ext {
  color: #555;
  border-color: #ccc;
  background: #f9f9f9;
}
.poll-link-ext:hover { background: #555; color: #fff; border-color: #555; }

@media (max-width: 600px) {
  .poll-card-header { flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px; }
  .poll-year { font-size: 2rem; }
  .poll-podium { padding: 0 16px; }
  .poll-card-footer { padding: 12px 16px 16px; }
  .poll-place-name { font-size: .9rem; }
}

/* ============================================================
   Suvenýry
   ============================================================ */
.souvenirs-page { padding-bottom: 64px; }

.souvenirs-intro {
  font-size: 1rem;
  color: var(--brown);
  border-left: 3px solid var(--sage);
  padding-left: 16px;
  margin-bottom: 40px;
  line-height: 1.7;
}

.souvenirs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-bottom: 40px;
}

.souvenir-card {
  display: flex;
  flex-direction: column;
  border: 1px solid #e4ddd3;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
a.souvenir-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(114,92,58,.13);
  border-color: var(--sage);
}
.souvenir-card-nolink {
  opacity: .82;
  background: #faf8f5;
}

.souvenir-card-image {
  background: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  border-bottom: 1px solid #ece7df;
}
.souvenir-card-image img {
  max-width: 100%;
  max-height: 80px;
  object-fit: contain;
}

.souvenir-card-body {
  flex: 1;
  padding: 16px 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.souvenir-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--brown);
  line-height: 1.35;
}

.souvenir-desc {
  font-size: .82rem;
  color: #8a7560;
}

.souvenir-host {
  font-size: .78rem;
  color: #a0927e;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 4px;
}
.souvenir-host-icon {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

.souvenir-arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 18px 14px;
}
.souvenir-arrow svg {
  width: 18px;
  height: 18px;
  color: var(--sage);
}

.souvenirs-note {
  border-top: 2px solid var(--cream);
  padding-top: 24px;
  margin-top: 8px;
  font-size: .95rem;
  color: #5a4a30;
  line-height: 1.75;
}
.souvenirs-note a {
  color: var(--green);
  text-decoration: underline;
}
.souvenirs-note a:hover { color: var(--brown); }

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

/* ============================================================
   Literatura
   ============================================================ */
.literatura-page { padding-bottom: 64px; }

.literatura-intro {
  font-size: 1rem;
  color: var(--brown);
  border-left: 3px solid var(--sage);
  padding-left: 16px;
  margin-bottom: 44px;
  line-height: 1.7;
}

.literatura-section { margin-bottom: 48px; }

.literatura-section-heading {
  font-family: 'Playfair Display', serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--brown);
  border-bottom: 2px solid var(--cream);
  padding-bottom: 10px;
  margin-bottom: 20px;
}

.book-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.book-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid #f0ebe3;
}
.book-item:last-child { border-bottom: none; }
.book-item-unavailable { opacity: .72; }

.book-cover {
  flex-shrink: 0;
  width: 72px;
}
.book-cover img {
  width: 72px;
  height: auto;
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  display: block;
}

.book-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.book-title {
  font-size: .97rem;
  line-height: 1.4;
  color: #2a1f10;
}

.book-author {
  color: var(--green);
  font-weight: 600;
  margin-right: 4px;
}

.book-title-link {
  color: var(--brown);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid var(--sand);
  transition: color .15s, border-color .15s;
}
.book-title-link:hover { color: var(--green); border-color: var(--green); }

.book-unavailable-badge {
  display: inline-block;
  font-size: .72rem;
  font-weight: 600;
  background: #f0ebe3;
  color: #8a7560;
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: 8px;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.book-publisher {
  font-size: .82rem;
  color: #8a7560;
}

.book-desc {
  font-size: .85rem;
  color: #5a4a30;
  line-height: 1.55;
}

.book-extra-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .8rem;
  font-weight: 600;
  color: var(--green);
  text-decoration: none;
  border: 1px solid var(--sage);
  background: #f4f7f1;
  padding: 3px 10px;
  border-radius: 20px;
  margin-top: 4px;
  align-self: flex-start;
  transition: background .15s, color .15s;
}
.book-extra-link svg { width: 13px; height: 13px; flex-shrink: 0; }
.book-extra-link:hover { background: var(--green); color: #fff; }

@media (max-width: 540px) {
  .book-cover { width: 56px; }
  .book-cover img { width: 56px; }
  .book-title { font-size: .9rem; }
}

/* ── Mapy rozhleden ───────────────────────────────────────── */
.mapy-page { padding-bottom: 64px; }

.mapy-intro {
  max-width: 680px;
  margin: 32px auto 40px;
  text-align: center;
  color: var(--brown);
  font-size: 1rem;
  line-height: 1.7;
}
.mapy-intro a { color: var(--green); }
.mapy-intro a:hover { color: var(--brown); }

.map-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin-bottom: 48px;
}

.map-card,
a.map-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 6px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .18s, border-color .18s, transform .18s;
}

a.map-card:hover {
  box-shadow: 0 6px 20px rgba(114,92,58,.13);
  border-color: var(--sage);
  transform: translateY(-2px);
}

.map-card-nolink { cursor: default; }

.map-card-cover {
  background: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  aspect-ratio: 3 / 4;
}

.map-card-cover img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.map-card-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}

.map-card-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: .9rem;
  font-weight: 600;
  color: var(--brown);
  line-height: 1.35;
}

.map-card-publisher {
  font-size: .78rem;
  color: var(--green);
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.map-card-scale {
  font-size: .78rem;
  color: #888;
}

.map-card-buy {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: auto;
  padding-top: 10px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--green);
  letter-spacing: .03em;
  text-transform: uppercase;
}

.map-card-buy svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  transition: transform .15s;
}

a.map-card:hover .map-card-buy svg { transform: translateX(3px); }

.mapy-note {
  max-width: 680px;
  margin: 0 auto;
  padding: 24px 28px;
  background: var(--pale);
  border-radius: 6px;
  font-size: .95rem;
  color: var(--brown);
  line-height: 1.75;
}
.mapy-note a { color: var(--green); }
.mapy-note a:hover { color: var(--brown); }

@media (max-width: 900px) {
  .map-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
}
@media (max-width: 640px) {
  .map-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 380px) {
  .map-grid { grid-template-columns: 1fr; }
}

/* ── Pozvánky a akce ─────────────────────────────────────── */
.akce-page { padding-bottom: 72px; }

.akce-empty {
  text-align: center;
  color: #888;
  padding: 40px 0;
}

.akce-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 40px 0;
}

.akce-card {
  display: flex;
  gap: 0;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(114,92,58,.06);
}

.akce-card-past {
  opacity: .7;
}

.akce-date-badge {
  flex-shrink: 0;
  width: 80px;
  background: var(--green);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 8px;
  gap: 2px;
}

.akce-card-past .akce-date-badge {
  background: var(--sage);
}

.akce-date-day {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

.akce-date-mon {
  font-size: .7rem;
  font-weight: 700;
  color: rgba(255,255,255,.85);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.akce-past-label {
  margin-top: 8px;
  font-size: .6rem;
  font-weight: 700;
  color: rgba(255,255,255,.75);
  text-transform: uppercase;
  letter-spacing: .06em;
  background: rgba(0,0,0,.15);
  border-radius: 3px;
  padding: 2px 5px;
}

.akce-body {
  flex: 1;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.akce-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--brown);
  margin: 0;
  line-height: 1.3;
}

.akce-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}

.akce-meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .85rem;
  color: #666;
}

.akce-meta-item svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--green);
}

.akce-desc {
  font-size: .9rem;
  color: #555;
  line-height: 1.65;
}

.akce-desc p { margin: 0 0 6px; }
.akce-desc p:last-child { margin-bottom: 0; }

.akce-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--cream);
}

.akce-deadline {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  color: #c0392b;
}

.akce-deadline svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  stroke: #c0392b;
}

.akce-docs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

.akce-doc-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--cream);
  border: 1px solid #d8d0c4;
  border-radius: 4px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--brown);
  text-decoration: none;
  letter-spacing: .02em;
  transition: background .15s, border-color .15s, color .15s;
}

.akce-doc-btn svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}

.akce-doc-btn:hover {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.akce-doc-btn:hover svg { stroke: #fff; }

.akce-past-section { margin-top: 16px; }

.akce-past-heading {
  font-size: 1rem;
  font-weight: 600;
  color: #999;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.akce-contact {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 520px;
  margin: 8px auto 0;
  padding: 18px 24px;
  background: var(--pale);
  border-radius: 6px;
  font-size: .9rem;
  color: var(--brown);
}

.akce-contact svg { width: 18px; height: 18px; flex-shrink: 0; stroke: var(--green); }
.akce-contact a { color: var(--green); font-weight: 600; }
.akce-contact a:hover { color: var(--brown); }

@media (max-width: 640px) {
  .akce-card { flex-direction: column; }
  .akce-date-badge { width: 100%; flex-direction: row; padding: 12px 20px; justify-content: flex-start; gap: 8px; }
  .akce-date-day { font-size: 1.5rem; }
  .akce-body { padding: 18px 20px; }
  .akce-docs { margin-left: 0; }
}

/* ── Naše aktivity ───────────────────────────────────────── */
.nase-aktivity-page {
  max-width: 860px;
  padding-top: 48px;
  padding-bottom: 72px;
}

.nase-aktivity-page .entry-content p.aktivity-lead {
  font-size: 1.1rem;
  color: var(--brown);
  line-height: 1.75;
  margin-bottom: 36px;
  border-left: 3px solid var(--green);
  padding-left: 18px;
}

/* Photo gallery */
.nase-aktivity-page .aktivity-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 0 0 44px;
}

.nase-aktivity-page .aktivity-gallery figure {
  margin: 0;
  border-radius: 5px;
  overflow: hidden;
  background: var(--cream);
}

.nase-aktivity-page .aktivity-gallery figure img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.nase-aktivity-page .aktivity-gallery figcaption {
  font-size: .72rem;
  color: #888;
  padding: 6px 8px;
  text-align: center;
}

/* Section headings */
.nase-aktivity-page .entry-content h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--brown);
  margin: 40px 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--cream);
}

.nase-aktivity-page .entry-content h3:first-of-type {
  margin-top: 8px;
}

/* Two-col layout: text + image */
.nase-aktivity-page .aktivity-with-img {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  margin-bottom: 8px;
}

.nase-aktivity-page .aktivity-img-side {
  flex-shrink: 0;
  width: 160px;
}

.nase-aktivity-page .aktivity-img-side img {
  width: 100%;
  border-radius: 4px;
  display: block;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}

.nase-aktivity-page .aktivity-img-side.razitka {
  width: 220px;
}

/* Lists */
.nase-aktivity-page .entry-content ul {
  padding-left: 20px;
  margin: 0 0 12px;
}

.nase-aktivity-page .entry-content ul li {
  margin-bottom: 6px;
  line-height: 1.6;
  color: #444;
}

/* Financial table */
.nase-aktivity-page .aktivity-table {
  margin: 16px 0 8px;
  font-size: .9rem;
}
.nase-aktivity-page .aktivity-table table {
  width: 100%;
  border-collapse: collapse;
}

.nase-aktivity-page .aktivity-table thead th {
  background: var(--green);
  color: #fff;
  padding: 9px 14px;
  text-align: left;
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.nase-aktivity-page .aktivity-table thead th:last-child {
  text-align: right;
}

.nase-aktivity-page .aktivity-table tbody tr {
  border-bottom: 1px solid var(--cream);
}

.nase-aktivity-page .aktivity-table tbody tr:last-child {
  border-bottom: none;
}

.nase-aktivity-page .aktivity-table tbody td {
  padding: 9px 14px;
  color: #444;
  vertical-align: middle;
}

.nase-aktivity-page .aktivity-table tbody td:first-child {
  font-weight: 700;
  color: var(--brown);
  width: 56px;
}

.nase-aktivity-page .aktivity-table tbody td:last-child {
  text-align: right;
  font-weight: 600;
  color: var(--green);
  white-space: nowrap;
}

.nase-aktivity-page .aktivity-table tbody tr:hover td {
  background: #faf9f7;
}

.nase-aktivity-page .aktivity-table a {
  color: var(--brown);
}

.nase-aktivity-page .aktivity-table a:hover {
  color: var(--green);
}

/* Repairs list */
.nase-aktivity-page .entry-content ul.aktivity-opravy {
  columns: 2;
  column-gap: 32px;
}

@media (max-width: 700px) {
  .nase-aktivity-page .aktivity-gallery { grid-template-columns: repeat(2, 1fr); }
  .nase-aktivity-page .aktivity-with-img { flex-direction: column; }
  .nase-aktivity-page .aktivity-img-side,
  .nase-aktivity-page .aktivity-img-side.razitka { width: 100%; max-width: 260px; }
  .nase-aktivity-page .entry-content ul.aktivity-opravy { columns: 1; }
}

/* ── Klubové dokumenty ───────────────────────────────────── */
.dokumenty-page { max-width: 760px; padding-top: 48px; padding-bottom: 72px; }

.doc-section { margin-bottom: 48px; }

.doc-section-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--cream);
}

.doc-list { list-style: none; display: flex; flex-direction: column; gap: 8px; }

.doc-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 6px;
  transition: border-color .15s, box-shadow .15s;
}

.doc-item:hover {
  border-color: var(--sage);
  box-shadow: 0 2px 8px rgba(114,92,58,.08);
}

.doc-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  background: var(--pale);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.doc-icon svg { width: 18px; height: 18px; stroke: var(--green); }

.doc-body { flex: 1; min-width: 0; }

.doc-title {
  font-weight: 600;
  color: var(--brown);
  font-size: .95rem;
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.doc-year {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--green);
  flex-shrink: 0;
}

.doc-desc {
  font-size: .8rem;
  color: #888;
  margin-top: 3px;
}

.doc-download {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  background: var(--green);
  color: #fff;
  border-radius: 4px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .15s;
}

.doc-download:hover { background: var(--brown); color: #fff; }
.doc-download svg { width: 13px; height: 13px; stroke: #fff; }

.doc-footer-note {
  text-align: center;
  color: #999;
  font-size: .82rem;
  padding-top: 8px;
  border-top: 1px solid var(--cream);
}

@media (max-width: 500px) {
  .doc-item { flex-wrap: wrap; }
  .doc-download { margin-left: 52px; }
}

/* ── Pro zájemce o členství ──────────────────────────────── */
.clenstvi-page {
  max-width: 800px;
  padding-top: 48px;
  padding-bottom: 72px;
}

.clenstvi-page .entry-content h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--brown);
  margin: 36px 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--cream);
}

.clenstvi-page .entry-content h3:first-of-type { margin-top: 0; }

/* Benefits checklist */
.clenstvi-page ul.clenstvi-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.clenstvi-page ul.clenstvi-benefits li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 6px;
  font-size: .95rem;
  color: #444;
  line-height: 1.5;
}

.clenstvi-page ul.clenstvi-benefits li::before {
  content: '';
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  background: var(--green);
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3.5 3.5L13 5'/%3E%3C/svg%3E");
  background-size: 12px;
  background-repeat: no-repeat;
  background-position: center;
}

/* Application steps */
.clenstvi-page ol.clenstvi-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  counter-reset: step;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.clenstvi-page ol.clenstvi-steps li {
  counter-increment: step;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 6px;
  font-size: .95rem;
  color: #444;
  line-height: 1.5;
}

.clenstvi-page ol.clenstvi-steps li::before {
  content: counter(step);
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  background: var(--brown);
  color: #fff;
  border-radius: 50%;
  font-size: .75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* Fee box */
.clenstvi-page .clenstvi-fee-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 16px 0;
}

.clenstvi-page .fee-card {
  background: var(--pale);
  border: 1px solid var(--sand);
  border-radius: 8px;
  padding: 20px 24px;
  text-align: center;
}

.clenstvi-page .fee-label {
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--brown);
  margin-bottom: 8px;
}

.clenstvi-page .fee-amount {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--green);
  line-height: 1;
}

.clenstvi-page .fee-note {
  font-size: .78rem;
  color: #888;
  margin-top: 6px;
  line-height: 1.4;
}

/* Bank info */
.clenstvi-page .clenstvi-bank {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  background: #fff;
  border: 1px solid var(--cream);
  border-left: 4px solid var(--green);
  border-radius: 6px;
  margin: 16px 0;
  font-size: .95rem;
}

.clenstvi-page .clenstvi-bank svg {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  stroke: var(--green);
}

.clenstvi-page .clenstvi-bank strong {
  font-size: 1.05rem;
  color: var(--brown);
  letter-spacing: .02em;
}

.clenstvi-page .clenstvi-bank small {
  display: block;
  color: #888;
  font-size: .78rem;
  margin-top: 2px;
}

/* Download + online buttons */
.clenstvi-page .clenstvi-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 20px 0 8px;
}

.clenstvi-page a.clenstvi-btn-primary,
.clenstvi-page a.clenstvi-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 6px;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-decoration: none;
  transition: background .15s, color .15s, border-color .15s;
}

.clenstvi-page a.clenstvi-btn-primary {
  background: var(--green);
  color: #fff;
  border: 2px solid var(--green);
}

.clenstvi-page a.clenstvi-btn-primary:hover {
  background: var(--brown);
  border-color: var(--brown);
  color: #fff;
}

.clenstvi-page a.clenstvi-btn-secondary {
  background: transparent;
  color: var(--brown);
  border: 2px solid var(--brown);
}

.clenstvi-page a.clenstvi-btn-secondary:hover {
  background: var(--brown);
  color: #fff;
}

.clenstvi-page a.clenstvi-btn-primary svg,
.clenstvi-page a.clenstvi-btn-secondary svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

@media (max-width: 540px) {
  .clenstvi-page .clenstvi-fee-box { grid-template-columns: 1fr; }
  .clenstvi-page .clenstvi-actions { flex-direction: column; }
}

/* ── Kronika akcí ────────────────────────────────────────── */
.kronika-page { padding-top: 40px; padding-bottom: 72px; }

.kronika-list { list-style: none; display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }

.kronika-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 6px;
  transition: border-color .15s, box-shadow .15s;
}
.kronika-item:hover { border-color: var(--sage); box-shadow: 0 2px 8px rgba(114,92,58,.07); }

.kronika-cislo {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  background: var(--green);
  color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
}

.kronika-body { flex: 1; min-width: 0; }

.kronika-title {
  font-weight: 600;
  color: var(--brown);
  font-size: .95rem;
  margin-bottom: 5px;
  line-height: 1.35;
}

.kronika-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 6px;
}

.kronika-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .78rem;
  color: #777;
}

.kronika-meta svg { width: 12px; height: 12px; flex-shrink: 0; stroke: var(--green); }

.kronika-desc {
  font-size: .83rem;
  color: #666;
  line-height: 1.5;
}

.kronika-links {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-end;
}

.kronika-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s, color .15s;
}

.kronika-btn svg { width: 12px; height: 12px; flex-shrink: 0; }

.kronika-btn-pdf { background: var(--pale); color: var(--brown); border: 1px solid var(--sand); }
.kronika-btn-pdf:hover { background: var(--green); color: #fff; border-color: var(--green); }
.kronika-btn-pdf:hover svg { stroke: #fff; }

.kronika-btn-foto { background: var(--cream); color: var(--brown); border: 1px solid #ccc; }
.kronika-btn-foto:hover { background: var(--brown); color: #fff; border-color: var(--brown); }
.kronika-btn-foto:hover svg { stroke: #fff; }

/* Archive section */
.kronika-archive-section { margin-top: 48px; padding-top: 32px; border-top: 2px solid var(--cream); }

.kronika-archive-heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 8px;
}

.kronika-archive-note { font-size: .85rem; color: #888; margin-bottom: 16px; }

.kronika-archive-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.kronika-archive-card {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: var(--cream);
  border: 1px solid #d8d0c4;
  border-radius: 4px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--brown);
  text-decoration: none;
  transition: background .15s, border-color .15s;
}

.kronika-archive-card:hover { background: var(--green); border-color: var(--green); color: #fff; }
.kronika-archive-card svg { width: 12px; height: 12px; }
.kronika-archive-card:hover svg { stroke: #fff; }

.kronika-archive-year { font-family: 'Playfair Display', Georgia, serif; }

.kronika-archive-special {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.kronika-archive-special a {
  font-size: .8rem;
  color: var(--green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.kronika-archive-special a:hover { color: var(--brown); }

@media (max-width: 600px) {
  .kronika-item { flex-wrap: wrap; }
  .kronika-links { flex-direction: row; align-items: flex-start; width: 100%; margin-top: 6px; }
}

/* ── Služby na rozhlednách ───────────────────────────────── */
.sluzby-page {
  max-width: 860px;
  padding-top: 48px;
  padding-bottom: 72px;
}

.sluzby-page .entry-content h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--brown);
  margin: 36px 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--cream);
}
.sluzby-page .entry-content h3:first-of-type { margin-top: 0; }

/* Info cards row */
.sluzby-info-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 8px;
}

.sluzby-info-card {
  background: var(--pale);
  border: 1px solid var(--sand);
  border-radius: 8px;
  padding: 18px 20px;
  text-align: center;
}

.sluzby-info-card svg {
  width: 26px;
  height: 26px;
  stroke: var(--green);
  display: block;
  margin: 0 auto 10px;
}

.sluzby-info-card strong {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--green);
  margin-bottom: 4px;
}

.sluzby-info-card-text {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: .95rem;
  font-weight: 700;
  color: var(--brown);
  line-height: 1.3;
}

.sluzby-info-card-icon {
  font-size: 1.5rem;
  margin-bottom: 8px;
  line-height: 1;
}

.sluzby-info-card-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--green);
  margin-bottom: 4px;
}

.sluzby-info-card-value {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--brown);
  line-height: 1.25;
}

/* Services checklist */
.sluzby-page ul.sluzby-list {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.sluzby-page ul.sluzby-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid var(--cream);
  border-radius: 5px;
  font-size: .9rem;
  color: #444;
}

.sluzby-page ul.sluzby-list li::before {
  content: '';
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  background: var(--green);
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3.5 3.5L13 5'/%3E%3C/svg%3E");
  background-size: 11px;
  background-repeat: no-repeat;
  background-position: center;
}

/* Schedule table */
.sluzby-page .sluzby-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .85rem;
  margin: 8px 0;
}

.sluzby-page .sluzby-table thead th {
  background: var(--green);
  color: #fff;
  padding: 9px 12px;
  text-align: left;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.sluzby-page .sluzby-table tbody tr { border-bottom: 1px solid var(--cream); }
.sluzby-page .sluzby-table tbody tr:last-child { border-bottom: none; }
.sluzby-page .sluzby-table tbody tr:hover td { background: #faf9f7; }

.sluzby-page .sluzby-table td {
  padding: 8px 12px;
  color: #444;
  vertical-align: middle;
}

.sluzby-page .sluzby-table td:first-child {
  font-weight: 600;
  color: var(--brown);
  white-space: nowrap;
  width: 130px;
}

.sluzby-table tr.sluzby-holiday td { background: #f5f2ec; }
.sluzby-table tr.sluzby-holiday td:first-child { color: var(--green); }

/* Volunteer contact box */
.sluzby-contact-box {
  padding: 16px 22px;
  background: #fff;
  border: 1px solid var(--cream);
  border-left: 4px solid var(--green);
  border-radius: 6px;
  margin: 16px 0;
  font-size: .9rem;
  color: #555;
}
.sluzby-contact-name {
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 6px;
}
.sluzby-contact-info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-bottom: 8px;
}
.sluzby-contact-sep { color: var(--sage); margin: 0 2px; }
.sluzby-contact-info a { color: var(--green); font-weight: 600; text-decoration: none; }
.sluzby-contact-info a:hover { text-decoration: underline; }
.sluzby-contact-note {
  font-size: .82rem;
  color: #777;
  font-style: italic;
  line-height: 1.45;
}

/* Archive */
.sluzby-archive-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.sluzby-archive-card {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: var(--cream);
  border: 1px solid #d8d0c4;
  border-radius: 4px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--brown);
  text-decoration: none;
  font-family: 'Playfair Display', Georgia, serif;
  transition: background .15s, color .15s;
}
.sluzby-archive-card:hover { background: var(--green); color: #fff; border-color: var(--green); }

@media (max-width: 680px) {
  .sluzby-info-row { grid-template-columns: 1fr; }
  .sluzby-page ul.sluzby-list { grid-template-columns: 1fr; }
  .sluzby-page .sluzby-table { font-size: .78rem; }
  .sluzby-page .sluzby-table td { padding: 7px 8px; }
  .sluzby-page .sluzby-table td:first-child { width: auto; }
}

/* ── Bonusy pro členy ─────────────────────────────────────────── */
.bonusy-page { max-width: 800px; margin: 0 auto; padding: 48px 24px 64px; }
.bonusy-page .entry-content h3 { font-family: 'Playfair Display', serif; color: var(--brown); margin: 2rem 0 .75rem; }
.bonusy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 2rem 0; }
@media (max-width: 600px) { .bonusy-grid { grid-template-columns: 1fr; } }
.bonusy-card { background: var(--cream); border-radius: 10px; padding: 28px 24px; display: flex; flex-direction: column; gap: 12px; }
.bonusy-card svg { width: 32px; height: 32px; color: var(--green); flex-shrink: 0; }
.bonusy-card strong { font-family: 'Playfair Display', serif; font-size: 1.1rem; color: var(--brown); }
.bonusy-card p { font-size: .93rem; color: #555; margin: 0; line-height: 1.6; }
ul.bonusy-towers { list-style: none; padding: 0; margin: .75rem 0 0; display: flex; flex-direction: column; gap: 6px; }
ul.bonusy-towers li a { color: var(--green); text-decoration: none; font-weight: 500; }
ul.bonusy-towers li a:hover { text-decoration: underline; }
ul.bonusy-towers li::before { content: "→ "; color: var(--sage); font-weight: 600; }
.bonusy-note { background: #f7f5f0; border-left: 3px solid var(--sage); border-radius: 0 6px 6px 0; padding: 14px 18px; font-size: .9rem; color: #555; margin-top: 2rem; }
.bonusy-note a { color: var(--green); }

/* ── Klubové předměty ─────────────────────────────────────────── */
.predmety-page { max-width: 920px; margin: 0 auto; padding: 48px 24px 64px; }
.predmety-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 2rem 0; }
@media (max-width: 720px) { .predmety-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .predmety-grid { grid-template-columns: 1fr; } }
.predmety-card { background: var(--cream); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; }
.predmety-card-img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.predmety-card-body { padding: 16px; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.predmety-card-title { font-family: 'Playfair Display', serif; font-size: 1rem; color: var(--brown); font-weight: 600; }
.predmety-card-price { font-size: .88rem; font-weight: 600; color: var(--green); }
.predmety-card-desc { font-size: .85rem; color: #666; line-height: 1.55; flex: 1; }
.predmety-card-contact { font-size: .8rem; color: #888; margin-top: 4px; }
.predmety-order-box { background: #f7f5f0; border-left: 3px solid var(--green); border-radius: 0 8px 8px 0; padding: 18px 22px; margin-top: 2.5rem; font-size: .93rem; color: #444; }
.predmety-order-box strong { color: var(--brown); }
.predmety-order-box a { color: var(--green); }
.predmety-order-row { display: flex; gap: 32px; flex-wrap: wrap; margin-top: .5rem; }
.predmety-order-person { display: flex; flex-direction: column; gap: 2px; }
.predmety-order-person span { font-size: .8rem; color: #888; }

/* ── Rozhledna (tower detail) ─────────────────────────────────── */
.rozhledna-page { max-width: 900px; margin: 0 auto; padding: 48px 24px 64px; }
.rozhledna-photo-wrap { float: left; width: 320px; margin: 0 40px 24px 0; display: flex; flex-direction: column; gap: 10px; }
.rozhledna-photo { width: 100%; border-radius: 12px; object-fit: cover; aspect-ratio: 3/4; display: block; box-shadow: 0 4px 20px rgba(0,0,0,.12); }
.rozhledna-meta { display: flex; flex-direction: column; gap: 18px; overflow: hidden; }
.rozhledna-clearfix { clear: both; }
@media (max-width: 760px) { .rozhledna-photo-wrap { float: none; width: 100%; margin: 0 0 20px 0; } }
.rozhledna-status { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 14px; border-radius: 20px; font-size: .95rem; font-weight: 600; }
.rozhledna-status svg { width: 14px; height: 14px; flex-shrink: 0; }
.rozhledna-status br { display: none; }
.rozhledna-status.uzavrena { background: #fde8e8; color: #9b2c2c; }
.rozhledna-status.otevrena { background: #d4edda; color: #155724; }
.rozhledna-sezona { background: var(--cream); border-radius: 10px; padding: 14px 18px; font-size: .97rem; color: #444; line-height: 1.55; }
.rozhledna-sezona strong { display: block; font-family: 'Playfair Display', serif; color: var(--brown); margin-bottom: 4px; font-size: 1.02rem; }
.rozhledna-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.rozhledna-stat { background: var(--cream); border-radius: 8px; padding: 12px 14px; }
.rozhledna-stat-label { font-size: .78rem; color: #888; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 3px; }
.rozhledna-stat-val { font-size: 1.06rem; font-weight: 700; color: var(--brown); }
.rozhledna-admission { background: var(--green); border-radius: 10px; padding: 18px 20px; color: #fff; }
.rozhledna-admission h4 { font-family: 'Playfair Display', serif; margin: 0 0 10px; font-size: 1rem; color: #fff; opacity: .85; }
.rozhledna-admission table { width: 100%; border-collapse: collapse; font-size: .97rem; }
.rozhledna-admission td { padding: 5px 4px; color: #fff; }
.rozhledna-admission td:last-child { text-align: right; font-weight: 700; }
.rozhledna-section { margin: 2rem 0; }
.rozhledna-section h3 { font-family: 'Playfair Display', serif; color: var(--brown); margin: 0 0 .6rem; font-size: 1.12rem; border-bottom: 2px solid var(--cream); padding-bottom: .4rem; }
.rozhledna-section p, .rozhledna-section li { font-size: 1rem; color: #444; line-height: 1.65; }
.rozhledna-section ul { padding-left: 0; list-style-position: inside; }
.rozhledna-letak { display: inline-flex; align-items: center; gap: 8px; margin-top: 1.5rem; padding: 10px 20px; background: var(--green); color: #fff; border-radius: 6px; text-decoration: none; font-size: .97rem; font-weight: 500; }
.rozhledna-letak svg { width: 16px; height: 16px; flex-shrink: 0; }
.rozhledna-letak:hover { background: #6b7d5e; }

/* ── Kontakty ─────────────────────────────────────────────────── */
.kontakty-page { max-width: 860px; margin: 0 auto; padding: 48px 24px 64px; }
.kontakty-info-box { background: var(--cream); border-radius: 10px; padding: 28px 32px; margin-bottom: 2.5rem; }
.kontakty-info-box h3 { font-family: 'Playfair Display', serif; color: var(--brown); margin: 0 0 1rem; }
.kontakty-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 32px; }
@media (max-width: 560px) { .kontakty-info-grid { grid-template-columns: 1fr; } }
.kontakty-info-row { display: flex; gap: 8px; font-size: .9rem; }
.kontakty-info-label { color: #888; min-width: 110px; flex-shrink: 0; }
.kontakty-info-val { color: #333; font-weight: 500; }
.kontakty-info-val a { color: var(--green); text-decoration: none; }
.kontakty-info-val a:hover { text-decoration: underline; }
.kontakty-board { margin-bottom: 2.5rem; }
.kontakty-board h3 { font-family: 'Playfair Display', serif; color: var(--brown); margin: 0 0 1rem; }
.kontakty-board-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .kontakty-board-grid { grid-template-columns: 1fr; } }
.kontakty-board-card { background: #f7f5f0; border-radius: 8px; padding: 16px 18px; }
.kontakty-board-name { font-weight: 700; color: var(--brown); font-size: .95rem; margin-bottom: 2px; }
.kontakty-board-role { font-size: .82rem; color: var(--green); margin-bottom: 8px; }
.kontakty-board-contact { font-size: .83rem; color: #666; display: flex; flex-direction: column; gap: 2px; }
.kontakty-board-contact a { color: var(--green); text-decoration: none; }
.kontakty-cta { background: var(--green); color: #fff; border-radius: 10px; padding: 24px 28px; }
.kontakty-cta h3 { font-family: 'Playfair Display', serif; margin: 0 0 .5rem; color: #fff; font-size: 1rem; }
.kontakty-cta p { font-size: .9rem; margin: 0; opacity: .9; }
.kontakty-cta a { color: #fff; font-weight: 600; }
