/* ── Webbox sections — visual parity with the legacy design (measured) ── */

/* Two-column shell (single + archives): main 840 | sidebar 340 */
.wb-cols { display: flex; gap: 34px; align-items: flex-start; max-width: 1230px; margin: 0 auto; padding: 0 15px; }
.wb-main-col { flex: 1 1 0; min-width: 0; }
.wb-sidebar { flex: 0 0 340px; }
.wb-sidebar__sticky { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 22px; }
.wb-toc { border: 4px double #d9e3ee; border-left-color: #00b163; padding: 14px 16px; background: #fff; }
.wb-toc__title { font-weight: 700; font-size: 15px; margin-bottom: 8px; }
.wb-toc__list { list-style: none; margin: 0; padding: 0; }
.wb-toc__list li { margin: 0 0 7px; }
.wb-toc__list a { color: #111; font-size: 13.5px; border-bottom: 2px solid #b6f0d4; }
.wb-toc__list a:hover { color: #056cf2; }
.wb-sidebar__ad img { display: block; width: 300px; max-width: 100%; height: auto; }
.wb-flow-page { max-width: 1230px; margin: 0 auto; padding: 0 15px; }
.page-header h1 { font-size: 29px; margin: 28px 0 14px; }

/* Buttons row (legacy stackable look) */
.wb-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0 26px; }
.wb-btn {
	display: inline-block; padding: 12px 16px; border-radius: 6px; font-weight: 600;
	font-size: 16px; text-align: center; transition: transform .15s ease, box-shadow .15s ease;
}
.wb-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.15); color: inherit; }
.wb-btn--solid { color: #fff; }

/* Color heading band — left-aligned, content-column width (measured 34px/800) */
.rh-color-heading { padding: 38px 0 34px; }
.rh-color-heading__inner { max-width: 1230px; margin: 0 auto; padding: 0 15px; }
.rh-color-heading p.font130 { font-size: 22px; font-weight: 400; margin: 0 0 6px; }
.rh-color-heading h2.font200 { font-size: 34px; font-weight: 800; margin: 0; }
.has-sidebar .rh-color-heading__inner { padding-right: 390px; }

/* Hero band (legacy: left text, compact, featured hangs over bottom edge) */
.wb-hero { color: #fff; padding: 40px 15px 0; margin-bottom: 150px; }
.wb-hero__inner { max-width: 1230px; margin: 0 auto; text-align: left; }
.wb-hero__heading { color: #fff; font-size: 29px; font-weight: 700; max-width: 760px; margin: 0 0 10px; }
.wb-hero__heading strong { font-weight: 800; }
.wb-hero__heading .wb-typed { border-bottom: 3px solid rgba(255,255,255,.6); }
.wb-hero__subtitle { font-size: 15px; opacity: .96; margin: 0 0 26px; }

/* Generic band */
.wb-band { padding: 40px 15px; }
.wb-band__inner { max-width: 1230px; margin: 0 auto; }
.wb-band__label { font-size: 12px; letter-spacing: 2px; font-weight: 700; color: #7d00fe; text-transform: uppercase; margin-bottom: 4px; }
.wb-band__title { font-size: 27px; font-weight: 800; margin-bottom: 24px; }

/* Links band */
.wb-links-columns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 34px; }
.wb-links-column { list-style: none; margin: 0; padding: 0; }
.wb-links-column li { margin-bottom: 9px; }
.wb-links-column a { color: #333; font-size: 13.5px; }
.wb-links-column a:hover { color: #056cf2; }

/* News 3-zone grid (legacy rehub news-block) */

/* Colored grid band */

/* Counters band — circles on dashed path */
.wb-counters-band { background: #eef4fd; padding: 60px 15px; }
.wb-counters-band__cols { display: flex; gap: 50px; align-items: center; flex-wrap: wrap; }
.wb-counters-band__copy { flex: 1 1 430px; }
.wb-counters-band__copy .wb-band__title { margin-bottom: 12px; }
.wb-counters-band__text { color: #555; font-size: 14px; max-width: 560px; }
.wb-counters-band__nums { position: relative; flex: 1 1 360px; height: 300px; min-width: 320px; }
.wb-counters-band__dash { position: absolute; left: 40px; top: 10px; width: 250px; height: 250px; border: 2px dashed #c9d8f0; border-radius: 50%; }
.wb-counter { position: absolute; width: 128px; height: 128px; border-radius: 50%; background: #fff; box-shadow: 0 10px 30px rgba(31,60,110,.12); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.wb-counter--1 { left: 120px; top: -14px; }
.wb-counter--2 { left: 250px; top: 96px; }
.wb-counter--3 { left: 60px; top: 176px; }
.wb-counter__num { font-size: 27px; font-weight: 800; }
.wb-counter__label { color: #666; font-size: 11.5px; max-width: 100px; line-height: 1.3; }

/* CTA band — purple box, mixed-color title, green button */
.wb-cta-band { padding: 30px 15px; }
.wb-cta-band__box { border-radius: 14px; padding: 44px 40px 40px; text-align: center; color: #fff; }
.wb-cta-band__kicker { font-size: 14.5px; font-weight: 700; color: #fff; margin-bottom: 12px; }
.wb-cta-band__kicker * { color: inherit; }
.wb-cta-band__title { font-size: 30px; font-weight: 800; color: #fff; margin-bottom: 20px; line-height: 1.3; }
.wb-cta-band__btn { padding: 12px 28px; font-size: 15px; }

/* Simple list band (recent posts, 3 cols) */

/* Archive horizontal cards */
.archive-title { font-size: 20px; font-weight: 800; margin: 26px 0 10px; }
.archive-description { font-size: 14.5px; color: #333; margin-bottom: 22px; }
.archive-bottom-description { font-size: 14.5px; color: #333; margin: 30px 0; }
.wb-archive-list { display: flex; flex-direction: column; gap: 16px; }
.wb-hcard { display: flex; gap: 18px; border: 1px solid #ececec; border-radius: 8px; padding: 14px; background: #fff; }
.wb-hcard__img img { display: block; width: 132px; height: 92px; object-fit: contain; border-radius: 6px; background: #fff; }
.wb-hcard__body { flex: 1; display: flex; flex-direction: column; }
.wb-hcard__title { font-size: 16px; margin: 0 0 6px; }
.wb-hcard__title a { color: #111; }
.wb-hcard__excerpt { font-size: 13.5px; color: #555; margin-bottom: 10px; }
.wb-hcard__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.wb-hcard__date { font-size: 12px; color: #999; font-style: italic; }
.wb-hcard__more { font-size: 11px; letter-spacing: 1px; font-weight: 600; color: #444; border: 1px solid #d9d9d9; border-radius: 3px; padding: 6px 12px; }
.wb-hcard__more:hover { border-color: #056cf2; color: #056cf2; }

/* Related articles */
.related_articles { margin-top: 40px; }
.related_articles__title { font-size: 20px; margin: 18px 0 14px; }
.related_articles__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.related_articles__item { color: #111; font-size: 13px; font-weight: 600; line-height: 1.35; }
.related_articles__item img { display: block; width: 100%; height: 96px; object-fit: cover; border-radius: 6px; margin-bottom: 7px; }

/* LP hero (cover) */
.wb-lp-hero { position: relative; min-height: 420px; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; margin-bottom: 0; }
.wb-lp-hero .wp-block-cover__background { position: absolute; inset: 0; z-index: 1; }
.wb-lp-hero .wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.wb-lp-hero .wp-block-cover__inner-container { position: relative; z-index: 2; color: #fff; padding: 60px 20px; max-width: 900px; }
.wb-lp-hero .wb-lp-hero__heading { color: #fff; font-size: 42px; margin-bottom: .2em; }
.wb-lp-hero p { color: #fff; }
.wb-lp-hero__updated { font-size: 13.5px; opacity: .85; }
.wb-lp-hero__disclosure { font-size: 13px; opacity: .9; }

/* Tooltip (SU-compatible) */
.su-tooltip-button { position: relative; cursor: help; border-bottom: 1px dotted currentColor; }
.su-tooltip { position: absolute; z-index: 100; }
.su-tooltip-inner {
	display: block; background: #222; color: #fff; font-size: 14px; border-radius: 5px;
	padding: 10px 14px; max-width: 400px; line-height: 1.35; text-align: left;
	box-shadow: 0 8px 22px rgba(0,0,0,.25); margin-top: 8px;
}
.su-tooltip-title { display: block; font-weight: 700; margin-bottom: 4px; }

/* FAQ (rank-math markup) */
.rank-math-block { margin: 20px 0 30px; }
.rank-math-list { list-style: none; padding: 0; margin: 0; }
.rank-math-list-item { border-bottom: 1px solid #ececec; padding: 16px 0; }
.rank-math-question { margin: 0 0 8px; font-size: 17px; }
.rank-math-answer p:last-child { margin-bottom: 0; }

/* Offer expand toggle */
.gc-expand-toggle { margin: 10px 0 0; background: none; border: 1px solid #d9d9d9; border-radius: 4px; padding: 7px 14px; font-size: 12.5px; cursor: pointer; }

/* Responsive */
@media (max-width: 1023px) {
	.wb-cols { flex-direction: column; }
	.wb-sidebar { flex: 1 1 auto; width: 100%; }
	.has-sidebar .rh-color-heading__inner { padding-right: 15px; }
	.wb-links-columns { grid-template-columns: repeat(2, 1fr); }
	.related_articles__grid { grid-template-columns: repeat(2, 1fr); }
	.wb-hero { margin-bottom: 120px; }
}
@media (max-width: 640px) {
	.wb-lp-hero .wb-lp-hero__heading { font-size: 30px; }
	.wb-counters-band__nums { transform: scale(.85); transform-origin: left top; }
	.wb-hcard { flex-direction: column; }
	.wb-hcard__img img { width: 100%; height: 160px; }
}

/* ── round-3 rhythm nudges (measured against legacy) ── */
.wb-links-band { padding-top: 66px; }
.wb-counters-band { padding: 74px 15px; }
.wb-cta-band { padding: 40px 15px; }

/* ── float-fix: legacy .main-side{float:left;width:840px} must not apply to
   the new wrappers (it floated the article out of flow → footer rose up
   behind content and squeezed the column) ── */
.main-side.single, .main-side.archive, .main-side.page {
	float: none !important;
	width: 100% !important;
}

/* Review heading — belt & braces over the distilled legacy rules */
.rh-review-heading { display: flex; align-items: center; gap: 16px; }
.rh-review-heading__position { flex: 0 0 auto; }
.rh-review-heading__position span { font-size: 34px; font-weight: 800; color: #c9c9c9; }
.rh-review-heading h2 { font-size: 24px; margin: 0; }
.rh-review-heading__logo { margin-left: auto; flex: 0 0 auto; }
.rh-review-heading__logo img { max-width: 100%; display: block; } /* legacy: container caps 150x60, img fits inside */
@media (max-width: 640px) {
	.rh-review-heading { flex-wrap: wrap; }
	.rh-review-heading__logo { margin-left: 0; }
}

/* ── sticky ToC fix: sidebar must stretch to full column height, otherwise
   position:sticky has no room to travel ── */
.wb-cols { align-items: stretch; }
.wb-sidebar { align-self: stretch; }
.wb-main-col { align-self: flex-start; }

/* Featured image on singles (legacy placement under the title) */
.featured_image { margin: 6px 0 22px; }
.featured_image img { display: block; width: 100%; height: auto; border-radius: 8px; }

/* ── ToC restyle: legacy numbered badges + larger items (rehub sidecontents) ── */
.wb-toc { padding: 6px 0 4px; }
.wb-toc__title { font-size: 15px; font-weight: 700; padding: 14px 15px 12px; margin-bottom: 0; }
.wb-toc__list li { margin: 0; border-top: 1px solid #f0f0f0; }
.wb-toc__list a {
	display: flex; align-items: center; gap: 10px;
	padding: 10px 15px 10px 8px; border-bottom: none;
	color: #666; font-size: 14px; line-height: 1.4;
}
.wb-toc__list a:hover { color: #111; }
.wb-toc__num {
	flex: 0 0 22px; height: 22px; width: 22px; border-radius: 50%;
	background: #1596bc; color: #fff; font-size: 12px; font-weight: 600;
	display: inline-flex; align-items: center; justify-content: center; margin-left: 8px;
}
/* legacy 6-color cycle for the badges */
.wb-toc__list li:nth-child(6n+2) .wb-toc__num { background: #ff5900; }
.wb-toc__list li:nth-child(6n+3) .wb-toc__num { background: #638b2d; }
.wb-toc__list li:nth-child(6n+4) .wb-toc__num { background: #1797d4; }
.wb-toc__list li:nth-child(6n+5) .wb-toc__num { background: #3c2574; }
.wb-toc__list li:nth-child(6n+6) .wb-toc__num { background: #655ec7; }

/* ── single post header — legacy metabig layout (breadcrumb, label, h1, date) ── */
.title_single_area { margin: 22px 0 15px; }
.breadcrumb { font-size: 13px; color: #444; margin-bottom: 16px; }
.breadcrumb a { color: #333; }
.breadcrumb a:hover { color: #056cf2; }
.breadcrumb .separator { color: #9a9a9a; margin: 0 2px; }
.breadcrumb .last { color: #8b8b8b; }
.rh-cat-list-title { margin-bottom: 8px; }
.rh-cat-label-title {
	display: inline-block; background: #111; color: #fff !important;
	font-size: 12.5px; font-weight: 600; line-height: 1; padding: 6px 9px;
}
.title_single_area h1 { font-size: 34px; font-weight: 800; line-height: 1.2; margin: 0 0 12px; }
.post-meta-big { border-bottom: 1px solid #ececec; padding-bottom: 15px; margin-bottom: 15px; color: #777; }
.date_time_post { font-size: 13px; font-weight: 400; }
.top_featured_image { margin: 0 0 24px; }

/* Sidebar: banner above (scrolls away), sticky wrapper below (ToC only) */
.wb-sidebar { display: flex; flex-direction: column; gap: 22px; }
.wb-sidebar__sticky { flex: 1 1 auto; }

/* ── Pros & Cons — legacy two-column card (both variants) ── */
/* ACF conspros component (wpsm_pros / wpsm_cons) */
.rate_bar_wrap {
	display: flex; gap: 44px; background: #fff; border-radius: 10px;
	box-shadow: 0 6px 26px rgba(0,0,0,.08); padding: 30px 34px; margin: 20px 0 28px;
}
.rate_bar_wrap .wpsm-one-half { flex: 1 1 0; width: auto; float: none; min-width: 0; }
.wpsm_pros .title_pros { color: #7ed957; font-size: 19px; font-weight: 700; margin-bottom: 16px; }
.wpsm_cons .title_cons { color: #f0284a; font-size: 19px; font-weight: 700; margin-bottom: 16px; }
.wpsm_pros ul, .wpsm_cons ul { list-style: none; margin: 0; padding: 0; }
.wpsm_pros li, .wpsm_cons li { padding: 4px 0 4px 26px; position: relative; font-size: 15px; }
.wpsm_pros li::before { content: "✅"; position: absolute; left: 0; font-size: 14px; }
.wpsm_cons li::before { content: "❌"; position: absolute; left: 0; font-size: 14px; }

/* richtext fallback variant (greenshift container wrapping core columns) —
   legacy card carries NO padding of its own; the inner columns block does */
.wb-richtext .wp-block-greenshift-blocks-container {
	background: #fff; border-radius: 10px; box-shadow: 0 6px 26px rgba(0,0,0,.08);
	margin: 20px 0 28px;
}
.wb-richtext .wp-block-columns { display: flex; gap: 44px; }
.wb-richtext .wp-block-column { flex: 1 1 0; min-width: 0; }

@media (max-width: 640px) {
	.rate_bar_wrap, .wb-richtext .wp-block-columns { flex-direction: column; gap: 18px; }
}

/* sticky travel fix: the wrapper is the tall track; the ToC box itself sticks */
.wb-sidebar__sticky { position: static; }
.wb-sidebar__sticky .wb-toc { position: sticky; top: 20px; }

/* Button icons (legacy stackable inline SVGs) */
.wb-btn { display: inline-flex; align-items: center; gap: 9px; }
.wb-btn__icon { display: inline-flex; }
.wb-btn__icon svg { width: 17px; height: 17px; fill: currentColor; display: block; }

/* Sidebar v3: plain flow — sticky ToC first, banner below scrolls away under it */
.wb-sidebar { display: block; }
.wb-sidebar .wb-toc { position: sticky; top: 20px; z-index: 5; background: #fff; }
.wb-sidebar__ad { margin-top: 22px; position: relative; z-index: 1; }

/* Header search icon — correct rhicons glyph (\f002) + undo stray display:none */
.rh-search-icon .icon-search-onclick { font-size: 20px; }
.rh-search-icon .icon-search-onclick::before {
	content: "\f002" !important;
	font-family: rhicons !important;
	display: inline-block !important;
}

/* ToC refinements measured from legacy: 15px links, uniform badge color,
   viewport-capped height with inner scroll (≈17 items before scrolling) */
.wb-toc__list a { font-size: 15px; }
.wb-toc__list li .wb-toc__num { background: #1596bc !important; }
.wb-sidebar .wb-toc { max-height: calc(100vh - 40px); overflow-y: auto; }

/* single search glyph: the <i> is the icon; suppress ::before duplicates */
.rh-search-icon .icon-search-onclick::before { content: none !important; }

/* ── legacy component support (v3 realignment) ── */
/* hero featured: bg-image cards */
.wb-hero .col-feat-grid { background-size: cover; background-position: center; }
.wb-hero .wpsm_featured_wrap { transform: translateY(96px); margin-top: -46px; }
.wb-hero { margin-bottom: 150px; padding: 40px 15px 0; }

/* links band icons */
.wb-links-columns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 34px; }
.gspb_iconsList__item { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 9px; }
.gspb_iconsList__item i { color: #565D66; font-size: 17px; line-height: 1.3; }
.gspb_iconsList__item a { color: #333; font-size: 13.5px; }
.gspb_iconsList__item a:hover { color: #056cf2; }

/* guten_auto layout header band */
.guten-auto-layout { background: linear-gradient(180deg, #eef3f9 0%, #f8fafd 100%); }
.guten-auto-layout .title_single_area h1 { font-size: 34px; font-weight: 800; margin: 6px 0 0; }
.wb-lead { max-width: 800px; }
.guten-auto-layout .post-meta .date_meta { font-style: italic; color: #8b8b8b; font-size: 13px; }

/* score-box card (image + ToC) */
.wb-scorebox { border-radius: 6px; padding: 0 0 6px; overflow: hidden; }
.wb-scorebox .woo-image-part img { max-height: 150px; width: auto; margin: 0 auto; display: block; }
.wb-sidebar .wb-scorebox { position: sticky; top: 20px; max-height: calc(100vh - 40px); overflow-y: auto; z-index: 5; background: #fff; }
.wb-sidebar .wb-scorebox .wb-toc { position: static; max-height: none; overflow: visible; border: 0; border-top: 1px solid #eee; }

/* float panel */
.rh-float-panel { position: fixed; top: -90px; left: 0; right: 0; z-index: 1200; background: #1b1b1b; transition: top .25s ease; }
.rh-float-panel.wb-float-show { top: 0; }
.rh-float-panel .float-panel-woo-image img { display: block; width: 50px; height: 50px; object-fit: contain; background: #fff; border-radius: 4px; }
.rh-float-panel .rh-flex-center-align { display: flex; align-items: center; }

/* share + tags */
.post_share { margin: 26px 0 14px; }
.social_icon { display: flex; gap: 8px; }
.share-link-image { cursor: pointer; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 34px; border-radius: 3px; color: #fff; }
.share-link-image.fb { background: #3b5998; }
.share-link-image.tw { background: #14171a; }
.share-link-image.pn { background: #c8232c; }
.share-link-image.in { background: #2d9fc6; }
.tags.mb25 p { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin: 0; }
.tags-title-post { background: #111; color: #fff; font-size: 11px; font-weight: 700; text-transform: uppercase; padding: 5px 9px; letter-spacing: 1px; }
.tags a[rel="tag"] { border: 1px solid #ddd; padding: 4px 10px; font-size: 12.5px; color: #444; }
.tags a[rel="tag"]:hover { border-color: #056cf2; color: #056cf2; }

/* ToC scrollspy active */
.wb-toc__list a.wb-toc-active .wb-toc__label,
.wb-toc__list a.wb-toc-active { color: #1596bc; font-weight: 600; }

/* related articles (legacy columned grid) */
.columned_grid_module { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.columned_grid_module .col_item figure img { width: 100%; height: auto; border-radius: 6px; }
.columned_grid_module h3 a { color: #111; }
.related_title { font-size: 19px; }
@media (max-width: 640px) {
	.columned_grid_module { grid-template-columns: repeat(2, 1fr); }
	.wb-links-columns { grid-template-columns: 1fr; }
}

/* colored grid 6-color cycle (legacy emitted this per-block inline) */
.coloredgrid .col_item:nth-child(6n+1) { background-color: #8364bd !important; }
.coloredgrid .col_item:nth-child(6n+2) { background-color: #ff5900 !important; }
.coloredgrid .col_item:nth-child(6n+3) { background-color: #638b2d !important; }
.coloredgrid .col_item:nth-child(6n+4) { background-color: #1797d4 !important; }
.coloredgrid .col_item:nth-child(6n+5) { background-color: #3c2574 !important; }
.coloredgrid .col_item:nth-child(6n+6) { background-color: #655ec7 !important; }

/* news + simple list titles: dark, not link-blue; lead/sec not bold (legacy) */
.rh_news_wrap h2 a, .rh_news_wrap h3 a,
.wpsm_recent_posts_list h3 a { color: #111; font-weight: 600; }
.rh_news_wrap h2 a:hover, .rh_news_wrap h3 a:hover,
.wpsm_recent_posts_list h3 a:hover { color: #056cf2; }

/* counters: legacy number colors (purple / orange / green) */
.wb-counter--3 .wb-counter__num { color: #00b163 !important; }

/* ── measured parity round: 16px base for legacy font### scaling ── */
.wb-band__inner, .rh_news_wrap, .coloredgrid, .wpsm_recent_posts_list { font-size: 16px; }
.rh_news_wrap p { margin-bottom: 31px; line-height: 1.75; }

/* counters: measured 135px circles, legacy shadow, concentric dashed rings */
.wb-counter { width: 135px; height: 135px; border-radius: 100px; box-shadow: 0 15px 30px rgba(119,123,146,.1); }
.wb-counters-band__dash { left: 30px; top: -10px; width: 300px; height: 300px; border-color: #e3dced; }
.wb-counters-band__nums::before, .wb-counters-band__nums::after {
	content: ""; position: absolute; border: 1px dashed #e3dced; border-radius: 50%;
	left: 80px; top: 40px; width: 200px; height: 200px;
}
.wb-counters-band__nums::after { left: 130px; top: 90px; width: 100px; height: 100px; }

/* CTA typography (reference-matched) */
.wb-cta-band__box { padding: 50px 40px 46px; border-radius: 10px; }
.wb-cta-band__kicker { font-size: 13.5px; line-height: 1.6; max-width: 640px; margin: 0 auto 14px; }
.wb-cta-band__title { font-size: 30px; line-height: 1.35; }
.wb-cta-band__btn { border-radius: 4px; font-size: 14px; font-weight: 700; padding: 12px 26px; }
.coloredgrid { line-height: 28px; } /* legacy inherits 16px×1.75 as computed px */

/* ── legacy widget ToC (archives + default singles): title outside, bordered box ── */
.wb-widget-title { font-size: 15px; font-weight: 600; color: #111; margin: 2px 0 12px; position: relative; padding-bottom: 8px; }
.wb-widget-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38px; height: 2px; background: #1596bc; }
.wb-toc-widget .wb-toc { border: 4px double #e3e3e3; border-color: #1596bc; background: #fff; min-height: 26px; padding: 15px 15px 15px 5px; }
.wb-toc-widget .wb-toc .wb-toc__list:empty { min-height: 4px; }
/* sticky behaviour follows the box */
.wb-sidebar .wb-toc-widget { position: sticky; top: 20px; z-index: 5; }
.wb-sidebar .wb-toc-widget .wb-toc { position: static; max-height: calc(100vh - 90px); overflow-y: auto; }

/* ── archive cards: legacy larger square contained thumbs ── */
.wb-hcard__img { flex: 0 0 130px; }
.wb-hcard__img img { width: 130px; height: 130px; object-fit: contain; border-radius: 4px; background: #fff; }

/* related articles — legacy: 4-up, 336x220 mediumgrid crops at natural size */
.related_articles .columned_grid_module .col_item { border: 0; background: none; padding: 0; }
.related_articles .columned_grid_module figure { margin-bottom: 12px; }
.related_articles .columned_grid_module figure img { width: 100%; height: auto; background: #fff; border-radius: 0; }
.related_articles .columned_grid_module h2 { padding: 0; font-size: 17.6px; font-weight: 400; line-height: 1.4; }
.related_articles .columned_grid_module h2 a { color: #111; }
.related_articles .columned_grid_module h2 a:hover { color: #056cf2; }
/* related grid must beat legacy flex-eq-height shrink */
.related_articles .columned_grid_module { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 16px; }
.related_articles .columned_grid_module .col_item { width: auto !important; max-width: none !important; }

/* ── footer sized to legacy measurements (851px: 24px headings, 16px items, 31px spacing) ── */
.wb-footer { padding: 70px 30px 0; }
.wb-footer__grid { padding-bottom: 70px; gap: 60px; }
.wb-footer__links h4 { font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.wb-footer__menu li { margin-bottom: 31px; }
.wb-footer__menu a { font-size: 16px; opacity: 1; }
.wb-footer__email { font-size: 16px; margin-top: 45px; }
.wb-footer__editorial { margin-top: 55px; }
.wb-footer__bottom { border-top: 0; text-align: center; font-size: 16px; padding: 20px 0 40px; }
/* footer height trim to match 851px */
.wb-footer__grid { padding-bottom: 30px; }
.wb-footer__email { margin-top: 30px; }
.wb-footer__editorial { margin-top: 40px; }
.wb-footer__bottom { padding: 14px 0 22px; }
.wb-counter__value { font-size: 27px; font-weight: 800; }
.wb-counter__value .wb-counter__num { font-size: inherit; font-weight: inherit; color: inherit; }

/* ToC widget title: full-width grey hairline, teal starter segment; box: single teal border */
.wb-widget-title { border-bottom: 1px solid #e5e5e5; padding-bottom: 12px; }
.wb-widget-title::after { width: 70px; height: 2px; bottom: -1px; }
.wb-toc-widget .wb-toc { border: 1px solid #1596bc; }
.wb-toc-widget .wb-toc { border-width: 2px; }

/* archive cards: image top-aligned on the same line as the title (legacy) */
.wb-hcard { align-items: flex-start; }
.wb-hcard__img { flex: 0 0 160px; }
.wb-hcard__img img { width: 160px; height: auto; max-height: 160px; object-fit: contain; object-position: top; border-radius: 4px; }
.wb-hcard__title { margin-top: 0; }
/* archive card: a bit more inner padding at top (legacy) */
.wb-hcard { padding: 22px 18px 16px; }

/* dropdown chevrons on parent menu items — legacy puts them on ::before
   (float right), keeping ::after free for the hover underline bar */
.top_menu > ul.menu > li.menu-item-has-children > a::before {
	content: "\f107"; font-family: rhicons !important; font-size: 14px;
	float: right; margin: 0 0 0 7px;
}
/* 2nd-level parents: right arrow + flyout submenu to the right (legacy \f105) */
.top_menu ul.sub-menu li.menu-item-has-children > a::after {
	content: "\f105"; font-family: rhicons !important; font-size: 13px;
	float: right; padding-left: 8px; color: #111; line-height: inherit;
}
.top_menu ul.sub-menu ul.sub-menu { top: -1px; left: 100%; transform: translateX(6px); border-radius: 0; }
.top_menu ul.sub-menu li:hover > ul.sub-menu { transform: none; }
@media (max-width: 991px) {
	body.wb-menu-open .top_menu ul.sub-menu li.menu-item-has-children > a::after { content: "\f107"; float: none; }
}
/* ToC box: a little more space under the title line */
.wb-toc-widget .wb-toc { margin-top: 18px; }

/* ── sticky header (legacy rh-stickme): header pins on top; ToC pins below it ── */
#main_header { position: sticky; top: 0; z-index: 1100; }
.wb-sidebar .wb-toc-widget { top: 127px; }
.wb-sidebar .wb-scorebox { top: 127px; max-height: calc(100vh - 147px); }
.wb-sidebar .wb-toc-widget .wb-toc { max-height: calc(100vh - 210px); }
/* float panel (singles) overlays the header when shown — z 1200 > 1100 */

/* when the dark review bar is up: hide the white header, ToC pins under the bar, image part hides */
body.wb-float-on #main_header { transform: translateY(-110%); transition: transform .2s ease; }
#main_header { transition: transform .2s ease; }
body.wb-float-on .wb-sidebar .wb-scorebox,
body.wb-float-on .wb-sidebar .wb-toc-widget { top: 84px; }
body.wb-float-on .wb-scorebox .woo-image-part { display: none; }
.rh-float-panel.wb-float-show { top: 0 !important; visibility: visible !important; opacity: 1 !important; }

/* ── search splash: legacy look — dim overlay + floating white bar ── */
.search-header-contents { background: rgba(0,0,0,.45) !important; padding-top: 0 !important; }
.search-header-contents .search-form {
	max-width: 1000px; margin: 120px auto 0; background: #fff; border: 0 !important;
	border-radius: 2px; padding: 0 18px; height: 72px; align-items: center;
	box-shadow: 0 14px 44px rgba(0,0,0,.25);
}
.search-header-contents .search-form input[type="text"] { font-size: 24px; color: #333; }
.search-header-contents .search-form .btnsearch { font-size: 22px; color: #333; }
.search-header-contents .rh-close-btn { position: absolute; top: 14px; right: 20px; color: #fff; font-size: 22px; }

/* long-ToC posts: cap the box lower so the banner peeks initially; on scroll
   the ToC alone stays pinned and the banner passes away underneath it */
.wb-sidebar .wb-toc-widget .wb-toc { max-height: calc(100vh - 330px); }
.wb-sidebar .wb-scorebox { max-height: calc(100vh - 330px); }
body.wb-float-on .wb-sidebar .wb-scorebox,
body.wb-float-on .wb-sidebar .wb-toc-widget .wb-toc { max-height: calc(100vh - 170px); }
.wb-sidebar__ad { z-index: 1; }
.wb-sidebar .wb-toc-widget, .wb-sidebar .wb-scorebox { background: #fff; }

/* search splash open state (legacy defaults keep it opacity:0/hidden) */
.search-header-contents.wb-search-open { visibility: visible !important; opacity: 1 !important; }
.search-header-contents.wb-search-open .search-form { transform: none !important; opacity: 1 !important; }
.search-title { font-size: 24px; font-weight: 600; margin: 26px 0 8px; }

/* color-heading bands inside sidebar layouts: text stays in the content
   column (never under the ToC card) + legacy type sizes */
.has-sidebar .rh-color-heading__inner {
	max-width: none !important;
	padding-left: max(15px, calc((100vw - 1230px) / 2 + 15px)) !important;
	padding-right: calc((100vw - 1230px) / 2 + 405px) !important;
}
.rh-color-heading p.font130 { font-size: 21px !important; font-weight: 400; }
.rh-color-heading h2.font200 { font-size: 32px !important; font-weight: 800; }

/* full-bleed bands inside the flex main column (50%-50vw calc breaks there) */
.wb-main-col .alignfull {
	width: 100vw; max-width: 100vw;
	margin-left: 0; margin-right: 0;
	position: relative; left: 50%; transform: translateX(-50%);
}
/* v2: anchor full-bleed bands to the viewport via measured column offset */
.wb-main-col .alignfull {
	left: calc(0px - var(--wb-col-left, 0px));
	transform: none;
}

/* guten header band: tinted background spans the full window width */
.guten-auto-layout { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }

/* pros/cons richtext variant: column headings fallback colors (inline styles win when present) */
.wb-richtext .wp-block-greenshift-blocks-container .wp-block-column:first-child > p:first-child { color: #7ed957; font-weight: 700; }
.wb-richtext .wp-block-greenshift-blocks-container .wp-block-column:nth-child(2) > p:first-child { color: #f0284a; font-weight: 700; }

/* content tables — legacy zebra striping + roomy cells.
   Legacy greys every EVEN visual row (row 1 = header stays white), whether or
   not the header row sits in a <thead>. */
.wb-richtext table:not(:has(thead)) tr:nth-child(even) td,
.wb-richtext table:not(:has(thead)) tr:nth-child(even) th,
.wb-richtext table:has(thead) tbody tr:nth-child(odd) td,
.wb-richtext table:has(thead) tbody tr:nth-child(odd) th { background: #f7f7f7; }
.wb-richtext table td, .wb-richtext table th { border: 1px solid #e8e8e8; padding: 7px 14px; font-size: 15px; }
.wb-richtext table thead th, .wb-richtext table thead td { background: #fff; font-weight: 700; }

/* legacy editor-choice badges (ReHub re_badge_create) */
.wb-hcard { position: relative; }
.re-ribbon-badge { position: absolute; right: -5px; top: -5px; overflow: hidden; width: 100px; height: 100px; text-align: right; z-index: 2; pointer-events: none; }
.re-ribbon-badge span { font: bold 10px/28px Arial; color: #fff; text-transform: uppercase; text-align: center; transform: rotate(45deg); width: 125px; display: block; background: #77B21D; box-shadow: 0 3px 10px -5px rgb(0 0 0); position: absolute; top: 21px; right: -27px; }
.re-ribbon-badge span::before { content: ""; position: absolute; left: 0; top: 100%; z-index: -1; border-left: 3px solid #333; border-right: 3px solid #fff0; border-bottom: 3px solid #fff0; border-top: 3px solid #333; }
.re-ribbon-badge span::after { content: ""; position: absolute; right: 0; top: 100%; z-index: -1; border-left: 3px solid #fff0; border-right: 3px solid #333; border-bottom: 3px solid #fff0; border-top: 3px solid #333; }
.re-ribbon-badge.left-badge { right: auto; left: -8px; text-align: left; }
.re-ribbon-badge.left-badge span { transform: rotate(-45deg); right: 0; }
.re-line-badge { color: #fff; padding: 5px 10px; background: #77B21D; text-shadow: 0 1px 0 #999; font-weight: 700; font-size: 10px; line-height: 14px; position: relative; text-transform: uppercase; display: inline-block; z-index: 9; margin-bottom: 10px; }
.re-line-badge span::before { content: "★"; margin-right: 4px; font-size: 95%; }
.re-line-badge span::after { content: "★"; margin-left: 4px; font-size: 95%; }
.re-line-badge.badge_1, .re-ribbon-badge.badge_1 span { background: #56c22f; }
.re-line-badge.badge_2, .re-ribbon-badge.badge_2 span { background: #FFBC00; }
.re-line-badge.badge_3, .re-ribbon-badge.badge_3 span { background: #F39200; }
.re-line-badge.badge_4, .re-ribbon-badge.badge_4 span { background: #D50000; }

/* direction-aware sticky: release ToC pins while scrolling up (banner stays
   reachable), and don't pin at all until the banner has scrolled by
   (JS sets wb-stick-ready once .wb-sidebar__ad passes the pin line) */
body.wb-scroll-up .wb-sidebar .wb-toc-widget,
body.wb-scroll-up .wb-sidebar .wb-scorebox,
body.wb-scroll-up .wb-sidebar .wb-toc,
body:not(.wb-stick-ready) .wb-sidebar .wb-toc-widget,
body:not(.wb-stick-ready) .wb-sidebar .wb-scorebox,
body:not(.wb-stick-ready) .wb-sidebar .wb-toc { position: static; }

/* news zones: legacy served true 444x250 crops (thumbs_dir resizer) — emulate
   with a center-crop box so any featured image renders identically */
.news_first_col .news_out_thumb figure img,
.news_sec_col .news_out_thumb figure img { width: 100%; height: auto; aspect-ratio: 444 / 250; object-fit: cover; }

/* FAQ: legacy numbering came from the browser's default ordered-list markers,
   hanging outside in a 15px left gutter (old ol had margin-left:15px) */
ol.rank-math-list { list-style: decimal; margin-left: 15px; padding-left: 0; }
ol.rank-math-list > li.rank-math-list-item { display: list-item; }

/* top menu hover line — legacy: 3px teal bar grows from the center (.5s) */
nav.top_menu > ul:not(.off-canvas) > li > a { position: relative; }
nav.top_menu > ul:not(.off-canvas) > li > a::after {
	/* our links pad 26px above the label (76px header) — 17px lands the bar
	   ~9px above the text, the same visual gap as the legacy 8px-padded links */
	position: absolute; top: 17px; left: 50%; content: ""; height: 3px; width: 0;
	background: #1596bc; transition: width .5s, left .5s, right .5s;
}
nav.top_menu > ul:not(.off-canvas) > li > a:hover::after,
nav.top_menu > ul:not(.off-canvas) > li.current-menu-item > a::after { width: 100%; left: 0; right: 0; }
