/* Product promotion is site chrome, not part of author-supplied HTML. */
.sf-promo { --promo-bg: #4945dd; --promo-ink: #fff; --promo-muted: #e2e0ff; --promo-accent: #4945dd; box-sizing: border-box; position: relative; isolation: isolate; overflow: hidden; padding: 28px; border-radius: 20px; background: var(--promo-bg); color: var(--promo-ink); text-align: left; }
.sf-promo--calculator { --promo-bg: #222738; --promo-muted: #cbd1df; --promo-accent: #303a54; }
.sf-promo--form { --promo-bg: #dff5ea; --promo-ink: #173e33; --promo-muted: #42665b; --promo-accent: #236652; }
.sf-promo::before { content: ''; position: absolute; z-index: -1; width: 270px; height: 270px; right: -100px; top: -150px; border-radius: 50%; background: #ffffff14; pointer-events: none; }
.sf-promo--calculator::before { border: 1px solid #ffffff18; background: transparent; width: 360px; height: 360px; top: -190px; }
.sf-promo--form::before { background: #b9e5d0; }
.sf-promo .sf-promo__brand { display: flex; margin-bottom: 16px; }
.sf-promo .sf-promo__brand img { display: block; width: 36px; height: 36px; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.sf-promo--form .sf-promo__brand img { filter: brightness(0) saturate(100%) invert(21%) sepia(15%) saturate(1300%) hue-rotate(110deg); }
section .sf-promo p.sf-promo__title,
section.article-reading .content-wrap .post-cont .sf-promo p.sf-promo__title { color: var(--promo-ink); font-size: 27px; line-height: 1.2; letter-spacing: -.025em; font-weight: 700; margin: 0 0 12px; }
section .sf-promo p.sf-promo__text,
section.article-reading .content-wrap .post-cont .sf-promo p.sf-promo__text { color: var(--promo-muted); font-size: 14px; line-height: 1.5; font-weight: 400; margin: 0 0 22px; }
.sf-promo a.sf-promo__button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 14px 18px; min-height: 46px; background: #fff; color: var(--promo-accent); border: 0; border-radius: 10px; text-decoration: none; font-size: 14px; line-height: 1.35; font-weight: 600; }
.sf-promo--form a.sf-promo__button { background: var(--promo-accent); color: #fff; }
section.article-reading .content-wrap .post-cont .sf-promo a.sf-promo__button { color: var(--promo-accent); }
section.article-reading .content-wrap .post-cont .sf-promo--form a.sf-promo__button { color: #fff; }
.sf-promo a.sf-promo__button:hover { filter: brightness(.95); }
.sf-promo a.sf-promo__button:focus-visible { outline: 3px solid var(--promo-ink); outline-offset: 4px; }
.sf-promo--sidebar { padding: 20px; margin-top: 24px; border-radius: 16px; }
section .sf-promo--sidebar p.sf-promo__title { font-size: 21px; line-height: 1.3; font-weight: 500; margin-bottom: 18px; }
.sf-promo__title-line { display: block; }
.sf-promo--sidebar .sf-promo__brand { justify-content: space-between; align-items: flex-start; min-height: 84px; margin-bottom: 18px; }
.sf-promo--sidebar .sf-promo__brand img { width: 32px; height: 32px; }
.sf-promo--sidebar a.sf-promo__button { width: 100%; padding: 12px 7px; font-size: 12px; gap: 5px; }
.sf-promo--inline, .sf-promo--feed, .sf-promo--end { display: grid; grid-template-columns: minmax(0,1fr) 215px; gap: 28px; align-items: center; }
.sf-promo--inline { margin: 36px 0; }
.sf-promo--end { margin: 32px 0; }
.sf-promo--feed { grid-column: 1 / -1; grid-template-columns: minmax(0,1fr) 230px; gap: 40px; padding: 28px 36px; margin: 12px 0; }
.sf-promo--feed .sf-promo__copy { max-width: 580px; }

/* Three different product illustrations; no fake interactive controls. */
.sf-promo__visual { box-sizing: border-box; padding: 20px; border-radius: 14px; background: #fff; color: #30364a; box-shadow: 0 14px 28px #10172820; font-size: 12px; transform: rotate(3deg); }
.sf-promo__visual--calculator { transform: rotate(-3deg); }
.sf-promo__visual--form { transform: none; text-align: center; }
.sf-promo__visual-heading { display: block; font-size: 15px; line-height: 1.35; margin-bottom: 14px; }
.sf-promo__quiz-progress { display: flex; gap: 4px; margin-bottom: 16px; }
.sf-promo__quiz-progress i { height: 3px; flex: 1; background: #e9e7f7; border-radius: 3px; }
.sf-promo__quiz-progress i:first-child { background: #625de8; }
.sf-promo__answer { display: flex; align-items: center; gap: 8px; padding: 9px; border: 1px solid #e7e5f3; border-radius: 6px; margin-top: 7px; font-size: 11px; }
.sf-promo__answer i { width: 12px; height: 12px; border-radius: 50%; border: 1px solid #d0cfe1; font-style: normal; font-size: 9px; line-height: 12px; text-align: center; }
.sf-promo__answer--selected { background: #f5f4ff; border-color: #928def; }
.sf-promo__answer--selected i { background: #625de8; color: white; border-color: #625de8; }
.sf-promo__visual-action { display: flex; justify-content: space-between; padding: 10px; border-radius: 6px; margin-top: 16px; background: var(--promo-accent); color: #fff; font-size: 10px; }
.sf-promo__visual-label { display: block; font-size: 8px; letter-spacing: .05em; color: #7b8294; margin-bottom: 18px; }
.sf-promo__estimate { display: flex; justify-content: space-between; align-items: center; font-size: 11px; }
.sf-promo__slider { position: relative; height: 4px; background: #e9edf4; border-radius: 4px; margin: 18px 0; }
.sf-promo__slider i { display: block; width: 60%; height: 4px; background: #6c7b9d; border-radius: 4px; }
.sf-promo__slider i::after { content: ''; position: absolute; top: -4px; left: 55%; width: 12px; height: 12px; border-radius: 50%; background: #303a54; border: 2px solid white; box-shadow: 0 1px 4px #303a5430; }
.sf-promo__total > span { display: block; color: #7b8294; font-size: 10px; margin-bottom: 5px; }
.sf-promo__total > b { font-size: 26px; font-weight: 600; letter-spacing: -.04em; }
.sf-promo__success { display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto 12px; border-radius: 50%; background: #e0f4e9; color: #236652; font-size: 23px; }
.sf-promo__contact { display: grid; grid-template-columns: 28px 1fr; gap: 6px 8px; align-items: center; padding: 12px; background: #f5f8f7; border-radius: 8px; }
.sf-promo__contact i { grid-row: span 2; width: 28px; height: 28px; background: #d7e6e0; border-radius: 50%; }
.sf-promo__contact span { height: 5px; background: #c7d7d0; border-radius: 3px; }
.sf-promo__contact span:last-child { width: 65%; background: #e0e9e5; }
.sf-promo__received { display: flex; justify-content: center; align-items: center; gap: 5px; margin-top: 14px; font-size: 9px; color: #50796a; }
.sf-promo__received i { width: 5px; height: 5px; border-radius: 50%; background: #4b9478; }

/* Sidebar illustrations keep the same visual idea without microscopic prose. */
.sf-promo__visual--mini { width: 92px; height: 84px; padding: 10px; border-radius: 8px; }
.sf-promo__visual--mini .sf-promo__visual-heading,
.sf-promo__visual--mini .sf-promo__visual-action,
.sf-promo__visual--mini .sf-promo__visual-label,
.sf-promo__visual--mini .sf-promo__received { display: none; }
.sf-promo__visual--mini .sf-promo__quiz-progress { margin-bottom: 8px; }
.sf-promo__visual--mini .sf-promo__answer { padding: 5px; margin-top: 5px; gap: 5px; }
.sf-promo__visual--mini .sf-promo__answer > span { font-size: 0; height: 3px; width: 28px; background: #d7d4ed; border-radius: 3px; }
.sf-promo__visual--mini .sf-promo__answer > i { width: 9px; height: 9px; font-size: 7px; line-height: 9px; }
.sf-promo__visual--mini .sf-promo__estimate { font-size: 7px; }
.sf-promo__visual--mini .sf-promo__slider { margin: 10px 0; }
.sf-promo__visual--mini .sf-promo__total > span { display: none; }
.sf-promo__visual--mini .sf-promo__total > b { font-size: 16px; }
.sf-promo__visual--mini .sf-promo__success { width: 26px; height: 26px; font-size: 16px; margin-bottom: 7px; }
.sf-promo__visual--mini .sf-promo__contact { padding: 5px; grid-template-columns: 14px 1fr; gap: 3px 4px; }
.sf-promo__visual--mini .sf-promo__contact i { width: 14px; height: 14px; }
.sf-promo__visual--mini .sf-promo__contact span { height: 3px; }

.article-reading .article-sidebar__sticky { max-height: calc(100dvh - 125px); display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; }
.article-reading .article-sidebar__sticky > .link_back, .article-reading .article-sidebar__sticky > .sf-promo { flex-shrink: 0; }
.article-reading .article-sidebar__sticky .article-toc { min-height: 0; overflow: visible; display: flex; flex: 0 0 auto; flex-direction: column; }
.article-reading .article-sidebar__sticky .article-toc[hidden] { display: none; }
.article-reading .article-sidebar__sticky #article-toc { max-height: none; min-height: 0; overflow: visible; }
@media (min-width: 992px) { .sf-promo--end { display: none; } }
@media (max-width: 991px) {
    .sf-promo--sidebar { display: none; }
    .article-reading .article-sidebar__sticky { max-height: none; display: block; }
    .article-reading .article-sidebar__sticky #article-toc { max-height: 320px; }
    .article-reading .article-sidebar__sticky .article-toc { display: block; }
    .sf-promo--feed { gap: 24px; padding: 28px; }
}
@media (max-width: 575px) {
    .sf-promo--inline, .sf-promo--feed, .sf-promo--end { grid-template-columns: minmax(0,1fr); padding: 24px; gap: 24px; }
    .sf-promo > .sf-promo__visual { display: none; }
    .sf-promo .sf-promo__button { width: 100%; }
}
@media print { .sf-promo { display: none !important; } }
