/* Vlastný kalendár – tlačové strany (docs/vlastny-kalendar.md; majiteľ 8. 11. 2026 „A ale daj moznost volby“, „A vsetky tie formaty ceny ano“).
   Vzhľady A Kuchárka (predvolený), B Sezóna, C Zošit; formáty nástenný A4 a A3, stolový týždenný 297 × 140 mm, otvárací A4 na šírku (Prodigi).
   Strany skladá sablona/kalendar-tlac.js. Všetky triedy majú predponu kl- (bez zrážky so styl.css). Písmo knihy (Domace Serif, Kniha Sans =
   Fira Sans, @font-face v styl.css). Tlačové PDF pre Prodigi nesmie mať priehľadnosť ani CSS transform (vzhľad A to spĺňa; B a C iba
   vlastná výroba) – docs/vlastny-kalendar.md časť 1. */
@font-face { font-family: "Domace Serif"; font-style: normal; font-weight: 600; font-display: block; src: url(/assets/fonts/domace-serif.woff2) format("woff2"); }
@font-face { font-family: "Kniha Sans"; font-style: normal; font-weight: 400; font-display: block; src: url(/assets/fonts/FiraSans-Regular.woff2) format("woff2"); }
@font-face { font-family: "Kniha Sans"; font-style: normal; font-weight: 600; font-display: block; src: url(/assets/fonts/FiraSans-SemiBold.woff2) format("woff2"); }
@font-face { font-family: "Kniha Sans"; font-style: normal; font-weight: 700; font-display: block; src: url(/assets/fonts/FiraSans-Bold.woff2) format("woff2"); }
.kl-str, .kl-str *, .kl-str *::before, .kl-str *::after { box-sizing: border-box; }
.kl-str { --serif: "Domace Serif", Georgia, serif; --sans: "Kniha Sans", sans-serif; }
@page kl-stena { size: 210mm 297mm; margin: 0; }
@page kl-stol { size: 297mm 140mm; margin: 0; }
@page kl-stena3 { size: 297mm 420mm; margin: 0; }
@page kl-pv { size: 297mm 210.15mm; margin: 0; }
.kl-str { position: relative; overflow: hidden; background: #fff; color: #2b201d; font-family: var(--sans); font-weight: 400;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; text-rendering: geometricPrecision; font-kerning: normal; }
/* každá strana kalendára je celá na jednej tlačovej strane: Chrome inak pri zaokrúhlení výšok strán (140 mm = 529,13 px) delil mriežku dní
   na ďalšiu stranu a 11. týždeň stolového kalendára vyšiel bez dní (hlásenie vlákna Kalendáre na mieru 8. 11. 2026) */
.kl-str { break-inside: avoid; break-before: page; }
.kl-str:first-child { break-before: auto; }
.kl-str.kl-stena { width: 210mm; height: 297mm; page: kl-stena; }
.kl-str.kl-stol { width: 297mm; height: 140mm; page: kl-stol; }
.kl-str p, .kl-str h1, .kl-str h2, .kl-str ul, .kl-str ol, .kl-str li, .kl-str figure { margin: 0; padding: 0; }
.kl-str i { font-style: normal; }
.kl-str img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kl-str figure { overflow: hidden; }
/* ---------- spoločné prvky ---------- */
.kl-kicker { font: 700 6.4pt var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--a); margin: 0 0 1.3mm !important; }
.kl-meta { font: 400 7.4pt var(--sans); color: var(--mut); margin-top: 1.1mm !important; letter-spacing: .01em; }
/* QR v mobile ako v knihe (styl.css .rk-qr-mobil): telefón z okrajov, QR na displeji, pod ním Recept online a naskenujte mobilom */
.kl-qr-blok { flex: none; width: 27mm; margin: -1mm -1mm 0 0; text-align: center; }
.kl-qr-mobil { position: relative; display: block; width: 25mm; margin: 0 auto; padding: 4.6mm 1.6mm 5.2mm; border: 1.15mm solid var(--ink, #2b201d);
  border-radius: 4.6mm; background: #fff; }
.kl-qr { display: block; width: 19.5mm; height: 19.5mm; margin: 0 auto; }
.kl-qr svg { display: block; width: 100%; height: 100%; }
.kl-qr-rep { position: absolute; top: 1.5mm; left: 50%; width: 6.5mm; height: 1.1mm; margin-left: -3.25mm; border-radius: .55mm; background: var(--ink, #2b201d); }
.kl-qr-tl { position: absolute; bottom: 1.7mm; left: 50%; width: 7.5mm; height: .8mm; margin-left: -3.75mm; border-radius: .4mm; background: var(--ink, #2b201d); }
.kl-qr-t { display: block; margin-top: 1.6mm; font: 700 6.8pt/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--a); }
.kl-qr-t2 { display: block; margin-top: .4mm; font: 400 6.6pt/1.2 var(--sans); color: var(--mut); }
.kl-pata-url { text-transform: none; letter-spacing: .01em; font-weight: 400; font-size: 6.4pt; }
.kl-srec-sur { display: flow-root; }
.kl-srec-sur .kl-qr-blok { float: right; width: 19.5mm; margin: -1mm 0 .6mm 3mm; }   /* stolový: menší telefón */
.kl-srec-sur .kl-qr-mobil { width: 18mm; padding: 3.4mm 1.1mm 3.8mm; border-width: .85mm; border-radius: 3.4mm; }
.kl-srec-sur .kl-qr { width: 14mm; height: 14mm; }
.kl-srec-sur .kl-qr-rep { top: 1.1mm; width: 4.8mm; height: .8mm; margin-left: -2.4mm; }
.kl-srec-sur .kl-qr-tl { bottom: 1.25mm; width: 5.5mm; height: .6mm; margin-left: -2.75mm; }
.kl-srec-sur .kl-qr-t { margin-top: 1mm; font-size: 5.2pt; }
.kl-srec-sur .kl-qr-t2 { font-size: 5pt; }
.kl-rec { display: flex; flex-direction: column; }
.kl-rec-hlav { display: flex; justify-content: space-between; align-items: flex-start; gap: 6mm; flex: none; }
.kl-rec-hlav h2 { font: 600 15pt/1.12 var(--serif); color: var(--a); letter-spacing: -.005em; }
.kl-rec-telo, .kl-srec-telo { --hust: 1; min-height: 0; overflow: hidden; }
.kl-rec-telo { flex: 1 1 auto; display: grid; grid-template-columns: 54mm minmax(0, 1fr); gap: 0 6mm; font-size: calc(8pt * var(--hust)); line-height: 1.34; color: var(--ink); }
.kl-rh { font: 700 calc(6.2pt * var(--hust))/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--a); margin: 0 0 1.5mm !important; }
.kl-sur { list-style: none; }
.kl-sur li { display: grid; grid-template-columns: var(--sw, 11mm) minmax(0, 1fr); gap: 0 2mm; padding: .18mm 0; border-bottom: .25pt solid var(--line); break-inside: avoid; }
.kl-sur li b { font-weight: 600; white-space: nowrap; }
.kl-sur.kl-sur-zlom li b { white-space: normal; }
.kl-sur li i { color: var(--mut); }
.kl-sur li.kl-sk { display: block; border: 0; break-after: avoid; padding: 1.3mm 0 .2mm; font-weight: 700; font-size: .9em; letter-spacing: .03em; color: var(--a); }
.kl-sur li.kl-sk:first-child { padding-top: 0; }
.kl-post { list-style: none; columns: 2; column-gap: 5mm; }
.kl-post li { position: relative; padding: 0 0 0 4.2mm; margin: 0 0 1.1mm; }
.kl-post .kl-cs { position: absolute; left: 0; top: 0; font-weight: 700; color: var(--a); }
.kl-post li b { font-weight: 700; }
.kl-pata { position: absolute; left: 12mm; right: 12mm; bottom: 6.5mm; display: flex; justify-content: space-between;
  font: 600 5.4pt var(--sans); letter-spacing: .17em; text-transform: uppercase; color: var(--mut); }
/* mriežka mesiaca */
.kl-kal { --tn: 5mm; display: flex; flex-direction: column; }
.kl-kal-hlav { display: flex; justify-content: space-between; align-items: flex-end; flex: none; margin: 0 0 2.2mm; }
.kl-kal-mes { font: 600 21pt/1 var(--serif); color: var(--a); }
.kl-kal-mes span { font: 600 10pt var(--sans); letter-spacing: .22em; color: var(--mut); margin-left: 1.6mm; }
.kl-minis { display: flex; gap: 5mm; }
.kl-mini { width: 25mm; }
.kl-mini p { font: 700 4.9pt var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--mut); margin: 0 0 .5mm !important; }
.kl-mini-g { display: grid; grid-template-columns: repeat(7, 1fr); font: 400 4.3pt/1.32 var(--sans); text-align: center; color: var(--ink); }
.kl-mini-g .kl-h { font-weight: 700; color: var(--mut); }
.kl-mini-g .kl-v { font-weight: 700; color: var(--a); }
.kl-kal-dni { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); margin-left: var(--tn); flex: none;
  font: 700 5.3pt var(--sans); letter-spacing: .15em; text-transform: uppercase; color: var(--mut); padding: 0 0 1.1mm; }
.kl-kal-dni i { padding-left: 1.3mm; }
.kl-kal-dni .kl-vik { color: var(--a); }
.kl-kal-telo { flex: 1 1 0; min-height: 0; display: grid; grid-template-columns: var(--tn) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.kl-kal-tn { display: grid; grid-template-rows: repeat(var(--riadky), minmax(0, 1fr)); font: 400 4.8pt var(--sans); color: var(--mut); }
.kl-kal-tn i { padding-top: 1.5mm; }
.kl-kal-g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-template-rows: repeat(var(--riadky), minmax(0, 1fr)); }
.kl-den { position: relative; min-width: 0; min-height: 0; overflow: hidden; padding: 1.1mm 1.3mm; }
.kl-den .kl-c { display: block; font: 600 10pt/1 var(--sans); color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
.kl-den .kl-txt { display: block; margin-top: .7mm; font: 400 5pt/1.16 var(--sans); }
.kl-den .kl-txt span { display: block; }
.kl-den .kl-mn { color: var(--mut); }
.kl-den .kl-sv { font-weight: 700; color: var(--a); }
.kl-den .kl-dl { font-weight: 600; color: var(--txt2); }
.kl-den .kl-ro { font-weight: 700; color: var(--ink); }
.kl-den .kl-ro::before, .kl-td .kl-ro::before { content: ""; display: inline-block; width: 1.25mm; height: 1.25mm; border-radius: 50%; background: var(--a); margin: 0 .8mm .15mm 0; }
.kl-den.kl-mimo .kl-c { font-weight: 400; color: var(--mimo, #cdc3b7); }
.kl-den.kl-nedela .kl-c, .kl-den.kl-volno .kl-c { color: var(--a); }
.kl-mf { position: absolute; top: 1.3mm; right: 1.3mm; width: 2.4mm; height: 2.4mm; display: block; color: var(--ink); overflow: visible; }
/* týždeň stolového kalendára */
.kl-srec { position: absolute; display: flex; flex-direction: column; }
/* fotka týždňa vyplní miesto, ktoré recept nepotrebuje (28 mm až --foto-max), dlhý recept ju zmenší; písmo receptu ostáva */
.kl-sfoto { position: relative; flex: 1 1 0; min-height: 28mm; max-height: var(--foto-max, 56mm); }
.kl-sfoto img { position: absolute; inset: 0; }
.kl-srec-t { flex: 0 1 auto; min-height: 0; display: flex; flex-direction: column; }
.kl-srec-t h2 { font: 600 11pt/1.14 var(--serif); color: var(--a); }
.kl-srec-t .kl-meta { font-size: 6.2pt; }
.kl-srec-telo { flex: 1 1 auto; display: block; margin-top: 2.2mm; font-size: calc(6.8pt * var(--hust)); line-height: 1.3; color: var(--ink); }
.kl-srec-telo .kl-sur { columns: 2; column-gap: 4mm; margin: 0 0 2mm; }
.kl-srec-telo .kl-sur li { padding: .12mm 0; gap: 0 1.6mm; }
.kl-srec-telo .kl-post { columns: 2; column-gap: 5mm; padding-top: 1.6mm; border-top: .5pt solid var(--line); }
.kl-srec-telo .kl-post li { padding-left: 3.4mm; margin-bottom: .7mm; }
.kl-st-pravo { position: absolute; display: flex; flex-direction: column; }
.kl-st-hlav { display: flex; align-items: flex-start; justify-content: space-between; gap: 6mm; flex: none; padding: 0 0 2mm; }
.kl-st-nazov { padding-top: .6mm; }
.kl-st-tyz { margin-top: 1.6mm !important; }
.kl-st-mes { font: 600 15pt/1 var(--serif); color: var(--a); white-space: nowrap; }
.kl-st-tyz { font: 400 7pt var(--sans); color: var(--mut); white-space: nowrap; }
.kl-st-tyz b { font-weight: 700; color: var(--ink); }
.kl-st-mini { width: 23mm; }
.kl-st-hlav .kl-minis { gap: 4mm; }
.kl-st-dni { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kl-td { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 1.7mm 1.6mm 1.3mm; }
.kl-td-hl .kl-c { display: block; font: 600 17pt/1 var(--sans); color: var(--ink); font-variant-numeric: lining-nums; }
.kl-td-hl .kl-dn { display: block; margin-top: .9mm; font: 700 5.4pt var(--sans); letter-spacing: .13em; text-transform: uppercase; color: var(--mut); }
.kl-td.kl-nedela .kl-c, .kl-td.kl-volno .kl-c, .kl-td.kl-volno .kl-dn { color: var(--a); }
.kl-td-txt { flex: none; min-height: 10.5mm; margin-top: 1.4mm; font: 400 5.4pt/1.28 var(--sans); }
.kl-td-txt span { display: block; }
.kl-td-txt .kl-mn { color: var(--mut); }
.kl-td-txt .kl-sv { font-weight: 700; color: var(--a); }
.kl-td-txt .kl-dl { font-weight: 600; color: var(--txt2); }
.kl-td-txt .kl-pd { color: var(--mut); }
.kl-td-txt .kl-ro { font-weight: 700; color: var(--ink); }
.kl-td-linky { flex: 1 1 auto; min-height: 0; margin: 0 0 1mm; display: grid; grid-auto-rows: 5.6mm; align-content: end; overflow: hidden; }
.kl-td-linky i { border-bottom: .3pt solid var(--line2, var(--line)); }
.kl-td-sl { flex: none; font: 400 4.6pt/1.35 var(--sans); color: var(--mut); }
.kl-td-sl .kl-fz { display: flex; align-items: center; gap: .8mm; color: var(--ink); font-weight: 600; }
.kl-td-sl .kl-mf { position: static; width: 2mm; height: 2mm; flex: none; }
.kl-td-sl .kl-sl { display: block; }
/* ================= A – Kuchárka (biela, bordová, písmo knihy) ================= */
.kl-la { --a: #7a2b23; --ink: #2b201d; --txt2: #4a3b36; --mut: #85766f; --line: #e4dacd; --soft: #f7f0e6; --mimo: #d3c9bd; }
.kl-la .kl-rec-hlav { padding: 0 0 2.4mm; margin: 0 0 3mm; border-bottom: .6pt solid var(--a); }
.kl-la.kl-mes .kl-kal { position: absolute; left: 12mm; right: 12mm; top: 204mm; bottom: 13.5mm; }
.kl-la .kl-kal-g { border-top: .8pt solid var(--a); border-bottom: .8pt solid var(--a); }
.kl-la .kl-den { border-right: .3pt solid var(--line); border-bottom: .3pt solid var(--line); }
.kl-la .kl-den:nth-child(7n) { border-right: 0; }
.kl-la .kl-den:nth-last-child(-n+7) { border-bottom: 0; }
.kl-la .kl-den.kl-volno { background: var(--soft); }
/* obálka A = M4 s rokom: 12 fotiek (6 + 6) a biela stuha */
.kl-la.kl-obal { display: flex; flex-direction: column; }
.kl-la.kl-obal .kl-ob-fotky { flex: 1 1 0; min-height: 0; display: grid; grid-template: repeat(2, minmax(0, 1fr)) / repeat(3, minmax(0, 1fr)); gap: 1.6mm; }
.kl-la.kl-obal .kl-ob-stuha { flex: none; position: relative; padding: 10mm 22mm 9.5mm; text-align: center; border-top: 1.6mm solid #fff; border-bottom: 1.6mm solid #fff; }
.kl-la.kl-obal .kl-ob-stuha::before, .kl-la.kl-obal .kl-ob-stuha::after { content: ""; position: absolute; left: 0; right: 0; border-top: .8pt solid var(--a); }
.kl-la.kl-obal .kl-ob-stuha::before { top: 3mm; }
.kl-la.kl-obal .kl-ob-stuha::after { bottom: 3mm; }
.kl-la .kl-ob-rok { font: 600 40pt/1 var(--serif); color: var(--a); letter-spacing: .04em; margin: .5mm 0 2.5mm !important; }
.kl-la.kl-obal h1 { font: 600 25pt/1.12 var(--serif); color: var(--a); }
.kl-ozdoba { display: flex; align-items: center; justify-content: center; gap: 3mm; margin: 4.5mm 0 4mm !important; color: var(--a); }
.kl-ozdoba::before, .kl-ozdoba::after { content: ""; width: 24mm; border-top: .7pt solid var(--ozdoba, #b68a86); }
/* plná farba (55 % bordovej na bielej), bez priehľadnosti */
.kl-ozdoba span { width: 2.1mm; height: 2.1mm; background: currentColor; transform: rotate(45deg); }
.kl-bezfoto { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%;
  background: var(--soft); color: var(--a); text-align: center; }   /* recept bez fotky – plné farby, bez priehľadnosti */
.kl-bezfoto .kl-bf-mes { font: 600 30pt/1 var(--serif); }
.kl-bezfoto .kl-ozdoba { margin: 4mm 0 3mm !important; }
.kl-bezfoto .kl-bf-rec { font: 600 7.5pt/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--mut); }
.kl-stol .kl-bezfoto .kl-bf-mes { font-size: 18pt; }
.kl-la .kl-ob-rodina { font: 600 15pt/1.25 var(--serif); color: var(--txt2); }
.kl-la .kl-ob-web { font: 600 6.4pt var(--sans); letter-spacing: .17em; text-transform: uppercase; color: var(--mut); margin-top: 4mm !important; }
/* stolový A */
.kl-stol.kl-la.kl-tyz .kl-srec { left: 10mm; top: 13mm; bottom: 8mm; width: 101mm; }
.kl-stol.kl-la.kl-tyz .kl-srec { --foto-max: 50mm; }
.kl-stol.kl-la.kl-tyz .kl-srec-t { padding-top: 2.6mm; }
.kl-stol.kl-la.kl-tyz .kl-st-pravo { left: 117mm; right: 10mm; top: 13mm; bottom: 8mm; }
.kl-stol.kl-la .kl-st-hlav { border-bottom: .8pt solid var(--a); }
.kl-stol.kl-la .kl-td { border-right: .3pt solid var(--line); }
.kl-stol.kl-la .kl-td:last-child { border-right: 0; }
.kl-stol.kl-la .kl-td.kl-volno { background: var(--soft); }
.kl-stol.kl-la.kl-sobal { display: flex; flex-direction: column; }
.kl-stol.kl-la.kl-sobal .kl-so-fotky { flex: 1 1 0; min-height: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6mm; }
.kl-stol.kl-la.kl-sobal .kl-so-stuha { flex: none; position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8mm;
  padding: 8.5mm 16mm 8mm; border-top: 1.6mm solid #fff; }
.kl-stol.kl-la.kl-sobal .kl-so-stuha::before, .kl-stol.kl-la.kl-sobal .kl-so-stuha::after { content: ""; position: absolute; left: 0; right: 0; border-top: .8pt solid var(--a); }
.kl-stol.kl-la.kl-sobal .kl-so-stuha::before { top: 2.4mm; }
.kl-stol.kl-la.kl-sobal .kl-so-stuha::after { bottom: 3mm; }
.kl-stol.kl-la.kl-sobal h1 { font: 600 19pt/1.12 var(--serif); color: var(--a); }
.kl-stol.kl-la .kl-so-rok { font: 600 38pt/1 var(--serif); color: var(--a); letter-spacing: .04em; }
.kl-stol.kl-la .kl-so-pr { text-align: right; }
.kl-stol.kl-la .kl-so-pr .kl-ob-web { margin-top: 1.6mm !important; }
/* ================= B – Sezóna (moderný, farba podľa ročného obdobia) ================= */
.kl-lb { --ink: #1d2126; --txt2: #3e444b; --mut: #737980; --line: #e2e4e7; --soft: #f2f3f4; --mimo: #c9ccd0; --a: #2f4b63; --a2: #e8edf2; }
.kl-lb.kl-s-zima { --a: #2e4a62; --a2: #e8eef3; }
.kl-lb.kl-s-jar { --a: #4b6a33; --a2: #ecf1e5; }
.kl-lb.kl-s-leto { --a: #b9352b; --a2: #f9e9e6; }
.kl-lb.kl-s-jesen { --a: #a65a1b; --a2: #f6ece1; }
.kl-lb .kl-rec-hlav h2, .kl-lb .kl-srec-t h2 { color: var(--ink); }
.kl-lb .kl-mes-stitok { position: absolute; left: 12mm; bottom: -17mm; width: 52mm; height: 33mm; padding: 4.4mm 5mm 0; background: var(--a); color: #fff; z-index: 2; }
.kl-lb .kl-mes-cislo { font: 600 40pt/.86 var(--serif); letter-spacing: -.01em; }
.kl-lb .kl-mes-meno { margin-top: 2.6mm !important; font: 700 7.4pt var(--sans); letter-spacing: .27em; text-transform: uppercase; }
.kl-lb .kl-mes-meno span { margin-left: 2mm; opacity: .78; font-weight: 600; }
.kl-lb .kl-rec-hlav { padding: 0 0 0 58mm; min-height: 15.5mm; margin: 0 0 3.2mm; }
.kl-lb .kl-rec-telo { grid-template-columns: 57mm minmax(0, 1fr); }
.kl-lb .kl-rec-sur { background: var(--a2); padding: 2.6mm 3.2mm 2mm; border-radius: 1.6mm; align-self: start; }
.kl-lb .kl-sur li { border-bottom-color: rgba(0, 0, 0, .08); }
.kl-lb.kl-mes .kl-kal { position: absolute; left: 12mm; right: 12mm; top: 205mm; bottom: 13.5mm; }
.kl-lb .kl-kal-hlav { justify-content: flex-end; margin-bottom: 1.6mm; }
.kl-lb .kl-kal-dni { color: var(--a); }
.kl-lb .kl-kal-dni .kl-vik { color: var(--a); }
.kl-lb .kl-kal-g { border-top: 1.2pt solid var(--a); }
.kl-lb .kl-den { border-bottom: .35pt solid var(--line); }
.kl-lb .kl-den.kl-vikend { background: var(--soft); }
.kl-lb .kl-den.kl-volno { background: var(--a2); }
.kl-lb .kl-den .kl-c { font-weight: 700; font-size: 10.5pt; }
/* obálka B */
.kl-lb.kl-obal .kl-ob-foto { position: absolute; left: 0; right: 0; top: 0; height: 188mm; }
.kl-lb.kl-obal .kl-ob-pas { position: absolute; left: 0; right: 0; top: 188mm; bottom: 0; background: #22303b; color: #fff; padding: 10mm 14mm 0;
  display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 0 8mm; }
.kl-lb .kl-ob-rok { font: 600 62pt/.85 var(--serif); color: #f1e2c6; letter-spacing: -.01em; }
.kl-lb.kl-obal .kl-ob-txt { align-self: center; }
.kl-lb.kl-obal h1 { font: 600 19pt/1.15 var(--serif); color: #fff; }
.kl-lb .kl-ob-rodina { margin-top: 1.6mm !important; font: 600 12pt/1.25 var(--serif); color: #dfe6ec; }
.kl-lb .kl-ob-web { margin-top: 2.6mm !important; font: 600 6.2pt var(--sans); letter-spacing: .17em; text-transform: uppercase; color: rgba(255, 255, 255, .62); }
.kl-lb .kl-ob-mesiace { grid-column: 1 / -1; align-self: end; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.6mm; padding: 0 0 9mm; }
.kl-lb .kl-ob-mesiace span { display: block; }
.kl-lb .kl-ob-mesiace img { width: 100%; height: 12mm; border-radius: 1.2mm; }
.kl-lb .kl-ob-mesiace i { display: block; margin-top: 1mm; text-align: center; font: 700 5pt var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
/* stolový B */
.kl-stol.kl-lb.kl-tyz .kl-srec { left: 0; top: 0; bottom: 0; width: 106mm; background: var(--a2); }
.kl-stol.kl-lb.kl-tyz .kl-srec { --foto-max: 56mm; }
.kl-stol.kl-lb.kl-tyz .kl-srec-t { padding: 3mm 7mm 6mm 10mm; }
.kl-stol.kl-lb .kl-srec-t .kl-kicker { color: var(--a); }
.kl-stol.kl-lb.kl-tyz .kl-st-pravo { left: 113mm; right: 10mm; top: 13mm; bottom: 8mm; }
.kl-stol.kl-lb .kl-st-hlav { border-bottom: 1.2pt solid var(--a); }
.kl-stol.kl-lb .kl-st-mes { color: var(--ink); }
.kl-stol.kl-lb .kl-td { border-right: .3pt solid var(--line); }
.kl-stol.kl-lb .kl-td:last-child { border-right: 0; }
.kl-stol.kl-lb .kl-td.kl-vikend { background: var(--soft); }
.kl-stol.kl-lb .kl-td.kl-volno { background: var(--a2); }
.kl-stol.kl-lb.kl-sobal .kl-so-foto { position: absolute; left: 0; top: 0; bottom: 0; width: 176mm; }
.kl-stol.kl-lb.kl-sobal .kl-so-pas { position: absolute; left: 176mm; right: 0; top: 0; bottom: 0; background: #22303b; color: #fff; padding: 22mm 12mm 0 12mm; }
.kl-stol.kl-lb.kl-sobal .kl-ob-rok { font-size: 50pt; }
.kl-stol.kl-lb.kl-sobal h1 { margin-top: 5mm !important; font: 600 17pt/1.15 var(--serif); color: #fff; }
/* ================= C – Zošit (rodinný, ako obálka H) ================= */
.kl-lc { --a: #c44034; --ink: #2a3157; --txt2: #3b4370; --mut: #6b7090; --line: #c9d2e6; --soft: #f3eedd; --mimo: #c3c7d6; --modra: #2b3a67;
  --papier: #fbf6ea; background: var(--papier); color: var(--ink); }
.kl-lc .kl-okraj { position: absolute; top: 0; bottom: 0; left: 20mm; border-left: 1pt solid rgba(196, 64, 52, .55); }
.kl-lc .kl-nalep { position: absolute; padding: 2.6mm; background: #fff; border: .4pt solid #ddd1bf; box-shadow: .8mm 1mm 0 rgba(90, 70, 45, .13); overflow: visible; }
.kl-lc .kl-nalep img { width: 100%; height: 100%; }
.kl-lc .kl-pa { position: absolute; left: -9mm; top: -3.6mm; width: 30mm; height: 8.5mm; background: rgba(222, 205, 168, .85); transform: rotate(-32deg); }
.kl-lc .kl-pa.kl-p2 { left: auto; right: -9mm; top: -1.4mm; transform: rotate(30deg); }
.kl-lc.kl-mes .kl-mes-hlav { flex: none; width: 50mm; padding-top: 2mm; }
.kl-lc .kl-mes-meno { font: 600 25pt/1.05 var(--serif); color: var(--modra); }
.kl-lc .kl-mes-rok { margin-top: 1.5mm !important; font: 700 9pt var(--sans); letter-spacing: .3em; color: var(--a); }
.kl-lc.kl-mes .kl-foto { position: relative; flex: 1 1 auto; min-width: 0; height: auto; max-height: none; transform: rotate(1.4deg); }
.kl-lc.kl-mes .kl-nalep.kl-foto img { position: absolute; left: 2.6mm; top: 2.6mm; width: calc(100% - 5.2mm); height: calc(100% - 5.2mm); }
.kl-lc .kl-rec-hlav { margin: 0 0 3.6mm; }
.kl-lc .kl-rec-hlav h2 { font-size: 16pt; color: var(--modra); }
.kl-lc .kl-kicker { color: var(--a); }
.kl-lc .kl-rec-telo { grid-template-columns: 52mm minmax(0, 1fr); }
.kl-lc .kl-sur li { border-bottom: .3pt dashed #b9c2da; }
.kl-lc .kl-sur li.kl-sk { color: var(--a); border: 0; }
.kl-lc .kl-post .kl-cs { color: var(--a); }
.kl-lc .kl-rec-hlav { border-bottom: .7pt solid var(--modra); padding-bottom: 2.4mm; }
.kl-lc.kl-mes .kl-kal { position: absolute; left: 26mm; right: 12mm; top: 205mm; bottom: 14mm; --tn: 0mm; }
.kl-lc .kl-kal-telo { grid-template-columns: minmax(0, 1fr); }
.kl-lc .kl-kal-dni { margin-left: 0; }
.kl-lc .kl-kal-dni { color: var(--a); }
.kl-lc .kl-kal-dni .kl-vik { color: var(--a); }
.kl-lc .kl-kal-g { border-top: .7pt solid var(--modra); border-left: .7pt solid var(--modra); background: rgba(255, 255, 255, .55); }
.kl-lc .kl-den { border-right: .4pt solid #9aa6c6; border-bottom: .4pt solid #9aa6c6; }
.kl-lc .kl-den:nth-child(7n) { border-right: .7pt solid var(--modra); }
.kl-lc .kl-den:nth-last-child(-n+7) { border-bottom: .7pt solid var(--modra); }
.kl-lc .kl-den .kl-c { font: 600 11pt/1 var(--serif); color: var(--modra); }
.kl-lc .kl-den.kl-nedela .kl-c, .kl-lc .kl-den.kl-volno .kl-c { color: var(--a); }
.kl-lc .kl-den.kl-volno { background: rgba(196, 64, 52, .07); }
.kl-lc .kl-mf { color: var(--modra); }
.kl-lc .kl-pata { left: 26mm; color: var(--mut); }
/* obálka C */
.kl-lc.kl-obal { background: var(--papier) repeating-linear-gradient(to bottom, transparent 0 8.6mm, #e7dcc3 8.6mm 8.9mm); }
.kl-lc.kl-obal .kl-okraj { left: 27mm; }
.kl-lc .kl-ob-kicker { position: absolute; left: 37mm; top: 34mm; font: 700 9pt var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--a); }
.kl-lc.kl-obal .kl-ob-rok { position: absolute; left: 36mm; top: 42mm; font: 600 66pt/1 var(--serif); color: var(--a); letter-spacing: .02em; }
.kl-lc.kl-obal h1 { position: absolute; left: 37mm; right: 20mm; top: 72mm; font: 600 36pt/1.06 var(--serif); color: var(--modra); }
.kl-lc .kl-ob-linka { position: absolute; left: 37mm; top: 117mm; width: 34mm; border-top: 1.4pt solid var(--a); }
.kl-lc.kl-obal .kl-ob-rodina { position: absolute; left: 37mm; top: 122mm; font: 600 17pt/1.2 var(--serif); color: var(--modra); }
.kl-lc .kl-nalep.kl-n1 { left: 40mm; top: 148mm; width: 84mm; height: 62mm; transform: rotate(-3deg); }
.kl-lc .kl-nalep.kl-n2 { left: 112mm; top: 170mm; width: 80mm; height: 60mm; transform: rotate(2.6deg); }
.kl-lc .kl-nalep.kl-n3 { left: 52mm; top: 216mm; width: 72mm; height: 52mm; transform: rotate(1.4deg); }
.kl-lc .kl-ob-web { position: absolute; left: 37mm; bottom: 12mm; font: 600 6.4pt var(--sans); letter-spacing: .17em; text-transform: uppercase; color: var(--mut); }
/* stolový C */
.kl-stol.kl-lc.kl-tyz .kl-okraj { left: 15mm; }
.kl-stol.kl-lc.kl-tyz .kl-srec { left: 20mm; top: 13mm; bottom: 8mm; width: 96mm; }
.kl-stol.kl-lc.kl-tyz .kl-srec { --foto-max: 47mm; }
.kl-stol.kl-lc.kl-tyz .kl-sfoto { position: relative; margin: 0 4mm 0 2mm; transform: rotate(-1.4deg); }
.kl-stol.kl-lc.kl-tyz .kl-sfoto img { inset: 2.6mm; width: calc(100% - 5.2mm); height: calc(100% - 5.2mm); }
.kl-stol.kl-lc.kl-tyz .kl-srec-t { padding-top: 3.6mm; }
.kl-stol.kl-lc .kl-srec-t h2 { color: var(--modra); }
.kl-stol.kl-lc.kl-tyz .kl-st-pravo { left: 122mm; right: 10mm; top: 13mm; bottom: 8mm; }
.kl-stol.kl-lc .kl-st-hlav { border-bottom: .7pt solid var(--modra); }
.kl-stol.kl-lc .kl-st-mes { color: var(--modra); font-size: 16pt; }
.kl-stol.kl-lc .kl-st-dni { border-left: .7pt solid var(--modra); }
.kl-stol.kl-lc .kl-td { border-right: .4pt solid #9aa6c6; background: rgba(255, 255, 255, .5); }
.kl-stol.kl-lc .kl-td:last-child { border-right: .7pt solid var(--modra); }
.kl-stol.kl-lc .kl-td-hl .kl-c { font-family: var(--serif); color: var(--modra); }
.kl-stol.kl-lc .kl-td.kl-nedela .kl-c, .kl-stol.kl-lc .kl-td.kl-volno .kl-c { color: var(--a); }
.kl-stol.kl-lc .kl-td.kl-volno { background: rgba(196, 64, 52, .07); }
.kl-stol.kl-lc { --line2: #c3cce2; }
.kl-stol.kl-lc.kl-sobal { background: var(--papier) repeating-linear-gradient(to bottom, transparent 0 8.6mm, #e7dcc3 8.6mm 8.9mm); }
.kl-stol.kl-lc.kl-sobal .kl-okraj { left: 22mm; }
.kl-stol.kl-lc .kl-so-txt { position: absolute; left: 31mm; top: 22mm; width: 120mm; }
.kl-stol.kl-lc .kl-so-txt .kl-ob-kicker { position: static; display: block; }
.kl-stol.kl-lc .kl-so-txt .kl-ob-rok { position: static; display: block; font: 600 50pt/1 var(--serif); color: var(--a); margin-top: 2mm !important; }
.kl-stol.kl-lc .kl-so-txt h1 { position: static; font: 600 25pt/1.08 var(--serif); color: var(--modra); margin-top: 2mm !important; }
.kl-stol.kl-lc .kl-so-txt .kl-ob-rodina { position: static; font: 600 14pt/1.2 var(--serif); color: var(--modra); margin-top: 3mm !important; }
.kl-lc .kl-nalep.kl-s1 { left: 160mm; top: 18mm; width: 80mm; height: 56mm; transform: rotate(2.4deg); }
.kl-lc .kl-nalep.kl-s2 { left: 196mm; top: 70mm; width: 74mm; height: 52mm; transform: rotate(-2.2deg); }
/* dlhý recept: suroviny a postup v jednom toku na 3 stĺpce */
.kl-rec-telo.kl-tok3 { display: block; columns: 3; column-gap: 6mm; column-fill: auto; }
.kl-rec-telo.kl-tok3 .kl-rec-sur { display: block; margin: 0 0 2.6mm; }
.kl-rec-telo.kl-tok3 .kl-rec-post { display: block; }
.kl-rec-telo.kl-tok3 .kl-post { columns: auto; }
.kl-rec-telo.kl-tok3 .kl-rh { break-after: avoid; }
.kl-lb .kl-rec-telo.kl-tok3 .kl-rec-sur { padding: 2.4mm 3mm 1.6mm; }
.kl-pata-firma { position: absolute; left: 12mm; right: 12mm; bottom: 4mm; height: 9mm; display: flex; align-items: center; gap: 5mm;
  border-top: .5pt solid var(--line); padding-top: 1.4mm; }
.kl-pata-firma .kl-logo { height: 7mm; width: auto; color: var(--a); flex: none; }
.kl-pata-firma span { font: 600 6.4pt var(--sans); letter-spacing: .04em; color: var(--txt2); }
.kl-ob-logo { display: flex; justify-content: center; margin: 1mm 0 0; }
.kl-ob-logo .kl-logo { height: 14mm; width: auto; color: var(--a); }
/* horná časť mesiaca: fotka vyplní miesto, ktoré recept nepotrebuje (písmo receptu ostáva rovnaké), najmenej 84 mm */
.kl-mes .kl-horna { position: absolute; display: flex; flex-direction: column; }
.kl-mes .kl-horna .kl-foto { position: relative; flex: 1 1 0; min-height: 0; max-height: 128mm; }
.kl-mes .kl-horna .kl-foto img { position: absolute; inset: 0; }
.kl-mes .kl-horna .kl-rec { flex: 0 0 auto; min-height: 0; max-height: 98mm; }
.kl-la.kl-mes .kl-horna { left: 12mm; right: 12mm; top: 14mm; bottom: 96.5mm; gap: 4.5mm; }
.kl-lb.kl-mes .kl-horna { left: 0; right: 0; top: 0; bottom: 95mm; gap: 3.2mm; }
.kl-lb.kl-mes .kl-horna .kl-foto { overflow: visible; }
.kl-lb.kl-mes .kl-horna .kl-foto img { position: absolute; inset: 0; }
.kl-lb.kl-mes .kl-horna .kl-rec { margin: 0 12mm; }
.kl-lc.kl-mes .kl-horna { left: 26mm; right: 12mm; top: 15mm; bottom: 97mm; gap: 7mm; }
.kl-lc.kl-mes .kl-c-vrch { flex: 1 1 0; min-height: 0; max-height: 112mm; display: flex; gap: 7mm; }
.kl-lc.kl-mes .kl-horna .kl-rec { flex: 0 0 auto; }
.kl-lc.kl-mes .kl-c-vrch .kl-foto { max-height: none; }
.kl-lc .kl-den.kl-mimo .kl-c { color: var(--mimo); font-weight: 600; }
/* A3 na výšku – vzhľad A */
.kl-str.kl-stena3 { width: 297mm; height: 420mm; page: kl-stena3; }
.kl-mes3 .kl-foto3 { position: absolute; left: 16mm; top: 17mm; width: 196mm; height: 131mm; }
.kl-mes3 .kl-rec3-bok { position: absolute; left: 220mm; right: 16mm; top: 17mm; height: 131mm; display: flex; flex-direction: column; }
.kl-mes3 .kl-rec3-bok h2 { font: 600 17pt/1.12 var(--serif); color: var(--a); }
.kl-mes3 .kl-rec3-bok .kl-meta { font-size: 8.4pt; margin-bottom: 4mm !important; padding-bottom: 3mm; border-bottom: .7pt solid var(--a); }
.kl-mes3 .kl-rec3-bok .kl-rh { font-size: 7pt; }
.kl-mes3 .kl-rec3-bok .kl-sur { font-size: 9.2pt; line-height: 1.34; }
.kl-mes3 .kl-rec3-bok .kl-qr-blok { margin: auto -2mm 0 auto; }
.kl-mes3 .kl-dolna3 { position: absolute; left: 16mm; right: 16mm; top: 155mm; bottom: 15mm; display: flex; flex-direction: column; gap: 7mm; }
.kl-mes3 .kl-rec3-post { flex: 0 0 auto; max-height: 84mm; display: block; font-size: calc(9.4pt * var(--hust)); }
.kl-mes3 .kl-rec3-post .kl-post { columns: 3; column-gap: 7mm; }
.kl-mes3 .kl-kal3 { flex: 1 1 0; min-height: 0; --tn: 6mm; }
.kl-mes3 .kl-kal-mes { font-size: 27pt; }
.kl-mes3 .kl-kal-mes span { font-size: 12pt; }
.kl-mes3 .kl-mini { width: 33mm; }
.kl-mes3 .kl-mini p { font-size: 6pt; }
.kl-mes3 .kl-mini-g { font-size: 5.8pt; }
.kl-mes3 .kl-kal-dni { font-size: 6.6pt; }
.kl-mes3 .kl-kal-tn { font-size: 6pt; }
.kl-mes3 .kl-den { padding: 1.8mm 2mm; }
.kl-mes3 .kl-den .kl-c { font-size: 14pt; }
.kl-mes3 .kl-den .kl-txt { font-size: 6.6pt; margin-top: 1.3mm; }
.kl-mes3 .kl-mf { width: 3mm; height: 3mm; top: 2mm; right: 2mm; }
.kl-mes3 .kl-pata { left: 16mm; right: 16mm; bottom: 8mm; font-size: 6.4pt; }
/* mesiac so 6 týždňami: mriežka o 8 mm vyššia, fotka o toľko nižšia */
.kl-la.kl-mes.kl-r6 .kl-horna { bottom: 106mm; }
.kl-la.kl-mes.kl-r6 .kl-kal { top: 194.5mm; }
.kl-lb.kl-mes.kl-r6 .kl-horna { bottom: 106mm; }
.kl-lb.kl-mes.kl-r6 .kl-kal { top: 194mm; }
.kl-lc.kl-mes.kl-r6 .kl-horna { bottom: 105mm; }
.kl-lc.kl-mes.kl-r6 .kl-kal { top: 197mm; }
/* ================= vzorka Prodigi A4 na šírku (297 × 210), vzhľad A ================= */
.kl-str.kl-pv { width: 297mm; height: 210.15mm; page: kl-pv; }
.kl-den .kl-pd, .kl-td-txt .kl-pd { color: var(--mut); }
/* predná obálka: 4 + 4 fotky a stuha (ako M4) */
.kl-pv-obal { display: flex; flex-direction: column; }
.kl-pv-obal .kl-pv-rad { flex: 1 1 0; min-height: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6mm; }
.kl-pv-obal .kl-pv-stuha { flex: none; position: relative; padding: 8.5mm 30mm 8mm; text-align: center; border-top: 1.6mm solid #fff; border-bottom: 1.6mm solid #fff; }
.kl-pv-obal .kl-pv-stuha::before, .kl-pv-obal .kl-pv-stuha::after { content: ""; position: absolute; left: 0; right: 0; border-top: .8pt solid var(--a); }
.kl-pv-obal .kl-pv-stuha::before { top: 3mm; }
.kl-pv-obal .kl-pv-stuha::after { bottom: 3mm; }
.kl-pv-obal .kl-ob-rok { font-size: 34pt; margin: 0 0 1.5mm !important; }
.kl-pv-obal h1 { font: 600 23pt/1.12 var(--serif); color: var(--a); }
.kl-pv-obal .kl-ozdoba { margin: 3.5mm 0 3mm !important; }
.kl-pv-obal .kl-ob-rodina { font-size: 14pt; }
.kl-pv-obal .kl-ob-web { margin-top: 2.6mm !important; }
/* horná strana: fotka, suroviny vpravo, postup pod fotkou; spodný okraj voľný pre väzbu */
.kl-pv-horna .kl-pv-foto { position: absolute; left: 12mm; top: 12mm; width: 172mm; height: 114.6mm; }
.kl-pv-horna .kl-pv-bok { position: absolute; left: 192mm; right: 12mm; top: 12mm; bottom: 16mm; display: flex; flex-direction: column; }
.kl-pv-horna .kl-pv-bok h2 { font: 600 16pt/1.13 var(--serif); color: var(--a); }
.kl-pv-horna .kl-pv-bok .kl-meta { padding-bottom: 3mm; border-bottom: .6pt solid var(--a); margin-bottom: 3.4mm !important; }
.kl-pv-horna .kl-pv-sur { font-size: 8.6pt; line-height: 1.32; color: var(--ink); }
.kl-pv-horna .kl-pv-bok .kl-qr-blok { margin: auto -2mm 0 auto; }
.kl-pv-horna .kl-pv-post { position: absolute; left: 12mm; width: 172mm; top: 132mm; bottom: 16mm; display: block; font-size: calc(8.8pt * var(--hust)); line-height: 1.34; color: var(--ink); }
.kl-pv-horna .kl-pv-post .kl-post { columns: 2; column-gap: 7mm; }
.kl-pv-horna .kl-pv-post.kl-tok3 .kl-post { columns: auto; }   /* dlhý postup: 3 stĺpce celého bloku, nie 2 × 3 vnorené */
/* mriežka mesiaca: horný okraj voľný pre väzbu */
.kl-pv-mes .kl-pv-kal { position: absolute; left: 12mm; right: 12mm; top: 16mm; bottom: 15mm; --tn: 6mm; }
.kl-pv-mes .kl-kal-mes { font-size: 26pt; }
.kl-pv-mes .kl-kal-mes span { font-size: 12pt; }
.kl-pv-mes .kl-mini { width: 31mm; }
.kl-pv-mes .kl-mini p { font-size: 5.6pt; }
.kl-pv-mes .kl-mini-g { font-size: 5.4pt; }
.kl-pv-mes .kl-kal-dni { font-size: 6.4pt; padding-bottom: 1.4mm; }
.kl-pv-mes .kl-kal-tn { font-size: 5.8pt; }
.kl-pv-mes .kl-kal-tn i { padding-top: 2mm; }
.kl-pv-mes .kl-den { padding: 1.8mm 2mm; }
.kl-pv-mes .kl-den .kl-c { font-size: 15pt; }
.kl-pv-mes .kl-den .kl-txt { font-size: 6.5pt; line-height: 1.2; margin-top: 1.2mm; }
.kl-pv-mes .kl-den .kl-pd { font-size: 6pt; }
.kl-pv-mes .kl-mf { width: 3.2mm; height: 3.2mm; top: 2mm; right: 2mm; }
.kl-pv-mes .kl-pata { left: 12mm; right: 12mm; bottom: 9.5mm; }
/* zadná obálka otočená o 180° (Prodigi: BACK COVER ONLY, THIS WAY UP) */
.kl-pv-zadna .kl-pv-otocene { position: absolute; inset: 0; }
/* o 180° otáča pdf_uprav.kl-py (bez CSS transform – ten robí v PDF priehľadnú skupinu) */
.kl-pv-zadna .kl-pz-l { position: absolute; left: 14mm; top: 16mm; width: 166mm; bottom: 16mm; }
.kl-pv-zadna .kl-pz-mriezka { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4mm 3.5mm; margin-top: 3mm; }
.kl-pv-zadna .kl-pz-m img { width: 100%; height: 26mm; }
.kl-pv-zadna .kl-pz-m b { display: block; margin-top: 1.3mm; font: 700 6pt var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--a); }
.kl-pv-zadna .kl-pz-m span { display: block; margin-top: .5mm; font: 400 6.6pt/1.25 var(--sans); color: var(--ink); }
.kl-pv-zadna .kl-pz-r { position: absolute; left: 192mm; right: 14mm; top: 16mm; bottom: 16mm; display: flex; flex-direction: column; }
.kl-pv-zadna .kl-pz-h { font: 700 6.2pt var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--a); margin: 0 0 1.4mm !important; }
.kl-pv-zadna .kl-pz-sv { list-style: none; font: 400 6.4pt/1.32 var(--sans); color: var(--ink); margin: 0 0 3.4mm !important; }
.kl-pv-zadna .kl-pz-sv b { display: inline-block; min-width: 9mm; font-weight: 600; }
.kl-pv-zadna .kl-pz-zdroj { font: 400 5.6pt/1.35 var(--sans); color: var(--mut); margin: 0 0 3mm !important; }
.kl-pv-zadna .kl-pz-tiraz { margin-top: auto !important; font: 400 5.8pt/1.45 var(--sans); color: var(--txt2); padding-top: 2.4mm; border-top: .5pt solid var(--line); }

/* zadná strana nástenného A4 (rub podložky): 12 receptov, sviatky, zdroje, výrobca – na výšku */
.kl-str.kl-stena.kl-pv-zadna .kl-pz-l { left: 14mm; right: 14mm; top: 18mm; width: auto; bottom: auto; }
.kl-str.kl-stena.kl-pv-zadna .kl-pz-mriezka { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5mm 4mm; }
.kl-str.kl-stena.kl-pv-zadna .kl-pz-m img { height: 32mm; }
.kl-str.kl-stena.kl-pv-zadna .kl-pz-r { left: 14mm; right: 14mm; top: auto; bottom: 14mm; height: 76mm; display: grid;
  grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr; gap: 0 8mm; }
.kl-str.kl-stena.kl-pv-zadna .kl-pz-r > * { margin: 0 !important; }
.kl-str.kl-stena.kl-pv-zadna .kl-pz-tiraz { grid-column: 1 / -1; align-self: end; }
/* A3: obálka a zadná strana zo vzoru A4 zväčšené o √2 */
.kl-a3-zv .kl-a3-zoom { width: 210mm; height: 297mm; zoom: 1.41421; }
.kl-a3-zv .kl-str { page: kl-stena3; }

/* ---------- editor E3 na stránke /vlastny-kalendar/ (sablona/kalendar.js, predpona kle-; majiteľ 8. 11. 2026 vybral E3) ----------
   vľavo kalendár a vzhľad, v strede veľký náhľad a pás strán, vpravo recept mesiaca, názov, rodinné dátumy a voľby, dole lišta s cenou */
.kle-koren { position: relative; margin: 6px 0 30px; }
.kle-koren [hidden] { display: none !important; }
.kle-nahrava { color: var(--muted); padding: 48px 0; text-align: center; margin: 0; }
.kle { display: grid; grid-template-columns: 236px minmax(0, 1fr) 336px; gap: 22px; align-items: start; }
.kle-l, .kle-r, .kle-s { display: grid; gap: 14px; min-width: 0; }
.kle-l { position: sticky; top: 90px; }
.kle-blok { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
.kle h2 { font: 700 .74rem/1.2 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px; }
.kle h3 { font-family: var(--serif); font-weight: 600; font-size: 1.14rem; line-height: 1.25; margin: 0 0 12px; color: var(--heading); }
.kle-produkty { display: grid; gap: 8px; }
.kle-produkt { display: flex; gap: 11px; align-items: flex-start; width: 100%; text-align: left; padding: 10px; border: 1.5px solid var(--line-2);
  border-radius: 11px; background: #fff; font: inherit; color: var(--ui); cursor: pointer; transition: border-color .15s, background .15s; }
.kle-produkt:hover:not(:disabled) { border-color: var(--ui); }
.kle-produkt.vyb { border-color: var(--accent); background: var(--accent-soft); }
.kle-produkt:disabled { cursor: default; opacity: .58; }
.kle-pt { display: grid; gap: 2px; min-width: 0; }
.kle-pt b { font-size: .94rem; line-height: 1.25; }
.kle-pt span { font-size: .78rem; line-height: 1.3; color: var(--muted); }
.kle-pt em { font-style: normal; font-size: .84rem; font-weight: 700; color: var(--accent); margin-top: 2px; }
.kle-produkt:disabled em { color: var(--muted); font-weight: 600; }
.kle-ik { flex: none; position: relative; width: 26px; height: 38px; margin-top: 2px; border: 1.5px solid var(--ui); border-radius: 2px; background: #fff; }
.kle-ik::before { content: ""; position: absolute; left: 3px; right: 3px; top: 3px; height: 42%; background: var(--accent-soft-2); border-radius: 1px; }
.kle-ik-prodigi { height: 42px; }
.kle-ik-prodigi::after { content: ""; position: absolute; left: -1.5px; right: -1.5px; top: 50%; border-top: 2px dotted var(--ui); }
.kle-ik-prodigi::before { height: 36%; }
.kle-ik-a3 { width: 30px; height: 42px; }
.kle-ik-stol { width: 38px; height: 26px; margin-top: 8px; border-bottom-width: 4px; }
.kle-ik-stol::before { width: 38%; height: auto; bottom: 3px; right: auto; }
.kle-vzhlady { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kle-vzhlad { display: grid; gap: 6px; justify-items: center; padding: 8px 3px 7px; border: 1.5px solid var(--line-2); border-radius: 11px; background: #fff;
  font: inherit; font-size: .78rem; color: var(--ui); cursor: pointer; }
.kle-vzhlad.vyb { border-color: var(--accent); background: var(--accent-soft); }
.kle-vzhlad:disabled { opacity: .42; cursor: default; }
.kle-vz { display: grid; grid-template-rows: 1.25fr .38fr 1fr; width: 38px; height: 50px; border-radius: 2px; overflow: hidden; box-shadow: 0 0 0 1px rgba(0, 0, 0, .14); }
.kle-vz i:nth-child(1) { background: #c6935f; }
.kle-vz-A i:nth-child(2) { background: #7a2b23; } .kle-vz-A i:nth-child(3) { background: #f7f0e6; }
.kle-vz-B i:nth-child(1) { background: #7d9a6a; } .kle-vz-B i:nth-child(2) { background: #2f4b63; } .kle-vz-B i:nth-child(3) { background: #f2f3f4; }
.kle-vz-C i:nth-child(1) { background: #d7b98d; } .kle-vz-C i:nth-child(2) { background: #c44034; }
.kle-vz-C i:nth-child(3) { background: #fbf6ea repeating-linear-gradient(to bottom, transparent 0 4px, #c9d2e6 4px 5px); }
.kle-velky { background: var(--surface); border-radius: 16px; padding: 18px 14px 12px; }
.kle-nahlad { display: grid; justify-items: center; min-height: 240px; }
.kle-mini { position: relative; overflow: hidden; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 10px 26px -14px rgba(0, 0, 0, .45); }
.kle-mini > .kl-str { position: absolute; left: 0; top: 0; }
.kle-spirala { position: relative; z-index: 2; height: 10px; margin: -5px 0; width: 92%;
  background: repeating-linear-gradient(90deg, #4a4a4a 0 2px, transparent 2px 8px); border-radius: 2px; }
.kle-pop { font-size: .84rem; color: var(--muted); text-align: center; margin: 12px 0 0; }
.kle-cely-m { display: none; text-align: center; margin: 0; }
.kle-pas { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; padding: 2px 2px 8px; }
.kle-pas-b { position: relative; flex: none; display: grid; gap: 4px; justify-items: center; padding: 4px; border: 1.5px solid transparent; border-radius: 9px;
  background: none; font: inherit; font-size: .72rem; color: var(--muted); cursor: pointer; }
.kle-pas-b:hover { border-color: var(--line-2); }
.kle-pas-b.vyb { border-color: var(--accent); color: var(--ui); font-weight: 700; }
.kle-pas-b .kle-mini { box-shadow: 0 0 0 1px rgba(0, 0, 0, .1), 0 2px 5px rgba(0, 0, 0, .14); }
.kle-pas-b.kle-pozor::after { content: ""; position: absolute; top: 1px; right: 1px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px #fff; }
.kle-taby { display: flex; gap: 3px; padding: 3px; margin: 0 0 12px; background: var(--surface); border-radius: 999px; }
.kle-taby button { flex: 1; border: 0; background: none; padding: 7px 6px; border-radius: 999px; font: inherit; font-size: .86rem; font-weight: 600; color: var(--muted); cursor: pointer; }
.kle-taby button.vyb { background: #fff; color: var(--ui); box-shadow: 0 1px 3px rgba(0, 0, 0, .14); }
.kle-pole { display: grid; gap: 5px; margin: 0 0 11px; font-size: .84rem; font-weight: 600; color: var(--text-2); }
.kle-pole input, .kle-pole select, .kle-pole textarea { box-sizing: border-box; width: 100%; padding: 9px 11px; border: 1px solid var(--line-2); border-radius: 10px;
  background: #fff; color: var(--ink); font: inherit; font-size: 1rem; font-weight: 400; }
.kle-pole textarea { resize: vertical; line-height: 1.4; font-size: .95rem; }
.kle-pole input:focus, .kle-pole select:focus, .kle-pole textarea:focus { outline: 2px solid rgba(var(--accent-rgb), .35); outline-offset: 0; border-color: var(--accent); }
.kle-vyb { display: flex; gap: 11px; align-items: center; padding: 8px; margin: 2px 0 12px; background: var(--surface); border-radius: 12px; }
.kle-vyb img, .kle-vyb-bez { flex: none; width: 56px; height: 56px; border-radius: 9px; object-fit: cover; background: var(--surface-2); }
.kle-vyb b { display: block; font-size: .95rem; line-height: 1.25; }
.kle-vyb small { font-size: .78rem; color: var(--muted); }
.kle-vysledky { display: grid; gap: 6px; max-height: 320px; overflow: auto; margin: 0 0 10px; }
.kle-vysledok { display: flex; gap: 10px; align-items: center; padding: 6px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-align: left;
  font: inherit; font-size: .88rem; line-height: 1.3; color: var(--ui); cursor: pointer; }
.kle-vysledok:hover { border-color: var(--ui); }
.kle-vysledok img, .kle-vysledok .kle-vyb-bez { flex: none; width: 46px; height: 46px; border-radius: 7px; object-fit: cover; }
.kle-akcie { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 8px; }
.kle-pozn { font-size: .84rem; line-height: 1.45; color: var(--muted); margin: 0 0 10px; }
.kle-odkaz { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; cursor: pointer; }
.kle-pozor-t { font-size: .84rem; line-height: 1.4; color: #8a1f16; background: var(--accent-soft); border-radius: 9px; padding: 8px 10px; margin: 0 0 10px; }
.kle-uprava { border-top: 1px solid var(--line); margin-top: 12px; padding-top: 12px; }
.kle-datum { display: flex; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--line-soft); font-size: .9rem; }
.kle-datum b { flex: none; min-width: 46px; }
.kle-datum span { flex: 1; min-width: 0; }
.kle-datum small { color: var(--muted); }
.kle-x { flex: none; border: 0; background: none; padding: 2px 8px; border-radius: 7px; font-size: 1.3rem; line-height: 1; color: var(--muted); cursor: pointer; }
.kle-x:hover { color: var(--accent); background: var(--accent-soft); }
.kle-pridat { display: block; width: 100%; margin-top: 10px; padding: 10px; border: 1.5px dashed var(--line-2); border-radius: 11px; background: none;
  font: inherit; font-size: .9rem; font-weight: 600; color: var(--accent); cursor: pointer; }
.kle-pridat:hover { border-color: var(--accent); }
.kle-novy-datum { margin-top: 12px; }
.kle-r2 { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; }
.kle-volba { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; font-size: .92rem; line-height: 1.3; cursor: pointer; }
.kle-volba input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); }
.kle-volba small { display: block; font-size: .77rem; color: var(--muted); }
.kle-lista { position: sticky; bottom: 0; z-index: 20; margin-top: 18px; padding: 10px 14px; background: rgba(255, 255, 255, .97);
  border: 1px solid var(--line); border-radius: 14px 14px 0 0; box-shadow: 0 -10px 24px -18px rgba(0, 0, 0, .45); }
.kle-lista-in { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
html.s-app-pruhom .kle-lista { bottom: 84px; }   /* nad pruhom s ponukou aplikácie (app.js, Android) */
.kle-cena { flex: 1 1 280px; display: grid; gap: 2px; min-width: 0; }
.kle-cena b { font-size: 1.02rem; }
.kle-cena span { font-size: .82rem; color: var(--muted); }
.kle-skoro { margin: 8px 0 2px; font-size: .88rem; color: var(--text-2); }
.kle-kratke { display: none; }
.kle-cely { position: fixed; inset: 0; z-index: 1000; overflow: auto; padding: 16px 16px 48px; background: rgba(20, 20, 20, .88); }
.kle-cely-in { max-width: 800px; margin: 0 auto; }
.kle-cely-hl { position: sticky; top: 0; z-index: 3; display: flex; justify-content: flex-end; margin: 0 0 12px; }
.kle-cely-strany { display: grid; gap: 18px; justify-items: center; }
.kle-cely-strany .kle-mini { box-shadow: 0 8px 34px rgba(0, 0, 0, .55); }
html.kle-zamknute { overflow: hidden; }
.kle-zdroj { position: absolute; left: -30000px; top: 0; width: 297mm; pointer-events: none; }
.kle-faq { margin-top: 34px; }
@media (max-width: 1180px) {
  .kle { grid-template-columns: minmax(0, 1fr) 320px; }
  .kle-l { grid-column: 1 / -1; position: static; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
  .kle-produkty { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .kle { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .kle-l { grid-template-columns: minmax(0, 1fr); }
  .kle-produkty { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .kle-produkt { flex: 0 0 214px; }
  .kle-pas { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: thin; }
  .kle-velky { padding: 12px 8px 10px; }
  .kle-blok { padding: 14px; }
  .kle-lista { margin-left: -6px; margin-right: -6px; padding: 8px 12px; }   /* mobil: jeden riadok – cena, termín, objednávka */
  .kle-lista-in { flex-wrap: nowrap; }
  .kle-cena { flex: 1 1 auto; }
  .kle-cena b, .kle-cena > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .kle-cena-n, .kle-cena-p, .kle-lista [data-cely] { display: none; }
  .kle-lista [data-objednat] { flex: none; padding: 7px 14px; font-size: .88rem; }
  .kle-lista .kle-dlhe { display: none; }
  .kle-lista .kle-kratke { display: inline; }
  .kle-cely-m { display: block; }
}
.kle-vyrobca { margin: 14px 0 0; font-size: .8rem; }   /* výrobca podľa GPSR (scripts/vlastny-kalendar.py vyrobca()) */
/* okno objednávky (sablona/kalendar-objednavka.js) */
.kle-obj { position: fixed; inset: 0; z-index: 1001; overflow: auto; padding: 24px 16px 48px; background: rgba(20, 20, 20, .7); }
.kle-obj-in { max-width: 620px; margin: 0 auto; padding: 18px 20px 20px; background: #fff; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); }
.kle-obj h3 { font-family: var(--serif); font-size: 1.3rem; margin: 0 0 8px; }
.kle-obj h4 { font-size: .95rem; margin: 14px 0 8px; }
.kle-obj-zhrnutie { padding: 10px 12px; margin: 10px 0 4px; background: var(--surface); border-radius: 11px; font-size: .92rem; }
.kle-obj-zhrnutie p { margin: 2px 0; }
.kle-obj-adresa { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
.kle-obj-partner { max-width: 260px; margin-top: 6px; }
.kle-obj .kle-volba { margin: 4px 0; }
.kle-obj-moje ul { margin: 0; padding-left: 18px; }
@media (max-width: 560px) { .kle-obj-adresa { grid-template-columns: minmax(0, 1fr); } }
.kle-zaruka { margin-top: 22px; font-size: .9rem; }   /* oznámenie EÚ o zákonnej záruke (obchodne-podmienky.py zaruka_html) */
.kle-zaruka img { display: block; width: 100%; max-width: 480px; height: auto; border: 1px solid var(--line); }
