/* Shared CMS article styles. Never depend on a writer's custom class names. */
.ats-blog-layout > .ats-blog-article { min-width: 0; }
.ats-blog-article .ats-blog-content {
    position: relative;
    display: flow-root;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    color: #26354a;
    line-height: 1.8;
}
.ats-blog-content :where(article, section, header, footer, nav, aside, div, figure, picture, pre) {
    box-sizing: border-box;
    min-width: 0 !important;
    max-width: 100% !important;
}
/* The site-wide header is absolutely positioned and viewport-wide. CMS headers are not. */
.ats-blog-article .ats-blog-content :is(header, footer, nav, aside) {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    min-height: 0;
    z-index: auto !important;
    transform: none !important;
    float: none;
}
.ats-blog-article .ats-blog-content :is(header, footer, nav) {
    padding: 0;
    margin: 0 0 1.25rem;
    background: transparent;
    box-shadow: none;
}
.ats-blog-article .ats-blog-content :is(h1, h2, h3, h4, h5, h6) {
    color: #111b32;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
    scroll-margin-top: 110px;
}
.ats-blog-article .ats-blog-content h1 { font-size: clamp(26px, 3vw, 34px); margin: 1.5em 0 .65em; }
.ats-blog-article .ats-blog-content h2 { font-size: clamp(23px, 2.5vw, 28px); margin: 1.7em 0 .75em; }
.ats-blog-article .ats-blog-content h3 { font-size: clamp(20px, 2vw, 23px); margin: 1.35em 0 .7em; }
.ats-blog-article .ats-blog-content :is(h4, h5, h6) { font-size: 18px; margin: 1.2em 0 .65em; }
.ats-blog-article .ats-blog-content p { margin: 0 0 1.2em; line-height: 1.8; }
.ats-blog-article .ats-blog-content ul,
.ats-blog-article .ats-blog-content ol {
    padding: 0 0 0 1.5em;
    margin: 1.15em 0;
    list-style: disc outside;
}
.ats-blog-article .ats-blog-content ol { list-style-type: decimal; }
.ats-blog-article .ats-blog-content li { display: list-item; margin: .6em 0; padding-left: .2em; }
.ats-blog-article .ats-blog-content li::marker { color: #365ddb; font-weight: 700; }
.ats-blog-article .ats-blog-content li :is(ul, ol) { margin: .5em 0; }
.ats-blog-article .ats-blog-content :is(aside, blockquote) {
    display: block;
    margin: 1.6em 0;
    padding: 20px 24px;
    border: 1px solid #dce6f4;
    border-left: 4px solid #3766df;
    border-radius: 0 14px 14px 0;
    background: #f4f7fd;
}
.ats-blog-article .ats-blog-content :is(aside, blockquote) > :last-child { margin-bottom: 0; }
.ats-blog-article .ats-blog-content :is(aside, blockquote) > :first-child { margin-top: 0; }
.ats-blog-article .ats-blog-content :is(img, video, iframe) { max-width: 100% !important; }
.ats-blog-article .ats-blog-content :is(img, video) { height: auto !important; }
.ats-blog-article .ats-blog-content figure { float: none; }
.ats-blog-article .ats-blog-content figcaption { font-size: 13px; color: #64748b; line-height: 1.6; padding: 10px 12px; }
.ats-blog-article .ats-blog-content .ats-blog-table-scroll {
    display: block;
    width: 100% !important;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    margin: 28px 0;
    padding: 0;
    border: 1px solid #dde5ef;
    border-radius: 14px;
    background: #fff;
    -webkit-overflow-scrolling: touch;
}
.ats-blog-article .ats-blog-content .ats-blog-table-scroll:focus-visible { outline: 3px solid #3766df; outline-offset: 3px; }
.ats-blog-article .ats-blog-content table {
    display: table;
    width: 100%;
    min-width: 540px;
    max-width: none;
    margin: 0;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: 14px;
    line-height: 1.65;
    color: #26354a;
    background: #fff;
}
.ats-blog-article .ats-blog-content :is(th, td) {
    padding: 14px 16px;
    text-align: start;
    vertical-align: top;
    border: 0;
    border-bottom: 1px solid #e6edf5;
    white-space: normal;
}
.ats-blog-article .ats-blog-content th { font-weight: 700; background: #12264a; color: #fff; }
.ats-blog-article .ats-blog-content tbody tr:nth-child(even) td { background: #f5f8fd; }
.ats-blog-article .ats-blog-content tbody tr:last-child td { border-bottom: 0; }
.ats-blog-article .ats-blog-content caption { caption-side: top; padding: 12px 16px; font-weight: 600; }
.ats-blog-article .ats-blog-content pre { overflow-x: auto; padding: 16px; background: #f1f5f9; border-radius: 12px; }
.ats-blog-article .ats-blog-content details { margin: 12px 0; border: 1px solid #dde5ef; border-radius: 12px; padding: 16px 20px; }
.ats-blog-article .ats-blog-content summary { cursor: pointer; font-weight: 600; color: #172a4b; }
.ats-blog-article .ats-blog-content details[open] > summary { margin-bottom: 14px; }
.ats-blog-article .ats-blog-content details > :last-child { margin-bottom: 0; }
/* Keep visually hidden, focusable rating radios inside their own container. */
.ats-blog-article .ats-blog-rating-input { position: relative; }
.ats-blog-article .ats-blog-rating-input input {
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0;
    overflow: hidden;
    clip-path: inset(50%);
}
.ats-blog-article .ats-blog-rating-input input:focus-visible + label { outline: 2px solid #3766df; outline-offset: 3px; }
@media (max-width: 991px) {
    .ats-blog-toc .ats-blog-toc-list { max-height: 280px; overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 575px) {
    .ats-blog-article .ats-blog-content :is(aside, blockquote) { padding: 16px; }
    .ats-blog-article .ats-blog-content :is(th, td) { padding: 12px; }
}
