@font-face{font-family:'Oswald';font-style:normal;font-weight:400;font-display:swap;src:url(pismo/oswald-400.woff2) format('woff2')}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url(pismo/oswald-700.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(pismo/ibm-plex-sans-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(pismo/ibm-plex-sans-700.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(pismo/jetbrains-mono-400.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(pismo/jetbrains-mono-700.woff2) format('woff2')}

:root {
  --podklad: #1D1712;
  --podklad-2: #261E17;
  --text: #F3E9D8;
  --text-tlumeny: #C9B9A0;
  --akcent: #E07B39;
  --na-akcentu: #1D1712;
  --tmavy: #3A3A24;
  --na-tmavem: #F3E9D8;
  --linka: rgba(224, 123, 57, .55);
  --linka-jemna: rgba(243, 233, 216, .16);
  --fokus: #F6B27C;
  --deska: rgba(29, 23, 18, .88);
  --pismo-nadpis: 'Oswald', 'Arial Narrow', system-ui, sans-serif;
  --pismo: 'IBM Plex Sans', system-ui, sans-serif;
  --pismo-strojove: 'JetBrains Mono', ui-monospace, monospace;
  --kontejner: 1200px;
  --okraj: max(16px, (100vw - var(--kontejner)) / 2);
  --vyska-hlavicky: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--vyska-hlavicky) + 12px); -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--podklad); color: var(--text); font: 400 17px/1.55 var(--pismo); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-color: var(--akcent); text-underline-offset: 3px; }
a:hover { color: var(--akcent); }
:focus-visible { outline: 2px solid var(--fokus); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--pismo-nadpis); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; line-height: 1.15; margin: 0; }
h2 { font-size: clamp(26px, 1.4rem + .6vw, 34px); }
h3 { font-size: 18px; letter-spacing: .08em; color: var(--akcent); }
p { margin: 0; }
.mono, .cislo, .radky b, .hodiny b { font-family: var(--pismo-strojove); font-variant-numeric: tabular-nums; white-space: nowrap; }
.kontejner { width: min(var(--kontejner), 100% - 32px); margin-inline: auto; }

/* tlačítka pilulky */
.tl { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 24px; border-radius: 999px; font: 700 16px/1.2 var(--pismo); text-decoration: none; border: 1.5px solid var(--akcent); white-space: nowrap; transition: background-color .2s, color .2s, transform .2s; }
.tl--hlavni { background: var(--akcent); color: var(--na-akcentu); }
.tl--hlavni:hover { background: #F08E4E; color: var(--na-akcentu); }
.tl--druhe { color: var(--text); background: transparent; }
.tl--druhe:hover { background: rgba(224, 123, 57, .14); color: var(--text); }
.tl--plne { width: 100%; white-space: normal; text-align: center; }
@media (prefers-reduced-motion: no-preference) { .tl:hover { transform: translateY(-1px); } }

/* deska a popisky */
.deska { background: var(--deska); border: 1px solid var(--linka); color: var(--text); }
.popisek { position: absolute; left: 14px; bottom: 14px; max-width: calc(100% - 28px); padding: 7px 12px; font-size: 16px; line-height: 1.35; border-radius: 4px; }
.popisek .mono { color: var(--akcent); margin-left: 6px; }
.popisek-pod { margin-top: 8px; font-size: 16px; color: var(--text-tlumeny); display: flex; justify-content: space-between; gap: 12px; }
.popisek-pod .mono { color: var(--akcent); }
figure { margin: 0; }

/* hlavička a účtenka */
.hlavicka { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: var(--vyska-hlavicky); padding: 8px var(--okraj); background: var(--deska); border-bottom: 1px solid var(--linka); }
.znacka { display: flex; flex-direction: column; text-decoration: none; line-height: 1.1; }
.znacka__jmeno { font: 700 22px/1.15 var(--pismo-nadpis); text-transform: uppercase; letter-spacing: .04em; }
.znacka__misto { font: 400 13px/1.3 var(--pismo-strojove); color: var(--text-tlumeny); letter-spacing: .04em; white-space: nowrap; }
.hlavicka__vpravo { display: flex; align-items: center; gap: 12px; }
.hlavicka__tel { font: 700 16px/1 var(--pismo-strojove); text-decoration: none; color: var(--akcent); padding: 14px 4px; }
.pokladna { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 16px; border: 1px solid var(--akcent); border-radius: 999px; background: #120E0B; color: var(--na-tmavem); font: 700 14px/1 var(--pismo-strojove); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; cursor: pointer; }
.pokladna:hover { color: var(--na-tmavem); background: #2A211A; }
.pokladna__sterbina { width: 28px; height: 4px; border-radius: 2px; background: #000; box-shadow: inset 0 1px 0 rgba(224, 123, 57, .6), 0 1px 0 rgba(243, 233, 216, .2); }
.uctenka { position: absolute; z-index: 2; top: 100%; right: var(--okraj); width: min(340px, 100vw - 32px); max-height: calc(100dvh - 90px); overflow: hidden auto; filter: drop-shadow(0 12px 22px rgb(0 0 0 / .5)); }
.menu-wr .uctenka:not([data-otevreno]), html:not(.menu-wr) .uctenka:not(:target) { display: none; }
.uctenka__papir { position: relative; margin-bottom: 10px; padding: 18px 18px 14px; background: #FFFDF7; color: #1C1A17; font: 16px/1.45 var(--pismo-strojove); }
.uctenka__papir::after { content: ""; position: absolute; left: 0; right: 0; bottom: -10px; height: 10px;
  background: linear-gradient(-45deg, transparent 7px, #FFFDF7 7px) 0 0 / 14px 10px repeat-x, linear-gradient(45deg, transparent 7px, #FFFDF7 7px) 0 0 / 14px 10px repeat-x; }
.uctenka__hlava, .uctenka__dik { text-align: center; }
.uctenka__hlava, .uctenka__soucet { padding-bottom: 8px; margin-bottom: 8px; border-bottom: 1px dashed; }
.uctenka__soucet { display: flex; justify-content: space-between; gap: 8px; padding-top: 8px; margin-top: 4px; border-top: 1px dashed; }
.uctenka a { display: flex; align-items: center; gap: 6px; min-height: 44px; color: inherit; text-decoration: none; }
.uctenka__tecky { flex: 1; align-self: center; border-bottom: 2px dotted; opacity: .5; }
.uctenka a:hover b, .uctenka a:focus-visible b { background: #1C1A17; color: #FFFDF7; }
.uctenka__pod { display: flex; flex-wrap: wrap; column-gap: 12px; margin: -6px 0 2px 14px; }
.uctenka__pod a { display: inline-flex; color: #6B4A2E; text-decoration: underline; text-decoration-color: #C9B9A0; }
.uctenka__pod a:hover { color: #1C1A17; }
.uctenka__kod { height: 34px; margin: 8px 22px 2px; background: repeating-linear-gradient(90deg, #1C1A17 0 2px, transparent 2px 4px, #1C1A17 4px 5px, transparent 5px 8px, #1C1A17 8px 11px, transparent 11px 12px); }
.uctenka__zavrit { display: block; margin: 8px auto 0; min-height: 44px; padding: 0 16px; border: 1px solid; border-radius: 999px; background: none; color: inherit; font: inherit; cursor: pointer; }
a.uctenka__zavrit { display: flex; width: max-content; }
.menu-wr .pokladna--bezjs, html:not(.menu-wr) button.pokladna, .menu-wr .uctenka__zavrit--bezjs, html:not(.menu-wr) .uctenka__zavrit:not(a) { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .uctenka[data-otevreno] .uctenka__papir { animation: uctenka-vyjede .45s cubic-bezier(.3, .7, .3, 1); }
  @keyframes uctenka-vyjede { from { translate: 0 -100%; } }
}

/* úvod U1 */
.u1 { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--linka-jemna); }
.u1__text { align-self: center; padding: 48px 48px 48px var(--okraj); }
.u1__nadpisek { font: 700 14px/1.3 var(--pismo-strojove); letter-spacing: .24em; text-transform: uppercase; color: var(--akcent); margin-bottom: 8px; }
.u1 h1 { font-size: clamp(30px, 1.2rem + 2.2vw, 48px); letter-spacing: .03em; }
.u1__misto { font: 400 20px/1.3 var(--pismo-nadpis); text-transform: uppercase; letter-spacing: .14em; color: var(--text-tlumeny); margin-top: 4px; }
.u1__veta { margin-top: 16px; max-width: 34em; }
.u1__akce { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.stitek { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; padding: 6px 14px; border: 1px solid var(--linka); border-radius: 999px; font-size: 16px; color: var(--text-tlumeny); }
.stitek svg { color: var(--akcent); flex: none; }
.stitek .mono { color: var(--text); }
.u1__obraz { position: relative; margin: 0; min-height: 360px; }
.u1__obraz img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 69% 56%; }
.u1__obraz .popisek { max-width: calc(46% - 14px); }

/* pásy */
.pas { padding-block: clamp(32px, 4vw, 56px); }
.pas--druhy { background: var(--podklad-2); border-block: 1px solid var(--linka-jemna); }
.oddil-hlava { margin-bottom: 20px; }
.oddil-hlava p { color: var(--text-tlumeny); margin-top: 6px; }
.oddil-hlava--radek { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 20px; }
.oddil-hlava--radek p { margin: 0; }

/* vizitka: denní menu + karta */
.vizitka__mrizka { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.vizitka__karta { border: 1px solid var(--linka); padding: clamp(18px, 2.4vw, 26px); background: var(--podklad-2); border-radius: 6px; }
.karta__foto img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; object-position: 51% 50%; border-radius: 4px; }
.karta__udaje { list-style: none; margin: 16px 0 18px; padding: 0; }
.karta__udaje li { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-bottom: 1px dashed var(--linka-jemna); }
.karta__udaje li:first-child { color: var(--akcent); font-weight: 700; }

.den-volba { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.dny { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.dny label { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; min-height: 44px; padding: 0 12px; border: 1px solid var(--linka); border-radius: 999px; font: 700 16px/1 var(--pismo-strojove); cursor: pointer; transition: background-color .2s, color .2s; }
.dny label:hover { background: rgba(224, 123, 57, .14); }
#d-po:checked ~ .dny [for="d-po"], #d-ut:checked ~ .dny [for="d-ut"], #d-st:checked ~ .dny [for="d-st"], #d-ct:checked ~ .dny [for="d-ct"], #d-pa:checked ~ .dny [for="d-pa"] { background: var(--akcent); color: var(--na-akcentu); }
#d-po:focus-visible ~ .dny [for="d-po"], #d-ut:focus-visible ~ .dny [for="d-ut"], #d-st:focus-visible ~ .dny [for="d-st"], #d-ct:focus-visible ~ .dny [for="d-ct"], #d-pa:focus-visible ~ .dny [for="d-pa"] { outline: 2px solid var(--fokus); outline-offset: 3px; }
.panel { display: none; }
#d-po:checked ~ .panely .panel--po, #d-ut:checked ~ .panely .panel--ut, #d-st:checked ~ .panely .panel--st, #d-ct:checked ~ .panely .panel--ct, #d-pa:checked ~ .panely .panel--pa { display: table; }
.tabulka { width: 100%; border-collapse: collapse; }
.tabulka caption { text-align: left; font: 700 14px/1.3 var(--pismo-strojove); letter-spacing: .18em; text-transform: uppercase; color: var(--akcent); padding-bottom: 6px; }
.tabulka th { text-align: left; font: 700 14px/1.3 var(--pismo-strojove); letter-spacing: .1em; text-transform: uppercase; color: var(--text-tlumeny); padding: 8px 10px 8px 0; border-bottom: 1px solid var(--linka); }
.tabulka td { padding: 11px 10px 11px 0; border-bottom: 1px dashed var(--linka-jemna); vertical-align: baseline; }
.tabulka td:first-child { font: 400 14px/1.4 var(--pismo-strojove); color: var(--text-tlumeny); white-space: nowrap; width: 1%; padding-right: 18px; }
.tabulka .cislo { text-align: right; padding-right: 0; width: 1%; }
.tabulka td.cislo { color: var(--akcent); font-weight: 700; }
.priloha, .radky small { color: var(--text-tlumeny); font-size: 16px; }
.poznamka { margin-top: 14px; color: var(--text-tlumeny); }

/* stálý lístek */
.listek { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 300px); gap: 20px clamp(24px, 3vw, 40px); align-items: start; }
.listek h3 { margin: 18px 0 4px; }
.listek__sloupec > h3:first-child { margin-top: 0; }
.radky { list-style: none; margin: 0; padding: 0; }
.radky li { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; }
.radky li span { min-width: 0; }
.radky i { flex: 1 1 24px; min-width: 24px; border-bottom: 2px dotted rgba(243, 233, 216, .35); transform: translateY(-4px); }
.radky b { color: var(--akcent); }
.mezivetu, .alergeny { margin-top: 14px; padding: 8px 12px; border-left: 2px solid var(--akcent); font: italic 400 16px/1.45 var(--pismo); color: var(--text); background: rgba(224, 123, 57, .07); }
.listek__fotky { display: grid; gap: 18px; }
.listek__fotky img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.listek__fotky figure:last-child img { object-position: 55% 42%; }

/* kdy a kde + platby */
.dvojice__mrizka { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 56px); }
.kdy h2, .platby h2 { margin-bottom: 18px; }
.kdy__mrizka { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; }
.hodiny { list-style: none; margin: 0; padding: 0; }
.hodiny li { display: flex; align-items: baseline; gap: 8px; padding: 8px 10px; border-radius: 4px; }
.hodiny i { flex: 1; border-bottom: 2px dotted rgba(243, 233, 216, .35); transform: translateY(-4px); }
.hodiny li[data-dnes] { background: var(--akcent); color: var(--na-akcentu); }
.hodiny li[data-dnes] i { border-color: rgba(29, 23, 18, .5); }
.fakta { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.fakta li { display: grid; grid-template-columns: 22px 1fr; gap: 12px; }
.fakta svg { color: var(--akcent); margin-top: 2px; }
.platby { padding-left: clamp(24px, 4vw, 56px); border-left: 1px solid var(--linka-jemna); }
.platby__druhy { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 18px; padding: 0; }
.platby__druhy li { padding: 6px 14px; border: 1px solid var(--linka); border-radius: 999px; font: 400 16px/1.3 var(--pismo-strojove); }
.krabicka { display: grid; grid-template-columns: 26px 1fr; gap: 14px; align-items: start; padding: 16px; border: 1px solid var(--linka); border-radius: 6px; background: var(--deska); }
.krabicka svg { color: var(--akcent); }
.krabicka b { color: var(--akcent); white-space: nowrap; }

/* salonek */
.salonek__mrizka { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 56px); align-items: stretch; }
.salonek__foto { position: relative; min-height: 240px; }
.salonek__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 46% 42%; border-radius: 4px; }
.salonek__text { align-self: center; display: grid; gap: 14px; justify-items: start; padding-block: 12px; }
.nadpisek { display: inline-flex; align-items: center; gap: 10px; font: 700 14px/1.3 var(--pismo-strojove); letter-spacing: .18em; text-transform: uppercase; color: var(--akcent); }
.salonek__text p:not(.nadpisek) { max-width: 40em; }
.salonek__text .tl { white-space: normal; text-align: center; }

/* výzva a kontakt */
.vyzva { background: var(--tmavy); color: var(--na-tmavem); padding-block: clamp(32px, 4vw, 56px); border-top: 1px solid var(--linka); }
.kontakt { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.kontakt__udaje > p { margin-top: 10px; }
.vyzva__tel { display: inline-block; margin: 18px 0 16px; font: 700 clamp(34px, 1.6rem + 2vw, 52px)/1.1 var(--pismo-strojove); color: var(--na-tmavem); text-decoration: underline; text-decoration-color: var(--akcent); text-decoration-thickness: 3px; text-underline-offset: 8px; white-space: nowrap; }
.vyzva__tel:hover { color: #F6B27C; }
.kontakt__seznam { list-style: none; margin: 0; padding: 0; }
.kontakt__seznam li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 7px 0; border-bottom: 1px dashed rgba(243, 233, 216, .2); }
.kontakt__seznam span { font: 400 14px/1.6 var(--pismo-strojove); letter-spacing: .08em; text-transform: uppercase; color: #D9CDB6; }
.kontakt__seznam b { font-weight: 400; }
.kontakt__foto { position: relative; }
.kontakt__foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: 48% 35%; border-radius: 4px; }

/* patička */
.paticka { padding: 36px 0 28px; border-top: 1px solid var(--linka); background: #15100C; color: var(--text-tlumeny); font-size: 16px; }
.paticka__hlava { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; padding-bottom: 18px; border-bottom: 1px solid var(--linka-jemna); }
.paticka__hlava .znacka__jmeno { color: var(--text); }
.paticka a { color: var(--text); }
.mapa { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; padding: 20px 0; }
.mapa p { font: 700 15px/1.3 var(--pismo-nadpis); text-transform: uppercase; letter-spacing: .1em; color: var(--akcent); margin-bottom: 6px; }
.mapa ul { list-style: none; margin: 0; padding: 0; }
.mapa li a { display: inline-block; padding: 3px 0; text-decoration: none; }
.mapa li a:hover { text-decoration: underline; color: var(--akcent); }
.paticka__pozn { margin-top: 6px; }

@media (prefers-reduced-motion: no-preference) {
  .listek__fotky img, .kontakt__foto img, .karta__foto img { transition: transform .4s ease; }
  .listek__fotky figure, .kontakt__foto, .karta__foto { overflow: hidden; }
  .listek__fotky figure:hover img, .kontakt__foto:hover img { transform: scale(1.03); }
}

@media (max-width: 1099px) {
  .listek { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .listek__fotky { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .mapa { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kdy__mrizka { grid-template-columns: 1fr; }
}

@media (max-width: 899px) {
  :root { --vyska-hlavicky: 60px; }
  body { font-size: 16px; }
  .hlavicka { padding: 6px 12px; }
  .znacka__jmeno { font-size: 19px; }
  .hlavicka__tel { display: none; }
  .uctenka { left: 12px; right: 12px; width: auto; }
  .u1 { grid-template-columns: 1fr; }
  .u1__text { padding: 24px 16px 28px; }
  .u1__obraz { aspect-ratio: 4 / 3; max-height: 60svh; min-height: 0; }
  .u1__obraz .popisek { max-width: calc(100% - 28px); }
  .pas, .vyzva { padding-block: clamp(24px, 6vw, 40px); }
  .vizitka__mrizka, .dvojice__mrizka, .salonek__mrizka, .kontakt, .listek { grid-template-columns: 1fr; }
  .platby { padding-left: 0; border-left: 0; padding-top: 24px; border-top: 1px solid var(--linka-jemna); }
  .salonek__foto { min-height: 0; aspect-ratio: 4 / 3; }
  .kontakt__seznam li { grid-template-columns: 1fr; gap: 0; }
  .mapa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .u1__akce .tl { flex: 1 1 100%; }
  .listek__fotky { grid-template-columns: 1fr; }
  .tabulka td:first-child { display: none; }
  .tabulka th:first-child { display: none; }
  .vyzva__tel { font-size: 32px; }
}
