/* ═══════════════════════════════════════════════════════
   Farnosť Lehnice  –  Blue + Forest Green + Gold
═══════════════════════════════════════════════════════ */

:root {
  --font-sans:  system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono:  ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace;
  --blue:       #1e3a6e;
  --blue-dark:  #0f2342;
  --blue-mid:   #2b5ea7;
  --green:      #2d6a4f;
  --green-dark: #1a4233;
  --green-lt:   #48956a;
  --gold:       #c4952a;
  --gold-lt:    #ddb040;
  --cream:      #f2f5ec;
  --white:      #fff;
  --gray-100:   #eaede4;
  --gray-200:   #d5dace;
  --text:       #1e2820;
  --muted:      #5a6358;
  --shadow-sm:  0 1px 4px rgba(30,58,110,.10);
  --shadow-md:  0 4px 20px rgba(30,58,110,.15);
  --radius:     8px;
  --radius-lg:  14px;
  --t:          .18s ease;
  --max-w:      1100px;
  --hh:         74px;
}

/* ── Reset ─────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  font-family: var(--font-sans);
  background: var(--cream);
  color: var(--text);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width:100%; height:auto; display:block }
a { color:var(--blue); text-decoration:underline }
a:hover { color:var(--green) }
h1,h2,h3,h4 { font-family:var(--font-sans); color:var(--blue); line-height:1.25 }
h1 { font-size:clamp(1.75rem,4vw,2.6rem) }
h2 { font-size:clamp(1.35rem,3vw,1.9rem) }
h3 { font-size:1.15rem }

/* ── Layout ─────────────────────────────────────────── */
.container { max-width:var(--max-w); margin:0 auto; padding:0 1.25rem }
.section { padding:3rem 0 }
.section-alt { background:var(--gray-100) }
.empty-state { color:var(--muted); font-style:italic; padding:2rem 0; text-align:center }

/* ── Buttons ─────────────────────────────────────────── */
.btn {
  display:inline-block; padding:.55rem 1.35rem;
  border-radius:var(--radius); font-size:.9rem; font-weight:600;
  text-decoration:none; cursor:pointer; border:2px solid transparent;
  transition:background var(--t),color var(--t),border-color var(--t),box-shadow var(--t);
  touch-action: manipulation;
}
.btn-primary { background:var(--green); color:#fff; border-color:var(--green) }
.btn-primary:hover {
  background:var(--green-dark); border-color:var(--green-dark); color:#fff;
  box-shadow:0 4px 16px rgba(45,106,79,.35);
}
.btn-sm { padding:.35rem .9rem; font-size:.82rem }
.btn-link { font-weight:600; color:var(--green); text-decoration:none }
.btn-link:hover { color:var(--green-dark) }

/* ── Header ─────────────────────────────────────────── */
.site-header {
  position: -webkit-sticky;
  position: sticky;
  top: 0; z-index: 100;
  background: var(--blue-dark);
  box-shadow: 0 2px 20px rgba(0,0,0,.35);
  height: var(--hh);
  border-bottom: 3px solid var(--green);
}
.header-inner {
  display:flex; align-items:center;
  justify-content:space-between;
  height:var(--hh); gap:1rem;
}
.site-logo {
  display:flex; align-items:center; gap:.55rem;
  text-decoration:none; color:#fff;
  font-family:var(--font-sans); font-size:1.2rem;
  font-weight:700; flex-shrink:0;
}
.site-logo-text {
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.site-logo-name { font-size:1.08rem }
.site-logo-tagline {
  font-size:.65rem;
  font-family:var(--font-sans);
  font-weight:400;
  letter-spacing:.03em;
  opacity:.9;
  margin-top:.2rem;
}
.site-logo:hover { color:var(--gold-lt) }
#main-nav ul { display:flex; gap:.25rem; list-style:none }
#main-nav a {
  display:block; padding:.4rem .85rem;
  color:rgba(255,255,255,.85); text-decoration:none;
  border-radius:var(--radius); font-size:.9rem; font-weight:500;
  transition:background var(--t),color var(--t);
  touch-action: manipulation;
}
#main-nav a:hover { background:rgba(255,255,255,.10); color:#fff }
#main-nav a.active { background:var(--green); color:#fff; font-weight:700 }
.nav-toggle {
  display:none; flex-direction:column;
  justify-content:center; gap:5px;
  width:36px; height:36px;
  background:transparent; border:none; cursor:pointer; padding:4px;
  touch-action: manipulation;
}
.nav-toggle span { display:block; height:2px; background:#fff; border-radius:2px; transition:transform var(--t),opacity var(--t) }
.nav-toggle[aria-expanded=true] span:nth-child(1) { transform:translateY(7px) rotate(45deg) }
.nav-toggle[aria-expanded=true] span:nth-child(2) { opacity:0 }
.nav-toggle[aria-expanded=true] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg) }
@media(max-width:720px) {
  .site-logo-name { font-size:1rem }
  .site-logo-tagline { font-size:.58rem }
  .nav-toggle { display:flex }
  #main-nav {
    display:none; position:absolute;
    top:var(--hh); left:0; right:0; z-index:200;
    background:var(--blue-dark);
    border-top:2px solid var(--green);
    padding:.75rem 1.25rem 1rem;
    box-shadow:0 8px 24px rgba(0,0,0,.4);
  }
  #main-nav.open { display:block }
  #main-nav ul { flex-direction:column; gap:.1rem }
  #main-nav a { padding:.65rem .75rem; font-size:1rem }
}

/* ── Glow animation ──────────────────────────────────── */
@keyframes cross-glow {
  0%,100% { text-shadow:0 0 16px rgba(221,176,64,.7), 0 0 40px rgba(196,149,42,.4) }
  50%     { text-shadow:0 0 28px rgba(221,176,64,.95),0 0 70px rgba(196,149,42,.6) }
}

/* ── Hero ─────────────────────────────────────────────── */
.hero {
  position:relative;
  background:
    radial-gradient(ellipse at 50% -5%, rgba(196,149,42,.22) 0%, transparent 52%),
    radial-gradient(ellipse at 10% 110%, rgba(30,58,110,.6) 0%, transparent 55%),
    radial-gradient(ellipse at 90% 110%, rgba(45,106,79,.5) 0%, transparent 55%),
    linear-gradient(168deg, rgba(14,36,71,.58) 0%, rgba(26,47,90,.52) 42%, rgba(28,61,74,.52) 68%, rgba(26,61,48,.58) 100%),
    url('/assets/images/hero.jpg') center 32% / cover no-repeat;
  color:#fff;
  min-height:52vh;
  padding:7rem 0 6rem;
  display:flex;
  align-items:center;
  text-align:center;
}
.hero::after {
  content:'';
  position:absolute; bottom:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--blue-mid), var(--green), var(--gold));
}
.hero-inner { max-width:680px; margin:0 auto }
.hero-cross {
  font-size:3.5rem; color:var(--gold-lt);
  margin-bottom:.5rem;
  animation:cross-glow 3.5s ease-in-out infinite;
}
.hero h1 {
  color:#fff; margin-bottom:.5rem;
  text-shadow:0 0 40px rgba(255,255,255,.2), 0 2px 12px rgba(0,0,0,.55);
}
.hero-sub {
  font-size:1.15rem; color:rgba(255,255,255,.88); margin-bottom:.35rem;
  text-shadow:0 1px 6px rgba(0,0,0,.4);
}
.hero-addr {
  font-size:.95rem; color:rgba(255,255,255,.65);
  text-shadow:0 1px 4px rgba(0,0,0,.35);
}
.hero-omse {
  display:inline-block; margin-top:1.5rem;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  border-left:3px solid var(--green-lt);
  border-radius:var(--radius);
  padding:.85rem 1.75rem;
  font-size:.95rem; color:rgba(255,255,255,.92);
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}

/* ── Page hero ───────────────────────────────────────── */
.page-hero {
  background:
    radial-gradient(ellipse at 50% -20%, rgba(196,149,42,.15) 0%, transparent 60%),
    linear-gradient(160deg, rgba(14,36,71,.62) 0%, rgba(30,58,110,.56) 55%, rgba(26,66,51,.62) 100%);
  color:#fff;
  padding:3rem 0 2.75rem;
  border-bottom:3px solid var(--green);
  text-align:center;
}
.page-hero h1 {
  color:#fff; margin-bottom:.4rem;
  text-shadow:0 0 30px rgba(255,255,255,.18), 0 2px 8px rgba(0,0,0,.5);
}
.page-hero p {
  color:rgba(255,255,255,.75); font-size:.95rem;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}
/* ── Section header ──────────────────────────────────── */
.section-header {
  display:flex; align-items:baseline;
  justify-content:space-between;
  margin-bottom:1.75rem; gap:1rem;
}
.section-header h2 { position:relative; padding-bottom:.5rem }
.section-header h2::after {
  content:''; position:absolute;
  bottom:0; left:0; width:40px; height:3px;
  background:var(--green); border-radius:2px;
}
.section-center-title { text-align:center; margin-bottom:2rem }

/* ── Cards ──────────────────────────────────────────── */
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.25rem }
.card {
  background:#fff; border-radius:var(--radius-lg);
  padding:1.5rem; box-shadow:var(--shadow-sm);
  border:1px solid var(--gray-200); border-top:3px solid var(--blue);
  display:flex; flex-direction:column; gap:.5rem;
  transition:box-shadow var(--t),transform var(--t);
}
.card:hover {
  box-shadow:0 8px 32px rgba(30,58,110,.14);
  transform:translateY(-3px);
}
.card-date { font-size:.8rem; font-weight:700; letter-spacing:.04em; color:var(--green); text-transform:uppercase }
.card-excerpt { font-size:.88rem; color:var(--muted); flex:1 }
.card-title-link,
.card-title-link:hover,
.card-title-link:focus,
.card-title-link:visited {
  color:var(--blue);
  text-decoration:none;
}
.card-title-link:hover,
.card-title-link:focus { color:var(--green) }

/* ── Quick links ─────────────────────────────────────── */
.quick-links { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1rem }
.ql-card {
  display:flex; flex-direction:column; align-items:center;
  text-align:center; gap:.5rem; background:#fff;
  border:2px solid var(--gray-200); border-radius:var(--radius-lg);
  padding:1.75rem 1rem; text-decoration:none; color:inherit;
  transition:border-color var(--t),box-shadow var(--t),transform var(--t);
  touch-action: manipulation;
}
.ql-card:hover {
  border-color:var(--green);
  box-shadow:0 8px 28px rgba(45,106,79,.14);
  transform:translateY(-3px); color:inherit;
}
.ql-icon {
  width:54px; height:54px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(30,58,110,.07) 0%, rgba(45,106,79,.07) 100%);
  border-radius:14px;
  color:var(--blue);
  transition:background var(--t),color var(--t);
  flex-shrink:0;
}
.ql-card:hover .ql-icon {
  background:linear-gradient(135deg, var(--blue) 0%, var(--green) 100%);
  color:#fff;
}
.ql-icon svg { width:28px; height:28px }
.ql-card h3 { color:var(--blue); margin:0 }
.ql-card p { font-size:.85rem; color:var(--muted); margin:0 }

/* ── Oznamy ──────────────────────────────────────────── */
.oznamy-list { display:flex; flex-direction:column }
.oznamy-item {
  display:grid; grid-template-columns:120px 1fr;
  gap:1rem; padding:1.5rem 0;
  border-bottom:1px solid var(--gray-200);
}
.oznamy-item:first-child { border-top:1px solid var(--gray-200) }
.oznamy-date { font-family:var(--font-sans); font-size:.85rem; font-weight:700; color:var(--green); padding-top:.2rem }
.oznamy-title { font-size:1.1rem; margin-bottom:.5rem }
.oznamy-title a,
.oznamy-title a:hover,
.oznamy-title a:focus,
.oznamy-title a:visited {
  color:var(--blue);
  text-decoration:none;
}
.oznamy-title a:hover,
.oznamy-title a:focus { color:var(--green) }
.oznamy-pdf-feature {
  background:#fff;
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  padding:1.1rem;
  margin-bottom:1.5rem;
}
.oznamy-pdf-feature-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:.5rem;
}
.oznamy-pdf-feature-head h2 {
  margin:0;
  font-size:1.15rem;
}
.oznamy-pdf-feature-head span {
  color:var(--muted);
  font-size:.88rem;
  font-weight:700;
}
.oznamy-pdf-feature-title {
  margin-bottom:.3rem;
}
.oznamy-pdf-archive {
  margin-top:1rem;
  padding-top:.85rem;
  border-top:1px solid var(--gray-200);
}
.oznamy-pdf-archive h3 {
  font-size:1rem;
  margin:0 0 .55rem;
}
.oznamy-pdf-archive ul {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
.oznamy-pdf-archive li {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.8rem;
  padding:.25rem 0;
}
.oznamy-pdf-archive a {
  color:var(--blue);
  text-decoration:none;
}
.oznamy-pdf-archive a:hover,
.oznamy-pdf-archive a:focus {
  color:var(--green);
  text-decoration:underline;
}
.oznamy-pdf-archive span {
  color:var(--muted);
  font-size:.84rem;
  white-space:nowrap;
}
.oznamy-pdf-preview {
  margin-top:1rem;
  border:1px solid var(--gray-200);
  border-radius:var(--radius);
  overflow:hidden;
  background:#f8fafc;
  box-shadow:var(--shadow-sm);
  min-height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.oznamy-pdf-preview:focus {
  outline:2px solid var(--green);
  outline-offset:2px;
}
.oznamy-pdf-canvas {
  display:block;
  width:100%;
  height:auto;
  background:#fff;
}
.oznamy-pdf-status {
  padding:1rem;
  text-align:center;
  color:var(--muted);
  font-size:.92rem;
}
.oznamy-pdf-hint {
  margin-top:.5rem;
  font-size:.84rem;
  color:var(--muted);
}
.oznamy-pdf-download {
  margin-top:.55rem;
  font-size:.92rem;
}
.oznamy-pdf-download a {
  color:var(--green-dark);
  font-weight:600;
  text-decoration:none;
  border-bottom:1px solid rgba(26,66,51,.45);
}
.oznamy-pdf-download a:hover,
.oznamy-pdf-download a:focus {
  color:var(--green);
  border-bottom-color:var(--green);
}
@media(max-width:720px) {
  .oznamy-pdf-archive li {
    flex-direction:column;
    align-items:flex-start;
    gap:.15rem;
  }
}
@media(max-width:500px) { .oznamy-item { grid-template-columns:1fr; gap:.25rem } }

/* ── Pagination ──────────────────────────────────────── */
.pagination { display:flex; gap:.5rem; margin-top:2rem; justify-content:center }
.pagination a {
  display:inline-block; padding:.4rem .85rem;
  border:1px solid var(--gray-200); border-radius:var(--radius);
  text-decoration:none; color:var(--blue); font-size:.9rem;
  transition:box-shadow var(--t);
}
.pagination a:hover { box-shadow:0 2px 10px rgba(30,58,110,.12) }
.pagination a.active { background:var(--green); color:#fff; border-color:var(--green) }

/* ── História prose ──────────────────────────────────── */
.prose-container { max-width:780px }
.richtext p { margin-bottom:1rem }
.richtext h2 { margin:2rem 0 .75rem }
.richtext h3 { margin:1.5rem 0 .5rem }
.richtext ul,.richtext ol { margin:.75rem 0 .75rem 1.5rem }
.richtext li { margin-bottom:.35rem }

/* Historia page readability */
.historia-section { padding-top:3.25rem }
.historia-prose {
  max-width:860px;
  margin:0 auto;
  background:#fff;
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  box-shadow:0 10px 36px rgba(20,40,70,.08);
  padding:clamp(1.1rem, 3.2vw, 2rem);
}
.historia-toc {
  max-width:72ch;
  margin:0 auto 1.4rem;
  padding:.9rem 1rem;
  border:1px solid #dfe5ee;
  border-radius:12px;
  background:linear-gradient(180deg, #f7f9fc 0%, #f2f6fb 100%);
}
.historia-toc h2 {
  margin:0 0 .55rem;
  font-size:1rem;
  font-family:var(--font-sans);
  font-weight:700;
  color:var(--blue);
}
.historia-toc ol {
  margin:0;
  padding-left:1.1rem;
  display:flex;
  flex-direction:column;
  gap:.35rem;
}
.historia-toc li { line-height:1.3 }
.historia-toc li.toc-sub { margin-left:.85rem }
.historia-toc a {
  color:#264766;
  text-decoration:none;
  font-size:.95rem;
}
.historia-toc a:hover { color:var(--green); text-decoration:underline }
.historia-prose .richtext {
  font-size:1.04rem;
  line-height:1.85;
  color:#27384f;
}
.historia-prose .richtext > * {
  max-width:72ch;
  margin-left:auto;
  margin-right:auto;
}
.historia-prose .richtext p { margin-bottom:1.15rem }
.historia-prose .richtext h2,
.historia-prose .richtext h3 {
  color:var(--blue);
  line-height:1.3;
}
.historia-prose .richtext h2 {
  margin-top:2.3rem;
  padding-top:.6rem;
  border-top:1px solid var(--gray-200);
  scroll-margin-top:110px;
}
.historia-prose .richtext h3 {
  margin-top:1.6rem;
  scroll-margin-top:110px;
}
.historia-prose .richtext blockquote {
  border-left:4px solid var(--green);
  padding:.4rem 0 .4rem 1rem;
  margin:1.2rem auto;
  font-style:italic;
  color:#385373;
  background:rgba(45,106,79,.05);
  border-radius:0 var(--radius) var(--radius) 0;
}
.historia-prose .richtext img {
  display:block;
  width:min(100%, 760px) !important;
  height:clamp(220px, 42vw, 460px) !important;
  max-width:100%;
  object-fit:contain;
  background:linear-gradient(180deg, #f2f5f9 0%, #eef2f6 100%);
  border:1px solid #d9e0ea;
  border-radius:12px;
  margin:1.4rem auto;
  padding:.35rem;
  box-shadow:0 6px 24px rgba(18,36,66,.1);
}
.historia-prose .richtext a {
  text-decoration-thickness:.08em;
  text-underline-offset:.16em;
}

@media(max-width:720px) {
  .historia-prose { padding:1rem .85rem }
  .historia-toc { padding:.75rem .8rem }
  .historia-prose .richtext { font-size:1rem; line-height:1.75 }
  .historia-prose .richtext img { height:clamp(190px, 58vw, 330px) !important }
}

/* ── Dokumenty ───────────────────────────────────────── */
.docs-category { margin:2.5rem 0 1rem; padding-bottom:.4rem; border-bottom:2px solid var(--green) }
.docs-category:first-of-type { margin-top:0 }
.docs-grid { display:flex; flex-direction:column; gap:.75rem }
.doc-card {
  display:flex; align-items:center; gap:1rem;
  background:#fff; border-radius:var(--radius);
  padding:1rem 1.25rem;
  border:1px solid var(--gray-200); border-left:4px solid var(--blue);
  box-shadow:var(--shadow-sm);
  transition:box-shadow var(--t),transform var(--t);
}
.doc-card:hover { box-shadow:0 6px 24px rgba(30,58,110,.12); transform:translateX(3px) }
.doc-icon { font-size:1.75rem; flex-shrink:0 }
.doc-info { flex:1; min-width:0 }
.doc-info strong { display:block }
.doc-info p { font-size:.85rem; color:var(--muted); margin:.15rem 0 0 }

/* ── Gallery ─────────────────────────────────────────── */
.albums-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.25rem }
.album-card {
  text-decoration:none; color:inherit;
  border-radius:var(--radius-lg); overflow:hidden;
  background:#fff; box-shadow:var(--shadow-sm);
  border:1px solid var(--gray-200);
  transition:box-shadow var(--t),transform var(--t);
  touch-action: manipulation;
}
.album-card:hover {
  box-shadow:0 8px 32px rgba(30,58,110,.16);
  transform:translateY(-3px);
}
.album-card img { width:100%; aspect-ratio:4/3; object-fit:cover }
.album-placeholder { width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; background:var(--gray-100); font-size:3rem }
.album-info { padding:.75rem 1rem }
.album-info h3 { font-size:1rem; margin:0 0 .2rem }
.album-info span { font-size:.85rem; color:var(--muted) }
.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:.5rem }
.photo-thumb {
  background:none; border:none; cursor:pointer;
  padding:0; border-radius:var(--radius); overflow:hidden;
  aspect-ratio:4/3; transition:transform var(--t),box-shadow var(--t);
  touch-action: manipulation;
}
.photo-thumb:hover { transform:scale(1.04); box-shadow:0 6px 20px rgba(0,0,0,.25) }
.photo-thumb:focus-visible { outline:3px solid var(--green); outline-offset:2px }
.photo-thumb img { width:100%; height:100%; object-fit:cover }
.lightbox { position:fixed; inset:0; z-index:999; background:rgba(0,0,0,.93); display:flex; align-items:center; justify-content:center }
.lightbox[hidden] { display:none }
.lb-wrap { max-width:90vw; max-height:85vh }
.lb-slide { display:none }
.lb-slide.active { display:flex; flex-direction:column; align-items:center }
.lb-slide img { max-width:90vw; max-height:80vh; object-fit:contain; border-radius:var(--radius) }
.lb-slide figcaption { color:rgba(255,255,255,.75); font-size:.9rem; margin-top:.6rem }
.lb-counter {
  position:absolute;
  top:1rem;
  left:1rem;
  color:#fff;
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  padding:.28rem .7rem;
  font-size:.82rem;
  font-weight:600;
}
.lb-close,.lb-prev,.lb-next {
  position:absolute; background:rgba(255,255,255,.12);
  border:none; color:#fff; font-size:1.75rem; cursor:pointer;
  border-radius:50%; width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  transition:background var(--t),box-shadow var(--t);
  touch-action: manipulation;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover {
  background:rgba(255,255,255,.22);
  box-shadow:0 0 16px rgba(255,255,255,.15);
}
.lb-close { top:1rem; right:1rem }
.lb-prev { left:1rem; top:50%; transform:translateY(-50%) }
.lb-next { right:1rem; top:50%; transform:translateY(-50%) }

/* ── Kontakt ─────────────────────────────────────────── */
.kk-info-section {
  background:
    radial-gradient(ellipse at 20% 0%, rgba(43,94,167,.08) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(45,106,79,.08) 0%, transparent 55%),
    linear-gradient(160deg, #eaecf5 0%, #eaf0ea 100%);
  padding:3.5rem 0;
  text-align:center;
}
.kk-section-title { text-align:center; margin-bottom:2rem }
.kk-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(210px,1fr));
  gap:1.25rem;
  max-width:860px;
  margin:0 auto;
}
.kk-card {
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-radius:var(--radius-lg);
  padding:1.75rem 1.25rem;
  text-align:center;
  box-shadow:0 4px 20px rgba(30,58,110,.09), 0 0 0 1px rgba(255,255,255,.7);
  border-top:3px solid var(--blue);
  transition:box-shadow var(--t),transform var(--t),border-color var(--t);
}
.kk-card:hover {
  box-shadow:0 10px 36px rgba(30,58,110,.16);
  transform:translateY(-4px);
  border-top-color:var(--green);
}
.kk-card--wide {
  grid-column:span 2;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto 1fr;
  text-align:left;
  gap:.2rem 1rem;
}
.kk-card--wide .kk-icon { grid-row:span 2; align-self:center; margin-bottom:0 }
.kk-icon { font-size:2.2rem; margin-bottom:.6rem; display:block; filter:drop-shadow(0 2px 6px rgba(45,106,79,.25)) }
.kk-label { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin-bottom:.25rem }
.kk-value { color:var(--text); font-size:.95rem }
.kk-value a { color:var(--blue); text-decoration:none }
.kk-value a:hover { color:var(--green) }

.kk-map-section { background:var(--gray-100) }
.kk-map-wrap { max-width:900px; margin:0 auto }
.kk-map-wrap iframe { width:100%; height:380px; border:0; display:block }
@media(max-width:600px) { .kk-map-wrap iframe { height:260px } }

.kk-form-section { padding:3rem 0 }
.kk-form-card {
  max-width:580px; margin:0 auto;
  background:#fff; border-radius:var(--radius-lg);
  padding:2.5rem 2rem; box-shadow:var(--shadow-md);
}
.kk-form-title { text-align:center; margin-bottom:1.75rem; color:var(--blue) }
.kk-form-title::after {
  content:''; display:block;
  width:3rem; height:3px;
  background:linear-gradient(90deg, var(--blue), var(--green));
  border-radius:2px; margin:.6rem auto 0;
}

/* ── Form fields ─────────────────────────────────────── */
.contact-form { display:flex; flex-direction:column; gap:1rem }
.form-group { display:flex; flex-direction:column; gap:.35rem }
.form-group label { font-size:.9rem; font-weight:600; color:var(--blue); display:flex; flex-direction:column; gap:.35rem }
.form-group input,.form-group textarea {
  padding:.6rem .85rem; border:2px solid var(--gray-200);
  border-radius:var(--radius); font-size:1rem; font-family:inherit;
  background:#fff; color:var(--text);
  transition:border-color var(--t),box-shadow var(--t); width:100%;
}
.form-group input:focus,.form-group textarea:focus {
  outline:none; border-color:var(--green);
  box-shadow:0 0 0 3px rgba(45,106,79,.10);
}
.form-group textarea { resize:vertical; min-height:120px }
.form-success { color:#1a6e38; padding:.85rem 1rem; background:#e8f5ec; border-radius:var(--radius); border-left:3px solid var(--green) }
.form-error   { color:#c0392b; padding:.85rem 1rem; background:#fde8e8; border-radius:var(--radius); border-left:3px solid #c0392b }

/* ── Footer ──────────────────────────────────────────── */
.site-footer {
  background:var(--blue-dark);
  color:rgba(255,255,255,.80);
  margin-top:2rem;
  border-top:4px solid var(--green);
}
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:2.5rem; padding:3rem 0 2rem }
@media(max-width:680px) { .footer-grid { grid-template-columns:1fr; gap:1.5rem } }
.footer-logo { font-family:var(--font-sans); font-size:1.15rem; font-weight:700; color:#fff; margin-bottom:.5rem }
.footer-grid h4 { color:var(--gold-lt); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.75rem }
.footer-grid ul { list-style:none; display:flex; flex-direction:column; gap:.4rem }
.footer-grid a { color:rgba(255,255,255,.70); text-decoration:none; font-size:.9rem }
.footer-grid a:hover { color:var(--green-lt) }
.footer-grid p { font-size:.9rem; margin-bottom:.3rem }
.omse-info { font-style:italic; font-size:.85rem; margin-top:.4rem; color:rgba(255,255,255,.60) }
.footer-bottom { border-top:1px solid rgba(255,255,255,.10); padding:1rem 0; font-size:.82rem; color:rgba(255,255,255,.45) }
.footer-bottom .container { text-align:center }

/* ── Responsive ──────────────────────────────────────── */
@media(max-width:900px) {
  .cards-grid { grid-template-columns:repeat(2,1fr) }
  .quick-links { grid-template-columns:repeat(2,1fr) }
  .albums-grid { grid-template-columns:repeat(2,1fr) }
  .footer-grid { grid-template-columns:1fr 1fr }
}
@media(max-width:768px) {
  .hero { padding:3.75rem 0 3rem }
  .hero-cross { font-size:2.75rem }
  .hero h1 { font-size:1.85rem }
  .hero-sub { font-size:1rem }
  .hero-omse { padding:.65rem 1.1rem; font-size:.88rem }
  .page-hero { padding:2rem 0 1.75rem }
  .page-hero h1 { font-size:1.6rem }
  .page-hero::before { font-size:1.2rem; margin-bottom:.3rem }
  .section { padding:2.25rem 0 }
  .section-header { flex-direction:column; align-items:flex-start; gap:.4rem }
  .cards-grid { grid-template-columns:1fr }
  .oznamy-item { grid-template-columns:1fr; gap:.2rem }
  .oznamy-date { font-size:.8rem }
  .doc-card { flex-wrap:wrap; gap:.75rem }
  .doc-card .btn { width:100%; text-align:center }
  .kk-form-card { padding:1.75rem 1.1rem }
  .kk-grid { grid-template-columns:repeat(2,1fr) }
  .footer-grid { grid-template-columns:1fr; gap:1.5rem }
}
@media(max-width:520px) {
  .kk-card--wide { grid-column:span 1; grid-template-columns:1fr; text-align:center }
  .kk-card--wide .kk-icon { grid-row:auto; margin-bottom:.5rem }
}
@media(max-width:480px) {
  .hero { padding:2.75rem 0 2.25rem }
  .hero-cross { font-size:2.2rem }
  .hero h1 { font-size:1.6rem }
  .cards-grid,.quick-links,.albums-grid,.kk-grid { grid-template-columns:1fr }
  .photo-grid { grid-template-columns:repeat(2,1fr) }
  .kk-form-card { padding:1.5rem .9rem; border-radius:var(--radius) }
  .lb-prev { left:.4rem }
  .lb-next { right:.4rem }
  .pagination { flex-wrap:wrap }
}

/* ── iPhone safe areas ───────────────────────────────── */
@supports (padding: max(0px)) {
  .site-header {
    padding-left:  max(0px, env(safe-area-inset-left));
    padding-right: max(0px, env(safe-area-inset-right));
  }
  .container {
    padding-left:  max(1.25rem, calc(env(safe-area-inset-left)  + .75rem));
    padding-right: max(1.25rem, calc(env(safe-area-inset-right) + .75rem));
  }
}

/* ── Captcha ─────────────────────────────────────────── */
.captcha-row { display:flex; align-items:center; gap:1rem; margin-top:.35rem }
.captcha-display {
  display:flex; flex-direction:column; align-items:center; gap:.2rem;
  background:var(--gray-100); border:2px dashed var(--gray-200);
  border-radius:var(--radius); padding:.55rem 1.1rem;
  user-select:none; flex-shrink:0;
}
.captcha-hint { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--muted) }
.captcha-code { font-family:var(--font-mono); font-size:1.9rem; font-weight:700; letter-spacing:.25em; color:var(--blue); line-height:1 }
.captcha-row input[type="text"] { width:90px !important; font-size:1.4rem !important; text-align:center; letter-spacing:.2em; font-family:var(--font-mono); padding:.5rem .6rem !important }

/* ── Oznamy link ─────────────────────────────────────── */
.oznamy-link { display:inline-block; margin-top:.85rem }

/* ── Admin link section ──────────────────────────────── */
.link-section { border:1px solid var(--gray-200); border-radius:var(--radius); margin-bottom:1rem; background:#fafafa }
.link-summary { padding:.75rem 1rem; cursor:pointer; font-weight:600; font-size:.9rem; color:var(--blue); display:flex; align-items:center; gap:.5rem; user-select:none; list-style:none }
.link-summary::-webkit-details-marker { display:none }
.link-summary-icon { font-size:1.1rem }
.link-section[open] .link-summary { border-bottom:1px solid var(--gray-200) }
.link-section-body { padding:1rem }
.link-section-hint { font-size:.85rem; color:var(--muted); margin-bottom:1rem }
