:root {
  --navy-950: #071f36;
  --navy-900: #0b2c4d;
  --navy-800: #123b63;
  --navy-700: #19517f;
  --green-700: #168c4c;
  --green-600: #1fa35e;
  --green-500: #24ad65;
  --green-100: #e8f7ef;
  --ink: #172332;
  --muted: #5d6875;
  --line: #dce3e9;
  --soft: #f4f7f9;
  --white: #ffffff;
  --danger: #b42318;
  --shadow-sm: 0 8px 24px rgba(7, 31, 54, .08);
  --shadow-md: 0 18px 50px rgba(7, 31, 54, .14);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --container: 1220px;
  --header-offset: 112px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-offset); }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--white);
  font-family: Montserrat, "Avenir Next", "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.is-menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
section[id] { scroll-margin-top: var(--header-offset); }

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 9999;
  padding: 12px 16px;
  color: var(--white);
  background: var(--navy-950);
  border-radius: 8px;
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }

.utility-bar {
  height: 36px;
  color: #dce9f3;
  background: var(--navy-950);
  font-size: 13px;
  font-weight: 600;
}
.utility-bar__inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.utility-bar__links { display: flex; align-items: center; gap: 22px; }
.utility-bar a { color: var(--white); }
.utility-bar a:hover, .utility-bar a:focus-visible { color: #7de2a8; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: 76px;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(11,44,77,.09);
  box-shadow: 0 5px 20px rgba(7,31,54,.05);
  backdrop-filter: blur(10px);
}
.header__inner { height: 100%; display: flex; align-items: center; gap: 26px; }

.brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; line-height: 1; }
.brand__mark { display: flex; align-items: baseline; letter-spacing: -4px; font-size: 35px; font-weight: 900; }
.brand__mark b { color: var(--navy-900); }
.brand__mark b:nth-child(2) { color: var(--green-600); }
.brand__copy { display: flex; flex-direction: column; gap: 5px; padding-left: 12px; border-left: 1px solid #b8c4ce; }
.brand__copy strong { color: var(--green-600); font-size: 13px; letter-spacing: .36em; font-weight: 800; }
.brand__copy small { color: var(--navy-900); font-size: 10px; letter-spacing: .04em; font-weight: 700; white-space: nowrap; }

.desktop-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(15px, 1.5vw, 28px); }
.desktop-nav a { position: relative; color: #344353; font-size: 14px; font-weight: 700; padding: 10px 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 5px; height: 2px; background: var(--green-600); transition: right .2s ease; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { right: 0; }

.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 20px;
  border: 1px solid transparent;
  border-radius: 9px;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
  transition: transform .16s ease, background-color .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.button:hover { transform: translateY(-1px); }
.button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(31,163,94,.35);
  outline-offset: 3px;
}
.button--header { min-height: 44px; padding-inline: 17px; color: var(--white); background: var(--green-600); box-shadow: 0 8px 20px rgba(31,163,94,.22); }
.button--header:hover { background: var(--green-700); }
.button--primary { color: var(--white); background: var(--green-600); }
.button--primary:hover { background: var(--green-700); }
.button--light { color: var(--navy-900); background: var(--white); }
.button--light:hover { background: #edf4f8; }
.button--navy { color: var(--white); background: var(--navy-900); }
.button--navy:hover { background: var(--navy-950); }
.button--submit { width: 100%; color: var(--white); background: var(--green-600); box-shadow: 0 12px 28px rgba(31,163,94,.22); }
.button--submit:hover { background: var(--green-700); }
.button--submit:disabled { opacity: .65; cursor: wait; transform: none; }

.desktop-only { display: inline-flex !important; }
.mobile-only { display: none !important; }
.need-card__phone { margin-top: 9px; color: #d8e5ed; font-size: 11px; line-height: 1.35; text-decoration: underline; text-decoration-color: rgba(216,229,237,.35); text-underline-offset: 3px; }
.need-card__phone:hover, .need-card__phone:focus-visible { color: #ffffff; text-decoration-color: #7de2a8; }

.mobile-menu-shell { display: none; margin-left: auto; }
.menu-close-target { position: fixed; top: 0; left: 0; width: 1px; height: 1px; overflow: hidden; pointer-events: none; }
.mobile-menu-trigger { width: 48px; height: 48px; display: grid; place-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.mobile-menu-trigger span { width: 22px; height: 2px; background: var(--navy-900); border-radius: 5px; transition: transform .18s ease, opacity .18s ease; }
.mobile-menu-panel { position: fixed; top: 68px; right: 0; bottom: 0; left: 0; z-index: 997; visibility: hidden; opacity: 0; pointer-events: none; transition: visibility 0s linear .18s, opacity .18s ease; }
.mobile-menu-panel:target { visibility: visible; opacity: 1; pointer-events: auto; transition-delay: 0s; }
.mobile-menu__backdrop { position: absolute; inset: 0; z-index: 0; background: rgba(4,17,30,.52); backdrop-filter: blur(2px); }
.mobile-menu-panel nav { position: relative; z-index: 1; max-height: calc(100svh - 68px); overflow-y: auto; padding: 12px 20px calc(22px + env(safe-area-inset-bottom)); background: var(--white); border-top: 1px solid var(--line); box-shadow: 0 20px 45px rgba(7,31,54,.18); transform: translateY(-8px); transition: transform .18s ease; }
.mobile-menu-panel:target nav { transform: translateY(0); }
.mobile-menu__heading { min-height: 48px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #edf1f4; }
.mobile-menu__heading strong { color: var(--navy-900); font-size: 15px; }
.mobile-menu__close { width: 42px; height: 42px; display: grid; place-items: center; color: var(--navy-900); border: 0 !important; border-radius: 50%; font-size: 28px; line-height: 1; }
.mobile-menu-panel nav > a:not(.mobile-menu__close) { min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 12px 6px; border-bottom: 1px solid #edf1f4; font-weight: 750; }
.mobile-menu-panel nav > a:not(.mobile-menu__close)::after { content: "→"; color: var(--green-600); }
.mobile-menu-panel nav .mobile-menu__cta { margin-top: 12px; justify-content: center !important; color: var(--white); background: var(--green-600); border: 0; border-radius: 9px; }
.mobile-menu-panel nav .mobile-menu__cta::after { display: none; }
#mobilni-nabidka:target + .mobile-menu-trigger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#mobilni-nabidka:target + .mobile-menu-trigger span:nth-child(2) { opacity: 0; }
#mobilni-nabidka:target + .mobile-menu-trigger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@supports selector(body:has(*)) {
  @media(max-width:1080px) { body:has(#mobilni-nabidka:target) { overflow: hidden; } }
}

.hero { background: var(--navy-900); color: var(--white); }
.hero__content { max-width: 1600px; min-height: 640px; margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(440px, .98fr); }
.hero__copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 52px clamp(36px, 5.4vw, 86px) 48px max(40px, calc((min(100vw, 1600px) - var(--container)) / 2)); background: linear-gradient(135deg, var(--navy-950), var(--navy-800)); }
.hero__copy::after { content: ""; position: absolute; top: 0; right: -95px; bottom: 0; width: 130px; background: var(--navy-800); clip-path: polygon(0 0, 100% 0, 26% 100%, 0 100%); z-index: -1; }
.eyebrow { margin: 0 0 13px; color: #9ee2bb; font-size: 12px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow--green { color: var(--green-700); }
.hero h1 { max-width: 720px; margin: 0; font-size: clamp(39px, 4vw, 60px); line-height: 1.06; letter-spacing: -.035em; text-wrap: balance; }
.hero h1::after { content: ""; display: block; width: 72px; height: 4px; margin-top: 20px; border-radius: 4px; background: var(--green-500); }
.hero__lead { max-width: 690px; margin: 22px 0 0; color: #e9f0f5; font-size: clamp(17px, 1.25vw, 20px); line-height: 1.55; }
.hero__proof { margin: 12px 0 0; color: #bdd0df; font-size: 14px; }
.hero__proof strong { color: #7de2a8; }
.hero__choices { margin-top: 27px; display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.need-card { min-width: 0; display: flex; gap: 13px; padding: 17px; border-radius: 14px; border: 1px solid rgba(255,255,255,.18); }
.need-card__icon { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; }
.need-card__icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.need-card h2 { margin: 0; font-size: 17px; line-height: 1.25; }
.need-card p { margin: 7px 0 13px; font-size: 13px; line-height: 1.45; }
.need-card .button { min-height: 42px; width: 100%; padding: 9px 12px; font-size: 13px; }
.need-card--partner { background: rgba(255,255,255,.08); }
.need-card--partner .need-card__icon { color: var(--white); background: var(--green-600); }
.need-card--partner p { color: #cfdae3; }
.need-card--emergency { background: rgba(7,31,54,.55); }
.need-card--emergency .need-card__icon { color: var(--navy-900); background: #d9f5e5; }
.need-card--emergency p { color: #cfdae3; }

.hero__visual { position: relative; min-width: 0; overflow: hidden; background: #dce4e9; }
.hero__visual picture, .hero__visual img { width: 100%; height: 100%; }
.hero__visual img { object-fit: cover; object-position: center; }
.hero__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,44,77,.2), transparent 45%), linear-gradient(0deg, rgba(7,31,54,.18), transparent 35%); pointer-events: none; }
.hero__visual-badge { position: absolute; right: 32px; bottom: 30px; z-index: 2; display: flex; flex-direction: column; gap: 2px; padding: 15px 18px; color: var(--white); background: rgba(7,31,54,.88); border-left: 4px solid var(--green-500); border-radius: 8px; box-shadow: var(--shadow-md); }
.hero__visual-badge strong { font-size: 14px; }
.hero__visual-badge span { color: #c8d7e2; font-size: 11px; }

.trust-strip { background: var(--white); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.trust-strip__grid { min-height: 92px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: stretch; }
.trust-strip__grid div { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 18px 30px; }
.trust-strip__grid div + div::before { content: ""; position: absolute; left: 0; top: 24px; bottom: 24px; width: 1px; background: var(--line); }
.trust-strip strong { color: var(--navy-900); font-size: 20px; line-height: 1.2; }
.trust-strip span { color: var(--muted); font-size: 13px; }

.section { padding: 92px 0;   }
.section--soft { background: var(--soft); }
.section--dark { color: var(--white); background: var(--navy-950); }
.section-heading { max-width: 730px; margin-bottom: 40px; }
.section-heading--center { margin-inline: auto; text-align: center; }
.section-heading h2, .about-copy h2, .coverage-copy h2, .contact-copy h2 { margin: 0; color: var(--navy-900); font-size: clamp(31px, 3.3vw, 48px); line-height: 1.12; letter-spacing: -.03em; text-wrap: balance; }
.section-heading p:not(.eyebrow), .coverage-copy > p, .contact-copy > p { margin: 16px 0 0; color: var(--muted); font-size: 17px; }

.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.service-card { display: flex; flex-direction: column; min-height: 100%; padding: 28px 25px 25px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: 0 10px 30px rgba(7,31,54,.05); }
.service-card--accent { border-top: 4px solid var(--green-600); padding-top: 25px; }
.service-card__icon { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 20px; color: var(--white); background: var(--navy-900); border-radius: 50%; }
.service-card--accent .service-card__icon { background: var(--green-600); }
.service-card__icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.service-card h3 { margin: 0; color: var(--navy-900); font-size: 21px; line-height: 1.25; }
.service-card > p { margin: 11px 0 15px; color: var(--muted); font-size: 14px; }
.service-card ul, .decision-card ul { margin: 0 0 20px; padding: 0; list-style: none; }
.service-card li, .decision-card li { position: relative; margin: 8px 0; padding-left: 17px; color: #344353; font-size: 14px; line-height: 1.45; }
.service-card li::before, .decision-card li::before { content: ""; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: 50%; background: var(--green-600); }
.service-card > a { margin-top: auto; color: var(--green-700); font-size: 13px; font-weight: 850; }
.service-card > a::after { content: " →"; }
.service-note { max-width: 850px; margin: 24px auto 0; color: var(--muted); font-size: 13px; text-align: center; }

.segment-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.segment-card { position: relative; min-height: 250px; overflow: hidden; padding: 34px; color: var(--white); background: linear-gradient(145deg, var(--navy-900), var(--navy-800)); border-radius: var(--radius-md); }
.segment-card:nth-child(2) { background: linear-gradient(145deg, #0e7040, var(--green-600)); }
.segment-card::after { content: ""; position: absolute; right: -55px; bottom: -70px; width: 190px; height: 190px; border: 32px solid rgba(255,255,255,.07); border-radius: 50%; }
.segment-card > span { display: inline-block; margin-bottom: 30px; color: #9ee2bb; font-size: 13px; font-weight: 850; letter-spacing: .15em; }
.segment-card h3 { max-width: 300px; margin: 0; font-size: 27px; line-height: 1.18; }
.segment-card p { position: relative; z-index: 1; margin: 16px 0 0; color: #dce9f2; font-size: 15px; }

.decision-section { background: var(--white); }
.decision-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.decision-card { display: flex; flex-direction: column; min-height: 410px; padding: 40px; border-radius: var(--radius-lg); }
.decision-card__tag { align-self: flex-start; margin: 0 0 20px; padding: 7px 10px; border-radius: 6px; font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.decision-card h3 { margin: 0; font-size: clamp(27px, 2.7vw, 38px); line-height: 1.12; }
.decision-card > p:not(.decision-card__tag) { margin: 17px 0 18px; font-size: 16px; }
.decision-card ul { margin-bottom: 28px; }
.decision-card .button { align-self: flex-start; margin-top: auto; }
.decision-card small { display: block; margin-top: 14px; line-height: 1.45; }
.decision-card--dark { color: var(--white); background: linear-gradient(145deg, var(--navy-950), var(--navy-800)); }
.decision-card--dark .decision-card__tag { color: #b8f0cf; background: rgba(31,163,94,.2); }
.decision-card--dark > p, .decision-card--dark li, .decision-card--dark small { color: #d1dee7; }
.decision-card--dark li::before { background: #78dca4; }
.decision-card--green { color: var(--navy-950); background: linear-gradient(145deg, #daf5e6, #f2fbf6); border: 1px solid #bce7cf; }
.decision-card--green .decision-card__tag { color: var(--green-700); background: var(--white); }

.about-grid { display: grid; grid-template-columns: .68fr 1.32fr; gap: 70px; align-items: center; }
.about-number { display: flex; flex-direction: column; align-items: flex-start; padding: 46px; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(31,163,94,.18), rgba(255,255,255,.03)); }
.about-number strong { color: #7de2a8; font-size: clamp(86px, 10vw, 148px); line-height: .85; letter-spacing: -.08em; }
.about-number span { margin-top: 22px; font-size: 21px; font-weight: 800; }
.about-copy .eyebrow { color: #7de2a8; }
.about-copy h2 { color: var(--white); }
.about-copy > p:not(.eyebrow) { max-width: 760px; margin: 18px 0 0; color: #cbd9e3; font-size: 17px; }
.about-points { margin-top: 31px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 28px; }
.about-points div { padding-left: 17px; border-left: 3px solid var(--green-500); }
.about-points strong { display: block; margin-bottom: 4px; }
.about-points span { display: block; color: #aebfcb; font-size: 14px; }

.process-grid { counter-reset: item; display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
.process-grid li { position: relative; min-height: 230px; padding: 28px 24px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.process-grid li:not(:last-child)::after { content: "→"; position: absolute; right: -17px; top: 50%; z-index: 2; width: 32px; height: 32px; display: grid; place-items: center; color: var(--green-700); background: var(--white); border: 1px solid var(--line); border-radius: 50%; transform: translateY(-50%); }
.process-grid li > span { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 24px; color: var(--white); background: var(--green-600); border-radius: 50%; font-weight: 900; }
.process-grid h3 { margin: 0; color: var(--navy-900); font-size: 19px; }
.process-grid p { margin: 10px 0 0; color: var(--muted); font-size: 14px; }

.coverage-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 55px; align-items: center; }
.coverage-cities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.coverage-cities span { padding: 7px 10px; color: var(--navy-800); background: var(--white); border: 1px solid var(--line); border-radius: 7px; font-size: 13px; font-weight: 700; }
.coverage-note { padding-left: 14px; border-left: 3px solid var(--green-600); font-size: 13px !important; }
.coverage-map { padding: 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.coverage-map > p { margin: 8px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
.coverage-map svg { width: 100%; height: auto; }
.map-primary { fill: url(#mapGreen); }
.map-extension { fill: #ccebd9; stroke: #9ccfb3; stroke-width: 2; }
.map-road { fill: none; stroke: rgba(255,255,255,.55); stroke-width: 6; stroke-linecap: round; stroke-dasharray: 14 13; }
.map-road--thin { stroke-width: 3; opacity: .7; }
.city circle { fill: var(--white); stroke: var(--navy-900); stroke-width: 3; }
.city text { fill: var(--navy-950); font-size: 18px; font-weight: 800; paint-order: stroke; stroke: rgba(255,255,255,.8); stroke-width: 4px; stroke-linejoin: round; }
.city--secondary circle { fill: var(--green-600); }
.city--main .pulse { fill: none; stroke: var(--white); stroke-width: 2; opacity: .45; }
.city--main text { font-size: 25px; }
.map-label { fill: rgba(255,255,255,.65); font-size: 23px; font-weight: 900; letter-spacing: .05em; }
.map-label--secondary { fill: rgba(11,44,77,.35); font-size: 16px; }

.faq-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; align-items: start; }
.faq-list { display: grid; gap: 10px; }
.faq-list details { background: var(--white); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.faq-list summary { min-height: 62px; position: relative; display: flex; align-items: center; padding: 17px 54px 17px 20px; color: var(--navy-900); font-weight: 800; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 20px; top: 50%; color: var(--green-700); font-size: 28px; line-height: 1; transform: translateY(-50%); }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: 0; padding: 0 20px 20px; color: var(--muted); font-size: 14px; }

.contact-section { padding: 92px 0; color: var(--white); background: linear-gradient(135deg, var(--navy-950), var(--navy-800)); }
.contact-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 62px; align-items: start; }
.contact-copy .eyebrow { color: #89e3b0; }
.contact-copy h2 { color: var(--white); }
.contact-copy > p { color: #cbd9e3; }
.contact-person { margin-top: 32px; display: flex; align-items: center; gap: 14px; }
.contact-person__avatar { width: 54px; height: 54px; display: grid; place-items: center; color: var(--white); background: var(--green-600); border-radius: 50%; font-weight: 900; }
.contact-person strong, .contact-person span { display: block; }
.contact-person span { color: #9fb4c3; font-size: 14px; }
.contact-links { margin-top: 28px; display: grid; gap: 10px; }
.contact-links a { display: flex; align-items: center; gap: 14px; padding: 15px; border: 1px solid rgba(255,255,255,.13); border-radius: 12px; background: rgba(255,255,255,.05); }
.contact-links > a > span { width: 38px; height: 38px; display: grid; place-items: center; color: #87e1ae; background: rgba(31,163,94,.13); border-radius: 50%; }
.contact-links small, .contact-links strong { display: block; }
.contact-links small { color: #aebfcb; }
.contact-links strong { font-size: 16px; }

.contact-form { padding: 34px; color: var(--ink); background: var(--white); border-radius: var(--radius-lg); box-shadow: 0 24px 60px rgba(0,0,0,.22); }
.request-type { margin: 0 0 25px; padding: 0; border: 0; }
.request-type legend { margin-bottom: 10px; color: var(--navy-900); font-size: 14px; font-weight: 850; }
.request-type { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.request-type legend { grid-column: 1/-1; }
.request-type label { cursor: pointer; }
.request-type input { position: absolute; opacity: 0; pointer-events: none; }
.request-type span { min-height: 52px; display: flex; align-items: center; justify-content: center; padding: 11px; color: #465564; background: var(--soft); border: 1px solid var(--line); border-radius: 9px; font-size: 13px; font-weight: 800; text-align: center; }
.request-type input:checked + span { color: var(--white); background: var(--navy-900); border-color: var(--navy-900); box-shadow: 0 8px 18px rgba(11,44,77,.16); }
.request-type input:focus-visible + span { outline: 3px solid rgba(31,163,94,.35); outline-offset: 3px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.field { min-width: 0; }
.field--wide { grid-column: 1 / -1; }
.field label { display: block; margin-bottom: 7px; color: var(--navy-900); font-size: 13px; font-weight: 800; }
.field label em, .privacy-check em { color: var(--danger); font-style: normal; }
.field label span { color: var(--muted); font-weight: 500; }
.field input, .field select, .field textarea { width: 100%; min-height: 50px; padding: 12px 13px; color: var(--ink); background: var(--white); border: 1px solid #cbd5dd; border-radius: 8px; transition: border-color .15s ease, box-shadow .15s ease; }
.field textarea { resize: vertical; min-height: 128px; }
.field input[type="file"] { padding: 10px; background: var(--soft); }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #91a3b1; }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(180,35,24,.10); }
.field > small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.field-error { min-height: 0; color: var(--danger) !important; font-weight: 650; }
.form-contact-note { margin: 18px 0 12px; color: var(--muted); font-size: 12px; }
.privacy-check { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 4px; color: #4c5a67; font-size: 12px; cursor: pointer; }
.privacy-check input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; accent-color: var(--green-600); }
.privacy-error { display: block; min-height: 18px; margin-bottom: 7px; }
.form-status { min-height: 25px; margin-top: 12px; font-size: 13px; font-weight: 750; text-align: center; }
.form-status.is-success { color: var(--green-700); }
.form-status.is-error { color: var(--danger); }
.form-honey { display: none !important; }
.noscript-note { padding: 12px; color: var(--danger); background: #fff3f2; border-radius: 8px; font-size: 13px; }

.site-footer { padding: 48px 0 38px; color: #bfd0dc; background: #061a2d; border-top: 1px solid rgba(255,255,255,.08); }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 38px; }
.brand--footer .brand__mark b { color: var(--white); }
.brand--footer .brand__mark b:nth-child(2) { color: #6bd697; }
.brand--footer .brand__copy { border-color: #466277; }
.brand--footer .brand__copy small { color: #c8d7e2; }
.footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.footer-grid > div:first-child p { margin: 13px 0 0; color: #8ea6b7; font-size: 13px; }
.footer-grid strong { color: var(--white); font-size: 14px; }
.footer-grid a, .footer-grid span { font-size: 13px; }
.footer-grid a:hover { color: #7de2a8; }

.privacy-dialog { width: min(620px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.privacy-dialog::backdrop { background: rgba(4,17,30,.75); backdrop-filter: blur(3px); }
.privacy-dialog form { position: relative; padding: 35px; }
.privacy-dialog h2 { margin: 0; color: var(--navy-900); }
.privacy-dialog p { color: var(--muted); font-size: 14px; }
.dialog-close { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; border-radius: 50%; color: var(--navy-900); background: var(--soft); font-size: 27px; cursor: pointer; }
.dialog-note { padding: 12px; background: #fff9e8; border-radius: 8px; }

.mobile-action-bar { display: none; }

@media (max-width: 1180px) {
  .desktop-nav { gap: 16px; }
  .desktop-nav a { font-size: 13px; }
  .service-grid { grid-template-columns: 1fr 1fr; }
  .hero__copy { padding-left: 40px; padding-right: 42px; }
  .hero__choices { grid-template-columns: 1fr; }
  .hero__content { min-height: 700px; }
}

@media (min-width: 1081px) and (max-height: 820px) {
  .hero__content { min-height: 620px; }
  .hero__copy { padding-top: 30px; padding-bottom: 28px; }
  .hero h1 { font-size: clamp(40px, 3.5vw, 50px); }
  .hero h1::after { margin-top: 14px; }
  .hero__lead { margin-top: 16px; font-size: 16px; line-height: 1.45; }
  .hero__proof { margin-top: 8px; font-size: 12px; }
  .hero__choices { margin-top: 17px; }
  .need-card { padding: 13px; }
  .need-card__icon { flex-basis: 34px; width: 34px; height: 34px; }
  .need-card h2 { font-size: 15px; }
  .need-card p { margin: 5px 0 9px; font-size: 12px; }
  .need-card .button { min-height: 40px; padding-block: 8px; }
  .need-card__phone { margin-top: 6px; }
}

@media (max-width: 1080px) {
  :root { --header-offset: 76px; }
  .utility-bar { display: none; }
  .desktop-nav, .button--header { display: none; }
  .mobile-menu-shell { display: block; }
  .site-header { height: 68px; }
  
  .hero__content { grid-template-columns: 1fr; min-height: 0; }
  .hero__copy { padding: 52px 40px 45px; }
  .hero__copy::after { display: none; }
  .hero__visual { min-height: 380px; }
  .hero__choices { grid-template-columns: 1fr 1fr; }
  .trust-strip__grid { grid-template-columns: 1fr 1fr; }
  .trust-strip__grid div:nth-child(3)::before { display: none; }
  .segment-grid { grid-template-columns: 1fr; }
  .decision-grid { grid-template-columns: 1fr; }
  .decision-card { min-height: 0; }
  .about-grid, .coverage-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; }
  .about-number { max-width: 420px; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .process-grid li:nth-child(2)::after { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  :root { --header-offset: 68px; }
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); font-size: 15px; }
  .container { width: min(calc(100% - 32px), var(--container)); }
  .header__inner { gap: 10px; }
  .brand { gap: 9px; }
  .brand__mark { font-size: 28px; letter-spacing: -3px; }
  .brand__copy { gap: 3px; padding-left: 9px; }
  .brand__copy strong { font-size: 10px; }
  .brand__copy small { font-size: 8px; }
  .hero__copy { padding: 32px 18px 27px; }
  .hero h1 { font-size: clamp(32px, 9.5vw, 42px); line-height: 1.04; }
  .hero h1::after { width: 54px; height: 3px; margin-top: 15px; }
  .hero__lead { margin-top: 16px; font-size: 16px; line-height: 1.46; }
  .hero__proof { margin-top: 10px; font-size: 12px; line-height: 1.4; }
  .hero__choices { margin-top: 19px; grid-template-columns: 1fr; gap: 10px; }
  .need-card { padding: 14px; }
  .need-card h2 { font-size: 16px; }
  .need-card p { margin: 5px 0 10px; font-size: 12px; }
  .need-card .button { min-height: 48px; font-size: 13px; }
  .desktop-only { display: none !important; }
  .mobile-only { display: inline-flex !important; }
  .need-card--emergency { order: -1; border-color: rgba(125,226,168,.4); }
  .hero__visual { min-height: 230px; }
  .hero__visual-badge { right: 16px; bottom: 16px; left: 16px; }
  .trust-strip__grid { grid-template-columns: 1fr 1fr; min-height: 0; }
  .trust-strip__grid div { min-height: 78px; padding: 14px 16px; }
  .trust-strip__grid div:nth-child(3)::before { display: block; }
  .trust-strip__grid div:nth-child(odd)::before { display: none; }
  .trust-strip__grid div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .trust-strip strong { font-size: 17px; }
  .trust-strip span { font-size: 11px; }
  .section, .contact-section { padding: 66px 0; }
  .section-heading { margin-bottom: 28px; }
  .section-heading h2, .about-copy h2, .coverage-copy h2, .contact-copy h2 { font-size: clamp(28px, 8vw, 36px); }
  .section-heading p:not(.eyebrow), .coverage-copy > p, .contact-copy > p { font-size: 15px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { padding: 24px 21px; }
  .segment-card { min-height: 0; padding: 28px 24px; }
  .decision-card { padding: 28px 22px; border-radius: 20px; }
  .decision-card .button { width: 100%; }
  .about-grid { gap: 35px; }
  .about-number { padding: 32px; }
  .about-number strong { font-size: 90px; }
  .about-points { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid li { min-height: 0; }
  .process-grid li::after { display: none !important; }
  .coverage-grid { gap: 28px; }
  .coverage-map { padding: 8px; overflow: hidden; }
  .coverage-map svg { width: 130%; margin-left: -15%; }
  .city text { font-size: 20px; }
  .map-label { font-size: 21px; }
  .faq-grid { gap: 25px; }
  .contact-grid { gap: 32px; }
  .contact-form { padding: 24px 18px; border-radius: 18px; }
  .request-type, .form-grid { grid-template-columns: 1fr; }
  .field--wide { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .mobile-action-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1200;
    min-height: 66px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding-bottom: env(safe-area-inset-bottom);
    background: var(--white);
    border-top: 1px solid rgba(11,44,77,.15);
    box-shadow: 0 -12px 35px rgba(7,31,54,.18);
  }
  .mobile-action-bar a { min-height: 66px; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 15px; font-weight: 900; }
  .mobile-action-bar__call { color: var(--white); background: var(--green-600); }
  .mobile-action-bar__quote { color: var(--navy-900); background: var(--white); }
  .privacy-dialog form { padding: 30px 22px; }
}

@media (max-width: 390px) {
  .brand__copy small { display: none; }
  .brand__copy { border-left: 0; padding-left: 2px; }
  .hero__copy { padding-inline: 16px; }
  .hero h1 { font-size: 31px; }
  .need-card__icon { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  .utility-bar, .site-header, .mobile-action-bar, .contact-form, .privacy-dialog { display: none !important; }
  body { padding: 0; color: #000; }
  .section, .contact-section { padding: 30px 0; }
  .hero { color: #000; background: #fff; }
  .hero__copy { background: #fff; padding: 30px; }
  .hero__visual { display: none; }
}

/* Krok 1–2: schválený úvod a situace zákazníka. Původní CSS menu zůstává. */
:root { --green-700:#127344; }
.button--primary, .button--header, .button--submit, .mobile-action-bar__call, .mobile-menu-panel nav .mobile-menu__cta {background:#147c49;}
.button--primary:hover, .button--header:hover, .button--submit:hover {background:#0e6339;}
.hero--revised .hero__content {grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);min-height:530px;}
.hero--revised .hero__copy {padding:48px 38px 44px max(40px, calc((min(100vw, 1600px) - var(--container)) / 2));}
.hero--revised h1 {font-size:clamp(34px,3.05vw,49px);line-height:1.12;letter-spacing:-.026em;text-transform:uppercase;max-width:760px;text-wrap:balance;}
.hero--revised h1 span {color:#8ae2b5;}
.hero--revised h1::after {display:none;}
.hero--revised .hero__lead {font-size:18px;line-height:1.6;max-width:620px;margin-top:22px;}
.hero--revised .hero__proof {font-size:14px;line-height:1.5;margin-top:18px;color:#e1eaf2;}
.hero__actions {display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;align-items:stretch;}
.hero__actions .button {min-height:50px;font-size:14px;padding:14px 18px;}
.button--outline {color:white;background:transparent;border-color:#7d9ab1;}
.button--outline:hover {background:#214b6c;}
.hero__availability {margin:16px 0 0;font-size:13px;color:#d3e0eb;line-height:1.5;}
.hero__availability a {color:white;font-weight:750;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
.hero--revised .hero__visual img {position:absolute;inset:0;}
.hero--revised .hero__visual picture {display:block;height:100%;}
.hero--revised .hero__visual-badge {max-width:calc(100% - 48px);right:24px;left:24px;bottom:24px;}
.help-section {padding-top:36px;padding-bottom:70px;background:#f5f8fa;}
.need-paths {display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:68px;}
.need-path {display:flex;flex-direction:column;padding:25px 28px;border:1px solid #d2dee6;border-radius:16px;background:white;}
.need-path--partner {border-left:4px solid #147c49;}
.need-path--urgent {background:#0b2c4d;color:white;border-color:#0b2c4d;}
.need-path__label {font-size:11px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#127344;}
.need-path--urgent .need-path__label {color:#a9e5c8;}
.need-path h2 {margin:9px 0 0;font-size:23px;line-height:1.25;letter-spacing:-.02em;}
.need-path p {margin:10px 0 14px;font-size:16px;color:#4b5c6b;line-height:1.6;}
.need-path--urgent p {color:#d4e1eb;}
.need-path > a {display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:auto;min-height:44px;color:#127344;font-size:15px;font-weight:750;text-decoration:underline;text-underline-offset:4px;}
.need-path--urgent > a {color:#fff;}
.help-heading {margin-bottom:28px;}
.help-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.help-card {display:flex;flex-direction:column;min-width:0;border:1px solid #dce5ec;border-radius:16px;background:white;padding:26px 26px 16px;box-shadow:0 4px 16px #071f3605;}
.help-card--featured {border-top:3px solid #147c49;padding-top:24px;}
.help-card__top {display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.help-card__icon {height:46px;width:46px;display:grid;place-items:center;background:#eaf5ef;color:#127344;border-radius:12px;}
.help-card__icon svg {height:26px;width:26px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linejoin:round;stroke-linecap:round;}
.help-card__number {font-size:13px;font-weight:700;color:#64788a;}
.help-card h3 {margin:0;font-size:21px;line-height:1.3;letter-spacing:-.018em;color:#0b2c4d;}
.help-card p {margin:12px 0 20px;font-size:16px;line-height:1.65;color:#4c5e6e;}
.help-card > a {display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;margin-top:auto;min-height:50px;border-top:1px solid #e4eaf0;font-size:14px;font-weight:750;color:#127344;text-decoration:underline;text-underline-offset:4px;}
.help-card > a:hover {color:#0b2c4d;}
.help-footer {margin-top:28px;padding:24px 28px;background:white;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.help-footer p {margin:0;color:#4c5e6e;font-size:16px;}
.help-footer strong {display:block;margin-bottom:4px;color:#0b2c4d;}
.help-footer .button {flex-shrink:0;}
.form-urgent-note {padding:12px 14px;font-size:13px;line-height:1.55;background:#eff5f9;color:#203c53;border-radius:8px;}
.form-urgent-note a {font-weight:800;text-decoration:underline;}
.request-type {grid-template-columns:repeat(3,minmax(0,1fr));}
@media(min-width:1081px) and (max-width:1199px) {
  .hero--revised .hero__content {grid-template-columns:1.4fr 1fr;}
  .hero--revised .hero__copy {padding:36px 28px 36px 36px;}
  .hero--revised h1 {font-size:35px;}
  .hero__actions {gap:10px;}
  .hero__actions .button {font-size:13px;padding-inline:14px;}
}
@media(max-width:1080px) {
  .hero--revised .hero__content {grid-template-columns:1fr;min-height:0;}
  .hero--revised .hero__copy {padding:38px 32px;}
  .hero--revised h1 {max-width:740px;font-size:clamp(33px,4.8vw,44px);}
  .hero--revised .hero__visual {min-height:250px;}
  .help-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px) {
  .hero--revised .hero__copy {padding:26px 20px 24px;}
  .hero--revised .eyebrow {font-size:10px;line-height:1.5;margin-bottom:12px;letter-spacing:.085em;}
  .hero--revised h1 {font-size:clamp(27px,7.55vw,37px);line-height:1.14;letter-spacing:-.025em;}
  .hero--revised .hero__lead {font-size:16px;line-height:1.55;margin-top:16px;}
  .hero--revised .hero__proof {font-size:13px;line-height:1.6;margin-top:14px;}
  .hero__actions.mobile-only {display:grid!important;grid-template-columns:1fr;gap:10px;margin-top:18px;}
  .hero__actions .button {font-size:15px;min-height:50px;}
  .hero__availability {font-size:12px;margin-top:12px;}
  .hero--revised .hero__visual {min-height:175px;}
  .hero--revised .hero__visual-badge {padding:10px 13px;left:20px;bottom:16px;right:auto;}
  .hero--revised .hero__visual-badge strong {font-size:12px;}
  .hero--revised .hero__visual-badge span {font-size:10px;}
  .help-section {padding-top:24px;padding-bottom:45px;}
  .need-paths {grid-template-columns:1fr;margin-bottom:42px;gap:14px;}
  .need-path {padding:21px;}
  .need-path--urgent {order:-1;}
  .need-path h2 {font-size:22px;}
  .need-path p {font-size:15px;}
  .need-path > a {font-size:14px;}
  .help-grid {grid-template-columns:1fr;gap:14px;}
  .help-card {padding:22px 22px 12px;}
  .help-card--featured {padding-top:20px;}
  .help-card__top {margin-bottom:14px;}
  .help-card h3 {font-size:22px;}
  .help-card p {font-size:16px;line-height:1.6;margin-bottom:16px;}
  .help-card > a {font-size:14px;}
  .help-footer {padding:22px;flex-direction:column;align-items:stretch;gap:16px;}
  .help-footer .button {width:100%;}
  .request-type {grid-template-columns:1fr;}
}
@media(max-width:360px) {
  .hero--revised .hero__copy {padding:20px 16px;}
  .hero--revised h1 {font-size:26px;}
  .hero--revised .hero__lead {font-size:15px;margin-top:12px;line-height:1.45;}
  .hero--revised .hero__proof {font-size:12px;line-height:1.45;margin-top:10px;}
  .hero__actions.mobile-only {margin-top:14px;gap:8px;}
  .hero__actions .button {min-height:48px;}
}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto;}}

/* Backdrop-filter on a header changes the containing block of fixed children.
   Keep the navigation overlay anchored to the viewport instead. */
.site-header {backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff;}
.mobile-menu-panel nav {max-height:calc(100svh - 68px - 66px);}
@supports selector(body:has(*)) {
  body:has(#mobilni-nabidka:target) .mobile-action-bar {visibility:hidden;}
  body:has(#mobilni-nabidka:target) .mobile-menu-panel nav {max-height:calc(100svh - 68px);}
}
.hero--revised h1 .hero__opening {display:block;color:inherit;}

.mobile-menu-toggle-close {display:none;}
#mobilni-nabidka:target ~ .mobile-menu-trigger {display:none;}
#mobilni-nabidka:target ~ .mobile-menu-toggle-close {width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;color:var(--navy-900);background:white;font-size:30px;line-height:1;}
@media(min-width:1081px) {body:has(#mobilni-nabidka:target){overflow:auto;}}

/* RC1 integration: progressive form, keyboard navigation, reliable menu close. */
.form-runtime-note { margin:0 0 .75rem; font-size:.86rem; line-height:1.5; color:#526477; }
.form-runtime-note.is-preview, .form-status.is-preview { padding:.8rem 1rem; border:1px solid #d9a928; border-radius:.65rem; background:#fff8dd; color:#5c4700; }
.site-footer .footer-grid > div:last-child > span { display:block; }
.js .no-js-required { display:none; }
.field input, .field select, .field textarea { font-size:16px; }
.field > small, .form-contact-note, .privacy-check { font-size:13px; }
.privacy-check a { text-decoration:underline; text-underline-offset:3px; }
.form-contact-note { margin-top:0; margin-bottom:18px; }
.form-status { overflow-wrap:anywhere; }
button:disabled { opacity:.7; cursor:wait; }
:focus-visible { outline:3px solid #137745; outline-offset:4px; }
.hero :focus-visible, .site-footer :focus-visible, .contact-copy :focus-visible { outline-color:#8ae2b5; }
.mobile-menu-panel { transition:none; }
.mobile-menu-panel nav { overscroll-behavior:contain; }
.menu-close-target { scroll-margin:0; }
section[id]:focus, main:focus { outline:none; }
@media(min-width:1081px) {
 body:has(#mobilni-nabidka:target) { overflow:visible; }
 .mobile-menu-panel { visibility:hidden!important; opacity:0!important; pointer-events:none!important; }
}
@media(max-width:760px) {
 .field label { font-size:14px; }
 .help-card > a { min-height:48px; align-items:center; }
}

/* Leave room for fixed mobile actions; never cover an active form / software keyboard. */
@media(max-width:760px) {
 html {scroll-padding-bottom:calc(86px + env(safe-area-inset-bottom));}
 .contact-form button, .field input, .field textarea, .field select {scroll-margin-block:100px;}
 @supports selector(body:has(*)) {
  body:has(#contactForm:focus-within) .mobile-action-bar {visibility:hidden;pointer-events:none;}
 }
}

/* FINAL1: no technical label in notification emails; native fallback keeps a required marker. */
.no-js .email-label::after { content:" *"; color:var(--danger); font-weight:700; }
