/*!
 * @file     segments/blog/post-page.css
 * @segment  blog
 * @type     ds24-section--post
 *
 * Digistore24 section-specific CSS: Blog Post Page
 *
 * Single blog post layout — full-width background, sidebar + main content grid.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-header-height, --ds24-radius-card, --ds24-color-*
 *
 */.ds24-segment--blog .ds24-section--post{position:relative;padding:0}.ds24-segment--blog .ds24-section--post:before{content:"";position:absolute;top:0;left:0;right:0;height:500px;background-image:url(/ds24-assets/img/article-background-image.jpg);background-size:cover;background-position:center;z-index:0}.ds24-segment--blog .ds24-layout--post{position:relative;z-index:1;display:grid;grid-template-columns:320px 1fr;align-items:start}.ds24-segment--blog .ds24-section--post-hero{margin-bottom:40px}.ds24-segment--blog .ds24-section--post-hero .post-category-label{font-size:24px;font-weight:var(--ds24-font-medium);color:var(--ds24-color-black);margin-bottom:40px}.ds24-segment--blog .ds24-section--post-hero .post-category-label a{color:inherit;transition:opacity .3s}.ds24-segment--blog .ds24-section--post-hero .post-category-label a:hover{opacity:.75}.ds24-segment--blog .ds24-section--post-hero .post-title{font-size:48px;line-height:1;font-weight:var(--ds24-font-bold);color:var(--ds24-color-black);margin-bottom:40px}.ds24-segment--blog .ds24-section--post-hero .post-meta{display:flex;flex-wrap:wrap;gap:20px}.ds24-segment--blog .ds24-section--post-hero .post-tags{display:flex;flex-wrap:wrap;gap:6px}.ds24-segment--blog .ds24-section--post-hero .post-tag{font-size:14px;font-weight:var(--ds24-font-medium);color:var(--ds24-color-black);background-color:var(--ds24-color-bg-off);border-radius:6px;line-height:1;padding:6px 8px 4px;text-decoration:none;transition:all .3s}.ds24-segment--blog .ds24-section--post-hero .post-tag:hover{opacity:.7;text-decoration:none}.ds24-segment--blog .ds24-section--post-hero .meta-row{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ds24-color-black);font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-section--post-hero .meta-row span,.ds24-segment--blog .ds24-section--post-hero .meta-row time{position:relative;top:2px}.ds24-segment--blog .ds24-section--post-hero .meta-icon{color:var(--ds24-color-muted);flex-shrink:0;stroke-width:2px}.ds24-segment--blog .ds24-section--post-hero .post-hero-img{border-radius:var(--ds24-radius-card);overflow:hidden;margin-top:40px}.ds24-segment--blog .ds24-section--post-hero .post-hero-img img{width:100%;height:auto;display:block}.ds24-segment--blog .ds24-section--post-hero .post-summary{margin-top:40px;font-size:26px;color:var(--ds24-color-black);font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-layout--post .post-sidebar{position:sticky;top:calc(var(--ds24-header-height) + 80px);height:calc(100vh - var(--ds24-header-height) - 160px);padding-right:40px}.ds24-segment--blog .ds24-layout--post .post-main{border-left:1px solid var(--ds24-color-border);padding-left:80px;overflow-x:hidden}.ds24-segment--blog .ds24-section--related h2{margin-bottom:40px}.ds24-segment--blog .ds24-section--related .related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}@media (max-width: 1279px){.ds24-segment--blog .ds24-layout--post .post-sidebar{top:calc(var(--ds24-header-height) + 40px);height:calc(100vh - var(--ds24-header-height) - 80px)}.ds24-segment--blog .ds24-section--related.ds24-layout--container{padding:40px}.ds24-segment--blog .ds24-layout--post .post-main{padding-left:40px}}@media (max-width: 1023px){.ds24-segment--blog .ds24-layout--post{grid-template-columns:1fr}.ds24-segment--blog .ds24-layout--post .post-sidebar{position:static;order:-1;z-index:1;height:auto}.ds24-segment--blog .ds24-layout--post .post-main{border-left:none;padding-left:0}.ds24-segment--blog .ds24-section--related .related-grid{grid-template-columns:repeat(2,1fr)}.ds24-segment--blog .ds24-section--related .ds24-component--post-card.is--last{display:none}}@media (max-width: 767px){.ds24-segment--blog .ds24-section--post-hero .post-title{font-size:34px}.ds24-segment--blog .ds24-section--post-hero .post-category-label{font-size:21px}.ds24-segment--blog .ds24-section--related .related-grid{grid-template-columns:1fr}.ds24-segment--blog .ds24-section--related.ds24-layout--container{padding:40px 20px}.ds24-segment--blog .ds24-section--related .ds24-component--post-card.is--last{display:flex}}/*!
 * @file     segments/blog/block-content.css
 * @segment  blog
 * @type     ds24-component--prose
 *
 * Digistore24 component-specific CSS: Block Content (Prose)
 *
 * Rich text prose wrapper for blog post body content.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-*, --ds24-font-*, --ds24-header-height
 *
 */.ds24-segment--blog .ds24-component--prose{font-size:21px;font-weight:var(--ds24-font-light)}.ds24-segment--blog .ds24-component--prose h2,.ds24-segment--blog .ds24-component--prose h3,.ds24-segment--blog .ds24-component--prose h4,.ds24-segment--blog .ds24-component--prose h5{margin-top:2em;margin-bottom:1em}.ds24-segment--blog .ds24-component--prose h2{font-size:36px}.ds24-segment--blog .ds24-component--prose h3{font-size:30px}.ds24-segment--blog .ds24-component--prose h4{font-size:26px}.ds24-segment--blog .ds24-component--prose h5{font-size:24px}.ds24-segment--blog .ds24-component--prose p{margin-bottom:1.2em}.ds24-segment--blog .ds24-component--prose ul,.ds24-segment--blog .ds24-component--prose ol{margin-bottom:1.2em;padding-left:0;font-size:18px}.ds24-segment--blog .ds24-component--prose ul{list-style:none}.ds24-segment--blog .ds24-component--prose li{margin-bottom:1em}.ds24-segment--blog .ds24-component--prose ul>li{padding-left:28px;position:relative}.ds24-segment--blog .ds24-component--prose ul>li:before{content:"";width:12px;height:7px;border-width:3px 3px 0 0;border-style:solid;border-color:var(--ds24-color-accent);display:inline-block;transform:rotate(130deg);position:absolute;left:2px;top:8px}.ds24-segment--blog .ds24-component--prose ul ul,.ds24-segment--blog .ds24-component--prose ul ol,.ds24-segment--blog .ds24-component--prose ol ul,.ds24-segment--blog .ds24-component--prose ol ol{margin-top:1em;margin-bottom:1em;padding-left:0}.ds24-segment--blog .ds24-component--prose ul ul{margin-left:10px}.ds24-segment--blog .ds24-component--prose ul ol,.ds24-segment--blog .ds24-component--prose ol ul,.ds24-segment--blog .ds24-component--prose ol ol{margin-left:30px}.ds24-segment--blog .ds24-component--prose ul ul>li{padding-left:20px}.ds24-segment--blog .ds24-component--prose ul ul>li:before{content:"•";width:6px;height:6px;border:none;transform:none;font-size:18px;top:2px;left:0;color:var(--ds24-color-accent)}.ds24-segment--blog .ds24-component--prose ul ul ul>li:before{content:"";width:6px;height:6px;background-color:var(--ds24-color-accent);top:10px}.ds24-segment--blog .ds24-component--prose ol{list-style-type:decimal;padding-left:1.5em}.ds24-segment--blog .ds24-component--prose ol ol{list-style-type:lower-alpha}.ds24-segment--blog .ds24-component--prose ol ol ol{list-style-type:lower-roman}.ds24-segment--blog .ds24-component--prose blockquote{border-left:4px solid var(--ds24-color-accent);padding:30px 40px;margin:1.5em 0;background:var(--ds24-color-bg-off);border-radius:0 8px 8px 0;font-size:21px}.ds24-segment--blog .ds24-component--prose strong{font-weight:var(--ds24-font-bold)}.ds24-segment--blog .ds24-component--prose p a,.ds24-segment--blog .ds24-component--prose li a{color:inherit;-webkit-text-decoration:underline 2px var(--ds24-color-accent);text-decoration:underline 2px var(--ds24-color-accent);text-underline-offset:4px;transition:all .3s}.ds24-segment--blog .ds24-component--prose p a:hover,.ds24-segment--blog .ds24-component--prose li a:hover{color:inherit;opacity:.7}.ds24-segment--blog .ds24-component--prose img{border-radius:12px;margin:1.5em 0}.ds24-segment--blog .ds24-component--prose code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:16px;background:#f9fafb;color:var(--ds24-color-blue);border:1px solid var(--ds24-color-border);border-radius:6px;padding:.15em .45em;white-space:pre}.ds24-segment--blog .ds24-component--prose pre code{background:none;border:none;border-radius:0;padding:0;font-size:inherit;color:inherit}@media (max-width: 767px){.ds24-segment--blog .ds24-component--prose{font-size:18px}.ds24-segment--blog .ds24-component--prose h2{font-size:30px}.ds24-segment--blog .ds24-component--prose h3{font-size:26px}.ds24-segment--blog .ds24-component--prose h4{font-size:24px}.ds24-segment--blog .ds24-component--prose h5{font-size:21px}.ds24-segment--blog .ds24-component--prose ul,.ds24-segment--blog .ds24-component--prose ol{font-size:16px}.ds24-segment--blog .ds24-component--prose blockquote{padding:15px 20px;font-size:18px}}/*!
 * @file     segments/blog/pte-image.css
 * @segment  blog
 * @type     ds24-component--pte-image
 *
 * Digistore24 component-specific CSS: PTE Image
 *
 * Images within portable text blocks with optional caption.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-muted
 *
 */.ds24-segment--blog .ds24-component--pte-image{margin:2em 0}.ds24-segment--blog .ds24-component--pte-image img{width:100%;border-radius:12px}.ds24-segment--blog .ds24-component--pte-image .pte-caption{text-align:center;font-size:16px;color:var(--ds24-color-muted);margin-top:-20px}/*!
 * @file     segments/blog/highlight-block.css
 * @segment  blog
 * @type     ds24-component--highlight-block
 *
 * Digistore24 component-specific CSS: Highlight Block
 *
 * Highlighted callout box with optional rich title (inline highlight marks),
 * body text (with bullet/ordered list support), and a CTA button.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-blue, --ds24-color-accent, --ds24-color-bg-off, --ds24-font-*
 *
 */.ds24-segment--blog .ds24-component--highlight-block{margin:2em 0;text-align:left;background-color:var(--ds24-color-bg-off);padding:40px;border-radius:8px;display:flex;flex-direction:column;gap:30px}.ds24-segment--blog .ds24-component--highlight-block .highlight-title{font-size:24px;font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-component--highlight-block .highlight-title .type--highlight{color:var(--ds24-color-blue)}.ds24-segment--blog .ds24-component--highlight-block .highlight-text{font-size:21px}.ds24-segment--blog .ds24-component--highlight-block .highlight-text p{margin-bottom:.8em}.ds24-segment--blog .ds24-component--highlight-block .highlight-text p:last-child{margin-bottom:0}.ds24-segment--blog .ds24-component--highlight-block .highlight-text ul{list-style:none;padding-left:0;margin:0 0 .8em;display:flex;flex-direction:column;gap:12px}.ds24-segment--blog .ds24-component--highlight-block .highlight-text ul>li{padding-left:28px;position:relative;margin-bottom:.3em}.ds24-segment--blog .ds24-component--highlight-block .highlight-text ul>li:before{content:"";width:12px;height:7px;border-width:3px 3px 0 0;border-style:solid;border-color:var(--ds24-color-blue);display:inline-block;transform:rotate(130deg);position:absolute;left:2px;top:8px}.ds24-segment--blog .ds24-component--highlight-block .highlight-text ol{list-style:none;padding-left:0;margin:0 0 .8em;counter-reset:highlight-ol;display:flex;flex-direction:column;gap:12px}.ds24-segment--blog .ds24-component--highlight-block .highlight-text ol>li{counter-increment:highlight-ol;padding-left:36px;position:relative;min-height:28px;margin-bottom:.3em}.ds24-segment--blog .ds24-component--highlight-block .highlight-text ol>li:before{content:counter(highlight-ol);position:absolute;left:0;top:-1px;width:24px;height:24px;border-radius:50%;background-color:var(--ds24-color-blue);color:#fff;font-size:13px;font-weight:var(--ds24-font-bold);line-height:26px;text-align:center}.ds24-segment--blog .ds24-component--highlight-block .highlight-title,.ds24-segment--blog .ds24-component--highlight-block .highlight-text,.ds24-segment--blog .ds24-component--highlight-block .ds24-element--button-block{margin:0}@media (max-width: 767px){.ds24-segment--blog .ds24-component--highlight-block{padding:20px}}/*!
 * @file     segments/blog/info-callout.css
 * @segment  blog
 * @type     ds24-component--info-callout
 *
 * Digistore24 component-specific CSS: Info Callout
 *
 * Callout boxes with info, warning, and success tone variants.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-accent, --ds24-color-bg-off, --ds24-font-*
 *
 */.ds24-segment--blog .ds24-component--info-callout{border-left:4px solid;border-radius:0 12px 12px 0;padding:16px 20px;margin:1.5em 0}.ds24-segment--blog .ds24-component--info-callout.type--info{border-left-color:var(--ds24-color-accent);background:var(--ds24-color-bg-off)}.ds24-segment--blog .ds24-component--info-callout.type--warning{border-left-color:#e46767;background:#fdeded}.ds24-segment--blog .ds24-component--info-callout.type--success{border-left-color:#35aa2b;background:#e7ffe6}.ds24-segment--blog .ds24-component--info-callout .callout-title{display:block;font-weight:var(--ds24-font-bold);margin-bottom:4px;font-size:16px}.ds24-segment--blog .ds24-component--prose .ds24-component--info-callout .callout-body{font-size:16px;line-height:1.2;margin:0}/*!
 * @file     segments/blog/video-embed.css
 * @segment  blog
 * @type     ds24-component--video-embed
 *
 * Digistore24 component-specific CSS: Video Embed
 *
 * Embedded video (YouTube/Vimeo) with 16:9 aspect ratio wrapper and caption.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-muted
 *
 */.ds24-segment--blog .ds24-component--video-embed{margin:2em 0}.ds24-segment--blog .ds24-component--video-embed .video-wrapper{position:relative;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden}.ds24-segment--blog .ds24-component--video-embed .video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.ds24-segment--blog .ds24-component--video-embed .video-caption{text-align:center;font-size:16px;color:var(--ds24-color-muted);margin-top:20px}/*!
 * @file     segments/blog/divider.css
 * @segment  blog
 * @type     ds24-element--divider
 *
 * Digistore24 element-specific CSS: Divider
 *
 * Horizontal dividers within portable text — line, star, diamond, and dots variants.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-muted, --ds24-color-accent
 *
 */hr.ds24-element--divider{margin:60px 0;border:none;border-top:2px solid var(--ds24-color-muted)}div.ds24-element--divider{margin:60px 0;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ds24-segment--blog .ds24-element--divider.type--star{color:var(--ds24-color-accent);font-size:18px;letter-spacing:.2em}.ds24-segment--blog .ds24-element--divider.type--diamond{color:var(--ds24-color-muted);font-size:16px;letter-spacing:.2em}.ds24-segment--blog .ds24-element--divider.type--dots{color:var(--ds24-color-muted);font-size:32px;letter-spacing:0;line-height:1}/*!
 * @file     segments/blog/html-table.css
 * @segment  blog
 * @type     ds24-component--html-table
 *
 * Digistore24 component-specific CSS: HTML Table
 *
 * Responsive grid table with stacked mobile layout using data-label attributes.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-border, --ds24-color-bg-off, --ds24-font-*
 *
 */.ds24-segment--blog .ds24-component--html-table{margin:2em 0}.ds24-segment--blog .ds24-component--html-table .pte-table{width:100%;font-size:18px}.ds24-segment--blog .ds24-component--html-table .pte-table__row{display:grid;grid-template-columns:repeat(var(--col-count, 3),1fr);border-bottom:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--html-table .pte-table__cell{padding:14px 16px 10px;vertical-align:top}.ds24-segment--blog .ds24-component--html-table .pte-table__row--head{background:var(--ds24-color-bg-off);border-bottom:1px solid rgba(157,169,176,.35)}.ds24-segment--blog .ds24-component--html-table .pte-table__cell--head{font-weight:var(--ds24-font-medium);font-size:16px;white-space:nowrap}.ds24-segment--blog .ds24-component--html-table .pte-table__row:nth-child(odd):not(.pte-table__row--head) .pte-table__cell{background:#f9fafb}.ds24-segment--blog .ds24-component--html-table .pte-table-caption{font-size:16px;color:var(--ds24-color-muted);text-align:center;margin-top:20px}@media (max-width: 767px){.ds24-segment--blog .ds24-component--html-table .pte-table{font-size:15px}.ds24-segment--blog .ds24-component--html-table .pte-table__row{display:block;padding:0;border-bottom:1px solid rgba(157,169,176,.35);border-top:none}.ds24-segment--blog .ds24-component--html-table .pte-table__row--head{display:none}.ds24-segment--blog .ds24-component--html-table .pte-table__row:last-child{border-bottom:1px solid rgba(157,169,176,.35);padding-bottom:12px}.ds24-segment--blog .ds24-component--html-table .pte-table__cell{display:flex;gap:6px;padding:12px;font-size:16px;line-height:1.5;flex-direction:column}.ds24-segment--blog .ds24-component--html-table .pte-table__cell:first-of-type{background-color:var(--ds24-color-bg-off)}.ds24-segment--blog .ds24-component--html-table .pte-table__cell:before{content:attr(data-label);font-weight:var(--ds24-font-medium);white-space:nowrap;flex-shrink:0}.ds24-segment--blog .ds24-component--html-table .pte-table__cell[data-label=""]:before{display:none}}/*!
 * @file     segments/blog/two-column-layout.css
 * @segment  blog
 * @type     ds24-component--two-col
 *
 * Digistore24 component-specific CSS: Two Column Layout
 *
 * Two-column layout block within portable text, with 50/50, 60/40, and 40/60 ratio variants.
 *
 */.ds24-segment--blog .ds24-component--two-col{display:grid;grid-template-columns:1fr 1fr;gap:2em;margin:2em 0;align-items:start}.ds24-segment--blog .ds24-component--two-col.layout--60-40{grid-template-columns:3fr 2fr}.ds24-segment--blog .ds24-component--two-col.layout--40-60{grid-template-columns:2fr 3fr}.ds24-segment--blog .ds24-component--two-col .two-col-column{min-width:0}.ds24-segment--blog .ds24-component--two-col .two-col-column>*:first-child{margin-top:0}.ds24-segment--blog .ds24-component--two-col .two-col-column>*:last-child{margin-bottom:0}@media (max-width: 767px){.ds24-segment--blog .ds24-component--two-col,.ds24-segment--blog .ds24-component--two-col.layout--60-40,.ds24-segment--blog .ds24-component--two-col.layout--40-60{grid-template-columns:1fr}}/*!
 * @file     segments/blog/compare-block.css
 * @segment  blog
 * @type     ds24-component--compare
 *
 * Digistore24 component-specific CSS: Compare Block
 *
 * Two-column comparison table (compact) and three-column feature table (full layout).
 * Structure: general shared styles → compact layout → full layout → breakpoints.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-border, --ds24-color-white, --ds24-font-*
 *
 */.ds24-segment--blog .ds24-component--compare{margin:2em 0;text-align:center}.ds24-segment--blog .ds24-component--compare .cmp-title{margin-bottom:1em}.ds24-segment--blog .ds24-component--compare .cmp-caption{margin-top:20px;font-size:16px;color:var(--ds24-color-muted);text-align:center}.ds24-segment--blog .ds24-component--compare .cmp-col-title{font-weight:var(--ds24-font-medium);font-size:18px;color:var(--ds24-color-white);text-transform:uppercase;position:relative;top:2px}.ds24-segment--blog .ds24-component--compare .cmp-logo{max-height:56px;width:auto;display:block;margin:0 auto;-o-object-fit:contain;object-fit:contain}.ds24-segment--blog .ds24-component--compare .cmp-cell{font-size:16px;line-height:1.4;font-weight:var(--ds24-font-medium);border-right:1px solid var(--ds24-color-border);border-bottom:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--compare .cmp-cell p,.ds24-segment--blog .ds24-component--compare .cmp-cell ul,.ds24-segment--blog .ds24-component--compare .cmp-cell ol{margin:0}.ds24-segment--blog .ds24-component--compare .cmp-cell ul,.ds24-segment--blog .ds24-component--compare .cmp-cell ol{padding-left:1.25em}.ds24-segment--blog .ds24-component--compare .cmp-mark{font-weight:var(--ds24-font-bold)}.ds24-segment--blog .ds24-component--compare .cmp-mark.type--positive{color:#1e73cd}.ds24-segment--blog .ds24-component--compare .cmp-mark.type--negative{color:#fd0606}.ds24-segment--blog .ds24-component--compare .cmp-mark.type--neutral{color:#dda832}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-header{display:grid;grid-template-columns:1fr 1fr;gap:40px}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-header-col{padding:18px 20px;background:#1e73cd;text-align:center}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-header-col:last-child{background:var(--ds24-color-gray)}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-body{display:flex;flex-direction:column}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-row{display:grid;grid-template-columns:1fr 1fr;gap:40px}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-cell{padding:14px 20px;border-left:1px solid var(--ds24-color-border);display:flex;justify-content:center;align-items:center}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-body .cmp-row:nth-child(2n) .cmp-cell{background:#f9fafb}@media (max-width: 640px){.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-header,.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-row{display:flex;gap:10px}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-header-col,.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-cell{width:100%}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-header-col{padding:14px 16px}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-col-title{font-size:16px}.ds24-segment--blog .ds24-component--compare:not(.layout--full) .cmp-cell{font-size:14px;padding:12px 14px}}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-subtitle{margin-top:-.5em;margin-bottom:40px;font-size:21px;color:var(--ds24-color-text-muted);text-align:center}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-grid{display:flex;flex-direction:column}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-header-row,.ds24-segment--blog .ds24-component--compare.layout--full .cmp-row{display:grid;grid-template-columns:200px 1fr 1fr;gap:0}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-th{padding:16px 20px;text-align:center;display:flex;align-items:center;justify-content:center}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-th--feature{background:#f9fafb;justify-content:flex-start;border:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-th--feature .cmp-col-title{color:var(--ds24-color-text-muted);font-size:13px;letter-spacing:.06em}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-th--left{background:#1e73cd}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-th--right{background:var(--ds24-color-gray)}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-logo{max-height:48px}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell{padding:14px 18px;display:flex;align-items:start;text-align:left}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--feature{font-weight:var(--ds24-font-medium);color:var(--ds24-color-text);font-size:14px;text-align:left;border-left:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-grid .cmp-row:nth-child(odd) .cmp-cell{background:#f9fafb}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-mark{display:inline-block;padding:6px 8px 4px;border-radius:6px;font-size:14px;margin-right:4px;margin-top:-2px;vertical-align:middle;line-height:1;font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-mark.type--positive{background:#dcfce7;color:#166534}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-mark.type--negative{background:#fee2e2;color:#991b1b}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-mark.type--neutral{background:#fef3c7;color:#92400e}@media (max-width: 680px){.ds24-segment--blog .ds24-component--compare.layout--full .cmp-header-row{display:none}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-subtitle{margin-bottom:20px}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-row{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;margin-bottom:12px;border:1px solid var(--ds24-color-border);overflow:hidden}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--feature{grid-column:1 / -1;background:#f3f4f6!important;padding:8px 14px;border-bottom:1px solid var(--ds24-color-border);border-right:none;border-left:none}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--left,.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--right{border:none;padding:10px 14px;font-size:14px;align-items:flex-start;flex-direction:column}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--left{border-right:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--left:before,.ds24-segment--blog .ds24-component--compare.layout--full .cmp-cell--right:before{content:attr(data-col);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ds24-color-text-muted);margin-bottom:10px}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-grid .cmp-row:nth-child(odd) .cmp-cell{background:unset}.ds24-segment--blog .ds24-component--compare.layout--full .cmp-mark{margin-right:2px;font-size:12px}}/*!
 * @file     segments/blog/faq-block.css
 * @segment  blog
 * @type     ds24-component--faq-block
 *
 * Digistore24 component-specific CSS: FAQ Block
 *
 * Accordion FAQ block — all items collapsed by default, each toggles independently.
 *
 * Notes:
 * - The h5.faq-block-question is the interactive toggle (tabindex, aria-expanded).
 * - JS in faq-block.js sets max-height via scrollHeight for proportional animation.
 * - Toggle icon is a CSS ::after pseudo-element: + collapsed, − expanded.
 * - No auto-close: multiple items can be open simultaneously.
 *
 */.ds24-segment--blog .ds24-component--faq-block{margin:3em 0 2em;padding:28px 32px 8px;background:#f9fafb;border-radius:8px}.ds24-segment--blog .ds24-component--faq-block .faq-block-title{margin:0 0 30px}.ds24-segment--blog .ds24-component--faq-block .faq-block-item{border-bottom:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--faq-block .faq-block-item:last-child{border-bottom:none}.ds24-segment--blog .ds24-component--faq-block .faq-block-question{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:20px 0;color:var(--ds24-color-text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s;font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-component--faq-block .faq-block-question:hover{opacity:.75}.ds24-segment--blog .ds24-component--faq-block .faq-block-question:after{content:"+";flex-shrink:0;width:1.25em;text-align:center;font-size:1.25em;font-weight:300;line-height:1}.ds24-segment--blog .ds24-component--faq-block .faq-block-question[aria-expanded=true]:after{content:"−"}.ds24-segment--blog .ds24-component--faq-block .faq-block-answer{max-height:0;overflow:hidden;transition:max-height .3s ease}.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner{padding-bottom:1.25em}.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner p:first-child,.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner ul:first-child,.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner ol:first-child{margin-top:0}.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner p:last-child,.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner ul:last-child,.ds24-segment--blog .ds24-component--faq-block .faq-block-answer-inner ol:last-child{margin-bottom:0}@media (max-width: 767px){.ds24-segment--blog .ds24-component--faq-block{padding:20px 16px 8px}}/*!
 * @file     segments/blog/code-block.css
 * @segment  blog
 * @type     ds24-component--code-block
 *
 * Digistore24 component-specific CSS: Code Block
 *
 * Wrapper and chrome for fenced code blocks rendered by Shiki.
 * Shiki injects its own <pre class="shiki ..."> with inline colour tokens —
 * this file handles layout, the optional filename bar, and scroll behaviour.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-*, --ds24-radius-*, --ds24-font-*
 * - Never override Shiki's inline token colours — change the theme in CodeBlock.astro
 *
 */.ds24-segment--blog .ds24-component--code-block{margin:1.75em 0;border-radius:var(--ds24-radius-md);overflow:hidden;border:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--code-block .code-filename{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px;font-weight:var(--ds24-font-medium);color:#8b949e;background:#161b22;padding:8px 20px;border-bottom:1px solid #30363d}.ds24-segment--blog .ds24-component--code-block .shiki{margin:0;padding:20px 24px;overflow-x:auto;border-radius:0}.ds24-segment--blog .ds24-component--code-block .shiki code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:14px;line-height:1.65;counter-reset:none}.ds24-segment--blog .ds24-component--code-block{position:relative}.ds24-segment--blog .ds24-component--code-block .code-copy-btn{position:absolute;top:10px;right:12px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;font-weight:var(--ds24-font-medium);line-height:1;color:#8b949e;background:#21262d;border:1px solid #30363d;border-radius:var(--ds24-radius-sm);padding:5px 10px;cursor:pointer;transition:color .15s,background .15s,border-color .15s;z-index:1}.ds24-segment--blog .ds24-component--code-block .code-copy-btn:hover{color:#e6edf3;background:#30363d;border-color:#8b949e}.ds24-segment--blog .ds24-component--code-block .code-copy-btn.is--copied{color:#3fb950;border-color:#3fb950}.ds24-segment--blog .ds24-component--code-block .code-filename{padding-right:70px}@media (max-width: 767px){.ds24-segment--blog .ds24-component--code-block .shiki{padding:16px}.ds24-segment--blog .ds24-component--code-block .shiki code{font-size:13px}}/*!
 * @file     segments/blog/table-of-contents.css
 * @segment  blog
 * @type     ds24-component--toc
 *
 * Digistore24 component-specific CSS: Table of Contents
 *
 * Desktop sticky sidebar ToC + mobile bottom-sheet with trigger and close buttons.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-*, --ds24-font-*, --ds24-header-height
 *
 */.ds24-segment--blog .ds24-component--toc.toc-desktop{font-size:16px;display:flex;flex-direction:column;height:100%}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list{flex:1 1 0;min-height:0;overflow-y:scroll;padding-right:12px;scrollbar-width:thin;scrollbar-color:var(--ds24-color-border) transparent}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list::-webkit-scrollbar{width:3px}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list::-webkit-scrollbar-track{background:transparent}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list::-webkit-scrollbar-thumb{background:var(--ds24-color-border);border-radius:2px}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list::-webkit-scrollbar-thumb:hover{background:var(--ds24-color-accent)}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list.has--fade-bottom{mask-image:linear-gradient(to bottom,black calc(100% - 80px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black calc(100% - 80px),transparent 100%)}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list.has--fade-top{mask-image:linear-gradient(to top,black calc(100% - 80px),transparent 100%);-webkit-mask-image:linear-gradient(to top,black calc(100% - 80px),transparent 100%)}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-list.has--fade-top.has--fade-bottom{mask-image:linear-gradient(to bottom,transparent 0,black 60px,black calc(100% - 80px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 60px,black calc(100% - 80px),transparent 100%)}.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-author,.ds24-segment--blog .ds24-component--toc.toc-desktop .toc-share{flex-shrink:0}.ds24-segment--blog .ds24-component--toc .toc-title{font-size:24px;font-weight:var(--ds24-font-medium);color:var(--ds24-color-black);margin-bottom:16px;line-height:1.2}.ds24-segment--blog .ds24-component--toc .toc-list{list-style:none}.ds24-segment--blog .ds24-component--toc .toc-item{border-top:none;padding:20px 0;border-bottom:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--toc .toc-item:last-of-type{border-bottom:none}.ds24-segment--blog .ds24-component--toc .toc-link{display:block;padding:0 16px 0 0;color:var(--ds24-color-black);text-decoration:underline;text-decoration-color:var(--ds24-color-accent);text-decoration-thickness:2px;text-underline-offset:4px;line-height:1.2;font-size:16px;font-weight:var(--ds24-font-medium);transition:all .3s;position:relative}.ds24-segment--blog .ds24-component--toc .toc-link:hover{text-decoration-color:var(--ds24-color-border)}.ds24-segment--blog .ds24-component--toc .toc-link:after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;border-width:2px 2px 0 0;border-style:solid;border-color:#9da9b0;transform:rotate(45deg);opacity:0;transition:all .3s ease}.ds24-segment--blog .ds24-component--toc .toc-link.is-active:after{border-color:var(--ds24-color-accent)}.ds24-segment--blog .ds24-component--toc .toc-link.is-active:hover:after{border-color:#9da9b0}.ds24-segment--blog .ds24-component--toc .toc-link.is-active:after,.ds24-segment--blog .ds24-component--toc .toc-link:hover:after{opacity:1;right:2px}.ds24-segment--blog .ds24-component--toc .toc-author{margin-top:20px;padding-top:20px;border-top:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--toc .toc-author-inner{display:flex;gap:20px;align-items:center;text-decoration:none;color:inherit;transition:opacity .2s}.ds24-segment--blog .ds24-component--toc .toc-author-info:hover{opacity:.75}.ds24-segment--blog .ds24-component--toc .toc-author-avatar{width:60px;height:60px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.ds24-segment--blog .ds24-component--toc .toc-avatar-placeholder{width:50px;height:50px;border-radius:50%;background:var(--ds24-color-bg-off);flex-shrink:0}.ds24-segment--blog .ds24-component--toc .toc-author-info{display:flex;flex-direction:column}.ds24-segment--blog .ds24-component--toc .toc-author-label{font-size:12px;font-weight:var(--ds24-font-medium);color:var(--ds24-color-accent);margin-bottom:6px}.ds24-segment--blog .ds24-component--toc .toc-author-name{font-size:14px;font-weight:var(--ds24-font-bold);color:var(--ds24-color-black)}.ds24-segment--blog .ds24-component--toc .toc-author-role{font-size:12px;color:var(--ds24-color-muted);font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-component--toc .toc-share{margin-top:20px;padding-top:40px;border-top:1px solid var(--ds24-color-border);display:flex;align-items:center}.ds24-segment--blog .ds24-component--toc .toc-share-label{font-size:14px;font-weight:var(--ds24-font-bold);color:var(--ds24-color-black);margin-right:20px;position:relative;top:2px}.ds24-segment--blog .ds24-component--toc .toc-share-icons{display:flex;gap:12px;padding:10px 20px;border-left:1px solid var(--ds24-color-border)}.ds24-segment--blog .ds24-component--toc .toc-share-icon{color:var(--ds24-color-muted);display:flex;align-items:center;transition:color .2s}.ds24-segment--blog .ds24-component--toc .toc-share-icon:hover{color:var(--ds24-color-black)}.ds24-segment--blog .toc-mobile-trigger{display:none;position:fixed;bottom:24px;right:24px;z-index:90;width:54px;height:54px;background:var(--ds24-color-accent);border:none;border-radius:28px;font-family:var(--ds24-font-family);cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:var(--ds24-color-white);z-index:2}.ds24-segment--blog .toc-mobile-trigger svg{flex-shrink:0;width:28px;height:28px}.ds24-segment--blog .toc-mobile-trigger span{font-size:10px;font-weight:var(--ds24-font-bold);text-transform:uppercase;letter-spacing:.04em;line-height:1}.ds24-segment--blog .toc-mobile-trigger.is-hidden{display:none}.ds24-segment--blog .toc-mobile-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:99;opacity:0;transition:opacity .3s}.ds24-segment--blog .toc-mobile-backdrop.is-open{opacity:1}.ds24-segment--blog .toc-mobile-sheet{display:none;position:fixed;bottom:0;left:0;right:0;height:100vh;background:var(--ds24-color-white);border-radius:0;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);flex-direction:column;box-shadow:none;padding-top:calc(var(--ds24-header-height) + var(--ds24-subnav-height));z-index:1}.ds24-segment--blog .toc-mobile-sheet.is-open{transform:translateY(0)}.ds24-segment--blog .toc-sheet-header{display:flex;align-items:center;padding:40px;border-bottom:1px solid var(--ds24-color-border);flex-shrink:0}.ds24-segment--blog .toc-sheet-header .toc-title{margin-bottom:0;position:relative;top:2px}.ds24-segment--blog .toc-mobile-close{display:none;position:fixed;bottom:24px;right:24px;z-index:101;width:54px;height:54px;background:var(--ds24-color-black);border:none;border-radius:28px;cursor:pointer;align-items:center;justify-content:center;color:var(--ds24-color-white);z-index:2}.ds24-segment--blog .toc-mobile-close svg{flex-shrink:0;width:24px;height:24px}.ds24-segment--blog .toc-mobile-close.is-visible{display:flex}.ds24-segment--blog .toc-sheet-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:40px}.ds24-segment--blog .toc-sheet-body .toc-list{flex:1 1 0;min-height:0;overflow-y:auto}.ds24-segment--blog .toc-share-mobile{flex-shrink:0;margin-top:20px;padding-top:20px;border-top:1px solid var(--ds24-color-border)}@media (max-width: 1023px){.ds24-segment--blog .ds24-component--toc.toc-desktop{display:none}.ds24-segment--blog .toc-mobile-trigger,.ds24-segment--blog .toc-mobile-sheet,.ds24-segment--blog .toc-mobile-close.is-visible{display:flex}.ds24-segment--blog .toc-sheet-header,.ds24-segment--blog .toc-sheet-body{padding:var(--ds24-space-default)}.ds24-segment--blog .toc-mobile-trigger,.ds24-segment--blog .toc-mobile-close{right:24px;bottom:32px}}@media (max-width: 767px){.ds24-segment--blog .toc-mobile-trigger,.ds24-segment--blog .toc-mobile-close{right:10px;bottom:10px}}/*!
 * @file     segments/blog/author-bio.css
 * @segment  blog
 * @type     ds24-component--author-bio
 *
 * Digistore24 component-specific CSS: Author Bio
 *
 * Author biography section displayed below the post body in the sidebar.
 *
 * Notes:
 * - Depends on: global/tokens.css → --ds24-color-*, --ds24-font-*
 *
 */.ds24-segment--blog .ds24-component--author-bio{display:flex;align-items:center;gap:40px;padding:40px 0;border-top:1px solid var(--ds24-color-border);border-bottom:1px solid var(--ds24-color-border);margin-top:80px}.ds24-segment--blog .ds24-component--author-bio .author-left{display:flex;align-items:center;gap:20px;flex-shrink:0;max-width:280px}.ds24-segment--blog .ds24-component--author-bio .author-avatar{display:block;flex-shrink:0;text-decoration:none;transition:opacity .2s}.ds24-segment--blog .ds24-component--author-bio .author-avatar img{width:80px;height:80px;border-radius:50%;-o-object-fit:cover;object-fit:cover;display:block}.ds24-segment--blog .ds24-component--author-bio .avatar-placeholder{width:80px;height:80px;border-radius:50%;background:var(--ds24-color-border)}.ds24-segment--blog .ds24-component--author-bio .author-info{display:flex;flex-direction:column;gap:2px}.ds24-segment--blog .ds24-component--author-bio .author-label{font-size:14px;font-weight:var(--ds24-font-medium);color:var(--ds24-color-accent)}.ds24-segment--blog .ds24-component--author-bio .author-name{font-size:18px;font-weight:var(--ds24-font-bold);color:var(--ds24-color-black);text-decoration:none;transition:all .2s}.ds24-segment--blog .ds24-component--author-bio a.author-name:hover{opacity:.75}.ds24-segment--blog .ds24-component--author-bio .author-role{font-size:14px;color:var(--ds24-color-muted);font-weight:var(--ds24-font-medium)}.ds24-segment--blog .ds24-component--author-bio .author-divider{width:1px;align-self:stretch;background:var(--ds24-color-border);flex-shrink:0}.ds24-segment--blog .ds24-component--author-bio .author-right{flex:1;min-width:0}.ds24-segment--blog .ds24-component--author-bio .author-bio-text{font-size:18px;line-height:1.2;color:var(--ds24-color-black);margin:0}@media (max-width: 1279px){.ds24-segment--blog .ds24-component--author-bio{flex-direction:column;align-items:start;gap:20px}}@media (max-width: 767px){.ds24-segment--blog .ds24-component--author-bio{flex-direction:column;align-items:flex-start;gap:40px}.ds24-segment--blog .ds24-component--author-bio .author-divider{display:none}}
