@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600&family=Cormorant+Garamond:wght@600;700&family=Marcellus&display=swap');
:root {
    --page-bg: #f6f3ec;
    --panel-bg: #ffffff;
    --text: #2b241c;
    --muted: #756b61;
    --line: #ded6ca;
    --accent: #6f4e2e;
    --accent-soft: #eee3d4;
    --shadow: 0 12px 30px rgba(43, 36, 28, 0.06);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--page-bg);
    color: var(--text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
}

.page-wrap {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header {
    background: var(--panel-bg);
    border-bottom: 1px solid var(--line);
}

.site-header__inner {
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.site-logo {
    color: var(--text);
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 700;
}

.site-env {
    color: var(--muted);
    font-size: 0.9rem;
}

.main-content {
    padding: 28px 0 44px;
}

.site-footer {
    padding: 24px 0;
    color: var(--muted);
    border-top: 1px solid var(--line);
}

.state-box,
.article {
    background: var(--panel-bg);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px;
    box-shadow: var(--shadow);
}

.breadcrumb {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 0.95rem;
}

.breadcrumb a {
    color: var(--accent);
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.breadcrumb__sep {
    margin: 0 7px;
}

.article-page {
    display: grid;
    gap: 14px;
}

.article--detail {
    padding: 0;
    overflow: hidden;
}

.article-header {
    display: block;
    padding: 26px 28px;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(180deg, #fff, #fbf8f3);
}

.article-kicker {
    margin: 0 0 8px;
    color: var(--accent);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.article-title,
.article h1,
.list-page h1 {
    margin: 0 0 10px;
    font-size: clamp(1.7rem, 3vw, 2.45rem);
    line-height: 1.15;
}

.article-lead {
    max-width: 70ch;
    margin: 0;
    color: var(--muted);
    font-size: 1.04rem;
}

.article-byline {
    margin: -2px 0 14px;
    color: var(--muted);
    font-size: 0.98rem;
}

.article-byline strong {
    color: var(--text);
}

.article-meta-card {
    align-self: start;
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel-bg);
}

.article-meta-card__row {
    display: grid;
    gap: 2px;
}

.article-meta-card__label {
    color: var(--muted);
    font-size: 0.82rem;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 600;
    text-decoration: none;
}

.article-layout {
    padding: 26px 28px 30px;
}

.article-content {
    min-width: 0;
    overflow-x: auto;
}

.article-content table {
    max-width: 100%;
}

.article-sidebar {
    align-self: start;
}

.sidebar-box {
    position: sticky;
    top: 16px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fbf8f3;
    color: var(--muted);
    font-size: 0.93rem;
}

.sidebar-box h2 {
    margin: 0 0 8px;
    color: var(--text);
    font-size: 1rem;
}

.sidebar-box p {
    margin: 0;
}

.notice {
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--accent-soft);
}


.button--ghost {
    background: transparent;
    border: 1px solid rgba(111, 78, 46, 0.35);
}

.home-page {
    display: grid;
    gap: 18px;
}

.home-hero {
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(238, 227, 212, 0.95), transparent 34%),
        linear-gradient(180deg, #fff, #fbf8f3);
}

.home-hero h1 {
    margin: 0 0 10px;
    font-size: clamp(2.15rem, 6vw, 4.6rem);
    line-height: 1;
    letter-spacing: -0.04em;
}

.home-hero__lead {
    max-width: 76ch;
    margin: 0;
    color: var(--muted);
    font-size: 1.08rem;
}

.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.home-section {
    display: grid;
    gap: 16px;
}

.home-section__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}

.home-section__header h2 {
    margin: 0;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
    line-height: 1.2;
}

/* Homepage uses the same article card/image geometry as article lists. */
.article-list--home {
    grid-template-columns: 1fr;
}

.article-list--home .article-list__item {
    grid-template-columns: 132px minmax(0, 1fr);
}

.home-sections-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.home-section-card {
    display: grid;
    gap: 6px;
    min-height: 112px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fbf8f3;
    color: var(--text);
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(41, 32, 20, 0.04);
}

.home-section-card:hover {
    border-color: rgba(89, 62, 34, 0.45);
    background: #fffaf0;
}

.home-section-card__title {
    color: var(--accent);
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.25;
}

.home-section-card__meta {
    align-self: end;
    color: var(--muted);
    font-size: 0.92rem;
}

@media (max-width: 980px) {
    .home-sections-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .home-hero__lead {
        font-size: 1rem;
    }

    .article-list--home {
        grid-template-columns: 1fr;
    }

    .article-list--home .article-list__item {
        grid-template-columns: 88px minmax(0, 1fr);
    }
}

@media (max-width: 560px) {
    .home-sections-grid {
        grid-template-columns: 1fr;
    }
}

.list-page__header {
    margin-bottom: 22px;
}

.list-page__header h1 {
    margin-bottom: 0;
}

.article-list {
    display: grid;
    gap: 14px;
}

.article-list-section {
    margin-bottom: 14px;
}

.article-list-section--parents {
    padding: 12px;
    border: 1px solid rgba(126, 122, 0, 0.24);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(237, 238, 178, 0.44), rgba(255, 250, 240, 0.82));
}

.article-list--parents {
    gap: 12px;
}

.article-list__item {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fbf8f3;
    box-shadow: 0 10px 22px rgba(41, 32, 20, 0.04);
}

.article-list__item--parent {
    border-color: rgba(89, 62, 34, 0.28);
    background: #fffaf0;
}

.article-list-separator {
    height: 1px;
    margin: 20px 0;
    border: 0;
    background: linear-gradient(90deg, transparent, var(--line), transparent);
}

.article-list__thumb {
    display: block;
    overflow: hidden;
    height: 96px;
    min-height: 0;
    align-self: center;
    border-radius: 12px;
    border: 1px solid rgba(69, 52, 31, 0.16);
    background: #efe7da;
}

.article-list__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    transition: transform 0.18s ease;
}

.article-list__thumb:hover img {
    transform: scale(1.035);
}

.article-list__thumb--placeholder img {
    object-fit: cover;
}

.article-list__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.article-list__item h2 {
    margin: 0 0 7px;
    font-size: 1.18rem;
    line-height: 1.28;
}

.article-list__item h2 a {
    color: var(--accent);
    text-decoration: none;
}

.article-list__item h2 a:hover {
    text-decoration: underline;
}

.article-list__lead {
    margin: 0;
    color: var(--text);
    line-height: 1.55;
}

.article-list__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 0.9rem;
}

.article-list__meta span {
    white-space: nowrap;
}


.meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.meta-item::before {
    content: "";
    width: 0.95rem;
    height: 0.95rem;
    flex: 0 0 0.95rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 0.9;
}

.meta-item--published::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23708059' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15' rx='2.5'/%3E%3Cpath d='M7.5 3.5v4M16.5 3.5v4M3.5 9.5h17'/%3E%3C/svg%3E");
}

.meta-item--visited::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23708059' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12s3.6-6 9.5-6 9.5 6 9.5 6-3.6 6-9.5 6-9.5-6-9.5-6Z'/%3E%3Ccircle cx='12' cy='12' r='2.7'/%3E%3C/svg%3E");
}

.meta-item--updated::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23708059' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6v5h-5'/%3E%3Cpath d='M20 11a8 8 0 1 1-2.34-5.66L20 8'/%3E%3C/svg%3E");
}


.article-list__count {
    margin: -8px 0 14px;
    color: var(--muted);
    font-size: 0.92rem;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.pagination__pages {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
}

.pagination__page,
.pagination__control,
.pagination__ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 11px;
    border-radius: 999px;
    color: var(--accent);
    font-size: 0.92rem;
    text-decoration: none;
}

.pagination__page,
.pagination__control {
    border: 1px solid var(--line);
    background: #fbf8f3;
}

.pagination__page:hover,
.pagination__control:hover {
    border-color: rgba(89, 62, 34, 0.45);
    background: var(--accent-soft);
}

.pagination__page--current {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}

.pagination__control--disabled {
    color: var(--muted);
    opacity: 0.55;
}

.pagination__ellipsis {
    color: var(--muted);
}

@media (max-width: 560px) {
    .pagination {
        justify-content: stretch;
    }

    .pagination__control {
        flex: 1 1 100%;
    }

    .pagination__pages {
        width: 100%;
    }
}

@media (max-width: 720px) {
    .article-list__item {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 12px;
        padding: 12px;
    }

    .article-list__thumb {
        height: 72px;
    }

    .article-list__item h2 {
        font-size: 1.04rem;
    }

    .article-list__lead {
        font-size: 0.94rem;
    }
}

@media (max-width: 480px) {
    .article-list__item,
    .article-list--home .article-list__item {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 12px;
    }

    .article-list__thumb,
    .article-list--home .article-list__thumb {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        align-self: stretch;
    }

    .article-list__body {
        justify-content: flex-start;
    }
}

img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 900px) {
    .article-header,
    .article-layout {
        grid-template-columns: 1fr;
    }

    .article-sidebar {
        display: none;
    }
}

@media (max-width: 720px) {
    .page-wrap {
        width: min(100% - 20px, 1180px);
    }

    .site-header__inner {
        display: block;
        padding: 12px 0;
    }

    .site-env {
        display: block;
        margin-top: 4px;
    }

    .state-box {
        padding: 16px;
        border-radius: 14px;
    }

    .article-header,
    .article-layout {
        padding: 18px 16px;
    }

    .article-meta-card {
        margin-top: 4px;
    }
}

/* Legacy article compatibility
   Staré články často používajú tabuľky na rozmiestnenie obrázka vedľa textu.
   Na mobile ich preklopíme pod seba, aby text neostal v úzkom stĺpci. */
.article-content table {
    border-collapse: collapse;
}

.article-content td {
    max-width: 100%;
}

.article-content img.imageBorder,
.article-content .imageBorder {
    max-width: 100%;
    height: auto;
}

@media (max-width: 720px) {
    .article-content {
        overflow-x: visible;
    }

    .article-content table,
    .article-content tbody,
    .article-content tr,
    .article-content td {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .article-content table {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .article-content td {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .article-content img {
        display: block;
        margin: 10px auto;
    }

    .article-content p,
    .article-content div,
    .article-content td {
        overflow-wrap: break-word;
        word-break: normal;
    }
}

/* Legacy citation tooltip compatibility
   Starý web vkladal .refPopup priamo do HTML pri generovaní referencie.
   Bez pôvodného CSS sa tooltip div zobrazoval ako ďalší riadok v zozname citácií. */
.refPopup {
    position: absolute;
    visibility: hidden;
    clip: rect(0, 200px, 130px, 0);
    width: 190px;
    background-color: #ffffff;
    color: #002300;
    z-index: 10;
    border: 1px solid #002300;
    padding: 3px;
}

.article-footer-meta {
    margin: 4px 28px 28px;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.9rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.article-footer-meta span {
    white-space: nowrap;
}

@media (max-width: 720px) {
    .article-footer-meta {
        margin: 4px 16px 20px;
        display: grid;
        gap: 0.35rem;
    }

    .article-footer-meta span {
        white-space: normal;
    }
}

/* Global site layout / navigation v1.31
   Zachováva prehľadnú desktopovú logiku starého webu, ale na mobile sa skladá do jedného stĺpca. */
:root {
    --page-bg: #f8f7ef;
    --panel-bg: #fffef9;
    --text: #1f1b14;
    --muted: #70694d;
    --line: #d8d38a;
    --accent: #6d7100;
    --accent-strong: #263700;
    --accent-soft: #eeefa8;
    --nav-surface: #eef0a5;
    --nav-surface-soft: #f6f5c8;
    --nav-surface-hover: #e1e574;
    --nav-border: #8a9008;
    --nav-header: #263700;
    --sidebar-bg: var(--nav-surface);
    --sidebar-line: var(--nav-border);
    --shadow: 0 10px 24px rgba(37, 45, 0, 0.07);
}

body {
    background: var(--page-bg);
}

.page-wrap {
    width: min(1180px, calc(100% - 36px));
}

.site-header {
    padding-top: 14px;
    background: transparent;
    border-bottom: 0;
}

.site-banner {
    min-height: 160px;
    display: flex;
    align-items: end;
    justify-content: flex-start;
    gap: 18px;
    padding: 22px 26px;
    position: relative;
    overflow: hidden;
    border: 1px solid #375008;
    background:
        linear-gradient(90deg, rgba(4, 23, 5, 0.78), rgba(27, 58, 12, 0.24), rgba(6, 29, 7, 0.68)),
        var(--banner-image, linear-gradient(135deg, #172b0d 0%, #385a16 42%, #0f250c 100%));
    background-size: cover;
    background-position: center;
    color: #fff;
}

.site-banner__photo-link {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.site-logo,
.site-env {
    position: relative;
    z-index: 2;
}

.site-logo {
    display: grid;
    gap: 8px;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
}

.site-logo:hover {
    text-decoration: none;
}

.site-logo__title {
    font-size: clamp(2.05rem, 4.7vw, 3.75rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.site-logo__subtitle {
    font-size: 0.9rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-env {
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.82rem;
    white-space: nowrap;
}

.top-navigation-wrap {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    border-left: 1px solid var(--sidebar-line);
    border-right: 1px solid var(--sidebar-line);
    border-bottom: 1px solid var(--sidebar-line);
    background: var(--nav-surface-soft);
}

.top-navigation {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.top-navigation a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 4px 12px;
    border-right: 1px solid var(--sidebar-line);
    color: var(--accent-strong);
    font-size: 0.93rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.top-navigation a:hover {
    background: var(--nav-surface-hover);
}

.nav-toggle {
    display: none;
    appearance: none;
    border: 0;
    background: var(--nav-header);
    color: #fff;
    font: inherit;
    font-weight: 700;
    padding: 8px 12px;
}

.nav-toggle__icon {
    display: none;
    transition: transform 0.16s ease;
}

.site-shell {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 190px;
    gap: 22px;
    align-items: start;
    padding: 28px 0 44px;
}

.main-content {
    min-width: 0;
    padding: 0;
}

.site-sidebar {
    min-width: 0;
}

.sidebar-panel,
.right-box {
    border: 1px solid var(--sidebar-line);
    background: var(--nav-surface);
}

.sidebar-panel__header,
.right-box h2 {
    margin: 0;
    padding: 7px 10px;
    background: var(--nav-header);
    color: #fff;
    font-size: 0.98rem;
    line-height: 1.2;
}

.left-nav-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 0;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: default;
}

.left-nav-toggle__icon {
    display: none;
    transition: transform 0.16s ease;
}

.sidebar-panel__empty {
    margin: 0;
    padding: 10px;
    color: var(--muted);
    font-size: 0.92rem;
}

.left-nav__roots,
.left-nav__children {
    list-style: none;
    margin: 0;
    padding: 0;
}

.left-nav__roots {
    padding: 8px 7px 10px;
}

.left-nav__root + .left-nav__root {
    margin-top: 7px;
}

.left-nav__root-line {
    display: flex;
    align-items: baseline;
    gap: 5px;
    color: var(--accent-strong);
    font-weight: 700;
}

.left-nav__toggle {
    width: 14px;
    flex: 0 0 14px;
    color: #5f6500;
    font-size: 0.8rem;
}

.left-nav a {
    color: #586000;
    text-decoration: none;
}

.left-nav a:hover {
    color: var(--accent-strong);
    text-decoration: underline;
}

.left-nav__children {
    display: grid;
    gap: 4px;
    padding: 5px 0 2px 21px;
    font-size: 0.95rem;
}

.left-nav__children a {
    display: flex;
    gap: 5px;
    align-items: baseline;
}

.left-nav__bullet {
    color: var(--accent-strong);
    font-size: 1rem;
    line-height: 1;
}

.right-sidebar-content {
    display: grid;
    gap: 12px;
}

.right-box {
    background: var(--nav-surface-soft);
}

.right-box h2 {
    font-size: 0.93rem;
}

.right-box p {
    margin: 0;
    padding: 9px 9px 0;
    color: var(--text);
    font-size: 0.9rem;
    line-height: 1.38;
}

.facebook-button {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 8px;
    min-height: 38px;
    border: 1px solid #1a3376;
    background: #506eb3;
    color: #fff;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    text-decoration: none;
}

.site-search {
    padding: 9px;
}

.site-search input {
    width: 100%;
    min-height: 34px;
    border: 1px solid var(--nav-border);
    background: #fffef4;
    padding: 6px 8px;
    font: inherit;
}

.site-search__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 8px;
}

.site-search__actions a,
.text-link {
    color: #586000;
    font-weight: 700;
    text-decoration: none;
}

.site-search__actions a:hover,
.text-link:hover {
    text-decoration: underline;
}

.site-search button {
    min-height: 30px;
    border: 0;
    background: var(--nav-header);
    color: #fff;
    padding: 4px 10px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.text-link {
    display: inline-block;
    padding: 8px 9px 10px;
}

.right-box__image {
    display: block;
    width: calc(100% - 16px);
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center;
    margin: 8px;
    border: 1px solid #ffffff;
}

.state-box,
.article {
    border-radius: 12px;
    box-shadow: var(--shadow);
}

.home-hero {
    background:
        radial-gradient(circle at top right, rgba(215, 217, 94, 0.34), transparent 34%),
        linear-gradient(180deg, #fffef9, #fbfbeb);
}

.home-hero h1 {
    color: var(--accent-strong);
}

.home-section-card,
.article-list__item {
    background: #fffef4;
}

.article-list--home {
    grid-template-columns: 1fr;
}

.home-sections-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-footer {
    padding: 14px 0 22px;
    border-top: 1px solid #d6d38a;
    color: var(--accent-strong);
    text-align: center;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 1080px) {
    .site-shell {
        grid-template-columns: 210px minmax(0, 1fr);
    }

    .site-sidebar--right {
        grid-column: 1 / -1;
    }

    .right-sidebar-content {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .site-banner {
        min-height: 118px;
        align-items: end;
        padding: 18px;
    }

    .site-env {
        display: none;
    }

    .top-navigation-wrap {
        display: block;
    }

    .nav-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        text-align: left;
    }

    .nav-toggle__icon {
        display: inline-block;
    }

    body.nav-open .nav-toggle__icon {
        transform: rotate(180deg);
    }

    .top-navigation {
        display: none;
    }

    body.nav-open .top-navigation {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .top-navigation a {
        border-top: 1px solid var(--sidebar-line);
    }

    .site-shell {
        grid-template-columns: 1fr;
        gap: 14px;
        padding-top: 16px;
    }

    .site-sidebar--left {
        order: -1;
    }

    .left-nav-toggle {
        cursor: pointer;
    }

    .left-nav-toggle__icon {
        display: inline-block;
    }

    body.left-nav-open .left-nav-toggle__icon {
        transform: rotate(180deg);
    }

    .left-nav__roots {
        display: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px 14px;
    }

    body.left-nav-open .left-nav__roots {
        display: grid;
    }

    .left-nav__root + .left-nav__root {
        margin-top: 0;
    }

    .right-sidebar-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .page-wrap {
        width: min(100% - 20px, 1180px);
    }

    .site-header {
        padding-top: 10px;
    }

    .site-logo__title {
        font-size: 2.2rem;
    }

    body.nav-open .top-navigation,
    .left-nav__roots,
    .right-sidebar-content,
    .home-sections-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .site-banner {
        min-height: 96px;
        padding: 14px;
    }

    .site-logo__subtitle {
        font-size: 0.75rem;
    }
}

.search-page__header {
    margin-bottom: 14px;
}

.search-page__form {
    display: flex;
    gap: 10px;
    margin: 0 0 18px;
}

.search-page__form input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fffef4;
    padding: 8px 14px;
    font: inherit;
}

.search-page__form button {
    flex: 0 0 auto;
    min-height: 42px;
    border: 1px solid var(--accent-strong);
    border-radius: 999px;
    background: var(--accent-strong);
    color: #fff;
    padding: 8px 18px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.search-page__form button:hover {
    filter: brightness(1.05);
}

@media (max-width: 560px) {
    .search-page__form {
        flex-direction: column;
    }

    .search-page__form button {
        width: 100%;
    }
}

.search-results-groups,
.search-article-results {
    margin-top: 22px;
}

.search-result-group {
    margin-bottom: 22px;
}

.search-result-group h2,
.search-article-results > h2 {
    margin: 0 0 10px;
    color: var(--accent-strong);
    font-size: 1.18rem;
}

.search-result-group__items {
    display: grid;
    gap: 9px;
}

.search-result-card {
    display: flex;
    gap: 12px;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 246, 0.72);
    padding: 10px 12px;
}

.search-result-card__thumb {
    flex: 0 0 112px;
    width: 112px;
    height: 74px;
    border-radius: 12px;
    overflow: hidden;
    background: #eeecc6;
}

.search-result-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.search-result-card__body {
    min-width: 0;
}

.search-result-card h3 {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
}

.search-result-card h3 a {
    color: var(--accent-strong);
    text-decoration: none;
}

.search-result-card h3 a:hover {
    text-decoration: underline;
}

.search-result-card p {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 0.92rem;
}

@media (max-width: 520px) {
    .search-result-card {
        align-items: flex-start;
    }

    .search-result-card--photo {
        flex-direction: column;
    }

    .search-result-card__thumb {
        width: 100%;
        height: 130px;
        flex-basis: auto;
    }
}

.search-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 22px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 10px;
}

.search-tabs__tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(255, 255, 246, 0.74);
    color: var(--accent-strong);
    padding: 8px 13px;
    font-weight: 700;
    text-decoration: none;
    line-height: 1;
}

.search-tabs__tab:hover {
    background: #fffbd4;
    text-decoration: none;
}

.search-tabs__tab span {
    min-width: 20px;
    border-radius: 999px;
    background: rgba(98, 100, 0, 0.12);
    color: var(--muted);
    padding: 3px 6px;
    font-size: 0.78rem;
    text-align: center;
}

.search-tabs__tab--active {
    background: var(--accent-strong);
    border-color: var(--accent-strong);
    color: #fff;
}

.search-tabs__tab--active span {
    background: rgba(255, 255, 255, 0.23);
    color: #fff;
}

.search-page__empty-tab {
    margin-top: 14px;
}

.search-result-group--active {
    margin-top: 0;
}

@media (max-width: 560px) {
    .search-tabs {
        gap: 6px;
    }

    .search-tabs__tab {
        padding: 8px 10px;
        font-size: 0.92rem;
    }
}

/* Article detail typography polish v1.46
   Legacy clanky/*.php ostavaju povodne, preto tu len jemne normalizujeme text, odkazy,
   podnadpisy a spodne referencie bez zasahu do obsahu clanku. */
.article-content {
    font-size: 1.02rem;
    line-height: 1.72;
    color: #1e1a13;
}

.article-content p {
    margin-top: 0;
    margin-bottom: 1.15rem;
}

.article-content h2,
.article-content h3,
.article-content h4,
.article-content > b,
.article-content > strong {
    display: block;
    margin: 2rem 0 0.8rem;
    color: var(--accent-strong);
    font-weight: 800;
    line-height: 1.25;
}

.article-content h2 {
    font-size: 1.42rem;
}

.article-content h3,
.article-content > b,
.article-content > strong {
    font-size: 1.18rem;
}

.article-content h4 {
    font-size: 1.05rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.article-content a {
    color: #586000;
    text-decoration-color: rgba(88, 96, 0, 0.38);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.article-content a:hover {
    color: var(--accent-strong);
    text-decoration-color: currentColor;
}

.article-content sup {
    font-size: 0.72em;
    line-height: 0;
}

.article-content sup a {
    border-radius: 999px;
    padding: 0 0.22em;
    color: var(--accent-strong);
    font-weight: 700;
    text-decoration: none;
}

.article-content img {
    max-width: 100%;
    height: auto;
}

.article-references {
    margin-top: 2.4rem;
    padding: 1.05rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 246, 0.78);
    color: #3f392a;
    font-size: 0.92rem;
    line-height: 1.58;
}

.article-references + .article-references {
    margin-top: 1rem;
}

.article-references hr {
    display: none;
}

.article-references ol {
    margin: 0;
    padding-left: 1.25rem;
}

.article-references li {
    margin: 0 0 0.72rem;
    padding-left: 0.25rem;
}

.article-references li:last-child {
    margin-bottom: 0;
}

.article-references h4 {
    margin: 0 0 0.8rem;
    color: var(--accent-strong);
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.article-references a {
    color: #4f5600;
}

@media (max-width: 720px) {
    .article-content {
        font-size: 1rem;
        line-height: 1.65;
    }

    .article-content h2,
    .article-content h3,
    .article-content h4,
    .article-content > b,
    .article-content > strong {
        margin-top: 1.55rem;
    }

    .article-references {
        padding: 0.9rem 1rem;
        border-radius: 14px;
        font-size: 0.9rem;
    }
}

/* Article detail polish v1.47
   1) obrázky v legacy článkoch, 2) spätný odkaz do kategórie, 5) jemnejší breadcrumb. */
.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.15rem 0;
    margin-bottom: 0.75rem;
    color: #7c7659;
    font-size: 0.92rem;
    line-height: 1.35;
}

.breadcrumb__link {
    color: #777238;
    text-decoration: none;
}

.breadcrumb__link:hover {
    color: var(--accent-strong);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.breadcrumb__link--current {
    color: var(--accent-strong);
    font-weight: 700;
}

.breadcrumb__link--disabled {
    color: #8a8775;
    cursor: default;
    text-decoration: none;
}

.breadcrumb__link--disabled:hover {
    color: #8a8775;
    text-decoration: none;
}

.breadcrumb__sep {
    color: #aaa36e;
    margin: 0 0.45rem;
}

.article-content img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
}

.article-content a img,
.article-content img.imageBorder,
.article-content .imageBorder,
.article-content img[style*="border"] {
    border: 1px solid rgba(113, 118, 0, 0.28) !important;
    background: #fffef8;
    padding: 3px;
    box-shadow: 0 6px 18px rgba(35, 32, 18, 0.08);
}

.article-content a:hover img,
.article-content a:hover .imageBorder {
    border-color: rgba(113, 118, 0, 0.55) !important;
    box-shadow: 0 8px 22px rgba(35, 32, 18, 0.13);
}

.article-content td {
    vertical-align: top;
}

.article-content td[align="center"],
.article-content div[align="center"],
.article-content center {
    color: #5f593f;
    font-size: 0.94rem;
    line-height: 1.45;
}

.article-content td[align="center"] img,
.article-content div[align="center"] img,
.article-content center img {
    display: inline-block;
    margin: 0.35rem auto 0.55rem;
}

.article-content table:has(img) {
    margin-top: 1.1rem;
    margin-bottom: 1.3rem;
}

.article-content table:has(img) td {
    padding: 0.45rem 0.55rem;
}

.article-content p:has(> img),
.article-content p:has(> a > img) {
    text-align: center;
}

.article-back-nav {
    margin: 0 28px 18px;
    padding-top: 1rem;
    border-top: 1px solid rgba(216, 211, 138, 0.72);
}

.article-back-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0.45rem 0.85rem;
    border: 1px solid rgba(129, 134, 0, 0.28);
    border-radius: 999px;
    background: rgba(238, 239, 168, 0.52);
    color: var(--accent-strong);
    font-weight: 700;
    text-decoration: none;
}

.article-back-nav a:hover {
    background: var(--accent-soft);
    border-color: rgba(129, 134, 0, 0.45);
}

@media (max-width: 720px) {
    .breadcrumb {
        margin-bottom: 0.4rem;
        font-size: 0.88rem;
    }

    .article-content table:has(img) td {
        padding: 0.45rem 0 !important;
    }

    .article-content a img,
    .article-content img.imageBorder,
    .article-content .imageBorder,
    .article-content img[style*="border"] {
        padding: 2px;
    }

    .article-back-nav {
        margin: 0 16px 16px;
    }
}

/* Legacy subtitle class polish v1.48
   Niektore stare clanky nepouzivaju h3/h4, ale span.nadpis2. Zjednotime ho vizualne
   s podnadpismi v novom detaile clanku bez zasahu do legacy obsahu. */
.article-content .nadpis2 {
    display: block;
    margin: 2rem 0 0.75rem;
    color: var(--accent-strong);
    font-size: 1.18rem;
    font-weight: 800;
    line-height: 1.28;
}

.article-content p .nadpis2:first-child,
.article-content td .nadpis2:first-child {
    margin-top: 0;
}

/* Nadpis2 sa v niektorych legacy clankoch pouziva v tabulkovej hlavicke,
   kde je v pravom stlpci skratka stupna ohrozenia. Tam nesmie vytvarat
   velky horny odsuv, inak sa pravy stlpec opticky odtrhne od nadpisu. */
.article-content table .nadpis2 {
    margin-top: 0;
}

.article-content .nadpis2 + br {
    display: none;
}

@media (max-width: 720px) {
    .article-content .nadpis2 {
        margin-top: 1.55rem;
        font-size: 1.08rem;
    }
}

/* Meadow airy redesign v1.53
   Svetlejsi prirodny styl podla navrhu c. 5: jemne zelene akcenty,
   oble rohy, makke tiene a inline SVG ikonky v navigacii. */
:root {
    --page-bg: #f7f8f1;
    --panel-bg: #fffefa;
    --text: #243122;
    --muted: #66715f;
    --line: #dfe6cf;
    --accent: #547d37;
    --accent-strong: #23482c;
    --accent-soft: #edf5df;
    --accent-pale: #f4f8ec;
    --nav-surface: #ffffff;
    --nav-surface-soft: #f7faef;
    --nav-surface-hover: #eef7df;
    --nav-border: #d9e4c6;
    --nav-header: #f0f7e4;
    --sidebar-bg: #ffffff;
    --sidebar-line: #d9e4c6;
    --shadow: 0 14px 34px rgba(57, 76, 42, 0.08);
    --shadow-soft: 0 8px 24px rgba(57, 76, 42, 0.06);
    --radius-card: 18px;
    --radius-panel: 14px;
}

body {
    background:
        radial-gradient(circle at top left, rgba(237, 245, 223, 0.75), transparent 32rem),
        var(--page-bg);
    color: var(--text);
}

.site-header {
    padding-top: 12px;
}

.site-banner {
    min-height: 160px;
    border: 0;
    border-radius: 0 0 22px 22px;
    box-shadow: var(--shadow-soft);
    background:
        linear-gradient(90deg, rgba(250, 255, 247, 0.30), rgba(255, 255, 255, 0.04) 36%, rgba(18, 45, 20, 0.36)),
        linear-gradient(90deg, rgba(0, 27, 5, 0.56), rgba(0, 0, 0, 0.05) 55%, rgba(0, 30, 6, 0.28)),
        var(--banner-image, linear-gradient(135deg, #172b0d 0%, #385a16 42%, #0f250c 100%));
    background-size: cover;
    background-position: center;
}

.site-logo {
    color: #ffffff;
    gap: 7px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.site-logo__title {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 800;
    letter-spacing: -0.035em;
}

.site-logo__subtitle {
    color: rgba(255, 255, 255, 0.94);
    font-weight: 700;
    letter-spacing: 0.16em;
}

.top-navigation-wrap {
    width: calc(100% - 36px);
    margin: -18px auto 0;
    position: relative;
    z-index: 4;
    overflow: hidden;
    border: 1px solid var(--nav-border);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 14px 34px rgba(57, 76, 42, 0.12);
    backdrop-filter: blur(4px);
}

.top-navigation {
    width: 100%;
    justify-content: center;
}

.top-navigation a {
    gap: 0.55rem;
    min-height: 48px;
    padding: 0 15px;
    border-right: 1px solid var(--nav-border);
    color: #2f3a2d;
    font-size: 0.95rem;
    font-weight: 600;
    transition: background 0.15s ease, color 0.15s ease;
}

.top-navigation a:first-child {
    border-left: 0;
}

.top-navigation a:hover {
    background: var(--nav-surface-hover);
    color: var(--accent-strong);
    text-decoration: none;
}

.top-navigation__icon,
.sidebar-panel__title-icon,
.left-nav__root-icon,
.right-box__title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--accent);
}

.top-navigation__icon svg,
.sidebar-panel__title-icon svg,
.left-nav__root-icon svg,
.right-box__title-icon svg,
.nav-toggle__title-icon svg {
    display: block;
    width: 1em;
    height: 1em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.site-shell {
    grid-template-columns: 220px minmax(0, 1fr) 205px;
    gap: 24px;
    padding-top: 28px;
}

.sidebar-panel,
.right-box,
.article,
.state-box,
.article-list__item,
.home-section-card,
.search-result-card {
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: rgba(255, 255, 250, 0.92);
    box-shadow: var(--shadow-soft);
}

.sidebar-panel,
.right-box {
    overflow: hidden;
}

.sidebar-panel__header,
.right-box h2,
.nav-toggle {
    background: var(--nav-header);
    color: var(--text);
}

.sidebar-panel__header,
.right-box h2 {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 10px 13px;
    border-bottom: 1px solid var(--line);
    font-size: 1rem;
    font-weight: 700;
}

.nav-toggle__label {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.nav-toggle__title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--accent);
}

.sidebar-panel__title-main,
.right-box h2 span:last-child {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.left-nav__roots {
    padding: 11px 10px 13px;
    background: rgba(255, 255, 250, 0.72);
}

.left-nav__root + .left-nav__root {
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid rgba(217, 228, 198, 0.95);
}

.left-nav__root-line {
    align-items: center;
    gap: 0.55rem;
    color: var(--text);
    font-size: 1.04rem;
    font-weight: 750;
}

.left-nav__root-line a,
.left-nav__root-line > span:not(.left-nav__root-icon):not(.left-nav__toggle) {
    color: var(--text);
}

.left-nav__root-icon {
    width: 1.25rem;
    color: var(--accent);
}

.left-nav__toggle {
    margin-left: auto;
    color: var(--accent);
    font-size: 0.9rem;
}

.left-nav a {
    color: #56634f;
}

.left-nav a:hover {
    color: var(--accent-strong);
}

.left-nav__children {
    gap: 1px;
    padding: 5px 0 0 2.05rem;
    font-size: 0.95rem;
}

.left-nav__children a {
    padding: 2px 8px;
    border-radius: 8px;
}

.left-nav__children a:hover {
    background: var(--accent-pale);
    text-decoration: none;
}

.left-nav__children a[title*="člán"]:hover {
    text-decoration: none;
}

.left-nav__bullet {
    color: #87917a;
}

.breadcrumb {
    color: #707a68;
}

.breadcrumb__link {
    color: #657159;
}

.breadcrumb__link--current,
.breadcrumb a:last-child,
.article-byline strong,
.article-content a,
.article-references a {
    color: var(--accent);
}

.article--detail {
    overflow: hidden;
}

.article-header {
    padding: 32px 32px 28px;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at top left, rgba(237, 245, 223, 0.45), transparent 23rem),
        rgba(255, 255, 250, 0.94);
}

.article-kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: 12px;
    padding: 0.32rem 0.75rem;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent-strong);
    letter-spacing: 0.12em;
}

.article-title,
.article h1,
.list-page h1 {
    color: var(--text);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 800;
    letter-spacing: -0.025em;
}

.article-title {
    color: var(--accent-strong);
}

.article-lead {
    color: #5f6758;
    font-size: 1.05rem;
}

.article-layout {
    padding: 30px 32px 34px;
    background: rgba(255, 255, 250, 0.72);
}

.article-content {
    color: #1f291f;
}

.article-content h2,
.article-content h3,
.article-content h4,
.article-content > b,
.article-content > strong,
.article-content .nadpis2,
.search-result-group h2,
.search-article-results > h2 {
    color: var(--accent-strong);
}

.article-references,
.article-back-nav a,
.pagination__page,
.pagination__control,
.search-tabs__tab {
    background: rgba(247, 250, 239, 0.82);
    border-color: var(--line);
}

.article-back-nav a,
.pagination__page,
.pagination__control,
.search-tabs__tab {
    color: var(--accent-strong);
}

.article-back-nav a:hover,
.pagination__page:hover,
.pagination__control:hover,
.search-tabs__tab:hover {
    background: var(--accent-soft);
}

.pagination__page--current,
.search-tabs__tab--active,
.search-page__form button {
    border-color: var(--accent);
    background: var(--accent);
    color: #fff;
}

.right-sidebar-content {
    gap: 14px;
}

.right-box {
    background: rgba(255, 255, 250, 0.9);
}

.right-box h2 {
    font-size: 0.97rem;
}

.facebook-button {
    margin: 12px;
    min-height: 46px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(180deg, #4f7dcc, #315fb1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
    font-size: 1.45rem;
}

.site-search {
    padding: 12px;
}

.site-search input,
.search-page__form input {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fffefa;
    color: var(--text);
}

.site-search input:focus,
.search-page__form input:focus {
    outline: 2px solid rgba(84, 125, 55, 0.18);
    border-color: rgba(84, 125, 55, 0.45);
}

.site-search button {
    min-height: 36px;
    border-radius: 10px;
    background: var(--accent);
    color: #fff;
}

.site-search__actions a,
.text-link,
.article-list__item h2 a,
.home-section-card__title,
.search-result-card h3 a {
    color: var(--accent-strong);
}

.right-box__image {
    width: calc(100% - 24px);
    min-height: 132px;
    margin: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 8px 18px rgba(57, 76, 42, 0.08);
    background: var(--surface-soft);
}

.home-section-card,
.article-list__item,
.search-result-card {
    background: rgba(255, 255, 250, 0.9);
}

.article-list__item {
    border-radius: var(--radius-card);
}

.article-list__thumb,
.search-result-card__thumb {
    border-color: var(--line);
    border-radius: 12px;
    background: var(--accent-soft);
}

.article-list-section--parents {
    border-color: var(--line);
    background: linear-gradient(180deg, rgba(237, 245, 223, 0.72), rgba(255, 255, 250, 0.86));
}

.site-footer {
    border-top: 1px solid var(--line);
    color: #728069;
}

@media (max-width: 1080px) {
    .right-sidebar-content {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .top-navigation-wrap {
        width: 100%;
        margin-top: 8px;
        border-radius: 14px;
    }

    .nav-toggle {
        color: var(--text);
        background: rgba(255, 255, 250, 0.94);
    }

    .top-navigation a {
        justify-content: flex-start;
        border-top: 1px solid var(--line);
    }

    .site-shell {
        padding-top: 16px;
    }

    .left-nav__roots {
        background: rgba(255, 255, 250, 0.86);
    }

    .right-sidebar-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .site-banner {
        border-radius: 0 0 18px 18px;
    }

    .article-header,
    .article-layout {
        padding-left: 18px;
        padding-right: 18px;
    }

    body.nav-open .top-navigation,
    .left-nav__roots,
    .right-sidebar-content {
        grid-template-columns: 1fr;
    }
}


@media (min-width: 1081px) {
    .left-nav__children {
        gap: 1px;
        padding-top: 5px;
    }

    .left-nav__children a {
        padding-top: 2px;
        padding-bottom: 2px;
        line-height: 1.28;
    }
}

/* Mobile layout repair v1.54
   v1.53 pridala desktopove meadow pravidla az za povodne media queries,
   preto na mobile prepisali grid layout spat na 3 stlpce. Tieto pravidla
   musia byt uplne na konci CSS. */
@media (max-width: 860px) {
    .site-shell {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        padding-top: 16px;
    }

    .site-sidebar--left,
    .site-sidebar--right,
    .main-content {
        grid-column: 1 / -1;
        min-width: 0;
    }

    .site-sidebar--left {
        order: -1;
    }

    .site-sidebar--right {
        order: 3;
    }

    .main-content {
        order: 2;
    }

    .top-navigation-wrap {
        width: 100%;
        margin-top: 8px;
        overflow: visible;
    }

    .top-navigation {
        display: none;
        width: 100%;
        justify-content: stretch;
    }

    body.nav-open .top-navigation {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .top-navigation a {
        min-width: 0;
        justify-content: flex-start;
        border-right: 0;
        border-top: 1px solid var(--line);
    }

    .left-nav-toggle {
        cursor: pointer;
    }

    .left-nav-toggle__icon {
        display: inline-block;
    }

    .left-nav__roots {
        display: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px 14px;
    }

    body.left-nav-open .left-nav__roots {
        display: grid;
    }

    .left-nav__root + .left-nav__root {
        margin-top: 0;
    }
}

@media (max-width: 720px) {
    body.nav-open .top-navigation,
    body.left-nav-open .left-nav__roots,
    .right-sidebar-content,
    .home-sections-grid {
        grid-template-columns: 1fr;
    }

    .article-list__item,
    .search-result-card {
        grid-template-columns: 1fr;
    }
}


/* v1.55 lighter outline icons */
.top-navigation__icon { color: #6f8b52; }
.top-navigation__icon svg { width: .96em; height: .96em; }
.left-nav__root-icon svg, .sidebar-panel__title-icon svg, .right-box__title-icon svg { width: .98em; height: .98em; }


/* v1.56: zladenie horného menu so zelenkastou hlavičkou bočného panelu */
.top-navigation-wrap {
    background: linear-gradient(180deg, #f3f7df 0%, #edf4cf 100%);
    border-color: #d6dfaa;
    box-shadow: 0 8px 22px rgba(72, 93, 47, 0.08);
}

.top-navigation {
    background: transparent;
}

.top-navigation a {
    border-left-color: #d6dfaa;
    color: #27331f;
}

.top-navigation a:hover {
    background: rgba(117, 147, 75, 0.12);
    color: var(--accent-strong);
}

.top-navigation__icon {
    color: #5f8045;
}


/* v1.57: mobilné horné menu zjednotené so Sekcie webu */
@media (max-width: 760px) {
    .nav-toggle {
        background: linear-gradient(180deg, #f3f7df 0%, #edf4cf 100%);
        border: 1px solid #d6dfaa;
        color: #26351f;
        box-shadow: 0 6px 16px rgba(72, 93, 47, 0.08);
    }

    .nav-toggle:hover,
    body.nav-open .nav-toggle {
        background: linear-gradient(180deg, #edf4cf 0%, #e4edbd 100%);
        color: var(--accent-strong);
    }

    .top-navigation-wrap {
        background: transparent;
        border: 0;
        box-shadow: none;
    }

    .top-navigation {
        background: #fffef8;
        border: 1px solid #dce4ba;
        border-radius: 0 0 18px 18px;
        box-shadow: 0 10px 24px rgba(72, 93, 47, 0.10);
        overflow: hidden;
    }

    .top-navigation a {
        background: #fffef8;
        border-left: 0;
        border-top: 1px solid #edf1d9;
        color: #26351f;
    }

    .top-navigation a:first-child {
        border-top: 0;
    }

    .top-navigation a:hover {
        background: #f6f9e9;
        color: var(--accent-strong);
    }

    .top-navigation__icon {
        color: #5f8045;
    }
}


/* v1.58: mobilné Menu má rovnakú farbu a oblé rohy ako Sekcie webu */
@media (max-width: 760px) {
    .mobile-nav-toggle-wrap {
        padding: 0 14px;
    }

    .nav-toggle,
    .left-nav-toggle {
        background: var(--nav-surface-soft);
        border: 1px solid var(--nav-border);
        color: var(--text);
        border-radius: 18px;
        box-shadow: 0 8px 18px rgba(61, 83, 37, 0.08);
    }

    .nav-toggle:hover,
    .left-nav-toggle:hover,
    body.nav-open .nav-toggle,
    body.left-nav-open .left-nav-toggle {
        background: var(--nav-surface-hover);
        color: var(--accent-strong);
    }

    body.nav-open .nav-toggle {
        border-radius: 18px 18px 0 0;
        border-bottom-color: transparent;
    }

    body.nav-open .top-navigation {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }

    .top-navigation {
        background: #fffef8;
        border: 1px solid var(--nav-border);
        border-top: 0;
        border-radius: 0 0 18px 18px;
        box-shadow: 0 10px 24px rgba(61, 83, 37, 0.10);
        overflow: hidden;
    }

    .top-navigation a {
        background: #fffef8;
        border-top: 1px solid #edf1d9;
        color: var(--text);
    }

    .top-navigation a:hover {
        background: var(--nav-surface-soft);
        color: var(--accent-strong);
    }
}


/* v1.59: mobilné zbalené hlavičky Menu a Sekcie webu sú stále zelenkasté */
@media (max-width: 760px) {
    .nav-toggle,
    .left-nav-toggle {
        background: linear-gradient(180deg, #eef5cf 0%, #e6efbc 100%) !important;
        border-color: #cfdca0 !important;
        color: #26351f !important;
        border-radius: 18px;
    }

    .nav-toggle:hover,
    .nav-toggle:focus,
    .left-nav-toggle:hover,
    .left-nav-toggle:focus,
    body.nav-open .nav-toggle,
    body.left-nav-open .left-nav-toggle {
        background: linear-gradient(180deg, #e6efbc 0%, #dce9a8 100%) !important;
        color: var(--accent-strong) !important;
    }

    body.nav-open .nav-toggle {
        border-radius: 18px 18px 0 0;
        border-bottom-color: transparent !important;
    }

    body.left-nav-open .left-nav-toggle {
        border-radius: 18px 18px 0 0;
        border-bottom-color: transparent !important;
    }
}



/* v1.60 ikonka pre zbalené mobilné menu */
.nav-toggle__title-icon svg { width: .98em; height: .98em; }


/* v1.62: článková print verzia */
.article-actions {
    margin: 0.8rem 0 1.15rem;
}

.article-print-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.42rem 0.72rem;
    border: 1px solid var(--nav-border);
    border-radius: 999px;
    background: #fffef8;
    color: var(--accent-strong);
    font-size: 0.88rem;
    text-decoration: none;
    box-shadow: 0 6px 14px rgba(61, 83, 37, 0.07);
}

.article-print-link:hover {
    background: var(--nav-surface-soft);
    text-decoration: none;
}

.article-print-link__icon {
    display: inline-flex;
    color: var(--accent);
}

.article-print-link__icon svg {
    width: 1em;
    height: 1em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* v1.76: print ikonka zarovnaná do horného riadku hlavičky článku */
.article-header__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 12px;
}

.article-header__top .article-kicker {
    margin: 0;
}

.article-actions--corner {
    flex: 0 0 auto;
    margin: 0;
}

.article-print-link--icon {
    justify-content: center;
    min-width: 0;
    height: 2.25rem;
    padding: 0 0.78rem;
    gap: 0.38rem;
    border-radius: 999px;
    border-color: rgba(111, 130, 69, 0.24);
    background: linear-gradient(180deg, #fffef9 0%, #f3f7e6 100%);
    box-shadow: 0 4px 10px rgba(61, 83, 37, 0.06);
}

.article-print-link--icon:hover {
    border-color: rgba(92, 116, 45, 0.38);
    background: linear-gradient(180deg, #fbfff0 0%, #eaf2d2 100%);
    color: var(--accent-strong);
}

.article-print-link--icon .article-print-link__icon svg {
    width: 1.02rem;
    height: 1.02rem;
}

.article-print-link__label {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1;
}

@media (max-width: 760px) {
    .article-header__top {
        align-items: flex-start;
        gap: 0.75rem;
    }

    .article-print-link--icon {
        width: 2.2rem;
        height: 2.2rem;
        padding: 0;
        gap: 0;
    }

    .article-print-link__label {
        display: none;
    }
}

/* v1.86: výraznejšia desktop ikona tlače v rovnakom outline štýle ako menu */
.article-print-link--icon .article-print-link__icon {
    color: #5f7f3b;
}

.article-print-link--icon .article-print-link__icon svg {
    width: 1.16rem;
    height: 1.16rem;
    stroke-width: 1.85;
}

@media (min-width: 761px) {
    .article-print-link--icon {
        height: 2.35rem;
        padding-inline: 0.9rem 1rem;
        gap: 0.48rem;
    }
}

.print-page {
    background: #f8f8f1;
    color: #222;
}

.print-page-header {
    max-width: 900px;
    margin: 16px auto 0;
    padding: 0 18px;
}

.print-page-header__brand {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    border-bottom: 1px solid #d8d8d0;
    padding-bottom: 8px;
    color: #444;
    font-size: 0.92rem;
}

.print-page-main {
    max-width: 900px;
    margin: 18px auto 34px;
    padding: 0 18px;
}

.print-page .article {
    box-shadow: none;
    border: 1px solid #deded4;
    background: #fff;
}

.print-settings {
    margin: 0 0 22px;
    padding: 16px;
    border: 1px solid #cfdca0;
    border-radius: 18px;
    background: linear-gradient(180deg, #f3f7df 0%, #edf4cf 100%);
    box-shadow: 0 10px 22px rgba(61, 83, 37, 0.08);
}

.print-settings__form {
    display: grid;
    gap: 12px;
}

.print-settings__title {
    font-weight: 700;
    color: var(--accent-strong);
    font-size: 1.08rem;
}

.print-settings__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 13px;
    background: rgba(255, 255, 250, 0.78);
}

.print-settings__row select {
    min-width: 135px;
}

.print-settings__row--checkbox input {
    width: 18px;
    height: 18px;
}

.print-settings__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.print-settings__actions button {
    border: 1px solid #b9c984;
    border-radius: 999px;
    background: #fffef8;
    color: var(--accent-strong);
    padding: 0.55rem 1rem;
    font-weight: 700;
    cursor: pointer;
}

.print-settings__actions button:hover {
    background: #f6f9e9;
}

.print-settings__print-button {
    background: var(--accent) !important;
    color: #fff !important;
    border-color: var(--accent) !important;
}

.article--print .breadcrumb,
.article--print .article-footer-meta {
    font-size: 0.9rem;
}

.print-image-attachments {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #ddd;
}

.print-image-attachments h2 {
    margin: 0 0 1rem;
    color: #2f4b22;
    font-size: 1.25rem;
}

.print-image-attachment {
    break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 1.25rem;
}

.print-image-attachment img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid #ccc;
    border-radius: 6px;
}

.print-image-attachment figcaption {
    margin-top: 0.35rem;
    color: #555;
    font-size: 0.9rem;
}

@media print {
    @page {
        margin: 15mm;
    }

    body {
        background: #fff !important;
    }

    .noPrint,
    .print-page-header,
    .article-actions,
    .print-settings {
        display: none !important;
    }

    .print-page-main {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .print-page .article,
    .article {
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .article-title {
        font-size: 24pt;
        color: #111 !important;
    }

    .article-content,
    .article-content p,
    .article-lead {
        color: #111 !important;
    }

    .article-content a {
        color: #111 !important;
        text-decoration: underline;
    }

    .article-content img,
    .print-image-attachment img {
        max-width: 100% !important;
        box-shadow: none !important;
    }

    .article-footer-meta,
    .reference-footer,
    .print-image-attachments {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}



/* v1.63: vyradenie jednotlivých obrázkov z print prílohy */
.print-image-attachment {
    position: relative;
    padding-left: 2rem;
}

.print-image-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    border: 1px solid #bdc990;
    background: #fffef8;
    color: var(--accent-strong);
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.print-image-toggle:hover {
    background: #f1f6d7;
    text-decoration: none;
}

.print-image-toggle--remove {
    position: absolute;
    left: 0;
    top: 0.15rem;
}

.print-excluded-images {
    margin-top: 1.2rem;
    padding: 1rem;
    border: 1px dashed #c6d295;
    border-radius: 16px;
    background: #fafcf0;
}

.print-excluded-images h2 {
    margin: 0 0 0.8rem;
    font-size: 1.05rem;
}

.print-excluded-images__list {
    display: grid;
    gap: 0.45rem;
}

.print-excluded-images__item {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--accent-strong);
    text-decoration: none;
}

.print-excluded-images__item:hover {
    text-decoration: underline;
}

.print-excluded-images__item .print-image-toggle {
    flex: 0 0 auto;
}

@media print {
    .print-image-attachment {
        padding-left: 0;
    }

    .print-image-reference[hidden],
    span[id^="img_"][hidden] {
        display: none !important;
    }
}


/* v1.64: hustejšia obrazová príloha pre tlač */
.print-image-attachments {
    margin-top: 1.5rem;
}

.print-image-attachments__grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 14px 14px;
}

.print-image-attachment {
    display: inline-block;
    vertical-align: top;
    margin: 0;
    padding-left: 0;
    break-inside: avoid;
    page-break-inside: avoid;
}

.print-image-attachment figcaption {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
    margin: 0 0 0.25rem;
    color: #111;
    font-size: 0.86rem;
    line-height: 1.18;
}

.print-image-attachment figcaption span {
    min-width: 0;
}

.print-image-attachment img {
    display: block;
    width: 100%;
    height: auto;
}

.print-image-attachments--small .print-image-attachment {
    width: 172px;
}

.print-image-attachments--middle .print-image-attachment {
    width: 285px;
}

.print-image-attachments--large .print-image-attachment {
    width: 540px;
    max-width: 100%;
}

.print-image-attachments--original .print-image-attachment {
    width: min(540px, 100%);
}

.print-image-toggle--remove {
    position: static;
    flex: 0 0 auto;
    width: 0.75rem;
    height: 0.75rem;
    margin-top: 0.12rem;
    font-size: 0.72rem;
    border-radius: 2px;
    font-weight: 700;
}

.print-excluded-images {
    clear: both;
}

@media print {
    .print-image-attachments__grid {
        gap: 10px 10px;
    }

    .print-image-attachment figcaption {
        font-size: 8.5pt;
    }

    .print-image-attachments--small .print-image-attachment {
        width: 31%;
    }

    .print-image-attachments--middle .print-image-attachment {
        width: 48%;
    }

    .print-image-attachments--large .print-image-attachment,
    .print-image-attachments--original .print-image-attachment {
        width: 100%;
    }

    .print-image-attachment img {
        max-width: 100% !important;
    }
}


/* v1.65: hidden atribút musí prebíjať hustý inline-block layout print príloh */
.print-image-attachment[hidden],
.print-excluded-images[hidden],
.print-image-reference[hidden],
span[id^="img_"][hidden] {
    display: none !important;
}


/* v1.71: bezpečné sticky sidebary s vnútorným scrollom pre dlhé menu */
@media (min-width: 1081px) {
    .site-shell {
        align-items: start;
    }

    .site-sidebar {
        align-self: start;
        position: sticky;
        top: var(--sidebar-sticky-top, 16px);
        max-height: calc(100vh - var(--sidebar-sticky-top, 16px) - var(--sidebar-sticky-bottom-gap, 16px));
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior: contain;
        scrollbar-gutter: stable;
        padding-right: 5px;
        margin-right: -5px;
    }

    .site-sidebar::-webkit-scrollbar {
        width: 8px;
    }

    .site-sidebar::-webkit-scrollbar-track {
        background: rgba(95, 101, 0, 0.06);
        border-radius: 999px;
    }

    .site-sidebar::-webkit-scrollbar-thumb {
        background: rgba(95, 101, 0, 0.24);
        border-radius: 999px;
    }

    .site-sidebar::-webkit-scrollbar-thumb:hover {
        background: rgba(95, 101, 0, 0.38);
    }
}

@media (max-width: 1080px) {
    .site-sidebar {
        position: static;
        top: auto;
        max-height: none;
        overflow: visible;
        padding-right: 0;
        margin-right: 0;
    }
}

/* Article table of contents in the sticky right sidebar v1.70 */
.article-toc-box {
    overflow: hidden;
}

.article-toc {
    padding: 8px 0 9px;
}

.article-toc__list {
    display: grid;
    gap: 1px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.article-toc__item a {
    display: block;
    padding: 6px 10px;
    color: #505600;
    font-size: 0.9rem;
    line-height: 1.25;
    text-decoration: none;
    border-left: 3px solid transparent;
}

.article-toc__item a:hover,
.article-toc__item a:focus-visible {
    background: rgba(95, 101, 0, 0.08);
    color: var(--accent-strong);
    border-left-color: rgba(95, 101, 0, 0.45);
    outline: none;
}

.article-toc__item a.is-active,
.article-toc__item.is-active a {
    background: rgba(95, 101, 0, 0.13);
    color: #263b08;
    border-left-color: var(--accent);
    font-weight: 700;
}

.article-toc__item--level-1 a {
    color: var(--accent-strong);
    font-weight: 700;
}

.article-toc__item--level-3 a {
    padding-left: 14px;
}

.article-toc__item--level-4 a {
    padding-left: 22px;
    font-size: 0.84rem;
}

.article-title[data-article-anchor="true"],
.article-content [data-article-anchor="true"] {
    scroll-margin-top: 18px;
}

@media (max-width: 980px) {
    .right-sidebar-content--article {
        display: none;
    }
}

/* Mobile fixed bottom quick navigation v1.82 */
.mobile-bottom-bar {
    display: none;
}

@media (max-width: 860px) {
    body {
        padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px));
    }

    .mobile-bottom-bar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 80;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1px;
        padding: 6px max(10px, env(safe-area-inset-left, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-right, 0px));
        border-top: 1px solid rgba(107, 82, 44, 0.22);
        background: rgba(250, 247, 239, 0.96);
        box-shadow: 0 -10px 26px rgba(43, 36, 28, 0.12);
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
    }

    .mobile-bottom-bar__item {
        min-height: 42px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        color: #394b16;
        text-decoration: none;
        font-size: 0.88rem;
        font-weight: 700;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.58);
        border: 1px solid rgba(107, 82, 44, 0.12);
    }

    .mobile-bottom-bar__item:hover,
    .mobile-bottom-bar__item:focus-visible {
        color: var(--accent-strong);
        background: rgba(111, 78, 46, 0.1);
        outline: none;
    }

    .mobile-bottom-bar__icon {
        width: 20px;
        height: 20px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .mobile-bottom-bar__icon svg {
        width: 20px;
        height: 20px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
}

/* Legacy article forms polish v1.87
   Zjemnenie starych formularov v clankoch, hlavne regestarovy filter v clanku 104.
   Markup legacy clankov nemenime, len ho vizualne obalime a zjednotime inputy/selecty. */
.article-content form {
    margin: 1.6rem 0 2rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 250, 0.92), rgba(247, 250, 239, 0.88));
    box-shadow: 0 12px 28px rgba(57, 76, 42, 0.07);
}

.article-content form table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.52rem;
}

.article-content form td {
    padding: 0.16rem 0.35rem;
    vertical-align: middle;
}

.article-content form td:first-child {
    width: 145px;
    color: #3b4c2b;
    font-weight: 650;
    line-height: 1.25;
}

.article-content input[type="text"],
.article-content input[type="search"],
.article-content input[type="number"],
.article-content input[type="email"],
.article-content input[type="password"],
.article-content select,
.article-content textarea {
    max-width: 100%;
    min-height: 34px;
    padding: 0.42rem 0.58rem;
    border: 1px solid rgba(112, 132, 72, 0.36);
    border-radius: 9px;
    background-color: rgba(255, 255, 250, 0.96);
    color: #243122;
    font: inherit;
    font-size: 0.96rem;
    box-shadow: inset 0 1px 2px rgba(57, 76, 42, 0.06);
    transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.article-content select {
    padding-right: 2rem;
    background-image:
        linear-gradient(45deg, transparent 50%, #58723d 50%),
        linear-gradient(135deg, #58723d 50%, transparent 50%);
    background-position:
        calc(100% - 15px) 50%,
        calc(100% - 10px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    appearance: none;
}

.article-content input[type="text"]:focus,
.article-content input[type="search"]:focus,
.article-content input[type="number"]:focus,
.article-content input[type="email"]:focus,
.article-content input[type="password"]:focus,
.article-content select:focus,
.article-content textarea:focus {
    border-color: rgba(84, 125, 55, 0.78);
    background-color: #fffef8;
    box-shadow: 0 0 0 3px rgba(84, 125, 55, 0.13), inset 0 1px 2px rgba(57, 76, 42, 0.05);
    outline: none;
}

.article-content input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: var(--accent);
    vertical-align: -0.18em;
}

.article-content input[type="submit"],
.article-content input[type="button"],
.article-content button {
    min-height: 36px;
    padding: 0.48rem 1.05rem;
    border: 1px solid rgba(84, 125, 55, 0.38);
    border-radius: 999px;
    background: linear-gradient(180deg, #f7faef 0%, #edf5df 100%);
    color: var(--accent-strong);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(57, 76, 42, 0.08);
}

.article-content input[type="submit"]:hover,
.article-content input[type="button"]:hover,
.article-content button:hover {
    background: #e7f2d7;
    border-color: rgba(84, 125, 55, 0.58);
}

.article-content form a[href^="javascript:"] {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0.24rem 0.55rem;
    border-radius: 999px;
    color: #54721f;
    font-weight: 700;
    text-decoration: none;
}

.article-content form a[href^="javascript:"]:hover {
    background: rgba(84, 125, 55, 0.1);
    color: var(--accent-strong);
}

.article-content form span[title] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: 0.18rem;
    border: 1px solid rgba(84, 125, 55, 0.36);
    border-radius: 999px;
    color: var(--accent-strong);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1;
    background: rgba(255, 255, 250, 0.9);
}

@media (max-width: 720px) {
    .article-content form {
        margin: 1.25rem 0 1.65rem;
        padding: 0.9rem;
        border-radius: 16px;
    }

    .article-content form table,
    .article-content form tbody,
    .article-content form tr,
    .article-content form td {
        display: block;
        width: 100% !important;
    }

    .article-content form table {
        border-spacing: 0;
    }

    .article-content form tr {
        margin-bottom: 0.78rem;
    }

    .article-content form td {
        padding: 0.08rem 0 !important;
    }

    .article-content form td:first-child {
        margin-bottom: 0.26rem;
    }

    .article-content input[type="text"],
    .article-content input[type="search"],
    .article-content input[type="number"],
    .article-content input[type="email"],
    .article-content input[type="password"],
    .article-content select,
    .article-content textarea {
        width: 100% !important;
    }
}

/* Legacy article forms compact pass v1.88
   V1.87 zjednotila farby, toto zmenšuje formuláre, aby regestárový filter nebol zbytočne vysoký. */
.article-content form {
    margin: 1.15rem 0 1.55rem;
    padding: 0.8rem 1rem;
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(57, 76, 42, 0.055);
}

.article-content form > table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.24rem;
}

.article-content form > table > tbody > tr > td,
.article-content form > table > tr > td {
    padding: 0.06rem 0.32rem;
    vertical-align: middle;
}

.article-content form > table > tbody > tr > td:first-child,
.article-content form > table > tr > td:first-child {
    width: 145px;
    color: #3b4c2b;
    font-weight: 650;
    line-height: 1.18;
}

.article-content input[type="text"],
.article-content input[type="search"],
.article-content input[type="number"],
.article-content input[type="email"],
.article-content input[type="password"],
.article-content select,
.article-content textarea {
    min-height: 29px;
    padding: 0.28rem 0.52rem;
    border-radius: 8px;
    font-size: 0.93rem;
    line-height: 1.2;
}

.article-content select {
    padding-right: 1.8rem;
    background-position:
        calc(100% - 14px) 50%,
        calc(100% - 9px) 50%;
}

.article-content input[type="checkbox"] {
    width: 15px;
    height: 15px;
}

.article-content input[type="submit"],
.article-content input[type="button"],
.article-content button {
    min-height: 32px;
    padding: 0.34rem 0.9rem;
    box-shadow: 0 6px 14px rgba(57, 76, 42, 0.065);
}

.article-content form a[href^="javascript:"] {
    min-height: 27px;
    padding: 0.14rem 0.42rem;
}

.article-content form span[title] {
    width: 16px;
    height: 16px;
    font-size: 0.7rem;
}

.article-content #regestForm {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.article-content #regestForm input[type="submit"] {
    margin-top: 0.35rem;
}

@media (max-width: 720px) {
    .article-content form {
        margin: 1rem 0 1.4rem;
        padding: 0.78rem;
    }
}


@media (max-width: 760px) {
    .right-box__image {
        min-height: 180px;
        aspect-ratio: 16 / 10;
    }
}

/* v1.93: vizuálne oddelenie boxov v pravom sidebare, hlavne na mobile */
.right-sidebar-content {
    gap: 18px;
}

.right-box {
    border-color: #cbdcaf;
    background: rgba(255, 255, 250, 0.98);
    box-shadow: 0 10px 24px rgba(57, 76, 42, 0.10), 0 1px 0 rgba(255, 255, 255, 0.82) inset;
    overflow: hidden;
}

.right-box h2 {
    border-bottom: 1px solid #d9e7bf;
    background: linear-gradient(180deg, #eff7df 0%, #e7f1d4 100%);
}

@media (max-width: 720px) {
    .site-sidebar--right {
        padding-left: 10px;
        padding-right: 10px;
    }

    .right-sidebar-content {
        gap: 24px;
    }

    .right-box {
        border-width: 1px;
        border-color: #c4d7a3;
        box-shadow: 0 12px 28px rgba(57, 76, 42, 0.14);
    }

    .right-box h2 {
        padding-top: 14px;
        padding-bottom: 14px;
    }

    .right-box__image {
        width: calc(100% - 28px);
        margin: 14px;
        border-color: #c9d9af;
        box-shadow: 0 8px 18px rgba(57, 76, 42, 0.12);
    }
}

/* v1.99: kompresia horného menu na desktope po pridaní vyhľadávania.
   Menu držíme v jednom riadku dlhšie; na mobilnom breakpointe ostáva zbalené menu. */
@media (min-width: 761px) {
    .top-navigation {
        flex-wrap: nowrap;
    }

    .top-navigation a {
        min-width: 0;
        white-space: nowrap;
        padding-left: clamp(8px, 1.05vw, 15px);
        padding-right: clamp(8px, 1.05vw, 15px);
        gap: clamp(0.32rem, 0.52vw, 0.55rem);
        font-size: clamp(0.84rem, 0.95vw, 0.95rem);
    }
}

@media (min-width: 761px) and (max-width: 1120px) {
    .top-navigation a {
        padding-left: 7px;
        padding-right: 7px;
        gap: 0.3rem;
        font-size: 0.84rem;
    }

    .top-navigation__icon svg {
        width: 0.88em;
        height: 0.88em;
    }
}

/* v2.00: posledná položka horného menu už nepotrebuje deliacu čiaru za sebou. */
.top-navigation a:last-child {
    border-right: 0;
}

/* v2.02: na mobile v kartách článkov šetríme miesto skrytím dátumu publikovania a počtu prečítaní. */
@media (max-width: 720px) {
    .home-page .article-list__meta,
    .article-page .article-list__meta {
        display: none;
    }
}


/* v2.05: kultivovanejší banner a jemne transparentné horné menu */
.site-banner {
    min-height: 178px;
    padding: 16px 26px 54px;
    background:
        linear-gradient(90deg, rgba(252, 255, 248, 0.24), rgba(255, 255, 255, 0.03) 36%, rgba(18, 45, 20, 0.32)),
        linear-gradient(90deg, rgba(0, 27, 5, 0.54), rgba(0, 0, 0, 0.04) 55%, rgba(0, 30, 6, 0.24)),
        var(--banner-image, linear-gradient(135deg, #172b0d 0%, #385a16 42%, #0f250c 100%));
    background-size: cover;
    background-position: center;
}

.site-logo {
    gap: 4px;
    align-self: flex-end;
    transform: translateY(-2px);
}

.site-logo__title {
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-size: clamp(2.55rem, 5vw, 4.55rem);
    font-weight: 700;
    line-height: 0.9;
    letter-spacing: -0.028em;
    text-rendering: optimizeLegibility;
}

.site-logo__subtitle {
    font-family: "Marcellus", Georgia, serif;
    font-size: 0.82rem;
    font-weight: 400;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.95);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
}

.top-navigation-wrap {
    width: calc(100% - 40px);
    margin: -21px auto 0;
    border-color: rgba(219, 227, 196, 0.78);
    background: linear-gradient(180deg, rgba(244, 248, 232, 0.76) 0%, rgba(236, 243, 217, 0.66) 100%);
    box-shadow: 0 14px 34px rgba(57, 76, 42, 0.10);
    backdrop-filter: blur(10px) saturate(135%);
    -webkit-backdrop-filter: blur(10px) saturate(135%);
}

.top-navigation {
    background: transparent;
}

.top-navigation a {
    border-left-color: rgba(214, 223, 170, 0.78);
    border-right-color: rgba(214, 223, 170, 0.78);
    background: transparent;
}

.top-navigation a:hover {
    background: rgba(255, 255, 255, 0.22);
}

@media (max-width: 860px) {
    .site-banner {
        min-height: 132px;
        padding: 14px 18px 26px;
    }

    .site-logo__title {
        font-size: clamp(2.3rem, 8vw, 3.6rem);
    }

    .site-logo__subtitle {
        font-size: 0.76rem;
        letter-spacing: 0.16em;
    }
}

@media (max-width: 760px) {
    .top-navigation-wrap {
        width: 100%;
        margin: 10px auto 0;
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

@media (max-width: 520px) {
    .site-banner {
        min-height: 108px;
        padding: 12px 14px 18px;
    }

    .site-logo__title {
        font-size: 2.45rem;
        line-height: 0.92;
    }

    .site-logo__subtitle {
        font-size: 0.68rem;
        letter-spacing: 0.14em;
    }
}


/* v2.06: logo text bez prekryvania nadpisu a podtitulku */
.site-logo {
    gap: 10px;
    transform: translateY(-4px);
}

.site-logo__title {
    line-height: 0.96;
}

.site-logo__subtitle {
    display: block;
    margin-top: 2px;
    line-height: 1.25;
}

@media (max-width: 860px) {
    .site-logo {
        gap: 8px;
        transform: translateY(-2px);
    }

    .site-logo__title {
        line-height: 0.98;
    }
}

@media (max-width: 520px) {
    .site-logo {
        gap: 6px;
        transform: none;
    }

    .site-logo__title {
        line-height: 1;
    }
}


/* v2.07: logo font a farby bližšie referenčnému štýlu */
.site-logo {
    gap: 6px;
    transform: translateY(-2px);
}

.site-logo__title {
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-size: clamp(2.6rem, 5vw, 4.6rem);
    font-weight: 600;
    line-height: 0.88;
    letter-spacing: -0.022em;
    color: #f7f2e6;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.34);
}

.site-logo__subtitle {
    font-family: "Cinzel", "Marcellus", Georgia, serif;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.22;
    letter-spacing: 0.18em;
    color: #d7c38d;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
    margin-top: 0;
}

@media (max-width: 860px) {
    .site-logo {
        gap: 5px;
        transform: translateY(-1px);
    }

    .site-logo__title {
        font-size: clamp(2.35rem, 8vw, 3.7rem);
        line-height: 0.9;
    }

    .site-logo__subtitle {
        font-size: 0.74rem;
        letter-spacing: 0.16em;
    }
}

@media (max-width: 520px) {
    .site-logo {
        gap: 4px;
        transform: none;
    }

    .site-logo__title {
        font-size: 2.4rem;
        line-height: 0.92;
    }

    .site-logo__subtitle {
        font-size: 0.63rem;
        letter-spacing: 0.14em;
    }
}


/* v2.08: slogan posunutý nižšie, aby sa neprekrýval s názvom */
.site-logo {
    gap: 11px;
}

.site-logo__title {
    line-height: 0.9;
}

.site-logo__subtitle {
    margin-top: 4px;
    line-height: 1.34;
}

@media (max-width: 860px) {
    .site-logo {
        gap: 9px;
    }

    .site-logo__subtitle {
        margin-top: 3px;
    }
}

@media (max-width: 520px) {
    .site-logo {
        gap: 7px;
    }

    .site-logo__subtitle {
        margin-top: 2px;
    }
}


/* v2.09: celé logo v bannere posunuté o 10px nižšie oproti v2.08 */
.site-logo {
    transform: translateY(10px);
}

@media (max-width: 860px) {
    .site-logo {
        transform: translateY(10px);
    }
}

@media (max-width: 520px) {
    .site-logo {
        transform: translateY(10px);
    }
}


/* v2.10: moderný content_file renderer - základné štýly pre migrované články */
.modern-article {
    display: grid;
    gap: 1.05rem;
    color: var(--text);
}

.modern-article p {
    margin: 0;
    line-height: 1.72;
}

.modern-article a {
    color: var(--accent);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

.modern-article a:hover {
    color: var(--accent-strong);
}

.modern-article__hero-photo,
.modern-article__photo-grid {
    margin: 0.35rem 0 0.55rem;
}

.modern-article__hero-photo--inline {
    margin-left: auto;
    margin-right: auto;
}

.modern-article__hero-photo--inline a {
    display: block;
}

.modern-article__hero-photo img,
.modern-article__photo-grid img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.modern-article__hero-photo img {
    max-height: 430px;
    object-fit: cover;
}

.modern-article__photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.modern-article__photo-grid a {
    display: block;
    min-width: 0;
}

.modern-article__photo-grid img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}


.modern-article__photo-box {
    margin-top: 0.85rem;
    margin-bottom: 1.05rem;
}

.modern-article__photo-box-grid {
    align-items: start;
}

.modern-article__photo-box-grid .modern-article__photo-box {
    margin: 0;
}

.modern-article__photo-box-caption {
    color: var(--text-muted, #6f6258);
    font-size: 0.92rem;
    line-height: 1.35;
    text-align: left;
}

.modern-article__photo-box-caption--top {
    margin: 0 0 0.35rem;
}

.modern-article__photo-box--single .modern-article__photo-box-caption {
    padding: 0 0.15rem;
}

.modern-article__reference {
    color: var(--accent);
    font-weight: 700;
}

@media (max-width: 720px) {
    .modern-article {
        gap: 0.9rem;
    }

    .modern-article p {
        line-height: 1.64;
    }

    .modern-article__photo-grid {
        grid-template-columns: 1fr;
        gap: 0.7rem;
    }

    .modern-article__photo-grid img {
        aspect-ratio: 16 / 10;
    }
}


/* v2.12: print podpora pre moderné content_file články */
.article--print .modern-article .print-image-reference {
    color: var(--accent);
    font-weight: 700;
    white-space: nowrap;
}

.article--print .modern-article .print-image-reference span[id^="img_"]::before {
    content: "";
}

@media print {
    .article--print .modern-article__hero-photo img,
    .article--print .modern-article__photo-grid img {
        box-shadow: none;
        break-inside: avoid;
    }
}

/* v2.13: číslovanie obrázkov v moderných článkoch nerozbíja image grid */
.article--print .modern-article__photo-grid a .print-image-reference,
.article--print .modern-article__hero-photo a .print-image-reference {
    display: block;
    margin-top: 0.32rem;
    text-align: center;
    text-decoration: none;
}

.article--print .modern-article__photo-grid a,
.article--print .modern-article__hero-photo a {
    text-decoration: none;
}

/* v2.14: print obrázky z moderného obsahu sú jeden stabilný blok obrázok + číslo */
.article--print .modern-article__photo-grid .modern-print-photo,
.article--print .modern-article__hero-photo .modern-print-photo {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
}

.article--print .modern-article__photo-grid .modern-print-photo > a,
.article--print .modern-article__hero-photo .modern-print-photo > a {
    display: block;
    min-width: 0;
}

.article--print .modern-article__photo-grid .modern-print-photo .print-image-reference,
.article--print .modern-article__hero-photo .modern-print-photo .print-image-reference {
    display: block;
    margin-top: 0.34rem;
    text-align: center;
    text-decoration: none;
}

.modern-print-photo[hidden] {
    display: none !important;
}


/* v2.15: pri vyradení z tlače sa skrýva celý blok obrázka v modernom článku */
.article--print .modern-article__photo-grid [data-modern-print-photo][hidden],
.article--print .modern-article__hero-photo [data-modern-print-photo][hidden],
.article--print .modern-article__photo-grid .modern-print-photo[hidden],
.article--print .modern-article__hero-photo .modern-print-photo[hidden] {
    display: none !important;
}

.article--print .modern-article__photo-grid .modern-print-photo.is-print-excluded,
.article--print .modern-article__hero-photo .modern-print-photo.is-print-excluded {
    display: none !important;
}


/* v2.16: jemnejšie označenia Obr. X v print režime moderných článkov */
.article--print .modern-article .print-image-reference {
    color: #4f7338;
    font-weight: 500;
    font-size: 0.9em;
}

.article--print .modern-article__photo-grid .modern-print-photo .print-image-reference,
.article--print .modern-article__hero-photo .modern-print-photo .print-image-reference {
    color: #58783d;
    font-weight: 500;
    font-size: 0.92rem;
    line-height: 1.25;
}

.modern-article__table-wrap {
    overflow-x: auto;
    margin: 0.35rem 0 0.55rem;
}

.modern-article__table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--panel-bg);
}

.modern-article__table th,
.modern-article__table td {
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.modern-article__table th {
    font-weight: 700;
    background: var(--accent-soft);
}

.modern-article h4,
.modern-article h5 {
    margin: 0.45rem 0 0;
    color: var(--text);
}

.modern-article h4 {
    font-size: 1.18rem;
}

.modern-article h5 {
    font-size: 1.02rem;
}

.modern-article__inline-image {
    margin: 0.2rem auto 0.8rem;
    max-width: 450px;
}

.modern-article__inline-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.modern-article__small-image-block {
    margin: 0.35rem auto 1rem;
    text-align: center;
}

.modern-article__small-image-block img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.modern-article__small-image-title,
.modern-article__small-image-caption {
    color: var(--text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.modern-article__small-image-title {
    margin: 0 0 0.35rem;
    font-weight: 650;
}

.modern-article__small-image-caption {
    margin: 0.4rem 0 0;
    text-align: left;
}

/* v2.21: textové a básnické content_file články */
.modern-article blockquote {
    margin: 0.25rem 0 0.55rem;
    padding: 0.85rem 1rem;
    border-left: 3px solid var(--accent);
    border-radius: 0 14px 14px 0;
    background: var(--panel-bg-soft);
    color: var(--text);
}

.modern-article blockquote p + p {
    margin-top: 0.75rem;
}

.modern-article__poem {
    line-height: 1.78;
    white-space: normal;
}

.modern-article__poem hr {
    width: 100px;
    margin: 0.75rem 0;
    border: 0;
    border-top: 1px solid var(--line-strong);
}

/* v2.23: článok 13 je dlhý prose text, nie grid/poézia; pri priamom texte musia odkazy ostať inline */
.modern-article--flow {
    display: block;
    line-height: 1.72;
}

.modern-article--flow h4 {
    margin: 1.5rem 0 0.55rem;
}

.modern-article--flow h5 {
    margin: 1.15rem 0 0.4rem;
}

.modern-article--flow .modern-article__photo-grid,
.modern-article--flow .modern-article__hero-photo,
.modern-article--flow .modern-article__small-image-block,
.modern-article--flow blockquote {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.modern-article--flow ul {
    margin-top: 0.75rem;
    margin-bottom: 1rem;
}

/* v2.24: článok 13 používa staré foto-thumbnaily, aby sa portrétové fotky neotáčali a nerezali do landscape pomeru */
.modern-article--flow .modern-article__photo-grid {
    align-items: center;
    justify-items: center;
}

.modern-article--flow .modern-article__photo-grid img {
    width: auto;
    max-width: 100%;
    max-height: 280px;
    aspect-ratio: auto;
    object-fit: contain;
}

/* v2.25: migrované články 14-20 - pôvodný blok obrázok + text */
.modern-article__photo-text {
    display: grid;
    grid-template-columns: minmax(180px, 34%) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    margin: 1rem 0;
}

.modern-article__photo-text-image {
    display: block;
    min-width: 0;
    text-decoration: none;
}

.modern-article__photo-text-image img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 300px;
    object-fit: contain;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.modern-article--flow .modern-article__photo-text p {
    margin: 0;
}

@media (max-width: 720px) {
    .modern-article__photo-text {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .modern-article__photo-text-image img {
        width: auto;
        max-width: 100%;
        margin: 0 auto;
    }
}


/* Modern migrated article 28: directory of external links. */
.modern-links-directory {
    display: grid;
    gap: 1.45rem;
}

.modern-links-directory__section {
    padding: 1.1rem 1.2rem;
    border: 1px solid rgba(216, 211, 138, 0.74);
    border-radius: 18px;
    background: rgba(255, 255, 246, 0.64);
}

.modern-links-directory__section h2 {
    margin-top: 0;
}

.modern-links-directory__items {
    display: grid;
    gap: 0.75rem;
}

.modern-links-directory__item {
    display: grid;
    gap: 0.25rem;
    padding: 0.75rem 0;
    border-top: 1px solid rgba(216, 211, 138, 0.58);
}

.modern-links-directory__item:first-child {
    border-top: 0;
}

.modern-links-directory__item-title {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.42;
    font-weight: 500;
}

.modern-links-directory__item-title a {
    font-weight: 500;
}

.modern-links-directory__item p {
    margin: 0;
    color: #4e4938;
    line-height: 1.58;
}

.modern-links-directory__photo-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
    font-size: 0.94rem;
    font-weight: 700;
}

.modern-links-directory__photo-link::before {
    content: "📷";
    font-size: 0.95em;
    text-decoration: none;
}

.modern-links-directory__empty {
    color: var(--muted);
    font-style: italic;
}

/* v2.29: článok 29 - responzívne YouTube iframe, aby na mobile nepreliezal mimo obsah */
.modern-article__video {
    position: relative;
    width: 100%;
    max-width: 720px;
    aspect-ratio: 16 / 9;
    margin: 1.25rem auto;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: #000;
    box-shadow: var(--shadow-soft);
}

.modern-article__video iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.modern-article__contact-image,
.modern-article__signature-image,
.modern-article__external-button-wrap {
    text-align: center;
}

.modern-article__contact-image img,
.modern-article__signature-image img {
    max-width: 100%;
    height: auto;
}

.modern-article__external-button {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--panel-bg-soft);
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    overflow-wrap: anywhere;
}

@media (max-width: 520px) {
    .modern-article__video {
        border-radius: 12px;
        margin-left: 0;
        margin-right: 0;
    }
}

/* v2.30: migrácia článkov 30,31,33,34,35,37,39,40 */
.modern-literature-directory {
    padding-left: 1.45rem;
}

.modern-literature-directory li {
    margin-bottom: 0.65rem;
    line-height: 1.6;
}

.modern-article__page-break {
    break-before: page;
    page-break-before: always;
}

.modern-article__poem--pre {
    white-space: pre-wrap;
    overflow-x: auto;
    font-family: inherit;
    background: var(--panel-bg-soft);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 1rem;
}

.modern-article__external-link::before {
    content: "› ";
    color: var(--accent);
    font-weight: 700;
}

/* v2.31: článok 39 - záverečná báseň s pôvodným riadkovaním, ale bez monospace/pre vzhľadu */
.modern-article__poem--verses {
    margin: 1.25rem 0 1.5rem;
    font-family: inherit;
    line-height: 1.78;
}

/* v2.34: článok 43 - pekné ikonky pre foto a detail v module prastarých stromov */
.modern-ancient-trees {
    margin: 1.2rem 0;
}

.modern-ancient-trees__table-wrap {
    overflow-x: auto;
}

.modern-ancient-trees__table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--panel-bg);
}

.modern-ancient-trees__table th,
.modern-ancient-trees__table td {
    padding: 0.72rem 0.85rem;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.modern-ancient-trees__table th {
    background: var(--accent-soft);
    font-weight: 700;
}

.modern-ancient-trees__table em {
    color: var(--text-muted);
}

.modern-ancient-trees__links {
    white-space: nowrap;
}

.modern-ancient-trees__icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    margin-right: 0.42rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--panel-bg);
    color: var(--accent);
    text-decoration: none;
    vertical-align: middle;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.modern-ancient-trees__icon-link:hover,
.modern-ancient-trees__icon-link:focus-visible {
    transform: translateY(-1px);
    border-color: var(--accent);
    background: var(--accent-soft);
    text-decoration: none;
}

.modern-ancient-trees__icon {
    width: 1.18rem;
    height: 1.18rem;
    fill: currentColor;
}

.modern-ancient-trees__icon-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.modern-ancient-trees__empty {
    color: var(--muted);
    font-style: italic;
}

@media (max-width: 720px) {
    .modern-ancient-trees__table,
    .modern-ancient-trees__table thead,
    .modern-ancient-trees__table tbody,
    .modern-ancient-trees__table tr,
    .modern-ancient-trees__table th,
    .modern-ancient-trees__table td {
        display: block;
    }

    .modern-ancient-trees__table {
        border: 0;
        background: transparent;
    }

    .modern-ancient-trees__table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .modern-ancient-trees__table tr {
        margin-bottom: 0.85rem;
        border: 1px solid var(--line);
        border-radius: 16px;
        overflow: hidden;
        background: var(--panel-bg);
        box-shadow: var(--shadow-soft);
    }

    .modern-ancient-trees__table td {
        display: grid;
        grid-template-columns: minmax(7.5rem, 42%) minmax(0, 1fr);
        gap: 0.65rem;
        border: 0;
        border-top: 1px solid var(--line);
        padding: 0.68rem 0.78rem;
    }

    .modern-ancient-trees__table td:first-child {
        border-top: 0;
    }

    .modern-ancient-trees__table td::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-weight: 700;
    }

    .modern-ancient-trees__links {
        white-space: normal;
    }
}

/* v2.36: článok 46 - modul ohrozených rastlín z DB */
.modern-endangered-plants {
    margin: 1.5rem 0;
}

.modern-endangered-plants__table-wrap {
    overflow-x: auto;
    margin: 0.75rem 0 1rem;
}

.modern-endangered-plants__categories {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--panel-bg);
}

.modern-endangered-plants__categories th,
.modern-endangered-plants__categories td {
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.modern-endangered-plants__categories th {
    background: var(--accent-soft);
    font-weight: 700;
}

.modern-endangered-plants__count {
    margin-top: 1rem;
}

.modern-endangered-plants__ordering {
    margin: 0.6rem 0 1.4rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel-bg);
}

.modern-endangered-plants__list {
    display: grid;
    gap: 1.35rem;
    margin-top: 0.9rem;
}

.modern-endangered-plants__item {
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--line);
}

.modern-endangered-plants__item h3 {
    margin: 0 0 0.35rem;
    font-size: 1.12rem;
    line-height: 1.35;
}

.modern-endangered-plants__synonyms,
.modern-endangered-plants__meta,
.modern-endangered-plants__localities,
.modern-endangered-plants__scattered {
    margin: 0.25rem 0;
}

.modern-endangered-plants__meta {
    color: var(--text-muted);
}

.modern-endangered-plants__references {
    margin: 0.55rem 0 0.35rem;
}

.modern-endangered-plants__references p {
    margin: 0.2rem 0;
}

.modern-endangered-plants__localities,
.modern-endangered-plants__scattered {
    font-size: 0.96rem;
}

.modern-endangered-plants__literature {
    margin-top: 2rem;
}

.modern-endangered-plants__empty {
    color: var(--muted);
    font-style: italic;
}

@media (max-width: 720px) {
    .modern-endangered-plants__categories,
    .modern-endangered-plants__categories thead,
    .modern-endangered-plants__categories tbody,
    .modern-endangered-plants__categories tr,
    .modern-endangered-plants__categories th,
    .modern-endangered-plants__categories td {
        display: block;
    }

    .modern-endangered-plants__categories {
        border: 0;
        background: transparent;
    }

    .modern-endangered-plants__categories thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .modern-endangered-plants__categories tr {
        margin-bottom: 0.75rem;
        border: 1px solid var(--line);
        border-radius: 14px;
        overflow: hidden;
        background: var(--panel-bg);
    }

    .modern-endangered-plants__categories td {
        display: grid;
        grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr);
        gap: 0.6rem;
        border: 0;
        border-top: 1px solid var(--line);
        padding: 0.62rem 0.75rem;
    }

    .modern-endangered-plants__categories td:first-child {
        border-top: 0;
    }

    .modern-endangered-plants__categories td::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-weight: 700;
    }

    .modern-endangered-plants__ordering {
        line-height: 1.75;
    }
}

/* v2.38: článok 52 - modul jaskýň z DB */
.modern-caves {
    margin: 1.2rem 0;
}

.modern-caves__count {
    margin: 0 0 0.85rem;
}

.modern-caves__table-wrap {
    overflow-x: auto;
}

.modern-caves__table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--panel-bg);
}

.modern-caves__table th,
.modern-caves__table td {
    padding: 0.72rem 0.85rem;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.modern-caves__table th {
    background: var(--accent-soft);
    font-weight: 700;
}

.modern-caves__links {
    white-space: nowrap;
}

.modern-caves__icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    margin-right: 0.42rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--panel-bg);
    color: var(--accent);
    text-decoration: none;
    vertical-align: middle;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.modern-caves__icon-link:hover,
.modern-caves__icon-link:focus-visible {
    transform: translateY(-1px);
    border-color: var(--accent);
    background: var(--accent-soft);
    text-decoration: none;
}

.modern-caves__icon-link .modern-directory-icon {
    width: 1.18rem;
    height: 1.18rem;
    fill: currentColor;
}

.modern-caves__icon-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.modern-caves__empty {
    color: var(--muted);
    font-style: italic;
}

@media (max-width: 720px) {
    .modern-caves__table,
    .modern-caves__table thead,
    .modern-caves__table tbody,
    .modern-caves__table tr,
    .modern-caves__table th,
    .modern-caves__table td {
        display: block;
    }

    .modern-caves__table {
        border: 0;
        background: transparent;
    }

    .modern-caves__table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .modern-caves__table tr {
        margin-bottom: 0.85rem;
        border: 1px solid var(--line);
        border-radius: 16px;
        overflow: hidden;
        background: var(--panel-bg);
        box-shadow: var(--shadow-soft);
    }

    .modern-caves__table td {
        display: grid;
        grid-template-columns: minmax(7.5rem, 42%) minmax(0, 1fr);
        gap: 0.65rem;
        border: 0;
        border-top: 1px solid var(--line);
        padding: 0.68rem 0.78rem;
    }

    .modern-caves__table td:first-child {
        border-top: 0;
    }

    .modern-caves__table td::before {
        content: attr(data-label);
        color: var(--text-muted);
        font-weight: 700;
    }

    .modern-caves__links {
        white-space: normal;
    }
}


/* v2.40: článok 65 - dvojjazyčná metácia a responzívna mapová príloha */
.modern-article__parallel-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
    margin: 0.85rem 0;
    padding: 0.85rem 0;
    border-top: 1px solid var(--line);
}

.modern-article__parallel-cell {
    min-width: 0;
    line-height: 1.58;
}

.modern-article__parallel-cell--latin {
    font-style: italic;
    color: var(--muted-text);
}

.modern-article__parallel-cell--translation {
    color: var(--text);
}

.modern-article__map-block {
    margin: 1.4rem auto;
    text-align: center;
}

.modern-article__map-block figcaption {
    margin-bottom: 0.65rem;
    font-weight: 600;
    color: var(--text);
}

.modern-article__map-block img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

@media (max-width: 760px) {
    .modern-article__parallel-row {
        grid-template-columns: 1fr;
        gap: 0.55rem;
    }

    .modern-article__parallel-cell--latin {
        padding-bottom: 0.55rem;
        border-bottom: 1px dashed var(--line);
    }
}

.modern-orchids {
    margin-top: 1.5rem;
}

.modern-orchids__ordering {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0.5rem 0 1.5rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(106, 82, 51, 0.18);
    border-radius: 14px;
    background: rgba(255, 252, 246, 0.72);
}

.modern-orchids__ordering label {
    font-weight: 650;
}

.modern-orchids__ordering select {
    max-width: 100%;
    padding: 0.35rem 1.7rem 0.35rem 0.55rem;
    border: 1px solid rgba(106, 82, 51, 0.26);
    border-radius: 10px;
    background: #fff;
    color: inherit;
}

.modern-orchids__list {
    display: grid;
    gap: 2rem;
}

.modern-orchids__item {
    padding-bottom: 1.55rem;
    border-bottom: 1px solid rgba(106, 82, 51, 0.16);
}

.modern-orchids__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

.modern-orchids__title {
    margin: 0;
    font-size: clamp(1.05rem, 1.7vw, 1.35rem);
    line-height: 1.35;
    font-weight: 750;
}

.modern-orchids__threat {
    flex: 0 0 auto;
    min-width: 2.6rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: rgba(84, 116, 62, 0.12);
    text-align: center;
    font-weight: 750;
    text-decoration: none;
}

.modern-orchids__synonyms,
.modern-orchids__morphology,
.modern-orchids__flowering,
.modern-orchids__similar,
.modern-orchids__localities,
.modern-orchids__scattered {
    margin: 0.65rem 0;
}

.modern-orchids__note {
    margin: 0.65rem 0;
}

.modern-orchids__photos {
    margin-top: 1rem;
}

.modern-orchids__empty {
    margin: 1rem 0;
    font-style: italic;
}

@media (max-width: 700px) {
    .modern-orchids__ordering {
        display: flex;
        width: 100%;
    }

    .modern-orchids__ordering select {
        width: 100%;
    }

    .modern-orchids__header {
        display: grid;
        gap: 0.5rem;
    }

    .modern-orchids__threat {
        justify-self: start;
    }
}

/* v2.48: článok 95 - dynamický prehľad historických máp z imageArticle */
.modern-image-article-directory {
    display: grid;
    gap: 2rem;
    margin-top: 1.3rem;
}

.modern-image-article-directory__item {
    padding-bottom: 1.7rem;
    border-bottom: 1px solid rgba(106, 82, 51, 0.16);
}

.modern-image-article-directory__item:last-child {
    border-bottom: 0;
}

.modern-image-article-directory__item h2 {
    margin-top: 0;
}

.modern-image-article-directory__body > *:first-child {
    margin-top: 0;
}

.modern-image-article-directory__body > *:last-child {
    margin-bottom: 0;
}

.modern-image-article-directory__photos {
    margin-top: 1rem;
}

.modern-literature-range {
    margin-top: 0.8rem;
}

.modern-literature-range li {
    margin-bottom: 0.38rem;
}

.modern-image-article-directory__empty {
    color: var(--muted);
    font-style: italic;
}


/* v2.49: článok 95 - mapové obrázky majú byť väčšie než bežný foto-grid */
.modern-image-article-directory__photos--large {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
    margin-top: 1.15rem;
}

.modern-image-article-directory__photos--large a {
    display: block;
    min-width: 0;
}

.modern-image-article-directory__photos--large img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

@media (min-width: 1080px) {
    .modern-image-article-directory__photos--large {
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }
}


/* v2.50: článok 95 - popisky pod veľkými mapovými obrázkami */
.modern-image-article-directory__figure {
    margin: 0;
}

.modern-image-article-directory__figure a {
    display: block;
    min-width: 0;
}

.modern-image-article-directory__figure figcaption {
    margin-top: 0.55rem;
    color: var(--muted);
    font-size: 0.94rem;
    line-height: 1.45;
    text-align: center;
}

/* v2.53: článok 98 - modulový katalóg literatúry podľa DB kategórií */
.modern-literature-catalog {
    display: grid;
    gap: 1.75rem;
}

.modern-literature-catalog__category {
    display: grid;
    gap: 0.75rem;
}

.modern-literature-catalog__list {
    padding-left: 1.45rem;
    margin: 0;
}

.modern-literature-catalog__item {
    margin-bottom: 0.72rem;
    line-height: 1.62;
}


/* v2.56: článok 100 - modulový register chotárnych názvov */
.modern-geonames-directory {
    display: grid;
    gap: 1.35rem;
}

.modern-geonames-search {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.58);
    box-shadow: var(--shadow-soft);
}

.modern-geonames-search__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 0.65rem;
}

.modern-geonames-search__row--text {
    grid-template-columns: auto minmax(0, 18rem) auto;
    justify-content: start;
}

.modern-geonames-search label {
    font-weight: 650;
    color: var(--text);
}

.modern-geonames-search input,
.modern-geonames-search select {
    width: 100%;
    min-height: 2.35rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 0.35rem 0.65rem;
    font: inherit;
    background: #fff;
}

.modern-geonames-search button,
.modern-geonames-list__admin-actions button {
    min-height: 2.35rem;
    border: 1px solid rgba(106, 82, 51, 0.28);
    border-radius: 12px;
    padding: 0.35rem 0.8rem;
    font: inherit;
    font-weight: 650;
    background: rgba(106, 82, 51, 0.08);
    color: var(--text);
    cursor: pointer;
}

.modern-geonames-directory__intro,
.modern-geonames-directory__status,
.modern-geonames-directory__history {
    padding: 1rem 1.05rem;
    border-radius: 18px;
    background: rgba(106, 82, 51, 0.055);
    border: 1px solid rgba(106, 82, 51, 0.12);
}

.modern-geonames-list {
    display: grid;
    gap: 0.85rem;
    padding-left: 2.75rem;
    margin: 0;
    list-style-position: outside;
}

.modern-geonames-list__item {
    padding: 0 0 0.85rem 0.25rem;
    border: 0;
    border-bottom: 1px solid rgba(106, 82, 51, 0.12);
    border-radius: 0;
    background: transparent;
}

.modern-geonames-list__item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.modern-geonames-list__header {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    justify-content: space-between;
}

.modern-geonames-list__title {
    font-size: 1.04rem;
    line-height: 1.45;
}

.modern-geonames-list__synonym,
.modern-geonames-list__id,
.modern-geonames-list__meta {
    color: var(--muted);
}

.modern-geonames-list__meta {
    margin-top: 0.28rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem 0.55rem;
    font-size: 0.94rem;
}

.modern-geonames-directory__map-link,
.modern-geonames-directory__photo-link,
.modern-geonames-directory__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    border: 1px solid rgba(106, 82, 51, 0.24);
    background: rgba(106, 82, 51, 0.08);
    text-decoration: none;
    font-weight: 800;
    line-height: 1;
}

.modern-geonames-directory__photo-link,
.modern-geonames-directory__icon--photo {
    font-size: 0.9rem;
}

.modern-geonames-list__mentions,
.modern-geonames-list__related,
.modern-geonames-list__info,
.modern-geonames-list__note {
    margin: 0.55rem 0 0;
    line-height: 1.58;
}

.modern-geonames-list__note {
    color: var(--text);
}

.modern-geonames-list__admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
}

.modern-geonames-directory__empty {
    color: var(--muted);
    font-style: italic;
}

@media (max-width: 720px) {
    .modern-geonames-search__row,
    .modern-geonames-search__row--text {
        grid-template-columns: minmax(0, 1fr);
    }

    .modern-geonames-search button {
        width: 100%;
    }

    .modern-geonames-list {
        padding-left: 2.4rem;
        list-style-position: outside;
    }

    .modern-geonames-list__item {
        padding: 0 0 0.85rem 0;
    }

    .modern-geonames-list__header {
        display: grid;
    }

    .modern-geonames-list__admin-actions {
        justify-content: flex-start;
    }
}

/* Article 103: medieval people directory */
.modern-medieval-people {
    display: block;
}

.modern-medieval-people__details-link {
    white-space: nowrap;
}

.modern-medieval-people__details-panel {
    margin: 0.35rem 0 1.25rem;
}

.modern-medieval-people__details-panel[hidden] {
    display: none;
}

.modern-medieval-people__details-panel p,
.modern-medieval-people__details-panel ul {
    margin: 0.5rem 0;
}

.modern-medieval-people__form {
    display: grid;
    gap: 0.72rem;
    margin: 1.25rem 0 1.5rem;
    padding: 1rem 1.2rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.58);
    box-shadow: var(--shadow-soft);
}

.modern-medieval-people__form-row {
    display: grid;
    grid-template-columns: 5rem minmax(14rem, 20rem) auto;
    align-items: center;
    gap: 0.65rem;
    justify-content: start;
}

.modern-medieval-people__form label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    white-space: nowrap;
    font-weight: 650;
    color: var(--text);
}

.modern-medieval-people__hint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05rem;
    height: 1.05rem;
    border: 1px solid var(--accent);
    border-radius: 999px;
    color: var(--accent);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    cursor: help;
}

.modern-medieval-people__form select,
.modern-medieval-people__form input[type="text"] {
    width: 100%;
    max-width: 100%;
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fffef4;
    padding: 8px 14px;
    font: inherit;
}

.modern-medieval-people__form button {
    width: fit-content;
    min-height: 42px;
    border: 1px solid var(--accent);
    border-radius: 999px;
    background: var(--accent);
    color: #fff;
    padding: 8px 18px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.modern-medieval-people__form button:hover {
    filter: brightness(1.05);
}

.modern-medieval-people__family-results,
.modern-medieval-people__search-results {
    margin-top: 1.25rem;
}

.modern-medieval-people__search-results ol {
    padding-left: 2rem;
}

.modern-medieval-people__search-results li {
    margin: 0.35rem 0;
}

.modern-medieval-people__person {
    margin: 0.35rem 0;
}

.modern-medieval-people__person--level-1,
.modern-medieval-people__person--level-2,
.modern-medieval-people__person--level-3,
.modern-medieval-people__person--level-4,
.modern-medieval-people__person--level-5,
.modern-medieval-people__person--level-6 {
    margin-left: 1.25rem;
}

.modern-medieval-people__person-line {
    line-height: 1.55;
}

.modern-medieval-people__person-name {
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.15em;
}

.modern-medieval-people__date,
.modern-medieval-people__synonym,
.modern-medieval-people__admin-id {
    color: var(--text-muted, #6f6258);
}

.modern-medieval-people__relation-label,
.modern-medieval-people__subinfo {
    margin-left: 1.25rem;
    line-height: 1.5;
}

.modern-medieval-people__subinfo {
    color: var(--text-muted, #6f6258);
}

.modern-medieval-people__empty {
    color: var(--text-muted, #6f6258);
    font-style: italic;
}

@media (max-width: 680px) {
    .modern-medieval-people__form {
        padding: 0.75rem;
    }

    .modern-medieval-people__form-row {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .modern-medieval-people__form label,
    .modern-medieval-people__form select,
    .modern-medieval-people__form input[type="text"],
    .modern-medieval-people__form button {
        width: 100%;
    }

    .modern-medieval-people__person--level-1,
    .modern-medieval-people__person--level-2,
    .modern-medieval-people__person--level-3,
    .modern-medieval-people__person--level-4,
    .modern-medieval-people__person--level-5,
    .modern-medieval-people__person--level-6,
    .modern-medieval-people__relation-label,
    .modern-medieval-people__subinfo {
        margin-left: 0.85rem;
    }
}

.modern-village-directory {
    display: block;
}

.modern-village-search {
    display: grid;
    gap: 0.72rem;
    margin: 1.25rem 0 1.5rem;
    padding: 1rem 1.2rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.58);
    box-shadow: var(--shadow-soft);
}

.modern-village-search__row {
    display: grid;
    grid-template-columns: 5rem minmax(14rem, 22rem);
    align-items: center;
    gap: 0.65rem;
    justify-content: start;
}

.modern-village-search label {
    font-weight: 650;
    color: var(--text);
}

.modern-village-search select {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fffef4;
    padding: 8px 14px;
    font: inherit;
}

.modern-village-directory__detail h2 {
    margin-top: 0.6rem;
}

.modern-village-directory__gone,
.modern-village-directory__relation-note {
    font-weight: 400;
    color: var(--muted);
}

.modern-village-directory__history,
.modern-village-directory__more,
.modern-village-directory__note {
    margin: 1rem 0;
}

.modern-village-directory__relations {
    margin: 1.1rem 0;
}

.modern-village-directory__relations h3 {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}

.modern-village-directory__relations ul {
    margin: 0;
    padding-left: 1.25rem;
}

.modern-village-directory__relations li {
    margin: 0.25rem 0;
}

.modern-village-directory__photos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin: 1.4rem 0 0;
    align-items: start;
}

.modern-village-directory__photos a {
    display: block;
}

.modern-village-directory__photos img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

@media (max-width: 640px) {
    .modern-village-search__row {
        grid-template-columns: 1fr;
    }
}

/* v2.69: článok 107 - PDF odkazy na Gárdonyiho regestár */
.modern-article__download-panel {
    margin: 2rem 0;
    padding: 1.35rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: color-mix(in srgb, var(--paper) 88%, white 12%);
    box-shadow: var(--shadow-soft);
}

.modern-article__download-panel h2 {
    margin: 0 0 1rem;
    font-size: 1.2rem;
    line-height: 1.35;
    text-align: center;
}

.modern-article__download-list {
    display: grid;
    gap: 0.85rem;
}

.modern-article__download-card {
    display: grid;
    gap: 0.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--surface);
    text-decoration: none;
    box-shadow: var(--shadow-soft);
}

.modern-article__download-card:hover {
    border-color: var(--accent);
    transform: translateY(-1px);
}

.modern-article__download-title {
    color: var(--accent-strong);
    font-weight: 700;
    font-size: 1.08rem;
}

.modern-article__download-meta,
.modern-article__download-tip {
    color: var(--muted);
    font-size: 0.95rem;
}

.modern-article__download-tip {
    margin: 1rem 0 0;
}

@media (max-width: 720px) {
    .modern-article__download-panel {
        padding: 1rem;
    }

    .modern-article__download-panel h2 {
        text-align: left;
    }
}

/* v2.71: článok 112 - genealogický prehľad obyvateľov Barania */
.modern-genealogy-directory {
    display: block;
    margin-top: 1.5rem;
}

.modern-genealogy-directory__reference-toggle {
    margin: 1rem 0 1.35rem;
}

.modern-genealogy-directory__house {
    margin: 2rem 0 0.85rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--line);
    font-size: 1.28rem;
}

.modern-genealogy-directory__empty {
    color: var(--muted);
    font-style: italic;
}

.modern-genealogy-person {
    margin: 0.18rem 0;
    line-height: 1.55;
}

.modern-genealogy-person--level-1,
.modern-genealogy-person--level-2,
.modern-genealogy-person--level-3,
.modern-genealogy-person--level-4,
.modern-genealogy-person--level-5,
.modern-genealogy-person--level-6,
.modern-genealogy-person--level-7,
.modern-genealogy-person--level-8 {
    margin-left: 1.25rem;
}

.modern-genealogy-person__line {
    display: block;
}

.modern-genealogy-person__index {
    color: var(--muted);
}

.modern-genealogy-person__date {
    white-space: nowrap;
    color: var(--accent-strong);
}

.modern-genealogy-person__place,
.modern-genealogy-person__synonym {
    color: var(--muted);
}

.modern-genealogy-person__relation-label,
.modern-genealogy-person__subinfo {
    margin-left: 1.25rem;
}

.modern-genealogy-person__notes {
    color: var(--text-muted, #6f6258);
}

@media (max-width: 680px) {
    .modern-genealogy-person--level-1,
    .modern-genealogy-person--level-2,
    .modern-genealogy-person--level-3,
    .modern-genealogy-person--level-4,
    .modern-genealogy-person--level-5,
    .modern-genealogy-person--level-6,
    .modern-genealogy-person--level-7,
    .modern-genealogy-person--level-8,
    .modern-genealogy-person__relation-label,
    .modern-genealogy-person__subinfo {
        margin-left: 0.8rem;
    }
}

/* v2.76: článok 114 - detail osoby a lokálny rodostrom */
.modern-person-detail {
    display: block;
}

.modern-person-detail > h2 {
    margin-top: 0;
}

.modern-person-detail__section {
    margin: 1.35rem 0;
}

.modern-person-detail__section h3 {
    margin: 0 0 0.55rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--line);
    font-size: 1.18rem;
}

.modern-person-detail__section p {
    margin: 0.22rem 0;
}

.modern-person-detail__subblock {
    margin: 0.8rem 0;
}

.modern-person-detail__note {
    color: var(--text-muted, #6f6258);
}

.modern-person-tree-scroll {
    width: min(100%, 720px);
    max-width: 100%;
    overflow-x: auto;
    padding: 0.75rem 0 1rem;
    margin: 0.5rem 0;
    scrollbar-width: thin;
}

.modern-person-tree {
    display: inline-flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 460px;
    white-space: nowrap;
}

.modern-person-tree__branch {
    border-left: 2px solid var(--line);
    padding-left: 0.8rem;
}

.modern-person-tree__label {
    color: var(--muted);
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
}

.modern-person-tree__node {
    margin: 0.2rem 0 0.2rem 1rem;
}

.modern-person-tree__children {
    margin-left: 1.2rem;
    border-left: 1px solid var(--line);
    padding-left: 0.7rem;
}

.modern-person-tree__person {
    display: inline-block;
    padding: 0.18rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    text-decoration: none;
}

.modern-person-tree__person--focus {
    font-weight: 700;
    background: color-mix(in srgb, var(--accent) 16%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
}

.modern-person-tree__person span {
    color: var(--muted);
    font-size: 0.9em;
}

.modern-person-tree__more {
    color: var(--muted);
    font-size: 0.9rem;
    margin-left: 1rem;
}

.modern-person-detail__tree-link {
    margin-top: 0.6rem;
}

.modern-photo-grid--person {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

@media (max-width: 680px) {
    .modern-person-tree-scroll {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        -webkit-overflow-scrolling: touch;
    }

    .modern-person-tree {
        min-width: 520px;
    }

    .modern-person-tree__node {
        margin-left: 0.75rem;
    }

    .modern-person-tree__children {
        margin-left: 0.8rem;
    }
}

/* Article 114: classic compact genealogy tree, closer to the legacy presentation. */
.modern-person-tree--classic {
    display: inline-block;
    min-width: 0;
    white-space: nowrap;
}

.modern-person-tree-table {
    border-collapse: collapse;
    margin: 0 auto;
}

.modern-person-tree-table--root {
    table-layout: fixed;
}

.modern-person-tree-table--nested {
    width: 100%;
    table-layout: fixed;
}

.modern-person-tree-table--root col {
    width: calc(100% / var(--tree-columns, 1));
}

.modern-person-tree-table td {
    text-align: center;
    vertical-align: top;
    padding: 0;
}

.modern-person-tree-table__parent,
.modern-person-tree-table__person-cell,
.modern-person-tree-table__child {
    padding: 0 0.55rem !important;
}

.modern-person-tree-table__connector td,
.modern-person-tree-table__down td {
    height: 1.35rem;
    position: relative;
    line-height: 0;
}

.modern-person-tree-table__connector span,
.modern-person-tree-table__down span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 0;
    border-left: 1px solid color-mix(in srgb, var(--text) 62%, transparent);
    transform: translateX(-0.5px);
}

.modern-person-tree-table__children .modern-person-tree-table__child {
    position: relative;
    padding-top: 1.1rem !important;
}

.modern-person-tree-table__children .modern-person-tree-table__child::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    height: 1.1rem;
    border-left: 1px solid color-mix(in srgb, var(--text) 62%, transparent);
}

.modern-person-tree-table__children .modern-person-tree-table__child::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    border-top: 1px solid color-mix(in srgb, var(--text) 62%, transparent);
}

.modern-person-tree-table__children .modern-person-tree-table__child:first-child::after {
    left: 50%;
}

.modern-person-tree-table__children .modern-person-tree-table__child:last-child::after {
    right: 50%;
}

.modern-person-tree-table__children--single .modern-person-tree-table__child::after {
    display: none;
}

.modern-person-tree-box {
    display: inline-block;
    min-width: 5.2rem;
    max-width: 11.5rem;
    padding: 0.34rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--text) 52%, transparent);
    border-radius: 0.55rem;
    background: #fdfcf6;
    box-shadow: 0 0.18rem 0.5rem rgba(58, 69, 48, 0.08);
    line-height: 1.22;
    white-space: normal;
}

.modern-person-tree-box--ancestor {
    border-color: #afc4a4;
    background: linear-gradient(180deg, #f1f8ec 0%, #e8f2df 100%);
}

.modern-person-tree-box--child {
    border-color: #d2bd8b;
    background: linear-gradient(180deg, #fff9eb 0%, #f7efd9 100%);
}

.modern-person-tree-box--focus {
    border-width: 3px;
    border-color: #5d8a42;
    background: linear-gradient(180deg, #eaf6de 0%, #d9ecc7 100%);
    box-shadow: 0 0 0 2px rgba(93, 138, 66, 0.18),
        0 0.24rem 0.7rem rgba(93, 138, 66, 0.16);
}

.modern-person-tree-box a {
    text-decoration-thickness: 1px;
    text-underline-offset: 0.12em;
}

.modern-person-tree-box__dates {
    margin-top: 0.12rem;
    color: var(--muted);
    font-size: 0.94rem;
}

@media (max-width: 680px) {
    .modern-person-tree-scroll {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0.75rem 0.35rem 1.05rem;
        -webkit-overflow-scrolling: touch;
    }

    .modern-person-tree--classic {
        display: inline-block;
        width: max-content;
        min-width: max-content;
    }

    .modern-person-tree-table {
        width: auto;
        min-width: 0;
    }

    .modern-person-tree-table--root {
        width: calc(var(--tree-columns, 1) * 8.8rem);
        min-width: calc(var(--tree-columns, 1) * 8.8rem);
        table-layout: fixed;
    }

    .modern-person-tree-table--nested {
        width: 100%;
        min-width: 100%;
        margin-left: auto;
        margin-right: auto;
        table-layout: fixed;
    }

    .modern-person-tree-table tr {
        display: table-row !important;
    }

    .modern-person-tree-table td {
        display: table-cell !important;
    }

    .modern-person-tree-table--root col {
        width: 8.6rem;
    }

    .modern-person-tree-table__parent,
    .modern-person-tree-table__person-cell,
    .modern-person-tree-table__child {
        padding-left: 0.38rem !important;
        padding-right: 0.38rem !important;
    }

    .modern-person-tree-box {
        min-width: 5.4rem;
        font-size: 0.94rem;
    }
}


/* v2.94: Article 114 genealogy tree mobile override.
   Legacy compatibility CSS globally turns article tables into blocks on mobile.
   The genealogy tree is an intentional table diagram, so keep its desktop
   table layout and let the wrapper provide horizontal scrolling. */
@media (max-width: 720px) {
    .article-content .modern-person-tree-scroll {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        max-width: 100% !important;
        -webkit-overflow-scrolling: touch;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table {
        display: table !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        border-collapse: collapse !important;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table > tbody {
        display: table-row-group !important;
        width: auto !important;
        max-width: none !important;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table > tbody > tr,
    .article-content .modern-person-tree-scroll .modern-person-tree-table tr {
        display: table-row !important;
        width: auto !important;
        max-width: none !important;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table > tbody > tr > td,
    .article-content .modern-person-tree-scroll .modern-person-tree-table td {
        display: table-cell !important;
        width: auto !important;
        max-width: none !important;
        padding-left: 0.38rem !important;
        padding-right: 0.38rem !important;
        vertical-align: top !important;
        text-align: center !important;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table--root {
        width: calc(var(--tree-columns, 1) * 8.8rem) !important;
        min-width: calc(var(--tree-columns, 1) * 8.8rem) !important;
        table-layout: fixed !important;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table--nested {
        width: 100% !important;
        min-width: 100% !important;
        table-layout: fixed !important;
    }

    .article-content .modern-person-tree-scroll .modern-person-tree-table--root col {
        width: 8.8rem !important;
    }
}

/* v2.96: článok 116 - modulový prehľad tisícmetrových vrcholov z DB */
.modern-thousand-peaks {
    display: grid;
    gap: 2.2rem;
    margin-top: 1.5rem;
}

.modern-thousand-peaks__item {
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(106, 82, 51, 0.16);
}

.modern-thousand-peaks__item:last-child {
    border-bottom: 0;
}

.modern-thousand-peaks__item h2 {
    margin-top: 0;
}

.modern-thousand-peaks__meta {
    display: grid;
    gap: 0.45rem;
    margin: 0.65rem 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(245, 241, 230, 0.5);
}

.modern-thousand-peaks__meta div {
    display: grid;
    grid-template-columns: minmax(9rem, max-content) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: baseline;
}

.modern-thousand-peaks__meta dt {
    font-weight: 700;
    color: var(--ink);
}

.modern-thousand-peaks__meta dd {
    margin: 0;
}

.modern-thousand-peaks__body > *:first-child,
.modern-thousand-peaks__secondary > *:first-child {
    margin-top: 0;
}

.modern-thousand-peaks__body > *:last-child,
.modern-thousand-peaks__secondary > *:last-child {
    margin-bottom: 0;
}

.modern-thousand-peaks__secondary {
    margin-top: 1.3rem;
    padding: 1rem;
    border-left: 3px solid rgba(88, 125, 66, 0.32);
    border-radius: 0 14px 14px 0;
    background: rgba(250, 247, 238, 0.6);
}

.modern-thousand-peaks__photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 1rem;
}

.modern-thousand-peaks__photo-grid--compact {
    margin: 1rem 0 1.2rem;
}

.modern-thousand-peaks__photo-grid a {
    display: block;
    min-width: 0;
}

.modern-thousand-peaks__photo-grid img {
    display: block;
    width: 100%;
    height: 190px;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-soft);
}

.modern-thousand-peaks__empty {
    color: var(--muted);
    font-style: italic;
}

@media (max-width: 760px) {
    .modern-thousand-peaks__meta div {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.12rem;
    }

    .modern-thousand-peaks__photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .modern-thousand-peaks__photo-grid img {
        height: 150px;
    }
}

@media (max-width: 480px) {
    .modern-thousand-peaks__photo-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .modern-thousand-peaks__photo-grid img {
        height: auto;
        max-height: none;
        object-fit: contain;
    }
}
/* v2.98: článok 120 - väčšie prezentačné fotobloky */
.modern-article__photo-grid--large-story {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 1.15rem;
    margin: 1.35rem 0 1.65rem;
    align-items: stretch;
}

.modern-article--flow .modern-article__photo-grid--large-story img {
    width: 100%;
    max-height: 430px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 18px;
}

.modern-article__photo-grid--large-story a {
    background: rgba(255, 253, 245, 0.72);
    border-radius: 20px;
    padding: 0.28rem;
    box-shadow: 0 14px 34px rgba(55, 74, 39, 0.08);
}

@media (max-width: 720px) {
    .modern-article__photo-grid--large-story {
        grid-template-columns: 1fr;
        gap: 0.95rem;
        margin: 1rem 0 1.25rem;
    }

    .modern-article--flow .modern-article__photo-grid--large-story img {
        max-height: none;
        aspect-ratio: auto;
        object-fit: contain;
    }
}


/* v2.99: článok 120 - large-story musí prepísať všeobecné flow photo-grid pravidlá */
.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 1.15rem;
    margin: 1.35rem 0 1.65rem;
    align-items: stretch;
    justify-items: stretch;
}

.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story a {
    display: block;
    width: 100%;
    background: rgba(255, 253, 245, 0.72);
    border-radius: 20px;
    padding: 0.28rem;
    box-shadow: 0 14px 34px rgba(55, 74, 39, 0.08);
}

.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    max-height: 430px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 18px;
}

@media (max-width: 720px) {
    .modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story {
        grid-template-columns: 1fr;
        gap: 0.95rem;
        margin: 1rem 0 1.25rem;
    }

    .modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story img {
        max-height: none;
        aspect-ratio: auto;
        object-fit: contain;
    }
}


/* v2.101: článok 120 - veľké fotky bez orezu portrétových záberov */
.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story img {
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
}

.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story a {
    align-self: start;
}

/* v2.102: článok 120 - masonry rozloženie veľkých fotiek bez prázdnych dier */
.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story {
    display: block;
    column-count: 2;
    column-gap: 1.15rem;
    margin: 1.35rem 0 1.65rem;
}

.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story a {
    display: block;
    width: 100%;
    margin: 0 0 1.15rem;
    break-inside: avoid;
    page-break-inside: avoid;
    -webkit-column-break-inside: avoid;
}

.modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
}

@media (max-width: 720px) {
    .modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story {
        column-count: 1;
        column-gap: 0;
        margin: 1rem 0 1.25rem;
    }

    .modern-article--flow .modern-article__photo-grid.modern-article__photo-grid--large-story a {
        margin-bottom: 0.95rem;
    }
}

/* v2.103: článok 120 - skutočné dvojstĺpcové masonry cez samostatné stĺpce */
.modern-article--flow .modern-article__photo-masonry.modern-article__photo-masonry--large-story {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 1.15rem;
    margin: 1.35rem 0 1.65rem;
    align-items: start;
}

.modern-article--flow .modern-article__photo-masonry-col {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-width: 0;
}

.modern-article--flow .modern-article__photo-masonry.modern-article__photo-masonry--large-story a {
    display: block;
    width: 100%;
    background: rgba(255, 253, 245, 0.72);
    border-radius: 20px;
    padding: 0.28rem;
    box-shadow: 0 14px 34px rgba(55, 74, 39, 0.08);
}

.modern-article--flow .modern-article__photo-masonry.modern-article__photo-masonry--large-story img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
    border-radius: 18px;
}

@media (max-width: 720px) {
    .modern-article--flow .modern-article__photo-masonry.modern-article__photo-masonry--large-story {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.95rem;
        margin: 1rem 0 1.25rem;
    }

    .modern-article--flow .modern-article__photo-masonry-col {
        gap: 0.95rem;
    }
}

/* v2.104: článok 120 - jednotný waterfall pre veľké fotky bez dier medzi skupinami */
.modern-article--flow .modern-article__photo-waterfall.modern-article__photo-waterfall--large-story {
    display: block;
    column-count: 2;
    column-gap: 2rem;
    margin: 2rem 0 2.4rem;
}

.modern-article--flow .modern-article__photo-waterfall.modern-article__photo-waterfall--large-story a {
    display: block;
    break-inside: avoid;
    page-break-inside: avoid;
    -webkit-column-break-inside: avoid;
    margin: 0 0 1.45rem;
    padding: 0.25rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255, 255, 245, 0.82);
    box-shadow: var(--shadow-soft);
}

.modern-article--flow .modern-article__photo-waterfall.modern-article__photo-waterfall--large-story img {
    display: block;
    width: 100%;
    height: auto !important;
    max-width: 100%;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    border-radius: 14px;
}

@media (max-width: 720px) {
    .modern-article--flow .modern-article__photo-waterfall.modern-article__photo-waterfall--large-story {
        column-count: 1;
        column-gap: 0;
        margin: 1.4rem 0 1.8rem;
    }
}

/* v2.105: článok 123 - moderný popis online regestára */
.modern-article--regest-overview .modern-regest-overview__table-figure {
    margin: 1.1rem 0 1.6rem;
}

.modern-article--regest-overview .modern-regest-overview__table-figure figcaption {
    margin-bottom: 0.45rem;
    color: var(--muted);
    font-size: 0.95rem;
}

.modern-regest-overview__table-scroll {
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 248, 0.62);
    box-shadow: var(--shadow-soft);
}

.modern-regest-overview__data-table,
.modern-regest-overview__source-types {
    width: 100%;
    border-collapse: collapse;
    line-height: 1.55;
}

.modern-regest-overview__data-table th,
.modern-regest-overview__data-table td,
.modern-regest-overview__source-types th,
.modern-regest-overview__source-types td {
    padding: 0.58rem 0.72rem;
    border: 1px solid var(--line);
    vertical-align: top;
}

.modern-regest-overview__data-table th {
    background: rgba(242, 247, 232, 0.92);
    color: var(--heading);
    text-align: left;
}

.modern-regest-overview__data-table td:first-child {
    width: 28%;
    font-weight: 700;
    color: var(--heading);
    white-space: nowrap;
}

.modern-regest-overview__source-types {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}

.modern-regest-overview__source-type {
    width: 3.2rem;
    text-align: center;
    font-weight: 800;
}

.modern-regest-overview__source-type--primary {
    background: #89c35c;
    color: #fff;
}

.modern-regest-overview__source-type--diplomatary {
    background: #ffdb58;
    color: #1e271b;
}

.modern-regest-overview__source-type--regestar {
    background: #b7110d;
    color: #fff;
}

.modern-regest-sources {
    padding-left: 1.35rem;
}

.modern-regest-sources li {
    margin-bottom: 0.58rem;
    padding-left: 0.15rem;
}

@media (max-width: 720px) {
    .modern-regest-overview__data-table {
        min-width: 640px;
    }

    .modern-regest-overview__source-types th,
    .modern-regest-overview__source-types td {
        padding: 0.52rem 0.58rem;
    }
}

/* v2.106: článok 123 - širší priestor pre dvoj/trojciferné číslovanie zdrojov */
.modern-regest-sources {
    list-style-position: outside;
    padding-left: 2.75rem;
}

.modern-regest-sources li {
    padding-left: 0.35rem;
}

@media (max-width: 720px) {
    .modern-regest-sources {
        padding-left: 2.9rem;
    }
}
