/* detail článku – 1:1 designový jazyk se zbytkem webu (designové tokeny,
   .tag pill kategorie, .sw-block__downloads-item vzhled přílohy). Bez
   sidebaru zůstává centrovaný úzký sloupec (čtení), se sidebarem
   (Nastavení → "Sidebar u článku") se article zarovná vlevo v širším
   dvousloupcovém layoutu – viz .sw-layout/.sw-layout--right (web.css). */
.sw-article {
    max-width: 760px;
    padding-top: 40px;
    padding-bottom: 64px;
}

.sw-article--with-sidebar {
    max-width: none;
    margin: 0;
    padding-top: 40px;
    padding-bottom: 64px;
}

/* Pořadí v hlavičce: datum vydání (nahoře, drobně) → velký nadpis →
   kategorie (prostý text, ne pill) · minuty čtení. */
.sw-article__date {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 14px;
}

.sw-article__header h1 {
    margin: 0 0 12px;
    font-size: clamp(30px, 4.6vw, 46px);
    line-height: 1.12;
    color: var(--ink);
}

.sw-article__submeta {
    margin: 0 0 28px;
    color: var(--muted);
    font-size: 14.5px;
    font-weight: 600;
}

.sw-article__submeta span {
    color: var(--muted);
}

.sw-article__submeta-sep {
    margin: 0 8px;
    color: var(--line);
}

.sw-article__cover {
    margin: 0 0 32px;
}

.sw-article__cover a {
    display: block;
    cursor: zoom-in;
}

.sw-article__cover img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 480px;
    object-fit: cover;
    border-radius: var(--r);
}

.sw-article__content {
    font-size: 17px;
    line-height: 1.8;
    color: var(--ink);
}

.sw-article__content p {
    margin: 0 0 1.4em;
}

.sw-article__content h2 {
    font-size: 23px;
    margin: 38px 0 14px;
    color: var(--ink);
}

.sw-article__content ul {
    list-style: none;
    margin: 0 0 1.4em;
    padding: 0;
    display: grid;
    gap: 10px;
}

.sw-article__content ul li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.sw-article__content ul li::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    flex: none;
    font-size: 14px;
    color: var(--blue);
    transform: translateY(4px);
}

/* Číslovaný seznam – stejný "flex řádek" jazyk jako odrážky výš, jen
   místo fajfky kulatý štítek s číslem. */
.sw-article__content ol {
    list-style: none;
    margin: 0 0 1.4em;
    padding: 0;
    counter-reset: sw-article-ol;
    display: grid;
    gap: 10px;
}

.sw-article__content ol li {
    counter-increment: sw-article-ol;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.sw-article__content ol li::before {
    content: counter(sw-article-ol);
    flex: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--blue-soft);
    color: var(--blue);
    font-size: 13px;
    font-weight: 700;
    line-height: 24px;
    text-align: center;
}

.sw-article__content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 32px 0;
    border-radius: var(--r-s);
}

.sw-article__gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 14px;
    margin: 32px 0;
}

.sw-article__gallery-item {
    display: block;
    cursor: zoom-in;
    border-radius: var(--r-s);
    overflow: hidden;
}

.sw-article__gallery-item img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}

.sw-article__gallery-item:hover img {
    transform: scale(1.06);
}

.sw-article__attachments {
    margin: 40px 0;
}

.sw-article__attachments h2 {
    margin: 0 0 16px;
    font-size: 20px;
    color: var(--ink);
}

.sw-article__attachments ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.sw-article__attachments a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-radius: var(--r-s);
    border: 1px solid var(--line);
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
}

.sw-article__attachments a:hover {
    background: var(--blue-soft);
}

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

.sw-article__attachments a em {
    margin-left: auto;
    font-style: normal;
    font-weight: 400;
    font-size: 13px;
    color: var(--muted);
}

/* sdílet – pod textem, nad galerií/přílohami */
.sw-article__share {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 36px 0;
    padding-top: 28px;
    border-top: 1px solid var(--line);
}

.sw-article__share-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--muted);
    margin-right: 4px;
}

.sw-article__share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    cursor: pointer;
    font-size: 14px;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.sw-article__share-btn:hover {
    border-color: var(--blue);
    background: var(--blue-soft);
    color: var(--blue);
}

/* "Číst dál" – 3 související články */
.sw-article__related {
    margin-top: 48px;
    padding-top: 40px;
    border-top: 1px solid var(--line);
}

.sw-article__related h2 {
    margin: 0 0 20px;
    font-size: 22px;
    color: var(--ink);
}

.sw-article__related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 20px;
}

.sw-article__related-card {
    display: block;
    text-decoration: none;
    color: inherit;
}

.sw-article__related-cover {
    aspect-ratio: 16 / 11;
    border-radius: var(--r-s);
    overflow: hidden;
    background: var(--blue-soft);
    margin-bottom: 10px;
}

.sw-article__related-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}

.sw-article__related-card:hover .sw-article__related-cover img {
    transform: scale(1.05);
}

.sw-article__related-cover--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    font-size: 26px;
    opacity: .55;
}

.sw-article__related-card h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ink);
}

.sw-article__back {
    margin-top: 40px;
}

.sw-article__back a {
    color: var(--blue);
    text-decoration: none;
    font-weight: 600;
}

/* výpis článků – 1:1 designový jazyk se zbytkem webu (karty jako
   .sw-block__news-card, pill filtry/paginace jako .btn/.tag). */
.sw-article-listing {
    padding-top: 8px;
    padding-bottom: 64px;
}

/* Hlavička výpisu je teď .sw-listing-head (web.css) – 1:1 s .svc-head
   z referenčního designového mockupu webu, viz custom-article-listing.php. */

.sw-article-listing__filters {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 36px;
}

.sw-article-listing__search {
    flex: 1 1 240px;
    padding: 12px 18px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    font-size: 14.5px;
    font-family: inherit;
    color: var(--ink);
    transition: border-color .15s ease;
}

.sw-article-listing__search::placeholder {
    color: var(--muted);
}

.sw-article-listing__search:focus {
    outline: none;
    border-color: var(--blue);
}

/* Vlastní šipka místo natvrdo prohlížečové (appearance:none) – jinak
   nativní select vypadá vedle zaoblených pill inputů nekonzistentně. */
.sw-article-listing__select-wrap {
    position: relative;
    display: inline-flex;
}

.sw-article-listing__select-wrap i {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    color: var(--muted);
    pointer-events: none;
}

.sw-article-listing__category {
    appearance: none;
    padding: 12px 42px 12px 18px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    font-size: 14.5px;
    font-family: inherit;
    color: var(--ink);
    cursor: pointer;
}

.sw-article-listing__category:hover {
    border-color: var(--blue);
}

.sw-article-listing__category:focus {
    outline: none;
    border-color: var(--blue);
}

.sw-article-listing__filters .btn {
    padding: 12px 24px;
    font-size: 14.5px;
}

.sw-article-listing__empty {
    color: var(--muted);
    padding: 60px 0;
    text-align: center;
    font-size: 15px;
}

.sw-article-listing__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 26px;
}

.sw-article-card-public {
    display: flex;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

.sw-article-card-public__cover {
    position: relative;
    aspect-ratio: 16 / 11;
    margin-bottom: 24px;
}

.sw-article-card-public__cover::before {
    content: "";
    position: absolute;
    inset: 0;
    transform: translate(8px, 8px);
    border-radius: var(--r);
    background: var(--blue);
}

.sw-article-card-public:nth-child(3n+2) .sw-article-card-public__cover::before {
    background: var(--green);
}

.sw-article-card-public:nth-child(3n+3) .sw-article-card-public__cover::before {
    background: var(--yellow);
}

.sw-article-card-public__cover img {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: var(--r);
    transition: transform .25s ease;
}

.sw-article-card-public:hover .sw-article-card-public__cover img {
    transform: translate(-4px, -4px);
}

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

.sw-article-card-public__cover--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--r);
    background: var(--blue-soft);
    color: var(--blue);
    font-size: 34px;
    opacity: .55;
}

.sw-article-card-public__body {
    padding: 0 2px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
}

.sw-article-card-public__date {
    display: block;
    font-size: 13px;
    color: var(--muted);
}

.sw-article-card-public__body h2 {
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
    color: var(--ink);
}

.sw-article-card-public__body p {
    margin: 0;
    flex: 1;
    font-size: 14px;
    color: var(--muted);
    line-height: 1.55;
}

.sw-article-listing__pagination {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 48px;
}

.sw-article-listing__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    transition: border-color .15s ease, background-color .15s ease;
}

.sw-article-listing__page:hover {
    border-color: var(--blue);
    background: var(--blue-soft);
}

.sw-article-listing__page.is-active {
    border-color: var(--blue);
    background: var(--blue);
    color: #ffffff;
}
