/**
 * Design systém RDCJK (viz referenční designový mockup webu, finalni_web/).
 * Vlastní jmenný prostor `--rdcjk-*` u všech tokenů schválně, aby se
 * nepřepsaly existující `web.css` proměnné se stejným jménem, ale jinou
 * hodnotou (např. --muted) používané napříč zbytkem webu (články, akce,
 * ostatní obecné bloky) – viz plán. Třídy (.container/.button/.wordmark/…)
 * kolizi nemají, web.css/blocks.css používají výhradně "sw-" prefix, btn, tag.
 */

:root {
    --rdcjk-background: #f4f0fb;
    --rdcjk-foreground: #2b1b60;
    --rdcjk-card: #ffffff;
    --rdcjk-primary: #2b1b60;
    --rdcjk-primary-foreground: #f7ffff;
    --rdcjk-secondary: #5a3db3;
    --rdcjk-secondary-foreground: #f7ffff;
    --rdcjk-muted: #f7e1fb;
    --rdcjk-muted-foreground: #5a3db3;
    --rdcjk-accent: #b9a7e8;
    --rdcjk-accent-foreground: #2b1b60;
    --rdcjk-border: #e6ddf5;
    --rdcjk-shadow: 0 24px 50px rgba(43, 27, 96, 0.08);
    --rdcjk-shadow-soft: 0 14px 32px rgba(43, 27, 96, 0.06);
    --rdcjk-radius: 14px;
    --rdcjk-radius-lg: 24px;
    --rdcjk-radius-xl: 32px;
    --rdcjk-container: 1200px;
}

/* Poppins jen na prvcích vlastněných tímto motivem – zbytek webu (patičky
   článků/akcí, obecné bloky) zůstává na Nunito z web.css beze změny. */
.site-header,
.site-footer,
.sw-block--hero-search,
.sw-block--quick-links-grid,
.sw-block--campaign-poster,
.sw-block--award-callout,
.sw-block--recent-articles .sw-block__news,
.sw-listing-head,
.sw-article-listing,
.sw-article,
.sw-block--hero,
.sw-block--callout,
.sw-block--cta-banner,
.sw-block--cards,
.sw-block--steps,
.sw-block--feature-split,
.sw-block--quote,
.sw-block--rich-text,
.sw-block--link-list,
.sw-block--document-list {
    font-family: 'Poppins', sans-serif;
}

/* ---------- Sdílené primitivy převzaté z mockupu ---------- */

.container {
    width: min(calc(100% - 32px), var(--rdcjk-container));
    margin: 0 auto;
}

.narrow {
    max-width: 830px;
}

.narrow-wide {
    max-width: 920px;
}

.section-pad-large {
    padding: 112px 0 128px;
}

.section-pad {
    padding: 64px 0;
}

.section-pad-small,
.section-pad-small-top {
    padding: 56px 0;
}

.section-pad-small-top {
    padding-top: 40px;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 999px;
    border: 1px solid transparent;
    padding: 0 24px;
    min-height: 44px;
    font-size: 0.95rem;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button svg,
.button i {
    width: 18px;
    height: 18px;
}

.button-primary {
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
}

.button-primary:hover {
    background: #241651;
}

.button-light {
    background: var(--rdcjk-background);
    color: var(--rdcjk-primary);
}

.button-light:hover {
    background: var(--rdcjk-muted);
}

.button-sm {
    min-height: 42px;
    padding: 0 24px;
    font-size: 0.875rem;
}

.button-md {
    min-height: 48px;
}

.button-lg {
    min-height: 52px;
    padding: 0 30px;
    font-size: 1rem;
}

.eyebrow-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--rdcjk-border);
    background: var(--rdcjk-card);
    color: var(--rdcjk-secondary);
    box-shadow: 0 8px 20px rgba(43, 27, 96, 0.08);
    font-size: 0.875rem;
    font-weight: 500;
}

.eyebrow-pill svg,
.eyebrow-pill i {
    width: 16px;
    height: 16px;
}

.eyebrow-dark {
    border: 0;
    background: rgba(247, 255, 255, 0.1);
    color: var(--rdcjk-primary-foreground);
    box-shadow: none;
}

.section-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--rdcjk-secondary);
}

.section-heading-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.section-heading-row h2 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.4rem);
    letter-spacing: -0.04em;
    font-weight: 700;
    line-height: 1.12;
}

.section-heading-row p {
    max-width: 680px;
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.75;
    color: rgba(90, 61, 179, 0.92);
}

.heading-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.925rem;
    font-weight: 600;
    color: var(--rdcjk-secondary);
    text-decoration: none;
}

.heading-link svg,
.heading-link i {
    width: 18px;
    height: 18px;
}

.highlight-wrap {
    position: relative;
    display: inline-block;
}

.highlight-inline {
    margin: 0 10px;
}

.highlight-text {
    position: relative;
    z-index: 1;
}

.highlight-mark {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 4px;
    z-index: 0;
    height: 16px;
    transform: rotate(-1deg);
    border-radius: 4px;
    background: var(--rdcjk-accent);
}

.highlight-secondary {
    background: var(--rdcjk-secondary);
    opacity: 0.95;
}

/* ---------- Rozptýlené dekorativní ikony (scatter) ---------- */

.scatter-layer {
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    opacity: 1;
}

/* Vrstva "vytáhne" přes celou šířku okna z úzkého (max-width) rodiče, ať
   ikonky lítají v bočních okrajích místo namačkané do stejného sloupce
   jako text (výpis aktualit / detail článku, viz theme-rdcjk.js
   SCATTER_CONFIG.listing/.article). Rodič nesmí mít overflow:hidden/clip,
   jinak by přesah zase oříznul. */
.scatter-layer--bleed {
    left: 50%;
    right: auto;
    width: 100vw;
    transform: translateX(-50%);
}

.scatter-light {
    opacity: 1;
}

.scatter-icon {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%) rotate(var(--scatter-rotation, 0deg));
    animation: scatter-float var(--scatter-duration, 7s) ease-in-out var(--scatter-delay, 0s) infinite alternate;
    will-change: transform;
}

.scatter-icon svg {
    width: 100%;
    height: 100%;
}

@keyframes scatter-float {
    0% {
        transform: translate(-50%, -50%) rotate(var(--scatter-rotation, 0deg));
    }

    32% {
        transform: translate(calc(-50% + var(--scatter-x, 4px)), calc(-50% - var(--scatter-y, 10px))) rotate(calc(var(--scatter-rotation, 0deg) + var(--scatter-tilt, 3deg))) scale(var(--scatter-scale, 1.04));
    }

    68% {
        transform: translate(calc(-50% - var(--scatter-x, 4px)), calc(-50% - 3px)) rotate(calc(var(--scatter-rotation, 0deg) - var(--scatter-tilt, 3deg))) scale(0.98);
    }

    100% {
        transform: translate(-50%, -50%) rotate(var(--scatter-rotation, 0deg));
    }
}

/* ---------- Scroll reveal (napříč celým webem, viz theme-rdcjk.js) ---------- */

.scroll-reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.65s ease var(--reveal-delay, 0ms), transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms);
}

.scroll-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.sw-block__news-card.scroll-reveal.is-visible:hover {
    transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
    .scatter-icon {
        animation: none;
    }

    .scroll-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ---------- Kontejner nových typů bloků: generický .sw-block wrapper (padding/
   max-width) je nahrazen vlastním .container/section-pad* uvnitř (přesně
   jako v mockupu) – viz plán, bod 7. ---------- */

.sw-block--hero-search,
.sw-block--quick-links-grid,
.sw-block--campaign-poster,
.sw-block--award-callout {
    padding: 0;
}

.sw-block--hero-search > .sw-container,
.sw-block--quick-links-grid > .sw-container,
.sw-block--campaign-poster > .sw-container,
.sw-block--award-callout > .sw-container {
    max-width: none;
    padding: 0;
}

.sw-block--hero-search .sw-block__inner,
.sw-block--quick-links-grid .sw-block__inner,
.sw-block--campaign-poster .sw-block__inner,
.sw-block--award-callout .sw-block__inner {
    max-width: none;
    margin: 0;
}

/* ---------- hero-search ---------- */

.sw-block--hero-search {
    position: relative;
    overflow: clip;
    background: var(--rdcjk-background);
}

.hero-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.hero-inner h1 {
    margin: 24px 0 0;
    letter-spacing: -0.04em;
    font-weight: 700;
    line-height: 1.12;
    font-size: clamp(2.7rem, 7vw, 4.45rem);
    color: var(--rdcjk-foreground);
}

.hero-copy {
    max-width: 680px;
    margin: 24px auto 0;
    font-size: 1.125rem;
    line-height: 1.8;
    color: rgba(90, 61, 179, 0.92);
}

.hero-search {
    display: flex;
    align-items: center;
    gap: 8px;
    width: min(100%, 720px);
    margin: 32px auto 0;
    padding: 8px;
    border: 1px solid var(--rdcjk-border);
    border-radius: 999px;
    background: var(--rdcjk-card);
    box-shadow: 0 24px 40px rgba(43, 27, 96, 0.1);
}

.search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 12px;
    color: rgba(90, 61, 179, 0.8);
}

.hero-search svg,
.hero-search i {
    width: 18px;
    height: 18px;
}

.hero-search input {
    width: 100%;
    min-width: 0;
    flex: 1;
    border: 0;
    background: transparent;
    color: var(--rdcjk-foreground);
    outline: 0;
    padding: 12px 8px;
    font: inherit;
}

.hero-search input::placeholder {
    color: rgba(90, 61, 179, 0.7);
}

@media (max-width: 639px) {
    .hero-search {
        flex-wrap: wrap;
        border-radius: 28px;
    }

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

    .highlight-inline {
        margin: 0;
    }
}

@media (min-width: 768px) {
    .sw-block--hero-search .container {
        padding: 144px 0 176px;
    }
}

@media (max-width: 767px) {
    .sw-block--hero-search .container {
        padding: 112px 0 128px;
    }
}

/* ---------- quick-links-grid ---------- */

.sw-block--quick-links-grid {
    background: rgba(247, 225, 251, 0.35);
}

.sw-block--quick-links-grid .container {
    padding-top: 64px;
    padding-bottom: 64px;
}

.quick-grid {
    display: grid;
    gap: 24px;
}

.quick-card {
    display: flex;
    flex-direction: column;
    padding: 28px;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.2s ease;
}

.quick-card:hover {
    opacity: 0.82;
}

@media (min-width: 1024px) {
    .quick-card:not(:first-child) {
        border-left: 1px solid var(--rdcjk-border);
    }
}

.quick-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
    font-size: 1.25rem;
}

.quick-card h2 {
    margin: 20px 0 0;
    font-size: 1.35rem;
    letter-spacing: -0.03em;
    color: var(--rdcjk-foreground);
}

.quick-card p {
    margin: 12px 0 0;
    font-size: 0.95rem;
    line-height: 1.75;
    color: rgba(90, 61, 179, 0.92);
}

.quick-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 20px;
    font-size: 0.925rem;
    font-weight: 600;
    color: var(--rdcjk-secondary);
    text-decoration: none;
}

.quick-link svg,
.quick-link i {
    width: 18px;
    height: 18px;
}

@media (min-width: 640px) {
    .quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .quick-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ---------- campaign-poster ---------- */

.campaign-card {
    position: relative;
    overflow: hidden;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    padding: 56px 0;
}

.campaign-card > .container {
    position: relative;
    z-index: 2;
}

.campaign-layout {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 40px;
}

.campaign-copy .button {
    margin-top: 32px;
}

.campaign-copy p {
    margin: 20px 0 0;
    max-width: 640px;
    font-size: 1.1rem;
    line-height: 1.8;
    color: rgba(247, 255, 255, 0.78);
}

.campaign-copy h2 {
    margin: 24px 0 0;
    letter-spacing: -0.04em;
    font-weight: 700;
    line-height: 1.12;
    font-size: clamp(2.2rem, 5vw, 3.8rem);
}

.campaign-poster-wrap {
    position: relative;
    max-width: 360px;
    margin: 0 auto;
}

.campaign-poster {
    position: relative;
    transform: rotate(2deg);
    overflow: hidden;
    border-radius: 32px;
    background: var(--rdcjk-secondary);
    padding: 32px;
    box-shadow: 0 28px 48px rgba(0, 0, 0, 0.32);
    transition: transform 0.3s ease;
}

.campaign-poster:hover {
    transform: rotate(0deg);
}

.pattern-fill {
    position: absolute;
    inset: 0;
    background-image: url('../images/pattern.svg');
    background-position: center;
    background-repeat: repeat;
    background-size: 140px auto;
    opacity: 0.14;
}

.campaign-poster-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.poster-logo {
    height: 56px;
}

.poster-title {
    margin: 20px 0 0;
    font-size: clamp(2rem, 4vw, 2.7rem);
    font-weight: 700;
    line-height: 1.15;
}

.poster-url {
    margin: 16px 0 0;
    font-size: 0.9rem;
    color: rgba(247, 255, 255, 0.78);
}

.campaign-sticker {
    position: absolute;
    top: -16px;
    right: -12px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 18px;
    background: var(--rdcjk-accent);
    color: var(--rdcjk-accent-foreground);
    box-shadow: 0 12px 22px rgba(43, 27, 96, 0.16);
    font-size: 1.35rem;
    font-weight: 800;
    transform: rotate(12deg);
}

@media (min-width: 768px) {
    .campaign-card {
        padding: 80px 0;
    }

    .campaign-poster {
        padding: 40px;
    }
}

@media (min-width: 1024px) {
    .campaign-layout {
        grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr);
        align-items: center;
        gap: 56px;
    }
}

/* ---------- award-callout ---------- */

.sw-block--award-callout {
    position: relative;
    overflow: clip;
}

.sw-block--award-callout .container {
    padding: 64px 0;
}

.kresadlo-card {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 32px;
    border-radius: 28px;
    background: var(--rdcjk-card);
}

.award-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    border-radius: 14px;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
}

.award-icon svg,
.award-icon i {
    width: 18px;
    height: 18px;
}

.kresadlo-copy {
    flex: 1;
}

.kresadlo-copy h2 {
    margin: 8px 0 0;
    letter-spacing: -0.04em;
    font-weight: 700;
    line-height: 1.12;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--rdcjk-foreground);
}

.kresadlo-copy p {
    margin: 12px 0 0;
    font-size: 0.95rem;
    line-height: 1.75;
    color: rgba(90, 61, 179, 0.92);
}

@media (min-width: 768px) {
    .kresadlo-card {
        flex-direction: row;
        align-items: center;
        gap: 32px;
        padding: 40px;
    }
}

/* ---------- recent-articles (varianta "cards") – vzhled news-grid z mockupu ---------- */

.sw-block--recent-articles {
    position: relative;
    overflow: clip;
}

.sw-block__news-grid {
    display: grid;
    gap: 24px;
    margin-top: 32px;
}

.sw-block__news-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rdcjk-border);
    border-radius: 24px;
    background: var(--rdcjk-card);
    box-shadow: 0 1px 0 rgba(43, 27, 96, 0.02);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sw-block__news-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--rdcjk-shadow-soft);
}

.sw-block__news-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--rdcjk-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rdcjk-secondary);
    font-size: 1.5rem;
}

.sw-block__news-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sw-block__news-card-tag {
    position: absolute;
    left: 12px;
    top: 12px;
}

.sw-block__news-card-body {
    padding: 24px 28px 28px;
}

.sw-block__news-card-body time {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    border-radius: 999px;
    background: var(--rdcjk-muted);
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rdcjk-secondary);
}

.sw-block__news-card-body h3 {
    margin: 16px 0 0;
    font-size: 1.2rem;
    line-height: 1.3;
    letter-spacing: -0.03em;
    color: var(--rdcjk-foreground);
}

.sw-block__news-card-body p {
    margin: 12px 0 0;
    font-size: 0.9rem;
    line-height: 1.7;
    color: rgba(43, 27, 96, 0.7);
}

.sw-block__news-card-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    font-size: 0.925rem;
    font-weight: 600;
    color: var(--rdcjk-secondary);
}

@media (min-width: 640px) {
    .sw-block__news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .sw-block__news-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .sw-block--quick-links-grid .container {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .sw-block--award-callout .container {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}

/* ==========================================================================
   Aktuality – výpis (/aktuality) a detail (/aktuality/{slug}), viz
   storage/custom-article-listing.php / custom-article-detail.php +
   public/assets/css/articles.css (staré --ink/--blue/--muted tokeny).
   Pravidla tady mají stejnou specificitu a načítají se až po articles.css,
   takže vyhrávají bez !important – jen dolaďují barvy/tvary na --rdcjk-*
   a Poppins, strukturu (rozměry/mezery) z articles.css nechávají beze
   změny, kde to sedí.
   ========================================================================== */

/* Hlavička výpisových stránek (sdílená s /akce, viz web.css komentář) */
.sw-listing-head {
    position: relative;
    z-index: 2;
    border-bottom: 1px solid var(--rdcjk-border);
}

.sw-article-listing__filters,
.sw-article-listing__grid,
.sw-article-listing__empty,
.sw-article-listing__pagination {
    position: relative;
    z-index: 2;
}

.sw-listing-head .tag {
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
}

.sw-listing-head h1 {
    font-weight: 700;
    letter-spacing: -0.04em;
    color: var(--rdcjk-foreground);
}

.sw-listing-head .lead {
    color: rgba(90, 61, 179, 0.92);
}

/* ---------- Výpis článků ---------- */

.sw-article-listing__search,
.sw-article-listing__category {
    border-color: var(--rdcjk-border);
    color: var(--rdcjk-foreground);
    box-shadow: 0 4px 12px rgba(43, 27, 96, 0.04);
}

.sw-article-listing__search::placeholder {
    color: rgba(90, 61, 179, 0.7);
}

.sw-article-listing__search:focus,
.sw-article-listing__category:hover,
.sw-article-listing__category:focus {
    border-color: var(--rdcjk-secondary);
}

.sw-article-listing__select-wrap i {
    color: rgba(90, 61, 179, 0.7);
}

.sw-article-listing__filters .btn {
    border-radius: 999px;
    font-weight: 700;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    border-color: transparent;
}

.sw-article-listing__filters .btn:hover {
    background: #241651;
}

.sw-article-listing__empty {
    color: rgba(90, 61, 179, 0.8);
}

/* Karty – stejný vizuální jazyk jako .sw-block__news-card na hlavní
   stránce (viz výš), bez posazené barevné destičky za obrázkem. */
.sw-article-card-public {
    border: 1px solid var(--rdcjk-border);
    border-radius: 24px;
    background: var(--rdcjk-card);
    box-shadow: 0 1px 0 rgba(43, 27, 96, 0.02);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sw-article-card-public:hover {
    transform: translateY(-4px);
    box-shadow: var(--rdcjk-shadow-soft);
}

.sw-article-card-public__cover {
    margin-bottom: 0;
}

.sw-article-card-public__cover::before {
    content: none;
}

.sw-article-card-public__cover img {
    border-radius: 0;
    transition: none;
}

.sw-article-card-public:hover .sw-article-card-public__cover img {
    transform: none;
}

.sw-article-card-public__cover--placeholder {
    border-radius: 0;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
}

.sw-article-card-public__body {
    padding: 20px 24px 24px;
    gap: 6px;
}

.sw-article-card-public__date {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    background: var(--rdcjk-muted);
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rdcjk-secondary);
}

.sw-article-card-public__body h2 {
    margin-top: 6px;
    letter-spacing: -0.03em;
    color: var(--rdcjk-foreground);
}

.sw-article-card-public:hover .sw-article-card-public__body h2 {
    color: var(--rdcjk-secondary);
}

.sw-article-card-public__body p {
    color: rgba(43, 27, 96, 0.7);
}

.sw-article-listing__page {
    border-color: var(--rdcjk-border);
    color: var(--rdcjk-foreground);
}

.sw-article-listing__page:hover {
    border-color: var(--rdcjk-secondary);
    background: var(--rdcjk-muted);
}

.sw-article-listing__page.is-active {
    border-color: var(--rdcjk-primary);
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
}

.sw-article-listing__page--arrow {
    color: rgba(90, 61, 179, 0.75);
    font-size: 13px;
}

.sw-article-listing__pagination {
    flex-wrap: wrap;
    row-gap: 10px;
}

/* ---------- Detail článku ---------- */

.sw-article__date {
    color: rgba(90, 61, 179, 0.8);
}

.sw-article__header h1 {
    font-weight: 700;
    letter-spacing: -0.04em;
    color: var(--rdcjk-foreground);
}

.sw-article__submeta,
.sw-article__submeta span {
    color: rgba(90, 61, 179, 0.85);
}

.sw-article__submeta-sep {
    color: var(--rdcjk-border);
}

.sw-article__cover img {
    border-radius: var(--rdcjk-radius-lg);
}

.sw-article__content {
    color: rgba(43, 27, 96, 0.92);
}

.sw-article__content h2 {
    color: var(--rdcjk-foreground);
    letter-spacing: -0.03em;
}

.sw-article__content ul li::before {
    color: var(--rdcjk-secondary);
}

.sw-article__content ol li::before {
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
}

.sw-article__content img {
    border-radius: var(--rdcjk-radius);
}

.sw-article__gallery-item {
    border-radius: var(--rdcjk-radius);
}

.sw-article__attachments h2 {
    color: var(--rdcjk-foreground);
}

.sw-article__attachments a {
    border-color: var(--rdcjk-border);
    border-radius: var(--rdcjk-radius);
    color: var(--rdcjk-foreground);
}

.sw-article__attachments a:hover {
    background: var(--rdcjk-muted);
}

.sw-article__attachments a i {
    color: var(--rdcjk-secondary);
}

.sw-article__attachments a em {
    color: rgba(90, 61, 179, 0.7);
}

.sw-article__share {
    border-color: var(--rdcjk-border);
}

.sw-article__share-label {
    color: rgba(90, 61, 179, 0.8);
}

.sw-article__share-btn {
    border-color: var(--rdcjk-border);
    color: var(--rdcjk-foreground);
}

.sw-article__share-btn:hover {
    border-color: var(--rdcjk-secondary);
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
}

.sw-article__related {
    border-color: var(--rdcjk-border);
}

.sw-article__related h2 {
    color: var(--rdcjk-foreground);
}

.sw-article__related-cover {
    border-radius: var(--rdcjk-radius);
    background: var(--rdcjk-muted);
}

.sw-article__related-cover--placeholder {
    color: var(--rdcjk-secondary);
}

.sw-article__related-card h3 {
    color: var(--rdcjk-foreground);
}

.sw-article__related-card:hover h3 {
    color: var(--rdcjk-secondary);
}

.sw-article__back a {
    color: var(--rdcjk-secondary);
}

/* ---------- Sidebar u článku (Nastavení → Sidebar u článku) ---------- */

.sw-layout__sidenav,
.sw-layout__sidebar {
    border-color: var(--rdcjk-border);
    font-family: 'Poppins', sans-serif;
}

.sw-layout__sidebar .sw-block {
    border-color: var(--rdcjk-border);
}

.sw-layout__sidebar .sw-block__button-link .sw-block__button-link-anchor {
    background: var(--rdcjk-primary);
}

.sw-layout__sidebar .sw-block__contact-info {
    background: var(--rdcjk-muted);
}

.sw-layout__sidebar .sw-block__contact-info-name {
    color: var(--rdcjk-foreground);
}

.sw-layout__sidebar .sw-block__contact-info-item i {
    color: var(--rdcjk-secondary);
}

.sw-layout__sidebar .sw-block__mini-list h2 {
    color: rgba(90, 61, 179, 0.8);
}

.sw-layout__sidebar .sw-block__mini-list li:hover {
    background: var(--rdcjk-muted);
}

.sw-layout__sidebar .sw-block__mini-list-date {
    color: var(--rdcjk-secondary);
}

.sw-layout__sidebar .sw-block__mini-list a {
    color: var(--rdcjk-foreground);
}

.sw-layout__sidebar .sw-block__mini-list li:hover a {
    color: var(--rdcjk-secondary);
}

.sw-layout__sidebar .sw-block__mini-list-excerpt {
    color: rgba(90, 61, 179, 0.75);
}

/* ==========================================================================
   Obecné "funky" spotlight bloky (hero/callout/cta-banner/feature-split
   bez obrázku) – přes celou šířku, s rozptýlenými ikonami na pozadí, beze
   rámečků. Stejný vizuální jazyk jako hero/campaign/kresadlo na hlavní
   stránce výš, jen zobecněný pro libovolnou stránku (Pro dobrovolníky /
   Pro organizace apod.) – viz Blocks/BlockRegistry.php render() (klíč
   "band-{id}" pro theme-rdcjk.js).
   ========================================================================== */

.sw-block--hero,
.sw-block--callout,
.sw-block--cta-banner {
    padding: 0;
}

.sw-block--hero > .sw-container,
.sw-block--callout > .sw-container,
.sw-block--cta-banner > .sw-container {
    max-width: none;
    padding: 0;
}

.sw-block--hero .sw-block__inner,
.sw-block--callout .sw-block__inner,
.sw-block--cta-banner .sw-block__inner {
    max-width: none;
    margin: 0;
}

/* feature-split bez obrázku (viz :only-child níž) se chová stejně –
   :has() je podporované ve všech aktuálních prohlížečích (Chrome/Safari/
   Firefox 2023+), fallback bez :has() podpory jen nechá blok v běžné
   (užší) šířce, nic se nerozbije. */
.sw-block--feature-split:has(.sw-block__feature-copy:only-child),
.sw-block--feature-split:has(.sw-block__feature--plain),
.sw-block--feature-split:has(.sw-block__feature--cta) {
    padding: 0;
}

.sw-block--feature-split:has(.sw-block__feature-copy:only-child) > .sw-container,
.sw-block--feature-split:has(.sw-block__feature--plain) > .sw-container,
.sw-block--feature-split:has(.sw-block__feature--cta) > .sw-container {
    max-width: none;
    padding: 0;
}

.sw-block--feature-split:has(.sw-block__feature-copy:only-child) .sw-block__inner,
.sw-block--feature-split:has(.sw-block__feature--plain) .sw-block__inner,
.sw-block--feature-split:has(.sw-block__feature--cta) .sw-block__inner {
    max-width: none;
    margin: 0;
}

/* Bloky bez vlastního full-bleed pozadí (karty/kroky/citace/rich-text FAQ)
   dědí základní `.sw-block { padding: 32px 0; }` z blocks.css – na
   stránkách typu Pro dobrovolníky/Pro organizace to mezi sekcemi působí
   nahusto, proto tu dostávají větší odsazení shora/zespoda. */
.sw-block--cards,
.sw-block--steps,
.sw-block--quote,
.sw-block--rich-text,
.sw-block--link-list,
.sw-block--document-list {
    padding: 56px 0;
}

@media (min-width: 768px) {
    .sw-block--cards,
    .sw-block--steps,
    .sw-block--quote,
    .sw-block--rich-text,
    .sw-block--link-list,
    .sw-block--document-list {
        padding: 80px 0;
    }
}

/* ---------- hero (obecný, bez obrázku) ---------- */

.sw-block__hero {
    position: relative;
    overflow: clip;
    border-radius: 0;
    background-color: var(--rdcjk-primary);
    background-size: cover;
    background-position: center;
    padding: 104px 24px;
    text-align: center;
    color: var(--rdcjk-primary-foreground);
}

.sw-block__hero::before {
    display: none;
}

.sw-block__hero-content {
    position: relative;
    z-index: 2;
}

.sw-block__hero-content .eyebrow-pill {
    margin-bottom: 22px;
}

.sw-block__hero-content h1 {
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.1;
    font-size: clamp(2.2rem, 5vw, 3.6rem);
}

.sw-block__hero-content p {
    color: rgba(247, 255, 255, 0.85);
}

.sw-block__hero-button {
    background: var(--rdcjk-primary-foreground);
    color: var(--rdcjk-primary);
    font-weight: 700;
    border-radius: 999px;
    transition: transform 0.2s ease, background 0.2s ease;
}

.sw-block__hero-button:hover {
    transform: translateY(-1px);
    background: var(--rdcjk-muted);
}

.sw-block__hero-button--secondary {
    background: var(--rdcjk-accent);
    color: var(--rdcjk-accent-foreground);
}

.sw-block__hero-button--ghost {
    background: transparent;
    border-color: rgba(247, 255, 255, 0.5);
    color: var(--rdcjk-primary-foreground);
}

.sw-block__hero-note {
    color: rgba(247, 255, 255, 0.75);
    font-weight: 600;
}

@media (min-width: 768px) {
    .sw-block__hero {
        padding: 132px 24px;
    }
}

/* ---------- callout ---------- */

.sw-block__callout {
    position: relative;
    overflow: clip;
    border-left: none;
    border-radius: 0;
    padding: 72px 24px;
    text-align: center;
}

.sw-block__callout-inner {
    position: relative;
    z-index: 2;
    max-width: 760px;
}

.sw-block__callout--blue {
    background: var(--rdcjk-muted);
}

.sw-block__callout--green {
    background: #eaf8ef;
}

.sw-block__callout--yellow {
    background: #fff3e8;
}

.sw-block__callout strong {
    display: block;
    margin-bottom: 16px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
    font-size: clamp(1.4rem, 3.2vw, 2.1rem);
    color: var(--rdcjk-foreground);
}

.sw-block__callout p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(43, 27, 96, 0.85);
}

.sw-block__callout p + p {
    margin-top: 1em;
}

@media (min-width: 768px) {
    .sw-block__callout {
        padding: 96px 24px;
    }
}

.sw-block__callout-actions {
    margin-top: 28px;
}

.sw-block__callout-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 30px;
    border-radius: 999px;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
}

.sw-block__callout-button:hover {
    transform: translateY(-1px);
    background: #241651;
}

/* ---------- cta-banner ---------- */

.sw-block__cta {
    position: relative;
    overflow: clip;
    border-radius: 0;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    padding: 0;
    display: block;
}

.sw-block__cta-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
    text-align: left;
    padding: 72px 0;
}

@media (min-width: 768px) {
    .sw-block__cta-inner {
        padding: 96px 0;
    }
}

.sw-block__cta-copy {
    max-width: 640px;
}

.sw-block__cta-copy h2 {
    font-weight: 700;
    letter-spacing: -0.03em;
    max-width: none;
}

.sw-block__cta-copy p,
.sw-block__cta-copy ul {
    color: rgba(247, 255, 255, 0.82);
    max-width: 52ch;
}

.sw-block__cta-copy ul {
    margin: 10px 0 0;
    padding-left: 20px;
}

.sw-block__cta-copy h3 {
    margin: 18px 0 6px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--rdcjk-primary-foreground);
}

.sw-block__cta-copy li {
    margin-bottom: 4px;
}

.sw-block__cta-button {
    background: var(--rdcjk-accent);
    color: var(--rdcjk-accent-foreground);
    font-weight: 700;
    border-radius: 999px;
    transition: transform 0.2s ease;
}

.sw-block__cta-button:hover {
    transform: translateY(-1px);
}

.sw-block__cta-button--white {
    background: var(--rdcjk-primary-foreground);
    color: var(--rdcjk-primary);
}

/* ---------- cards (ikonové karty) – bez rámečků, dělené čárami jako
   quick-links-grid na hlavní stránce, ne jednotlivé bordované boxy. ---------- */

.sw-block__cards h2 {
    margin: 0 0 8px;
    text-align: left;
    font-weight: 700;
    letter-spacing: -0.03em;
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    color: var(--rdcjk-foreground);
}

.sw-block__cards-grid {
    gap: 0;
}

.sw-block__card {
    border: none;
    border-radius: 0;
    overflow: visible;
    padding: 28px;
    transition: none;
}

.sw-block__card:hover {
    border-color: transparent;
}

.sw-block__card-bar {
    display: none;
}

.sw-block__card-body {
    padding: 0;
}

.sw-block__card-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
    font-size: 1.3rem;
    transition: transform 0.2s ease;
}

.sw-block__card:hover .sw-block__card-icon {
    transform: rotate(-6deg) scale(1.06);
}

.sw-block__card h3 {
    letter-spacing: -0.02em;
    color: var(--rdcjk-foreground);
}

.sw-block__card p {
    color: rgba(90, 61, 179, 0.8);
}

.sw-block__card-link,
.sw-block__card-link--blue,
.sw-block__card-link--green,
.sw-block__card-link--yellow {
    color: var(--rdcjk-secondary);
}

@media (max-width: 900px) {
    .sw-block__card:not(:first-child) {
        border-top: 1px solid var(--rdcjk-border);
    }
}

@media (min-width: 901px) {
    .sw-block__card:not(:nth-child(3n+1)) {
        border-left: 1px solid var(--rdcjk-border);
    }

    .sw-block__card:nth-child(n+4) {
        border-top: 1px solid var(--rdcjk-border);
    }
}

/* ---------- steps ---------- */

.sw-block__steps-wrap h2 {
    text-align: left;
    font-weight: 700;
    letter-spacing: -0.03em;
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    color: var(--rdcjk-foreground);
}

/* Workflow/postup vzhled – číslované kolečko + tečkovaná spojnice mezi
   kroky (jako šipka v postupu) na desktopu, kde se všechny kroky vejdou
   do jednoho řádku vedle sebe. Na užší obrazovce (kroky se zalamují do
   víc řádků) by spojnice mířila do prázdna, tam zůstávají jen dělicí
   čáry mezi buňkami. */
.sw-block__steps {
    gap: 0;
}

.sw-block__step {
    position: relative;
    border: none;
    border-radius: 0;
    padding: 28px;
}

.sw-block__step::before {
    position: relative;
    z-index: 2;
    width: 44px;
    height: 44px;
    font-size: 17px;
    background: var(--rdcjk-secondary);
    color: var(--rdcjk-primary-foreground);
    box-shadow: 0 0 0 6px var(--rdcjk-background);
}

.sw-block__step b {
    color: var(--rdcjk-foreground);
}

.sw-block__step p {
    color: rgba(90, 61, 179, 0.8);
}

@media (max-width: 900px) {
    .sw-block__step:nth-child(even) {
        border-left: 1px solid var(--rdcjk-border);
    }

    .sw-block__step:nth-child(n+3) {
        border-top: 1px solid var(--rdcjk-border);
    }
}

@media (min-width: 901px) {
    .sw-block__step:not(:last-child)::after {
        content: '';
        position: absolute;
        z-index: 1;
        top: 50px;
        left: calc(28px + 44px);
        right: -20px;
        height: 2px;
        background-image: linear-gradient(to right, var(--rdcjk-accent) 0 8px, transparent 8px 16px);
        background-size: 16px 2px;
        background-repeat: repeat-x;
    }
}

/* ---------- feature-split ---------- */

.sw-block__feature-copy h2 {
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--rdcjk-foreground);
}

.sw-block__feature-copy > p {
    color: rgba(90, 61, 179, 0.85);
}

.sw-block__feature-copy .eyebrow-pill {
    margin-bottom: 16px;
}

/* Bez obrázku (image_url prázdné) se nerenderuje .sw-block__feature-media
   – ať kopie zabere celou šířku a dostane stejné "spotlight" ošetření
   (plná šířka, ikony) jako hero/callout výš. Dvě varianty:
   - .sw-block__feature--plain (bez seznamu bodů, např. "Průvodce") – text
     vlevo, tlačítko vpravo, tmavé pozadí jako campaign-poster.
   - s .sw-block__feature-points (např. "Zařazení do sítě") – zůstává
     stackovaný/centrovaný layout na jemném pozadí, ať dlouhý seznam
     nebojuje s tlačítkem vedle sebe. */
.sw-block__feature-copy:only-child {
    grid-column: 1 / -1;
    max-width: 780px;
    margin: 0 auto;
    padding: 80px 24px;
    text-align: center;
    position: relative;
    z-index: 2;
}

.sw-block--feature-split:has(.sw-block__feature-copy:only-child) .sw-block__feature {
    background: rgba(247, 225, 251, 0.35);
}

.sw-block__feature-copy:only-child .sw-block__feature-points {
    text-align: left;
}

.sw-block__feature-copy:only-child .sw-block__feature-actions {
    justify-content: center;
}

.sw-block__feature-point {
    border-color: var(--rdcjk-border);
}

.sw-block__feature-point i {
    color: var(--rdcjk-secondary);
}

.sw-block__feature-point b {
    color: var(--rdcjk-foreground);
}

.sw-block__feature-point span span {
    color: rgba(90, 61, 179, 0.8);
}

.sw-block__feature-button {
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    border-radius: 999px;
    font-weight: 700;
    transition: transform 0.2s ease;
}

.sw-block__feature-button i {
    margin-right: 4px;
}

.sw-block__feature-button:hover {
    transform: translateY(-1px);
}

.sw-block__feature-button--ghost {
    border-color: var(--rdcjk-border);
    color: var(--rdcjk-foreground);
}

@media (min-width: 768px) {
    .sw-block__feature-copy:only-child {
        padding: 104px 24px;
    }
}

/* ---------- feature-split "plain" (bez bodů, viz Blocks/BlockRegistry.php
   $noImageRowLayout) – text vlevo, tlačítko vpravo, tmavé pozadí jako
   campaign-poster/hero, ne poskládané pod sebe uprostřed. ---------- */

.sw-block__feature--plain {
    display: block;
    position: relative;
    overflow: clip;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
}

.sw-block__feature--plain .sw-block__feature-copy {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    max-width: none;
    text-align: left;
    padding: 72px 0;
}

@media (min-width: 768px) {
    .sw-block__feature--plain .sw-block__feature-copy {
        padding: 96px 0;
    }
}

.sw-block__feature-text {
    flex: 0 1 620px;
}

.sw-block__feature--plain .eyebrow-pill {
    border: 0;
    background: rgba(247, 255, 255, 0.1);
    color: var(--rdcjk-primary-foreground);
    box-shadow: none;
}

.sw-block__feature--plain h2 {
    color: var(--rdcjk-primary-foreground);
}

.sw-block__feature--plain .sw-block__feature-text > p {
    color: rgba(247, 255, 255, 0.85);
}

.sw-block__feature--plain .sw-block__feature-actions {
    flex: none;
    margin-top: 0;
    justify-content: flex-start;
}

.sw-block__feature--plain .sw-block__feature-button {
    background: var(--rdcjk-primary-foreground);
    color: var(--rdcjk-primary);
}

.sw-block__feature--plain .sw-block__feature-button:hover {
    background: var(--rdcjk-muted);
}

.sw-block__feature-button--disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

.sw-block__feature-note {
    width: 100%;
    margin: 14px 0 0;
    font-size: 0.85rem;
    line-height: 1.5;
}

.sw-block__feature--plain .sw-block__feature-note {
    color: rgba(247, 255, 255, 0.7);
}

@media (max-width: 639px) {
    .sw-block__feature--plain .sw-block__feature-actions {
        width: 100%;
    }

    .sw-block__feature--plain .sw-block__feature-button {
        width: 100%;
    }
}

/* ---------- feature-split "cta" (body + tlačítko, žádný obrázek, viz
   Blocks/BlockRegistry.php $noImageCtaLayout) – info vlevo, výrazná CTA
   karta vpravo (velké tlačítko + poznámka), přes celou šířku jako pastelový
   pás (stejný jazyk jako callout výš). ---------- */

.sw-block__feature--cta {
    display: block;
    position: relative;
    overflow: clip;
    background: rgba(247, 225, 251, 0.45);
}

.sw-block__feature-cta-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 48px;
    align-items: center;
    padding: 72px 0;
}

@media (min-width: 768px) {
    .sw-block__feature-cta-grid {
        padding: 96px 0;
    }
}

@media (max-width: 900px) {
    .sw-block__feature-cta-grid {
        grid-template-columns: 1fr;
    }
}

.sw-block__feature--cta .sw-block__feature-points {
    grid-template-columns: 1fr 1fr;
}

.sw-block__feature-cta-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    text-align: center;
    background: var(--rdcjk-card);
    border-radius: var(--rdcjk-radius-lg);
    padding: 40px 32px;
    box-shadow: var(--rdcjk-shadow);
}

.sw-block__feature-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 320px;
    min-height: 56px;
    padding: 0 28px;
    border-radius: 999px;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    font-weight: 700;
    font-size: 1.05rem;
    text-align: center;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
}

.sw-block__feature-cta-button:hover {
    transform: translateY(-1px);
    background: #241651;
}

.sw-block__feature-cta-note {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: rgba(43, 27, 96, 0.65);
}

/* ---------- button-link ---------- */

.sw-block__button-link {
    text-align: center;
    padding: 12px 0 32px;
}

.sw-block__button-link .sw-block__button-link-anchor {
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    font-weight: 700;
    border-radius: 999px;
    min-height: 44px;
    padding: 0 24px;
}

/* ---------- quote – bez boxu, velké tučné prohlášení mezi vodorovnými
   čárami, ne barevná postranní obruba. ---------- */

.sw-block__quote {
    position: relative;
    margin: 0;
    padding: 48px 0;
    border: none;
    border-top: 1px solid var(--rdcjk-border);
    border-bottom: 1px solid var(--rdcjk-border);
    background: none;
    border-radius: 0;
    text-align: center;
}

.sw-block__quote::before {
    content: '\201C';
    display: block;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 4.5rem;
    line-height: 1;
    color: var(--rdcjk-accent);
    margin-bottom: 4px;
}

.sw-block__quote p {
    max-width: 720px;
    margin: 0 auto 14px;
    font-size: clamp(1.3rem, 3vw, 1.9rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.4;
    color: var(--rdcjk-foreground);
    font-style: normal;
}

.sw-block__quote footer {
    justify-content: center;
    color: rgba(90, 61, 179, 0.8);
}

.sw-block__quote footer strong {
    color: var(--rdcjk-foreground);
}

/* ---------- rich-text: FAQ (<details>/<summary>) a dvousloupcové srovnání
   – bez rámečků kolem každé položky, jen vodorovná/svislá dělicí čára. ---------- */

.sw-rdcjk-compare {
    display: grid;
    gap: 32px;
    margin: 0;
}

.sw-rdcjk-compare__col {
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
}

.sw-rdcjk-compare__col h3 {
    margin: 0 0 16px;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--rdcjk-foreground);
}

.sw-rdcjk-compare__col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0;
}

.sw-rdcjk-compare .sw-rdcjk-compare__col li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 12px 0;
    border-top: 1px solid var(--rdcjk-border);
    font-size: 0.95rem;
    line-height: 1.5;
    color: rgba(43, 27, 96, 0.85);
}

.sw-rdcjk-compare__col li:first-child {
    border-top: none;
}

/* Fajfka/křížek jen jako decentní CSS značka (žádná přidaná zelená/červená
   ikonka v HTML) – stejná tlumená fialová jako zbytek textu, jen jiný
   znak podle sloupce. */
/* Specificita musí trumfnout obecné odrážkové pravidlo pro <ul> uvnitř
   rich-textu (.sw-block__rich-text ul li::before, viz blocks.css – fajfka
   pro běžné seznamy z WYSIWYG editoru), jinak by vyhrálo ono a obě
   srovnávací sekce by měly stejnou (Font Awesome) fajfku bez ohledu na
   --yes/--no varchtu – proto dvě třídy v selektoru místo jedné. */
.sw-rdcjk-compare .sw-rdcjk-compare__col--yes li::before {
    content: "✓";
    font-family: inherit;
    flex: none;
    font-weight: 700;
    color: rgba(90, 61, 179, 0.55);
    transform: none;
}

.sw-rdcjk-compare .sw-rdcjk-compare__col--no li::before {
    content: "✕";
    font-family: inherit;
    flex: none;
    font-weight: 700;
    color: rgba(90, 61, 179, 0.4);
    transform: none;
}

.sw-rdcjk-compare__note {
    margin: 24px 0 0;
    font-size: 0.9rem;
    color: rgba(90, 61, 179, 0.8);
}

@media (min-width: 720px) {
    .sw-rdcjk-compare {
        grid-template-columns: 1fr 1fr;
    }

    .sw-rdcjk-compare__col:last-child {
        border-left: 1px solid var(--rdcjk-border);
        padding-left: 32px;
    }
}

.sw-rdcjk-faq {
    display: grid;
    gap: 0;
}

.sw-rdcjk-faq details {
    padding: 0;
    border: none;
    border-radius: 0;
    border-bottom: 1px solid var(--rdcjk-border);
    background: none;
}

.sw-rdcjk-faq details:first-child {
    border-top: 1px solid var(--rdcjk-border);
}

.sw-rdcjk-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 4px;
    font-weight: 600;
    color: var(--rdcjk-foreground);
    cursor: pointer;
    list-style: none;
}

.sw-rdcjk-faq summary::-webkit-details-marker {
    display: none;
}

.sw-rdcjk-faq summary::after {
    content: '\f078';
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    flex: none;
    font-size: 0.8rem;
    color: var(--rdcjk-secondary);
    transition: transform 0.2s ease;
}

.sw-rdcjk-faq details[open] summary::after {
    transform: rotate(180deg);
}

.sw-rdcjk-faq p {
    margin: 0 0 20px;
    padding: 0 4px;
    color: rgba(43, 27, 96, 0.85);
    line-height: 1.6;
}

/* ---------- link-list – grid s dělicími čárami (žádný vnější rámeček),
   viz Blocks/BlockRegistry.php renderLinkList(). Použito pro "Předchozí
   ročníky" na /kresadlo apod. – položky bez odkazu (url prázdné) se
   vykreslí jako <span>, ne <a>, takže se dají doplnit později. ---------- */

.sw-block__link-list h2 {
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--rdcjk-foreground);
}

.sw-block__link-list-grid {
    border: none;
    border-radius: 0;
}

.sw-block__link-item {
    border-color: var(--rdcjk-border) !important;
    cursor: default;
}

.sw-block__link-item[href] {
    cursor: pointer;
}

.sw-block__link-item:hover {
    background: var(--rdcjk-muted);
}

.sw-block__link-item .dot {
    background: var(--rdcjk-secondary) !important;
}

.sw-block__link-item-body b {
    color: var(--rdcjk-foreground);
}

.sw-block__link-item-body span {
    color: rgba(90, 61, 179, 0.75);
}

/* ---------- document-list – dokumenty ke stažení seskupené podle
   kategorie (viz Blocks/BlockRegistry.php renderDocumentList()). Stejný
   jazyk jako link-list výš: dělicí čáry mezi položkami, žádný vnější
   rámeček. Nadpis skupiny se vykreslí jen když existuje víc než jedna
   kategorie. ---------- */

.sw-block__document-list h2 {
    margin: 0 0 32px;
    font-weight: 700;
    letter-spacing: -0.03em;
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    color: var(--rdcjk-foreground);
}

.sw-block__document-group + .sw-block__document-group {
    margin-top: 40px;
}

.sw-block__document-group-title {
    margin: 0 0 12px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--rdcjk-secondary);
}

.sw-block__document-grid {
    display: flex;
    flex-direction: column;
}

.sw-block__document-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 8px;
    margin: 0 -8px;
    border-radius: var(--rdcjk-radius);
    border-top: 1px solid var(--rdcjk-border);
    text-decoration: none;
    transition: background 0.15s ease;
}

.sw-block__document-grid .sw-block__document-item:first-child {
    border-top: none;
}

.sw-block__document-item:hover {
    background: var(--rdcjk-muted);
}

.sw-block__document-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
    font-size: 1.05rem;
}

.sw-block__document-body {
    flex: 1;
    min-width: 0;
}

.sw-block__document-title {
    display: block;
    font-weight: 600;
    color: var(--rdcjk-foreground);
}

.sw-block__document-meta {
    display: block;
    margin-top: 3px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(90, 61, 179, 0.65);
}

.sw-block__document-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    font-size: 0.85rem;
    transition: transform 0.2s ease, background 0.2s ease;
}

.sw-block__document-item:hover .sw-block__document-download {
    transform: translateY(-1px);
    background: #241651;
}

/* Sekce přes celou šířku – stejný recept jako hero-search / campaign-poster:
   blok i jeho kontejner se zbaví odsazení a max-width, takže pozadí jde od
   kraje ke kraji a není z něj plovoucí kartička uprostřed stránky. */
.sw-block--logo-strip {
    padding: 0;
    font-family: 'Poppins', sans-serif;
}

.sw-block--logo-strip > .sw-container {
    max-width: none;
    padding: 0;
}

.sw-block--logo-strip .sw-block__inner {
    max-width: none;
    margin: 0;
}

/* ───────────────────────────────────────────────────────────────────────────
   Pruh s logy (logo-strip)

   Základ v blocks.css je neutrální „kartička". Na tomhle webu ale sekce
   nejsou karty – hero i callout jdou přes celou šířku, bez zaoblení a
   s velkým vnitřním odsazením. Fialová varianta se proto chová jako hero
   (tmavý pruh), světlá jako callout (jemné pozadí).
   ─────────────────────────────────────────────────────────────────────── */
.sw-block__logo-strip {
    position: relative;
    overflow: clip;
    border: none;
    border-radius: 0;
    padding: 72px 24px;
    text-align: center;
}

.sw-block__logo-strip--purple {
    background: var(--rdcjk-primary);
    border: none;
}

.sw-block__logo-strip--light {
    background: var(--rdcjk-muted);
    border: none;
}

.sw-block__logo-strip-heading {
    margin: 0 0 40px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
    font-size: clamp(1.25rem, 2.4vw, 1.6rem);
}

.sw-block__logo-strip--purple .sw-block__logo-strip-heading {
    color: var(--rdcjk-primary-foreground);
}

.sw-block__logo-strip--light .sw-block__logo-strip-heading {
    color: var(--rdcjk-foreground);
}

.sw-block__logo-strip-grid {
    gap: 48px 72px;
    max-width: 960px;
    margin: 0 auto;
}

/* Loga bývají různě vysoká (šířkové logo vs. čtvercový znak), proto se
   omezuje hlavně výška – tím opticky sednou na jednu linku. */
.sw-block__logo-strip-item {
    height: 88px;
}

.sw-block__logo-strip-item img {
    max-height: 88px;
    max-width: 260px;
}

.sw-block__logo-strip-note {
    margin: 40px auto 0;
    max-width: 760px;
    font-size: 1rem;
    line-height: 1.7;
}

.sw-block__logo-strip--purple .sw-block__logo-strip-note {
    color: rgba(247, 255, 255, 0.78);
}

.sw-block__logo-strip--light .sw-block__logo-strip-note {
    color: rgba(43, 27, 96, 0.85);
}

@media (min-width: 768px) {
    .sw-block__logo-strip {
        padding: 96px 24px;
    }
}

@media (max-width: 640px) {
    .sw-block__logo-strip { padding: 56px 20px; }
    .sw-block__logo-strip-grid { gap: 32px 40px; }
    .sw-block__logo-strip-item,
    .sw-block__logo-strip-item img { height: 60px; max-height: 60px; }
}

/* ---------- downloads – soubory ke stažení ----------
   Stejný jazyk jako document-list na stránce Ke stažení: dělicí čáry, ikona
   v jemném čtverci, název s metařádkem a kulaté tlačítko se šipkou. Varianta
   `--preview` místo ikony ukáže zmenšeninu obrázku – pro grafiky a plakáty,
   kde je podstatné, jak soubor vypadá. */

.sw-block__downloads h2 {
    margin: 0 0 32px;
    font-weight: 700;
    letter-spacing: -0.03em;
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    color: var(--rdcjk-foreground);
}

.sw-block__downloads-grid {
    display: flex;
    flex-direction: column;
}

.sw-block__downloads-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 8px;
    margin: 0 -8px;
    border-radius: var(--rdcjk-radius);
    border-top: 1px solid var(--rdcjk-border);
    text-decoration: none;
    transition: background 0.15s ease;
}

.sw-block__downloads-grid .sw-block__downloads-item:first-child {
    border-top: none;
}

.sw-block__downloads-item:hover {
    background: var(--rdcjk-muted);
}

.sw-block__downloads-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
    font-size: 1.05rem;
}

.sw-block__downloads-body {
    flex: 1;
    min-width: 0;
}

.sw-block__downloads-title {
    display: block;
    font-weight: 600;
    color: var(--rdcjk-foreground);
}

.sw-block__downloads-meta {
    display: block;
    margin-top: 3px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(90, 61, 179, 0.65);
}

.sw-block__downloads-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: var(--rdcjk-primary);
    color: var(--rdcjk-primary-foreground);
    font-size: 0.85rem;
    transition: transform 0.15s ease;
}

.sw-block__downloads-item:hover .sw-block__downloads-download {
    transform: translateY(2px);
}

/* ---- varianta s náhledy ---- */

.sw-block__downloads--preview .sw-block__downloads-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 24px;
}

.sw-block__downloads--preview .sw-block__downloads-item {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
    border: 1px solid var(--rdcjk-border);
    border-radius: var(--rdcjk-radius-lg);
    overflow: hidden;
    background: var(--rdcjk-card);
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.sw-block__downloads--preview .sw-block__downloads-item:hover {
    background: var(--rdcjk-card);
    box-shadow: var(--rdcjk-shadow-soft);
    transform: translateY(-2px);
}

.sw-block__downloads-thumb {
    display: block;
    background: var(--rdcjk-muted);
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.sw-block__downloads-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Soubor bez náhledu (PDF) dostane v mřížce aspoň velkou ikonu, ať karty
   nejsou různě vysoké. */
.sw-block__downloads--preview .sw-block__downloads-icon {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    border-radius: 0;
    font-size: 2.4rem;
}

.sw-block__downloads--preview .sw-block__downloads-body {
    padding: 18px 20px 0;
}

.sw-block__downloads--preview .sw-block__downloads-download {
    width: auto;
    height: auto;
    margin: 14px 20px 20px;
    padding: 10px 18px;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    gap: 8px;
}

.sw-block__downloads--preview .sw-block__downloads-download::after {
    content: 'Stáhnout';
}

@media (max-width: 640px) {
    .sw-block__downloads--preview .sw-block__downloads-grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- contact-info v hlavním obsahu ----------
   Blok měl v tématu styl jen pro sidebar (.sw-layout__sidebar výš), takže
   uprostřed stránky zůstával jako holý text. Tady dostává podobu karty se
   stejnými prvky jako položky v document-list: ikona v jemném čtverci,
   jméno a kontaktní řádky. */

.sw-block--contact-info .sw-block__contact-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 36px 28px;
    border: 1px solid var(--rdcjk-border);
    border-radius: var(--rdcjk-radius-lg);
    background: var(--rdcjk-card);
    text-align: center;
}

.sw-block--contact-info .sw-block__contact-info-name {
    margin-bottom: 14px;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--rdcjk-foreground);
}

.sw-block--contact-info .sw-block__contact-info-item {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 8px 4px;
    font-weight: 600;
    color: var(--rdcjk-secondary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.sw-block--contact-info .sw-block__contact-info-item:hover {
    color: var(--rdcjk-primary);
}

.sw-block--contact-info .sw-block__contact-info-item i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: var(--rdcjk-muted);
    color: var(--rdcjk-secondary);
    font-size: 0.9rem;
}

@media (min-width: 620px) {
    .sw-block--contact-info .sw-block__contact-info {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px 28px;
    }

    .sw-block--contact-info .sw-block__contact-info-name {
        width: 100%;
        margin-bottom: 4px;
    }
}
