/* Scoped to the hub. SWELL continues to own global typography, header and footer. */
.ng-fixed-home { width:100%; float:none; }
#main_content.ng-fixed-home > .l-mainContent__inner > .post_content { font-size:16px; line-height:1.9; }
.ng-fixed-home [id] { scroll-margin-top:110px; }
.ng-fixed-home a:focus-visible { outline:3px solid #1176d4; outline-offset:4px; }
.ng-fixed-home .wp-block-list a, .ng-fixed-home .wp-block-post-template a, .ng-fixed-home .post_content p > a { display:inline-block; min-height:44px; padding:6px 0; overflow-wrap:anywhere; }
.ng-fixed-home .post_content > h1 { font-size:clamp(24px,2.3vw,32px); line-height:1.6; margin-bottom:24px; }
.ng-fixed-home #top01-problems { margin-top:40px; }
.ng-fixed-home .wp-block-columns { align-items:flex-start; }
.ng-fixed-home .wp-block-column { min-width:0; }
.ng-fixed-home .wp-block-buttons .wp-block-button__link { min-height:48px; }
@media (max-width:599px) {
 .ng-fixed-home .wp-block-columns { flex-direction:column; gap:20px; }
 .ng-fixed-home .wp-block-column { width:100%; flex-basis:auto !important; }
 .ng-fixed-home .wp-block-buttons, .ng-fixed-home .wp-block-button { width:100%; }
 .ng-fixed-home .wp-block-button__link { width:100%; white-space:normal; }
 .ng-fixed-home .post_content > h1 { font-size:24px; line-height:1.6; margin-bottom:20px; }
}
/* TOP01: standard WordPress/SWELL blocks, scoped to the redesigned home only. */
.ng-hub-v2 { --ng2-ink:#04384c; --ng2-muted:#52656d; --ng2-line:#dce5e8; --ng2-soft:#f0f6f7; color:#243b45; font-size:16px; line-height:1.8; }
.ng-hub-v2 *, .ng-hub-v2 *::before, .ng-hub-v2 *::after { box-sizing:border-box; }
.ng-hub-v2 :is(h1,h2,h3,p,ul,ol) { margin:0; padding:0; }
.ng-hub-v2 :is(h1,h2,h3) { background:none; border:0; box-shadow:none; color:var(--ng2-ink); letter-spacing:.015em; font-weight:700; line-height:1.5; }
.ng-hub-v2 :is(h1,h2,h3)::before, .ng-hub-v2 :is(h1,h2,h3)::after { content:none; }
.ng-hub-v2 h1 { font-size:clamp(26px,3vw,36px); max-width:760px; }
.ng-hub-v2 h1 span { white-space:nowrap; }
.ng-hub-v2 h2 { font-size:clamp(23px,2.4vw,29px); }
.ng-hub-v2 h3 { font-size:21px; }
.ng-hub-v2 a { color:var(--ng2-ink); text-decoration:none; text-underline-offset:4px; overflow-wrap:anywhere; }
.ng-hub-v2 a:hover { text-decoration:underline; }
.ng-hub-v2 a:focus-visible { outline:3px solid #1176d4; outline-offset:4px; border-radius:3px; }
.ng-hub-v2 [id] { scroll-margin-top:110px; }
.ng-hub-v2 .ng2-hero { padding:36px 38px 28px; border-radius:12px; background:var(--ng2-soft); border:1px solid var(--ng2-line); border-top:4px solid var(--ng2-ink); }
.ng-hub-v2 .ng2-eyebrow { font-size:13px; letter-spacing:.06em; color:var(--ng2-muted); margin-bottom:14px; font-weight:700; }
.ng-hub-v2 .ng2-lead { margin-top:12px; }
.ng-hub-v2 .ng2-lead + .ng2-lead { margin-top:2px; }
.ng-hub-v2 .ng2-route { display:flex; flex-wrap:wrap; gap:10px 24px; list-style:none; margin-top:24px; padding-top:18px; border-top:1px solid #d1dfe3; font-size:14px; counter-reset:route; }
.ng-hub-v2 .ng2-route li { display:flex; align-items:center; gap:9px; margin:0; padding:0; counter-increment:route; }
.ng-hub-v2 .ng2-route li::before { content:counter(route); width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:var(--ng2-ink); color:white; font-size:12px; }
.ng-hub-v2 .ng2-section { margin-top:48px; }
.ng-hub-v2 .ng2-section-copy { color:var(--ng2-muted); margin-top:12px; margin-bottom:22px; }
.ng-hub-v2 .ng2-jump-wrap { margin:20px 0 0; padding:0; border:0; background:none; }
.ng-hub-v2 .ng2-jumps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; list-style:none; }
.ng-hub-v2 .ng2-jumps li { margin:0; padding:0; }
.ng-hub-v2 .ng2-jumps a { display:flex; justify-content:space-between; align-items:center; gap:8px; min-height:48px; padding:10px 14px; border:1px solid #b6cdd4; border-radius:6px; font-weight:700; font-size:15px; background:#fff; }
.ng-hub-v2 .ng2-jumps a:hover { background:var(--ng2-soft); }
.ng-hub-v2 .ng2-problem-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:stretch; }
.ng-hub-v2 :is(.ng2-problem-grid,.ng2-card,.ng2-flow-panel,.ng2-hero,.ng2-trust) > .wp-block-group__inner-container { display:contents; }
.ng-hub-v2 .ng2-card { display:flex; flex-direction:column; min-width:0; padding:24px; border:1px solid var(--ng2-line); border-radius:9px; background:white; }
.ng-hub-v2 .ng2-number { font-size:12px; font-weight:700; letter-spacing:.12em; color:#526f7b; margin-bottom:6px; }
.ng-hub-v2 .ng2-card-copy { font-size:15px; color:var(--ng2-muted); margin-top:8px; margin-bottom:16px; }
.ng-hub-v2 .ng2-card-links { list-style:none; }
.ng-hub-v2 .ng2-card-links li { border-top:1px solid var(--ng2-line); margin:0; padding:0; }
.ng-hub-v2 .ng2-card-links a { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:9px 0; font-size:15px; line-height:1.7; }
.ng-hub-v2 .ng2-card-links a::after { content:'→'; flex-shrink:0; margin-left:12px; color:#5b7782; }
.ng-hub-v2 .ng2-more { margin-top:auto; padding-top:14px; font-size:13px; font-weight:700; }
.ng-hub-v2 .ng2-more a { display:flex; align-items:center; min-height:44px; }
.ng-hub-v2 .ng2-small { color:var(--ng2-muted); font-size:14px; margin-top:14px; }
.ng-hub-v2 .ng2-card .ng2-small { margin-top:auto; padding-top:14px; }
.ng-hub-v2 .ng2-situations { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; }
.ng-hub-v2 .ng2-situations li { margin:0; padding:0; }
.ng-hub-v2 .ng2-situations a { display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--ng2-line); min-height:52px; padding:10px 4px; font-size:15px; }
.ng-hub-v2 .ng2-situations a::after { content:'→'; }
.ng-hub-v2 .ng2-flow-panel { padding:28px; background:var(--ng2-soft); border-radius:9px; }
.ng-hub-v2 .ng2-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; list-style:none; counter-reset:flow; }
.ng-hub-v2 .ng2-flow li { counter-increment:flow; position:relative; padding-left:34px; margin:0; font-size:14px; }
.ng-hub-v2 .ng2-flow li::before { content:counter(flow,decimal-leading-zero); position:absolute; left:0; top:2px; color:#536f7a; font-weight:700; }
.ng-hub-v2 .ng2-flow strong { display:block; line-height:1.7; font-size:15px; }
.ng-hub-v2 .ng2-flow a { display:flex; align-items:center; min-height:48px; padding-top:6px; text-decoration:underline; }
.ng-hub-v2 .ng2-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; list-style:none; padding:18px 22px; background:var(--ng2-soft); border-radius:6px; }
.ng-hub-v2 .ng2-checks li { margin:0; padding-left:25px; position:relative; font-size:15px; }
.ng-hub-v2 .ng2-checks li::before { content:'✓'; position:absolute; top:0; left:0; color:var(--ng2-ink); }
.ng-hub-v2 .ng2-decisions { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:20px; }
.ng-hub-v2 .ng2-decisions li { margin:0; padding:0; }
.ng-hub-v2 .ng2-decisions a { display:flex; flex-direction:column; justify-content:center; min-height:106px; padding:16px 20px; background:#fff; border:1px solid #b6cdd4; border-radius:7px; font-weight:700; line-height:1.6; }
.ng-hub-v2 .ng2-decisions a span { display:block; color:var(--ng2-muted); font-weight:400; font-size:13px; margin-top:7px; }
.ng-hub-v2 .swell-block-balloon { margin:24px 0 0; }
.ng-hub-v2 .ng2-latest .wp-block-post-template { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; list-style:none; margin:0; }
.ng-hub-v2 .ng2-latest .wp-block-post { margin:0; padding:0; border-top:1px solid var(--ng2-line); }
.ng-hub-v2 .ng2-latest h3 { font-size:15px; font-weight:500; margin:0; }
.ng-hub-v2 .ng2-latest h3 a { display:flex; min-height:88px; align-items:center; padding:16px 0; line-height:1.8; }
.ng-hub-v2 #top01-all-articles { font-size:23px; margin-top:36px; }
.ng-hub-v2 .ng2-category-links { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ng-hub-v2 .ng2-category-links li { margin:0; padding:0; }
.ng-hub-v2 .ng2-category-links a { display:flex; align-items:center; justify-content:center; min-height:56px; padding:12px 18px; border-radius:6px; background:var(--ng2-ink); color:white; font-size:15px; font-weight:700; text-align:center; }
.ng-hub-v2 .ng2-trust { margin-top:40px; padding-top:24px; border-top:1px solid var(--ng2-line); font-size:13px; color:var(--ng2-muted); }
.ng-hub-v2 .ng2-trust-title { font-weight:700; font-size:15px; margin-bottom:8px; color:var(--ng2-ink); }
.ng-hub-v2 .ng2-policy-links { display:flex; flex-wrap:wrap; gap:12px 24px; list-style:none; margin-top:6px; }
.ng-hub-v2 .ng2-policy-links li { margin:0; padding:0; }
.ng-hub-v2 .ng2-policy-links a { display:flex; align-items:center; min-height:44px; text-decoration:underline; }
@media(max-width:959px) {
 .ng-hub-v2 .ng2-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ng-hub-v2 .ng2-jumps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:599px) {
 .ng-hub-v2 .ng2-hero { padding:24px 18px 20px; }
 .ng-hub-v2 .ng2-eyebrow { font-size:11px; letter-spacing:0; margin-bottom:12px; }
 .ng-hub-v2 h1 { font-size:clamp(20px,6.1vw,24px); line-height:1.55; }
 .ng-hub-v2 .ng2-title-first { display:block; }
 .ng-hub-v2 h2 { font-size:23px; }
 .ng-hub-v2 h3 { font-size:20px; }
 .ng-hub-v2 .ng2-lead { font-size:15px; }
 .ng-hub-v2 .ng2-route { font-size:12px; gap:8px 12px; margin-top:18px; padding-top:14px; }
 .ng-hub-v2 .ng2-route li:last-child { width:100%; }
 .ng-hub-v2 .ng2-route li::before { width:21px; height:21px; font-size:11px; }
 .ng-hub-v2 .ng2-section { margin-top:34px; }
 .ng-hub-v2 .ng2-section-copy { margin-bottom:18px; font-size:15px; }
 .ng-hub-v2 .ng2-jumps { gap:8px; }
 .ng-hub-v2 .ng2-jumps a { font-size:14px; padding:10px; }
 .ng-hub-v2 :is(.ng2-problem-grid,.ng2-situations,.ng2-decisions,.ng2-category-links) { grid-template-columns:minmax(0,1fr); }
 .ng-hub-v2 .ng2-card { padding:20px 18px; }
 .ng-hub-v2 .ng2-flow-panel { padding:24px 18px; }
 .ng-hub-v2 .ng2-flow { grid-template-columns:minmax(0,1fr); gap:18px; }
 .ng-hub-v2 .ng2-checks { grid-template-columns:minmax(0,1fr); padding:18px; gap:8px; }
 .ng-hub-v2 .ng2-decisions a { min-height:96px; }
 .ng-hub-v2 .ng2-latest .wp-block-post-template { grid-template-columns:minmax(0,1fr); }
 .ng-hub-v2 .ng2-latest h3 a { min-height:76px; }
}
