.dsk-blog-article, .dsk-blog-hub{
  --dsk-blog-shell-max: var(--dsk-layout-shell-max, 1320px);
  --dsk-blog-inner-max: var(--dsk-layout-shell-max, 1320px);
  --dsk-blog-copy-max: var(--dsk-layout-shell-max, 1320px);
  --dsk-blog-gutter: var(--dsk-layout-shell-gutter, 20px);
  --dsk-blog-row-top: 48px;
  --dsk-blog-row-bottom: 56px;
  background: #fff;
}.dsk-blog-article{
  --dsk-blog-article-copy-max: 860px;
  --dsk-blog-article-title-max: 22ch;
  --dsk-blog-article-title-gap: 18px;
  --dsk-blog-article-image-gap: 36px;
}.dsk-blog-article #main-content, .dsk-blog-article #sb-page-structure, .dsk-blog-article #blog-post-template, .dsk-blog-article #blog-post-template > .container, .dsk-blog-article #blog-post-template .sb-column, .dsk-blog-article #blog-post-template .sb-column-content, .dsk-blog-article #blog-post-template .sb-item-view-wrapper, .dsk-blog-article #blog-post-template .sb-item-view, .dsk-blog-article #blog-post-template .sb-item-view__body, .dsk-blog-hub #main-content, .dsk-blog-hub #sb-page-structure, .dsk-blog-hub .section-intro, .dsk-blog-hub .section-intro__inner, .dsk-blog-hub #blog, .dsk-blog-hub #blog > .container, .dsk-blog-hub #blog .sb-row, .dsk-blog-hub #blog .sb-column, .dsk-blog-hub #blog .sb-column-content, .dsk-blog-hub #blog .sb-blog-card-section, .dsk-blog-hub #blog .sb-blog-card-section__content, .dsk-blog-hub .dsk-blog-most-read, .dsk-blog-hub .dsk-blog-quicknav, .dsk-blog-hub .dsk-blog-pagination, .dsk-blog-hub .dsk-hub-filters__inner, .dsk-blog-hub .items-grid.sb-blog{
  background: #fff;
}.dsk-blog-article #blog-post-template{
  box-shadow: none;
  flex-direction: column;
  align-items: stretch;
}.dsk-blog-article #blog-post-template .sb-item-view__title, .dsk-blog-article #blog-post-template .sb-item-view__meta, .dsk-blog-article #blog-post-template .sb-item-view__image, .dsk-blog-article #blog-post-template .sb-item-view__body{
  position: relative;
  z-index: 1;
}.dsk-blog-article .sb-item-view__title > span, .dsk-blog-article .sb-item-view__body > :is(h2, h3, p) > span, .dsk-blog-article .sb-item-view__body > p > strong > span, .dsk-blog-article .sb-item-view__body > p > span.u-strong > span, .dsk-blog-article .sb-section-title > span{
  color: inherit;
  display: inline-block;
}

body.dsk-blog-hub .dsk-cta-lab {
  background: linear-gradient(135deg, rgba(10, 25, 45, 0.96) 0%, rgba(6, 14, 28, 0.96) 55%, rgba(10, 25, 45, 0.96) 100%) !important;
}

body.dsk-blog-hub .dsk-cta-lab__inner {
  background: rgba(10, 25, 45, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.10);
  backdrop-filter: blur(10px);
}

@media (min-width: 1024px) {.dsk-blog-article #blog-post-template > .container, .dsk-blog-article #dsk-blog-to-service-cta > .container, .dsk-blog-hub #blog > .container, .dsk-blog-hub #blog .container, .dsk-blog-hub .section-intro, .dsk-blog-hub .section-intro__inner, .dsk-blog-hub .dsk-blog-most-read, .dsk-blog-hub .dsk-blog-quicknav, .dsk-blog-hub .dsk-blog-pagination, .dsk-blog-hub .dsk-hub-filters__inner, .dsk-blog-hub .dsk-cta-lab__inner, .dsk-blog-hub .sb-blog-card-section__content{
    width: min(var(--dsk-blog-shell-max), calc(100% - 40px));
    max-width: var(--dsk-blog-shell-max);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    padding-left: var(--dsk-blog-gutter);
    padding-right: var(--dsk-blog-gutter);
  }.dsk-blog-article #blog-post-template .sb-row, .dsk-blog-hub #blog .sb-row{
    padding-top: var(--dsk-blog-row-top);
    padding-bottom: var(--dsk-blog-row-bottom);
  }.dsk-blog-article #blog-post-template .sb-column{
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }.dsk-blog-article #blog-post-template .sb-item-view-wrapper, .dsk-blog-article #blog-post-template .sb-item-view{
    width: 100%;
    max-width: var(--dsk-blog-inner-max);
    margin-left: auto;
    margin-right: auto;
  }.dsk-blog-article #blog-post-template .sb-item-view__title, .dsk-blog-article #blog-post-template .sb-item-view__meta, .dsk-blog-article #blog-post-template .sb-item-view__image{
    width: 100%;
    max-width: var(--dsk-blog-inner-max);
    margin-left: auto;
    margin-right: auto;
  }.dsk-blog-article #blog-post-template .sb-item-view__title{
    margin-bottom: var(--dsk-blog-article-title-gap);
  }.dsk-blog-article #blog-post-template .sb-item-view__image{
    margin-top: 0;
    margin-bottom: var(--dsk-blog-article-image-gap);
  }.dsk-blog-article #blog-post-template .sb-item-view__body > :first-child{
    margin-top: 0 !important;
  }.dsk-blog-article{
    --dsk-blog-article-body-size: clamp(1.02rem, 0.22vw + 0.99rem, 1.08rem);
    --dsk-blog-article-body-lh: 1.82;
    --dsk-blog-article-p-gap: 1.18rem;
    --dsk-blog-article-list-gap: 1.22rem;
    --dsk-blog-article-list-indent: 1.28rem;
    --dsk-blog-article-li-gap: 0.48rem;
    --dsk-blog-article-h2-size: clamp(1.42rem, 0.38vw + 1.34rem, 1.78rem);
    --dsk-blog-article-h2-lh: 1.24;
    --dsk-blog-article-h2-mt: 2.35rem;
    --dsk-blog-article-h2-mb: 0.92rem;
    --dsk-blog-article-h3-size: clamp(1.18rem, 0.24vw + 1.14rem, 1.38rem);
    --dsk-blog-article-h3-lh: 1.31;
    --dsk-blog-article-h3-mt: 1.7rem;
    --dsk-blog-article-h3-mb: 0.72rem;
    --dsk-blog-article-quote-gap: 1.52rem;
    --dsk-blog-article-quote-pad-y: 1.08rem;
    --dsk-blog-article-quote-pad-x: 1.18rem;
    --dsk-blog-article-callout-gap: 1.58rem;
    --dsk-blog-article-callout-pad-y: 1.12rem;
    --dsk-blog-article-callout-pad-x: 1.18rem;
    --dsk-blog-article-figure-gap: 1.5rem;
    --dsk-blog-article-related-gap: 2.34rem;
    --dsk-blog-article-related-services-gap: 1.6rem;
    --dsk-blog-article-related-services-pad-y: 1.14rem;
    --dsk-blog-article-related-services-pad-x: 1.18rem;
    --dsk-blog-article-related-services-h2-mt: 1.12rem;
    --dsk-blog-article-related-services-h2-mb: 0.58rem;
    --dsk-blog-article-related-services-list-gap: 0.92rem;
    --dsk-blog-article-related-services-li-gap: 0.34rem;
    --dsk-blog-article-service-cta-gap: 2.88rem;
    --dsk-blog-article-service-cta-pad-y: 1.44rem;
    --dsk-blog-article-service-cta-pad-x: 1.32rem;
    --dsk-blog-article-service-cta-title-size: clamp(1.24rem, 0.26vw + 1.2rem, 1.5rem);
    --dsk-blog-article-service-cta-title-lh: 1.27;
    --dsk-blog-article-service-cta-body-size: clamp(0.99rem, 0.16vw + 0.97rem, 1.04rem);
    --dsk-blog-article-service-cta-body-lh: 1.76;
    --dsk-blog-article-service-cta-p-gap: 0.98rem;
    --dsk-blog-article-service-cta-list-gap: 1.04rem;
    --dsk-blog-article-service-cta-li-gap: 0.48rem;
  }.dsk-blog-article #blog-post-template .sb-item-view__body{
    width: 100%;
    max-width: min(100%, var(--dsk-blog-article-copy-max, var(--dsk-blog-copy-max)));
    margin-left: auto;
    margin-right: auto;
    font-size: var(--dsk-blog-article-body-size);
    line-height: var(--dsk-blog-article-body-lh);
  }.dsk-blog-article #blog-post-template .sb-item-view__body p{
    font-size: inherit;
    line-height: inherit;
    margin: 0 0 var(--dsk-blog-article-p-gap);
  }.dsk-blog-article #blog-post-template .sb-item-view__body p:last-child{
    margin-bottom: 0;
  }.dsk-blog-article #blog-post-template .sb-item-view__body :is(ul, ol){
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    font-size: inherit;
    line-height: inherit;
    margin: 0 0 var(--dsk-blog-article-list-gap);
    padding-left: var(--dsk-blog-article-list-indent);
  }.dsk-blog-article #blog-post-template .sb-item-view__body li{
    font-size: inherit;
    line-height: inherit;
    margin: 0 0 var(--dsk-blog-article-li-gap);
  }.dsk-blog-article #blog-post-template .sb-item-view__body li:last-child{
    margin-bottom: 0 !important;
  }.dsk-blog-article #blog-post-template .sb-item-view__body :is(ul, ol):last-child{
    margin-bottom: 0 !important;
  }.dsk-blog-article #blog-post-template .sb-item-view__body p + :is(ul, ol){
    margin-top: calc(var(--dsk-blog-article-p-gap) * -0.1) !important;
  }.dsk-blog-article #blog-post-template .sb-item-view__body :is(ul, ol) + p{
    margin-top: 0;
  }.dsk-blog-article #blog-post-template .sb-item-view__body h2{
    font-size: var(--dsk-blog-article-h2-size) !important;
    line-height: var(--dsk-blog-article-h2-lh) !important;
    letter-spacing: -0.018em;
    margin: var(--dsk-blog-article-h2-mt) 0 var(--dsk-blog-article-h2-mb) !important;
    text-wrap: balance;
  }.dsk-blog-article #blog-post-template .sb-item-view__body :is(p, ul, ol, blockquote, figure, table, pre) + h2{
    margin-top: var(--dsk-blog-article-h2-mt);
  }.dsk-blog-article #blog-post-template .sb-item-view__body h2 + p{
    margin-top: 0;
  }.dsk-blog-article #blog-post-template .sb-item-view__body h3{
    font-size: var(--dsk-blog-article-h3-size) !important;
    line-height: var(--dsk-blog-article-h3-lh) !important;
    letter-spacing: -0.014em;
    margin: var(--dsk-blog-article-h3-mt) 0 var(--dsk-blog-article-h3-mb) !important;
    text-wrap: balance;
  }.dsk-blog-article #blog-post-template .sb-item-view__body :is(p, ul, ol, blockquote, figure, table, pre) + h3{
    margin-top: var(--dsk-blog-article-h3-mt);
  }.dsk-blog-article #blog-post-template .sb-item-view__body h3 + p{
    margin-top: 0;
  }.dsk-blog-article #blog-post-template .sb-item-view__body .dsk-callout{
    margin: 0 0 var(--dsk-blog-article-callout-gap);
    padding: var(--dsk-blog-article-callout-pad-y) var(--dsk-blog-article-callout-pad-x);
    border-radius: 18px;
    box-sizing: border-box;
  }.dsk-blog-article #blog-post-template .sb-item-view__body .dsk-callout > :last-child{
    margin-bottom: 0;
  }@media (max-width:820px) {.dsk-blog-article .dsk-related-reading{
      padding: 0.98rem 0.96rem;
      border-radius: 18px;
    }.dsk-blog-article .dsk-related-reading > p{
      font-size: 0.96rem;
      line-height: 1.68;
    }.dsk-blog-article .dsk-related-reading > ul{
      padding-left: 1.02rem;
    }.dsk-blog-article .dsk-related-reading > ul > li{
      margin-bottom: 0.38rem;
    }
  }.dsk-blog-article #blog-post-template ~ .sb-section .dsk-related-reading{
    margin-top: var(--dsk-blog-article-related-gap);
  }.dsk-blog-article #dsk-blog-to-service-cta{
    margin-top: var(--dsk-blog-article-service-cta-gap);
  }.dsk-blog-article #dsk-blog-to-service-cta .sb-column-content{
    max-width: min(100%, var(--dsk-blog-article-copy-max, var(--dsk-blog-copy-max)));
    margin: 0 auto;
    padding: var(--dsk-blog-article-service-cta-pad-y) var(--dsk-blog-article-service-cta-pad-x);
    border-radius: 22px;
    background: rgba(7, 64, 159, 0.035);
    border: 1px solid rgba(7, 64, 159, 0.08);
    box-sizing: border-box;
  }.dsk-blog-article #dsk-blog-to-service-cta :is(h2, h3){
    font-size: var(--dsk-blog-article-service-cta-title-size);
    line-height: var(--dsk-blog-article-service-cta-title-lh);
    letter-spacing: -0.015em;
    margin: 0 0 0.8rem;
    text-wrap: balance;
  }.dsk-blog-article #dsk-blog-to-service-cta p, .dsk-blog-article #dsk-blog-to-service-cta li{
    font-size: var(--dsk-blog-article-service-cta-body-size);
    line-height: var(--dsk-blog-article-service-cta-body-lh);
  }.dsk-blog-article #dsk-blog-to-service-cta p{
    margin: 0 0 var(--dsk-blog-article-service-cta-p-gap);
    max-width: 68ch;
  }.dsk-blog-article #dsk-blog-to-service-cta .sb-column-content > ul{
    margin: 0 0 var(--dsk-blog-article-service-cta-list-gap);
    padding-left: max(1.05rem, var(--dsk-blog-article-list-indent, 1.22rem));
  }.dsk-blog-article #dsk-blog-to-service-cta li{
    margin: 0 0 var(--dsk-blog-article-service-cta-li-gap);
  }.dsk-blog-article #dsk-blog-to-service-cta li:last-child, .dsk-blog-article #dsk-blog-to-service-cta p:last-child, .dsk-blog-article #dsk-blog-to-service-cta .sb-column-content > ul:last-child{
    margin-bottom: 0;
  }.dsk-blog-article #dsk-blog-to-service-cta a{
    font-weight: 600;
    text-underline-offset: 0.18em;
  }

  body.dsk-blog-hub #blog .items-grid.sb-blog {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }.dsk-blog-article .dsk-related-reading{
    width: 100%;
    max-width: min(100%, var(--dsk-blog-copy-max));
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    padding: 1.12rem 1.18rem;
    border: 1px solid rgba(15, 118, 110, 0.12);
    border-radius: 20px;
    background: rgba(15, 118, 110, 0.028);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.035);
  }.dsk-blog-article .dsk-related-reading > h2, .dsk-blog-article .dsk-related-reading > h3{
    margin: 0 0 0.72rem !important;
    line-height: 1.26 !important;
  }.dsk-blog-article .dsk-related-reading > p{
    margin: 0 0 0.82rem !important;
    font-size: 0.98rem !important;
    line-height: 1.72 !important;
    color: rgba(15, 23, 42, 0.82);
  }.dsk-blog-article .dsk-related-reading > ul{
    margin: 0;
    padding-left: 1.16rem;
  }.dsk-blog-article .dsk-related-reading > ul > li{
    margin-bottom: 0.46rem;
  }.dsk-blog-article .dsk-related-reading > ul > li:last-child{
    margin-bottom: 0;
  }.dsk-blog-article .dsk-related-reading a{
    text-underline-offset: 0.16em !important;
  }
}.dsk-blog-article #blog-post-template .sb-item-view, .dsk-blog-article #blog-post-template .sb-item-view__body, .dsk-blog-article #blog-post-template .sb-item-view__body > *, .dsk-blog-hub #blog li.items-grid__item.sb-blog-card, .dsk-blog-hub #blog li.items-grid__item.sb-blog-card .items-grid__item-body, .dsk-blog-hub #blog li.items-grid__item.sb-blog-card .items-grid__item-content{
  min-width: 0;
  box-sizing: border-box;
}.dsk-blog-article #blog-post-template .sb-item-view__body, .dsk-blog-article #blog-post-template .sb-item-view__body p, .dsk-blog-article #blog-post-template .sb-item-view__body li, .dsk-blog-article #blog-post-template .sb-item-view__body h2, .dsk-blog-article #blog-post-template .sb-item-view__body h3, .dsk-blog-article #blog-post-template .sb-item-view__body h4, .dsk-blog-article #blog-post-template .sb-item-view__body h5, .dsk-blog-article #blog-post-template .sb-item-view__body h6, .dsk-blog-article #blog-post-template .sb-item-view__body blockquote, .dsk-blog-article #blog-post-template .sb-item-view__body figcaption, .dsk-blog-article #blog-post-template .sb-item-view__body a, .dsk-blog-article #blog-post-template .sb-item-view__body code, .dsk-blog-article #blog-post-template .sb-item-view__body strong, .dsk-blog-article #blog-post-template .sb-item-view__body em, .dsk-blog-hub #blog li.items-grid__item.sb-blog-card .items-grid__summary{
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}


@media (min-width:821px) {
  /* Stage 57 pass 4 — service-article family: keep service guide articles on the
     same content band as footer/header. The old template still centered the body
     at 1040px and left loose follow-up blocks outside the shared wrapper. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta){
    --dsk-blog-article-cta-shell-max: 1280px;
    --dsk-blog-article-cta-shell-side: 80px;
    --dsk-blog-article-cta-copy-max: 1200px;
    --dsk-blog-article-cta-parity-max: var(--dsk-blog-article-shell-max, 1206px);
    --dsk-blog-article-cta-parity-inset: var(--dsk-blog-article-shell-inset, 65px);
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #dsk-blog-to-service-cta > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column-content,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view-wrapper,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__title,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__meta,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__image,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template ~ :is(h2,h3,p,ul,ol,.dsk-related-reading){
    width:min(var(--dsk-blog-article-cta-shell-max),calc(100% - var(--dsk-blog-article-cta-shell-side))) !important;
    max-width:var(--dsk-blog-article-cta-shell-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body > :is(p,ul,ol,h2,h3,h4,h5,h6,blockquote,figure,table,pre,.dsk-related-reading){
    width:100% !important;
    max-width:min(var(--dsk-blog-article-cta-copy-max),calc(100% - var(--dsk-blog-article-cta-shell-side))) !important;
    margin-left:0 !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #dsk-blog-to-service-cta > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column-content,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view-wrapper,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template ~ :is(h2,h3,p,ul,ol,.dsk-related-reading){
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #dsk-blog-to-service-cta > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template ~ :is(h2,h3,p,ul,ol,.dsk-related-reading){
    width:min(1280px,calc(100% - 80px)) !important;
    max-width:1280px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column-content,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view-wrapper,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* Stage 57 pass 4B — service article outer shell uses the same 1320/20 model as
     header/footer; the inner body then spans 100% of that shell. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template > .container,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #dsk-blog-to-service-cta > .container{
    width:min(1320px,calc(100% - 40px)) !important;
    max-width:1320px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:20px !important;
    padding-right:20px !important;
    box-sizing:border-box !important;
  }

  /* Stage 57 pass 4D — the legacy blog/article template still keeps the main
     column at 75% until 1024px. Promote service articles to a full-width single
     column from 821px upward so the body follows the shared footer band. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-column{
    flex:0 0 100% !important;
    width:100% !important;
    max-width:none !important;
  }

}

@media (min-width:821px) and (max-width:1023px) {
  /* Stage 57 pass 4C — at the 821px laptop edge, service articles still keep a
     side-by-side item-view and leave the body on a narrow island. Stack the hero
     image above the copy so the article body uses the full shared band. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view{
    display:block !important;
  }
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__image,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    float:none !important;
  }
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__image{
    margin-bottom:24px !important;
  }
}

@media (min-width:1024px){.dsk-blog-article, .dsk-blog-hub{
    --dsk-blog-shell-max:var(--dsk-layout-shell-max,1320px);
    --dsk-blog-inner-max:var(--dsk-layout-shell-max,1320px);
    --dsk-blog-copy-max:var(--dsk-layout-shell-max,1320px) !important;
    --dsk-blog-top-max:var(--dsk-layout-shell-max,1320px);
    --dsk-blog-gutter:var(--dsk-layout-shell-gutter,20px);
  }.dsk-blog-article main .sb-section > .container.sb-container-fixed.sb-container, .dsk-blog-hub main .sb-section > .container.sb-container-fixed.sb-container, .dsk-blog-hub #blog-hero .dsk-about-hero__inner, .dsk-blog-hub .dsk-hub-filters__inner, .dsk-blog-hub .dsk-blog-quicknav, .dsk-blog-hub .dsk-blog-pagination, .dsk-blog-hub .section-intro, .dsk-blog-hub .dsk-cta-lab__inner{
    width:min(var(--dsk-layout-shell-max,1320px),calc(100% - (var(--dsk-layout-shell-gutter,20px) * 2)));
    max-width:var(--dsk-layout-shell-max,1320px);
    margin-left:auto;
    margin-right:auto;
    padding-left:var(--dsk-layout-shell-gutter,20px);
    padding-right:var(--dsk-layout-shell-gutter,20px);
    box-sizing:border-box;
  }

  /* Preserve the compact pill bar while keeping the same outer axis. */
  body.dsk-blog-hub .dsk-hub-filters__inner{
    padding-left:14px;
    padding-right:14px;
  }.dsk-blog-article #blog-post-template .sb-column-content, .dsk-blog-article #blog-post-template .sb-item-view-wrapper, .dsk-blog-article #blog-post-template .sb-item-view, .dsk-blog-article #blog-post-template .sb-item-view__title, .dsk-blog-article #blog-post-template .sb-item-view__meta, .dsk-blog-article #blog-post-template .sb-item-view__image, .dsk-blog-article #blog-post-template .sb-item-view__body, .dsk-blog-hub .section-intro__inner, .dsk-blog-hub #blog .sb-blog-card-section__content, .dsk-blog-hub #blog .sb-blog-card-section .option-width.sb-section-alignable, .dsk-blog-hub #blog .dsk-blog-most-read, .dsk-blog-hub #blog .items-grid.sb-blog{
    width:100%;
    max-width:none;
    margin-left:0;
    margin-right:0;
    padding-left:0;
    padding-right:0;
    box-sizing:border-box;
  }.dsk-blog-article #blog-post-template .sb-item-view__image figure, .dsk-blog-article #blog-post-template .sb-item-view__image .option-image, .dsk-blog-article #blog-post-template .sb-item-view__image img{
    width:100%;
    max-width:100%;
    margin-left:0;
    margin-right:0;
    display:block;
    box-sizing:border-box;
  }

  /* Stage 71 — blog article top-band parity: after Stage 181 retired the old
     desktop owners, service articles still keep a leftover 40px inline inset on
     title/meta/image from Stage 57. The body shell is already correct; remove only
     that residual inset on desktop so the article top band sits on the same axis
     as the real article wrapper without touching copy width below. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__title,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__meta,
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__image{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }.dsk-blog-article #blog-post-template .sb-item-view__title{
    width:100%;
    max-width:min(100%, var(--dsk-blog-article-title-max, 18ch));
    margin-left:0;
    margin-right:auto;
    font-size:clamp(2.125rem, 1.35rem + 2.1vw, 3.125rem);
    line-height:1.08;
    letter-spacing:-0.022em;
    text-wrap:balance;
  }


  /* Stage 72/73 — single article content shell owner.
     Stage 70 already flattened the legacy width islands, but Stage 72/73 still
     reintroduced per-element desktop widths on every paragraph/list/heading block
     inside `.sb-item-view__body`. That means the copy axis is owned twice:
     once by the article body wrapper and again by each child block.
     Keep only one desktop owner for the reading band: `.sb-item-view__body`.
     Inner content blocks then inherit the shell naturally at 100% width. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta){
    --dsk-blog-article-shell-max:1206px !important;
    --dsk-blog-article-shell-inset:65px !important;
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body{
    width:min(var(--dsk-blog-article-cta-parity-max),calc(100% - var(--dsk-blog-article-cta-parity-inset))) !important;
    max-width:var(--dsk-blog-article-cta-parity-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template .sb-item-view__body > :is(p,ul,ol,h2,h3,h4,h5,h6,blockquote,figure,table,pre){
    width:auto !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }

  /* Stage 74 — related-reading copy-band parity: after Stage 73 aligned the real
     article copy to the 1206px desktop measure, the related-reading placeholder
     still sits on the full article band because it lives inside the next .sb-section,
     not inside .sb-item-view__body. Map only that block back to the same centered
     copy measure without touching the top band, shell or hub pages. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template ~ .sb-section .dsk-related-reading{
    width:min(var(--dsk-blog-article-cta-parity-max),calc(100% - var(--dsk-blog-article-cta-parity-inset))) !important;
    max-width:var(--dsk-blog-article-cta-parity-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  /* Stage 75 — direct sibling related-articles parity: five EN articles still keep
     their post-body "Related articles" heading/list as direct siblings of
     #blog-post-template instead of using .dsk-related-reading or living inside
     .sb-item-view__body. They currently inherit the wider 1280px article band from
     Stage 57; map only those raw sibling h2/h3/p/ul/ol blocks to the same 1206px
     centered copy measure as Stage 73/74. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template ~ :is(h2,h3,p,ul,ol){
    width:min(var(--dsk-blog-article-cta-parity-max),calc(100% - var(--dsk-blog-article-cta-parity-inset))) !important;
    max-width:var(--dsk-blog-article-cta-parity-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  /* Stage 75.1 — closing-flow parity: the five raw related-article blocks that live
     directly after #blog-post-template need a calmer entry into the post footer
     sequence. Give only the first raw sibling block a controlled top gap, without
     touching the internal rhythm of the block family or regular article bodies. */
  body.dsk-blog-article:has(#dsk-blog-to-service-cta) #blog-post-template + :is(h2,h3,p,ul,ol){
    margin-top: max(var(--dsk-blog-article-related-gap), 2.34rem) !important;
  }

}

@media (max-width:768px){.dsk-blog-article{
    --dsk-blog-article-title-max: 100%;
    --dsk-blog-article-title-gap: 18px;
    --dsk-blog-article-image-gap: 28px;
    --dsk-blog-article-body-size: 1rem;
    --dsk-blog-article-body-lh: 1.8;
    --dsk-blog-article-p-gap: 1.08rem;
    --dsk-blog-article-list-gap: 1.1rem;
    --dsk-blog-article-list-indent: 1.14rem;
    --dsk-blog-article-li-gap: 0.42rem;
    --dsk-blog-article-h2-size: clamp(1.3rem, 1.12rem + 0.95vw, 1.5rem);
    --dsk-blog-article-h2-lh: 1.28;
    --dsk-blog-article-h2-mt: 1.72rem;
    --dsk-blog-article-h2-mb: 0.76rem;
    --dsk-blog-article-h3-size: clamp(1.12rem, 1.04rem + 0.62vw, 1.24rem);
    --dsk-blog-article-h3-lh: 1.34;
    --dsk-blog-article-h3-mt: 1.32rem;
    --dsk-blog-article-h3-mb: 0.6rem;
    --dsk-blog-article-quote-gap: 1.22rem;
    --dsk-blog-article-quote-pad-y: 0.92rem;
    --dsk-blog-article-quote-pad-x: 0.96rem;
    --dsk-blog-article-callout-gap: 1.24rem;
    --dsk-blog-article-callout-pad-y: 0.96rem;
    --dsk-blog-article-callout-pad-x: 0.98rem;
    --dsk-blog-article-service-cta-gap: 2.16rem;
    --dsk-blog-article-service-cta-pad-y: 1.06rem;
    --dsk-blog-article-service-cta-pad-x: 1rem;
    --dsk-blog-article-service-cta-title-size: clamp(1.12rem, 1.02rem + 0.7vw, 1.24rem);
    --dsk-blog-article-service-cta-title-lh: 1.3;
    --dsk-blog-article-service-cta-body-size: 0.98rem;
    --dsk-blog-article-service-cta-body-lh: 1.74;
    --dsk-blog-article-service-cta-p-gap: 0.9rem;
    --dsk-blog-article-service-cta-list-gap: 0.96rem;
    --dsk-blog-article-service-cta-li-gap: 0.4rem;
    --dsk-blog-article-figure-gap: 1.18rem;
    --dsk-blog-article-related-gap: 1.68rem;
    --dsk-blog-article-related-services-gap: 1.28rem;
    --dsk-blog-article-related-services-pad-y: 0.98rem;
    --dsk-blog-article-related-services-pad-x: 1rem;
    --dsk-blog-article-related-services-h2-mt: 0.98rem;
    --dsk-blog-article-related-services-h2-mb: 0.5rem;
    --dsk-blog-article-related-services-list-gap: 0.82rem;
    --dsk-blog-article-related-services-li-gap: 0.3rem;
  }.dsk-blog-article #blog-post-template .sb-item-view__title{
    max-width: min(100%, 18ch);
    font-size: clamp(1.72rem, 1.34rem + 1.9vw, 2.08rem);
    line-height: 1.12;
    letter-spacing: -0.017em;
    margin-bottom: var(--dsk-blog-article-title-gap);
    text-wrap: balance;
  }.dsk-blog-article, .dsk-blog-hub{
    --dsk-blog-mobile-shell-gutter:16px;
    --dsk-blog-gutter:16px;
  }

  body.dsk-blog-hub #blog-hero .dsk-about-hero__inner,
  body.dsk-blog-hub .dsk-hub-filters__inner,
  body.dsk-blog-hub .dsk-blog-quicknav,
  body.dsk-blog-hub .dsk-blog-pagination,
  body.dsk-blog-hub .section-intro,
  body.dsk-blog-hub #blog > .container.sb-container-fixed.sb-container,
  body.dsk-blog-hub #blog .container.sb-container-fixed.sb-container,
  body.dsk-blog-hub .dsk-cta-lab__inner{
    width:min(100%,calc(100% - (var(--dsk-blog-mobile-shell-gutter,16px) * 2)));
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }

  body.dsk-blog-hub #blog-hero .dsk-about-hero__inner,
  body.dsk-blog-hub .dsk-blog-quicknav,
  body.dsk-blog-hub .dsk-blog-pagination,
  body.dsk-blog-hub #blog > .container.sb-container-fixed.sb-container,
  body.dsk-blog-hub #blog .container.sb-container-fixed.sb-container{
    padding-left:var(--dsk-blog-mobile-shell-gutter,16px);
    padding-right:var(--dsk-blog-mobile-shell-gutter,16px);
  }

  body.dsk-blog-hub .dsk-hub-filters__inner{
    width:calc(100% - (var(--dsk-blog-mobile-shell-gutter,16px) * 2));
    padding-left:12px;
    padding-right:12px;
  }

  body.dsk-blog-hub .dsk-cta-lab__inner{
    padding:16px;
    gap:16px;
  }

  body.dsk-blog-hub .section-intro__inner,
  body.dsk-blog-hub .dsk-blog-most-read,
  body.dsk-blog-hub .sb-section-alignable:not(ul.items-grid.sb-blog){
    padding-left:16px;
    padding-right:16px;
  }

  body.dsk-blog-hub .dsk-blog-most-read{
    padding:18px 16px;
  }

  body.dsk-blog-hub #blog li.items-grid__item.sb-blog-card .items-grid__item-content{
    padding:16px;
  }.dsk-blog-article main .sb-section > .container.sb-container-fixed.sb-container, .dsk-blog-article #blog-post-template > .container.sb-container-fixed.sb-container, .dsk-blog-article #dsk-blog-to-service-cta > .container.sb-container-fixed.sb-container{
    padding-left:var(--dsk-blog-mobile-shell-gutter,16px);
    padding-right:var(--dsk-blog-mobile-shell-gutter,16px);
    box-sizing:border-box;
  }.dsk-blog-article #dsk-blog-to-service-cta .sb-column-content > ul{
    padding-left:16px;
  }.dsk-blog-article footer.dsk-site-footer :is(.dsk-custom-footer,.dsk-copyright){
    padding-left:16px;
    padding-right:16px;
    box-sizing:border-box;
  }

  /* Stage 200 / Etap 1 — blog hub footer parity.
     The hub family already owns the 16px mobile content shell in this stylesheet,
     but its footer still has no family-scoped lock and therefore falls back to the
     late global 18px mobile footer rule from site.noncritical.bundle.v3.min.css.
     Lock only the visible blog-hub footer frame to 16px; leave articles, cards,
     outer shell and desktop untouched. */
  body.dsk-blog-hub footer.dsk-site-footer :is(.dsk-custom-footer,.dsk-copyright){
    padding-left:16px !important;
    padding-right:16px !important;
    box-sizing:border-box;
  }
}@media (max-width: 820px) {}
@media (max-width: 820px) {}
html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + h2,
html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + h3,
html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + h2,
html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + h3,
html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + p + h2,
html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + p + h3 {
  margin-top: 0.92rem !important;
}

@media (max-width: 820px) {
  html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + h2,
  html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + h3,
  html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + h2,
  html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + h3,
  html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + p + h2,
  html[lang="en"] body.dsk-blog-article #blog-post-template .sb-item-view__body > .dsk-related-services + p + p + h3 {
    margin-top: 0.84rem !important;
  }
}
@media (max-width: 820px) {}
@media (max-width: 767px) {}
@media (max-width: 767px) {}

/* Stage 273 — blog hub desktop card excerpt visibility.
   The hub base CSS hard-locks desktop cards to 460px with overflow hidden.
   Mobile already switches cards to auto height, which is why summaries show there.
   On desktop, longer titles + fixed card height can push the summary below the fold.
   Keep the same visual baseline, but let cards grow when the title/summary/meta need room. */
@media (min-width: 641px) {
  body.dsk-blog-hub #blog li.items-grid__item.sb-blog-card {
    height: auto;
    min-height: var(--dsk-hub-card-h, 460px);
  }

  body.dsk-blog-hub #blog li.items-grid__item.sb-blog-card .items-grid__item-body {
    height: auto;
    min-height: inherit;
  }
}


/* Stage 274 — blog hub desktop title clamp softening.
   After Stage 273 cards can grow on desktop, but the hub CSS still hard-locks
   titles to 2 lines, which causes premature ellipsis on PC even when the card
   has room for one more line. Keep mobile untouched and only soften desktop. */
@media (min-width: 641px) {
  body.dsk-blog-hub.dsk-blog-hub--index #blog li.items-grid__item.sb-blog-card .items-grid__header {
    -webkit-line-clamp: 3;
    line-clamp: 3;
    min-height: calc(1.24em * 3);
    max-height: calc(1.24em * 3);
  }
}

/* Stage 576-675: blog article contact CTA tablet containment.
   The shared two-column CTA can exceed the 768px shell when title copy and
   the phone button sit in one flex row. Let only this article CTA wrap before
   the mobile breakpoint so the button remains inside the visible section. */
@media (max-width: 820px) {.dsk-blog-article #default-contact-cta-section-template .sb-content.sb-hero.has-sb-hero__paragraph{
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 16px 20px;
  }.dsk-blog-article #default-contact-cta-section-template .sb-cta-wrapper{
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}.dsk-blog-article #default-contact-cta-section-template{content-visibility:auto;contain-intrinsic-size:auto 620px;}
@media (max-width:767px){.dsk-blog-article #default-contact-cta-section-template{content-visibility:visible;contain-intrinsic-size:auto;}}.dsk-blog-article #dsk-blog-to-service-cta{content-visibility:auto;contain-intrinsic-size:auto 320px;}
@media (max-width:767px){.dsk-blog-article #dsk-blog-to-service-cta{content-visibility:visible;contain-intrinsic-size:auto;}}

/* Stage 633 — blog article guides defer ownership: move identical dsk-service-guides-defer-css from qualifying blog articles into the family owner. */
body.dsk-blog-article .dsk-guides-section{content-visibility:auto;contain-intrinsic-size:auto 560px;}
@media (max-width:767px){body.dsk-blog-article .dsk-guides-section{contain-intrinsic-size:auto 760px;}}