/**
 * Karta článku ve výpise — jeden vzhled napříč celým webem.
 *
 * Platí na třech místech, kde se článek vypisuje:
 *   • homepage — shortcode [nst_clanky], viz functions.php
 *   • rubriky /jak-vybrat/, /recenze-erotickych-pomucek/, /tipy-pro-lepsi-sex/
 *   • výsledky hledání
 *
 * Do 10. 9. 2026 to byly tři různé věci: homepage vykreslovala růžové boxy
 * blokem Spectra Post Grid, rubriky holý Astřin výpis bez karty s anglickým
 * „Read More »“ a hledání totéž. Shortcode proto vypisuje **stejné třídy,
 * jaké dává Astra svému archivu** (.ast-article-inner, .entry-title,
 * .ast-read-more-container). Díky tomu drží všechna tři místa jeden soubor
 * CSS a nemusí se nic psát dvakrát.
 *
 * PRAVIDLO, KTERÉ TENHLE SOUBOR DRŽÍ (navazuje na kategorie.css): bílá karta
 * se stínem, která se při najetí zvedá, patří výhradně produktu. Karta článku
 * je proto ze stejného materiálu — bílá, rámeček #e7e2e6, radius 14 — ale
 * **bez stínu a bez zvedání**. Sourozenec, ne dvojče. Odezvou na najetí je
 * zrůžovělý rámeček, nadpis a popojetí šipky, ne vrstvení nad stránku.
 * Ve výsledcích hledání se podle toho poznají produkty od článků: produkt
 * dostane plovoucí kartu se stínem, článek plochou s rámečkem.
 *
 * Druhé pravidlo: **plná růžová #FF49AA je vyhrazená odchodu k partnerovi.**
 * „Číst více“ vede na vlastní článek, žádná provize z toho není, takže je to
 * textový odkaz se šipkou v #c2186f, ne tlačítko. Dřív to na homepage tlačítko
 * bylo a bralo pozornost jediné akci, která vydělává.
 *
 * POZOR NA SELEKTORY. Třídu `.ast-archive-post` dává Astra i položkám
 * WooCommerce smyčky, takže ji nese i produkt na stránce kategorie katalogu.
 * Tady se proto všude váže na `.ast-article-inner`, což je obal Astřina
 * blogového rozvržení — ten produkt ve smyčce nemá. Mřížka je navíc omezená
 * na `body.category`, `body.search` a `body.author`; `body.archive` by sahalo
 * i na katalog, kde si výpis řeší vypis-produktu.css.
 *
 * Vlastní soubor a ne style.css: FTPS na Blueboardu se nad ~20 kB usekává,
 * viz komentář ve vypis-produktu.css.
 */


/* Mřížka
   ------------------------------------------------------------------------- */

/* Astra staví výpis jako .ast-row s odsazením ve sloupcích, takže mezery mezi
   kartami vznikají z paddingu a karty nejsou stejně vysoké. Přepnuto na grid:
   rozestupy drží gap a stretch srovná výšky bez ohledu na délku nadpisu. */
body.category main#main > .ast-row,
body.search main#main > .ast-row,
body.author main#main > .ast-row,
.nst-clanky {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    margin: 0;
}

.nst-clanky {
    margin: 2.5em 0;
}

body.category main#main > .ast-row > article,
body.search main#main > .ast-row > article,
body.author main#main > .ast-row > article,
.nst-clanky > article {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    flex: none;
}


/* Karta
   ------------------------------------------------------------------------- */

/* Stylovaný je vnitřní obal, ne <article> — na <article> visí Astřina
   rozvržení (.ast-separate-container atd.) a šlo by si s ním jen ubližovat. */
/* padding: 0 je tady kvůli Astře — ta obalu dává 32 px odsazení dole, aby mezi
   položkami holého výpisu vznikla mezera. Karta má vlastní patičku i rozestupy
   z mřížky, takže by to byl jen pruh prázdna pod odkazem „Číst více“. */
.ast-archive-post .ast-article-inner,
.nst-clanky .ast-article-inner {
    display: flex;
    height: 100%;
    box-sizing: border-box;
    overflow: hidden;
    margin: 0;
    padding: 0;
    background: #fff;
    border: 1px solid #e7e2e6;
    border-radius: 14px;
    transition: border-color .14s ease;
}

.ast-archive-post:hover .ast-article-inner,
.nst-clanky article:hover .ast-article-inner {
    border-color: #ffb3d4;
}

/* Astra pod kartu přidává oddělovací linku. Karta má vlastní hranu, takže
   by to byla čára navíc pod čárou. */
.ast-archive-post .ast-article-inner::after,
.ast-archive-post .post-content::after {
    display: none;
}

/* Pořadí prvků v kartě. Astra vypisuje rubriku až za nadpisem, protože je
   součástí .entry-header s metadaty. Na kartě patří nad nadpis jako tichý
   popisek — stejně jako kategorie na kartě produktu — takže se přeskládá
   přes order. Prázdný .entry-content, který Astra vypisuje na konci, jde pryč. */
.ast-archive-post .ast-article-inner .post-content,
.nst-clanky .post-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 0;
}

.ast-archive-post .ast-article-inner .ast-blog-featured-section,
.nst-clanky .ast-blog-featured-section { order: 1; }

.ast-archive-post .ast-article-inner .entry-header,
.nst-clanky .entry-header { order: 2; }

.ast-archive-post .ast-article-inner .entry-title,
.nst-clanky .entry-title { order: 3; }

.ast-archive-post .ast-article-inner .ast-excerpt-container,
.nst-clanky .ast-excerpt-container { order: 4; }

.ast-archive-post .ast-article-inner .ast-read-more-container,
.nst-clanky .ast-read-more-container { order: 5; }

.ast-archive-post .ast-article-inner .post-content > .entry-content,
.nst-clanky .post-content > .entry-content { display: none; }


/* Obrázek
   ------------------------------------------------------------------------- */

/* Pevný poměr 16:9 srovná karty v řádku bez ohledu na to, jakou fotku článek
   má. Žádné mix-blend-mode: multiply — to je trik pro produktové fotky na bílém
   pozadí, tady jsou to fotografie a vybělilo by jim to světlá místa. */
.ast-archive-post .ast-article-inner .ast-blog-featured-section,
.nst-clanky .ast-blog-featured-section {
    margin: 0;
    background: #faf8f9;
}

/* Odkaz kolem fotky je ve výchozím stavu řádkový, takže pod obrázkem zůstával
   pruh místa na dotažnici písma — vypadalo to jako světlý proužek mezi fotkou
   a textem. Blokový odkaz a nulová výška řádku ho odstraní. */
.ast-archive-post .ast-article-inner .post-thumb-img-content,
.nst-clanky .post-thumb-img-content {
    margin: 0;
    font-size: 0;
    line-height: 0;
}

.ast-archive-post .ast-article-inner .post-thumb-img-content > a,
.nst-clanky .post-thumb-img-content > a {
    display: block;
}

.ast-archive-post .ast-article-inner .post-thumb-img-content img,
.nst-clanky .post-thumb-img-content img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform .3s ease;
}

.ast-archive-post:hover .ast-article-inner .post-thumb-img-content img,
.nst-clanky article:hover .post-thumb-img-content img {
    transform: scale(1.03);
}


/* Text karty
   ------------------------------------------------------------------------- */

/* Odsazení textu řeší jednotlivé prvky, ne obal — obrázek má jít na sraz
   s hranou karty, text ne. */
.ast-archive-post .ast-article-inner .entry-header,
.nst-clanky .entry-header {
    margin: 0;
    padding: 18px 18px 0;
}

/* Rubrika je zařazení, ne argument. Drobný tichý popisek ve verzálkách —
   stejný tvar jako kategorie na kartě produktu a jako nadpisy KLADY/ZÁPORY
   v žebříčcích. */
.ast-archive-post .ast-article-inner .entry-meta,
.nst-clanky .entry-meta {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #7b8794;
}

.ast-archive-post .ast-article-inner .entry-meta a,
.nst-clanky .entry-meta a {
    color: #7b8794;
    text-decoration: none;
}

.ast-archive-post .ast-article-inner .entry-meta a:hover,
.nst-clanky .entry-meta a:hover {
    color: #c2186f;
}

/* Na stránce rubriky je rubrika u každé karty stejná a stojí i v H1 nad
   výpisem — nic nesděluje, jen šumí. Zůstává na homepage a v hledání,
   kde se karty rubrikami skutečně liší. */
body.category .ast-archive-post .ast-article-inner .entry-header {
    display: none;
}

.ast-archive-post .ast-article-inner .entry-title,
.nst-clanky .entry-title {
    margin: 8px 0 0;
    padding: 0 18px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

/* Bez rubriky nad sebou potřebuje nadpis vlastní odstup od obrázku. */
body.category .ast-archive-post .ast-article-inner .entry-title {
    margin-top: 18px;
}

/* Astra dava odkazu v nadpisu vlastni font-weight 500, takze nadpis karty
   vychazel lehci nez zbytek webu. Vaha se dedi z nadpisu. */
.ast-archive-post .ast-article-inner .entry-title a,
.nst-clanky .entry-title a {
    color: #1e293b;
    font-weight: inherit;
    text-decoration: none;
}

.ast-archive-post:hover .ast-article-inner .entry-title a,
.nst-clanky article:hover .entry-title a {
    color: #c2186f;
}

/* Perex se ořezává na tři řádky. Bez toho by delší perex protáhl kartu
   a v řádku by patičky nelícovaly ani při stejné výšce karet. */
.ast-archive-post .ast-article-inner .ast-excerpt-container,
.nst-clanky .ast-excerpt-container {
    margin: 10px 0 16px;
    padding: 0 18px;
}

.ast-archive-post .ast-article-inner .ast-excerpt-container p,
.nst-clanky .ast-excerpt-container p {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #5b6472;
}


/* Patička karty
   ------------------------------------------------------------------------- */

/* Datum vlevo, odkaz vpravo. Datum sem dolepuje filtr nst_datum_do_paticky
   ve functions.php — Astra ho normálně vypisuje nahoře v metadatech vedle
   rubriky, což je na kartě špatné místo.
   margin-top: auto drží patičku u spodní hrany i u kratšího perexu, takže
   patičky karet v řádku lícují. */
.ast-archive-post .ast-article-inner .ast-read-more-container,
.nst-clanky .ast-read-more-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: auto 0 0;
    padding: 12px 18px 16px;
    font-size: 13px;
}

.ast-archive-post .ast-article-inner .nst-clanek__datum,
.nst-clanky .nst-clanek__datum {
    color: #7b8794;
}

.ast-archive-post .ast-article-inner .ast-read-more-container a,
.nst-clanky .ast-read-more-container a {
    flex: 0 0 auto;
    margin-left: auto;
    color: #c2186f;
    font-weight: 700;
    text-decoration: none;
}

.ast-archive-post .ast-article-inner .ast-read-more-container a::after,
.nst-clanky .ast-read-more-container a::after {
    content: "\2192";
    display: inline-block;
    margin-left: .4em;
    transition: transform .14s ease;
}

.ast-archive-post:hover .ast-article-inner .ast-read-more-container a::after,
.nst-clanky article:hover .ast-read-more-container a::after {
    transform: translateX(3px);
}


/* Produkt ve výsledcích hledání
   ------------------------------------------------------------------------- */

/* Hledání vrací články i produkty katalogu ve stejném Astřině výpisu, takže
   se do 10. 9. 2026 nedalo poznat, co je co. Produkt tady dostává tvar karty
   produktu z vypis-produktu.css: plovoucí bílá karta se stínem, která se
   při najetí zvedne, a fotka na tónované dlaždici přes mix-blend-mode.
   Rozdíl mezi „to je zboží“ a „to je čtení“ je tím vidět na první pohled. */
body.search .ast-archive-post.type-product .ast-article-inner {
    box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px -12px rgba(16,24,40,.10);
    transition: transform .12s ease, box-shadow .12s ease, border-color .14s ease;
}

body.search .ast-archive-post.type-product:hover .ast-article-inner {
    border-color: #e7e2e6;
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(16,24,40,.05), 0 14px 30px -14px rgba(16,24,40,.18);
}

/* Fotka produktu je čtvercová a na bílém pozadí — patří do dlaždice
   s odsazením, ne na sraz s hranou karty jako fotka článku. */
body.search .ast-archive-post.type-product .ast-blog-featured-section {
    margin: 16px 16px 0;
    border-radius: 10px;
    overflow: hidden;
}

body.search .ast-archive-post.type-product .post-thumb-img-content img {
    box-sizing: border-box;
    aspect-ratio: 1 / 1;
    padding: 14px;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body.search .ast-archive-post.type-product:hover .post-thumb-img-content img {
    transform: none;
}

/* Perex produktu je useknutý popis z importu a na kartě nic neříká. */
body.search .ast-archive-post.type-product .ast-excerpt-container {
    display: none;
}

body.search .ast-archive-post.type-product .entry-title {
    margin-top: 14px;
    font-size: 17px;
}


/* Záhlaví rubriky
   ------------------------------------------------------------------------- */

/* Rubriky článků měly holý nadpis na bílé, zatímco kategorie katalogu mají
   růžový pruh s drobečkovkou (kategorie.css). Sjednoceno: stejný pruh,
   stejné odstíny, stejná drobečkovka. Astra u rubrik vypisuje jiný element
   než u produktových kategorií (section.ast-archive-description místo
   section.ast-archive-entry-banner), proto vlastní selektory.
   Pruh se roztahuje přes celou šířku okna přes clip-path + rozlitý stín —
   element sedí uvnitř .ast-container, ze kterého se jinak nedá vystoupit.
   Drobečkovku do něj vkládá nst_drobeckovka_v_rubrice ve functions.php,
   Astra ji tam sama nedává (astra_get_breadcrumb je až v Astra Pro a volá
   se jen ve variantě záhlaví, kterou rubriky nepoužívají). */
/* Astra dává #primary odstup 64 px shora. U kategorií katalogu to nevadí,
   protože jejich pruh je nad #content a jde na sraz s hlavičkou. Tady je
   záhlaví až uvnitř #primary, takže by nad růžovým pruhem zbyl bílý pás.
   Odstup přebírá vnitřní odsazení pruhu. */
body.category #primary {
    margin-top: 0;
}

/* Pruh sedí uvnitř .ast-container, ze kterého se jinak nedá vystoupit —
   roztažení přes celou šířku okna dělá rozlitý stín plus clip-path.
   Astřina vlasová linka pod nadpisem jde pryč: pruh má vlastní hranu barvou,
   čára pod ní by byla předěl navíc. */
body.category section.ast-archive-description {
    margin-bottom: 40px;
    padding: 30px 0 34px;
    background: #ffeff2;
    border: 0;
    box-shadow: 0 0 0 100vmax #ffeff2;
    clip-path: inset(0 -100vmax);
}

body.category section.ast-archive-description h1.ast-archive-title {
    margin: 0;
    line-height: 1.2;
}

/* Hledání vypisuje záhlaví jiným elementem než rubriky — Astra pro něj bere
   variantu „entry banner“, tedy tentýž element jako u kategorií katalogu,
   jen s vlastním nastavením (šedý podklad, na střed). Sjednoceno na růžový
   pruh zarovnaný doleva. Element je tady mimo .ast-container, takže se přes
   celou šířku roztahuje sám a clip-path nepotřebuje. */
/* Odstup pod pruhem uz dava #primary (64 px shora), vlastni se nepridava —
   jinak by mezi zahlavim a prvni kartou byla dira pres sto pixelu. */
body.search section.ast-archive-entry-banner {
    background: #ffeff2;
    text-align: left;
}

body.search section.ast-archive-entry-banner .ast-container {
    padding-top: 30px;
    padding-bottom: 34px;
}

body.search section.ast-archive-entry-banner h1.ast-archive-title {
    margin: 0;
    line-height: 1.2;
}

body.search section.ast-archive-entry-banner p {
    margin: 12px 0 0;
    font-size: 15px;
    line-height: 1.6;
    color: #5b6472;
}

/* Drobečkovka: bez podkladu a rámečku, je to orientace, ne prvek.
   Tvar je schválně stejný jako u kategorií katalogu v kategorie.css. */
body.category section.ast-archive-description .ast-breadcrumbs-wrapper {
    margin-bottom: 20px;
}

body.category section.ast-archive-description .ast-breadcrumbs .trail-items {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 2px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 13px;
    line-height: 1.5;
}

body.category section.ast-archive-description .ast-breadcrumbs .trail-items li {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    color: #6b7280;
    font-weight: 500;
}

body.category section.ast-archive-description .ast-breadcrumbs .trail-items li a {
    color: #9a8890;
    font-weight: 400;
    text-decoration: none;
    transition: color .12s ease;
}

body.category section.ast-archive-description .ast-breadcrumbs .trail-items li a:hover {
    color: #c2186f;
    text-decoration: none;
}

body.category section.ast-archive-description .ast-breadcrumbs .trail-items li::after {
    content: "\203A";
    margin: 0 2px 0 6px;
    color: #d9c6ce;
    font-weight: 400;
    font-size: 14px;
}

body.category section.ast-archive-description .ast-breadcrumbs .trail-items li:last-child::after {
    content: none;
}


/* Užší obrazovky
   ------------------------------------------------------------------------- */

@media (max-width: 921px) {
    body.category main#main > .ast-row,
    body.search main#main > .ast-row,
    body.author main#main > .ast-row,
    .nst-clanky {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (max-width: 600px) {
    body.category main#main > .ast-row,
    body.search main#main > .ast-row,
    body.author main#main > .ast-row,
    .nst-clanky {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .ast-archive-post .ast-article-inner .entry-title,
    .nst-clanky .entry-title {
        font-size: 17px;
    }

    body.category section.ast-archive-description {
        margin-bottom: 28px;
        padding: 24px 0 26px;
    }

    body.search section.ast-archive-entry-banner .ast-container {
        padding-top: 24px;
        padding-bottom: 26px;
    }
}


/* Datum revize v metadatech článku
   -------------------------------------------------------------------------

   Astra barví všechno uvnitř .entry-meta růžovou, ale datum ve span.published
   má vlastní bílou. Značka <time>, kterou přidává nst_datum_revize_do_metadat(),
   tu růžovou dědila — text „Aktualizováno“ byl bílý a datum za ním růžové.

   Pravidlo patří sem, ne do nst-bloky.css: ten se načítá jen na stránkách,
   kde je vložený některý z vlastních bloků, takže na většině žebříčků by
   vůbec nedorazil. */
.entry-meta .published time {
    color: inherit;
}
