/* base */
:root {
  --grafit: #33506a;
  --grafit-tmavy: #233a4f;
  --grafit-noc: #1b2d3e;
  --terakota: #c0643f;
  --terakota-tmava: #a04a28;
  --terakota-text: #93401f;
  --krem: #f4ecdc;
  --krem-svetly: #fbf7ef;
  --krem-tmavy: #e6d8bd;
  --kamen: #b9bdb8;
  --kov-1: #f2f4f5;
  --kov-2: #8f9ca8;
  --kov-3: #dfe4e8;
  --kov-4: #5d6c7b;
  --svetlo: #ffb067;
  --pismo: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
  --mono: 'Nimbus Mono PS', 'Courier New', monospace;
  --okraj: clamp(16px, 4vw, 40px);
  --torec: 0px;
  --pas: 0px;
  --strop: 22px;
  --dlazba:
    linear-gradient(45deg, var(--grafit) 0 11%, transparent 11.4%),
    linear-gradient(135deg, var(--grafit) 0 11%, transparent 11.4%),
    linear-gradient(225deg, var(--grafit) 0 11%, transparent 11.4%),
    linear-gradient(315deg, var(--grafit) 0 11%, transparent 11.4%),
    linear-gradient(45deg, var(--krem) 0 14%, transparent 14.4%),
    linear-gradient(135deg, var(--krem) 0 14%, transparent 14.4%),
    linear-gradient(225deg, var(--krem) 0 14%, transparent 14.4%),
    linear-gradient(315deg, var(--krem) 0 14%, transparent 14.4%),
    linear-gradient(90deg, var(--krem) 0 3%, transparent 3.4%),
    linear-gradient(0deg, var(--krem) 0 3%, transparent 3.4%);
}

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

html { scroll-behavior: smooth; scroll-padding-top: 90px; }

body {
  margin: 0;
  font-family: var(--pismo);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--grafit);
  background: var(--krem);
  -webkit-font-smoothing: antialiased;
}

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

a { color: var(--terakota-text); text-underline-offset: 3px; text-decoration-thickness: 2px; transition: color 180ms ease; }
a:hover { color: var(--grafit-tmavy); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--svetlo);
  outline-offset: 3px;
}

h1, h2, h3, h4 { font-family: var(--pismo); font-weight: 700; line-height: 1.15; margin: 0 0 .6em; color: var(--grafit-tmavy); }
h1 { font-size: clamp(2.4rem, 5.5vw, 4.6rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.6rem); }
h3 { font-size: clamp(1.15rem, 1.6vw, 1.35rem); }
p { margin: 0 0 1em; }

.SKRYTE {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

.PRESKOCIT {
  position: absolute; left: 12px; top: -60px; z-index: 200;
  background: var(--grafit-tmavy); color: var(--krem); padding: .6rem 1rem; border-radius: 6px;
  transition: top 180ms ease;
}
.PRESKOCIT:focus { top: 12px; color: var(--krem); }

.TEXT-SIRKA { max-width: 68ch; }

/* tile helpers */
.DLAZBA-VZOR {
  background-color: var(--terakota);
  background-image: var(--dlazba);
  background-size: var(--d, 48px) var(--d, 48px);
}

/* header */
.DOMOFON {
  position: sticky; top: 0; z-index: 50;
  height: 70px;
  pointer-events: none;
}
.DOMOFON::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.18) 0 1px, transparent 1px 4px),
    linear-gradient(180deg, #e4e8eb, #c3cbd2);
  border-bottom: 4px solid var(--grafit);
  box-shadow: 0 6px 14px rgba(27,45,62,.18);
  transform-origin: top;
  transition: transform 260ms ease;
}
.DOMOFON-VNUTRO {
  height: 100%;
  max-width: 1360px; margin: 0 auto; padding: 0 var(--okraj);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  transform-origin: top;
  transition: transform 260ms ease;
}
.DOMOFON a, .DOMOFON button { pointer-events: auto; }
.DOMOFON.ZUZENA::before { transform: scaleY(.76); }
.DOMOFON.ZUZENA .DOMOFON-VNUTRO { transform: translateY(-9px) scale(.86); }

.PLAST-ZNACKA {
  position: relative;
  display: inline-flex; flex-direction: column; justify-content: center;
  min-width: 0;
  padding: .45rem 1.6rem .5rem;
  border-radius: 6px;
  text-decoration: none;
  color: #3d4a55;
  background:
    radial-gradient(circle at 9px 9px, #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    radial-gradient(circle at calc(100% - 9px) 9px, #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    radial-gradient(circle at 9px calc(100% - 9px), #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    radial-gradient(circle at calc(100% - 9px) calc(100% - 9px), #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    linear-gradient(170deg, #f7f3e8, #ddd2bb);
  border: 1px solid #a99f8a;
  box-shadow: inset 0 1px 0 #fff, 0 2px 0 rgba(51,80,106,.35);
}
.PLAST-NAZOV {
  font-weight: 700; font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.1;
  color: #3a4650;
  text-shadow: 0 1px 0 rgba(255,255,255,.85), 0 -1px 0 rgba(0,0,0,.18);
  white-space: nowrap;
}
.PLAST-POPIS {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .02em; color: #5a5446;
  white-space: nowrap;
}
.PLAST-ZNACKA:hover .PLAST-NAZOV { color: var(--terakota-text); }

.DOMOFON-NAV { min-width: 0; }
.TLAC-ZOZNAM { list-style: none; margin: 0; padding: 0; display: flex; gap: .35rem; }
.TLAC-BOD {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  min-width: 64px; padding: 2px 4px;
  text-decoration: none; color: var(--grafit-tmavy);
  border-radius: 10px;
  transition: transform 200ms ease;
}
.TLAC-CISLO {
  display: grid; place-items: center;
  width: 36px; height: 36px; border-radius: 50%;
  font-family: var(--mono); font-weight: 700; font-size: .95rem;
  color: var(--krem);
  border: 3px solid transparent;
  background:
    radial-gradient(circle at 50% 35%, #4c6a86, #263d52 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
  box-shadow: 0 2px 0 rgba(27,45,62,.45), inset 0 1px 0 rgba(255,255,255,.25);
  transition: color 200ms ease, text-shadow 200ms ease, background 200ms ease, box-shadow 200ms ease;
}
.TLAC-POPIS { font-family: var(--mono); font-size: .7rem; line-height: 1.1; white-space: nowrap; }
.TLAC-BOD:hover .TLAC-CISLO,
.TLAC-BOD:focus-visible .TLAC-CISLO {
  color: #ffd8aa;
  text-shadow: 0 0 6px var(--svetlo), 0 0 14px rgba(255,150,70,.8);
  background:
    radial-gradient(circle at 50% 35%, #5c7c99, #2c4459 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
  box-shadow: 0 2px 0 rgba(27,45,62,.45), 0 0 12px rgba(255,176,103,.55);
}
.TLAC-BOD:active { transform: translateY(2px); }
.TLAC-BOD:active .TLAC-CISLO { box-shadow: 0 0 0 rgba(27,45,62,.45), inset 0 2px 4px rgba(0,0,0,.4); }
.TLAC-BOD[aria-current="page"] .TLAC-CISLO {
  color: #fff1de;
  background:
    radial-gradient(circle at 50% 35%, #d47a54, var(--terakota-tmava) 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
}
.TLAC-BOD[aria-current="page"] .TLAC-POPIS { font-weight: 700; }

.VOLAT-TLAC {
  display: none;
  align-items: center; gap: .5rem;
  padding: 4px 12px 4px 4px;
  font: 700 .8rem var(--mono); color: var(--grafit-tmavy);
  background: none; border: 0; border-radius: 30px; cursor: pointer;
}
.VOLAT-IKONA {
  width: 40px; height: 40px; border-radius: 50%;
  border: 3px solid transparent;
  background:
    radial-gradient(circle at 50% 42%, transparent 0 7px, #fff1de 7.5px 9px, transparent 9.5px),
    radial-gradient(circle at 50% 35%, #d47a54, var(--terakota-tmava) 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
  box-shadow: 0 2px 0 rgba(27,45,62,.45);
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.VOLAT-TLAC:hover .VOLAT-IKONA { box-shadow: 0 2px 0 rgba(27,45,62,.45), 0 0 14px rgba(255,176,103,.8); }
.VOLAT-TLAC:active .VOLAT-IKONA { transform: translateY(2px); box-shadow: inset 0 2px 4px rgba(0,0,0,.4); }
.VOLAT-TLAC[aria-expanded="true"] .VOLAT-IKONA { box-shadow: 0 0 0 3px var(--svetlo); }

/* primary button */
.TLAC-HLAVNE, .TLAC-DRUHE {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 52px;
  padding: .8rem 1.7rem;
  border-radius: 999px;
  border: 4px solid transparent;
  font: 700 1.05rem/1.2 var(--pismo);
  text-decoration: none;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 220ms ease, text-shadow 220ms ease, background 220ms ease;
}
.TLAC-HLAVNE {
  color: #fff6ea;
  background:
    radial-gradient(120% 140% at 50% 20%, #cf7550, var(--terakota-tmava) 62%, #84391c) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 45%, var(--kov-3) 56%, var(--kov-4)) border-box;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.28), inset 0 -4px 8px rgba(0,0,0,.22), 0 4px 0 var(--grafit-tmavy), 0 8px 18px rgba(27,45,62,.25);
}
.TLAC-HLAVNE:hover {
  color: #fff6ea;
  text-shadow: 0 0 8px rgba(255,200,140,.95), 0 0 20px rgba(255,160,80,.7);
}
.TLAC-HLAVNE:focus-visible {
  outline: 3px solid var(--svetlo);
  outline-offset: 4px;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.28), inset 0 -4px 8px rgba(0,0,0,.22), 0 4px 0 var(--grafit-tmavy), 0 0 0 10px rgba(255,176,103,.35), 0 0 26px 8px rgba(255,176,103,.45);
}
.TLAC-HLAVNE:active {
  transform: translateY(2px);
  background:
    radial-gradient(120% 140% at 50% 20%, #b9603c, #8c3e1f 62%, #6f2e14) padding-box,
    linear-gradient(160deg, #a4adb5, #4a5866 45%, #8994a0 56%, #34414e) border-box;
  box-shadow: inset 0 3px 6px rgba(0,0,0,.35), 0 2px 0 var(--grafit-tmavy);
}
.TLAC-DRUHE {
  min-height: 44px; padding: .55rem 1.2rem; border-width: 3px; font-size: .98rem;
  color: var(--grafit-tmavy);
  background:
    radial-gradient(120% 140% at 50% 20%, #fffaf0, var(--krem-tmavy) 70%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 45%, var(--kov-3) 56%, var(--kov-4)) border-box;
  box-shadow: inset 0 2px 0 #fff, 0 3px 0 rgba(27,45,62,.45);
}
.TLAC-DRUHE:hover { text-shadow: 0 0 8px rgba(255,176,103,.95); color: var(--terakota-text); }
.TLAC-DRUHE:focus-visible { outline: 3px solid var(--svetlo); outline-offset: 4px; box-shadow: inset 0 2px 0 #fff, 0 3px 0 rgba(27,45,62,.45), 0 0 18px 4px rgba(255,176,103,.5); }
.TLAC-DRUHE:active {
  transform: translateY(2px);
  background:
    radial-gradient(120% 140% at 50% 20%, #efe4cf, #cdbd9f 70%) padding-box,
    linear-gradient(160deg, #a4adb5, #4a5866 45%, #8994a0 56%, #34414e) border-box;
  box-shadow: inset 0 2px 5px rgba(0,0,0,.25);
}
.TLAC-HLAVNE[disabled] { opacity: .7; cursor: progress; }

.ODKAZ-TEXT { font-weight: 700; color: var(--terakota-text); }

/* floors */
.POSCHODIE {
  position: relative;
  padding: var(--hore, 4.5rem) calc(var(--torec) + var(--okraj)) calc(var(--dole, 4.5rem) + var(--strop)) calc(var(--pas) + var(--okraj));
  min-width: 0;
}
.POSCHODIE::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: var(--strop);
  width: var(--pas);
  background-color: var(--terakota);
  background-image: var(--dlazba);
  background-size: var(--pas-d, 34px) var(--pas-d, 34px);
  pointer-events: none;
}
.POSCHODIE-OBSAH {
  position: relative; z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
  min-width: 0;
}
.POSCHODIE-CISLO {
  position: relative; z-index: 1;
  display: flex; align-items: baseline; gap: .4rem;
  width: fit-content;
  margin: 0 0 1rem;
  padding: .3rem .7rem;
  font: 700 2.6rem/1 var(--mono);
  color: var(--grafit);
  background: var(--krem-svetly);
  border-left: 6px solid var(--grafit);
  transition: color 300ms ease, text-shadow 300ms ease;
}
.POSCHODIE-CISLO::after { content: "posch."; font-size: .9rem; font-weight: 400; letter-spacing: .02em; }
.POSCHODIE.SVIETI .POSCHODIE-CISLO {
  color: var(--terakota);
  text-shadow: 0 0 10px rgba(255,176,103,.75), 0 0 26px rgba(255,150,70,.45);
}
.STROP {
  position: absolute; left: 0; right: 0; bottom: 0; height: var(--strop);
  background:
    linear-gradient(180deg, var(--terakota) 0 4px, transparent 4px),
    linear-gradient(180deg, #3e5d79, var(--grafit-tmavy));
  transform-origin: left center;
  pointer-events: none;
}
.STROP::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 2px;
  background: repeating-linear-gradient(90deg, rgba(244,236,220,.35) 0 18px, transparent 18px 26px);
}

.POSCHODIE-TMAVE { background: var(--grafit-noc); color: var(--krem); }
.POSCHODIE-TMAVE h2, .POSCHODIE-TMAVE h3 { color: #fff4e4; }
.POSCHODIE-TMAVE .POSCHODIE-CISLO { color: var(--krem-tmavy); background: #22384b; border-left-color: var(--terakota); }
.POSCHODIE-TMAVE a { color: #ffc49a; }

.POSCHODIE-SVETLE { background: var(--krem-svetly); }

/* reveal */
.JS-ZAP .POSCHODIE-ODHAL .POSCHODIE-OBSAH {
  opacity: 0; transform: translateY(-38px);
  transition: opacity 380ms ease, transform 380ms cubic-bezier(.2,.7,.2,1);
}
.JS-ZAP .POSCHODIE-ODHAL .STROP { transform: scaleX(0); transition: transform 400ms ease 120ms; }
.JS-ZAP .POSCHODIE-ODHAL.VIDITELNE .POSCHODIE-OBSAH { opacity: 1; transform: none; }
.JS-ZAP .POSCHODIE-ODHAL.VIDITELNE .STROP { transform: scaleX(1); }

/* hero */
.HRDINA { --hore: 2.5rem; --dole: 0rem; overflow: hidden; background: var(--krem); }
.HRDINA-POZADIE {
  position: absolute; top: 0; right: 0; bottom: var(--strop); left: 0;
  overflow: hidden; pointer-events: none;
  --d: 72px;
  background-color: var(--terakota);
  background-image: var(--dlazba);
  background-size: var(--d) var(--d);
}
.HRDINA-DLAZBA {
  display: none;
  position: absolute; top: 50%; left: 50%; width: 150vmax; height: 150vmax;
  --d: 104px;
  background-color: var(--terakota);
  background-image: var(--dlazba);
  background-size: var(--d) var(--d);
  transform: translate(-50%, -50%) rotate(45deg);
}
.HRDINA-MRIEZKA {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem;
  padding-bottom: 1.5rem;
}
.HRDINA-DOSKA {
  min-width: 0;
  background: var(--krem-svetly);
  border-radius: 4px;
  padding: clamp(1.4rem, 3vw, 2.6rem);
  box-shadow: 0 0 0 6px var(--krem), 0 10px 30px rgba(27,45,62,.25);
}
.HRDINA-UVOD { font-size: 1.12rem; max-width: 60ch; }
.PODMIENKY { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: .9rem; }
.PODMIENKA {
  display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: .9rem; align-items: start;
  padding: .7rem 0 .8rem;
  border-top: 3px solid var(--krem-tmavy);
}
.PODMIENKA:nth-child(2) { padding-left: clamp(0px, 2vw, 22px); }
.PODMIENKA:nth-child(4) { padding-left: clamp(0px, 4vw, 44px); }
.PODMIENKA-CISLO {
  display: grid; place-items: center;
  width: 46px; height: 46px; border-radius: 50%;
  font: 700 1.15rem var(--mono); color: var(--krem);
  border: 4px solid transparent;
  background:
    radial-gradient(circle at 50% 35%, #4c6a86, #263d52 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
  box-shadow: 0 3px 0 rgba(27,45,62,.4);
}
.PODMIENKA h2 { font-size: 1.25rem; margin: .1rem 0 .2rem; }
.PODMIENKA p { margin: 0; }

.KADR {
  margin: 0;
  position: relative;
  padding-bottom: 12px;
  background-color: var(--terakota);
  background-image: var(--dlazba);
  background-size: 12px 12px;
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 10px 26px rgba(27,45,62,.22);
  min-width: 0;
}
.KADR img { width: 100%; height: auto; filter: saturate(.8) contrast(1.02); border-radius: 4px 4px 0 0; transition: filter 300ms ease; }
.KADR:hover img { filter: saturate(.95); }
.KADR figcaption {
  position: relative;
  padding: .5rem .8rem; background: var(--krem-svetly);
  font: .82rem/1.4 var(--mono); color: var(--grafit);
}
.KADR-UZKY { max-width: 320px; justify-self: center; width: 100%; }

.OBRUBNIK {
  position: relative; z-index: 1;
  margin: 0 calc(-1 * (var(--torec) + var(--okraj))) 0 calc(-1 * (var(--pas) + var(--okraj)));
  padding: 1.1rem calc(var(--torec) + var(--okraj)) 1.3rem calc(var(--pas) + var(--okraj));
  --d: 30px;
  background-color: var(--terakota);
  background-image: linear-gradient(180deg, #d8d9d3 0 10px, #9ea29b 10px 13px, transparent 13px), var(--dlazba);
  background-size: 100% 100%, var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d), var(--d) var(--d);
}
.OBRUBNIK-RIADOK {
  max-width: 1080px; margin: 0 auto; padding-top: 12px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem;
}
.OBRUBNIK-ODKAZ {
  background: var(--krem-svetly); padding: .35rem .8rem; border-radius: 4px;
  font-weight: 700; color: var(--grafit-tmavy);
}

/* screen: access */
.PRIJAZD { --hore: 3.5rem; --dole: 5rem; }
.PRIJAZD-MRIEZKA { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.PRIJAZD-TEXT { min-width: 0; }
.STOJISKA { margin: 1.4rem 0 0; display: grid; gap: 0; border-top: 4px solid var(--grafit); }
.STOJISKO {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem;
  padding: .85rem 0; border-bottom: 2px dashed var(--krem-tmavy);
}
.STOJISKO dt { font-weight: 700; color: var(--grafit-tmavy); }
.STOJISKO dd { margin: 0; }
.STOJISKO-ZAKAZ dd { color: var(--terakota-text); font-weight: 700; }
.VZDIALENOST-DOSKA {
  margin-top: 1.6rem; padding: 1.2rem 1.4rem;
  background: var(--grafit); color: var(--krem); border-radius: 4px;
  border-left: 10px solid var(--terakota);
}
.VZDIALENOST-DOSKA strong { color: #fff4e4; }
.VZDIALENOST-DOSKA p:last-child { margin-bottom: 0; }

/* screen: lift calculator */
.VYTAH { --hore: 4rem; --dole: 4rem; --pas-d: 26px; }
.VYTAH-MRIEZKA { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: start; }
.VYTAH-VYSVETLENIE { min-width: 0; }
.VYTAH-VYSVETLENIE p { color: #e9e0cf; }
.VYTAH-PULT {
  min-width: 0;
  padding: clamp(1rem, 2.5vw, 1.8rem);
  border-radius: 10px;
  color: var(--grafit-tmavy);
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.2) 0 1px, transparent 1px 4px),
    linear-gradient(170deg, #dfe4e8, #b4bec6);
  box-shadow: inset 0 1px 0 #fff, inset 0 -3px 0 rgba(0,0,0,.15), 0 14px 30px rgba(0,0,0,.35);
}
.VYTAH-PULT fieldset { border: 0; margin: 0 0 1.2rem; padding: 0; min-width: 0; }
.VYTAH-PULT legend { font: 700 .82rem var(--mono); margin-bottom: .55rem; padding: 0; color: #2d3f50; }
.VOLBY { display: flex; flex-wrap: wrap; gap: .45rem; }
.VOLBA { position: relative; }
.VOLBA input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.VOLBA span {
  display: inline-block;
  padding: .45rem .85rem; border-radius: 999px;
  font-size: .92rem; font-weight: 700;
  background: #f5f2ea; color: var(--grafit-tmavy);
  border: 2px solid #8f9ca8;
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 150ms ease;
}
.VOLBA:hover span { box-shadow: 0 0 10px rgba(255,176,103,.7); }
.VOLBA input:checked + span { background: var(--grafit); color: #fff4e4; border-color: var(--grafit-tmavy); }
.VOLBA input:focus-visible + span { outline: 3px solid var(--terakota-tmava); outline-offset: 2px; }
.VOLBA input:active + span { transform: translateY(1px); }

.PODLAZIA { display: grid; grid-template-columns: repeat(4, minmax(0, 52px)); gap: .55rem; }
.PODLAZIE-TLAC { position: relative; }
.PODLAZIE-TLAC input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.PODLAZIE-TLAC span {
  display: grid; place-items: center;
  width: 48px; height: 48px; border-radius: 50%;
  font: 700 1rem var(--mono); color: #e9eef2;
  border: 4px solid transparent;
  background:
    radial-gradient(circle at 50% 35%, #4c6a86, #263d52 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
  box-shadow: 0 3px 0 rgba(27,45,62,.45);
  cursor: pointer;
  transition: color 180ms ease, text-shadow 180ms ease, box-shadow 180ms ease, transform 150ms ease;
}
.PODLAZIE-TLAC:hover span { color: #ffd8aa; text-shadow: 0 0 6px var(--svetlo); }
.PODLAZIE-TLAC input:checked + span {
  color: #fff3e2;
  text-shadow: 0 0 8px rgba(255,200,140,.95);
  background:
    radial-gradient(circle at 50% 35%, #d47a54, var(--terakota-tmava) 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
  box-shadow: 0 0 14px rgba(255,176,103,.75);
}
.PODLAZIE-TLAC input:focus-visible + span { outline: 3px solid var(--terakota-tmava); outline-offset: 3px; }
.PODLAZIE-TLAC input:active + span { transform: translateY(2px); box-shadow: inset 0 2px 4px rgba(0,0,0,.4); }

.VYTAH-DISPLEJ {
  margin: .4rem 0 1rem;
  padding: 1rem 1.1rem;
  min-height: 6.5rem;
  border-radius: 6px;
  background: #16242f;
  color: #ffcf9e;
  font: 1rem/1.5 var(--mono);
  box-shadow: inset 0 3px 8px rgba(0,0,0,.6);
}
.VYTAH-DISPLEJ strong { color: #fff1de; font-size: 1.35rem; }
.VYTAH-DISPLEJ p { margin: .2rem 0; }
.VYTAH-AKCIA { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }
.VYTAH-POTVRDENIE { font: .85rem var(--mono); color: #2d3f50; min-height: 1.2em; }

/* screen: narrow spots */
.UZKE { --hore: 5.5rem; --dole: 6rem; }
.UZKE-MRIEZKA { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
.UZKE-NADPIS { text-align: right; }
.UZKE-NADPIS p { margin-left: auto; }
.UZKE-KARTA {
  position: relative; overflow: hidden;
  min-width: 0;
  padding: 1.3rem 1.3rem 1.4rem;
  background: var(--krem-svetly);
  border: 3px solid var(--grafit);
  border-radius: 3px;
  transform: perspective(900px) rotateY(0deg);
  transform-origin: left center;
  transition: transform 260ms ease, box-shadow 260ms ease;
}
.UZKE-KARTA:hover { transform: perspective(900px) rotateY(-6deg); box-shadow: 14px 8px 22px rgba(27,45,62,.22); }
.UZKE-KARTA h3 { padding-bottom: .4rem; border-bottom: 4px solid var(--terakota); display: inline-block; }
.UZKE-KARTA p:last-child { margin-bottom: 0; }
.UZKE-KARTA::before, .UZKE-KARTA::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 50%; z-index: 2;
  background: linear-gradient(90deg, var(--grafit), #3f6080);
  pointer-events: none;
  transform: scaleX(0);
}
.UZKE-KARTA::before { left: 0; transform-origin: left center; border-right: 2px solid var(--krem-tmavy); }
.UZKE-KARTA::after { right: 0; transform-origin: right center; }
.JS-ZAP .POSCHODIE-ODHAL:not(.VIDITELNE) .UZKE-KARTA::before,
.JS-ZAP .POSCHODIE-ODHAL:not(.VIDITELNE) .UZKE-KARTA::after { transform: scaleX(1); }
.JS-ZAP .POSCHODIE-ODHAL .UZKE-KARTA::before,
.JS-ZAP .POSCHODIE-ODHAL .UZKE-KARTA::after { transition: transform 380ms cubic-bezier(.5,0,.2,1) var(--oneskor, 200ms); }
.UZKE-KARTA:nth-of-type(2) { --oneskor: 280ms; }
.UZKE-KARTA:nth-of-type(3) { --oneskor: 360ms; }
.UZKE-KARTA:nth-of-type(4) { --oneskor: 440ms; }
.UZKE-SIROKA { background: #fff; }

/* screen: services */
.SLUZBY { --hore: 3rem; --dole: 3rem; }
.SLUZBY-HLAVA { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem 2rem; align-items: end; margin-bottom: 1.4rem; }
.SLUZBA-RIADOK {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem 1.2rem;
  padding: 1.1rem 0;
  border-bottom: 3px solid var(--grafit);
  transition: background 200ms ease;
}
.SLUZBA-RIADOK:first-of-type { border-top: 6px solid var(--grafit); }
.SLUZBA-RIADOK:hover { background: rgba(230,216,189,.45); }
.SLUZBA-NAZOV { min-width: 0; }
.SLUZBA-NAZOV h3 { margin-bottom: .25rem; }
.SLUZBA-NAZOV p { margin: 0; font-size: .97rem; }
.SLUZBA-UDAJ { min-width: 0; margin: 0; }
.SLUZBA-UDAJ dt { font: .75rem/1.3 var(--mono); color: #4c5d6c; }
.SLUZBA-UDAJ dd { margin: 0; font-weight: 700; font-size: 1.15rem; color: var(--grafit-tmavy); font-variant-numeric: tabular-nums; }
.SLUZBA-BEZ {
  position: relative;
  margin: 1rem 0;
  padding: 1.2rem 1.2rem 1.6rem;
  border: 0;
  background: var(--krem-svetly);
  border-radius: 4px;
  box-shadow: 0 0 0 3px var(--terakota);
}
.SLUZBA-BEZ::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12px;
  background-color: var(--terakota); background-image: var(--dlazba); background-size: 12px 12px;
  border-radius: 0 0 4px 4px;
}
.SLUZBA-BEZ:hover { background: #fff; }
.STITOK-BEZ {
  display: inline-block; margin-bottom: .4rem; padding: .15rem .6rem;
  font: 700 .78rem var(--mono); background: var(--grafit); color: var(--krem); border-radius: 3px;
}
.PRIPLATKY { margin-top: 1.6rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.PRIPLATOK {
  padding: 1rem 1.2rem; background: var(--grafit); color: var(--krem); border-radius: 4px;
}
.PRIPLATOK strong { color: #ffd2ad; font-size: 1.2rem; display: block; }
.PRIPLATOK p { margin: .3rem 0 0; }
.POZN-DIELY { margin-top: 1.2rem; font-size: .95rem; }

/* screen: surcharge rules */
.DOPLATOK { --hore: 5rem; --dole: 5.5rem; }
.DOPLATOK-MRIEZKA { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.PRAVIDLA { list-style: none; margin: 0; padding: 0; counter-reset: pravidlo; }
.PRAVIDLO {
  counter-increment: pravidlo;
  display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 1rem;
  padding: 1rem 0;
  border-bottom: 2px solid var(--krem-tmavy);
}
.PRAVIDLO::before {
  content: counter(pravidlo);
  display: grid; place-items: center;
  width: 48px; height: 48px; border-radius: 50%;
  font: 700 1.1rem var(--mono); color: #fff3e2;
  border: 4px solid transparent;
  background:
    radial-gradient(circle at 50% 35%, #d47a54, var(--terakota-tmava) 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
}
.PRAVIDLO h3 { margin-bottom: .3rem; }
.PRAVIDLO p { margin: 0; }
.DOPLATOK-BOK { display: grid; gap: 1.4rem; align-content: start; min-width: 0; }
.PRIPRAVA-DOSKA {
  padding: 1.2rem 1.3rem;
  background: var(--krem-tmavy);
  border-radius: 4px;
  border-top: 8px solid var(--grafit);
}
.PRIPRAVA-DOSKA ul { margin: 0; padding-left: 1.2rem; }
.PRIPRAVA-DOSKA li { margin-bottom: .4rem; }
.AUTOR {
  display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 1.1rem; align-items: start;
  margin-top: 2.4rem; padding: 1.3rem 1.4rem;
  background: var(--grafit); color: var(--krem);
  border-radius: 4px;
  max-width: 760px;
}
.AUTOR-MONOGRAM {
  display: grid; place-items: center;
  width: 72px; height: 72px; border-radius: 50%;
  font: 700 1.5rem var(--mono); color: var(--grafit-tmavy);
  border: 5px solid transparent;
  background:
    radial-gradient(circle at 50% 35%, #fbf4e6, var(--krem-tmavy) 72%) padding-box,
    linear-gradient(160deg, var(--kov-1), var(--kov-2) 48%, var(--kov-3) 58%, var(--kov-4)) border-box;
}
.AUTOR-MENO { font-weight: 700; font-size: 1.15rem; color: #fff4e4; margin: 0; }
.AUTOR-ROLA { font: .82rem var(--mono); color: #d9cdb6; margin: 0 0 .6rem; }
.AUTOR p:last-child { margin-bottom: 0; }

/* screen: form */
.DOPYT { --hore: 4rem; --dole: 4rem; --pas-d: 40px; background: var(--krem-svetly); }
.DOPYT-MRIEZKA { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.DOPYT-BOK { min-width: 0; }
.KONTAKT-PLAST {
  margin-top: 1.2rem;
  padding: 1rem 1.2rem;
  border-radius: 6px;
  background:
    radial-gradient(circle at 9px 9px, #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    radial-gradient(circle at calc(100% - 9px) 9px, #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    radial-gradient(circle at 9px calc(100% - 9px), #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    radial-gradient(circle at calc(100% - 9px) calc(100% - 9px), #8b97a1 0 2.6px, #4e5a64 3px 4px, transparent 4.5px),
    linear-gradient(170deg, #f7f3e8, #ddd2bb);
  border: 1px solid #a99f8a;
}
.KONTAKT-PLAST p { margin: .2rem 0; overflow-wrap: anywhere; }
.KONTAKT-PLAST .MONO-POPIS { font: .75rem var(--mono); color: #5a5446; display: block; }

.FORMULAR-DOPYT {
  min-width: 0;
  padding: clamp(1.1rem, 3vw, 2rem);
  background: #fff;
  border: 3px solid var(--grafit);
  border-radius: 4px;
  box-shadow: 10px 10px 0 -2px var(--krem-tmavy);
}
.FORMULAR-POLIA { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 1.2rem; }
.POLE { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.POLE-SIROKE { grid-column: 1 / -1; }
.POLE label { font-weight: 700; font-size: .95rem; }
.POLE .POVINNE { color: var(--terakota-text); }
.POLE input, .POLE select, .POLE textarea {
  width: 100%;
  font: inherit; font-size: 1rem; color: var(--grafit-tmavy);
  padding: .7rem .8rem;
  border: 2px solid #8a99a6; border-radius: 4px;
  background: var(--krem-svetly);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.POLE textarea { min-height: 7rem; resize: vertical; }
.POLE input:hover, .POLE select:hover, .POLE textarea:hover { border-color: var(--grafit); }
.POLE input:focus, .POLE select:focus, .POLE textarea:focus { border-color: var(--terakota-tmava); box-shadow: 0 0 0 3px rgba(192,100,63,.25); }
.POLE-NAPOVEDA { font-size: .85rem; color: #4c5d6c; }
.POLE-CHYBA { font-size: .88rem; color: #a3261b; font-weight: 700; margin: 0; }
.POLE.MA-CHYBU input, .POLE.MA-CHYBU select, .POLE.MA-CHYBU textarea { border-color: #a3261b; background: #fff4f1; }
.POLE.ZVYRAZNENE input, .POLE.ZVYRAZNENE select { box-shadow: 0 0 0 3px var(--svetlo); }
.SUHLAS { flex-direction: row; align-items: flex-start; gap: .6rem; }
.SUHLAS input { width: 22px; height: 22px; flex: 0 0 auto; margin-top: .15rem; accent-color: var(--terakota-tmava); }
.SUHLAS label { font-weight: 400; }
.SUHRN-CHYB {
  margin: 1rem 0 0; padding: .8rem 1rem;
  border-left: 6px solid #a3261b; background: #fff1ee; color: #7d1d14; font-weight: 700;
}
.SUHRN-CHYB:empty { display: none; }
.FORMULAR-SPODOK { margin-top: 1.2rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.LAPAC { display: none !important; }

/* inner pages */
.STRANA-HLAVA {
  position: relative;
  padding: 3rem var(--okraj) 3.4rem;
  background: var(--krem);
  overflow: hidden;
}
.STRANA-HLAVA::before {
  content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: clamp(60px, 22vw, 320px);
  --d: 64px;
  background-color: var(--terakota); background-image: var(--dlazba); background-size: var(--d) var(--d);
  pointer-events: none;
}
.STRANA-HLAVA::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 18px;
  background: linear-gradient(180deg, var(--terakota) 0 4px, var(--grafit-tmavy) 4px);
}
.STRANA-HLAVA-VNUTRO {
  position: relative; z-index: 1;
  max-width: 1080px; margin: 0 auto;
  padding-right: clamp(60px, 22vw, 320px);
}
.STRANA-HLAVA h1 { font-size: clamp(2rem, 4.4vw, 3.4rem); }
.DROBCEKY { font: .8rem var(--mono); margin-bottom: 1rem; }
.DROBCEKY ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.DROBCEKY li + li::before { content: "/"; margin-right: .4rem; color: #6b7783; }
.PEROEX { font-size: 1.15rem; max-width: 62ch; margin: 0; }

.STRANA-TELO {
  max-width: 1080px; margin: 0 auto;
  padding: 3rem var(--okraj) 4.5rem;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.4rem;
}
.STRANA-TELO > * { min-width: 0; }
.CLANOK h2 { margin-top: 2rem; }
.CLANOK h2:first-child { margin-top: 0; }
.CLANOK ul, .CLANOK ol { padding-left: 1.3rem; }
.CLANOK li { margin-bottom: .45rem; }
.BOK-DOSKA {
  padding: 1.3rem 1.4rem;
  background: var(--grafit); color: var(--krem); border-radius: 4px;
  border-bottom: 12px solid var(--terakota);
  align-self: start;
}
.BOK-DOSKA h2 { color: #fff4e4; font-size: 1.3rem; }
.BOK-DOSKA a { color: #ffc49a; }
.BOK-DOSKA ul { margin: 0; padding-left: 1.1rem; }
.VYSTRAHA {
  margin: 1.6rem 0; padding: 1rem 1.2rem;
  background: var(--krem-svetly); border: 3px solid var(--terakota); border-radius: 4px;
}
.VYSTRAHA p:last-child { margin-bottom: 0; }
.OTAZKY { margin-top: 1rem; }
.OTAZKA { border-bottom: 2px solid var(--krem-tmavy); }
.OTAZKA summary {
  cursor: pointer; list-style: none;
  padding: .9rem 2.4rem .9rem 0; position: relative;
  font-weight: 700; color: var(--grafit-tmavy);
}
.OTAZKA summary::-webkit-details-marker { display: none; }
.OTAZKA summary::after {
  content: "+"; position: absolute; right: 0; top: .6rem;
  width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center;
  font: 700 1.1rem var(--mono); color: var(--krem); background: var(--grafit);
  transition: transform 200ms ease, background 200ms ease;
}
.OTAZKA summary:hover::after { background: var(--terakota-tmava); }
.OTAZKA[open] summary::after { content: "\2212"; transform: rotate(180deg); }
.OTAZKA div { padding: 0 0 1rem; }

/* policy pages */
.OBSAH-TLACIDLA { list-style: none; margin: 0 0 2rem; padding: 1rem; display: flex; flex-wrap: wrap; gap: .6rem .4rem;
  background: linear-gradient(170deg, #e4e8eb, #c3cbd2); border-radius: 8px; }
.OBSAH-TLACIDLA .TLAC-BOD { min-width: 86px; }
.OBSAH-TLACIDLA .TLAC-POPIS { white-space: normal; text-align: center; max-width: 110px; }
.TABULKA-SEKCIA {
  position: relative;
  margin-bottom: 1.6rem;
  padding: 1.4rem 1.4rem 1.2rem;
  background: var(--krem-svetly);
  border: 2px solid #c8b99d;
  border-radius: 6px;
}
.TABULKA-SEKCIA:nth-child(even) { margin-left: clamp(0px, 3vw, 36px); }
.TABULKA-CISLO {
  display: inline-block; margin-bottom: .6rem;
  padding: .3rem 1.1rem;
  font: 700 .9rem var(--mono); color: #3a4650;
  border-radius: 4px;
  background:
    radial-gradient(circle at 6px 50%, #8b97a1 0 2px, #4e5a64 2.4px 3px, transparent 3.4px),
    radial-gradient(circle at calc(100% - 6px) 50%, #8b97a1 0 2px, #4e5a64 2.4px 3px, transparent 3.4px),
    linear-gradient(170deg, #eef0f1, #c5ccd2);
  border: 1px solid #8f9ca8;
  text-shadow: 0 1px 0 #fff;
}
.TABULKA-SEKCIA h2 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); }
.TABULKA-SEKCIA p:last-child, .TABULKA-SEKCIA ul:last-child { margin-bottom: 0; }

.DATA-TABULKA { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .96rem; }
.DATA-TABULKA th, .DATA-TABULKA td { text-align: left; padding: .6rem .7rem; border-bottom: 2px solid var(--krem-tmavy); vertical-align: top; }
.DATA-TABULKA th { background: var(--grafit); color: var(--krem); font-weight: 700; }
.TABULKA-OBAL { overflow-x: auto; }

.MAJITEL-BLOK {
  padding: 1.4rem 1.5rem;
  background: var(--krem-svetly);
  border: 3px solid var(--grafit);
  border-radius: 4px;
}
.MAJITEL-BLOK dl { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .2rem 1.2rem; }
.MAJITEL-BLOK dt { font: .78rem var(--mono); color: #4c5d6c; margin-top: .5rem; }
.MAJITEL-BLOK dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }

/* footer */
.PATA {
  position: relative;
  padding: 3.4rem var(--okraj) 2rem;
  background: var(--grafit-noc);
  color: #e3dac9;
  font-size: .96rem;
}
.PATA::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 16px;
  --d: 16px;
  background-color: var(--terakota); background-image: var(--dlazba); background-size: var(--d) var(--d);
}
.PATA-VNUTRO { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.PATA a { color: #ffc49a; }
.PATA a:hover { color: #fff; }
.PATA h2 { font-size: 1rem; font-family: var(--mono); color: #fff4e4; margin-bottom: .7rem; }
.PATA ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.PATA-MAJITEL p { margin: 0 0 .35rem; overflow-wrap: anywhere; }
.PATA-ZNACKA { font-weight: 700; font-size: 1.35rem; color: #fff4e4; margin-bottom: .6rem; }
.PATA-SPODOK {
  max-width: 1180px; margin: 2.4rem auto 0; padding-top: 1.2rem;
  border-top: 2px dashed rgba(244,236,220,.25);
  font: .82rem var(--mono); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem;
}

/* cookie */
.SUSIENKY {
  position: fixed; left: 16px; bottom: 16px; z-index: 80;
  max-width: 400px; width: calc(100% - 32px);
  padding: 1rem 1.1rem;
  background: var(--krem-svetly);
  border: 3px solid var(--grafit);
  border-radius: 6px;
  box-shadow: 0 10px 30px rgba(27,45,62,.3);
  font-size: .92rem;
}
.SUSIENKY[hidden] { display: none; }
.SUSIENKY p { margin: 0 0 .8rem; }
.SUSIENKY-TLACIDLA { display: flex; gap: .6rem; }
.SUSIENKY-TLACIDLA .TLAC-DRUHE { flex: 1 1 0; min-height: 40px; padding: .4rem .8rem; font-size: .92rem; }

/* thanks / 404 */
.STAV-CISLO {
  display: block;
  font: 700 clamp(4.5rem, 14vw, 9rem)/1 var(--mono);
  color: var(--terakota);
  text-shadow: 0 0 18px rgba(255,176,103,.45);
  margin-bottom: .4rem;
}
.ZOZNAM-STRAN { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; list-style: none; padding: 0; margin: 1rem 0; }
.ZOZNAM-STRAN a {
  display: block; padding: .9rem 1rem;
  background: var(--krem-svetly); border: 2px solid var(--grafit); border-radius: 4px;
  text-decoration: none; color: var(--grafit-tmavy); font-weight: 700;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.ZOZNAM-STRAN a:hover { transform: translateY(-3px); box-shadow: 0 6px 0 var(--terakota); border-color: var(--terakota-tmava); }
.ZOZNAM-STRAN a:active { transform: translateY(0); box-shadow: none; }
.ZOZNAM-STRAN span { display: block; font-weight: 400; font-size: .92rem; color: var(--grafit); }

/* responsive */
@media (min-width: 480px) {
  .FORMULAR-POLIA { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .PODLAZIA { grid-template-columns: repeat(4, 52px); }
  .ZOZNAM-STRAN { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 640px) {
  :root { --pas: 18px; }
  .STOJISKO { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1.2rem; }
  .UZKE-MRIEZKA { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .UZKE-NADPIS, .UZKE-FOTO { grid-column: 1 / -1; }
  .SLUZBA-RIADOK { grid-template-columns: minmax(0, 1fr) repeat(3, minmax(0, 8rem)); align-items: start; }
  .PRIPLATKY { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .PATA-VNUTRO { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .MAJITEL-BLOK dl { grid-template-columns: 12rem minmax(0, 1fr); }
  .MAJITEL-BLOK dt { margin-top: 0; padding-top: .2rem; }
}

@media (min-width: 768px) {
  .HRDINA-MRIEZKA { grid-template-columns: minmax(0, 1fr) minmax(220px, 300px); align-items: start; }
  .KADR-UZKY { justify-self: end; }
  .VYTAH-MRIEZKA { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .DOPLATOK-MRIEZKA { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .STRANA-TELO { grid-template-columns: minmax(0, 1fr) minmax(220px, 300px); }
  .STRANA-TELO-JEDNO { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 900px) {
  :root { --torec: 96px; --pas: 26px; --strop: 26px; }
  .POSCHODIE-CISLO {
    position: absolute; right: 0; top: 0; bottom: var(--strop);
    width: var(--torec); margin: 0;
    flex-direction: column; align-items: center; justify-content: flex-start;
    padding-top: 2.2rem;
    font-size: clamp(3.4rem, 4.6vw, 4.6rem);
    background: linear-gradient(90deg, #cdbd9d, var(--krem-tmavy) 30%);
    border-left: 6px solid var(--grafit);
  }
  .POSCHODIE-CISLO::after { font-size: .78rem; }
  .POSCHODIE-TMAVE .POSCHODIE-CISLO { background: linear-gradient(90deg, #14212d, #22384b 30%); border-left-color: var(--terakota); }
  .HRDINA-POZADIE { left: 34%; background: var(--terakota); }
  .HRDINA-DLAZBA { display: block; }
  .PRIJAZD-MRIEZKA { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: start; }
  .PRIJAZD-FOTO { margin-top: 4.5rem; }
  .DOPYT-MRIEZKA { grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr); }
  .SLUZBY-HLAVA { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  .STRANA-TELO { grid-template-columns: minmax(0, 1fr) 300px; }
  .STRANA-TELO-JEDNO { grid-template-columns: minmax(0, 1fr); }
}

@media (min-width: 999px) {
  .VOLAT-TLAC { display: none !important; }
}

@media (max-width: 998px) {
  .DOMOFON { height: 62px; }
  .VOLAT-TLAC { display: inline-flex; }
  .DOMOFON-NAV {
    position: absolute; top: 100%; left: 0; right: 0;
    padding: 1rem var(--okraj) 1.4rem;
    background: linear-gradient(170deg, #e4e8eb, #bcc5cc);
    border-bottom: 6px solid var(--grafit);
    box-shadow: 0 16px 30px rgba(27,45,62,.3);
    pointer-events: auto;
    display: none;
  }
  .DOMOFON-NAV.OTVORENE { display: block; }
  .DOMOFON.ZUZENA .DOMOFON-VNUTRO { transform: translateY(-5px) scale(.9); }
  .TLAC-ZOZNAM { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; max-width: 520px; margin: 0 auto; }
  .TLAC-BOD { flex-direction: row; gap: .8rem; justify-content: flex-start; padding: .3rem; }
  .TLAC-CISLO { width: 46px; height: 46px; font-size: 1.1rem; flex: 0 0 auto; }
  .TLAC-POPIS { font-size: .95rem; white-space: normal; }
}

@media (min-width: 1100px) {
  .UZKE-MRIEZKA { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); }
  .UZKE-NADPIS { grid-column: 1 / -1; }
  .UZKE-FOTO { grid-column: 1; grid-row: 2 / span 2; align-self: start; }
  .HRDINA-MRIEZKA { grid-template-columns: minmax(0, 1fr) 300px; gap: 3rem; }
  .PATA-VNUTRO { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
  .SLUZBA-RIADOK { grid-template-columns: minmax(0, 1fr) repeat(3, minmax(0, 9.5rem)); }
}

@media (min-width: 1280px) {
  .POSCHODIE-NEPARNE .POSCHODIE-OBSAH { margin-left: 0; margin-right: auto; }
  .POSCHODIE-PARNE .POSCHODIE-OBSAH { margin-left: auto; margin-right: 0; }
  .POSCHODIE-NEPARNE { padding-left: calc(var(--pas) + var(--okraj) + 2vw); }
  .POSCHODIE-PARNE { padding-right: calc(var(--torec) + var(--okraj) + 2vw); }
  .HRDINA .OBRUBNIK { margin-left: calc(-1 * (var(--pas) + var(--okraj) + 2vw)); padding-left: calc(var(--pas) + var(--okraj) + 2vw); }
  .HRDINA .OBRUBNIK-RIADOK { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0ms !important; animation: none !important; }
  html { scroll-behavior: auto; }
  .JS-ZAP .POSCHODIE-ODHAL .POSCHODIE-OBSAH { opacity: 1; transform: none; }
  .JS-ZAP .POSCHODIE-ODHAL .STROP { transform: none; }
  .JS-ZAP .POSCHODIE-ODHAL .UZKE-KARTA::before, .JS-ZAP .POSCHODIE-ODHAL .UZKE-KARTA::after { transform: scaleX(0) !important; }
  .UZKE-KARTA:hover { transform: none; }
  .TLAC-HLAVNE:active, .TLAC-DRUHE:active, .TLAC-BOD:active { transform: none; }
}
