/* ============================================
   ZPortal — VVS Portál
   Design: GOV.UK-style, square corners, high contrast
   Font: Source Sans 3
   Colors: #1D70B8 / #175B96 / #14507A / #0B3D6E
   ============================================ */

/* --- Global font + size override --- */
body,
.base-text,
.base-heading,
h1, h2, h3, h4, h5, h6,
.heading,
p, li, td, th, a, span, div,
.form-control,
.btn,
input, select, textarea {
    font-family: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

body {
    font-size: 15px !important;
    line-height: 1.5 !important;
}

.base-text, p, li {
    font-size: 15px !important;
    line-height: 1.5 !important;
}

/* ============================================
   GLOBAL MODERN LAYOUT
   ============================================ */

/* --- Master page container — consistent padding everywhere --- */
#site > #site-content,
#site > main {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
}

/* Header inner container — same max-width/padding as content */
#site-header > .container,
#site-header > .container-fluid,
header#site-header > .container,
header#site-header > .container-fluid {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
}

/* Nav inner container — aligned with content */
.zportal-main-nav > .container,
.zportal-main-nav > .container-fluid,
.zportal-subnav > .container,
.zportal-subnav > .container-fluid {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
}

/* Footer also gets the same max-width */
#site-footer > div:first-child {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
}

/* --- Modern border-radius on cards and panels --- */
.slick-slide .inner,
.usn_cmp_pods .inner {
    border-radius: 8px !important;
    overflow: visible;
}

/* Zaoblené rohy na celej tmavej sekcii "Zopár faktov" */
.usn_cmp_pods.c3-bg {
    border-radius: 12px !important;
    overflow: hidden;
}

/* Vycentrovanie nadpisu "Zopár faktov" */
.usn_cmp_pods.c3-bg .component-introduction {
    justify-content: center !important;
    text-align: center !important;
}

/* Zmenšenie čísel v podoch oproti nadpisu sekcie */
.usn_cmp_pods.c3-bg .slick-slide p.heading.lg {
    font-size: 24px !important;
}

/* Tables get subtle rounded corners */
.table-container .data-table,
.table-responsive .table {
    border-radius: 6px !important;
    overflow: hidden;
}

/* Pagination buttons rounded */
nav[aria-label="Stránkovanie"] a {
    border-radius: 4px !important;
}

/* Modal rounded corners */
.modal-content.zp-detail-modal {
    border-radius: 8px !important;
    overflow: hidden;
}

/* Footer headings — modern underline */
.zportal-footer-heading {
    border-bottom-width: 3px !important;
}

/* --- Subtle shadows for depth --- */
.table-container .data-table,
.table-responsive .table {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.modal-content.zp-detail-modal {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15) !important;
}

/* --- Smooth transitions globally --- */
a, button, .btn {
    transition: all 0.15s ease !important;
}

/* --- Better page background --- */
#site {
    background: #F5F6F8 !important;
}

/* Content sections on light bg — only base (white) sections go transparent */
#site-content > section.content.base-bg,
#site-content > .content.component.base-bg {
    background: transparent !important;
}

/* Restore colored section backgrounds — hero banner */
#site-content > section.content.c2-bg,
#site-content > .content.component.c2-bg {
    background: #4A6FA5 !important;
}

/* Stats / facts section — dark blue */
#site-content > section.content.c3-bg,
#site-content > .content.component.c3-bg {
    background: #1A3C5E !important;
}

/* Carousel cards section — light gray */
#site-content > section.content.c4-bg,
#site-content > .content.component.c4-bg {
    background: #F0F2F5 !important;
}

/* Homepage carousel cards — white with shadow on hover */
.usn_cmp_pods.c4-bg .slick-slide .inner {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06) !important;
}

.usn_cmp_pods.c4-bg .slick-slide .inner:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12) !important;
}

/* --- Tighter content section spacing --- */
#site-content > section.content:first-of-type,
#site-content > .content.component:first-of-type {
    padding-top: 0.75rem !important;
}

/* ============================================
   MAIN NAVIGATION
   ============================================ */

.zportal-header-top {
    padding: 0.5rem 0;
}

/* Nav bar — standalone element between header and content */
.zportal-main-nav {
    background: #14507A;
    padding: 0;
    position: relative;
    z-index: 100;
}

.zportal-nav-list {
    list-style: none;
    margin: 0 -0.75rem;
    padding: 0;
    display: flex;
    gap: 0;
}

.zportal-nav-list li a {
    display: block;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    padding: 0.6rem 0.75rem;
    font-size: 0.9rem;
    font-weight: 600;
    transition: background 0.1s, color 0.1s;
    border-bottom: 3px solid transparent;
}

.zportal-nav-list li a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.zportal-nav-list li.active a {
    color: #fff;
    border-bottom-color: #fff;
}

/* Secondary navigation — sub-pages of the active section (two-tier menu) */
.zportal-subnav {
    background: #fff;
    border-bottom: 1px solid #e3e8ee;
}

.zportal-subnav-list {
    list-style: none;
    margin: 0;
    padding: 0.4rem 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 2.5rem;
}

.zportal-subnav-list li a {
    display: block;
    color: #14507A;
    text-decoration: none;
    padding: 0.45rem 0;
    min-width: 200px;
    font-size: 0.92rem;
    font-weight: 600;
    border-bottom: 2px solid #c9d4de;
    transition: color 0.1s, border-color 0.1s;
}

.zportal-subnav-list li a:hover,
.zportal-subnav-list li.active a {
    color: #1d70b8;
    border-bottom-color: #1d70b8;
}

/* Burger menu */
.zportal-burger {
    background: none;
    border: none;
    width: 36px;
    height: 36px;
    padding: 6px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-shrink: 0;
    order: 10;
}

.zportal-burger span {
    display: block;
    height: 3px;
    background: #fff;
    transition: transform 0.2s;
}

/* ============================================
   FOOTER
   ============================================ */

.zportal-footer {
    padding-top: 0 !important;
    padding-bottom: 1.5rem !important;
}

.zportal-footer > div:first-child {
    padding-top: 1rem !important;
}

.zportal-footer-content {
    padding: 1.25rem 0 1rem;
    border-bottom: 1px solid #DEE2E6;
}

.zportal-footer-heading {
    color: #0B0C0C;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #1D70B8;
}

.zportal-footer-links {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

.zportal-footer-links li {
    margin-bottom: 0.35rem;
}

.zportal-footer-links a {
    color: #1D70B8 !important;
    text-decoration: none;
    font-size: 0.85rem;
    transition: color 0.1s;
}

.zportal-footer-links a:hover {
    color: #175B96 !important;
    text-decoration: underline;
}

/* Mini-mapa: sekcie tučné, podstránky odsadené s bočnou čiarou */
.zportal-footer-nav .zportal-footer-section {
    margin-bottom: 0.6rem;
}

.zportal-footer-nav .zportal-footer-section > a {
    color: #0B0C0C !important;
    font-weight: 700;
}

.zportal-footer-nav .zportal-footer-section > a:hover {
    color: #1D70B8 !important;
}

.zportal-footer-nav .zportal-footer-section > ul {
    list-style: none;
    margin: 0.3rem 0 0;
    padding: 0 0 0 0.75rem;
    border-left: 2px solid #DEE2E6;
}

.zportal-footer-nav .zportal-footer-section > ul li {
    margin-bottom: 0.2rem;
}

.zportal-footer-contact {
    color: #505A5F;
    font-size: 0.85rem;
    font-style: normal;
    line-height: 1.6;
}

.zportal-footer-contact strong {
    color: #0B0C0C;
}

.zportal-footer-contact a {
    color: #1D70B8 !important;
    text-decoration: none;
}

.zportal-footer-contact a:hover {
    color: #175B96 !important;
    text-decoration: underline;
}

.zportal-footer-bottom {
    padding: 0.5rem 0;
}

.zportal-footer-bottom .footer-navigation ul {
    margin: 0;
    padding: 0;
}

.zportal-footer-bottom .footer-navigation li {
    font-size: 0.8rem;
    color: #626A6E;
}

/* --- Header search bar --- */
#site-header .zportal-header-top {
    flex-wrap: nowrap;
    column-gap: 1rem;
    margin: 0 !important;
    justify-content: flex-start !important;
    --bs-gutter-x: 0 !important;
}

/* Reset Bootstrap .row > * overrides for header children */
#site-header .zportal-header-top > * {
    width: auto !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#site-header #logo {
    flex: 0 0 auto !important;
    order: -1 !important;
}

#site-header .zportal-header-search {
    flex: 1 1 auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: flex-end !important;
}

.zportal-header-search .zportal-search-form {
    width: 360px;
    max-width: 100%;
}

.zportal-search-form .input-group {
    border-radius: 6px !important;
    overflow: hidden;
    border: none !important;
    display: flex !important;
    align-items: stretch;
    height: 40px !important;
    background: #fff;
}

.zportal-search-form .input-group > * {
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    box-shadow: none !important;
}

.zportal-search-form .form-control {
    background: #fff !important;
    color: #0B0C0C !important;
    padding: 0 0.75rem !important;
    font-size: 0.875rem;
    line-height: 40px;
    outline: none;
}

.zportal-search-form .form-control::placeholder {
    color: #626A6E;
    font-size: 0.825rem;
}

.zportal-search-form .form-control:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
    z-index: 1;
}

.zportal-search-form .btn {
    background: #fff !important;
    color: #1D70B8 !important;
    padding: 0 0.65rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-left: 1px solid #DEE2E6 !important;
    transition: background 0.1s, color 0.1s;
    cursor: pointer;
}

.zportal-search-form .btn:hover {
    background: #F3F2F1 !important;
    color: #0B0C0C !important;
}

.zportal-search-form .btn:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
}

.zportal-search-form .btn .icon {
    font-size: 1.15rem;
    line-height: 1;
}

/* --- Hide the uSkinned SearchLinks pod --- */
.usn_pod_searchlinks {
    display: none !important;
}

/* ============================================
   DETAIL MODAL
   ============================================ */

.zp-detail-link {
    color: #1D70B8 !important;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.zp-detail-link:hover {
    color: #175B96 !important;
}

/* Modal container — inherits VVS design language */
.modal-content.zp-detail-modal {
    border-radius: 8px !important;
    border: none !important;
    overflow: hidden;
    font-family: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

.zp-detail-modal .modal-header {
    background: #1D70B8;
    color: #fff;
    border-radius: 0;
    padding: 0.85rem 1.25rem;
    border-bottom: none;
}

.zp-detail-modal .modal-title {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.zp-detail-modal .modal-header .btn-close {
    filter: invert(1);
    opacity: 0.85;
}

.zp-detail-modal .modal-header .btn-close:hover {
    opacity: 1;
}

.zp-detail-modal .modal-body {
    padding: 0;
}

.zp-detail-table {
    margin: 0 !important;
    font-size: 0.9rem;
}

.zp-detail-table th {
    background: #F3F2F1;
    font-weight: 700;
    color: #0B0C0C;
    width: 200px;
    white-space: nowrap;
    padding: 0.6rem 1.1rem !important;
    border-color: #DEE2E6;
    vertical-align: top;
}

.zp-detail-table td {
    padding: 0.6rem 1.1rem !important;
    border-color: #DEE2E6;
    color: #0B0C0C;
    word-break: break-word;
}

.zp-detail-modal .modal-footer {
    border-radius: 0;
    padding: 0.65rem 1.1rem;
    gap: 0.5rem;
    border-top: 1px solid #DEE2E6;
}

.zp-detail-modal .modal-footer .btn-primary {
    background: #1D70B8;
    border-color: #1D70B8;
    border-radius: 4px;
    font-weight: 700;
    padding: 0.4rem 1rem;
    font-size: 0.9rem;
}

.zp-detail-modal .modal-footer .btn-primary:hover {
    background: #175B96;
    border-color: #175B96;
}

.zp-detail-modal .modal-footer .btn-primary:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
}

.zp-detail-modal .modal-footer .btn-secondary {
    border-radius: 4px;
    background: #F3F2F1;
    border: 2px solid #0B0C0C;
    color: #0B0C0C;
    font-weight: 700;
    padding: 0.4rem 1rem;
    font-size: 0.9rem;
}

.zp-detail-modal .modal-footer .btn-secondary:hover {
    background: #DEE2E6;
}

.zp-detail-modal .modal-footer .btn-secondary:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
}

/* ============================================
   LAYOUT & UX IMPROVEMENTS
   ============================================ */

/* --- Fix 1: Tighten banner (empty space from hidden SearchLinks) --- */
.usn_cmp_splitcomponent.c2-bg {
    padding-bottom: 0.75rem !important;
}

.usn_cmp_splitcomponent.c2-bg .component-main {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* --- Fix 2: Prominent carousel cards --- */
.usn_cmp_pods.c4-bg {
    padding-top: 1rem !important;
    padding-bottom: 1.25rem !important;
}

.usn_cmp_pods.c4-bg h2 {
    font-size: 1.5rem !important;
    margin-bottom: 0.75rem !important;
}

/* Prevent slick from clipping hover effects */
.usn_cmp_pods.c4-bg .slick-list {
    overflow: visible !important;
    padding-top: 6px !important;
}

.usn_cmp_pods.c4-bg .slick-slide {
    overflow: visible !important;
}

.usn_cmp_pods.c4-bg .slick-slide .inner {
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    border: 2px solid transparent !important;
}

.usn_cmp_pods.c4-bg .slick-slide .inner:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-color: #1D70B8 !important;
}

.usn_cmp_pods.c4-bg .slick-slide a {
    text-decoration: none !important;
}

.usn_cmp_pods.c4-bg .slick-slide .heading,
.usn_cmp_pods.c4-bg .slick-slide p.heading {
    font-weight: 700 !important;
    color: #1D70B8 !important;
}


/* --- Fix 4: Tighter section spacing --- */
#site-content > .content.component.base-bg {
    margin-bottom: 0 !important;
}

/* --- Fix 5: Harmonize stat tiles to VVS blue palette --- */
.usn_cmp_pods.c3-bg {
    background: #1A3C5E !important;
}

.usn_cmp_pods.c3-bg .slick-slide .inner {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #fff !important;
}

.usn_cmp_pods.c3-bg .slick-slide .heading,
.usn_cmp_pods.c3-bg .slick-slide .info .heading,
.usn_cmp_pods.c3-bg .slick-slide p {
    color: #fff !important;
}

/* ============================================
   MODERNIZÁCIA — DATA PAGES
   ============================================ */

/* --- Banner tighter --- */
.usn_cmp_splitcomponent.c2-bg {
    padding-top: 0.75rem !important;
}

/* --- Data page headings — align with table container --- */
#site-content h1,
#site-content h1.base-heading {
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    margin-bottom: 0.5rem !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Heading section — vertically centered between nav and content */
#site-content > section.content.base-bg:first-of-type {
    background: transparent !important;
    padding: 1.5rem 0 0.5rem !important;
}

/* Remove inner container padding (parent handles it) */
#site-content > section.content.base-bg .container,
#site-content > section.content.base-bg .container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
}

/* Table container — full width within parent padding */
#site-content > .table-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* --- Reduce section padding globally (only base/white sections) --- */
#site-content > section.content.base-bg,
#site-content > .content.component.base-bg {
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
}

/* --- Pagination area compact --- */
nav[aria-label="Stránkovanie"],
nav[aria-label="Stránkovanie"] + div,
nav[aria-label="Stránkovanie"] ~ div {
    margin-top: 0.5rem !important;
    margin-bottom: 0.25rem !important;
    padding-top: 0.5rem !important;
    font-size: 0.8rem;
}

nav[aria-label="Stránkovanie"] ~ .badge,
nav[aria-label="Stránkovanie"] ~ span {
    font-size: 0.8rem;
}

/* --- Table borders — unified light gray --- */
.table-container .data-table,
.table-responsive .table {
    border-collapse: collapse !important;
    border: 1px solid #DEE2E6 !important;
}

.table-container .data-table th,
.table-container .data-table td,
.table-responsive .table th,
.table-responsive .table td {
    border: 1px solid #DEE2E6 !important;
}

.table-container .data-table thead th,
.table-responsive .table thead th {
    background: #F3F2F1 !important;
    color: #0B0C0C !important;
    font-weight: 700 !important;
    border-bottom: 2px solid #B1B4B6 !important;
}

/* --- Table modernization — zebra striping, compact font --- */
.table-container .data-table tbody tr:nth-child(even),
.table-responsive .table tbody tr:nth-child(even) {
    background-color: #F8F9FA;
}

.table-container .data-table tbody tr:hover,
.table-responsive .table tbody tr:hover {
    background-color: #E8F0FE !important;
}

.table-container .data-table td,
.table-container .data-table th,
.table-responsive .table td,
.table-responsive .table th {
    padding: 0.3rem 0.4rem !important;
    font-size: 13px !important;
    vertical-align: middle;
    line-height: 1.3 !important;
}

.table-container .data-table thead th,
.table-responsive .table thead th {
    font-size: 12px !important;
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
}

/* --- "Stiahnuť" link styling --- */
.table-container .data-table a[href*="/file"],
.table-responsive .table a[href*="/file"] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: #1D70B8;
    font-weight: 600;
    text-decoration: none;
    font-size: 0.8rem;
}

.table-container .data-table a[href*="/file"]:hover,
.table-responsive .table a[href*="/file"]:hover {
    text-decoration: underline;
}

.table-container .data-table a[href*="/file"]::before,
.table-responsive .table a[href*="/file"]::before {
    content: '⬇';
    font-size: 0.7rem;
}

/* --- Section spacing tighter (base sections only) --- */
#site-content > .content.component.base-bg {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
}

/* --- Pagination styling — modern compact --- */
nav[aria-label="Stránkovanie"] {
    margin-top: 0.75rem !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0 !important;
    border-top: 1px solid #DEE2E6;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 13px !important;
}

nav[aria-label="Stránkovanie"] a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 0.4rem;
    color: #1D70B8;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    border: 1px solid #DEE2E6;
    background: #fff;
    transition: all 0.1s;
}

nav[aria-label="Stránkovanie"] a:hover {
    background: #1D70B8;
    color: #fff;
    border-color: #1D70B8;
}

nav[aria-label="Stránkovanie"] > span,
nav[aria-label="Stránkovanie"] > div {
    font-size: 12px;
    color: #626A6E;
    margin-left: 0.5rem;
}

/* Page size selector compact */
nav[aria-label="Stránkovanie"] + div,
nav[aria-label="Stránkovanie"] ~ div {
    font-size: 12px !important;
    margin-top: 0.35rem !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    color: #626A6E;
}

nav[aria-label="Stránkovanie"] ~ div a {
    font-size: 12px;
    color: #1D70B8;
    font-weight: 600;
}

/* Count badge compact */
nav[aria-label="Stránkovanie"] ~ .badge,
nav[aria-label="Stránkovanie"] ~ span[class] {
    font-size: 12px !important;
    padding: 0.2em 0.5em !important;
}

/* ============================================
   SEARCH PAGE REDESIGN
   ============================================ */

/* --- Search page container — full width (remove inner .container constraint) --- */
.content.component:has(.zportal-search-results) .container .content-col {
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

.content.component:has(.zportal-search-results) .container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* --- Hide uSkinned "No results" message and page title on search page --- */
.content.component:has(.zportal-search-results) .content-col > .row.component-introduction,
.content.component:has(.zportal-search-results) .content-col > p:first-of-type {
    display: none !important;
}

/* Hide the "Search" h1 page title — search form is self-explanatory */
.content.component:has(.zportal-search-results) h1 {
    display: none !important;
}

/* Reduce top spacing on search page (compensate for hidden h1) */
.content.component:has(.zportal-search-results) {
    padding-top: 0.5rem !important;
    padding-bottom: 1rem !important;
    margin-top: -1rem !important;
}

.content.component:has(.zportal-search-results) .container .row {
    margin-top: 0 !important;
}

/* Collapse the PageTitle wrapper spacing */
.content.component:has(.zportal-search-results) .container > .row:first-child,
.content.component:has(.zportal-search-results) .container > h1,
.content.component:has(.zportal-search-results) .container > .component-header {
    margin: 0 !important;
    padding: 0 !important;
}

/* --- On-page search form — GOV.UK style (prominent, centered) --- */
.content.component:has(.zportal-search-results) .site-search-form {
    max-width: 680px;
    margin: 0 auto 1.5rem;
}

.content.component:has(.zportal-search-results) .site-search-form fieldset {
    display: flex !important;
    align-items: stretch;
    border: 2px solid #0B0C0C;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

.content.component:has(.zportal-search-results) .site-search-form .form-group {
    flex: 1;
    margin: 0 !important;
    padding: 0 !important;
}

.content.component:has(.zportal-search-results) .site-search-form .form-control {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 1rem !important;
    font-size: 1rem !important;
    color: #0B0C0C !important;
    background: #fff !important;
    outline: none;
}

.content.component:has(.zportal-search-results) .site-search-form .form-control:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
    z-index: 1;
}

.content.component:has(.zportal-search-results) .site-search-form .form-control::placeholder {
    color: #626A6E;
    font-size: 0.95rem;
}

.content.component:has(.zportal-search-results) .site-search-form .btn-search {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    background: #1D70B8 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer;
    transition: background 0.1s;
}

.content.component:has(.zportal-search-results) .site-search-form .btn-search:hover {
    background: #175B96 !important;
}

.content.component:has(.zportal-search-results) .site-search-form .btn-search:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
}

.content.component:has(.zportal-search-results) .site-search-form .btn-search .icon {
    font-size: 1.25rem !important;
    color: #fff !important;
}

.content.component:has(.zportal-search-results) .site-search-form .btn-search span {
    display: none;
}

/* Hide the expand-search toggle on search page */
.content.component:has(.zportal-search-results) .site-search-form .expand-search {
    display: none !important;
}

/* --- Database results section — redesigned (zp-* card system) --- */
.zportal-search-results {
    --zp-blue: #1D70B8;
    --zp-blue-dark: #175B96;
    --zp-tint: #EEF5FB;
    --zp-tint-2: #F7FAFD;
    --zp-ink: #0B0C0C;
    --zp-muted: #626A6E;
    --zp-line: #DEE2E6;
    --zp-line-soft: #EEF2F6;
    margin-top: 1.5rem;
}

/* Results summary bar + category jump-chips */
.zportal-search-results .zp-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin: 0 0 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--zp-line);
}

.zportal-search-results .zp-summary-lead {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--zp-ink);
    margin: 0;
}

.zportal-search-results .zp-summary-lead em {
    font-style: normal;
    color: var(--zp-blue);
}

.zportal-search-results .zp-chips {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
    flex-wrap: wrap;
}

.zportal-search-results .zp-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #fff;
    border: 1px solid var(--zp-line);
    border-radius: 999px;
    padding: 0.4rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--zp-ink);
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, transform 0.15s;
}

.zportal-search-results .zp-chip:hover {
    border-color: var(--zp-blue);
    color: var(--zp-blue);
    transform: translateY(-1px);
}

.zportal-search-results .zp-chip:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
}

.zportal-search-results .zp-chip b {
    background: var(--zp-tint);
    color: var(--zp-blue);
    border-radius: 999px;
    padding: 0.05em 0.55em;
    font-size: 0.8rem;
    font-weight: 700;
}

/* Category card */
/* Flatšie/minimalistické kategória-karty — bez ťažkého tieňa, gradientu a hrubého prúžku,
   bližšie k čistému vzhľadu zverejňovacích stránok. */
.zportal-search-results .zp-cat {
    background: #fff;
    border: 1px solid var(--zp-line);
    border-radius: 6px;
    box-shadow: none;
    overflow: hidden;
    margin-bottom: 1.25rem;
    scroll-margin-top: 1.5rem;
}

.zportal-search-results .zp-cat-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 0.75rem;
    background: #fff;
    border-bottom: 1px solid var(--zp-line);
}

.zportal-search-results .zp-cat-ic {
    color: var(--zp-blue);
    display: flex;
    align-items: center;
    flex: none;
}

.zportal-search-results .zp-cat-ic i {
    font-size: 1.05rem;
}

.zportal-search-results .zp-cat-head h3 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--zp-ink);
}

.zportal-search-results .zp-cat-count {
    margin-left: auto;
    background: var(--zp-blue);
    color: #fff;
    border-radius: 999px;
    padding: 0.2em 0.8em;
    font-size: 0.8rem;
    font-weight: 500;
}

/* Table */
.zportal-search-results .zp-table-scroll {
    overflow-x: auto;
}

/* Grid v search výsledkoch = rovnaký vzhľad ako kanonické zverejňovacie gridy (.data-table):
   svetlý header, bunkové orámovanie, zebra, modrý hover, kompaktný padding. */
.zportal-search-results .zp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    margin: 0;
    border: 1px solid var(--zp-line);
}

.zportal-search-results .zp-table thead th {
    text-align: left;
    font-size: 12px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--zp-ink);
    background: #F3F2F1;
    font-weight: 700;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--zp-line);
    border-bottom: 2px solid #B1B4B6;
    white-space: nowrap;
}

.zportal-search-results .zp-table thead th.zp-r {
    text-align: right;
}

.zportal-search-results .zp-table tbody td {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--zp-line);
    vertical-align: middle;
    color: var(--zp-ink);
    font-size: 13px;
    line-height: 1.35;
}

.zportal-search-results .zp-table tbody tr:nth-child(even) {
    background-color: #F8F9FA;
}

.zportal-search-results .zp-table tbody tr:hover {
    background-color: #E8F0FE;
}

/* Klikateľné zoraďovanie stĺpcov (sort šípky ako pri zverejňovacích .data-table gridoch) */
.zportal-search-results .zp-table thead th.zp-sortable {
    cursor: pointer;
    user-select: none;
}

.zportal-search-results .zp-table thead th.zp-sortable:hover {
    background: #ECEBEA;
}

.zportal-search-results .zp-table thead th .zp-sort__arrow {
    font-size: 0.8em;
    opacity: 0.35;
    margin-left: 0.15em;
}

.zportal-search-results .zp-table thead th.zp-sort--active .zp-sort__arrow {
    opacity: 1;
}

/* Skryť modrý CTA-strip "hero" (usn_cmp_ctastrip c2-bg) nad vyhľadávaním — pôsobí nepekne a
   zverejňovacie stránky takýto banner nemajú. Scopované cez :has len na search stránku
   (CTA-strip je súrodenec PRED sekciou .zportal-search-page v <main>). */
.usn_cmp_ctastrip:has(~ .zportal-search-page) {
    display: none;
}

/* Reference link (contract/invoice/order number) */
.zportal-search-results .zp-ref {
    color: var(--zp-blue);
    font-weight: 700;
    text-decoration: none;
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    font-size: 0.85rem;
    white-space: nowrap;
}

.zportal-search-results .zp-ref:hover {
    text-decoration: underline;
    color: var(--zp-blue-dark);
}

.zportal-search-results .zp-ref:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
    background: #FFDD00;
    color: var(--zp-ink);
    text-decoration: none;
}

/* Monospace plain numbers (e.g. linked contract no.) */
.zportal-search-results .zp-num {
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    font-size: 0.82rem;
    white-space: nowrap;
    color: var(--zp-ink);
}

/* Subject — clamp long boilerplate to 2 lines */
.zportal-search-results .zp-subj {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-width: 560px;
}

.zportal-search-results .zp-supplier {
    white-space: nowrap;
}

.zportal-search-results .zp-amount {
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    color: #0F7A4D;
    font-weight: 500;
    text-align: right;
    white-space: nowrap;
}

/* Search-term highlight */
.zportal-search-results mark {
    background: #FFF3BF;
    color: inherit;
    padding: 0 2px;
    border-radius: 3px;
}

/* Card footer "view all" link */
.zportal-search-results .zp-cat-foot {
    padding: 0.85rem 1.15rem;
    border-top: 1px solid var(--zp-line-soft);
    background: var(--zp-tint-2);
}

.zportal-search-results .zp-cat-foot a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--zp-blue);
    font-weight: 700;
    text-decoration: none;
    font-size: 0.9rem;
}

.zportal-search-results .zp-cat-foot a:hover {
    gap: 0.7rem;
    color: var(--zp-blue-dark);
}

.zportal-search-results .zp-cat-foot a:focus {
    outline: 3px solid #FFDD00;
    outline-offset: 0;
}

/* Empty state */
.zportal-search-results .zp-empty {
    text-align: center;
    padding: 3.5rem 1.5rem;
    background: var(--zp-tint-2);
    border: 1px solid var(--zp-line);
    border-radius: 10px;
}

.zportal-search-results .zp-empty-ic {
    font-size: 2.75rem;
    color: #C5CFD9;
    display: block;
    margin-bottom: 0.5rem;
}

.zportal-search-results .zp-empty-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--zp-ink);
    margin: 0 0 0.4rem;
}

.zportal-search-results .zp-empty-text {
    color: var(--zp-muted);
    max-width: 460px;
    margin: 0 auto;
    font-size: 0.95rem;
}

/* Responsive — tables collapse to stacked cards on small screens */
@media (max-width: 720px) {
    .zportal-search-results .zp-table thead {
        display: none;
    }

    .zportal-search-results .zp-table tbody tr {
        display: block;
        padding: 0.5rem 0;
        border-bottom: 1px solid var(--zp-line);
    }

    .zportal-search-results .zp-table tbody td {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        padding: 0.4rem 1.15rem;
        border: 0;
    }

    .zportal-search-results .zp-table tbody td::before {
        content: attr(data-label);
        font-size: 0.7rem;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--zp-muted);
        font-weight: 700;
        flex: none;
    }

    .zportal-search-results .zp-subj {
        max-width: none;
        text-align: right;
    }
}

/* ============================================
   ACCORDION
   ============================================ */

/* Collapsed header — light gray border, rounded */
.usn_cmp_accordiontab .nav-link.nav-button-link {
    border-color: #c8d3e0 !important;
    border-radius: 4px !important;
}

/* Expanded header — merge seamlessly with content panel below */
.usn_cmp_accordiontab .nav-link.nav-button-link:not(.collapsed) {
    border-bottom-color: transparent !important;
    border-radius: 4px 4px 0 0 !important;
}

/* Content panel — continue the card border from the header */
.usn_cmp_accordiontab .info.repeatable-content {
    border: 2px solid #c8d3e0 !important;
    border-top: none !important;
    border-radius: 0 0 4px 4px !important;
    padding: 16px !important;
}

/* --- Responsive (large screens: nav always visible, burger hidden) --- */
@media (min-width: 992px) {
    .zportal-burger {
        display: none !important;
    }
}

/* --- Responsive (mobile) --- */
@media (max-width: 991px) {
    #site-header .zportal-header-top {
        flex-wrap: wrap;
    }

    .zportal-header-search {
        max-width: 100%;
        width: 100%;
        flex-basis: 100%;
        margin-left: 0;
        padding: 0.25rem 0 0.5rem;
        order: 5;
    }

    .zportal-main-nav {
        display: none;
        border-top: none;
    }

    .zportal-main-nav.zp-nav-open {
        display: block;
    }

    .zportal-nav-list {
        flex-direction: column;
    }

    .zportal-nav-list li a {
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        border-left: 3px solid transparent;
        padding: 0.65rem 1rem;
    }

    .zportal-nav-list li.active a {
        border-bottom-color: rgba(255, 255, 255, 0.1);
        border-left-color: #fff;
    }

    /* Heading section — slightly less top padding on mobile */
    #site-content > section.content.base-bg:first-of-type {
        padding: 1rem 0 0.35rem !important;
    }

}

/* ============================================================
   Header background — match V13 VVS blue (#1d70b8).
   The uSkinned V17 demo shipped a black header
   (generated --header-bg-color1: 0,0,0). The nav bar
   (.zportal-main-nav) is already #14507a, so this restores
   V13's two-tone header (light-blue bar + darker-blue nav).
   !important beats every generated header-bg-solid rule
   (none use !important) across all scroll/transparent states.
   ============================================================ */
header#site-header.header-bg-solid {
    background: #1d70b8 !important;
}

/* ============================================================
   "Zopár faktov" stats pods — the V17 demo shipped this with a
   base (white) colour scheme (=> black base-heading text) but a
   c3 dark-blue background forced via customClasses, so the text
   was black-on-dark-blue (unreadable). Force white text and
   restore V13's subtle cards. Scoped to c3-bg pods only.
   ============================================================ */
section.usn_cmp_pods.c3-bg-solid .component-introduction .heading,
section.usn_cmp_pods.c3-bg-solid .item .heading,
section.usn_cmp_pods.c3-bg-solid .item .text,
section.usn_cmp_pods.c3-bg-solid .item p {
    color: #ffffff !important;
}
section.usn_cmp_pods.c3-bg-solid .listing-pods .item .inner {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    padding: 1.75rem 1rem;
    height: 100%;
}

/* ============================================================
   Home pods spacing/centering polish.
   1) Top 3 cards (Povinné zverejňovanie / Certifikácia / Kontakty)
      render as items-4 with only 3 items => left-aligned. Centre
      the row (V13 centres them with equal side gaps).
   2) "Zopár faktov" stats: the cards sat flush against the dark
      panel edges — add horizontal padding so they're inset.
   ============================================================ */
section.usn_cmp_pods.icon-images .component-main.listing {
    justify-content: center;
}
#site-content section.usn_cmp_pods.c3-bg-solid .component-inner > .container {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
}

/* ============================================================
   Breadcrumb: the root item ("Domov") shouldn't have a leading
   separator arrow. Each .breadcrumb-item renders an <i class="icon
   before"> arrow before its text; hide it on the first item so the
   "‹" only appears BETWEEN items (Domov ‹ Page), not before Domov.
   ============================================================ */
.breadcrumb .breadcrumb-item:first-child .icon.before {
    display: none;
}

/* ============================================================
   Sortable table headers (serverové zoraďovanie stĺpcov).
   Klik na hlavičku → ?sort=kľúč&dir=asc|desc (reload, zoradí celý dataset).
   ============================================================ */
.data-table thead th a.zp-sort {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: .35em;
    white-space: nowrap;
}

.data-table thead th a.zp-sort:hover {
    text-decoration: underline;
}

.data-table thead th .zp-sort__arrow {
    font-size: .8em;
    opacity: .3;
    line-height: 1;
}

.data-table thead th a.zp-sort--active {
    font-weight: 700;
}

.data-table thead th a.zp-sort--active .zp-sort__arrow {
    opacity: 1;
}
