@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,300..600&family=Source+Serif+4:ital,opsz,wght@1,8..60,300..500&display=swap');

/* ============================================================
   skinspecialist.cz / bioby.cz — ss-blog-detail-2.css — v2
   PRODUCTION CSS for Shoptet article detail (blog post)
   HYBRID PATTERN — ZERO JS, editoriálně bohatý layout

   v2.1 (2026-05-27): Editorial reading polish
   - Body font Source Serif 4 (was Manrope sans) — luxury editorial feel
   - Body 18px / line-height 1.8 (was 17/1.7)
   - Drop cap 7em terracotta (was 5.6em sage)
   - Pro Tip inline italic style (was white card)
   - Pull quote black borders (was sage)
   - Author box terracotta accent (was sage)

   Pairs with: žádný JS soubor

   DETECTION:
   - body.type-post
   - Body subclasses: body.in-navody / .in-beauty-tipy / .in-trendy

   LAYOUT:
   - 940px container, 680px text column centered
   - Hero breakout 920px
   - Drop cap na první paragrafu (auto, CSS-only)
   - Big serif h2 counter ghost-numeral za h2 (auto, CSS counter)
   - Decorative 3-dot dividers mezi sekcemi (auto)
   - Custom list markers (sage)
   - Pull quote, breakout image, inline product card (Tamara paste)

   ATOMIC TEMPLATE BLOCKS pro Tamaru (Zdrojový kód):
     <a class="ss-art-crumb">Blog</a>
     <p class="ss-art-meta">DATUM · X min čtení</p>
     <div class="ss-art-hero"><img>…</div>                  (volitelný)
     <blockquote class="ss-art-pull">…</blockquote>          (volitelný)
     <figure class="ss-art-breakout"><img><figcaption></figure> (volitelný)
     <a class="ss-art-product">…</a>                         (volitelný)
     <div class="ss-art-author">…</div>                      (na konci)
   ============================================================ */


/* ============================================================
   1) PAGE BG — instant
   ============================================================ */
body.type-post {
  background: var(--ss-canvas, #F2EBDB);
}


/* ============================================================
   2) HIDE NATIVE chrome
   ============================================================ */
body.type-post .breadcrumbs-wrapper,
body.type-post aside.sidebar,
body.type-post .news-item-detail > .next-prev {
  display: none !important;
}

/* Override native Shoptet white bg + full-width content (no sidebar) */
body.type-post #content-wrapper,
body.type-post #content-wrapper .container,
body.type-post #content-wrapper .row,
body.type-post main#content,
body.type-post main#content .content-inner {
  background: transparent !important;
}
body.type-post #content-wrapper .container,
body.type-post #content-wrapper .row,
body.type-post main#content,
body.type-post main#content.narrow,
body.type-post main#content .content-inner {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}


/* ============================================================
   3) ARTICLE CONTAINER — 1040px wide, 680px text column inside
   v2.3: Asymmetric layout. Container 1040 (~72% viewport), text column
   680 centered. Breakout elements (hero, products, newsletter,
   consultation, nav) extend to container width. CSS Grid distribution
   eliminates breakout margin chaos.
   ============================================================ */
body.type-post .news-item-detail {
  display: block !important;
  width: 100% !important;
  max-width: 1040px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: clamp(40px, 5vw, 88px) clamp(20px, 3vw, 40px) clamp(80px, 7vw, 120px);
  position: relative;
  counter-reset: h2-counter;
  box-sizing: border-box;
  float: none !important;
}

/* H1 — narrow column aligned, centered within container */
body.type-post .news-item-detail > h1 {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

/* .text uses CSS Grid for narrow-default + full-breakout columns */
body.type-post .news-item-detail > .text {
  display: grid;
  grid-template-columns:
    [full-start] 1fr
    [text-start] min(680px, 100%) [text-end]
    1fr [full-end];
}
/* Default children → text column */
body.type-post .news-item-detail > .text > * {
  grid-column: text;
  min-width: 0;
}
/* Breakouts → full container width */
body.type-post .news-item-detail > .text > .ss-art-hero,
body.type-post .news-item-detail > .text > section.ss-art-products,
body.type-post .news-item-detail > .text > aside.ss-art-newsletter,
body.type-post .news-item-detail > .text > aside.ss-art-consultation,
body.type-post .news-item-detail > .text > nav.ss-art-nav,
body.type-post .news-item-detail > .text > figure.ss-art-breakout {
  grid-column: full;
}


/* ============================================================
   4) CRUMB
   ============================================================ */
body.type-post .news-item-detail::before {
  content: '← Blog';
  display: block;
  margin: 0 0 clamp(28px, 3vw, 44px);
  font-family: var(--ss-sans, sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
  cursor: pointer;
  width: max-content;
  transition: color .25s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .news-item-detail:hover::before {
  color: var(--ss-terracotta, #9A7A5F);
}

body.type-post .ss-art-crumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 clamp(28px, 3vw, 44px);
  font-family: var(--ss-sans, sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
  text-decoration: none;
  transition: color .25s cubic-bezier(.4, 0, .2, 1), gap .25s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .ss-art-crumb:hover {
  color: var(--ss-terracotta, #9A7A5F);
  gap: 10px;
}
body.type-post .ss-art-crumb::before { content: '←'; }
body.type-post .news-item-detail:has(.ss-art-crumb)::before { display: none; }


/* ============================================================
   5) RUBRIKA EYEBROW — auto per body class above h1
   ============================================================ */
body.type-post .news-item-detail h1::before {
  display: block;
  margin: 0 0 16px;
  font-family: var(--ss-sans, sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
}
body.type-post .news-item-detail h1::before { content: 'Z blogu'; }
body.type-post.in-navody .news-item-detail h1::before { content: 'Návody'; }
body.type-post.in-beauty-tipy .news-item-detail h1::before { content: 'Beauty tipy'; }
body.type-post.in-trendy .news-item-detail h1::before { content: 'Trendy'; }


/* ============================================================
   6) H1 — dramatic editorial, aligned to same column as body
   ============================================================ */
body.type-post h1[itemprop="headline"] {
  font-family: var(--ss-serif, serif);
  font-size: clamp(38px, 5.5vw, 60px);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 clamp(28px, 3vw, 40px);
  max-width: 100%;
}
body.type-post h1[itemprop="headline"] em {
  font-style: italic;
  font-weight: 300;
  color: var(--ss-sage, #6B8B85);
}


/* ============================================================
   7) META — meta line below h1 with sage divider
   ============================================================ */
body.type-post .ss-art-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 clamp(48px, 5vw, 72px);
  font-family: var(--ss-sans, sans-serif);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
}
body.type-post .ss-art-meta::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, var(--ss-sage, #6B8B85) 0%, var(--ss-sage, #6B8B85) 60px, transparent 60px);
}


/* ============================================================
   8) HERO — wider than text column (full container width)
   ============================================================ */
body.type-post .ss-art-hero {
  margin: 0 0 clamp(48px, 5vw, 72px);
  aspect-ratio: 16 / 9;
  background: var(--ss-cream, #E8DDC8);
  border-radius: 12px;
  overflow: hidden;
  position: relative;
}
body.type-post .ss-art-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.type-post .ss-art-hero figcaption,
body.type-post .ss-art-hero + .ss-art-hero-cap {
  display: block;
  margin: 12px 0 0;
  font-family: var(--ss-serif, serif);
  font-style: italic;
  font-size: 13px;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
}


/* ============================================================
   9) TEXT — inherits parent 720px, žádný extra constraint
   Source Serif 4 (variable) for editorial luxury reading
   ============================================================ */
body.type-post .text {
  font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  font-feature-settings: 'kern' 1, 'liga' 1;
  color: var(--ss-text, #0F0F0F);
  font-size: 18px;
  line-height: 1.8;
}


/* ============================================================
   10) LEAD + DROP CAP — bigger, terracotta, dramatic
   Auto-detects common Tamara orderings + explicit class fallback
   ============================================================ */
body.type-post .text > p.ss-art-meta + .ss-art-hero + p,
body.type-post .text > p.ss-art-meta + p,
body.type-post .text > .ss-art-hero + p,
body.type-post .text > .ss-art-crumb + p:not(.ss-art-meta),
body.type-post .text > p.ss-art-lead {
  font-size: 21px;
  line-height: 1.65;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 clamp(28px, 3vw, 40px);
  font-weight: 400;
}

body.type-post .text > p.ss-art-meta + .ss-art-hero + p::first-letter,
body.type-post .text > p.ss-art-meta + p::first-letter,
body.type-post .text > .ss-art-hero + p::first-letter,
body.type-post .text > .ss-art-crumb + p:not(.ss-art-meta)::first-letter,
body.type-post .text > p.ss-art-lead::first-letter {
  float: left;
  font-family: var(--ss-serif, serif);
  font-size: 7em;
  line-height: 0.82;
  font-weight: 300;
  color: var(--ss-terracotta, #9A7A5F);
  margin: 8px 16px -4px 0;
  padding: 0;
}


/* ============================================================
   11) PARAGRAPHS
   ============================================================ */
body.type-post .text p {
  margin: 0 0 26px;
}


/* ============================================================
   12) H2 — ghost numeral INLINE above (žádný margin push)
   Numeral je INSIDE h2 element, aligned to left edge text column.
   ============================================================ */
body.type-post .text h2 {
  counter-increment: h2-counter;
  position: relative;
  font-family: var(--ss-serif, serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ss-black, #0F0F0F);
  margin: clamp(64px, 6.5vw, 96px) 0 20px;
  padding-top: 56px;
}

/* Inline ghost numeral above h2 text — aligns to LEFT edge of text column */
body.type-post .text h2::before {
  content: counter(h2-counter, decimal-leading-zero);
  position: absolute;
  top: -4px;
  left: 0;
  font-family: var(--ss-serif, serif);
  font-size: 44px;
  font-weight: 300;
  line-height: 1;
  color: var(--ss-sage, #6B8B85);
  opacity: .4;
  letter-spacing: -0.02em;
  pointer-events: none;
}

/* 3-dot divider as full-width line above h2 (except first h2) */
body.type-post .text h2:not(:first-of-type) {
  border-top: 1px solid rgba(15, 15, 15, .08);
  padding-top: 72px;
  margin-top: clamp(72px, 7vw, 104px);
}
body.type-post .text h2:not(:first-of-type)::after {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 56px;
  height: 1px;
  background: var(--ss-sage, #6B8B85);
}


/* ============================================================
   13) H3
   ============================================================ */
body.type-post .text h3 {
  font-family: var(--ss-serif, serif);
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--ss-black, #0F0F0F);
  margin: clamp(36px, 3.5vw, 48px) 0 12px;
}


/* ============================================================
   14) H4 — small caps label style
   ============================================================ */
body.type-post .text h4 {
  font-family: var(--ss-sans, sans-serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
  margin: clamp(28px, 2.5vw, 32px) 0 10px;
}


/* ============================================================
   15) LISTS — custom sage markers
   ============================================================ */
body.type-post .text ul,
body.type-post .text ol {
  padding-left: 1.6em;
  margin: 0 0 26px;
}
body.type-post .text li {
  margin: 0 0 10px;
  padding-left: 6px;
}
body.type-post .text ul {
  list-style: none;
  padding-left: 1.8em;
}
body.type-post .text ul li {
  position: relative;
}
body.type-post .text ul li::before {
  content: '';
  position: absolute;
  left: -1.4em;
  top: 0.62em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ss-sage, #6B8B85);
}
body.type-post .text ol li::marker {
  color: var(--ss-sage, #6B8B85);
  font-weight: 600;
}


/* ============================================================
   16) BLOCKQUOTE — basic citation style
   ============================================================ */
body.type-post .text blockquote {
  margin: clamp(28px, 3vw, 40px) 0;
  padding: clamp(20px, 2vw, 28px) clamp(24px, 2.5vw, 36px);
  border-left: 2px solid var(--ss-sage, #6B8B85);
  background: rgba(107, 139, 133, .05);
  font-family: var(--ss-serif, serif);
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.5;
  color: var(--ss-black, #0F0F0F);
  font-style: italic;
}
body.type-post .text blockquote p:last-child { margin-bottom: 0; }


/* ============================================================
   17) PULL QUOTE — dramatic editorial breakout
   <blockquote class="ss-art-pull"><p>…</p><cite>—Tamara</cite></blockquote>
   ============================================================ */
body.type-post .text blockquote.ss-art-pull {
  margin: clamp(56px, 6vw, 88px) 0;
  padding: clamp(40px, 4.5vw, 64px) clamp(12px, 2vw, 24px);
  background: transparent;
  border: none;
  border-top: 1px solid var(--ss-black, #0F0F0F);
  border-bottom: 1px solid var(--ss-black, #0F0F0F);
  text-align: center;
  position: relative;
}
body.type-post .text blockquote.ss-art-pull p {
  font-family: var(--ss-serif, serif);
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: -0.015em;
  font-style: italic;
  color: var(--ss-black, #0F0F0F);
  margin: 0;
}
body.type-post .text blockquote.ss-art-pull cite {
  display: block;
  margin-top: 20px;
  font-family: var(--ss-sans, sans-serif);
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
}


/* ============================================================
   18) BREAKOUT IMAGE — wider than text column
   <figure class="ss-art-breakout"><img><figcaption></figure>
   ============================================================ */
body.type-post .text figure {
  margin: clamp(28px, 3vw, 40px) 0;
}
body.type-post .text figure img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
  margin: 0;
}
body.type-post .text figure figcaption {
  margin-top: 12px;
  font-family: var(--ss-serif, serif);
  font-style: italic;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
  text-align: center;
}
body.type-post .text figure.ss-art-breakout {
  margin-left: 0;
  margin-right: 0;
}
body.type-post .text figure.ss-art-breakout img {
  border-radius: 12px;
}


/* ============================================================
   19) INLINE IMAGE (non-figure)
   ============================================================ */
body.type-post .text > img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: clamp(28px, 3vw, 40px) 0;
  display: block;
}


/* ============================================================
   20) INLINE PRODUCT CARD — mid-article product CTA
   <a class="ss-art-product" href="/produkt/...">
     <img>
     <div class="ss-art-product-body">
       <span class="ss-art-product-eyebrow">Doporučujeme</span>
       <h4 class="ss-art-product-name">…</h4>
       <span class="ss-art-product-price">1 290 Kč</span>
     </div>
     <span class="ss-art-product-cta">Koupit →</span>
   </a>
   ============================================================ */
body.type-post .text a.ss-art-product {
  display: grid;
  grid-template-columns: 96px 1fr auto;
  gap: clamp(16px, 2vw, 24px);
  align-items: center;
  margin: clamp(32px, 3vw, 48px) 0;
  padding: clamp(18px, 2vw, 24px);
  background: #fff;
  border: 1px solid var(--ss-border-soft, rgba(15, 15, 15, .08));
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition:
    transform .35s cubic-bezier(.4, 0, .2, 1),
    border-color .35s cubic-bezier(.4, 0, .2, 1),
    box-shadow .35s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text a.ss-art-product:hover {
  transform: translateY(-3px);
  border-color: var(--ss-sage, #6B8B85);
  box-shadow: 0 6px 20px rgba(15, 15, 15, .05);
}
body.type-post .text a.ss-art-product img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: 8px;
  background: var(--ss-cream, #E8DDC8);
  margin: 0;
}
body.type-post .text a.ss-art-product .ss-art-product-eyebrow {
  display: block;
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
  margin: 0 0 4px;
}
body.type-post .text a.ss-art-product .ss-art-product-name {
  font-family: var(--ss-serif, serif);
  font-size: clamp(16px, 1.4vw, 19px);
  font-weight: 400;
  letter-spacing: -0.005em;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 4px;
  text-transform: none;
}
body.type-post .text a.ss-art-product .ss-art-product-price {
  font-family: var(--ss-sans, sans-serif);
  font-size: 13px;
  font-weight: 600;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
}
body.type-post .text a.ss-art-product .ss-art-product-cta {
  font-family: var(--ss-sans, sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-black, #0F0F0F);
  padding-bottom: 3px;
  border-bottom: 1px solid var(--ss-border-mid, rgba(15, 15, 15, .16));
  transition: gap .25s, border-color .25s;
}
body.type-post .text a.ss-art-product:hover .ss-art-product-cta {
  border-bottom-color: var(--ss-black, #0F0F0F);
}


/* ============================================================
   21) LINKS, STRONG, EM, MARK, HR
   ============================================================ */
body.type-post .text a {
  color: var(--ss-sage, #6B8B85);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: color .2s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text a:hover { color: var(--ss-terracotta, #9A7A5F); }

body.type-post .text strong { font-weight: 700; color: var(--ss-black, #0F0F0F); }
body.type-post .text em { font-style: italic; }

body.type-post .text mark {
  background: rgba(107, 139, 133, .18);
  color: var(--ss-black, #0F0F0F);
  padding: 1px 4px;
  border-radius: 2px;
}

body.type-post .text hr {
  border: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--ss-border-soft, rgba(15, 15, 15, .12)) 30%, var(--ss-border-soft, rgba(15, 15, 15, .12)) 70%, transparent);
  margin: clamp(40px, 5vw, 64px) 0;
}


/* ============================================================
   22) AUTHOR BOX — magazine style (sage accent line)
   ============================================================ */
body.type-post .ss-art-author {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin: clamp(64px, 7vw, 96px) 0 0;
  padding: clamp(28px, 3vw, 36px);
  background: #FFFFFF;
  border-left: 3px solid var(--ss-terracotta, #9A7A5F);
  border-radius: 0 12px 12px 0;
  position: relative;
}
body.type-post .ss-art-author .ss-art-author-eyebrow {
  color: var(--ss-terracotta, #9A7A5F);
}
body.type-post .ss-art-author-photo {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
body.type-post .ss-art-author-body { flex: 1; }
body.type-post .ss-art-author-eyebrow {
  display: block;
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
  margin: 0 0 6px;
}
body.type-post .ss-art-author-name {
  font-family: var(--ss-serif, serif);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: -0.005em;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 4px;
  text-transform: none;
}
body.type-post .ss-art-author-role {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
  margin: 0 0 14px;
}
body.type-post .ss-art-author-bio {
  font-family: var(--ss-sans, sans-serif);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
  margin: 0;
}


/* ============================================================
   23) BACK TO RUBRIKA — auto-injected at bottom (pseudo, visual)
   Pro real klikatelný link Tamara paste <a class="ss-art-back">
   ============================================================ */
body.type-post .news-item-detail::after {
  content: '← Zpět na všechny články';
  display: block;
  margin: clamp(56px, 6vw, 88px) auto 0;
  padding: 16px 28px;
  text-align: center;
  font-family: var(--ss-sans, sans-serif);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-muted, rgba(15, 15, 15, .62));
  width: max-content;
  cursor: pointer;
  transition: color .25s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .news-item-detail:hover::after {
  color: var(--ss-terracotta, #9A7A5F);
}
body.type-post.in-navody .news-item-detail::after { content: '← Vše návody'; }
body.type-post.in-beauty-tipy .news-item-detail::after { content: '← Vše beauty tipy'; }
body.type-post.in-trendy .news-item-detail::after { content: '← Vše trendy'; }
/* Když Tamara paste real link, hide pseudo */
body.type-post .news-item-detail:has(.ss-art-back)::after { display: none; }


/* ============================================================
   ═══════════════════════════════════════════════════════════
   VOL 2 — UPSELL + NAVIGATION (optional Tamara paste-blocks)
   ═══════════════════════════════════════════════════════════
   ============================================================ */


/* ============================================================
   V2.1) READING PROGRESS BAR — pure CSS scroll-timeline
   Modern browsers (Chrome 115+, Safari 17+, Firefox upcoming).
   Gracefully degrades — no bar on older browsers.
   ============================================================ */
@supports (animation-timeline: scroll()) {
  body.type-post::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: var(--ss-sage, #6B8B85);
    transform: scaleX(0);
    transform-origin: left center;
    z-index: 9999;
    pointer-events: none;
    animation: ss-art-progress linear forwards;
    animation-timeline: scroll(root);
  }
  @keyframes ss-art-progress {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
  }
}


/* ============================================================
   V2.2) KEY TAKEAWAYS — summary box at top or anywhere
   <aside class="ss-art-takeaways">
     <span class="ss-art-takeaways-eyebrow">Krátké shrnutí</span>
     <h3 class="ss-art-takeaways-title">Co si odnést</h3>
     <ul>…</ul>
   </aside>
   ============================================================ */
body.type-post .text aside.ss-art-takeaways {
  margin: clamp(28px, 3vw, 40px) 0;
  padding: clamp(24px, 2.8vw, 32px) clamp(24px, 3vw, 36px);
  background: rgba(107, 139, 133, .07);
  border-radius: 10px;
  border-left: 3px solid var(--ss-sage, #6B8B85);
}
body.type-post .text aside.ss-art-takeaways .ss-art-takeaways-eyebrow {
  display: block;
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
  margin: 0 0 6px;
}
body.type-post .text aside.ss-art-takeaways .ss-art-takeaways-title {
  font-family: var(--ss-serif, serif);
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 16px;
}
body.type-post .text aside.ss-art-takeaways ul {
  margin: 0;
  padding-left: 1.4em;
}
body.type-post .text aside.ss-art-takeaways ul li {
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 8px;
}


/* ============================================================
   V2.3) PRO TIP — INLINE italic editorial style, NO card
   Sage left line + italic serif body, integrated to text flow
   <aside class="ss-art-tip">
     <span class="ss-art-tip-label">Tip od Tamary</span>
     <p>…</p>
   </aside>
   ============================================================ */
body.type-post .text aside.ss-art-tip {
  margin: clamp(28px, 3vw, 40px) 0;
  padding: 4px 0 4px clamp(20px, 2.2vw, 28px);
  border-left: 3px solid var(--ss-sage, #6B8B85);
  background: none;
  border-radius: 0;
}
body.type-post .text aside.ss-art-tip .ss-art-tip-label {
  display: block;
  font-family: 'Source Serif 4', Georgia, serif;
  font-style: italic;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: none;
  color: var(--ss-sage, #6B8B85);
  margin: 0 0 4px;
}
body.type-post .text aside.ss-art-tip p {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 18px;
  font-style: italic;
  line-height: 1.65;
  margin: 0;
  color: var(--ss-black, #0F0F0F);
  font-weight: 400;
}

/* WARNING — KEEP card but stronger: terracotta solid bg, white text */
body.type-post .text aside.ss-art-warning {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  align-items: start;
  margin: clamp(28px, 3vw, 40px) 0;
  padding: clamp(20px, 2.2vw, 28px) clamp(22px, 2.4vw, 32px);
  background: var(--ss-terracotta, #9A7A5F);
  border-radius: 8px;
  color: #FFFFFF;
}
body.type-post .text aside.ss-art-warning .ss-art-warning-label {
  font-family: 'Source Serif 4', Georgia, serif;
  font-style: italic;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: none;
  color: rgba(255, 255, 255, .75);
  white-space: nowrap;
  padding-top: 4px;
}
body.type-post .text aside.ss-art-warning p {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
  color: #FFFFFF;
  font-weight: 400;
}


/* ============================================================
   V2.4) PRODUCTS UPSELL GRID — multi-card carousel at bottom
   <section class="ss-art-products">
     <header class="ss-art-products-head">
       <span class="ss-art-products-eyebrow">Tamařin výběr</span>
       <h3 class="ss-art-products-title">Produkty zmíněné v článku</h3>
     </header>
     <div class="ss-art-products-grid">
       <a class="ss-art-products-card" href="/produkt-1/">
         <img>
         <span class="ss-art-products-card-name">…</span>
         <span class="ss-art-products-card-price">1 290 Kč</span>
       </a>
       … (2-4 cards)
     </div>
   </section>
   ============================================================ */
body.type-post .text section.ss-art-products {
  margin: clamp(48px, 5vw, 72px) 0;
}
body.type-post .text section.ss-art-products .ss-art-products-head {
  margin: 0 0 clamp(20px, 2vw, 28px);
  padding: 0;
}
body.type-post .text section.ss-art-products .ss-art-products-eyebrow {
  display: block;
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
  margin: 0 0 8px;
}
body.type-post .text section.ss-art-products .ss-art-products-title {
  font-family: var(--ss-serif, serif);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 400;
  letter-spacing: -0.015em;
  color: var(--ss-black, #0F0F0F);
  margin: 0;
}
body.type-post .text section.ss-art-products .ss-art-products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(12px, 1.4vw, 18px);
  padding: 0;
}
/* MATCH ss-curated__card from homepage (consistent site-wide product styling)
   Off-white card #FAF6EE, 3:4 aspect image, hairline divider, Manrope name */
body.type-post .text section.ss-art-products .ss-art-products-card {
  display: flex;
  flex-direction: column;
  padding: 16px;
  background: #FAF6EE;
  border-radius: 10px;
  border: 1px solid rgba(15, 15, 15, .06);
  box-shadow: 0 6px 18px rgba(15, 15, 15, .04);
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
  transition:
    transform .35s cubic-bezier(.4, 0, .2, 1),
    background .35s cubic-bezier(.4, 0, .2, 1),
    border-color .35s cubic-bezier(.4, 0, .2, 1),
    box-shadow .35s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text section.ss-art-products .ss-art-products-card:hover {
  transform: translateY(-3px);
  background: #FFFFFF;
  border-color: rgba(15, 15, 15, .12);
  box-shadow: 0 14px 36px rgba(15, 15, 15, .08);
}
body.type-post .text section.ss-art-products .ss-art-products-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 6px;
  margin: 0 0 12px;
  background: var(--ss-cream, #E8DDC8);
  display: block;
  transition: transform .5s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text section.ss-art-products .ss-art-products-card:hover img {
  transform: scale(1.03);
}

/* Loading state — placeholder while JS fetches product data */
body.type-post .text section.ss-art-products .ss-art-products-card.is-loading {
  min-height: 340px;
  pointer-events: none;
}
body.type-post .text section.ss-art-products .ss-art-products-card.is-loading::before {
  content: '';
  display: block;
  aspect-ratio: 3 / 4;
  background: linear-gradient(110deg, rgba(15, 15, 15, .04) 8%, rgba(15, 15, 15, .08) 18%, rgba(15, 15, 15, .04) 33%);
  background-size: 200% 100%;
  border-radius: 6px;
  margin-bottom: 12px;
  animation: ss-prod-shimmer 1.4s linear infinite;
}
body.type-post .text section.ss-art-products .ss-art-products-card.is-loading::after {
  content: '';
  display: block;
  height: 14px;
  width: 70%;
  background: rgba(15, 15, 15, .06);
  border-radius: 3px;
}
@keyframes ss-prod-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
body.type-post .text section.ss-art-products .ss-art-products-card-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  font-family: var(--ss-sans, sans-serif);
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(15, 15, 15, .06);
  min-height: 39px;
}
body.type-post .text section.ss-art-products .ss-art-products-card-price {
  font-family: var(--ss-sans, sans-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--ss-black, #0F0F0F);
  margin: 0;
}


/* ============================================================
   V2.5) CONSULTATION CTA — terracotta accent box
   <aside class="ss-art-consultation">
     <div>
       <span class="ss-art-consultation-eyebrow">Bezplatně</span>
       <h3 class="ss-art-consultation-title">Konzultace s Tamarou</h3>
       <p class="ss-art-consultation-copy">…</p>
     </div>
     <a class="ss-art-consultation-cta" href="/konzultace/">Domluvit →</a>
   </aside>
   ============================================================ */
body.type-post .text aside.ss-art-consultation {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: clamp(20px, 2.5vw, 36px);
  align-items: center;
  margin: clamp(40px, 4vw, 56px) 0;
  padding: clamp(28px, 3vw, 40px);
  background: linear-gradient(135deg, rgba(154, 122, 95, .08) 0%, rgba(107, 139, 133, .04) 100%);
  border-radius: 12px;
  border: 1px solid rgba(154, 122, 95, .14);
}
body.type-post .text aside.ss-art-consultation .ss-art-consultation-eyebrow {
  display: block;
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ss-terracotta, #9A7A5F);
  margin: 0 0 8px;
}
body.type-post .text aside.ss-art-consultation .ss-art-consultation-title {
  font-family: var(--ss-serif, serif);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 400;
  letter-spacing: -0.015em;
  color: var(--ss-black, #0F0F0F);
  margin: 0 0 8px;
}
body.type-post .text aside.ss-art-consultation .ss-art-consultation-copy {
  font-family: var(--ss-sans, sans-serif);
  font-size: 14px;
  line-height: 1.55;
  color: var(--ss-text, #0F0F0F);
  margin: 0;
}
body.type-post .text aside.ss-art-consultation a.ss-art-consultation-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 24px;
  background: var(--ss-terracotta, #9A7A5F);
  color: #FFFFFF !important;
  font-family: var(--ss-sans, sans-serif);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none !important;
  border-radius: 6px;
  border-bottom: none !important;
  text-underline-offset: 0;
  white-space: nowrap;
  transition: background .25s cubic-bezier(.4, 0, .2, 1), gap .25s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text aside.ss-art-consultation a.ss-art-consultation-cta:hover {
  background: var(--ss-black, #0F0F0F);
  gap: 12px;
}


/* ============================================================
   V2.6) NEWSLETTER inline CTA — sage box mid-article
   <aside class="ss-art-newsletter">
     <span class="ss-art-newsletter-eyebrow">Newsletter</span>
     <h3 class="ss-art-newsletter-title">Týdenní tipy + 5% sleva</h3>
     <p>Skin care návody, recenze, sleva pro nové odběratelky.</p>
     <a href="#newsletter" class="ss-art-newsletter-cta">Přihlásit se →</a>
   </aside>
   ============================================================ */
body.type-post .text aside.ss-art-newsletter {
  margin: clamp(40px, 4vw, 56px) 0;
  padding: clamp(28px, 3.5vw, 44px) clamp(28px, 3vw, 36px);
  background: var(--ss-sage, #6B8B85);
  border-radius: 12px;
  color: #FFFFFF;
  text-align: center;
}
body.type-post .text aside.ss-art-newsletter .ss-art-newsletter-eyebrow {
  display: block;
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .7);
  margin: 0 0 8px;
}
body.type-post .text aside.ss-art-newsletter .ss-art-newsletter-title {
  font-family: var(--ss-serif, serif);
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 400;
  letter-spacing: -0.015em;
  color: #FFFFFF;
  margin: 0 0 10px;
}
body.type-post .text aside.ss-art-newsletter p {
  font-family: var(--ss-sans, sans-serif);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .85);
  margin: 0 0 20px;
  max-width: 380px;
  margin-left: auto;
  margin-right: auto;
}
body.type-post .text aside.ss-art-newsletter a.ss-art-newsletter-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #FFFFFF;
  color: var(--ss-black, #0F0F0F) !important;
  font-family: var(--ss-sans, sans-serif);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none !important;
  border-bottom: none !important;
  text-underline-offset: 0;
  border-radius: 6px;
  transition: gap .25s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text aside.ss-art-newsletter a.ss-art-newsletter-cta:hover {
  gap: 12px;
}


/* ============================================================
   V2.7) PREV/NEXT ARTICLE — bottom navigation
   <nav class="ss-art-nav">
     <a class="ss-art-nav-prev" href="/navody/predchozi/">
       <span class="ss-art-nav-label">← Předchozí</span>
       <span class="ss-art-nav-title">Název článku</span>
     </a>
     <a class="ss-art-nav-next" href="/navody/dalsi/">
       <span class="ss-art-nav-label">Další →</span>
       <span class="ss-art-nav-title">Název článku</span>
     </a>
   </nav>
   ============================================================ */
body.type-post .text nav.ss-art-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(12px, 1.5vw, 20px);
  margin: clamp(56px, 6vw, 80px) 0 0;
}
body.type-post .text nav.ss-art-nav a {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: clamp(20px, 2.2vw, 28px);
  background: #FFFFFF;
  border-radius: 10px;
  border: 1px solid var(--ss-border-soft, rgba(15, 15, 15, .08));
  text-decoration: none !important;
  color: inherit;
  border-bottom: 1px solid var(--ss-border-soft, rgba(15, 15, 15, .08)) !important;
  text-underline-offset: 0;
  transition:
    transform .35s cubic-bezier(.4, 0, .2, 1),
    border-color .35s cubic-bezier(.4, 0, .2, 1),
    box-shadow .35s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text nav.ss-art-nav a:hover {
  transform: translateY(-3px);
  border-color: var(--ss-sage, #6B8B85) !important;
  box-shadow: 0 6px 20px rgba(15, 15, 15, .05);
}
body.type-post .text nav.ss-art-nav .ss-art-nav-next { text-align: right; }
body.type-post .text nav.ss-art-nav .ss-art-nav-label {
  font-family: var(--ss-sans, sans-serif);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-sage, #6B8B85);
}
body.type-post .text nav.ss-art-nav .ss-art-nav-title {
  font-family: var(--ss-serif, serif);
  font-size: clamp(16px, 1.5vw, 19px);
  font-weight: 400;
  line-height: 1.3;
  color: var(--ss-black, #0F0F0F);
  letter-spacing: -0.005em;
}


/* ============================================================
   V2.8) BACK TO RUBRIKA — explicit link (use instead of pseudo)
   <a class="ss-art-back" href="/navody/">← Vše návody</a>
   ============================================================ */
body.type-post .text a.ss-art-back {
  display: block;
  margin: clamp(48px, 5vw, 72px) auto 0;
  padding: 14px 28px;
  text-align: center;
  font-family: var(--ss-sans, sans-serif);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ss-muted, rgba(15, 15, 15, .62)) !important;
  width: max-content;
  text-decoration: none !important;
  border-bottom: none !important;
  text-underline-offset: 0;
  transition: color .25s cubic-bezier(.4, 0, .2, 1);
}
body.type-post .text a.ss-art-back:hover {
  color: var(--ss-terracotta, #9A7A5F) !important;
}


/* ============================================================
   V2 — RESPONSIVE adjustments
   ============================================================ */
@media (max-width: 768px) {
  body.type-post .text section.ss-art-products .ss-art-products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  body.type-post .text aside.ss-art-consultation {
    grid-template-columns: 1fr;
    text-align: left;
  }
}

@media (max-width: 640px) {
  body.type-post .text section.ss-art-products .ss-art-products-grid {
    grid-template-columns: 1fr;
  }
  body.type-post .text nav.ss-art-nav {
    grid-template-columns: 1fr;
  }
  body.type-post .text nav.ss-art-nav .ss-art-nav-next { text-align: left; }
  body.type-post .text aside.ss-art-tip,
  body.type-post .text aside.ss-art-warning {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}


/* ============================================================
   24) RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  body.type-post .text h2 {
    padding-top: 44px;
  }
  body.type-post .text h2::before {
    font-size: 36px;
  }
}

@media (max-width: 640px) {
  body.type-post .news-item-detail {
    padding: clamp(32px, 6vw, 48px) 20px clamp(56px, 8vw, 80px);
  }
  body.type-post .text > p:first-of-type::first-letter {
    font-size: 4.2em;
    margin: 4px 10px 0 0;
  }
  body.type-post .text blockquote.ss-art-pull {
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 20px;
    padding-right: 20px;
  }
  body.type-post .text a.ss-art-product {
    grid-template-columns: 72px 1fr;
    gap: 14px;
  }
  body.type-post .text a.ss-art-product .ss-art-product-cta {
    grid-column: 1 / -1;
    margin-top: 4px;
  }
  body.type-post .ss-art-author {
    flex-direction: column;
    text-align: left;
  }
  body.type-post .ss-art-author-photo {
    width: 56px;
    height: 56px;
  }
}
