:root{
  --green:#2E9E4F;
  --black:#121417;
  --text:#243039;
  --muted:#5e6a67;
  --bg:#fff;
  --card:#ffffff;
  --border:#e8efea;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;color:var(--text);background:var(--bg)}
.container{max-width:1160px;margin:0 auto;padding:0 20px}
.header{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--border);z-index:3000;box-shadow: 0 2px 16px rgba(46,158,79,0.04);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--black)}
.brand img{height:38px}
.brand .name{font-weight:800;font-size:22px}
.nav{display:flex;gap:18px;flex-wrap:wrap}
.nav a{color:var(--text);text-decoration:none;font-weight:600;opacity:.9}
.nav a:hover{color:var(--green)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:56px 0}
h1{font-size:44px;line-height:1.05;margin:.2em 0;color:var(--black)}
h2{font-size:30px;color:var(--black)}
h3{color:var(--black)}
.lead{font-size:18px;color:#43514d;margin-bottom:22px}
.badge{display:inline-block;background:#eef7f0;color:var(--green);padding:6px 10px;border-radius:999px;font-weight:700;font-size:13px;margin-bottom:12px}
.btn{background:var(--green);color:#fff;padding:12px 16px;border-radius:12px;border:none;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:10px}
.btn.secondary{background:#eef7f0;color:var(--green);font-weight:800}
.section{padding:34px 0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{border:1px solid var(--border);border-radius:14px;padding:18px;background:var(--card)}
.card h3{margin:8px 0 8px;color:var(--black)}
.card p{margin:0;color:#50615b}
.footer{margin-top:60px;border-top:1px solid var(--border);padding:30px 0;color:#667571;font-size:14px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.list{margin:0;padding-left:18px}
input,textarea,select{width:100%;padding:12px;border:1px solid var(--border);border-radius:12px;font:inherit}
label{font-weight:600;color:var(--black)}
.form-card{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fff}
.kicker{color:var(--muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:12px}

/* responsive */
@media (max-width:980px){
  .hero{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr}
}
@media (max-width:560px){
  h1{font-size:34px}
  .cards{grid-template-columns:1fr}
}

/* --- Added enhancements --- */
.hero .phone{max-width:360px;width:100%}
.service-icon{width:40px;height:40px;vertical-align:middle;margin-right:10px}
.section-title{font-size:26px;margin:8px 0 16px;color:var(--black)}
.subtle{color:#5e6a67}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.testimonial{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;}
.testimonial img{margin-bottom:6px;}
.partners{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:center}
.partner{border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center;color:#5a6; font-weight:800; background:#fbfdfc}
.coverage{height:380px;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.estimator{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fff}
.estimator .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.social{display:flex;gap:12px;align-items:center}
.social a{color:var(--text);text-decoration:none}
.float-wa{position:fixed;right:16px;bottom:16px;background:#25D366;color:#fff;border-radius:999px;padding:12px 16px;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.2);z-index:999}
.banner{background:#eef7f0;border:1px solid var(--border);border-radius:14px;padding:12px 16px;margin:12px 0;font-weight:700;color:#2E9E4F}
.newsletter{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fff}
.trust{border:1px solid var(--border);border-radius:14px;padding:18px;background:#fbfdfc}
.footer .links{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
@media (max-width:980px){.testimonials{grid-template-columns:1fr 1fr}.partners{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.testimonials{grid-template-columns:1fr}.partners{grid-template-columns:1fr}}

/* --- Buttons: hover/active/focus --- */
.btn{transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(46,158,79,.18)}
.btn:active{transform:translateY(0);box-shadow:0 4px 10px rgba(46,158,79,.14)}
.btn:focus-visible{outline:3px solid rgba(46,158,79,.35);outline-offset:2px}
.btn.secondary:hover{background:#e6f4ea}
.btn.secondary:active{background:#dff0e6}

/* --- Footer refresh --- */
.footer{margin-top:60px;border-top:1px solid var(--border);padding:22px 0 28px;color:#6d7a76;font-size:14px;background:#fbfdfc}
.footer .row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer .legal{display:flex;gap:10px;flex-wrap:wrap}
.footer .legal a{color:#5c6b66;text-decoration:none}
.footer .legal a:hover{color:var(--green)}
.footer .social a{opacity:.9}
.footer .social a:hover{color:var(--green)}

/* --- Reasons section --- */
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.reason{position:relative;border:1px solid var(--border);border-radius:16px;padding:18px 18px 16px;background:#fff;overflow:hidden}
.reason:before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:linear-gradient(90deg,#2E9E4F,#4CC06C)}
.reason .ri{width:42px;height:42px;margin-bottom:8px}
.reason h3{margin:4px 0 8px}
.reason p{margin:0;color:#51635e}
@media (max-width:980px){.reasons{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.reasons{grid-template-columns:1fr}}

/* --- Coverage section --- */
.coverage-wrap{position:relative}
.coverage-legend{position:absolute;top:12px;left:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;box-shadow:0 8px 22px rgba(0,0,0,.08)}
.coverage-legend h4{margin:0 0 8px 0;font-size:14px;color:var(--black)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 10px;font-weight:700;color:#2E9E4F;cursor:pointer}
.pill.active,.pill:hover{background:#eef7f0;border-color:#cfe5d7}
.legend-note{margin-top:8px;color:#63736f;font-size:12px}

/* --- Okres highlight styles --- */
.leaflet-overlay-pane .okres-polygon { stroke: #2E9E4F; fill: #2E9E4F; fill-opacity: 0.15; }
.leaflet-overlay-pane .okres-outline { color: #2E9E4F; weight: 2; }
.leaflet-overlay-pane .okres-mask { fill: #0b14123d; fill-opacity: 0.24; stroke: none; }

/* --- FAQ homepage --- */
.faq-list{margin:18px 0 0 0;}
.faq-list details{margin-bottom:10px;border:1px solid var(--border);border-radius:10px;padding:10px 14px;background:#fbfdfc}
.faq-list summary{font-weight:700;cursor:pointer;color:var(--green);}
.faq-list p{margin:8px 0 0 0;color:var(--text);}

.faq-link {
  color: var(--green);
  text-decoration: none;
  font-weight: 700;
}
.faq-link:hover {
  text-decoration: none;
  color: #4CC06C;
}

.faq-list details[open] {
  animation: fadeInFaq .4s;
}
@keyframes fadeInFaq {
  from { opacity: 0; transform: translateY(10px);}
  to   { opacity: 1; transform: translateY(0);}
}

.nav a.active {
  color: var(--green);
  font-weight: 800;
}

body.dark-mode {
  background: #181c1f;
  color: #e3e8e4;
}

.float-mode-toggle {
  position: fixed;
  right: 16px;
  bottom: 16px;
  background: #eef7f0;
  color: #2E9E4F;
  border: none;
  border-radius: 999px;
  padding: 14px 22px 14px 18px;
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 10px 28px rgba(0,0,0,.13);
  cursor: pointer;
  z-index: 999;
  transition: background .2s, color .2s;
  display: flex;
  align-items: center;
  gap: 10px;
}
.float-mode-toggle:hover {
  background: #dff0e6;
  color: #181c1f;
}
body.dark-mode .float-mode-toggle {
  background: #23282b;
  color: #e3e8e4;
}
body.dark-mode .float-mode-toggle:hover {
  background: #181c1f;
  color: #4CC06C;
}

body.dark-mode {
  --bg: #181c1f;
  --card: #23282b;
  --text: #e3e8e4;
  --black: #fff;
  --border: #2e9e4f33;
  --muted: #a3b1ad;
  background: var(--bg);
  color: var(--text);
}

body.dark-mode .header,
body.dark-mode .footer {
  background: #23282b;
  color: #a3b1ad;
  border-color: #2e9e4f33;
}

body.dark-mode .banner {
  background: #23282b;
  color: #4CC06C;
  border-color: #2e9e4f33;
}

body.dark-mode .badge {
  background: #23282b;
  color: #4CC06C;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode .brand .name {
  color: #fff;
}

body.dark-mode .lead,
body.dark-mode .section-title,
body.dark-mode .subtle {
  color: #a3b1ad;
}

body.dark-mode .card,
body.dark-mode .reason,
body.dark-mode .testimonials .testimonial,
body.dark-mode .newsletter,
body.dark-mode .trust,
body.dark-mode .faq-list details,
body.dark-mode .estimator,
body.dark-mode .partner {
  background: #23282b;
  color: #e3e8e4;
  border-color: #2e9e4f33;
}

body.dark-mode .faq-list summary {
  color: #4CC06C;
}

body.dark-mode .btn {
  background: #4CC06C;
  color: #23282b;
}

body.dark-mode .btn.secondary {
  background: #23282b;
  color: #4CC06C;
  border: 1px solid #4CC06C;
}

body.dark-mode .btn.secondary:hover {
  background: #181c1f;
  color: #fff;
}

body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select {
  background: #181c1f;
  color: #e3e8e4;
  border-color: #2e9e4f33;
}

body.dark-mode .coverage,
body.dark-mode .coverage-legend {
  background: #23282b;
  color: #e3e8e4;
  border-color: #2e9e4f33;
  z-index: 1;
}

body.dark-mode .float-mode-toggle {
  background: #23282b;
  color: #e3e8e4;
}

body.dark-mode .float-mode-toggle:hover {
  background: #181c1f;
  color: #4CC06C;
}

/* FAQ boxy v tmavém režimu */
body.dark-mode details {
  background: #23282b;
  color: #e3e8e4;
  border-color: #2e9e4f33;
}
body.dark-mode summary {
  color: #4CC06C;
}
body.dark-mode p {
  color: #e3e8e4;
}

body.dark-mode, body.dark-mode html {
  background: #181c1f;
}

/* Formulář pro partnery v tmavém režimu */
body.dark-mode .form-card {
  background: #23282b;
  color: #e3e8e4;
  border-color: #2e9e4f33;
}
body.dark-mode .form-card input,
body.dark-mode .form-card textarea {
  background: #181c1f;
  color: #e3e8e4;
  border-color: #2e9e4f33;
}
body.dark-mode .form-card label {
  color: #e3e8e4;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 70px;
  gap: 32px;
}
.nav {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: center;
  margin-left: auto;
}


.dropdown-wrap {
  position: relative;
  display: inline-block;
}
.dropdown-menu {
  display: none;
  position: absolute;
  right: 0;
  top: 110%;
  min-width: 220px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(46,158,79,.10);
  z-index: 1000;
  padding: 10px 0;
}
.dropdown-menu a {
  display: block;
  padding: 12px 24px;
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
  transition: background .15s;
}
.dropdown-menu a:hover {
  background: #eef7f0;
  color: var(--green);
}
.dropdown-wrap.open .dropdown-menu {
  display: block;
}

/* Modal styl */
.modal {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(36,48,57,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.modal-content {
  background: var(--card);
  color: var(--text);
  border-radius: 16px;
  padding: 32px 28px;
  box-shadow: 0 8px 32px rgba(46,158,79,.15);
  text-align: center;
  max-width: 340px;
}
body.dark-mode .modal {
  background: rgba(24,28,31,0.55);
}
body.dark-mode .modal-content {
  background: #23282b;
  color: #e3e8e4;
}

@media (max-width: 480px) {
  html, body {
    font-size: 16px;
    line-height: 1.4;
  }
  .container {
    padding: 0 6px;
    max-width: 100vw;
  }
  .header-inner {
    flex-direction: column;
    height: auto;
    gap: 12px;
    align-items: flex-start;
  }
  .nav {
    flex-direction: column;
    gap: 8px;
    margin-left: 0;
    width: 100%;
  }
  .brand img {
    height: 32px;
    width: auto;
  }
  .brand .name {
    font-size: 18px;
  }
  .hero {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px 0;
  }
  .hero .phone {
    max-width: 100%;
    margin: 0 auto;
    display: block;
  }
  h1 {
    font-size: 22px;
    line-height: 1.15;
  }
  h2, .section-title {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .lead {
    font-size: 15px;
    margin-bottom: 12px;
  }
  .badge {
    font-size: 12px;
    padding: 4px 8px;
    margin-bottom: 8px;
  }
  .btn, .btn.secondary {
    font-size: 15px;
    padding: 10px 12px;
    width: 100%;
    justify-content: center;
  }
  .cta-row {
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
    width: 100%;
  }
  .cards, .reasons, .partners, .testimonials, .grid-2 {
    grid-template-columns: 1fr !important;
    gap: 10px;
  }
  .card, .reason, .partner, .testimonial {
    padding: 12px;
    font-size: 15px;
  }
  .section {
    padding: 12px 0;
  }
  .footer .row {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }
  .footer {
    padding: 16px 0 22px;
    font-size: 13px;
  }
  .banner {
    font-size: 13px;
    padding: 8px 6px;
    margin: 8px 0;
  }
  .coverage, #map, #map-route {
    height: 180px;
    min-width: 0;
  }
  .newsletter, .estimator, .trust {
    padding: 10px;
  }
  .dropdown-menu {
    min-width: 100vw;
    left: 0;
    right: 0;
    border-radius: 0;
    top: 100%;
  }
  .modal-content {
    padding: 18px 10px;
    max-width: 95vw;
  }
}

@media (max-width: 560px) {
  .header-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    height: auto;
  }
  .nav {
    flex-direction: column;
    gap: 0;
    width: 100%;
    align-items: stretch;
    margin-left: 0;
  }
  .nav a, .dropdown-wrap {
    width: 100%;
    padding: 14px 0 14px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 17px;
    box-sizing: border-box;
  }
  .dropdown-wrap {
    position: relative;
    padding: 0;
    border: none;
  }
  .dropdown-menu {
    position: static;
    min-width: 100%;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    background: var(--card);
    border: none;
  }
  .dropdown-menu a {
    padding: 14px 12px;
    font-size: 16px;
    border-bottom: 1px solid var(--border);
  }
  .dropdown-menu a:last-child {
    border-bottom: none;
  }
}

@media (max-width: 560px) {
  .nav a, .dropdown-wrap {
    width: 100%;
    padding: 10px 0 10px 16px;
    border-bottom: 1px solid var(--border);
    font-size: 16px;
    box-sizing: border-box;
  }
  .dropdown-wrap {
    padding: 0;
    border: none;
    margin: 0;
  }
  .btn.secondary {
    width: 96%;
    margin: 8px 2%;
    border-radius: 8px;
    box-sizing: border-box;
    padding: 10px 0;
    text-align: center;
    font-size: 16px;
  }
  .dropdown-menu {
    position: static;
    min-width: 100%;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
    background: var(--card);
    border: none;
  }
  .dropdown-menu a {
    padding: 10px 16px;
    font-size: 15px;
    border-bottom: 1px solid var(--border);
  }
  .dropdown-menu a:last-child {
    border-bottom: none;
  }
}

.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 38px;
  height: 38px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1001;
}
.menu-toggle span {
  display: block;
  height: 4px;
  width: 28px;
  background: var(--green);
  border-radius: 2px;
  transition: .2s;
}
@media (max-width: 560px) {
  .menu-toggle { display: flex; }
  .nav {
    position: fixed;
    top: 62px;
    left: 0;
    right: 0;
    background: var(--card);
    flex-direction: column;
    gap: 0;
    width: 100vw;
    padding: 0;
    box-shadow: 0 8px 24px rgba(46,158,79,.10);
    transform: translateY(-120%);
    transition: transform .25s;
    z-index: 1000;
  }
  .nav.open {
    transform: translateY(0);
  }
  .header-inner {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    height: 62px;
  }
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 70px;
  position: relative;
}
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 38px;
  height: 38px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1001;
  margin-left: auto;
}
@media (max-width: 560px) {
  .menu-toggle { display: flex; }
  .nav {
    position: fixed;
    top: 62px;
    left: 0;
    right: 0;
    background: var(--card);
    flex-direction: column;
    gap: 0;
    width: 100vw;
    padding: 0;
    box-shadow: 0 8px 24px rgba(46,158,79,.10);
    transform: translateY(-120%);
    transition: transform .25s;
    z-index: 1000;
  }
  .nav.open {
    transform: translateY(0);
  }
  .header-inner {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    height: 62px;
  }
}

@media (max-width: 560px) {
  body, html, .container, .section, .hero, .footer, .cards, .reasons, .partners, .testimonials, .grid-2, .btn {
    text-align: center !important;
    align-items: center !important;
    justify-content: center !important;
  }
  h1, h2, h3, .section-title, .lead, .badge, .subtle, label, p, .btn, .btn.secondary {
    text-align: center !important;
  }
  img, .service-icon, .partner img, .card img, .reason img, .testimonial img {
    display: block;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  input, textarea, select {
    display: block;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }
  .cta-row {
    justify-content: center !important;
    align-items: center !important;
    flex-direction: column !important;
    text-align: center !important;
  }

    .footer .row, .footer .links, .footer .legal, .social {
    justify-content: flex-start !important;
    align-items: flex-start !important;
    flex-direction: row !important;
    text-align: left !important;
  }

    input, textarea, select {
    display: block;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }
  input::placeholder, textarea::placeholder {
    text-align: center !important;
  }
}

.leaflet-control {
  z-index: 1000;
}