/* TenderRadar – doplnkové štýly (na vrchu Tailwindu) */

/* overflow-x: clip (nie hidden) zabráni vodorovnému posuvu, ale NEVYTVÁRA
   scroll-kontajner – takže position: sticky (napr. bočný box v článku) sa
   viaže na viewport a normálne sa drží pri scrollovaní. `hidden` je fallback
   pre staré prehliadače bez podpory `clip`. */
html { scroll-behavior: smooth; overflow-x: hidden; overflow-x: clip; }
body { overflow-x: hidden; overflow-x: clip; max-width: 100%; }

/* Plynulé objavenie sekcií */
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.animate-fade-up { animation: fadeUp .5s ease both; }

/* Obmedzenie počtu riadkov (pre karty článkov) */
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ───── Typografia článku (.prose) ───── */
.prose { color:#334155; line-height:1.75; font-size:1.05rem; }
.prose > * + * { margin-top:1.25em; }
.prose h2 { font-size:1.6rem; font-weight:800; color:#0f172a; margin-top:2em; margin-bottom:.6em; line-height:1.3; }
.prose h3 { font-size:1.25rem; font-weight:700; color:#0f172a; margin-top:1.6em; margin-bottom:.5em; }
.prose p { margin:1.1em 0; }
.prose a { color:#2563eb; text-decoration:underline; text-underline-offset:2px; }
.prose a:hover { color:#1d4ed8; }
.prose ul, .prose ol { margin:1.1em 0; padding-left:1.5em; }
.prose ul { list-style:disc; }
.prose ol { list-style:decimal; }
.prose li { margin:.4em 0; }
.prose blockquote { border-left:4px solid #bfdbfe; background:#eff6ff; padding:.8em 1.2em; border-radius:.5rem; color:#1e40af; font-style:italic; }
.prose img { border-radius:1rem; margin:1.5em 0; max-width:100%; height:auto; }
.prose strong { color:#0f172a; font-weight:700; }
.prose code { background:#f1f5f9; padding:.15em .4em; border-radius:.35rem; font-size:.9em; color:#0f172a; }
.prose hr { border:0; border-top:1px solid #e2e8f0; margin:2em 0; }

/* Tabuľky v článku */
.prose-table-wrap { overflow-x:auto; margin:1.75em 0; -webkit-overflow-scrolling:touch; border:1px solid #e2e8f0; border-radius:.75rem; }
.prose table { width:100%; border-collapse:collapse; font-size:.95rem; }
.prose-table-wrap > table { margin:0; }
.prose thead { background:#f8fafc; }
.prose th, .prose td { border-bottom:1px solid #e2e8f0; border-right:1px solid #e2e8f0; padding:.7em .95em; text-align:left; vertical-align:top; }
.prose th:last-child, .prose td:last-child { border-right:0; }
.prose tbody tr:last-child th, .prose tbody tr:last-child td { border-bottom:0; }
.prose th { font-weight:700; color:#0f172a; white-space:nowrap; }
.prose tbody tr:nth-child(even) { background:#f8fafc; }
.prose caption { caption-side:bottom; font-size:.85rem; color:#94a3b8; margin-top:.6em; text-align:left; }

/* Jemný posuv kotvy pod sticky navigáciu */
:target { scroll-margin-top: 90px; }

/* Skrytie scrollbaru (horizontálne kategórie na mobile) */
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* ───── Modálne okno: zámok rolovania pozadia ─────
   Keď je otvorené okno (.fixed.inset-0), js/ui.js pridá telu triedu
   `modal-open`. Telo sa zafixuje, takže pozadie sa neroluje – roluje sa
   len v okne. `overscroll-behavior: contain` zabráni „preliatiu“ rolovania
   z okna na obsah za ním (mobil aj desktop). */
body.modal-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
.fixed.inset-0,
.fixed.inset-0 > * { overscroll-behavior: contain; }

/* ───── iOS: zákaz auto-zoomu pri fokuse do políčka ─────
   iPhone Safari/Chrome priblíži stránku, keď má políčko font < 16px,
   čo rozhodí layout a umožní horizontálne rolovanie. Na mobile preto
   vynútime 16px na všetkých formulárových políčkach – zoom sa nespustí
   a formulár ostane statický. */
@media (max-width: 639px) {
  input:not([type=checkbox]):not([type=radio]):not([type=range]),
  select,
  textarea {
    font-size: 16px !important;
  }
  /* Miesto pod mobilným sticky CTA dávame do TMAVÉHO footra, nie na biele
     telo stránky – inak pod footrom („Prevádzkovateľ portálu…") presvital
     biely pruh. Pridáva sa len keď je CTA na stránke (trieda has-cta-pad). */
  footer.has-cta-pad {
    padding-bottom: calc(5rem + env(safe-area-inset-bottom));
  }
}

/* ───── Šípka „hore" nad mobilným sticky CTA ─────
   Keď je na stránke mobilné sticky CTA (.has-cta), posunieme šípku hore,
   aby ju lišta neprekrývala. Na desktope (≥640px) sticky CTA nie je, takže
   šípka ostáva dole. ID selektor má prednosť pred Tailwind triedou bottom-6. */
#scrollTopBtn.has-cta { bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
@media (min-width: 640px) { #scrollTopBtn.has-cta { bottom: 1.5rem; } }
