:root{--bg:#f7f1e8;--text:#1c1917;--muted:#57534e;--green:#14532d;--green-dark:#052e16;--white:#fff;--border:#e7e0d6;--sand:#efe4d3;--shadow:0 24px 70px rgba(28,25,23,.12);--radius:28px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 40px));margin:0 auto}header{position:sticky;top:0;z-index:10;background:rgba(247,241,232,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header-inner{
  
min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:14px;font-weight:800}.brand-mark{width:48px;height:48px;border-radius:18px;background:var(--green);color:white;display:grid;place-items:center;font-weight:900;letter-spacing:-.04em}.brand small{display:block;color:var(--green);font-size:11px;text-transform:uppercase;letter-spacing:.22em;line-height:1.1}nav{display:flex;gap:28px;font-size:15px;font-weight:700;color:var(--muted)}nav a:hover{color:var(--green)}section{padding:80px 0}.hero{position:relative;overflow:hidden;min-height:0;display:block}.hero::before{display:none}.hero-content{position:relative;z-index:1;max-width:none;padding:0}.section-label{color:var(--green);font-size:18px;font-weight:900;text-transform:uppercase;letter-spacing:.24em;margin-bottom:12px}h1{font-size:clamp(44px,7vw,78px);line-height:.98;letter-spacing:-.06em;margin-bottom:24px}h2{font-size:clamp(32px,4vw,52px);line-height:1;letter-spacing:-.04em;margin-bottom:18px}h3{font-size:24px;line-height:1.15;margin-bottom:12px}.lead{max-width:760px;color:var(--muted);font-size:20px;line-height:1.75;margin-bottom:34px}.card{background:white;border-radius:var(--radius);padding:30px;border:1px solid rgba(231,224,214,.75);box-shadow:0 10px 34px rgba(28,25,23,.06)}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:46px;align-items:start}.contact-item{display:flex;gap:16px;margin-top:16px;padding:22px;border-radius:24px;background:white;box-shadow:0 8px 24px rgba(28,25,23,.05)}.icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#e8f2ea;color:var(--green);font-size:24px;flex:none}.events-box{margin-top:40px}.events-section{margin-top:34px}.events-header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.events-header h2{margin:0;font-size:1.45rem}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;font-size:.9rem;font-weight:700;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.06);color:var(--green-dark)}.events-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.event-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:1px solid #f0e7dc;display:flex;flex-direction:column;min-height:100%}.event-card.past-card{opacity:.72;filter:saturate(.72)}.event-top-dark{display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(135deg,var(--event-color-1,#2f2f2f),var(--event-color-2,#444));color:white}.event-top-dark h3{margin:0;font-size:1.15rem;font-weight:700}.event-icon{font-size:2.1rem}.event-status-inline{margin-left:auto;font-size:.7rem;font-weight:700;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.14);color:#e5e7eb;white-space:nowrap}.status-live{background:#22c55e;color:#fff}.event-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:18px;flex:1}.event-body p{margin:0;line-height:1.7;color:#4b5563}.event-details{display:flex;flex-direction:column;gap:10px}.detail-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;width:100%}.detail-label{font-size:.86rem;font-weight:800;color:var(--green-dark);white-space:nowrap}.detail-strong{font-weight:700;color:var(--text)}.meta-icon{font-size:.95rem;line-height:1}.gps-text{font-size:.82rem;color:var(--muted)}.multi-icons{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-link,.facebook-link,.info-link,.photos-link,.mapy-link,.gmaps-link,.copy-link{color:var(--green-dark);font-weight:800;text-decoration:none}.calendar-link:hover,.facebook-link:hover,.info-link:hover,.photos-link:hover,.mapy-link:hover,.gmaps-link:hover{text-decoration:underline}.mapy-logo,.facebook-logo,.link-logo,.photo-logo,.calendar-logo,.google-logo,.gmaps-logo{width:22px;height:22px;display:block;flex-shrink:0;object-fit:contain}.copy-link{margin-left:12px;color:#9ca3af;font-size:.78rem;font-weight:600;display:inline-flex;align-items:center;gap:5px;opacity:.8;transition:.2s ease}.copy-link:hover{color:#6b7280;opacity:1;text-decoration:none;transform:translateY(-1px)}.copy-link::before{content:"📋";font-size:.85rem;line-height:1}.location-block,.time-block,.links-wrapper{display:flex;flex-direction:column;gap:4px}.location-main,.time-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.location-sub,.time-sub,.links-block{margin-left:24px;font-size:.9rem;color:#4b5563}.date-strong,.time-strong{font-weight:700;color:var(--text)}.date-weak{color:var(--muted)}.time-actions{display:inline-flex;align-items:center;gap:6px;margin-left:8px}.empty-message,.footer-note{background:rgba(255,255,255,.75);border:1px dashed #d6c5b2;padding:16px 18px;border-radius:16px;color:var(--muted)}.footer-note{margin-top:28px;border-style:solid}footer{padding:36px 0;background:#1c1917;color:#fff}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-links{display:flex;gap:18px;color:rgba(255,255,255,.72);font-size:14px}@media(max-width:820px){nav{display:none}.contact-grid{grid-template-columns:1fr}section{padding:60px 0}.hero{min-height:auto}.footer-inner{align-items:start;flex-direction:column}}


/* přesné doskočení na kotvy pod sticky menu */
section[id] { scroll-margin-top: 96px; }

/* Upravené nadpisy sekcí akcí ve stejném stylu jako O spolku a Kontakt */
.section-count{margin:-16px 0 24px 0;display:flex;align-items:center;gap:12px}
#akce .events-grid,#uskutecnene-akce .events-grid{margin-top:0}
#akce h2,#uskutecnene-akce h1{margin-bottom:18px}


/* Dokumenty */
.documents-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:10px}
.document-card{display:flex;align-items:center;gap:18px;background:white;border:1px solid rgba(231,224,214,.75);border-radius:var(--radius);padding:24px;box-shadow:0 10px 34px rgba(28,25,23,.06);transition:.2s ease}
.document-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.document-card strong{display:block;font-size:20px;line-height:1.2;margin-bottom:6px;color:var(--text)}
.document-card small{display:block;color:var(--muted);font-size:14px}
.pdf-icon{width:58px;height:58px;border-radius:18px;background:#fee2e2;color:#b91c1c;display:grid;place-items:center;flex:none}
.pdf-icon svg{width:38px;height:38px;display:block}
.pic-icon{width:58px;height:58px;border-radius:18px;color:#b91c1c;display:grid;place-items:center;flex:none}


/* Statistiky */
.members-card{margin-top:8px}
.table-wrap{width:100%;overflow-x:auto}
.members-table{width:100%;border-collapse:collapse;min-width:560px}
.members-table caption{text-align:left;font-size:22px;font-weight:800;color:var(--text);margin-bottom:18px}
.members-table th,.members-table td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left}
.members-table th{background:#e8f2ea;color:var(--green-dark);font-size:13px;text-transform:uppercase;letter-spacing:.12em}
.members-table td:not(:first-child),.members-table th:not(:first-child){text-align:right}
.members-table tbody tr:last-child td{border-bottom:0;font-weight:800;color:var(--green-dark)}
.members-summary{margin-top:24px;padding:18px 20px;border-radius:18px;background:var(--sand);color:var(--muted);font-size:18px}
.members-summary strong{color:var(--green-dark)}


.brand-logo{
  height:58px;
  width:auto;
  display:block;
}


.header-map img{
  height:58px;
  width:auto;
  border-radius:10px;
  display:block;
}

.header-inner{
  

  display:flex;
  align-items:center;
  gap:20px;
}


header{
  position:relative;
  overflow:hidden;
}



.header-inner{
  

  position:relative;
  z-index:1;
}

nav,
.brand{
  position:relative;
  z-index:2;
}


.intro-map{
  margin-top:32px;
}

.intro-map img{
  width:100%;
  height:auto;
  border-radius:18px;
  display:block;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}

/* Responsive fixes – tables and header menu */
html{
  box-sizing:border-box;
}

*, *::before, *::after{
  box-sizing:inherit;
}

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

/* Tables should never overflow the page on phones */
.table-wrap,
.table-responsive,
.data-table-wrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

table{
  width:100%;
  max-width:100%;
  border-collapse:collapse;
}

table th,
table td{
  overflow-wrap:anywhere;
}

/* Header/menu: flexible layout on all screen sizes */
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.brand{
  flex:0 0 auto;
}

.brand-logo{
  max-height:58px;
  width:auto;
  display:block;
}

nav[data-menu="main"]{
  flex:1 1 420px;
}

nav[data-menu="main"] ul,
.main-menu,
.menu{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px 16px;
  margin:0;
  padding:0;
  list-style:none;
}

nav[data-menu="main"] a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 10px;
  white-space:nowrap;
}

/* Mobile layout */
@media (max-width: 760px){
  .container{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
  }

  .header-inner{
    justify-content:center;
    gap:12px;
    padding-top:12px;
    padding-bottom:12px;
  }

  .brand{
    width:100%;
    display:flex;
    justify-content:center;
  }

  .brand-logo{
    max-height:52px;
  }

  nav[data-menu="main"]{
    width:100%;
    flex:1 1 100%;
  }

  nav[data-menu="main"] ul,
  .main-menu,
  .menu{
    justify-content:center;
    gap:8px;
  }

  nav[data-menu="main"] a{
    font-size:14px;
    min-height:36px;
    padding:7px 9px;
  }

  .intro-map{
    margin-top:20px;
  }

  .intro-map img{
    border-radius:14px;
  }

  /* Card-like mobile tables for better readability */
  table{
    font-size:14px;
  }

  table th,
  table td{
    padding:8px 10px;
  }
}

@media (max-width: 520px){
  body{
    overflow-x:hidden;
  }

  .header-inner{
    align-items:center;
  }

  nav[data-menu="main"] ul,
  .main-menu,
  .menu{
    width:100%;
  }

  nav[data-menu="main"] li{
    flex:1 1 auto;
  }

  nav[data-menu="main"] a{
    width:100%;
    justify-content:center;
    white-space:normal;
    text-align:center;
    line-height:1.2;
  }

  /* If tables are still too wide, allow horizontal scrolling instead of clipping */
  .table-wrap,
  .table-responsive,
  .data-table-wrap,
  section{
    max-width:100%;
  }

  table{
    min-width:0;
  }

  table th,
  table td{
    font-size:13px;
    padding:7px 8px;
  }
}



/* FINAL mobile navigation override */
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

nav[data-menu="main"]{
  display:block;
}

nav[data-menu="main"] ul{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px 14px;
  margin:0;
  padding:0;
  list-style:none;
}

nav[data-menu="main"] a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

@media (max-width: 760px){
  header{
    overflow:visible;
  }

  .header-inner{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:12px;
    padding:14px 16px;
  }

  .brand{
    display:flex;
    justify-content:center;
    width:100%;
  }

  .brand-logo{
    max-height:56px;
    width:auto;
  }

  nav[data-menu="main"]{
    display:block !important;
    width:100% !important;
    flex:none !important;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(0,0,0,.08);
    border-radius:16px;
    padding:8px;
    box-shadow:0 8px 22px rgba(0,0,0,.08);
  }

  nav[data-menu="main"] ul{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    width:100%;
    margin:0;
    padding:0;
    list-style:none;
  }

  nav[data-menu="main"] li{
    display:block;
    width:100%;
  }

  nav[data-menu="main"] a{
    display:flex !important;
    width:100%;
    min-height:42px;
    padding:9px 10px;
    border-radius:12px;
    background:rgba(255,255,255,.78);
    color:var(--green);
    font-size:14px;
    font-weight:800;
    line-height:1.18;
    text-align:center;
    white-space:normal;
  }
}

@media (max-width: 420px){
  nav[data-menu="main"] ul{
    grid-template-columns:1fr;
  }

  nav[data-menu="main"] a{
    min-height:40px;
    font-size:14px;
  }
}


/* FINAL table mobile scroll fix */
.table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  margin:18px 0 24px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.06);
}

.table-wrap table{
  width:100%;
  min-width:620px;
  margin:0;
  border-collapse:collapse;
}

.table-wrap th,
.table-wrap td{
  white-space:nowrap;
}

.table-wrap::-webkit-scrollbar{
  height:10px;
}

.table-wrap::-webkit-scrollbar-track{
  background:rgba(0,0,0,.06);
  border-radius:999px;
}

.table-wrap::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.28);
  border-radius:999px;
}

.table-wrap::after{
  content:"";
}

@media (max-width:760px){
  .table-wrap{
    margin-left:-2px;
    margin-right:-2px;
    border-radius:14px;
  }

  .table-wrap table{
    min-width:560px;
    font-size:14px;
  }

  .table-wrap th,
  .table-wrap td{
    padding:9px 10px;
  }
}

@media (max-width:420px){
  .table-wrap table{
    min-width:520px;
    font-size:13px;
  }

  .table-wrap th,
  .table-wrap td{
    padding:8px 9px;
  }
}

/* Historie submenu */
nav[data-menu="main"]{
  align-items:center;
}

.menu-item{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.menu-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.has-submenu > .menu-link::after{
  content:"▾";
  font-size:11px;
  line-height:1;
}

.submenu{
  position:absolute;
  top:100%;
  left:0;
  min-width:190px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 45px rgba(28,25,23,.14);
  display:none;
  z-index:30;
}

.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu{
  display:block;
}

.submenu-link{
  display:block;
  padding:10px 12px;
  border-radius:10px;
  color:var(--muted);
  white-space:nowrap;
}

.submenu-link:hover{
  background:#e8f2ea;
  color:var(--green);
  text-decoration:none;
}

.footer-links .menu-item{
  display:inline-flex;
}

.footer-links .submenu{
  display:none !important;
}

/* Stránka Historie / Starostové */
.history-intro{
  max-width:860px;
}

.mayors-list{
  display:grid;
  gap:24px;
  margin-top:34px;
}

.mayor-card{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:26px;
  align-items:start;
  background:white;
  border:1px solid rgba(231,224,214,.75);
  border-radius:var(--radius);
  padding:26px;
  box-shadow:0 10px 34px rgba(28,25,23,.06);
}

.mayor-card img{
  width:180px;
  max-width:100%;
  height:auto;
  border-radius:18px;
  box-shadow:0 8px 22px rgba(28,25,23,.14);
  background:var(--sand);
}

.mayor-card h2{
  font-size:30px;
  margin-bottom:10px;
}

.mayor-period{
  display:inline-flex;
  margin-bottom:16px;
  padding:7px 12px;
  border-radius:999px;
  background:#e8f2ea;
  color:var(--green-dark);
  font-weight:800;
}

.mayor-card ul{
  list-style:none;
  padding:0;
  margin:0;
  color:var(--muted);
}

.mayor-card li + li{
  margin-top:6px;
}

.mayor-card strong{
  color:var(--text);
}

@media(max-width:820px){
  nav[data-menu="main"]{
    display:flex;
  }

  .menu-item{
    flex-direction:column;
  }

  .submenu{
    position:static;
    margin-top:4px;
    width:100%;
    min-width:0;
    box-shadow:none;
  }

  .mayor-card{
    grid-template-columns:1fr;
  }

  .mayor-card img{
    width:100%;
    max-width:260px;
  }
}

/* Oprava zobrazení podmenu na desktopu */
header{
  position:sticky;
  top:0;
  z-index:1000;
  overflow:visible;
}

.header-inner,
nav[data-menu="main"],
.menu-item.has-submenu{
  overflow:visible;
}

nav[data-menu="main"]{
  position:relative;
  z-index:1001;
}

.menu-item.has-submenu{
  position:relative;
}

.menu-item.has-submenu > .submenu{
  top:calc(100% + 8px);
  left:0;
}

@media (min-width: 821px){
  .menu-item.has-submenu:hover > .submenu,
  .menu-item.has-submenu:focus-within > .submenu{
    display:block;
  }
}

/* Oprava mobilního zobrazení položky Historie a jejího podmenu */
nav[data-menu="main"]{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px 14px;
}

nav[data-menu="main"] > .menu-link,
nav[data-menu="main"] > .menu-item{
  flex:0 0 auto;
}

@media (max-width: 760px){
  nav[data-menu="main"]{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    align-items:stretch;
    justify-content:center;
  }

  nav[data-menu="main"] > .menu-link,
  nav[data-menu="main"] > .menu-item{
    width:100%;
    min-width:0;
  }

  nav[data-menu="main"] > .menu-link,
  nav[data-menu="main"] > .menu-item > .menu-link{
    display:flex !important;
    width:100%;
    min-height:42px;
    justify-content:center;
    align-items:center;
    padding:9px 10px;
    border-radius:12px;
    background:rgba(255,255,255,.78);
    color:var(--green);
    font-size:14px;
    font-weight:800;
    line-height:1.18;
    text-align:center;
    white-space:normal;
  }

  nav[data-menu="main"] .menu-item.has-submenu{
    display:flex;
    flex-direction:column;
    align-items:center;
  }

  nav[data-menu="main"] .submenu{
    position:static;
    display:block;
    width:100%;
    min-width:0;
    margin:6px auto 0;
    padding:0;
    border:0;
    border-radius:12px;
    background:transparent;
    box-shadow:none;
    text-align:center;
  }

  nav[data-menu="main"] .submenu-link{
    display:flex !important;
    width:100%;
    min-height:38px;
    justify-content:center;
    align-items:center;
    padding:8px 10px;
    border-radius:12px;
    background:rgba(232,242,234,.9);
    color:var(--green-dark);
    font-size:14px;
    font-weight:800;
    text-align:center;
    white-space:normal;
  }
}

@media (max-width: 420px){
  nav[data-menu="main"]{
    grid-template-columns:1fr;
  }
}

/* Navigation alignment and submenu behaviour fixes */
.header-inner{
  justify-content:flex-start;
}

nav[data-menu="main"]{
  flex:1 1 auto;
}

nav[data-menu="main"],
nav[data-menu="main"] .menu-item{
  overflow:visible;
}

nav[data-menu="main"]{
  justify-content:flex-start;
}

nav[data-menu="main"] ul,
.main-menu,
.menu{
  justify-content:flex-start;
}

.has-submenu.is-open > .submenu{
  display:block;
}

@media (min-width: 761px){
  .header-inner{
    flex-wrap:nowrap;
  }

  nav[data-menu="main"]{
    margin-left:8px;
  }

  nav[data-menu="main"] .menu-link,
  nav[data-menu="main"] > a,
  nav[data-menu="main"] .submenu-link{
    justify-content:flex-start;
  }
}

@media (max-width: 760px){
  .menu-item.has-submenu{
    display:flex;
    flex-direction:column;
    width:100%;
    align-items:stretch;
    gap:6px;
  }

  .has-submenu > .menu-link{
    border:1px solid rgba(20,83,45,.18);
  }

  .has-submenu.is-open > .menu-link{
    background:#e8f2ea;
    color:var(--green-dark);
  }

  .has-submenu.is-open > .menu-link::after{
    content:"▴";
  }

  .submenu{
    position:static;
    display:none;
    min-width:0;
    width:100%;
    margin:0;
    padding:8px;
    border:1px solid rgba(20,83,45,.20);
    border-radius:14px;
    background:#f3eadc;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
  }

  .has-submenu:hover .submenu{
    display:none;
  }

  .has-submenu.is-open .submenu,
  .has-submenu:focus-within .submenu{
    display:block;
  }

  nav[data-menu="main"] .submenu-link{
    background:#fff;
    border:1px solid rgba(20,83,45,.12);
    color:var(--green-dark);
    font-size:13px;
    min-height:38px;
  }
}


/* Mobile submenu toggle fix: focus must not keep submenu open after second tap */
@media (max-width: 760px){
  nav[data-menu="main"] .has-submenu > .submenu{
    display:none !important;
  }

  nav[data-menu="main"] .has-submenu.is-open > .submenu{
    display:block !important;
  }

  nav[data-menu="main"] .has-submenu:not(.is-open):focus-within > .submenu{
    display:none !important;
  }
}

/* Robustní vykreslení menu po obnovení stránky */
.header-inner:empty{
  min-height:76px;
}

nav[data-menu="main"] .menu-link.is-active,
nav[data-menu="main"] .submenu-link.is-active,
nav[data-menu="main"] .menu-item.is-active > .menu-link{
  color:var(--green-dark);
  background:#e8f2ea;
  border-radius:12px;
}

@media (min-width: 761px){
  nav[data-menu="main"] .has-submenu > .menu-link{
    cursor:pointer;
  }
}
