.w {
  --papier: #f6f7f4;
  --papier-2: #eceee9;
  --biela: #ffffff;
  --grafit: #1a1f22;
  --grafit-2: #444e4d;
  --grafit-3: #5a6462;
  --linajka: #d9ddd8;
  --linajka-2: #b7beb9;
  --zelen: #0f7a4f;
  --zelen-2: #0a6341;
  --zelen-3: #e1efe7;
  --zelen-svetla: #3fcf8e;
  --fokus: #0f7a4f;
  --chyba: #b3261e;
  --max: 80rem;
  --okraj: clamp(1rem, 4vw, 3rem);
  /* Okraj mriežky s fotkami až po kraj: rovnaký stĺpec obsahu ako hlavička (max-width + padding). */
  --bok: calc(max(0px, (100% - var(--max)) / 2) + var(--okraj));
  --medzera: clamp(4rem, 9vw, 7rem);
  --tma-1: #e8ece9;
  --tma-2: #c3cbc7;
  --tma-3: #9aa5a1;
  --hl: 4.5rem;
  --ease: cubic-bezier(0.23, 1, 0.32, 1);
  /* Papier na stohu: pod listom vykukuje druhý hárok s tenkou hranou. */
  --tien-stoh: 4px 5px 0 -1px var(--biela), 4px 5px 0 0 var(--linajka-2), 0 2px 6px -2px rgba(26, 31, 34, 0.12), 0 34px 70px -34px rgba(26, 31, 34, 0.5);
  margin: 0;
  background: var(--papier);
  color: var(--grafit);
  font-family: "Host Grotesk", ui-sans-serif, system-ui, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.6;
  font-variant-numeric: tabular-nums;
  scrollbar-color: var(--linajka-2) var(--papier);
}
/* Pätička vždy na spodku okna aj pri krátkej stránke; zalamovanie bez osamotených slov. */
.w { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; text-wrap: pretty; }
.w > main { flex: 1 0 auto; }
html:has(.w) { scroll-padding-top: calc(4.5rem + 1px); }
html.menu-otvorene { overflow: hidden; }
.w ::selection { background: var(--zelen-3); color: var(--grafit); }
.w ::placeholder { color: var(--grafit-3); opacity: 1; }
.w h1, .w h2, .w h3 { font-weight: 640; letter-spacing: -0.022em; line-height: 1.08; text-wrap: balance; }
.w h2 { font-size: clamp(2rem, 3.4vw, 3rem); }
.w h3 { font-size: 1.3rem; letter-spacing: -0.012em; }
.w p { text-wrap: pretty; }
.w a { text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
.w a:hover { text-decoration-color: currentColor; }

.tlacidlo { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; min-height: 3.2rem; padding: 0.8rem 1.4rem; border-radius: 0.35rem; font-weight: 620; font-size: 1rem; line-height: 1.2; text-decoration: none; transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms var(--ease); }
.tlacidlo:active { transform: scale(0.97); }
.tlacidlo-hlavne { background: var(--zelen); color: #fff; }
.tlacidlo-obrys { box-shadow: inset 0 0 0 1.5px var(--grafit); color: var(--grafit); }
.tlacidlo-cislo { font-weight: 500; }
.tlacidlo-male { min-height: 2.75rem; padding: 0.6rem 1.1rem; font-size: 0.9375rem; }
@media (hover: hover) and (pointer: fine) {
  .tlacidlo-hlavne:hover { background: var(--zelen-2); }
  .tlacidlo-obrys:hover { background: var(--grafit); color: var(--papier); }
}
.odkaz-sipka { display: inline-flex; align-items: center; gap: 0.55rem; min-height: 2.75rem; font-weight: 620; color: var(--grafit); text-decoration: none; }
.odkaz-sipka::after { content: ""; width: 1.4rem; height: 0.7rem; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 14'%3E%3Cpath d='M0 7h25M19 1l6 6-6 6' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 14'%3E%3Cpath d='M0 7h25M19 1l6 6-6 6' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform 200ms var(--ease); }
.odkaz-sipka:hover::after { transform: translateX(4px); }
.odkaz-svetly { color: #fff; }

.fajka { width: 1.45rem; height: 1.45rem; flex: none; overflow: visible; }
.fajka path { fill: none; stroke: var(--zelen); stroke-width: 2.7; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 32; stroke-dashoffset: 0; }

/* Hlavička */
.hlavicka { position: sticky; top: 0; z-index: 40; background: var(--papier); border-bottom: 1px solid var(--linajka); }
.hlavicka-in { display: flex; align-items: center; gap: 1.25rem; max-width: var(--max); height: var(--hl); margin: 0 auto; padding: 0 var(--okraj); }
.hlavicka-logo { display: flex; align-items: center; flex: 0 1 17.5rem; min-width: 0; min-height: 2.75rem; margin-right: auto; }
.hlavicka-logo img { display: block; width: 100%; height: auto; }
.menu { display: flex; align-items: center; }
.menu-zoznam { display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.menu-zoznam > li > a, .menu-sluzby-tlacidlo { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.75rem; padding: 0 0.7rem; border: 0; border-radius: 0.3rem; background: none; font-size: 0.9375rem; font-weight: 520; color: var(--grafit-2); text-decoration: none; transition: color 150ms ease, background-color 150ms ease; }
.menu-zoznam > li > a:hover, .menu-sluzby-tlacidlo:hover { color: var(--grafit); background: var(--papier-2); }
.menu-zoznam a[aria-current="page"] { color: var(--grafit); box-shadow: inset 0 -2px 0 var(--zelen); border-radius: 0; }
.menu-sluzby { position: relative; }
.menu-sluzby-tlacidlo::after { content: ""; width: 0.45rem; height: 0.45rem; margin-top: -0.2rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform 180ms var(--ease); }
.menu-sluzby-tlacidlo[aria-expanded="true"]::after { transform: translateY(0.2rem) rotate(-135deg); }
.menu-sluzby-panel { position: absolute; top: calc(100% + (var(--hl) - 2.75rem) / 2 + 1px); left: -0.5rem; width: 27rem; padding: 0.5rem; background: var(--biela); box-shadow: 0 0 0 1px var(--linajka), 0 16px 36px -14px rgba(26, 31, 34, 0.38); opacity: 0; transform: translateY(-4px) scale(0.98); transform-origin: 1.5rem 0; visibility: hidden; transition: opacity 160ms ease, transform 160ms var(--ease), visibility 0s linear 160ms; }
.menu-sluzby-tlacidlo[aria-expanded="true"] + .menu-sluzby-panel { opacity: 1; transform: none; visibility: visible; transition: opacity 160ms ease, transform 160ms var(--ease); }
.menu-sluzby-panel ul { margin: 0; padding: 0; list-style: none; }
.menu-zoznam > li > a, .menu-sluzby-tlacidlo { white-space: nowrap; }
.menu-sluzby-panel a { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.55rem 0.7rem; font-weight: 520; text-decoration: none; border-radius: 0.25rem; }
.menu-sluzby-panel a::before { content: ""; width: 0.85rem; height: 0.85rem; margin-top: 0.425rem; border: 1.5px solid var(--linajka-2); border-radius: 2px; flex: none; transition: border-color 150ms ease, background-color 150ms ease; }
.menu-sluzby-panel a:hover { background: var(--papier); }
.menu-sluzby-panel a:hover::before, .menu-sluzby-panel a[aria-current="page"]::before { border-color: var(--zelen); background: var(--zelen); }
.menu-tel { display: none; }
.hlavicka-tel { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 2.75rem; padding: 0 0.3rem; font-weight: 640; text-decoration: none; white-space: nowrap; flex: none; }
.hlavicka-tel svg { width: 1.05rem; height: 1.05rem; fill: var(--zelen); }
.hlavicka-cta { flex: none; min-height: 2.75rem; padding: 0.55rem 1.05rem; font-size: 0.9375rem; white-space: nowrap; }
.menu-tlacidlo { display: none; }

/* Úvod domova */
.uvod { display: grid; grid-template-columns: [full-start] var(--bok) repeat(12, minmax(0, 1fr)) var(--bok) [full-end]; grid-template-rows: auto; padding-bottom: 3rem; }
.uvod-text { grid-column: 2 / 8; grid-row: 1; align-self: start; padding: clamp(3rem, 8vh, 6rem) clamp(1rem, 3vw, 3rem) 0 0; position: relative; z-index: 2; }
.uvod h1 { font-size: clamp(2.6rem, 4.7vw, 4.4rem); line-height: 1.05; letter-spacing: -0.034em; }
.uvod-perex { margin-top: 1.4rem; max-width: 34rem; font-size: 1.1875rem; line-height: 1.55; color: var(--grafit-2); }
.tlacidla { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 2rem; }
.uvod-fakty { display: grid; gap: 0.5rem; margin: 2rem 0 0; padding: 0; list-style: none; font-size: 0.9375rem; color: var(--grafit-2); }
.uvod-fakty li { display: flex; align-items: flex-start; gap: 0.55rem; }
.uvod-fakty .fajka { width: 1.15rem; height: 1.15rem; margin-top: 0.175rem; }
.uvod-foto { grid-column: 8 / full-end; grid-row: 1; position: relative; margin: 0; min-height: max(34rem, calc(100svh - var(--hl))); }
.uvod-foto picture, .uvod-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }
.w figcaption { position: absolute; right: 0.5rem; bottom: 0.5rem; padding: 0.1rem 0.4rem; background: rgba(26, 31, 34, 0.62); font-size: 0.75rem; letter-spacing: 0.02em; color: #fff; }
/* Pri fotkách, cez ktoré prechádza karta, je popis hore, aby ho karta nezakryla. */
.uvod-foto figcaption, .pas-apartmany-foto figcaption { top: 0.5rem; bottom: auto; }
.uvod-list { grid-column: 8 / 14; grid-row: 1; align-self: end; margin: 0 0 -3rem; z-index: 3; transform: rotate(-0.8deg); transform-origin: 20% 100%; }

/* Kontrolný list */
.list { position: relative; margin: 0; padding: 1.35rem 1.45rem 1rem; background: var(--biela); box-shadow: var(--tien-stoh); }
.list-hlava { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1rem; padding-bottom: 0.8rem; border-bottom: 2px solid var(--grafit); }
.list-riadok { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.9rem; }
.list-pole { font-size: 0.75rem; font-weight: 640; letter-spacing: 0.12em; text-transform: uppercase; color: var(--grafit-3); }
.list-typ { font-size: 1.0625rem; font-weight: 620; letter-spacing: -0.01em; }
.list-ukazka { align-self: center; padding: 0.15rem 0.5rem; border: 1.5px solid var(--grafit-3); color: var(--grafit-3); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; transform: rotate(-4deg); }
.list-tabulka { width: 100%; border-collapse: collapse; font-size: 0.9375rem; line-height: 1.35; }
.list-tabulka th { padding: 0.65rem 0.5rem 0.4rem 0; text-align: left; font-size: 0.75rem; font-weight: 640; letter-spacing: 0.12em; text-transform: uppercase; color: var(--grafit-3); }
.list-tabulka td { padding: 0.5rem 0.5rem 0.5rem 0; border-bottom: 1px solid var(--linajka); vertical-align: baseline; }
.list-tabulka tbody tr:last-child td { border-bottom: 0; }
/* Políčko aj fajka sú v riadku textu, takže sedia na účiarí bez ohľadu na odsadenie bunky. */
.list-box { width: 2rem; white-space: nowrap; }
.list-box::before { content: ""; display: inline-block; width: 1em; height: 1em; border: 1.5px solid var(--grafit-2); vertical-align: -0.15em; }
.list-box .fajka { display: inline-block; width: 1.55em; height: 1.55em; margin-left: -1.1em; vertical-align: -0.2em; }
.list-m { font-weight: 620; white-space: nowrap; }
.list-stroj { font-size: 0.8125rem; color: var(--grafit-3); white-space: nowrap; }
.w .list-pata { position: static; background: none; padding-left: 0; padding-right: 0; padding-bottom: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: 0.3rem; padding-top: 0.7rem; border-top: 1px solid var(--linajka-2); font-size: 0.8125rem; color: var(--grafit-3); text-shadow: none; letter-spacing: 0; }
.parafa { width: 7rem; height: 2.3rem; flex: none; }
.parafa path { fill: none; stroke: var(--grafit); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 260; stroke-dashoffset: 0; }
@keyframes kresli { from { stroke-dashoffset: var(--dlzka, 32); } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: no-preference) {
  .list-animuj .fajka path { animation: kresli 420ms var(--ease) both; }
  .list-animuj tbody tr:nth-child(1) .fajka path { animation-delay: 500ms; }
  .list-animuj tbody tr:nth-child(2) .fajka path { animation-delay: 640ms; }
  .list-animuj tbody tr:nth-child(3) .fajka path { animation-delay: 780ms; }
  .list-animuj tbody tr:nth-child(4) .fajka path { animation-delay: 920ms; }
  .list-animuj tbody tr:nth-child(5) .fajka path { animation-delay: 1060ms; }
  .list-animuj tbody tr:nth-child(6) .fajka path { animation-delay: 1200ms; }
  .list-animuj tbody tr:nth-child(7) .fajka path { animation-delay: 1340ms; }
  .list-animuj tbody tr:nth-child(8) .fajka path { animation-delay: 1480ms; }
  .list-animuj tbody tr:nth-child(9) .fajka path { animation-delay: 1620ms; }
  .list-animuj tbody tr:nth-child(n+10) .fajka path { animation-delay: 1760ms; }
  .list-animuj .parafa path { --dlzka: 260; animation: kresli 900ms cubic-bezier(0.65, 0, 0.35, 1) both; animation-delay: 1900ms; }
  .js [data-animuj]:not(.list-animuj) .fajka path { stroke-dashoffset: 32; }
  .js [data-animuj]:not(.list-animuj) .parafa path { stroke-dashoffset: 260; }
  .panel-animuj .fajka path { animation: kresli 380ms var(--ease) both; }
  .panel-animuj li:nth-child(1) .fajka path { animation-delay: 120ms; }
  .panel-animuj li:nth-child(2) .fajka path { animation-delay: 240ms; }
  .panel-animuj li:nth-child(3) .fajka path { animation-delay: 360ms; }
  .panel-animuj li:nth-child(4) .fajka path { animation-delay: 480ms; }
  .panel[data-zobrazeny] { animation: vyplav 260ms var(--ease) both; }
}
@keyframes vyplav { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Spoločné sekcie */
.sekcia-hlava { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.sekcia-hlava h2 { padding-top: 1.1rem; border-top: 2px solid var(--grafit); }
.sekcia-hlava p { margin-top: 1rem; font-size: 1.125rem; color: var(--grafit-2); }
.sluzby, .postup, .kde, .otazky { max-width: var(--max); margin: 0 auto; padding: var(--medzera) var(--okraj) 0; }

/* Služby – záložky */
.karty { display: grid; grid-template-columns: minmax(15rem, 1fr) 3fr; gap: 0 clamp(1.5rem, 4vw, 4rem); align-items: start; }
.karty-zoznam { display: grid; border-top: 1px solid var(--linajka-2); }
.karty-zoznam [role="tab"] { display: flex; align-items: flex-start; gap: 0.8rem; width: 100%; padding: 0.8rem 0.3rem; border: 0; border-bottom: 1px solid var(--linajka); background: none; text-align: left; font-size: 1.0625rem; font-weight: 520; color: var(--grafit-2); transition: color 150ms ease, background-color 150ms ease; }
.karty-box { width: 1.05rem; height: 1.05rem; margin-top: 0.325rem; flex: none; border: 1.5px solid var(--linajka-2); border-radius: 2px; transition: border-color 160ms ease, background-color 160ms ease; }
.karty-zoznam [role="tab"][aria-selected="true"] { color: var(--grafit); font-weight: 640; }
.karty-zoznam [role="tab"][aria-selected="true"] .karty-box { border-color: var(--zelen); background: var(--zelen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4 4.2L19 7' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 0.8rem no-repeat; }
@media (hover: hover) and (pointer: fine) {
  .karty-zoznam [role="tab"]:hover { color: var(--grafit); background: var(--papier-2); }
}
.panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.panel[data-skryty] { display: none; }
.panel:focus-visible { outline: 2px solid var(--fokus); outline-offset: 8px; }
.panel-foto { position: relative; margin: 0; }
.panel-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.panel-text h3 { font-size: clamp(1.5rem, 2.2vw, 1.9rem); }
.panel-text > p { margin-top: 0.8rem; color: var(--grafit-2); }
.panel-riadky { margin: 1.5rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--linajka-2); }
.panel-riadky li { display: grid; grid-template-columns: 1.7rem 8rem minmax(0, 1fr); gap: 0.6rem; align-items: start; padding: 0.7rem 0; border-bottom: 1px solid var(--linajka); font-size: 0.9875rem; line-height: 1.4; }
.panel-m { font-weight: 620; }
.panel-u { color: var(--grafit-2); }
.panel-odkazy { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.4rem; margin-top: 1.75rem; }

/* Pás apartmánov */
.pas-apartmany { position: relative; display: grid; grid-template-columns: [full-start] var(--bok) repeat(12, minmax(0, 1fr)) var(--bok) [full-end]; margin-top: var(--medzera); min-height: clamp(30rem, 78vh, 48rem); align-items: center; }
.pas-apartmany-foto { grid-column: full-start / full-end; grid-row: 1; align-self: stretch; position: relative; margin: 0; }
.pas-apartmany-foto picture, .pas-apartmany-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }
.pas-apartmany-karta { grid-column: 9 / 14; grid-row: 1; position: relative; z-index: 2; margin: clamp(2rem, 5vw, 4rem) 0; padding: clamp(1.5rem, 3vw, 2.4rem); background: var(--biela); box-shadow: var(--tien-stoh); }
.pas-apartmany-karta h2 { font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.pas-apartmany-karta > p { margin-top: 0.9rem; color: var(--grafit-2); }
.pas-apartmany-riadky { margin: 1.3rem 0 1rem; padding: 0; list-style: none; border-top: 2px solid var(--grafit); }
.pas-apartmany-riadky .fajka { margin-top: 0.125rem; }
.pas-apartmany-riadky li { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.6rem 0; border-bottom: 1px solid var(--linajka); font-weight: 520; }

/* Technika – jediný tmavý pás */
.technika { margin-top: var(--medzera); background: var(--grafit); color: var(--tma-1); }
.technika-in { max-width: var(--max); margin: 0 auto; padding: var(--medzera) var(--okraj) 0; }
/* Úvod pásu na 12 stĺpcoch: text vpravo začína na tej istej čiare ako tabuľka strojov. */
.technika-hlava { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem 0; align-items: start; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.technika-hlava h2 { grid-column: 1 / 7; grid-row: 1 / 3; margin-right: clamp(1.5rem, 4vw, 4rem); padding-top: 1.1rem; border-top: 2px solid var(--tma-1); }
.technika-hlava p, .technika-hlava .odkaz-sipka { grid-column: 7 / 13; }
.technika-miniatura picture { display: block; width: 100%; height: 100%; }
.technika-hlava p { color: var(--tma-2); font-size: 1.125rem; }
.technika-hlava .nepotvrdene, .technika .nepotvrdene { text-decoration-color: #e2b650; }
.technika-in-pata { padding-top: 0; padding-bottom: var(--medzera); }
/* Súpis strojov: jedna veľká fotka až po okraj pásu a vedľa nej riadky tlačiva. */
.technika-sklad { display: grid; grid-template-columns: [full-start] var(--bok) repeat(12, minmax(0, 1fr)) var(--bok) [full-end]; align-items: center; }
.technika-hlavna { grid-column: full-start / 7; grid-row: 1; align-self: stretch; position: relative; margin: 0; min-height: 34rem; overflow: hidden; }
.technika-hlavna picture, .technika-hlavna img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 28% 62%; }
.technika-tabulka { grid-column: 8 / 14; grid-row: 1; width: 100%; border-collapse: collapse; font-size: 0.9875rem; line-height: 1.45; }
.technika-tabulka thead th { padding: 0 1rem 0.7rem 0; border-bottom: 2px solid var(--tma-1); text-align: left; font-size: 0.75rem; font-weight: 640; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tma-3); }
.technika-tabulka tbody th, .technika-tabulka td { padding: 1.1rem 1rem 1.1rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); text-align: left; vertical-align: middle; }
.technika-tabulka tbody th { font-weight: 640; font-size: 1.125rem; color: #fff; }
.technika-tabulka thead th:first-child { width: 36%; }
.technika-tabulka thead th:nth-child(2) { width: 26%; }
.technika-meno { display: flex; align-items: center; gap: 0.9rem; }
.technika-miniatura { flex: none; width: 3.75rem; height: 3.75rem; overflow: hidden; }
.technika-miniatura img { width: 100%; height: 100%; object-fit: cover; }
.technika-kde { font-weight: 600; color: var(--zelen-svetla); }
.technika-tabulka td:last-child { color: var(--tma-2); }
.technika-pravne { max-width: 60ch; margin-top: clamp(2rem, 4vw, 3rem); padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 0.8125rem; color: var(--tma-3); }

/* Postup ako jeden riadok tlačiva */
.postup-list { padding: clamp(1.2rem, 2.6vw, 2rem) clamp(1.2rem, 3vw, 2.4rem) 1.1rem; }
.postup-tabulka { font-size: 1rem; }
.postup-tabulka td { padding-top: 0.85rem; padding-bottom: 0.85rem; }
.postup-krok { width: 32%; font-weight: 620; }
.postup-tabulka td:nth-child(3) { color: var(--grafit-2); }
.postup-kto { width: 5rem; font-size: 0.875rem; color: var(--grafit-3); white-space: nowrap; }

/* Dojazd */
.dojazd-mierka { width: 100%; height: auto; overflow: visible; }
.dojazd-os { stroke: var(--grafit); stroke-width: 2; }
.dojazd-znacka { stroke: var(--grafit); stroke-width: 1.5; }
.dojazd-min { fill: var(--grafit-3); font-size: 13px; font-weight: 500; }
.dojazd-ciara { stroke: var(--linajka-2); stroke-width: 1; stroke-dasharray: 3 3; }
.dojazd-bod { fill: var(--biela); stroke: var(--zelen); stroke-width: 2.5; }
.dojazd-domov { fill: var(--zelen); }
.dojazd-obec { fill: var(--grafit); font-size: 15px; font-weight: 620; }
.dojazd-obec-min { fill: var(--grafit-3); font-weight: 500; }
.dojazd-zoznam { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kde-zdroj { max-width: 62ch; margin-top: 1.5rem; font-size: 0.875rem; color: var(--grafit-3); }

/* O nás */
.onas { display: grid; grid-template-columns: [full-start] var(--bok) repeat(12, minmax(0, 1fr)) var(--bok) [full-end]; margin-top: var(--medzera); align-items: center; }
.onas-foto { grid-column: full-start / 8; position: relative; margin: 0; }
.onas-foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.onas-text { grid-column: 9 / 14; }
.onas-text h2 { padding-top: 1.1rem; border-top: 2px solid var(--grafit); }
.onas-text p { margin-top: 1.1rem; font-size: 1.1875rem; color: var(--grafit-2); }

/* Otázky */
.otazky { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(2rem, 5vw, 5rem); }
.otazky .sekcia-hlava { margin: 0; }
.otazky-zoznam { border-top: 2px solid var(--grafit); }
.otazky details { border-bottom: 1px solid var(--linajka); }
.otazky summary { display: flex; justify-content: space-between; gap: 1.5rem; padding: 1.2rem 0; font-weight: 620; font-size: 1.125rem; cursor: pointer; list-style: none; }
.otazky summary::-webkit-details-marker { display: none; }
.otazky summary::after { content: ""; flex: none; width: 0.8rem; height: 0.8rem; margin-top: 0.45rem; background: linear-gradient(var(--grafit), var(--grafit)) center / 100% 1.5px no-repeat, linear-gradient(var(--grafit), var(--grafit)) center / 1.5px 100% no-repeat; transition: transform 220ms var(--ease); }
.otazky details[open] summary::after { transform: rotate(45deg); }
.otazky details p { max-width: 58ch; padding: 0 2.5rem 1.3rem 0; color: var(--grafit-2); }

/* Dopyt */
.dopyt-sekcia { margin-top: var(--medzera); background: var(--papier-2); }
.dopyt-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; max-width: var(--max); margin: 0 auto; padding: var(--medzera) var(--okraj); }
.dopyt-bok h2 { padding-top: 1.1rem; border-top: 2px solid var(--grafit); }
.dopyt-bok > p { margin-top: 1rem; color: var(--grafit-2); font-size: 1.125rem; }
.dopyt-tel { display: inline-block; margin-top: 1.75rem; font-size: clamp(1.8rem, 3vw, 2.5rem); font-weight: 680; letter-spacing: -0.025em; text-decoration: underline 3px var(--zelen); text-underline-offset: 0.2em; }
.dopyt-body { display: grid; gap: 0.4rem; margin: 1.6rem 0 0; padding: 0; list-style: none; font-size: 0.9375rem; color: var(--grafit-2); }
.dopyt-karta { position: relative; padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--biela); box-shadow: var(--tien-stoh); border-top: 2px solid var(--grafit); }
.w .dopyt-mriezka { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1.25rem; }
.w .formular-pole { align-content: start; }
.w .formular-pole-sirka { grid-column: 1 / -1; }
.w .formular-pole label { font-size: 0.9375rem; }
.w .volitelne { font-weight: 400; color: var(--grafit-3); }
.w .formular-pole input, .w .formular-pole select, .w .formular-pole textarea { width: 100%; min-height: 2.75rem; padding: 0.4rem 0.1rem 0.5rem; border: 0; border-bottom: 1.5px solid var(--grafit-3); border-radius: 0; background: transparent; font-size: 1rem; transition: border-color 150ms ease, background-color 150ms ease; }
.w .formular-pole select { padding-right: 1.5rem; appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231a1f22' stroke-width='1.6'/%3E%3C/svg%3E") right 0.2rem center / 0.75rem no-repeat; }
.w .formular-pole textarea { min-height: 5.5rem; resize: vertical; }
.w .formular-pole input:focus, .w .formular-pole select:focus, .w .formular-pole textarea:focus { outline: none; border-bottom-color: var(--zelen); background-color: var(--zelen-3); }
.w .formular-pole input:focus-visible, .w .formular-pole select:focus-visible, .w .formular-pole textarea:focus-visible { box-shadow: 0 2px 0 var(--zelen); }
.w .formular-pole .napoveda { opacity: 1; color: var(--grafit-3); }
.w .dopyt-koniec { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.75rem; }
.w .dopyt-koniec button { min-height: 3.3rem; padding: 0.85rem 1.6rem; border: 0; border-radius: 0.35rem; background: var(--zelen); color: #fff; font-weight: 640; transition: background-color 160ms ease, transform 160ms var(--ease); }
.w .dopyt-koniec button:hover { background: var(--zelen-2); }
.w .dopyt-koniec button:active { transform: scale(0.97); }
.w .dopyt-info { flex: 1 1 16rem; font-size: 0.8125rem; color: var(--grafit-3); }
.w .dopyt-stav { margin-top: 0.8rem; font-weight: 620; }
.w .dopyt:has([aria-invalid="true"]) .dopyt-stav { color: var(--chyba); }
/* Chybné pole ostáva červené aj s fokusom; nápoveda ustúpi hláške o chybe. */
.w .formular-pole [aria-invalid="true"]:focus { background-color: transparent; box-shadow: 0 2px 0 var(--chyba); }
.w .formular-pole:has([aria-invalid="true"]) .napoveda { display: none; }
.w .dopyt-stav:empty { display: none; }
.chyba-bez-js { display: none; margin: 0 0 1rem; font-weight: 620; color: var(--chyba); }
.w .dopyt-hotovo { padding: 0.5rem 0; }
.w .dopyt-hotovo:focus { outline: none; }
.w .dopyt-hotovo-nadpis { font-size: 1.5rem; font-weight: 680; letter-spacing: -0.02em; }
.w .dopyt-hotovo p + p { margin-top: 0.6rem; color: var(--grafit-2); }

/* Pätička */
.pata { background: var(--grafit); color: var(--tma-2); font-size: 0.9375rem; }
.pata-in { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.5fr; gap: 2rem clamp(1.5rem, 3vw, 3rem); max-width: var(--max); margin: 0 auto; padding: clamp(3rem, 7vw, 5rem) var(--okraj) clamp(3rem, 6vw, 4rem); }
.pata-logo { width: auto; height: 2rem; margin-bottom: 1rem; }
.pata-firma p + p { margin-top: 0.4rem; }
.pata-firma a { display: inline-block; padding: 0.2rem 0; }
.pata a { color: #fff; }
.pata-nadpis { margin-bottom: 0.6rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tma-3); }
.pata-stlpec ul { display: grid; margin: 0; padding: 0; list-style: none; }
.pata-stlpec a { display: inline-block; padding: 0.3rem 0; text-decoration: none; }
.pata-stlpec a:hover { text-decoration: underline; }
.pata-pravne { display: grid; align-content: start; gap: 0.55rem; font-size: 0.8125rem; color: var(--tma-3); }
.pata .nepotvrdene { text-decoration-color: #e2b650; }
.spodna-lista { display: none; }

/* Podstránky */
.omrvinky { max-width: var(--max); margin: 0 auto; padding: 1.4rem var(--okraj) 0; font-size: 0.875rem; color: var(--grafit-3); }
.omrvinky ol { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.omrvinky li + li::before { content: "/"; margin-right: 0.4rem; color: var(--linajka-2); }
.omrvinky a { display: inline-block; padding: 0.25rem 0; color: var(--grafit-2); }
.stranka-uvod { display: grid; grid-template-columns: [full-start] var(--bok) repeat(12, minmax(0, 1fr)) var(--bok) [full-end]; align-items: center; }
.stranka-uvod-text { grid-column: 2 / 8; padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 3vw, 3rem) clamp(2rem, 5vw, 4rem) 0; }
.stranka-uvod h1 { font-size: clamp(2.4rem, 4.2vw, 3.9rem); line-height: 1.05; letter-spacing: -0.03em; }
.stranka-uvod-perex { margin-top: 1.25rem; max-width: 36rem; font-size: 1.1875rem; color: var(--grafit-2); }
.stranka-uvod-foto { grid-column: 8 / full-end; position: relative; margin: 0; align-self: stretch; min-height: clamp(22rem, 56vh, 38rem); }
.stranka-uvod-foto picture, .stranka-uvod-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.obsah-sekcia { max-width: var(--max); margin: 0 auto; padding: var(--medzera) var(--okraj) 0; }
.varianty { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--grafit); }
.varianty li { padding: 1.3rem 1.5rem 1.4rem 0; border-bottom: 1px solid var(--linajka); }
.varianty li + li { padding-left: 1.5rem; border-left: 1px solid var(--linajka); }
.varianty h3 { font-size: 1.15rem; }
.varianty p { margin-top: 0.5rem; font-size: 0.9875rem; color: var(--grafit-2); }
.zoznam-karta { position: relative; padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--biela); box-shadow: var(--tien-stoh); }
.zoznam-karta-hlava { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; padding-bottom: 0.9rem; border-bottom: 2px solid var(--grafit); }
.zoznam-karta-hlava h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.zoznam-karta-hlava p { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--grafit-3); }
/* Miestnosti tečú v dvoch vyrovnaných stĺpcoch, aby pri nepárnom počte neostala prázdna bunka. */
.zoznam-miestnosti { columns: 2; column-gap: clamp(1.5rem, 4vw, 3.5rem); }
.zoznam-miestnost { break-inside: avoid; }
.zoznam-miestnost h3 { padding: 1.2rem 0 0.5rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--grafit-3); }
.zoznam-miestnost ul { margin: 0; padding: 0; list-style: none; }
.zoznam-miestnost li { display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.55rem 0; border-bottom: 1px solid var(--linajka); }
.zoznam-miestnost .fajka { margin-top: 0.05rem; }
.zoznam-navyse { margin-top: clamp(1.5rem, 3vw, 2.2rem); padding: 1.2rem 1.4rem; border: 1.5px dashed var(--linajka-2); }
.zoznam-navyse h3 { font-size: 1.05rem; }
.zoznam-navyse ul { display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; margin: 0.7rem 0 0; padding: 0; list-style: none; color: var(--grafit-2); }
.zoznam-navyse li { display: flex; align-items: flex-start; gap: 0.5rem; }
.zoznam-navyse li::before { content: ""; flex: none; width: 0.8rem; height: 0.8rem; margin-top: 0.45rem; border: 1.5px solid var(--linajka-2); border-radius: 2px; }
.info-dvojica { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 2.5rem clamp(1.5rem, 4vw, 4rem); }
.stranka-miesta { margin-top: 0.9rem; font-size: 0.9375rem; color: var(--grafit-2); }
.koniec-medzera { height: var(--medzera); }
.kontakt { padding-top: clamp(2rem, 5vw, 3.5rem); }
.kontakt h1 { font-size: clamp(2.3rem, 4.2vw, 3.6rem); line-height: 1.05; letter-spacing: -0.03em; }
.zoznam-miestnost:nth-child(2) { --m: 260ms; }
.zoznam-miestnost:nth-child(3) { --m: 520ms; }
.zoznam-miestnost:nth-child(4) { --m: 780ms; }
.zoznam-miestnost li:nth-child(2) { --l: 90ms; }
.zoznam-miestnost li:nth-child(3) { --l: 180ms; }
.zoznam-miestnost li:nth-child(4) { --l: 270ms; }
.zoznam-miestnost li:nth-child(n+5) { --l: 360ms; }
@media (prefers-reduced-motion: no-preference) {
  .list-animuj .zoznam-miestnost .fajka path { animation-delay: calc(150ms + var(--m, 0ms) + var(--l, 0ms)); }
  .zoznam-karta.list-animuj .parafa path { animation-delay: 1500ms; }
}
.info-dvojica h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); padding-top: 1rem; border-top: 2px solid var(--grafit); }
.info-dvojica p { max-width: 56ch; margin-top: 0.9rem; color: var(--grafit-2); font-size: 1.0625rem; }
.stroje-cipy { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.stroje-cipy a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.5rem 1rem; border: 1.5px solid var(--grafit); border-radius: 0.3rem; font-weight: 600; text-decoration: none; transition: background-color 150ms ease, color 150ms ease; }
.stroje-cipy a:hover { background: var(--grafit); color: var(--papier); }
.suvisiace { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.suvisiace li { display: grid; }
.suvisiace a { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; align-items: start; height: 100%; padding: 0.8rem; background: var(--biela); box-shadow: 0 1px 0 rgba(26, 31, 34, 0.05), 0 10px 24px -18px rgba(26, 31, 34, 0.45); text-decoration: none; transition: box-shadow 200ms ease, transform 200ms var(--ease); }
.suvisiace a:hover { transform: translateY(-2px); box-shadow: 0 1px 0 rgba(26, 31, 34, 0.05), 0 16px 30px -18px rgba(26, 31, 34, 0.55); }
.suvisiace img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.suvisiace strong { display: block; padding-top: 0.2rem; font-size: 1.05rem; line-height: 1.25; color: var(--grafit); }
.suvisiace a > span > span { display: block; margin-top: 0.35rem; font-size: 0.875rem; line-height: 1.45; color: var(--grafit-3); }
/* Položka sa presúva na ďalší riadok celá; dlhšia než riadok sa zalomí vo vnútri. */
.suvisiace-polozka { display: inline-block; }
.otazky-stranka { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }

/* Technika – podstránka */
.stroj-sekcia { display: grid; grid-template-columns: [full-start] var(--bok) repeat(12, minmax(0, 1fr)) var(--bok) [full-end]; align-items: center; margin-top: var(--medzera); }
.stroj-sekcia-foto { grid-column: full-start / 8; position: relative; margin: 0; }
.stroj-sekcia-foto img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.stroj-sekcia-text { grid-column: 9 / 14; }
.stroj-sekcia:nth-of-type(odd) .stroj-sekcia-foto { grid-column: 8 / full-end; grid-row: 1; }
.stroj-sekcia:nth-of-type(odd) .stroj-sekcia-text { grid-column: 2 / 7; grid-row: 1; }
.stroj-sekcia-text h2 { padding-top: 1rem; border-top: 2px solid var(--grafit); font-size: clamp(1.8rem, 3vw, 2.6rem); }
.stroj-udaje { display: grid; grid-template-columns: 9rem minmax(0, 1fr); margin: 1.4rem 0 0; border-top: 1px solid var(--linajka-2); }
.stroj-udaje dt, .stroj-udaje dd { margin: 0; padding: 0.8rem 0; border-bottom: 1px solid var(--linajka); }
.stroj-udaje dt { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--grafit-3); padding-top: 1.05rem; }
.stroj-udaje dd { color: var(--grafit-2); }
.stroj-sluzby { display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin: 0; padding: 0; list-style: none; }
.stroj-udaje dd a { display: inline-block; padding: 0.15rem 0; font-weight: 600; color: var(--grafit); }
.poznamka-ramcek { max-width: 46rem; padding: clamp(1.3rem, 3vw, 2rem); border: 1.5px solid var(--grafit); }
.poznamka-ramcek h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.poznamka-ramcek p { max-width: 56ch; margin-top: 0.8rem; color: var(--grafit-2); }

/* Kontakt */
.kontakt-mriezka { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.kontakt-tel { display: inline-block; margin-top: 0.4rem; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 680; letter-spacing: -0.03em; text-decoration: underline 3px var(--zelen); text-underline-offset: 0.2em; }
.kontakt-udaje { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); column-gap: 1rem; margin: 2rem 0 0; border-top: 2px solid var(--grafit); }
.kontakt-udaje dt, .kontakt-udaje dd { margin: 0; padding: 0.85rem 0; border-bottom: 1px solid var(--linajka); }
.kontakt-udaje dt { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--grafit-3); padding-top: 1.1rem; }

/* Textové stránky */
/* Textové stránky sedia v tom istom stĺpci ako zvyšok webu, čitateľná šírka riadku ostáva. */
.text-stranka { max-width: var(--max); margin: 0 auto; padding: clamp(2rem, 5vw, 3.5rem) var(--okraj) var(--medzera); }
.text-stranka > * { max-width: 44rem; }
.text-stranka h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1.06; letter-spacing: -0.03em; }
.text-stranka h2 { margin-top: 2.6rem; font-size: 1.4rem; padding-top: 0.9rem; border-top: 2px solid var(--grafit); }
.text-stranka p, .text-stranka ul { margin-top: 0.9rem; color: var(--grafit-2); }
.text-stranka ul { padding-left: 1.2rem; }
.text-stranka li + li { margin-top: 0.4rem; }
.text-stranka-perex { margin-top: 1.2rem; font-size: 1.1875rem; }
.text-stranka-poznamka { margin-top: 2.5rem !important; font-size: 0.875rem; }

/* Odhalenie fotiek pri posúvaní (len prvky, ktoré boli pri načítaní celé pod oknom) */
@media (prefers-reduced-motion: no-preference) {
  .js .odhal.cakaj { clip-path: inset(0 0 100% 0); }
  .js .odhal.cakaj img { transform: scale(1.06); }
  .js .odhal { overflow: clip; transition: clip-path 900ms cubic-bezier(0.77, 0, 0.175, 1); }
  .js .odhal img { transition: transform 1100ms var(--ease); }
}

@media (max-width: 79.99em) {
  .hlavicka-in { gap: 1rem; }
  .hlavicka-tel-cislo { display: none; }
}
@media (min-width: 64em) and (max-width: 79.99em) {
  .uvod .tlacidla .tlacidlo, .stranka-uvod .tlacidla .tlacidlo { flex: 1 1 auto; }
  .panel { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
}
/* Pod 1200 px sú popisy na časovej osi primalé: namiesto nej zoznam. Súpis strojov ide pod fotku. */
@media (max-width: 74.99em) {
  .dojazd-mierka { display: none; }
  .dojazd-zoznam { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); column-gap: 1.5rem; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--grafit); }
  .dojazd-zoznam li { display: flex; flex-direction: column; padding: 0.55rem 0; border-bottom: 1px solid var(--linajka); line-height: 1.3; }
  .dojazd-zoznam-obec { font-weight: 620; }
  .dojazd-zoznam-cas { font-size: 0.875rem; color: var(--grafit-2); }
  .technika-sklad { grid-template-columns: [full-start] var(--bok) minmax(0, 1fr) var(--bok) [full-end]; }
  .technika-hlavna { grid-column: full-start / full-end; min-height: 0; }
  .technika-hlavna picture, .technika-hlavna img { position: static; aspect-ratio: 21 / 9; }
  .technika-tabulka { grid-column: 2; grid-row: 2; margin-top: 1.75rem; }
  .technika-pravne { border-top: 0; padding-top: 0; }
}
@media (max-width: 71.99em) {
  .menu-zoznam > li > a, .menu-sluzby-tlacidlo { padding: 0 0.5rem; }
  /* Na úzkom desktope by inak logo muselo ustúpiť pod čitateľnú veľkosť. */
  .menu-dlhe { display: none; }
}
@media (max-width: 63.99em) {
  .menu-dlhe { display: inline; }
}
@media (max-width: 63.99em) {
  .w { --medzera: 3.5rem; }
  .hlavicka-in { gap: 0.75rem; }
  .hlavicka-logo { flex-basis: 15.25rem; }
  .menu-tlacidlo { display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; margin-right: -0.7rem; border: 0; background: none; }
  .menu-ciary, .menu-ciary::before, .menu-ciary::after { display: block; width: 1.35rem; height: 2px; background: var(--grafit); transition: transform 200ms var(--ease), background-color 150ms ease; }
  .menu-ciary { position: relative; }
  .menu-ciary::before, .menu-ciary::after { content: ""; position: absolute; left: 0; }
  .menu-ciary::before { top: -0.42rem; }
  .menu-ciary::after { top: 0.42rem; }
  .menu-otvorene .menu-ciary { background: transparent; }
  .menu-otvorene .menu-ciary::before { transform: translateY(0.42rem) rotate(45deg); }
  .menu-otvorene .menu-ciary::after { transform: translateY(-0.42rem) rotate(-45deg); }
  .menu { position: absolute; top: 100%; left: 0; right: 0; z-index: 39; display: none; flex-direction: column; align-items: stretch; height: calc(100dvh - var(--hl)); overflow-y: auto; padding: 0.5rem var(--okraj) 1.5rem; background: var(--papier); border-bottom: 1px solid var(--linajka); box-shadow: 0 20px 40px -20px rgba(26, 31, 34, 0.35); }
  .menu-otvorene .menu { display: flex; }
  .menu-zoznam { flex-direction: column; align-items: stretch; gap: 0; }
  .menu-zoznam > li > a, .menu-sluzby-tlacidlo { width: 100%; min-height: 3.3rem; padding: 0; border-bottom: 1px solid var(--linajka); border-radius: 0; font-size: 1.125rem; color: var(--grafit); justify-content: space-between; }
  .menu-zoznam > li > a:hover, .menu-sluzby-tlacidlo:hover { background: none; }
  .menu-zoznam a[aria-current="page"] { box-shadow: none; color: var(--zelen); }
  .menu-sluzby-panel { position: static; width: auto; padding: 0.3rem 0 0.6rem; border: 0; box-shadow: none; background: none; opacity: 1; transform: none; visibility: visible; display: none; transition: none; }
  .menu-sluzby-tlacidlo[aria-expanded="true"] + .menu-sluzby-panel { display: block; }
  .menu-sluzby-tlacidlo[aria-expanded="true"] + .menu-sluzby-panel { border-bottom: 1px solid var(--linajka); }
  .menu-otvorene .spodna-lista { display: none; }
  .menu-tel { display: flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 3.2rem; margin-top: 1.2rem; border-radius: 0.35rem; background: var(--zelen); color: #fff; font-weight: 640; text-decoration: none; }
  .hlavicka-cta { display: none; }
  .hlavicka-tel { width: 2.75rem; justify-content: center; }
  .uvod { grid-template-columns: [full-start] var(--okraj) minmax(0, 1fr) var(--okraj) [full-end]; }
  .uvod-text { grid-column: 2; padding: 2.4rem 0 0; }
  .uvod-foto { grid-column: full-start / full-end; grid-row: 2; min-height: 0; margin-top: 2.5rem; }
  .uvod-foto picture, .uvod-foto img { position: static; aspect-ratio: 4 / 3; }
  .uvod-list { grid-column: 2; grid-row: 3; margin: -4.5rem 0.3rem 0; transform: rotate(-0.6deg); }
  .karty { grid-template-columns: minmax(0, 1fr); }
  .karty-zoznam { display: flex; gap: 0.5rem; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--okraj) * -1) 1.5rem; padding: 0 var(--okraj) 0.3rem; border: 0; scrollbar-width: none; }
  .karty-zoznam::-webkit-scrollbar { display: none; }
  .karty-zoznam [role="tab"] .karty-box { margin-top: 0; }
  .karty-zoznam [role="tab"] span { white-space: nowrap; }
  .karty-zoznam [role="tab"] { flex: none; align-items: center; width: auto; min-height: 2.75rem; padding: 0.5rem 0.95rem; border: 1px solid var(--linajka-2); border-radius: 0.35rem; font-size: 0.9375rem; scroll-snap-align: start; }
  .karty-zoznam [role="tab"][aria-selected="true"] { border-color: var(--zelen); }
  .panel { grid-template-columns: minmax(0, 1fr); }
  .panel-foto img { aspect-ratio: 16 / 10; }
  .pas-apartmany { grid-template-columns: [full-start] var(--okraj) minmax(0, 1fr) var(--okraj) [full-end]; min-height: 0; }
  .pas-apartmany-foto { grid-row: 1; }
  .pas-apartmany-foto picture, .pas-apartmany-foto img { position: static; aspect-ratio: 4 / 3; }
  .pas-apartmany-karta { grid-column: 2; grid-row: 2; margin: -3.5rem 0 0; }
  .technika-hlava { grid-template-columns: minmax(0, 1fr); }
  .technika-hlava > * { grid-column: 1 / -1; }
  .technika-hlava h2 { grid-row: auto; margin-right: 0; }
  .suvisiace { grid-template-columns: minmax(0, 1fr); }
  .varianty { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .varianty li:nth-child(odd) { padding-left: 0; border-left: 0; }
  .varianty li:nth-child(even) { padding-left: 1.5rem; border-left: 1px solid var(--linajka); }
  .zoznam-miestnosti { columns: 1; }
  .technika-sklad { grid-template-columns: [full-start] var(--okraj) minmax(0, 1fr) var(--okraj) [full-end]; }
  .technika-hlavna { grid-column: full-start / full-end; min-height: 0; }
  .technika-hlavna picture, .technika-hlavna img { position: static; aspect-ratio: 4 / 3; }
  .technika-tabulka { grid-column: 2; grid-row: 2; margin-top: 1.75rem; }
  .uvod-foto figcaption, .pas-apartmany-foto figcaption { top: 0.5rem; bottom: auto; }
  .karty-zoznam { scroll-padding-inline: var(--okraj); }
  .onas { grid-template-columns: [full-start] var(--okraj) minmax(0, 1fr) var(--okraj) [full-end]; }
  .onas-foto { grid-column: full-start / full-end; }
  .onas-text { grid-column: 2; margin-top: 2rem; }
  .otazky, .otazky-stranka, .dopyt-in, .kontakt-mriezka { grid-template-columns: minmax(0, 1fr); }
  .pata-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stranka-uvod { grid-template-columns: [full-start] var(--okraj) minmax(0, 1fr) var(--okraj) [full-end]; }
  .stranka-uvod-text { grid-column: 2; padding: 2rem 0 2rem; }
  .stranka-uvod-foto { grid-column: full-start / full-end; min-height: 0; }
  .stranka-uvod-foto picture, .stranka-uvod-foto img { position: static; aspect-ratio: 16 / 10; }
  .zoznam-miestnosti, .info-dvojica { grid-template-columns: minmax(0, 1fr); }
  .stroj-sekcia { grid-template-columns: [full-start] var(--okraj) minmax(0, 1fr) var(--okraj) [full-end]; }
  .stroj-sekcia-foto, .stroj-sekcia:nth-of-type(odd) .stroj-sekcia-foto { grid-column: full-start / full-end; grid-row: 1; }
  .stroj-sekcia-text, .stroj-sekcia:nth-of-type(odd) .stroj-sekcia-text { grid-column: 2; grid-row: 2; margin-top: 1.75rem; }
  .spodna-lista { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255, 255, 255, 0.14); background: var(--grafit); padding-bottom: env(safe-area-inset-bottom); }
  .spodna-lista a:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
  .spodna-lista a { display: flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 3.5rem; color: #fff; font-weight: 640; text-decoration: none; }
  .spodna-lista a + a { background: var(--zelen); }
  .spodna-lista svg { width: 1.05rem; height: 1.05rem; fill: var(--zelen-svetla); }
  .pata { padding-bottom: 3.5rem; }
}
@media (max-width: 47.99em) {
  .dojazd-mierka { display: none; }
  .dojazd-zoznam { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 1.25rem; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--grafit); }
  .dojazd-zoznam li { display: flex; flex-direction: column; padding: 0.55rem 0; border-bottom: 1px solid var(--linajka); line-height: 1.3; }
  .dojazd-zoznam-cas { font-size: 0.875rem; }
  .technika-hlavna picture, .technika-hlavna img { aspect-ratio: 16 / 9; }
  .w { --medzera: 3rem; }
  .technika-hlava { margin-bottom: 1.75rem; }
  .w .dopyt-mriezka { gap: 1.25rem; }
  .varianty { grid-template-columns: minmax(0, 1fr); }
  .varianty li:nth-child(n) { padding-left: 0; border-left: 0; }
  .zoznam-navyse ul { flex-direction: column; }
  .dopyt-in { gap: 1.75rem; }
  .panel-foto img { aspect-ratio: 2 / 1; }
  .pas-apartmany-foto picture, .pas-apartmany-foto img, .onas-foto img { aspect-ratio: 16 / 10; }
  .uvod-fakty { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; margin-top: 1.5rem; }
  .pata-in { gap: 1.5rem 1.25rem; padding-top: 2.5rem; padding-bottom: 2rem; }
  .technika-pravne { margin-top: 1.5rem; }
  .dojazd-zoznam-obec { font-weight: 620; }
  .dojazd-zoznam-cas { color: var(--grafit-2); }
  .technika-tabulka thead { display: none; }
  .technika-tabulka tr { display: block; padding: 1rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
  .technika-tabulka tr:first-child { border-top: 2px solid var(--tma-1); }
  .technika-tabulka tbody th, .technika-tabulka td { display: block; padding: 0; border: 0; }
  .technika-tabulka td { padding-left: 4.65rem; }
  .technika-tabulka td.technika-kde { margin-top: -1.55rem; }
  .technika-tabulka td:last-child { margin-top: 0.35rem; font-size: 0.9375rem; }
  .technika-meno { align-items: flex-start; }
  .postup-tabulka thead { display: none; }
  .postup-tabulka tr { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; column-gap: 0.5rem; padding: 0.75rem 0; border-bottom: 1px solid var(--linajka); }
  .postup-tabulka tbody tr:last-child { border-bottom: 0; }
  .postup-tabulka td { padding: 0; border: 0; }
  .postup-tabulka .list-box { grid-row: 1 / 3; }
  .postup-krok { width: auto; grid-column: 2; grid-row: 1; }
  .postup-kto { width: auto; grid-column: 3; grid-row: 1; }
  .postup-tabulka td:nth-child(3) { grid-column: 2 / 4; grid-row: 2; margin-top: 0.3rem; font-size: 0.9375rem; }
  .varianty li + li { padding-left: 0; border-left: 0; }
  .w .dopyt-mriezka { grid-template-columns: minmax(0, 1fr); }
  .suvisiace a { grid-template-columns: 5rem minmax(0, 1fr); }
  .pata-stlpec a { display: flex; align-items: center; min-height: 2.75rem; padding: 0; }
  .pata-firma a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0; }
  .stroj-sluzby { flex-direction: column; }
  .stroj-udaje dd a { display: flex; align-items: center; min-height: 2.75rem; padding: 0; }
}
@media (max-width: 40em) {
  .w { font-size: 1rem; }
  .uvod h1 { font-size: clamp(2.1rem, 9.4vw, 2.7rem); }
  .uvod-perex, .stranka-uvod-perex { font-size: 1.0625rem; }
  .tlacidla .tlacidlo { flex: 1 1 100%; }
  .list { padding: 1.1rem 1rem 0.8rem; }
  .list-tabulka { font-size: 0.875rem; }
  .list-stroj, .list-stroj-hlava { display: none; }
  .panel-riadky li { grid-template-columns: 1.7rem minmax(0, 1fr); }
  .panel-u { grid-column: 2; }
  .pata-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pata-firma, .pata-pravne { grid-column: 1 / -1; }
  .stroj-udaje, .kontakt-udaje { grid-template-columns: minmax(0, 1fr); }
  .uvod-list tbody tr:nth-child(n+5) { display: none; }
  .uvod { padding-bottom: 0; }
  .w .dopyt-koniec button { width: 100%; }
  .sekcia-hlava { margin-bottom: 1.5rem; }
  .otazky summary { padding: 1rem 0; font-size: 1.0625rem; }
  .stroj-udaje dt, .kontakt-udaje dt { border-bottom: 0; padding-bottom: 0; }
}
@media (min-width: 120em) {
  .w { --max: 90rem; }
  html:has(.w) { font-size: 106%; }
}
