/*
Theme Name: SMB Compass
Theme URI: https://www.smbcompass.com/
Author: SMB Compass
Description: Block theme for SMB Compass. Hub-and-spoke page templates (loan programs, industries, locations, guides), author/E-E-A-T components and Yoast-compatible structured data.
Version: 1.2.11
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: smbc
*/

:root {
	--ink: #0F4D32; --green: #23873F; --green-2: #2E9E50; --green-3: #34AE5D; --forest: #11513A;
	--mint: #DDF0E3; --mint-2: #B7DFC6; --tint: #F5F8F6; --tint-2: #E8F2EC; --line: #E3EBE6; --line-2: #D5E1DA;
	--body: #24382E; --muted: #4F5F57; --soft: #5B6B63; --on-dark: #BFD8CA;
	--r: 14px; --shadow: 0 1px 2px rgba(15,77,50,.06), 0 8px 24px rgba(15,77,50,.07); --shadow-lift: 0 1px 2px rgba(15,77,50,.06), 0 16px 40px rgba(15,77,50,.10);
	--pad: clamp(1rem, 4.5vw, 4rem); --max: 1312px;
}
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--green-3); outline-offset: 2px; border-radius: 4px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* ---------- Header */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--line); }
.admin-bar .site-header { top: 32px; }
.site-header__bar { min-height: 76px; gap: 2rem; }
.site-logo img { display: block; width: 176px; height: auto; }
.site-nav { flex: 1; font-weight: 500; }
.site-nav a { color: #1E3A2C; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current] { color: var(--green); }
.site-nav .wp-block-navigation__submenu-container { border: 1px solid var(--line) !important; border-radius: 12px; box-shadow: var(--shadow-lift); padding: .5rem !important; min-width: 250px !important; }
.site-nav .wp-block-navigation__submenu-container a { padding: .5rem .75rem !important; border-radius: 8px; }
.site-nav .wp-block-navigation__submenu-container a:hover { background: var(--tint); }
.site-header__cta { gap: 1.25rem; }
.site-header__phone { margin: 0; font-weight: 700; font-size: .9375rem; white-space: nowrap; }
.site-header__phone a { color: var(--ink); text-decoration: none; }
@media (max-width: 1100px) { .site-header__phone { display: none; } }
@media (max-width: 600px) { .site-logo img { width: 140px; } .site-header__apply .wp-block-button__link { padding: .7rem 1rem; } }

/* ---------- Buttons */
.wp-block-button.is-style-white .wp-block-button__link { background: #fff; color: var(--ink); }
.wp-block-button.is-style-white .wp-block-button__link:hover { background: var(--mint); color: var(--ink); }
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.4); }
.wp-block-button.is-style-outline .wp-block-button__link { background: #fff; color: var(--ink); border: 1.5px solid #CFDDD5; }
.btn-dark { display: inline-block; background: var(--ink); color: #fff !important; font-weight: 700; padding: .8rem 1.25rem; border-radius: 8px; text-decoration: none; }

/* ---------- Shared type helpers */
.eyebrow { margin: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--green); }
.lead { font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); line-height: 1.6; color: var(--muted); max-width: 780px; }
.muted { color: var(--muted); }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem; margin: 0 0 .75rem; padding: 0; font-size: .875rem; color: var(--soft); }
.crumbs li + li::before { content: "/"; margin: 0 .5rem 0 .25rem; color: #9AAAA1; }
.crumbs a { color: var(--soft); text-decoration: none; }
.crumbs a:hover { color: var(--green); text-decoration: underline; }
.crumbs [aria-current] { color: var(--ink); font-weight: 600; }

/* ---------- Designed page sections (used by content/pages/*.html) */
.canvas > .wp-block-post-content > * { margin-block: 0; }
.sec { padding: clamp(3.5rem, 7vw, 6rem) var(--pad); }
.sec > .sec__in { max-width: var(--max); margin: 0 auto; display: flex; flex-direction: column; gap: 2rem; }
.sec--tint { background: var(--tint); } .sec--tint2 { background: var(--tint-2); } .sec--dark { background: var(--forest); color: #fff; }
.sec--dark h2, .sec--dark h3 { color: #fff; } .sec--dark p { color: var(--on-dark); }
.sec--hero { padding-top: clamp(2rem, 4vw, 3.5rem); background: var(--tint); }
.sec__head { display: flex; flex-direction: column; gap: .6rem; max-width: 820px; }
.sec__head h2, .sec__head p { margin: 0; }
.sec__head p { color: var(--muted); font-size: 1.03rem; }
.hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.hero h1 { margin: .4rem 0 0; }
.hero__copy { display: flex; flex-direction: column; gap: 1.1rem; padding-top: .5rem; }
.hero__copy p { margin: 0; }
.card { background: #fff; border-radius: 16px; padding: clamp(1.25rem, 2.5vw, 2rem); box-shadow: var(--shadow); }
.card--lift { box-shadow: var(--shadow-lift); }
.card--line { box-shadow: none; border: 1px solid var(--line); }
.grid { display: grid; gap: 1.5rem; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .6rem; }
@media (max-width: 1000px) { .hero, .grid--2 { grid-template-columns: 1fr; } .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .grid--3, .grid--4 { grid-template-columns: 1fr; } .grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; }
.stat { display: flex; flex-direction: column; gap: .2rem; padding: 1rem 1.25rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.stat b { font-size: 1.5rem; color: var(--ink); letter-spacing: -.02em; }
.stat span, .stat small { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #6B7A72; }
.band { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 2rem; }
.band b { display: block; font-size: 2.1rem; color: #fff; } .band span { font-size: .78rem; font-weight: 600; letter-spacing: .1em; color: var(--on-dark); text-transform: uppercase; }
.pill-link { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; font-weight: 700; color: var(--ink); text-decoration: none; box-shadow: 0 4px 14px rgba(15,77,50,.05); }
.pill-link::after { content: "→"; color: var(--green); }
.pill-link:hover { border-color: var(--mint-2); color: var(--green); }
.pill-link small { display: block; font-weight: 500; font-size: .84rem; color: var(--muted); margin-top: .2rem; }
.tag { display: inline-block; font-size: .8rem; font-weight: 600; color: #1B6E33; background: var(--mint); padding: .3rem .65rem; border-radius: 6px; }
.tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.checks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; }
.checks li { position: relative; padding-left: 1.7rem; line-height: 1.55; }
.checks li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.05rem; height: 1.05rem; background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2323873F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.minus li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A6A3A' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E"); }
.steps { counter-reset: s; list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.steps li { counter-increment: s; display: flex; gap: 1rem; align-items: center; padding: 1rem 1.25rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; font-weight: 600; color: var(--ink); }
.steps li::before { content: counter(s); flex: none; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--green); color: #fff; display: grid; place-items: center; font-weight: 800; }
.numbered { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.numbered > div { border-top: 2px solid var(--green-3); padding-top: 1.25rem; }
.numbered b { display: block; font-size: 3rem; line-height: 1; font-weight: 800; color: var(--green-2); letter-spacing: -.03em; margin-bottom: .75rem; }
.numbered h3 { font-size: 1.15rem; margin: 0 0 .4rem; }
.numbered p { margin: 0; color: var(--muted); }
.faq { border-bottom: 1px solid var(--line-2); }
.faq details { border-top: 1px solid var(--line-2); padding: 1.25rem 0; }
.faq summary { cursor: pointer; font-weight: 700; font-size: 1.1rem; color: var(--ink); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--green); font-size: 1.4rem; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin: .6rem 0 0; color: var(--muted); }
.two-col { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 1000px) { .two-col { grid-template-columns: 1fr; } }
.sources { font-size: .9rem; color: var(--muted); }
.sources ol { padding-left: 1.25rem; display: grid; gap: .35rem; }
.note { font-size: .85rem; color: #6B7A72; }
.map-wrap svg { width: 100%; height: auto; display: block; }
.map-wrap .st { fill: #CFE6D7; stroke: #fff; stroke-width: 1.2; transition: fill .15s; }
.map-wrap .st.has { fill: #2E8B4A; }
.map-wrap a:hover .st, .map-wrap a:focus .st { fill: var(--ink); }
.map-wrap text { font: 700 11px Inter, sans-serif; fill: var(--ink); pointer-events: none; }
.map-wrap text.on { fill: #fff; }
.region-list a { display: flex; justify-content: space-between; padding: .5rem 0; border-top: 1px solid var(--line); color: #3E5247; text-decoration: none; }
.region-list a.has { color: var(--ink); font-weight: 700; }
.region-list a:hover { color: var(--green); }

/* ---------- Tables */
.wp-block-table table, .entry table { border-collapse: collapse; width: 100%; }
.wp-block-table { border: 1px solid var(--line); border-radius: var(--r); overflow: auto; }
.wp-block-table thead { background: var(--forest); border: 0; }
.wp-block-table th { color: var(--on-dark); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; text-align: left; padding: .9rem 1.1rem; border: 0; }
.wp-block-table td { padding: .9rem 1.1rem; border: 0; border-top: 1px solid var(--line); vertical-align: top; }
.wp-block-table tbody tr:nth-child(even) { background: #F8FBF9; }
.wp-block-table td:first-child { font-weight: 700; color: var(--ink); }
.wp-block-table figcaption { font-size: .85rem; color: var(--muted); padding: .6rem 1rem; }

/* ---------- Article (posts and guide pages) */
.article { padding-top: 2rem; }
.article__head { display: flex; flex-direction: column; gap: 1rem; }
.article__title { margin: 0; font-size: clamp(2.1rem, 4.4vw, 3.3rem); line-height: 1.08; letter-spacing: -.03em; }
.article__dek { margin: 0; font-size: 1.2rem; line-height: 1.55; color: var(--muted); }
.chip-terms a { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1B6E33; background: var(--mint); padding: .35rem .75rem; border-radius: 999px; text-decoration: none; }
.chip-terms .wp-block-post-terms__separator { display: none; }
.chip-terms a + a { margin-left: .35rem; }
.byline { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line); font-size: .9rem; color: var(--soft); }
.byline__person { display: flex; align-items: center; gap: .75rem; color: var(--soft); text-decoration: none; }
.byline__person img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.byline__person > span { display: flex; flex-direction: column; }
.byline__person strong { color: var(--ink); }
.byline__person:hover strong { color: var(--green); text-decoration: underline; }
.byline__dates { display: flex; flex-direction: column; gap: .15rem; padding-left: 1.5rem; border-left: 1px solid var(--line); }
.byline__checked::before { content: "✓ "; color: var(--green); font-weight: 700; }
@media (max-width: 700px) { .byline__dates { padding-left: 0; border-left: 0; } }
.disclosure { margin: 0; font-size: .86rem; line-height: 1.55; color: var(--soft); background: var(--tint); border-radius: 10px; padding: .8rem 1rem; }
.article__cols { gap: clamp(2rem, 6vw, 6rem) !important; margin-top: 2rem; align-items: flex-start !important; }
.article__aside { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 1.5rem; }
@media (max-width: 781px) { .article__aside { position: static; } }
.article__image img { border-radius: 16px; }
.entry { font-size: 1.09rem; line-height: 1.72; }
.entry h2 { margin-top: 2.2em; font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.entry h3 { margin-top: 1.6em; font-size: 1.35rem; }
.entry a { text-decoration: underline; text-decoration-color: var(--mint-2); text-underline-offset: 3px; }
.entry a:hover { text-decoration-color: currentColor; }
.entry blockquote, .entry .callout { border-left: 4px solid var(--green); background: var(--tint); border-radius: 0 14px 14px 0; padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.entry .short-answer { border-left: 4px solid var(--green); background: var(--tint); border-radius: 0 14px 14px 0; padding: 1.4rem 1.6rem; }
.entry .short-answer > :first-child { margin-top: 0; }
.entry sup a { text-decoration: none; font-weight: 700; font-size: .75em; }
.toc { border-left: 2px solid var(--line); padding-left: 1.1rem; }
.toc__h { margin: 0 0 .5rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #6B7A72; }
.toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.toc a { display: block; padding: .3rem 0; font-size: .9rem; line-height: 1.4; color: var(--soft); text-decoration: none; }
.toc a:hover { color: var(--green); }
.side-cta { background: var(--forest); border-radius: 16px; padding: 1.5rem; color: var(--on-dark); }
.side-cta p { margin: 0 0 .7rem; }
.side-cta__eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #A9CBB8; }
.side-cta__title { font-size: 1.35rem; line-height: 1.2; font-weight: 800; color: #fff; }
.side-cta__text { font-size: .9rem; }
.side-cta__btn { display: block; text-align: center; background: #fff; color: var(--ink) !important; font-weight: 800; padding: .8rem; border-radius: 8px; text-decoration: none; }
.side-cta__phone { text-align: center; } .side-cta__phone a { color: #fff; font-size: .88rem; font-weight: 600; }
.author-box { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; margin-top: 3rem; }
.author-box__main { display: flex; gap: 1.4rem; padding: 1.75rem; align-items: flex-start; }
.author-box__main img { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; flex: none; }
.author-box p { margin: 0 0 .5rem; font-size: .96rem; }
.author-box__eyebrow { font-size: .72rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green); }
.author-box__name { font-size: 1.25rem !important; font-weight: 800; } .author-box__name a { color: var(--ink); text-decoration: none; }
.author-box__role { font-weight: 600; color: var(--soft); font-size: .88rem !important; }
.author-box__links a { font-weight: 700; margin-right: 1rem; }
.author-box__rev { display: flex; gap: .9rem; align-items: center; padding: 1rem 1.75rem; background: var(--tint); border-top: 1px solid var(--line); }
.author-box__rev img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.author-box__rev p { margin: 0; font-size: .9rem; }
.author-box__note { padding: 1rem 1.75rem; border-top: 1px solid var(--line); font-size: .84rem !important; color: var(--soft); margin: 0 !important; }
@media (max-width: 600px) { .author-box__main { flex-direction: column; } }

/* ---------- Related (hub and spoke) */
.related { background: var(--tint); padding: clamp(3rem, 6vw, 5rem) var(--pad); margin-top: clamp(3rem, 6vw, 5rem); }
.related__inner { max-width: var(--max); margin: 0 auto; }
.related__h { margin: 0 0 1.75rem; }
.related__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 1000px) { .related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .related__grid { grid-template-columns: 1fr; } }
.related__card { display: flex; flex-direction: column; gap: .8rem; padding: 1.5rem; background: #fff; border-radius: 14px; box-shadow: var(--shadow); text-decoration: none; min-height: 170px; }
.related__type { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green); }
.related__title { font-weight: 700; font-size: 1.05rem; line-height: 1.35; color: var(--ink); }
.related__more { margin-top: auto; font-weight: 700; font-size: .9rem; color: var(--green); }
.related__card:hover .related__title { color: var(--green); }

/* ---------- Blog */
.blog-hero { background: var(--tint); padding: 2.5rem var(--pad) 2.5rem !important; margin: 0 calc(-1 * var(--pad)) 2.5rem !important; }
.blog-hero h1 { margin: .5rem 0; }
.blog-search { max-width: 420px; }
.blog-search .wp-block-search__input { border: 1.5px solid var(--line-2); border-radius: 10px; padding: .75rem 1rem; }
.chips { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.chips a { font-size: .9rem; font-weight: 600; padding: .55rem 1rem; border-radius: 999px; background: #fff; border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.chips a[aria-current], .chips a:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.post-grid { gap: 1.5rem !important; }
.post-card { display: flex; flex-direction: column; gap: .75rem; padding: 1rem 1rem 1.5rem; background: #fff; border: 1px solid var(--line); border-radius: 16px; height: 100%; }
.post-card__img img, .smbc-ph { border-radius: 12px; aspect-ratio: 16/9; object-fit: cover; }
.smbc-ph { margin: 0; background: linear-gradient(135deg, var(--tint-2), var(--tint)); display: grid; place-items: center; }
.smbc-ph a { display: grid; place-items: center; width: 100%; height: 100%; text-decoration: none; }
.ph-label { font-weight: 700; color: var(--green); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.post-card__cat a { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green); text-decoration: none; }
.post-card__cat .wp-block-post-terms__separator { display: none; } .post-card__cat a + a { display: none; }
.post-card__title { margin: 0; font-size: 1.2rem; line-height: 1.3; } .post-card__title a { color: var(--ink); text-decoration: none; }
.post-card__title a:hover { color: var(--green); }
.post-card__meta { margin-top: auto; gap: .6rem; font-size: .84rem; color: var(--soft); }
.post-card__meta a { color: var(--soft); }
.pager { margin-top: 2.5rem; gap: .4rem; font-weight: 700; }
.pager .page-numbers, .pager a { display: inline-grid; place-items: center; min-width: 44px; height: 44px; border-radius: 10px; border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; padding: 0 .75rem; }
.pager .current { background: var(--ink); color: #fff; border-color: var(--ink); }
.blog { padding-bottom: 4rem; }

/* ---------- Author page */
.author-hero { background: var(--tint); padding: 2.5rem var(--pad) 4rem; }
.author-hero__inner, .author-main__inner, .standards__inner { max-width: var(--max); margin: 0 auto; }
.author-hero__grid { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 3.5rem; align-items: center; }
.author-hero__photo { width: 240px; height: 240px; border-radius: 24px; object-fit: cover; box-shadow: 0 16px 40px rgba(15,77,50,.16); }
.author-hero h1 { margin: .5rem 0; }
.author-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.author-hero__chips span { font-size: .85rem; font-weight: 600; color: #1B6E33; background: var(--mint); padding: .35rem .8rem; border-radius: 999px; }
@media (max-width: 800px) { .author-hero__grid { grid-template-columns: 1fr; gap: 1.5rem; } .author-hero__photo { width: 160px; height: 160px; } }
.author-main { padding: 4rem var(--pad); }
.author-main__inner { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 5rem; align-items: start; }
@media (max-width: 1000px) { .author-main__inner { grid-template-columns: 1fr; gap: 2rem; } }
.author-main__body h2 { font-size: 1.6rem; margin: 2.25rem 0 .75rem; } .author-main__body h2:first-child { margin-top: 0; }
.author-main__aside { position: sticky; top: 100px; display: grid; gap: 1.25rem; }
.facts, .featured { border: 1px solid var(--line); border-radius: 16px; padding: 1.4rem; }
.featured { background: var(--tint); border: 0; }
.facts__h { margin: 0 0 .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green); }
.facts p { margin: 0; padding: .7rem 0; border-top: 1px solid var(--line); font-weight: 600; color: var(--ink); }
.facts p span { display: block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: #6B7A72; }
.featured p { margin: 0; padding: .5rem 0; border-top: 1px solid #DCE7E0; font-weight: 600; color: var(--ink); }
.link-list { padding-left: 1.2rem; }
.standards { background: var(--tint-2); padding: 4rem var(--pad); }
.standards__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 1.5rem 0; }
.standards__grid > div { background: #fff; border-radius: 14px; padding: 1.4rem; }
.standards__grid h3 { font-size: 1.05rem; margin: 0 0 .5rem; } .standards__grid p { margin: 0; font-size: .92rem; color: var(--muted); }
@media (max-width: 1000px) { .standards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.author-posts { padding: 3.5rem var(--pad) 4rem; }
.author-posts__h span { color: var(--soft); font-weight: 600; }

/* ---------- Plain pages */
.plain { padding-top: 2rem; padding-bottom: 4rem; }

/* ---------- CTA band + footer */
.cta-band { background: var(--forest); padding: 3.5rem var(--pad); }
.cta-band__inner { gap: 1.5rem 2.5rem; }
.cta-band__title { color: #fff; margin: 0 0 .4rem; font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.cta-band__sub { margin: 0; color: var(--on-dark); }
.site-footer { background: var(--forest); color: #D7E8DE; padding: 1rem var(--pad) 2.5rem; border-top: 1px solid rgba(215,232,222,.14); }
.site-footer__cols { gap: 2rem !important; padding: 2.5rem 0; }
@media (max-width: 900px) { .site-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.site-footer__h { font-size: .78rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #A9CBB8 !important; margin: 0 0 .9rem; }
.site-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; font-size: .93rem; }
.site-footer a { color: #fff; text-decoration: none; } .site-footer a:hover { text-decoration: underline; }
.site-footer__contact { font-size: .93rem; line-height: 1.7; margin: 0 0 1rem; }
.site-footer__legal { font-size: .82rem; line-height: 1.65; color: var(--on-dark); border-top: 1px solid rgba(215,232,222,.2); padding-top: 1.5rem; margin: 0; }
.site-footer__bottom { font-size: .82rem; color: var(--on-dark); margin-top: 1.25rem; }
.site-footer__bottom p { margin: 0; } .site-footer__bottom a { color: var(--on-dark); }
.mini-map { background: var(--tint); border-radius: 12px; padding: .75rem; margin-bottom: .5rem; }
.callout-box { border-left: 4px solid var(--green); background: #fff; border-radius: 0 12px 12px 0; padding: 1.1rem 1.4rem; }
.callout-box p { margin: 0; }
.hero .card h3 { margin: .25rem 0 0; }
.hero .card p { margin: .25rem 0 .75rem; }
.sec .card h3 { margin: 0 0 .5rem; font-size: 1.2rem; }
.sec .card h3 a { color: var(--ink); text-decoration: none; } .sec .card h3 a:hover { color: var(--green); }
.sec .card p { margin: 0 0 .6rem; }
.sec .card .eyebrow { font-size: .7rem; margin-bottom: .4rem; }
.center { text-align: center; align-items: center; display: flex; flex-direction: column; gap: 1rem; } .center .wp-block-buttons { justify-content: center; } .home-map img { border-radius: 16px; }
.prose { max-width: 820px; } .prose > * + * { margin-top: 1rem; } .prose h3 { margin-top: 2rem; }
.cta-inline { max-width: var(--max); margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.cta-inline .wp-block-buttons { justify-content: center; }
.hero-img img { border-radius: 12px; margin-bottom: 1rem; }
.article--page .entry .card { margin: 1rem 0; }
.entry .grid { margin: 1.25rem 0; }
.entry .faq { margin-top: 1rem; }
.form-card { background: #fff; border-radius: 16px; padding: clamp(1.25rem, 2.5vw, 2rem); box-shadow: var(--shadow-lift); }
.inline-form { margin: 2rem 0; border: 1px solid var(--line); }
.form-card__title { font-size: 1.3rem; font-weight: 800; color: var(--ink); margin: 0 0 .25rem; }

/* Editable stat tiles (patterns) and key takeaways box */
.stat p { margin: 0; }
.stat .stat__value strong { font-size: 1.5rem; color: var(--ink); letter-spacing: -.02em; font-weight: 700; }
.stat .stat__label { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #6B7A72; }
.key-takeaways { background: var(--tint); border-left: 4px solid var(--green); border-radius: 12px; padding: 1.25rem 1.5rem; margin: 0 0 2rem; }
.key-takeaways > p:first-child { margin-top: 0; }
.key-takeaways ul { margin-bottom: 0; }
.sitemap-list { columns: 3 220px; column-gap: 2rem; padding-left: 1.1rem; margin-bottom: 2rem; }
.sitemap-list li { break-inside: avoid; margin: .2rem 0; }

/* ---- Layout fixes (v1.1.1) ---- */
/* No gap between the header and the first band of the page. */
.wp-site-blocks > main, .wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part + * { margin-block-start: 0 !important; }
/* Hero content lines up with the header and every other section. */
.sec--hero > .hero { max-width: var(--max); margin-inline: auto; }
/* Key numbers inside the hero card: compact, never squeezed. */
.hero .card .stats { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: .6rem; margin-bottom: 1.25rem; }
.hero .card .stat { padding: .8rem .9rem; min-width: 0; }
.hero .card .stat b, .hero .card .stat .stat__value strong { font-size: 1.05rem; line-height: 1.3; overflow-wrap: anywhere; }
.hero .card .stat span, .hero .card .stat .stat__label { font-size: .68rem; }
.hero .card > h3 { margin-top: .5rem; }
.hero .card .hero-img, .hero .card .wp-block-image { margin: 0 0 1rem; }
.hero .card .hero-img img { width: 100%; height: auto; margin: 0; }

/* Mobile menu: show the columns as plain grouped lists. */
.wp-block-navigation__responsive-container.is-menu-open .mega-col > .wp-block-navigation-item__content { font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #6B7A72; margin-top: .75rem; }
.wp-block-navigation__responsive-container.is-menu-open .mega-col > .wp-block-navigation__submenu-icon { display: none; }
/* Headings that link to a loan program page */
.wp-block-heading > a.program-link { color: inherit; text-decoration: none; box-shadow: inset 0 -2px 0 var(--mint-2); transition: color .15s, box-shadow .15s; }
.wp-block-heading > a.program-link:hover { color: var(--green); box-shadow: inset 0 -2px 0 var(--green); }
.wp-block-heading > a.program-link::after { content: " →"; font-weight: 600; color: var(--green); }
.stat b, .stat .stat__value strong { overflow-wrap: anywhere; }
@media (max-width: 600px) { .stat b, .stat .stat__value strong { font-size: 1.2rem; } }
/* Equal cards: no stray top margin on grid items, same height per row, closing link pinned to the bottom. */
.grid > *, .stats > *, .hero > * { margin-block: 0 !important; }
.grid { align-items: stretch; }
.grid > .card { display: flex; flex-direction: column; }
.grid > .card > :last-child { margin-bottom: 0; }
.grid > .card > p:last-child:has(a:only-child), .grid > .card > .wp-block-buttons:last-child { margin-top: auto; padding-top: .5rem; }
.stats { align-items: stretch; }
.hero .card .stats { margin: 0 0 1.5rem !important; }
.hero .card > h3 { margin-top: 0 !important; }

/* Below 1100px the full menu doesn't fit: use the menu button (core only switches at 600px). */
@media (max-width: 1099px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.site-header__bar { gap: .75rem; }
	.site-header__bar > .site-nav { order: 3; }
	.site-header__cta { margin-left: auto; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 1rem; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1rem; }
}
@media (max-width: 1099px) { .site-header__bar > .site-nav { flex: 0 0 auto; } }
/* Grid and row layouts: children never carry the flow layout's top margin, so boxes line up. */
:where(.two-col, .grid, .hero, .stats, .numbered, .band, .standards__grid, .related__grid, .author-hero__grid) > * { margin-block: 0 !important; }
/* All buttons the same height side by side. */
.wp-block-button__link { border: 1.5px solid transparent; line-height: 1.25; }
.wp-block-buttons { align-items: stretch; }
/* Numbered steps: text wraps normally on small screens (was a flex row that could overflow). */
.steps li { display: block; position: relative; padding: 1rem 1.25rem 1rem 4.1rem; min-height: 3.6rem; font-weight: 400; overflow-wrap: anywhere; }
.steps li strong { color: var(--ink); font-weight: 700; }
.steps li::before { position: absolute; left: 1.1rem; top: .8rem; }
.steps li p { margin: .35rem 0 0; }

/* ---- Mega menus (full-width panel under the header, like the current site) ---- */
@media (min-width: 1100px) {
	.site-header { position: relative; }
	.site-header .site-header__bar, .site-nav, .site-nav .wp-block-navigation__container, .site-nav .wp-block-navigation-item.mega,
	.site-nav .wp-block-navigation__responsive-container, .site-nav .wp-block-navigation__responsive-container-content, .site-nav .wp-block-navigation__responsive-dialog, .site-nav .wp-block-navigation__responsive-close { position: static !important; }
	.site-nav .mega > .wp-block-navigation__submenu-container {
		position: absolute !important; left: 0 !important; right: 0 !important; top: 100% !important; width: auto !important; min-width: 0 !important;
		display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem;
		padding: 2rem max(var(--pad), calc((100% - 1312px) / 2)) 2.5rem !important; background: #fff;
		border: 0 !important; border-top: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: 0 24px 32px -20px rgba(15, 77, 50, .22) !important; }
	.site-nav .mega--3 > .wp-block-navigation__submenu-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	/* Keeps the panel open while the pointer moves down from the menu item. */
	.site-nav .mega > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -28px; height: 28px; }
	.site-nav .mega .mega-col { display: block; border-left: 1px solid var(--line-2); }
	.site-nav .mega .mega-col > .wp-block-navigation-item__content {
		display: block; margin-left: -1px; border-left: 2px solid var(--green); padding: .15rem 1.1rem .15rem !important; margin-bottom: .9rem;
		font-size: 1rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--green) !important; background: none !important; }
	.site-nav .mega .mega-col > .wp-block-navigation__submenu-icon { display: none; }
	.site-nav .mega .mega-col > .wp-block-navigation__submenu-container {
		position: static !important; visibility: inherit !important; opacity: inherit !important; width: auto !important; height: auto !important;
		min-width: 0 !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; overflow: visible !important; display: block !important; background: none; }
	.site-nav .mega .mega-col .wp-block-navigation-item__content { padding: .38rem 1.1rem !important; font-size: .9rem; color: #1D2B24; border-radius: 0 !important; background: none !important; }
	.site-nav .mega .mega-col .wp-block-navigation-item__content:hover { color: var(--green); }
	.site-nav .mega .mega-all .wp-block-navigation-item__content { font-weight: 700; color: var(--ink); }
}
/* Phone/tablet menu: plain grouped lists, no boxes. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none !important; padding: 0 0 .25rem .9rem !important; min-width: 0 !important; background: none !important; border-radius: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-weight: 700; font-size: 1.1rem; color: var(--ink); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .mega-col .wp-block-navigation-item__content { padding: .3rem 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .mega-all .wp-block-navigation-item__content { font-weight: 700; color: var(--green); }
@media (max-width: 1099px) { .site-header__bar { justify-content: flex-start !important; } .site-header__bar > .wp-block-shortcode, .site-header__bar > :first-child { margin-right: auto; } .site-header__cta { margin-left: 0; } }
/* No white strips between full-width bands (header, page, "Ready to get funded" band, footer). */
.wp-site-blocks > *, .wp-site-blocks > * + *, main > .wp-block-template-part, .wp-block-template-part + .wp-block-template-part { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.author-page > br, .author-page > p:empty, .author-page > p:has(> br:only-child) { display: none; }
.author-page > *, .author-page > .author-hero { margin-block-start: 0 !important; }
.author-posts:has(.wp-block-query-no-results) { display: none; }
/* Sidebar: the table of contents scrolls with the page; only the "Talk to our team" box stays in view,
   so nothing in the sidebar is ever stuck out of reach on long tables of contents. */
@media (min-width: 782px) {
	.article__cols { align-items: stretch !important; }
	.article__aside { position: static; align-self: stretch; }
	.article__aside .side-cta { position: sticky; top: 110px; }
	.admin-bar .article__aside .side-cta { top: 142px; }
}
/* End-of-article disclaimer */
.article-disclaimer { margin: 2.5rem 0 0; padding: 1rem 1.25rem; background: var(--tint); border: 1px solid var(--line); border-radius: 12px; }
.article-disclaimer p { margin: 0; font-size: .875rem; line-height: 1.6; color: #4A5A52; }
.article-disclaimer strong { color: var(--ink); }
/* Quick qualifier (home page) */
.quick-apply { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; margin-top: .5rem; }
.quick-apply__field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.quick-apply label { font-size: .8rem; font-weight: 600; color: var(--ink); }
.quick-apply select { width: 100%; font: inherit; font-size: .95rem; color: #1D2B24; padding: .7rem 2.2rem .7rem .8rem; border: 1px solid var(--line-2); border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2311513A' stroke-width='1.8' fill='none'/%3E%3C/svg%3E") no-repeat right .8rem center; appearance: none; -webkit-appearance: none; }
.quick-apply select:focus { outline: 3px solid var(--mint-2); border-color: var(--green); }
.quick-apply__btn { grid-column: 1 / -1; margin-top: .35rem; font: inherit; font-weight: 700; font-size: 1rem; color: #fff; background: var(--green); border: 0; border-radius: 8px; padding: .95rem 1.25rem; cursor: pointer; }
.quick-apply__btn:hover { background: var(--ink); }
.quick-apply__note { grid-column: 1 / -1; margin: 0; font-size: .75rem; color: #6B7A72; line-height: 1.5; }
@media (max-width: 480px) { .quick-apply { grid-template-columns: 1fr; } }
/* One-question start: amount buttons */
.quick-amount__q { margin: .25rem 0 .75rem; font-weight: 700; color: var(--ink); }
.quick-amount__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-bottom: .9rem; }
.quick-amount__opt { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .85rem 1rem; border: 1.5px solid var(--line-2); border-radius: 10px; background: #fff; color: var(--ink); font-weight: 600; font-size: .95rem; text-decoration: none; transition: border-color .15s, background .15s, color .15s; }
.quick-amount__opt::after { content: "→"; color: var(--green); font-weight: 700; }
.quick-amount__opt:hover, .quick-amount__opt:focus-visible { border-color: var(--green); background: var(--mint); color: var(--ink); }
@media (max-width: 480px) { .quick-amount__grid { grid-template-columns: 1fr; } }

/* ---- Review fixes (v1.2.6) ---- */
/* Stat band: numbers centered, thinner band. */
.sec--dark:has(.band) { padding-block: clamp(1.75rem, 3.5vw, 2.75rem); }
.band { text-align: center; }
/* Two sections in a row on the same background: one gap between them, not two. */
.canvas .sec:not(.sec--hero):not(.sec--tint):not(.sec--tint2):not(.sec--dark) + .sec:not(.sec--hero):not(.sec--tint):not(.sec--tint2):not(.sec--dark),
.canvas .sec--tint + .sec--tint { padding-top: 0; }
/* Hero: the apply card sits level with the copy; no phone mockup in it. */
.hero { align-items: center; }
.sec--hero .card .hero-img { display: none; }
/* "Keep reading" cards: no forced height, so the title and "Read more" sit closer. */
.related__card { min-height: 0; gap: .5rem; }
.related__more { padding-top: .75rem; }
/* The "Apply in less than 60 seconds" card between sections: centered, not edge to edge. */
.canvas .wp-block-post-content > .form-card, .rail-main > .form-card, .plain .form-card {
	width: min(760px, calc(100% - 2 * var(--pad))); box-sizing: border-box; margin: clamp(2.5rem, 5vw, 4rem) auto !important; text-align: center; }
.rail-main > .form-card { width: min(760px, 100%); }
.form-card h2 { margin: 0 0 .5rem; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.form-card > p { margin: 0 0 1.25rem; color: var(--muted); }
.form-card .side-cta__btn { display: inline-block; background: var(--green); color: #fff !important; padding: .9rem 1.6rem; }
.form-card .side-cta__btn:hover { background: var(--ink); }
.form-card > :last-child { margin-bottom: 0; }
/* Four cards in a three-column grid: two rows of two instead of three and one. */
@media (min-width: 641px) { .grid--3:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Team photos (About us). */
.team-photo img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; display: block; }
.sec .card .team-photo { margin: 0 0 1rem; }

/* Right-hand rail on long pages (inc/components.php): sections left, "On this page" menu and apply box right. */
.rail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(2rem, 4vw, 4rem); max-width: var(--max); margin: 0 auto; padding-inline: var(--pad); }
.rail-main { min-width: 0; }
.rail-main > * { margin-block: 0; }
.rail-main > .sec { padding-inline: 0; }
.rail-main > .sec > .sec__in { max-width: none; }
.rail-main .prose, .rail-main .sec__head { max-width: 900px; }
/* Section backgrounds still run the full width of the window. */
.rail-main > .sec--tint { border-image: conic-gradient(var(--tint) 0 0) fill 0 / / 0 100vw; }
.rail-main > .sec--tint2 { border-image: conic-gradient(var(--tint-2) 0 0) fill 0 / / 0 100vw; }
.rail-main > .sec--dark { border-image: conic-gradient(var(--forest) 0 0) fill 0 / / 0 100vw; }
.has-rail { overflow-x: clip; }
.rail { padding-block: clamp(3.5rem, 7vw, 6rem); position: relative; z-index: 1; }
.rail__in { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 1.25rem; }
.admin-bar .rail__in { top: 132px; }
.rail__toc { background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: 0 12px 12px 0; padding: 1rem 1.1rem; max-height: calc(100vh - 380px); overflow: auto; }
.rail__toc a { padding: .35rem 0; }
.rail__apply { background: var(--forest); border-radius: 14px; padding: 1.25rem; color: var(--on-dark); }
.rail__apply p { margin: 0 0 .6rem; }
.rail__apply-title { font-size: 1.15rem; line-height: 1.25; font-weight: 800; color: #fff; }
.rail__apply-text { font-size: .88rem; }
.rail__apply-btn { display: block; text-align: center; background: #fff; color: var(--ink) !important; font-weight: 800; padding: .75rem; border-radius: 8px; text-decoration: none; }
.rail__apply-btn:hover { background: var(--mint); }
.rail__apply-phone { text-align: center; margin: 0 !important; } .rail__apply-phone a { color: #fff; font-size: .85rem; font-weight: 600; }
.rail-toc-mobile { display: none; }
@media (max-width: 1099px) {
	.rail-layout { grid-template-columns: minmax(0, 1fr); }
	.rail { display: none; }
	.rail-toc-mobile { display: block; margin-top: 2rem !important; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
	.rail-toc-mobile summary { cursor: pointer; padding: .9rem 1.1rem; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
	.rail-toc-mobile ol { list-style: none; margin: 0; padding: 0 1.1rem 1rem; display: grid; gap: .1rem; }
	.rail-toc-mobile a { display: block; padding: .35rem 0; font-size: .95rem; color: var(--soft); text-decoration: none; }
}
/* Contact page */
.contact-cards { margin-top: .5rem; gap: 1rem; }
.contact-cards .card { padding: 1.1rem 1.25rem; }
.contact-cards h3 { font-size: .78rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #6B7A72; margin: 0 0 .35rem !important; }
.contact-cards p { margin: 0 !important; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.contact-map iframe { display: block; width: 100%; min-height: 360px; border: 0; border-radius: 16px; }
.hero .form-card { text-align: left; }
/* Desktop header is not sticky, so the admin-bar offset must not push it down (left a gap above the logo when logged in). */
@media (min-width: 1100px) { .admin-bar .site-header { top: 0; } }
/* ---- Home page sections from the live site (v1.2.8) ---- */
.sec.sec--logos { padding-block: clamp(1.5rem, 3vw, 2.25rem); }
.logo-strip { display: flex; align-items: center; gap: 1rem 2.5rem; flex-wrap: wrap; justify-content: center; }
.logo-strip p { margin: 0; font-size: .85rem; font-weight: 600; color: var(--soft); }
.logo-strip ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2.5rem; }
.logo-strip img { display: block; height: 36px; width: auto; }
.two-col--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
@media (max-width: 1000px) { .two-col--even { grid-template-columns: 1fr; } }
.funded { background: var(--tint); border-radius: 16px; padding: clamp(1.25rem, 2.5vw, 2rem); display: flex; flex-direction: column; gap: 1.25rem; }
.funded > * { margin: 0 !important; }
.funded__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.funded__card { display: flex; flex-direction: column; gap: .2rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.1rem; }
.funded__card span { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green); }
.funded__card b { font-size: 1.8rem; line-height: 1.15; color: var(--ink); letter-spacing: -.02em; }
.funded__card small { font-size: .9rem; color: var(--muted); }
.card--feature { border-left: 4px solid var(--green); }
.card--feature p { margin: 0; max-width: 980px; }
.reviews .review { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 1.5rem; display: flex; flex-direction: column; gap: .75rem; }
.review__stars { margin: 0; color: #E8A317; letter-spacing: .15em; }
.review blockquote { margin: 0; color: var(--body); line-height: 1.6; }
.review figcaption { margin-top: auto; font-weight: 700; color: var(--ink); }
.sec__in > .wp-block-buttons { margin: 0; }
/* ---- QA fixes (v1.2.9) ---- */
/* Blog, category and search header: a full-width band, content left-aligned on the site grid. */
.blog > .blog-hero { max-width: none !important; margin-left: calc(-1 * var(--pad)) !important; margin-right: calc(-1 * var(--pad)) !important; }
.blog-hero > * { max-width: var(--max) !important; margin-left: auto !important; margin-right: auto !important; }
.blog-hero > .blog-search .wp-block-search__inside-wrapper { max-width: 420px; }
/* Plain pages (legal, sitemap, thank-you): left-aligned on the site grid like every other page, not a narrow centered column. */
.plain > * { max-width: var(--max) !important; margin-left: auto !important; margin-right: auto !important; }
.plain .wp-block-post-content > * { max-width: 820px; margin-left: 0 !important; margin-right: auto !important; }
.plain .wp-block-post-content > .grid, .plain .wp-block-post-content > .sitemap-list, .plain .wp-block-post-content > .alignwide { max-width: none; }
/* Hero apply box on program, industry and location pages: one clean panel. Heading first, key numbers as label/value rows, full-width button. */
.sec--hero .hero > .card:not(.quick-card) { display: flex; flex-direction: column; gap: 1rem; padding: clamp(1.5rem, 2.5vw, 2rem); border-top: 4px solid var(--green); }
.sec--hero .hero > .card:not(.quick-card) > * { margin: 0 !important; }
.sec--hero .hero > .card:not(.quick-card) > h3 { order: 1; font-size: 1.35rem; line-height: 1.25; }
.sec--hero .hero > .card:not(.quick-card) > p { order: 2; }
.sec--hero .hero > .card:not(.quick-card) > .stats, .sec--hero .hero > .card:not(.quick-card) > .wp-block-html { order: 3; }
.sec--hero .hero > .card:not(.quick-card) > .wp-block-buttons, .sec--hero .hero > .card:not(.quick-card) > .wp-block-shortcode { order: 4; }
.sec--hero .hero > .card:not(.quick-card) .stats { display: block !important; margin: 0 !important; border-top: 1px solid var(--line); }
.sec--hero .hero > .card:not(.quick-card) .stat { flex-direction: row-reverse; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .7rem 0 !important; background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.sec--hero .hero > .card:not(.quick-card) .stat b, .sec--hero .hero > .card:not(.quick-card) .stat .stat__value strong { font-size: 1rem !important; text-align: right; }
.sec--hero .hero > .card:not(.quick-card) .stat span, .sec--hero .hero > .card:not(.quick-card) .stat .stat__label { font-size: .7rem !important; white-space: nowrap; }
.sec--hero .hero > .card:not(.quick-card) .wp-block-button, .sec--hero .hero > .card:not(.quick-card) .wp-block-button__link { width: 100%; text-align: center; }
.sec--hero .hero > .card:not(.quick-card) .side-cta__btn { display: block; text-align: center; background: var(--green); color: #fff !important; padding: .9rem; }
/* Four-card grids inside the rail layout: tighter padding so titles fit the narrower column. */
.rail-main .grid--4 { gap: 1rem; } .rail-main .grid--4 > .card { padding: 1.25rem 1.1rem; } .rail-main .sec .grid--4 > .card h3 { font-size: 1.05rem; }
/* Footer contact details wrap on narrow phones (360px) instead of pushing past the edge. */
.site-footer__contact, .site-footer__contact a { overflow-wrap: anywhere; }
