/* tokens */
:root {
  --safir: #132b4f;
  --safir2: #1f3d68;
  --ruza: #e3a1a8;
  --ruzasvetla: #f2d3d3;
  --ruzatmava: #8a3a45;
  --slonovina: #f7f1e8;
  --slonovina2: #efe4d3;
  --papier: #fffcf6;
  --lista: 52px;
  --okraj: clamp(16px, 4vw, 48px);
  --medzera: clamp(14px, 2.2vw, 28px);
  --max: 1240px;
  --stlpec: calc((min(100vw, var(--max)) - 2 * var(--okraj) - 11 * var(--medzera)) / 12);
  --nadpis: Didot, 'Bodoni MT', 'Noto Serif Display', 'URW Palladio L', P052, Sylfaen, serif;
  --text: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
  --zrno:
    radial-gradient(rgb(19 43 79 / .07) .7px, transparent 1px) 0 0 / 3px 3px,
    radial-gradient(rgb(19 43 79 / .05) .7px, transparent 1px) 1px 2px / 5px 5px,
    radial-gradient(rgb(255 255 255 / .35) .8px, transparent 1.1px) 2px 1px / 7px 7px;
  --rychlo: 180ms;
  --stredne: 260ms;
}

@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
}

/* base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 72px; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--slonovina);
  color: var(--safir);
  font: 400 1.0625rem/1.6 var(--text);
  overflow-x: clip;
  font-kerning: normal;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--safir); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--rychlo), text-decoration-color var(--rychlo); }
a:hover { color: var(--ruzatmava); text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--ruzatmava);
  outline-offset: 3px;
}
p { margin: 0 0 1em; max-width: 68ch; }
h1, h2, h3 { margin: 0; font-weight: 400; }
ul, ol { margin: 0; padding: 0; }

.VISSKRYTE {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.VISPRESKOK {
  position: absolute; left: 16px; top: -60px; z-index: 100;
  background: var(--safir); color: var(--slonovina); padding: .6rem 1rem; border-radius: 6px;
  transition: top var(--rychlo);
}
.VISPRESKOK:focus { top: 12px; color: var(--slonovina); }

.VISOBAL { max-width: var(--max); margin-inline: auto; padding-inline: var(--okraj); }
.VISMRIEZKA {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--medzera);
  row-gap: clamp(28px, 4vw, 48px);
}
.VISMRIEZKA > * { min-width: 0; }

.VISCAS, .VISSADZBA, .VISVELKECISLO { font-variant-numeric: tabular-nums lining-nums; }

/* header */
.VISHLAVA { position: fixed; inset: 0 0 auto 0; z-index: 60; height: var(--lista); }
.VISLISTA {
  position: absolute; inset: 0;
  background: rgb(247 241 232 / .94);
  border-bottom: 2px solid var(--ruza);
  transition: background-color var(--stredne), box-shadow var(--stredne);
}
.VISHLAVA[data-zbalene="ano"] .VISLISTA {
  background: rgb(247 241 232 / .985);
  box-shadow: 0 6px 18px -12px rgb(19 43 79 / .45);
}
.VISNAV {
  position: relative;
  height: var(--lista);
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--okraj);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px minmax(0, 1fr);
  align-items: center;
}
.VISNAVZOZNAM { list-style: none; display: flex; gap: clamp(.4rem, 1.4vw, 1.4rem); }
.VISNAVLAVY { grid-column: 1; justify-content: flex-end; }
.VISNAVPRAVY { grid-column: 3; justify-content: flex-start; }
.VISNAVODKAZ {
  position: relative;
  display: inline-block;
  padding: .35rem .85rem .35rem 1.55rem;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 3px 6px 6px 3px;
  transition: border-color var(--rychlo), background-color var(--rychlo), color var(--rychlo);
}
.VISNAVODKAZ::before {
  content: "";
  position: absolute; left: .55rem; top: 50%;
  width: 7px; height: 7px; margin-top: -3.5px;
  border-radius: 50%;
  border: 1px solid transparent;
  transition: border-color var(--rychlo), background-color var(--rychlo);
}
.VISNAVODKAZ:hover, .VISNAVODKAZ:focus-visible {
  color: var(--safir);
  border-color: var(--ruzatmava);
  background: var(--papier);
  text-decoration: none;
}
.VISNAVODKAZ:hover::before, .VISNAVODKAZ:focus-visible::before { border-color: var(--ruzatmava); background: var(--slonovina); }
.VISNAVODKAZ:active { background: var(--ruzasvetla); }

/* hanging tag */
.VISZAVES {
  position: absolute;
  top: 0;
  left: calc(50% - 90px);
  width: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform-origin: 50% 0;
  transition: translate var(--stredne) ease, scale var(--stredne) ease;
  z-index: 2;
}
.VISSNURA {
  display: block;
  width: 2px;
  height: calc(var(--lista) + 20px);
  background: linear-gradient(var(--ruzatmava), var(--ruza));
  transition: opacity var(--rychlo);
}
.VISBIRKA {
  position: relative;
  width: 168px;
  margin-top: -14px;
  padding: 26px 14px 14px;
  background: var(--safir);
  color: var(--slonovina);
  border-radius: 0 0 6px 6px;
  clip-path: polygon(22px 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%, 0 22px);
  transform-origin: 50% 0;
}
.VISBIRKA::before {
  content: "";
  position: absolute; left: 50%; top: 8px;
  width: 14px; height: 14px; margin-left: -7px;
  border-radius: 50%;
  background: var(--slonovina);
  box-shadow: 0 0 0 3px var(--ruza);
}
.VISZNACKA {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  color: var(--slonovina);
  text-decoration: none;
}
.VISZNACKA img { width: 36px; height: 36px; border-radius: 6px; }
.VISZNACKA:hover { color: var(--slonovina); }
.VISZNACKA:focus-visible { outline-color: var(--ruza); outline-offset: 2px; }
.VISNAZOV { font-weight: 600; font-size: 1.02rem; line-height: 1.2; letter-spacing: .01em; white-space: nowrap; }
.VISPREPINAC { display: none; }

.VISHLAVA[data-zbalene="ano"] .VISZAVES { translate: 0 -33px; scale: .5; }
.VISHLAVA[data-zbalene="ano"] .VISSNURA { opacity: 0; }

@keyframes VISKYV {
  0% { rotate: 0deg; }
  25% { rotate: 3deg; }
  55% { rotate: -2deg; }
  80% { rotate: 1deg; }
  100% { rotate: 0deg; }
}
@keyframes VISPAD {
  0% { translate: 0 -170px; rotate: 0deg; }
  42% { translate: 0 0; rotate: 0deg; }
  58% { rotate: 6deg; }
  72% { rotate: -4deg; }
  86% { rotate: 2deg; }
  100% { translate: 0 0; rotate: 0deg; }
}
@media (prefers-reduced-motion: no-preference) {
  .VISHLAVA[data-zbalene="nie"] .VISZAVES:hover { animation: VISKYV 900ms ease-in-out; }
  .VISZAVES[data-vstup="bezi"] { animation: VISPAD 600ms cubic-bezier(.3, .7, .3, 1) both; }
}

/* mobile bunch */
.VISZVAZOK {
  list-style: none;
  position: absolute;
  top: 100%;
  left: 50%;
  width: 230px;
  margin-left: -115px;
  padding-top: 10px;
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.VISZVAZOK li { position: relative; }
.VISZVAZOK li::before {
  content: ""; position: absolute; left: 50%; top: -10px; width: 2px; height: 12px; background: var(--ruza);
}
.VISZVAZOK a {
  display: block;
  min-width: 200px;
  padding: .7rem 1rem .7rem 2.1rem;
  background: var(--papier);
  border: 1px solid var(--safir);
  border-radius: 3px 6px 6px 3px;
  text-decoration: none;
  font-weight: 600;
  position: relative;
}
.VISZVAZOK a::before {
  content: ""; position: absolute; left: .8rem; top: 50%; width: 9px; height: 9px; margin-top: -4.5px;
  border-radius: 50%; border: 1px solid var(--safir); background: var(--slonovina);
}
.VISZVAZOK li:nth-child(odd) a { rotate: -1.5deg; }
.VISZVAZOK li:nth-child(even) a { rotate: 1.2deg; }
.VISZVAZOK a:hover, .VISZVAZOK a:focus-visible { background: var(--ruzasvetla); }

/* rays background */
.VISLUC { position: relative; isolation: isolate; }
.VISLUC::before {
  content: "";
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  --luc: 4deg; --o1: .5; --o2: .24; --farba: 227 161 168;
  background:
    var(--zrno),
    repeating-conic-gradient(from 92deg at 0 0,
      rgb(var(--farba) / var(--o1)) 0deg var(--luc),
      transparent var(--luc) calc(var(--luc) * 1.6),
      rgb(var(--farba) / var(--o2)) calc(var(--luc) * 1.6) calc(var(--luc) * 2.1),
      transparent calc(var(--luc) * 2.1) calc(var(--luc) * 3.2));
}
.VISLUC[data-luc="1"]::before { --luc: 4.2deg; --o1: .58; --o2: .3; }
.VISLUC[data-luc="2"]::before { --luc: 2.8deg; --o1: .36; --o2: .18; }
.VISLUC[data-luc="3"]::before { --luc: 1.9deg; --o1: .26; --o2: .13; }
.VISLUC[data-luc="4"]::before { --luc: 1.3deg; --o1: .18; --o2: .09; }
.VISLUC[data-luc="5"]::before { --luc: .9deg; --o1: .16; --o2: .1; --farba: 19 43 79; }

/* hero */
.VISUVOD { padding: calc(var(--lista) + 144px) 0 clamp(56px, 7vw, 96px); }
.VISUVODTEXT { grid-column: 1 / span 6; }
.VISUVODFOTO { grid-column: 7 / span 6; align-self: start; width: min(440px, 100%); margin-inline-end: calc(var(--stlpec) / -2); }
.VISUVODNADPIS {
  font-family: var(--nadpis);
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  line-height: 1.02;
  letter-spacing: -.01em;
  margin-bottom: .45em;
}
.VISUVODLEAD { font-size: 1.12rem; max-width: 52ch; }
.VISSPOSOBY { list-style: none; margin: 1.6rem 0 2rem; border-top: 3px solid var(--safir); }
.VISSPOSOB {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr);
  column-gap: 1rem;
  padding: .7rem 0 .8rem;
  border-bottom: 1px solid var(--ruza);
}
.VISSPOSOB:nth-child(2) { padding-block: .9rem 1rem; }
.VISCISLO {
  grid-row: span 2;
  align-self: center;
  display: grid; place-items: center;
  width: 3rem; height: 3.4rem;
  padding-top: .5rem;
  background: var(--safir);
  color: var(--slonovina);
  font-family: var(--nadpis);
  font-size: 2.1rem;
  line-height: 1;
  border-radius: 0 0 6px 6px;
  clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%, 0 10px);
  position: relative;
}
.VISCISLO::before {
  content: ""; position: absolute; top: 4px; left: 50%; width: 6px; height: 6px; margin-left: -3px;
  border-radius: 50%; background: var(--slonovina);
}
.VISSPOSOBNAZOV { font-size: clamp(1.25rem, 2.1vw, 1.6rem); font-weight: 600; line-height: 1.25; }
.VISPOZNAMKA { font-size: .92rem; color: var(--ruzatmava); }
.VISUVODAKCIE { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; }
.VISODKAZTICHY { font-weight: 600; text-decoration-color: var(--ruza); }

/* image tag mask */
.VISFOTO { position: relative; margin: 0; }
.VISFOTO::after {
  content: "";
  position: absolute; left: 50%; top: 13px;
  width: 30px; height: 30px; margin-left: -15px;
  border-radius: 50%;
  border: 3px solid var(--ruza);
  pointer-events: none;
}
.VISMASKA {
  width: 100%;
  background: var(--slonovina2);
  border-radius: 0 0 6px 6px;
  clip-path: polygon(44px 0, calc(100% - 44px) 0, 100% 44px, 100% 100%, 0 100%, 0 44px);
  -webkit-mask: radial-gradient(circle at 50% 28px, #0000 11px, #000 12px);
  mask: radial-gradient(circle at 50% 28px, #0000 11px, #000 12px);
}

/* buttons */
.VISTLACIDLO {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .95rem 1.6rem;
  background: var(--safir);
  color: var(--slonovina);
  border: 2px solid var(--safir);
  border-radius: 6px;
  font: 600 1rem/1.2 var(--text);
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
  --mravec: var(--ruza);
  transition: background-color var(--rychlo), color var(--rychlo), box-shadow var(--rychlo);
}
.VISTLACIDLO::after {
  content: "";
  position: absolute; inset: 3px;
  border-radius: 3px;
  pointer-events: none;
  background:
    linear-gradient(90deg, var(--mravec) 50%, transparent 0) repeat-x 0 0 / 10px 1.5px,
    linear-gradient(90deg, var(--mravec) 50%, transparent 0) repeat-x 0 100% / 10px 1.5px,
    linear-gradient(0deg, var(--mravec) 50%, transparent 0) repeat-y 0 0 / 1.5px 10px,
    linear-gradient(0deg, var(--mravec) 50%, transparent 0) repeat-y 100% 0 / 1.5px 10px;
  transition: inset 120ms ease, opacity var(--rychlo);
}
.VISTLACIDLO:hover { color: var(--slonovina); background: var(--safir2); text-decoration: none; }
@keyframes VISMRAVCE {
  to { background-position: 10px 0, -10px 100%, 0 -10px, 100% 10px; }
}
@media (prefers-reduced-motion: no-preference) {
  .VISTLACIDLO:hover::after { animation: VISMRAVCE 600ms linear infinite; }
}
.VISTLACIDLO:focus-visible { outline: none; box-shadow: inset 0 0 0 5px var(--ruza), 0 0 0 2px var(--safir); }
.VISTLACIDLO:focus-visible::after { opacity: 0; }
.VISTLACIDLO:active::after { inset: 1px; }
.VISTLACIDLO:active { background: #0d1f3a; }
.VISTLACIDLO[disabled] { cursor: progress; opacity: .8; }
.VISTLACIDLOVELKE { padding: 1.1rem 2rem; font-size: 1.08rem; }
.VISTLACIDLOMALE { padding: .6rem 1.1rem; font-size: .92rem; }
.VISTLACIDLOSLABE { background: transparent; color: var(--safir); --mravec: var(--safir); }
.VISTLACIDLOSLABE:hover { background: var(--ruzasvetla); color: var(--safir); }

/* sections */
.VISSEKCIA { padding-block: clamp(56px, 8vw, 112px); }
.VISNADPIS2 {
  font-family: var(--nadpis);
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.08;
  margin-bottom: .6em;
  max-width: 22ch;
}
.VISNADPISBIRKA {
  display: inline-block;
  position: relative;
  padding: .28em .7em .32em 1.35em;
  background: var(--safir);
  color: var(--slonovina);
  border-radius: 3px 6px 6px 3px;
  max-width: 100%;
}
.VISNADPISBIRKA::before {
  content: ""; position: absolute; left: .45em; top: 50%; width: .3em; height: .3em; margin-top: -.15em;
  border-radius: 50%; background: var(--slonovina); box-shadow: 0 0 0 3px var(--ruza);
}

/* form section */
.VISZIADOST { padding-block: clamp(48px, 6vw, 80px) clamp(72px, 9vw, 128px); }
.VISZIADOSTBOK { grid-column: 8 / span 5; grid-row: 1; }
.VISFORMULAR {
  grid-column: 1 / span 7; grid-row: 1;
  background: var(--papier);
  border: 2px solid var(--safir);
  border-radius: 6px;
  padding: clamp(20px, 3vw, 36px);
  box-shadow: 0 0 0 6px var(--slonovina), 0 0 0 8px var(--ruza);
}
.VISKONTAKTY { margin: 1.4rem 0; display: grid; gap: .6rem; }
.VISKONTAKTY div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .5rem; align-items: baseline; }
.VISKONTAKTY dt { font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ruzatmava); }
.VISKONTAKTY dt { overflow-wrap: anywhere; }
.VISKONTAKTY dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.VISUPOZORNENIE {
  padding: .9rem 1rem .9rem 1.1rem;
  background: var(--ruzasvetla);
  border-left: 5px solid var(--ruzatmava);
  border-radius: 0 6px 6px 0;
  font-size: .97rem;
}
.VISPOLIA { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.2rem; }
.VISPOLE { min-width: 0; display: flex; flex-direction: column; gap: .35rem; margin: 0; }
.VISPOLESIROKE { grid-column: 1 / -1; }
.VISPOLE label, .VISPOLE legend { font-weight: 600; font-size: .96rem; }
.VISNEPOVINNE { font-weight: 400; color: #5b6576; }
.VISPOLE input[type="text"], .VISPOLE input[type="tel"], .VISPOLE input[type="email"], .VISPOLE select, .VISPOLE textarea {
  width: 100%;
  font: inherit;
  color: var(--safir);
  background: var(--slonovina);
  border: 1.5px solid #6d7a8f;
  border-radius: 6px;
  padding: .7rem .8rem;
  transition: border-color var(--rychlo), background-color var(--rychlo), box-shadow var(--rychlo);
}
.VISPOLE input:hover, .VISPOLE select:hover, .VISPOLE textarea:hover { border-color: var(--safir); }
.VISPOLE input:focus-visible, .VISPOLE select:focus-visible, .VISPOLE textarea:focus-visible {
  outline: none; border-color: var(--safir); background: var(--papier); box-shadow: 0 0 0 3px var(--ruza);
}
.VISPOLE [aria-invalid="true"] { border-color: var(--ruzatmava); background: #fbeeee; }
.VISPOLE textarea { resize: vertical; min-height: 110px; }
.VISPOMOC { font-size: .88rem; color: #4d5a6e; margin: 0; }
.VISCHYBA { margin: 0; font-size: .9rem; color: var(--ruzatmava); font-weight: 600; min-height: 0; }
.VISCHYBA:empty { display: none; }
.VISVOLBY { border: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.VISVOLBY legend { margin-bottom: .45rem; padding: 0; }
.VISVOLBA { display: inline-flex; align-items: flex-start; gap: .55rem; cursor: pointer; font-weight: 400 !important; }
.VISVOLBY .VISVOLBA {
  padding: .5rem .85rem;
  border: 1.5px solid #6d7a8f;
  border-radius: 3px 6px 6px 3px;
  background: var(--slonovina);
  transition: border-color var(--rychlo), background-color var(--rychlo);
}
.VISVOLBY .VISVOLBA:hover { border-color: var(--safir); }
.VISVOLBY .VISVOLBA:has(input:checked) { background: var(--safir); color: var(--slonovina); border-color: var(--safir); }
.VISVOLBA input { accent-color: var(--ruzatmava); margin-top: .25rem; width: 1.05rem; height: 1.05rem; flex: none; }
.VISSUHLAS { font-size: .95rem; }
.VISSUHRN {
  margin: 1.2rem 0 0;
  padding: .8rem 1rem;
  border: 2px solid var(--ruzatmava);
  border-radius: 6px;
  background: #fbeeee;
  font-weight: 600;
}
.VISFORMULAR .VISTLACIDLO { margin-top: 1.4rem; }

/* divider */
.VISDELIC { position: relative; height: 44px; max-width: var(--max); margin-inline: auto; }
.VISDELIC::before {
  content: ""; position: absolute; left: var(--okraj); right: var(--okraj); top: 50%; height: 3px; margin-top: -1.5px;
  background: repeating-linear-gradient(90deg, var(--ruza) 0 28px, transparent 28px 36px);
}
.VISDELIC span {
  position: absolute; left: 22%; top: 50%; width: 46px; height: 28px; margin-top: -14px;
  background: var(--safir); border-radius: 3px 6px 6px 3px;
  clip-path: polygon(10px 0, 100% 0, 100% 100%, 10px 100%, 0 50%);
}
.VISDELIC span::after {
  content: ""; position: absolute; left: 12px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px;
  border-radius: 50%; background: var(--ruza);
}

/* methods */
.VISSPOSOBYSEKCIA { padding-block: clamp(40px, 5vw, 64px) clamp(48px, 6vw, 72px); }
.VISSPOSOBYBOK { grid-column: 1 / span 4; align-self: start; }
.VISSPOSOBYBOK .VISNADPIS2 { font-size: clamp(2rem, 2.8vw, 2.5rem); }
.VISROZBALY { grid-column: 5 / span 8; display: grid; gap: 12px; }
.VISROZBAL {
  background: var(--papier);
  border: 1.5px solid var(--safir);
  border-radius: 6px;
  transition: box-shadow var(--stredne), border-color var(--stredne);
}
.VISROZBAL:nth-child(even) { margin-inline-start: clamp(0px, 3vw, 36px); }
.VISROZBAL[open] { box-shadow: 8px 8px 0 -2px var(--ruzasvetla); }
.VISROZBALHLAVA {
  list-style: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: .8rem 1rem .8rem .8rem;
  cursor: pointer;
  border-radius: 6px;
  transition: background-color var(--rychlo);
}
.VISROZBALHLAVA::-webkit-details-marker { display: none; }
.VISROZBALHLAVA:hover { background: var(--ruzasvetla); }
.VISROZBALHLAVA .VISCISLO { grid-row: auto; width: 2.6rem; height: 3rem; font-size: 1.8rem; }
.VISROZBALNAZOV { font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-weight: 600; line-height: 1.25; }
.VISKLUC { color: var(--ruzatmava); transition: rotate var(--stredne) ease; }
.VISROZBAL[open] .VISKLUC { rotate: 90deg; }
.VISPORADIE {
  margin: 0;
  padding: .4rem 1.4rem 1.4rem calc(.8rem + 2.6rem + 1rem);
  display: grid;
  gap: .25rem;
}
.VISPORADIE dt {
  font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--ruzatmava);
  margin-top: .8rem;
}
.VISPORADIE dd { margin: 0; max-width: 62ch; }
@supports (interpolate-size: allow-keywords) {
  .VISROZBAL::details-content {
    height: 0;
    overflow: clip;
    transition: height 300ms ease, content-visibility 300ms allow-discrete;
  }
  .VISROZBAL[open]::details-content { height: auto; }
}

/* full-width strip */
.VISPAS {
  background: var(--ruza);
  padding-block: clamp(26px, 4vw, 44px);
  border-block: 6px solid var(--safir);
}
.VISPASTEXT { font-size: clamp(1.08rem, 1.6vw, 1.3rem); line-height: 1.55; max-width: 60ch; margin: 0 auto; }
.VISPASTEXT a { color: var(--safir); font-weight: 600; }
.VISPASTEXT a:hover { color: var(--safir); text-decoration-thickness: 3px; }

/* records */
.VISZAZNAM { padding-block: clamp(80px, 11vw, 150px) clamp(40px, 5vw, 64px); }
.VISZAZNAMTEXT { grid-column: 1 / span 7; }
.VISZAZNAMTEXT .VISNADPIS2 { max-width: 18ch; }
.VISZAZNAMFOTO { grid-column: 8 / span 5; align-self: center; margin-inline-end: calc(var(--stlpec) / -2); }
.VISZAZNAMSTLPCE { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; margin: 1.4rem 0 1.6rem; }
.VISLISTOK {
  position: relative;
  padding: 2.2rem 1.3rem 1.3rem;
  background: var(--papier);
  border: 1.5px solid var(--safir);
  border-radius: 0 0 6px 6px;
  clip-path: polygon(18px 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 0 100%, 0 18px);
}
.VISLISTOK::before {
  content: ""; position: absolute; left: 50%; top: 10px; width: 12px; height: 12px; margin-left: -6px;
  border-radius: 50%; background: var(--slonovina); box-shadow: 0 0 0 2px var(--safir);
}
.VISLISTOKTMAVY { background: var(--safir); color: var(--slonovina); margin-top: 28px; }
.VISLISTOKTMAVY::before { box-shadow: 0 0 0 2px var(--ruza); }
.VISLISTOKNADPIS { font-weight: 700; font-size: 1.15rem; margin-bottom: .6rem; }
.VISLISTOK ul { list-style: none; display: grid; gap: .45rem; }
.VISLISTOK li { padding-left: 1.1rem; position: relative; }
.VISLISTOK li::before {
  content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border: 1.5px solid currentColor; border-radius: 50%;
}
.VISZAZNAMPOZN { font-size: .98rem; }

/* services registry */
.VISSLUZBY { padding-block: clamp(32px, 4vw, 56px) clamp(64px, 9vw, 120px); }
.VISSLUZBYNADPIS { grid-column: 1 / -1; justify-self: center; text-align: center; max-width: 26ch; }
.VISREGISTEROBAL { grid-column: 1 / span 8; }
.VISREGISTER {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--papier);
  border: 2px solid var(--safir);
  border-radius: 6px;
  overflow: hidden;
  font-size: .98rem;
}
.VISREGISTER thead th {
  background: var(--safir);
  color: var(--slonovina);
  text-align: left;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 600;
  padding: .85rem 1rem;
}
.VISREGISTER th, .VISREGISTER td { padding: 1rem; vertical-align: top; border-bottom: 1px solid var(--ruza); }
.VISREGISTER tbody th { text-align: left; font-weight: 600; width: 32%; }
.VISREGISTER td:last-child, .VISREGISTER thead th:last-child { text-align: right; white-space: nowrap; }
.VISRIADOK { transition: background-color var(--rychlo); }
.VISRIADOK:hover { background: var(--ruzasvetla); }
.VISSADZBA { display: inline-block; font-weight: 700; font-size: 1.05rem; transition: translate var(--rychlo) ease; }
.VISRIADOK:hover .VISSADZBA { translate: -6px 0; }
.VISRIADOK[data-povinne="ano"] { background: var(--ruza); }
.VISRIADOK[data-povinne="ano"]:hover { background: #dc939b; }
.VISSTITOK {
  display: inline-block;
  margin-top: .4rem;
  padding: .15rem .6rem .15rem 1.2rem;
  background: var(--safir);
  color: var(--slonovina);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .03em;
  border-radius: 3px 6px 6px 3px;
  position: relative;
}
.VISSTITOK::before {
  content: ""; position: absolute; left: .45rem; top: 50%; width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%; background: var(--ruza);
}
.VISRIADOKCAKANIE th, .VISRIADOKCAKANIE td { border-bottom: 0; background: var(--slonovina2); font-weight: 400; }
.VISRIADOKCAKANIE th { font-weight: 600; text-align: left; }
.VISSLUZBYBOK { grid-column: 9 / span 4; align-self: start; }
.VISVELKECISLO {
  font-family: var(--nadpis);
  font-size: clamp(4.2rem, 8vw, 6.8rem);
  line-height: .9;
  color: var(--ruzatmava);
  margin-bottom: .2em;
}

/* without access */
.VISBEZPRISTUPU { padding-block: clamp(64px, 8vw, 104px); }
.VISBEZFOTO { grid-column: 1 / span 7; align-self: start; margin-inline-start: calc(var(--stlpec) / -2); }
.VISBEZTEXT { grid-column: 8 / span 5; }
.VISBEZTEXT .VISNADPIS2 { text-align: right; margin-left: auto; }
.VISPRIPADY { margin: 0; }
.VISPRIPADY dt {
  font-weight: 700;
  margin-top: 1.1rem;
  padding: .25rem .6rem;
  background: var(--slonovina2);
  border-left: 4px solid var(--ruza);
  display: inline-block;
}
.VISPRIPADY dd { margin: .45rem 0 0; }

/* never */
.VISNIKDY { padding-block: clamp(88px, 12vw, 160px) 0; color: var(--safir); }
.VISNIKDYTEXT { grid-column: 1 / span 7; }
.VISNIKDYZOZNAM { list-style: none; counter-reset: none; display: grid; gap: 10px; margin-top: .6rem; }
.VISNIKDYPOLOZKA {
  padding: 1.1rem 1.2rem 1.1rem 3.4rem;
  position: relative;
  background: rgb(255 252 246 / .94);
  border: 1.5px solid var(--safir);
  border-radius: 3px 6px 6px 3px;
}
.VISNIKDYPOLOZKA::before {
  content: ""; position: absolute; left: 1.1rem; top: 1.45rem; width: 18px; height: 18px;
  border-radius: 50%; border: 2px solid var(--ruzatmava);
  background: linear-gradient(45deg, transparent 45%, var(--ruzatmava) 45% 55%, transparent 55%);
}
.VISNIKDYPOLOZKA:nth-child(3) { margin-inline-start: clamp(0px, 4vw, 48px); }
.VISNIKDYPOLOZKA strong { display: block; font-size: 1.12rem; }
.VISAUTOR {
  grid-column: 9 / span 4;
  align-self: end;
  padding: 1.6rem;
  background: var(--safir);
  color: var(--slonovina);
  border-radius: 6px;
}
.VISMONOGRAM {
  display: grid; place-items: center;
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--ruza);
  color: var(--safir);
  font-family: var(--nadpis);
  font-size: 1.7rem;
  margin-bottom: .9rem;
}
.VISAUTORMENO { font-weight: 700; font-size: 1.15rem; margin: 0; letter-spacing: .02em; }
.VISAUTORROLA { font-size: .92rem; color: var(--ruzasvetla); margin-bottom: .9rem; }
.VISAUTOR p:last-child { margin-bottom: 0; }
.VISKLIN {
  height: clamp(120px, 16vw, 240px);
  margin-top: clamp(56px, 8vw, 104px);
  background:
    repeating-linear-gradient(100deg, transparent 0 22px, rgb(227 161 168 / .12) 22px 26px),
    var(--safir);
  clip-path: polygon(0 0, 100% 72%, 100% 100%, 0 100%);
}

/* footer */
.VISPATA { background: var(--safir); color: var(--slonovina); padding-block: clamp(32px, 4vw, 56px) 24px; margin-top: -1px; }
.VISPATA a { color: var(--ruza); }
.VISPATA a:hover { color: var(--slonovina); }
.VISPATAMRIEZKA { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); gap: 32px; }
.VISPATANAZOV { font-family: var(--nadpis); font-size: 2rem; line-height: 1.1; }
.VISPATANAZOV a { color: var(--slonovina); text-decoration: none; }
.VISPATAUDAJE { font-variant-numeric: tabular-nums; }
.VISPATAHLAVICKA { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ruza); margin-bottom: .6rem; }
.VISPATANAV ul { list-style: none; display: grid; gap: .45rem; }
.VISPATASPODOK {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem;
  margin-top: 32px; padding-top: 18px; border-top: 2px solid rgb(227 161 168 / .5);
  font-size: .9rem;
}
.VISPATASPODOK p { margin: 0; }

/* cookie */
.VISCOOKIE {
  position: fixed; right: 16px; bottom: 16px; z-index: 70;
  width: min(380px, calc(100vw - 32px));
  max-height: 25vh; overflow: auto;
  padding: 1rem 1.1rem;
  background: var(--papier);
  border: 2px solid var(--safir);
  border-radius: 6px;
  box-shadow: 0 12px 30px -18px rgb(19 43 79 / .6);
  font-size: .92rem;
}
.VISCOOKIE[hidden] { display: none; }
.VISCOOKIE p { margin-bottom: .7rem; }
.VISCOOKIEVOLBY { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }

/* floating tag */
.VISPLAVAJUCA { display: none; }
[data-js] .VISPLAVAJUCA {
  position: fixed; left: 16px; bottom: 16px; z-index: 65;
  display: flex; align-items: center;
  padding: .7rem 1rem .7rem 2rem;
  background: var(--safir);
  color: var(--slonovina);
  font-weight: 600; font-size: .95rem;
  text-decoration: none;
  border-radius: 0 6px 6px 0;
  clip-path: polygon(16px 0, 100% 0, 100% 100%, 16px 100%, 0 50%);
  transform-origin: 0 50%;
  opacity: 0; visibility: hidden; translate: 0 12px;
  transition: opacity var(--stredne), translate var(--stredne), visibility 0s linear var(--stredne), background-color var(--rychlo);
}
[data-js] .VISPLAVAJUCA::before {
  content: ""; position: absolute; left: 15px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--ruza);
}
[data-js] .VISPLAVAJUCA[data-viditelne="ano"] { opacity: 1; visibility: visible; translate: 0 0; transition-delay: 0s; }
[data-js] .VISPLAVAJUCA:hover { background: var(--safir2); color: var(--slonovina); }
[data-js] .VISPLAVAJUCA:focus-visible { outline: 3px solid var(--ruzatmava); outline-offset: 2px; }
[data-js] .VISPLAVAJUCA:active { background: #0d1f3a; }
@keyframes VISKYVBOK {
  0% { rotate: 0deg; } 30% { rotate: -5deg; } 60% { rotate: 3deg; } 100% { rotate: 0deg; }
}
@media (prefers-reduced-motion: no-preference) {
  [data-js] .VISPLAVAJUCA[data-kyv="ano"][data-viditelne="ano"] { animation: VISKYVBOK 700ms ease-out 1; }
}

/* reveal */
@media (prefers-reduced-motion: no-preference) {
  [data-js] [data-odkryt] { transition: opacity 400ms ease, translate 400ms ease, clip-path 400ms ease; }
  [data-js] [data-odkryt="zlava"]:not([data-zobrazene]) { opacity: 0; translate: -44px 0; }
  [data-js] [data-odkryt="sprava"]:not([data-zobrazene]) { opacity: 0; translate: 44px 0; }
  [data-js] [data-odkryt="zhora"]:not([data-zobrazene]) { clip-path: inset(0 0 100% 0); }
  [data-js] [data-odkryt="zhora"][data-zobrazene] { clip-path: inset(0 0 0 0); }
}

/* inner pages */
.VISSTRANA { padding: calc(var(--lista) + 132px) 0 clamp(56px, 8vw, 104px); }
.VISSTRANANADPIS {
  font-family: var(--nadpis);
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.05;
  margin-bottom: .5em;
  max-width: 20ch;
}
.VISOMRVINKY { font-size: .9rem; margin-bottom: 1.2rem; }
.VISOMRVINKY ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; }
.VISOMRVINKY li + li::before { content: "/"; margin-right: .4rem; color: var(--ruzatmava); }
.VISCLANOK { max-width: 72ch; }
.VISCLANOK h2 { font-family: var(--nadpis); font-size: clamp(2rem, 3vw, 2.4rem); line-height: 1.12; margin: 1.6em 0 .5em; }
.VISCLANOK h3 { font-weight: 700; font-size: 1.15rem; margin: 1.4em 0 .4em; }
.VISCLANOK ul, .VISCLANOK ol { padding-left: 1.3rem; margin-bottom: 1em; }
.VISCLANOK li { margin-bottom: .35em; }

/* contact page */
.VISKONTAKTTEXT { grid-column: 1 / span 7; }
.VISKONTAKTFORM { grid-column: 8 / span 5; align-self: start; box-shadow: 0 0 0 6px var(--slonovina), 0 0 0 8px var(--ruza); }
.VISKONTAKTFORM .VISPOLIA { grid-template-columns: minmax(0, 1fr); }
.VISFORMNADPIS { font-family: var(--nadpis); font-size: 2rem; line-height: 1.1; margin-bottom: 1rem; }
.VISFORMPOZN { margin-top: 1rem; }
.VISVLASTNIKBLOK {
  margin: 2rem 0 1.6rem;
  padding: 1.4rem 1.5rem .4rem;
  background: var(--safir);
  color: var(--slonovina);
  border-radius: 6px;
}
.VISVLASTNIKBLOK a { color: var(--ruza); }
.VISVLASTNIKBLOK a:hover { color: var(--slonovina); }
.VISVLASTNIKBLOK .VISKONTAKTY dt { color: var(--ruza); }
.VISVLASTNIKBLOK .VISKONTAKTY div { grid-template-columns: 9rem minmax(0, 1fr); }
.VISVLASTNIKVETA { font-size: 1.12rem; font-weight: 600; }
.VISHODINY { margin-bottom: 1.6rem; border-top: 3px solid var(--safir); }
.VISHODINYRIADOK {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .3rem 1rem;
  padding: .8rem 0; border-bottom: 1px solid var(--ruza);
}
.VISHODINYDEN { font-weight: 600; }
.VISHODINYCAS { font-family: var(--nadpis); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }
.VISHODINYRIADOK + .VISHODINYRIADOK .VISHODINYCAS { font-family: var(--text); font-size: 1rem; }
.VISHODINYPOZN { margin-top: .9rem; font-size: .97rem; }

/* privacy page */
.VISPRAVIDLA { max-width: 900px; margin-top: 2rem; }
.VISPRAVIDLA .VISROZBAL:nth-child(even) { margin-inline-start: 0; }
.VISPRAVIDLA .VISROZBAL:nth-child(3n+2) { margin-inline-start: clamp(0px, 4vw, 48px); }
.VISROZBALTEXT { padding: .3rem 1.4rem 1.4rem calc(.8rem + 2.6rem + 1rem); }
.VISROZBALTEXT ul { padding-left: 1.2rem; margin-bottom: 1em; }
.VISROZBALTEXT li { margin-bottom: .45em; max-width: 64ch; }
.VISROZBALTEXT code { font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace; font-size: .9em; background: var(--slonovina2); padding: .05em .3em; border-radius: 3px; }
.VISROZBALVYZNAC { background: var(--ruzasvetla); border-width: 2.5px; }
.VISROZBALVYZNAC .VISROZBALHLAVA:hover { background: var(--ruza); }
.VISUCELY { width: 100%; border-collapse: collapse; margin-bottom: 1rem; font-size: .96rem; }
.VISUCELY th, .VISUCELY td { text-align: left; vertical-align: top; padding: .6rem .7rem; border-bottom: 1px solid var(--ruza); }
.VISUCELY th { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--ruzatmava); }
.VISUCELY tbody tr:hover { background: var(--slonovina); }

/* terms page */
.VISPODMIENKY { max-width: 1040px; }
.VISBOD {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 1.4rem;
  padding: 1.6rem 0;
  border-bottom: 2px solid var(--ruza);
}
.VISBOD:nth-of-type(odd) { padding-block: 2.2rem; }
.VISBOD .VISCLANOK h2 { margin-top: 0; }
.VISBODCISLO {
  font-family: var(--nadpis);
  font-size: clamp(3rem, 5vw, 4.2rem);
  line-height: .9;
  color: var(--ruzatmava);
  text-align: right;
  font-variant-numeric: lining-nums;
}
.VISBODVYZNAC {
  background: var(--safir);
  color: var(--slonovina);
  border-bottom: 0;
  border-radius: 6px;
  padding: 2rem 1.6rem;
  margin-block: 1rem;
}
.VISBODVYZNAC .VISBODCISLO { color: var(--ruza); }

/* thank-you page */
.VISPOTVRDENIE {
  grid-column: 1 / span 7;
  position: relative;
  padding: 3.4rem clamp(20px, 3vw, 40px) 2rem;
  background: var(--papier);
  border: 2px solid var(--safir);
  border-radius: 0 0 6px 6px;
  clip-path: polygon(34px 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%, 0 34px);
}
.VISPOTVRDENIEOTVOR {
  position: absolute; left: 50%; top: 14px; width: 20px; height: 20px; margin-left: -10px;
  border-radius: 50%; background: var(--slonovina); box-shadow: 0 0 0 3px var(--ruza);
}
.VISTELVELKY { display: inline-block; font-family: var(--nadpis); font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.1; text-decoration: none; font-variant-numeric: tabular-nums; }
.VISPRIPRAVA { grid-column: 9 / span 4; align-self: center; padding: 1.4rem; background: var(--safir); color: var(--slonovina); border-radius: 6px; }
.VISPRIPRAVANADPIS { font-weight: 700; font-size: 1.2rem; margin-bottom: .7rem; }
.VISPRIPRAVA ul { padding-left: 1.1rem; margin-bottom: 1rem; }
.VISPRIPRAVA li { margin-bottom: .4rem; }
.VISDALSIE { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.VISDALSIEKARTA {
  display: flex; flex-direction: column; gap: .3rem;
  padding: 1.1rem 1.2rem 1.1rem 2.2rem;
  position: relative;
  background: var(--papier);
  border: 1.5px solid var(--safir);
  border-radius: 3px 6px 6px 3px;
  text-decoration: none;
  transition: background-color var(--rychlo), translate var(--rychlo);
}
.VISDALSIEKARTA::before { content: ""; position: absolute; left: .85rem; top: 1.45rem; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--safir); }
.VISDALSIEKARTA:hover { background: var(--ruzasvetla); translate: 0 -3px; color: var(--safir); }
.VISDALSIEKARTA:active { translate: 0 0; }
.VISDALSIENAZOV { font-weight: 700; font-size: 1.08rem; }

/* not found */
.VISNENAJDENECISLO {
  grid-column: 1 / span 4;
  font-family: var(--nadpis);
  font-size: clamp(5rem, 14vw, 11rem);
  line-height: .85;
  color: var(--safir);
  margin: 0;
  -webkit-text-stroke: 0;
}
.VISNENAJDENETEXT { grid-column: 5 / span 8; }
.VISNENAJDENEZOZNAM { list-style: none; margin-top: 1.6rem; border-top: 3px solid var(--safir); }
.VISNENAJDENEZOZNAM li { border-bottom: 1px solid var(--ruza); }
.VISNENAJDENEZOZNAM a { display: block; padding: .75rem 0; font-weight: 600; text-decoration: none; transition: padding-left var(--rychlo), background-color var(--rychlo); }
.VISNENAJDENEZOZNAM a:hover { padding-left: .6rem; background: var(--ruzasvetla); }

/* trust page */
.VISPRAKTIKY { margin-top: 2.4rem; row-gap: var(--medzera); }
.VISPRAKTIKA { padding: 1.6rem clamp(18px, 2.4vw, 30px); border-radius: 6px; border: 1.5px solid var(--safir); background: rgb(255 252 246 / .95); }
.VISPRAKTIKASIROKA { grid-column: span 7; }
.VISPRAKTIKAUZKA { grid-column: span 5; background: var(--safir); color: var(--slonovina); }
.VISPRAKTIKAUZKA a { color: var(--ruza); }
.VISPRAKTIKANADPIS { font-family: var(--nadpis); font-size: 2.2rem; line-height: 1.05; margin-bottom: .6rem; }
.VISPRAKTIKYPOZN { margin-top: 2rem; }

/* topic pages */
.VISCLANOKHLAVNY { grid-column: 1 / span 8; }
.VISBOKKARTA {
  grid-column: 9 / span 4;
  align-self: start;
  position: sticky;
  top: calc(var(--lista) + 24px);
  padding: 1.5rem 1.4rem;
  background: var(--papier);
  border: 2px solid var(--safir);
  border-radius: 6px;
}
.VISBOKKARTANADPIS { font-family: var(--nadpis); font-size: 2rem; line-height: 1.05; margin-bottom: .8rem; }
.VISBOKKARTA ul { padding-left: 1.1rem; margin-bottom: 0; }
.VISBOKKARTA li { margin-bottom: .55rem; }
.VISBOKKARTATMAVA { position: static; background: var(--safir); color: var(--slonovina); border-color: var(--safir); }
.VISZASKRTNI { list-style: none; margin-bottom: 1rem; counter-reset: polozka; }
.VISZASKRTNI li { position: relative; padding: .5rem 0 .5rem 2.2rem; border-bottom: 1px dashed var(--ruza); counter-increment: polozka; }
.VISZASKRTNI li::before {
  content: counter(polozka); position: absolute; left: 0; top: .45rem;
  width: 1.5rem; height: 1.5rem; display: grid; place-items: center;
  border: 1.5px solid var(--safir); border-radius: 3px; font-size: .8rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.VISOBHUVOD { grid-column: 1 / span 7; }
.VISFOTOCLANOK { grid-column: 8 / span 5; align-self: end; margin-inline-end: calc(var(--stlpec) / -2); }
.VISKROKY { list-style: none; counter-reset: krok; margin: 1.4rem 0 clamp(48px, 7vw, 88px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.VISKROK {
  counter-increment: krok;
  position: relative;
  padding: 3.6rem 1.2rem 1.2rem;
  background: var(--papier);
  border: 1.5px solid var(--safir);
  border-radius: 0 0 6px 6px;
  transition: background-color var(--rychlo), border-color var(--rychlo);
}
.VISKROK::before {
  content: counter(krok);
  position: absolute; left: 1.1rem; top: .5rem;
  font-family: var(--nadpis); font-size: 2.6rem; line-height: 1; color: var(--ruzatmava);
}
.VISKROK:hover { background: var(--ruzasvetla); }
.VISKROKDLHY { grid-column: span 2; }
.VISOBHVYSLEDOK .VISCLANOK { grid-column: 1 / span 7; }
.VISOBHVYSLEDOK .VISBOKKARTA { grid-column: 8 / span 5; }
.VISOBHVYSLEDOK .VISCLANOK h2 { margin-top: 0; }
.VISSPISOBSAH { grid-column: 1 / span 7; }
.VISSPIS { margin: 0 0 1.4rem; border-top: 3px solid var(--safir); }
.VISSPIS > div { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--ruza); }
.VISSPIS > div:nth-child(2) { background: var(--ruzasvetla); padding-inline: .8rem; margin-inline: -.8rem; }
.VISSPIS dt { font-weight: 700; }
.VISSPIS dd { margin: 0; }
.VISOTAZKY { grid-column: 8 / span 5; align-self: start; }
.VISOTAZKYNADPIS { font-family: var(--nadpis); font-size: 2.2rem; line-height: 1.05; margin-bottom: 1rem; }
.VISOTAZKY .VISROZBAL:nth-child(even) { margin-inline-start: 0; }
.VISROZBALTEXTUZKY { padding-left: 1rem; }
.VISFOTOPORTRET { grid-column: 1 / span 4; align-self: start; position: sticky; top: calc(var(--lista) + 40px); margin-inline-start: calc(var(--stlpec) / -2); }
.VISPROTTEXT { grid-column: 6 / span 7; }

/* responsive */
@media (max-width: 1280px) {
  .VISUVODFOTO { margin-inline-end: 0; }
}
@media (max-width: 1100px) {
  .VISNAV { grid-template-columns: minmax(0, 1fr) 190px minmax(0, 1fr); }
  .VISNAVODKAZ { font-size: .88rem; padding-inline: 1.35rem .6rem; }
  .VISSPOSOBYBOK { grid-column: 1 / span 5; }
  .VISROZBALY { grid-column: 6 / span 7; }
  .VISREGISTEROBAL { grid-column: 1 / -1; }
  .VISSLUZBYBOK { grid-column: 1 / span 7; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1.4rem; }
  .VISSLUZBYBOK .VISVELKECISLO { grid-row: span 3; }
  .VISSLUZBYBOK .VISUPOZORNENIE { grid-column: 1 / -1; }
  .VISAUTOR { grid-column: 8 / span 5; }
  .VISKROKY { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .VISNAVZOZNAM { display: none; }
  .VISNAV { grid-template-columns: 1fr; }
  .VISZAVES { scale: .82; }
  .VISHLAVA[data-zbalene="ano"] .VISZAVES { translate: 0 -33px; scale: .5; }
  .VISPREPINAC {
    display: block; position: absolute; inset: 0; width: 100%;
    background: transparent; border: 0; cursor: pointer; border-radius: 0 0 6px 6px;
  }
  .VISPREPINAC:focus-visible { outline: 3px solid var(--ruza); outline-offset: -5px; }
  .VISZVAZOK { display: flex; visibility: hidden; opacity: 0; translate: 0 -12px; transition: opacity var(--rychlo), translate var(--rychlo), visibility 0s linear var(--rychlo); }
  .VISZVAZOK[data-otvorene="ano"] { visibility: visible; opacity: 1; translate: 0 0; transition-delay: 0s; }
  .VISUVOD { padding-top: calc(var(--lista) + 118px); }
  .VISMRIEZKA > * { grid-column: 1 / -1 !important; grid-row: auto !important; margin-inline: 0 !important; }
  .VISUVODFOTO { width: min(420px, 100%); justify-self: center; }
  .VISZAZNAMFOTO { width: min(440px, 100%); justify-self: center; }
  .VISSLUZBYBOK { display: block; }
  .VISBEZTEXT .VISNADPIS2 { text-align: left; margin-left: 0; }
  .VISSTRANA { padding-top: calc(var(--lista) + 112px); }
  .VISROZBAL:nth-child(even), .VISNIKDYPOLOZKA:nth-child(3) { margin-inline-start: 0; }
  .VISPATAMRIEZKA { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .VISPATAVLASTNIK { grid-column: 1 / -1; }
  .VISBOKKARTA, .VISFOTOPORTRET { position: static; }
  .VISFOTOCLANOK, .VISFOTOPORTRET { width: min(460px, 100%); justify-self: center; }
}
@media (max-width: 768px) {
  .VISREGISTER thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .VISREGISTER, .VISREGISTER tbody, .VISREGISTER tfoot, .VISREGISTER tr, .VISREGISTER th, .VISREGISTER td { display: block; width: 100%; }
  .VISREGISTER tr { border-bottom: 2px solid var(--ruza); padding: .4rem 0; }
  .VISREGISTER th, .VISREGISTER td { border-bottom: 0; padding: .35rem 1rem; }
  .VISREGISTER tbody th { width: 100%; padding-top: .8rem; }
  .VISREGISTER td::before { content: attr(data-stlpec); display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; color: var(--ruzatmava); font-weight: 600; }
  .VISREGISTER td:last-child { text-align: left; white-space: normal; }
  .VISRIADOK[data-povinne="ano"] td::before { color: var(--safir); }
  .VISZAZNAMSTLPCE, .VISDALSIE { grid-template-columns: minmax(0, 1fr); }
  .VISLISTOKTMAVY { margin-top: 0; }
}
@media (max-width: 640px) {
  .VISPOLIA { grid-template-columns: minmax(0, 1fr); }
  .VISFORMULAR { box-shadow: 0 0 0 4px var(--slonovina), 0 0 0 6px var(--ruza); }
  .VISPORADIE, .VISROZBALTEXT { padding-left: 1rem; }
  .VISBOD { grid-template-columns: 2.8rem minmax(0, 1fr); gap: .9rem; }
  .VISBODVYZNAC { padding-inline: 1rem; }
  .VISPRAVIDLA .VISROZBAL:nth-child(3n+2) { margin-inline-start: 0; }
  .VISUCELY thead { display: none; }
  .VISUCELY tr, .VISUCELY td { display: block; }
  .VISUCELY td:first-child { font-weight: 600; border-bottom: 0; padding-bottom: 0; }
  .VISKROKY { grid-template-columns: minmax(0, 1fr); }
  .VISKROKDLHY { grid-column: auto; }
  .VISSPIS > div { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .VISSPOSOB { grid-template-columns: 2.8rem minmax(0, 1fr); }
  .VISCISLO { width: 2.5rem; height: 3rem; font-size: 1.8rem; }
  .VISPATAMRIEZKA { grid-template-columns: minmax(0, 1fr); }
  .VISCOOKIE { left: 12px; right: 12px; bottom: 12px; width: auto; }
  .VISCOOKIE:not([hidden]) ~ .VISPLAVAJUCA { display: none; }
}
@media (max-width: 480px) {
  body { font-size: 1rem; }
  .VISZAVES { scale: .74; }
  .VISUVOD { padding-top: calc(var(--lista) + 100px); }
  .VISUVODAKCIE .VISTLACIDLO { width: 100%; }
  .VISROZBALHLAVA { gap: .7rem; padding: .7rem; }
  .VISKONTAKTY div, .VISVLASTNIKBLOK .VISKONTAKTY div { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .VISNIKDYPOLOZKA { padding-left: 2.9rem; }
  .VISNIKDYPOLOZKA::before { left: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-property: color, background-color, border-color !important; }
  .VISROZBAL::details-content { transition: none !important; }
}

@media print {
  .VISHLAVA, .VISCOOKIE, .VISPLAVAJUCA, .VISKLIN, .VISLUC::before { display: none !important; }
  .VISUVOD, .VISSTRANA { padding-top: 0; }
}
