/* =========================================================
   TOMŠA – dizajn F „Moderný čistý“
   Načítava sa ako posledný, prepisuje staršie pravidlá.
   ========================================================= */

/* Písmo Manrope (jeden súbor, uložený na vlastnom hostingu – /assets/fonts/).
   Kým súbor nie je nahratý, použije sa systémové písmo (Segoe UI / Arial). */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/Manrope-VariableFont_wght.ttf") format("truetype");
}

:root {
  --f-red: #d71f27;
  --f-red-dark: #b5161d;
  --f-blue: #174d84;
  --f-navy: #0b1b30;
  --f-ink: #0f1b2d;
  --f-muted: #4a5768;
  --f-bg: #eef3f9;
  --f-soft: #eef2f7;
  --f-line: #e1e6ec;
  --f-r: 28px;
  --f-r-md: 20px;
  --f-r-sm: 16px;
  --f-font: "Manrope", "Segoe UI", Arial, sans-serif;
}

/* ---------- Základ ---------- */
.tomsa-public, .tomsa-public button, .tomsa-public input, .tomsa-public select, .tomsa-public textarea { font-family: var(--f-font) !important; }
.tomsa-public { background: var(--f-bg) !important; color: var(--f-ink); }
.tomsa-public main { background: var(--f-bg) !important; }
.tomsa-public h1, .tomsa-public h2, .tomsa-public h3, .tomsa-public h4 { font-family: var(--f-font) !important; font-weight: 800 !important; letter-spacing: -0.025em !important; }

.f-wrap { box-sizing: border-box; width: var(--tomsa-w); margin-left: auto; margin-right: auto; }
.f-top { padding-top: 1.75rem; }
.f-section { margin-top: 1.5rem; }
.f-last { margin-bottom: 2.5rem; }
.f-card { background: #fff; border: 1px solid var(--f-line); border-radius: var(--f-r); }

.f-h1 { margin: 0; font-size: clamp(2.6rem, 5.2vw, 4.4rem); line-height: 1.04; letter-spacing: -0.035em !important; text-wrap: balance; color: var(--f-ink); }
.f-h1-sm { font-size: clamp(2.2rem, 4.2vw, 3.4rem); }
.f-h2 { margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.3rem); line-height: 1.1; }
.f-h3 { margin: 0; font-size: 1.55rem; line-height: 1.15; }

/* Tlačidlá */
.f-btn, .f-btn:visited { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 54px; padding: 0 1.6rem; border-radius: 999px; font-size: 1.05rem; font-weight: 700; text-decoration: none !important; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.f-btn-sm { min-height: 44px; padding: 0 1.25rem; font-size: .98rem; }
.f-btn-red, .f-btn-red:visited { background: var(--f-red); color: #fff !important; }
.f-btn-red:hover { background: var(--f-red-dark); }
.f-btn-outline, .f-btn-outline:visited { border: 2px solid var(--f-ink); color: var(--f-ink) !important; }
.f-btn-outline:hover { background: var(--f-ink); color: #fff !important; }
.f-btn-white, .f-btn-white:visited { background: #fff; color: var(--f-navy) !important; }
.f-btn-white:hover { background: #dbe4ef; }
.f-btn:focus-visible { outline: 3px solid #fca5a5; outline-offset: 3px; }

/* ---------- Hlavička ---------- */
.tomsa-public header .tomsa-final-nav nav a { font-size: .95rem !important; font-weight: 700 !important; }
.tomsa-public header .tomsa-final-apply a,
.tomsa-public header a[href="/prihlaska"].tomsa-hit-area { font-size: .95rem !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; border-radius: 999px !important; background: var(--f-red) !important; box-shadow: none !important; }
.tomsa-public header .tomsa-mobile-call { background: var(--f-red) !important; box-shadow: none !important; }
.tomsa-public header a.tomsa-mobile-menu-apply { background: var(--f-red) !important; }

/* ---------- Úvod: hero ---------- */
.f-hero { background: #fff; border: 1px solid var(--f-line); border-radius: var(--f-r); overflow: hidden; }
.f-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 2.25rem; align-items: center; padding: 3.25rem 2.75rem 2.5rem; }
.f-hero-copy { display: flex; flex-direction: column; gap: 1.4rem; }
.f-hero-copy p { margin: 0; max-width: 33rem; color: var(--f-muted); font-size: 1.18rem; line-height: 1.6; }
.f-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.f-hero-side { display: flex; flex-direction: column; gap: .75rem; }

.f-start { background: var(--f-soft); border-radius: var(--f-r-md); padding: 1.5rem 1.6rem; }
.f-start h2 { margin: 0 0 1rem; font-size: 1.5rem; color: var(--f-ink); }
.f-start ol { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .9rem; }
.f-start li { display: flex; align-items: center; gap: .9rem; }
.f-start li div { display: flex; flex-direction: column; gap: .1rem; }
.f-start strong { font-size: 1.06rem; }
.f-start li div span { color: var(--f-muted); font-size: .95rem; }
.f-num { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--f-blue); color: #fff; font-weight: 800; font-size: 1.05rem; }

.f-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.f-quick a, .f-quick a:visited { display: flex; align-items: center; min-height: 56px; padding: 0 1.1rem; border: 1px solid var(--f-line); border-radius: var(--f-r-sm); background: #fff; color: var(--f-ink) !important; font-size: 1rem; font-weight: 700; text-decoration: none !important; transition: border-color .15s ease, color .15s ease; }
.f-quick a:hover { border-color: #fca5a5; color: var(--f-red) !important; }
.f-quick a:focus-visible { outline: 3px solid #fca5a5; outline-offset: 2px; }

.f-groups { padding: 1.5rem 2.75rem 2.1rem; border-top: 1px solid var(--f-line); }
.f-groups h2 { margin: 0 0 .9rem; font-size: .95rem; font-weight: 700 !important; letter-spacing: 0 !important; color: var(--f-muted); }
.f-group-grid { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; }
.f-group-grid li { display: flex; align-items: center; gap: .7rem; padding: .6rem .7rem; border: 1px solid var(--f-line); border-radius: var(--f-r-sm); background: #fff; }
.f-group-grid strong { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 .35rem; box-sizing: border-box; border-radius: 12px; background: var(--f-blue); color: #fff; font-size: 1.2rem; font-weight: 800; }
.f-group-grid span { font-size: .86rem; line-height: 1.25; color: var(--f-muted); }

/* ---------- Prečo TOMŠA ---------- */
.f-why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); overflow: hidden; }
.f-photo { position: relative; min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: 2rem; text-align: center; background: var(--f-soft); color: var(--f-muted); }
.f-photo svg { color: var(--f-blue); margin-bottom: .4rem; }
.f-photo strong { color: var(--f-ink); font-size: 1.1rem; }
.f-photo span { font-size: .98rem; }
.f-photo-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.f-why-copy { padding: 2.25rem; display: flex; flex-direction: column; gap: 1.25rem; }
.f-why-copy ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.f-why-copy li { display: flex; flex-direction: column; gap: .25rem; padding: 1rem 0; border-bottom: 1px solid var(--f-line); }
.f-why-copy li:first-child { padding-top: 0; }
.f-why-copy li:last-child { border-bottom: 0; padding-bottom: 0; }
.f-why-copy strong { font-size: 1.12rem; }
.f-why-copy span { color: var(--f-muted); font-size: 1rem; line-height: 1.55; }

/* ---------- Testy ---------- */
.f-tests { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.f-test { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; padding: 1.75rem; }
.f-test-dark { background: var(--f-navy); color: #fff; border-radius: var(--f-r); }
.f-test-dark h2 { color: #fff !important; }
.f-test-mark { flex: 0 0 auto; width: 140px; padding: .65rem; border: 1px solid var(--f-line); border-radius: var(--f-r-sm); box-sizing: border-box; }
.f-test-mark img { display: block; width: 100%; height: auto; }
.f-test-mark-text { min-height: 90px; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; font-size: 1.7rem; font-weight: 800; letter-spacing: .04em; }
.f-test-copy { flex: 1 1 200px; display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; }
.f-test-copy p { margin: 0; color: var(--f-muted); font-size: 1rem; }
.f-test-dark .f-test-copy p { color: #c9d3df; }

/* ---------- Kontakt na úvode ---------- */
.f-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; padding: 2.25rem; border-radius: var(--f-r); background: var(--f-navy); color: #fff; }
.f-contact h2 { color: #fff !important; }
.f-contact-copy { display: flex; flex-direction: column; gap: 1rem; }
.f-contact-phone, .f-contact-phone:visited { color: #fff !important; font-size: 2.5rem; font-weight: 800; letter-spacing: -0.03em; line-height: 1; text-decoration: none !important; }
.f-contact-lines { display: flex; flex-direction: column; gap: .5rem; font-size: 1.05rem; }
.f-contact-lines a, .f-contact-lines a:visited { color: #fff !important; font-weight: 600; }
.f-contact-lines span { color: #c9d3df; }

/* Mapa – tmavý variant */
.tomsa-map-frame-dark { min-height: 280px; border-radius: var(--f-r-md); overflow: hidden; background: rgba(255,255,255,.08); }
.tomsa-map-frame-dark .tomsa-map-placeholder { background: rgba(255,255,255,.06); }
.tomsa-map-frame-dark .tomsa-map-placeholder strong { color: #fff; }
.tomsa-map-frame-dark .tomsa-map-placeholder p { color: #c9d3df; }
.tomsa-map-frame-dark .tomsa-map-placeholder button { background: #fff; color: var(--f-ink); }
.tomsa-map-placeholder button { border-radius: 999px !important; }

/* ---------- Podstránky ---------- */
.f-pagehero-wrap { padding-bottom: 1.25rem; }
.f-pagehero { background: #fff; border: 1px solid var(--f-line); border-radius: var(--f-r); padding: 2.5rem 2.75rem; }
.f-pagehero p { margin: .9rem 0 0; max-width: 46rem; color: var(--f-muted); font-size: 1.12rem; line-height: 1.6; }
.f-pagehero .f-pagehero-note { margin-top: .6rem; font-size: .95rem; color: #6b7787; }

.tomsa-contact-card, .tomsa-map-card, .tomsa-faq-item-v31, .tomsa-legal-card, .tomsa-404-card-v32, .tomsa-faq-help-v31 { border-radius: var(--f-r-md) !important; }
main#main-content article.rounded-\[1\.4rem\], main#main-content .rounded-\[1\.4rem\] { border-radius: var(--f-r-md) !important; }
.tomsa-contact-button, .tomsa-faq-call-v31, .tomsa-map-link, main#main-content a.rounded-full { border-radius: 999px !important; box-shadow: none !important; }
.tomsa-contact-button { background: var(--f-red); }
.tomsa-contact-badge-icon { border-radius: 14px !important; }
.tomsa-contact-card-primary .tomsa-contact-badge-icon { background: var(--f-red); }
main#main-content .bg-red-600.h-14 { background: var(--f-blue) !important; border-radius: 14px !important; box-shadow: none !important; }
main#main-content h2.tomsa-contact-title { overflow-wrap: anywhere; }
.tomsa-faq-help-v31 { background: var(--f-navy); }
.tomsa-faq-item-v31[open] { border-color: #c7d6ea; }

/* ---------- Responzívnosť ---------- */

@media (max-width: 960px) {
  .f-hero-grid, .f-why, .f-tests, .f-contact { grid-template-columns: 1fr; }
  .f-hero-grid { padding: 2.25rem 1.5rem 1.75rem; }
  .f-groups { padding: 1.25rem 1.5rem 1.75rem; }
  .f-photo { min-height: 220px; }
}
@media (max-width: 560px) {
  :root { --f-r: 22px; }
  .f-top { padding-top: 1rem; }
  .f-hero-grid { padding: 1.75rem 1.1rem 1.5rem; }
  .f-groups { padding: 1.1rem 1.1rem 1.4rem; }
  .f-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .f-btn { width: 100%; }
  .f-why-copy, .f-test, .f-contact, .f-pagehero { padding: 1.4rem; }
  .f-contact-phone { font-size: 2.1rem; }
}
@media (prefers-reduced-motion: reduce) { .f-btn, .f-quick a { transition: none; } }

/* =========================================================
   V35 – prístupnosť (WCAG 2.1 / 2.2 AA)
   ========================================================= */

/* Odkaz „Preskočiť na obsah“ – viditeľný len pri ovládaní klávesnicou */
.tomsa-skip-link { position: fixed; left: 12px; top: -100px; z-index: 1000; padding: 12px 18px; border-radius: 12px; background: var(--f-navy); color: #fff !important; font-weight: 700; text-decoration: none !important; }
.tomsa-skip-link:focus { top: calc(12px + env(safe-area-inset-top, 0px)); outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px var(--f-navy); }

/* Výrazný obrys pri ovládaní klávesnicou (kontrast min. 3:1) */
.tomsa-public :focus-visible { outline: 3px solid var(--f-blue) !important; outline-offset: 2px !important; }
.tomsa-public .tomsa-final-topbar :focus-visible,
.tomsa-public footer :focus-visible,
.tomsa-public .f-contact :focus-visible,
.tomsa-public .f-test-dark :focus-visible,
.tomsa-public .tomsa-faq-help-v31 :focus-visible,
.tomsa-public .tomsa-map-frame-dark :focus-visible { outline-color: #fff !important; }
.tomsa-public header .tomsa-final-apply a:focus-visible { outline-color: var(--f-navy) !important; }
.tomsa-public main[tabindex="-1"]:focus, .tomsa-public main[tabindex="-1"]:focus-visible { outline: none !important; }

/* Minimálna veľkosť klikateľnej plochy 24 × 24 px */
.tomsa-topbar-inner a { min-height: 28px; padding: 2px 0; }
.tomsa-footer-v31-contacts a, .tomsa-footer-v31-links a, .tomsa-footer-v31-bottom a, .tomsa-footer-v31-brand p a { display: inline-flex; align-items: center; min-height: 28px; }
.tomsa-faq-answer-v31 a { display: inline-flex; align-items: center; min-height: 28px; }
.tomsa-faq-mail-v31 { min-height: 28px; display: flex !important; align-items: center; justify-content: center; }
.tomsa-public input[type="checkbox"] { width: 22px; height: 22px; flex: 0 0 auto; accent-color: var(--f-red); }

/* Rešpektovanie nastavenia „obmedziť animácie“ */
@media (prefers-reduced-motion: reduce) {
  .tomsa-public *, .tomsa-public *::before, .tomsa-public *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
  .tomsa-public [class*="hover:-translate-y"]:hover { transform: none !important; }
}
