/* ACE Blog 1.0.0 — all rules stay inside .aceb. No external fonts or JS. */
.aceb { --aceb-green:#229821; --aceb-ink:#142b22; --aceb-muted:#5c6861; --aceb-line:#e0e6df; --aceb-paper:#f7f9f5; background:#fff; color:var(--aceb-ink); font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; width:100%; text-align:left; }
.aceb *, .aceb *::before, .aceb *::after { box-sizing:border-box; }
.aceb :is(h1,h2,h3,p,figure) { margin:0; padding:0; font-family:inherit; color:inherit; text-transform:none; }
.aceb a { color:inherit; text-decoration:none; box-shadow:none; }
.aceb a::before, .aceb a::after { background:none; }
.aceb button, .aceb input, .aceb select { font:inherit; letter-spacing:normal; text-transform:none; }
.aceb img { display:block; max-width:100%; border:0; box-shadow:none; }
.aceb a:focus-visible, .aceb button:focus-visible, .aceb input:focus-visible, .aceb select:focus-visible { outline:3px solid #229821; outline-offset:5px; }
.aceb .aceb-wrap { width:min(1200px,100%); margin-inline:auto; padding:64px 24px 72px; }
.aceb .aceb-hero { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:56px; padding:16px 0 64px; border-bottom:1px solid var(--aceb-line); }
.aceb .aceb-hero-text-only { grid-template-columns:1fr; max-width:850px; }
.aceb .aceb-eyebrow { font-size:11px; font-weight:750; line-height:1.5; letter-spacing:.15em; color:#4b6253; }
.aceb .aceb-hero-copy > .aceb-eyebrow { display:flex; gap:10px; align-items:center; margin-bottom:22px; }
.aceb .aceb-eyebrow > span { width:8px; height:8px; border-radius:50%; background:var(--aceb-green); flex:none; }
.aceb h1.aceb-heading { font-size:clamp(38px,4.5vw,64px); font-weight:760; line-height:1.06; letter-spacing:-.055em; max-width:560px; margin-bottom:24px; }
.aceb .aceb-intro { font-size:17px; line-height:1.75; color:var(--aceb-muted); max-width:475px; }
.aceb .aceb-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:26px; margin-top:28px; }
.aceb .aceb-button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:50px; padding:13px 20px; border:1px solid transparent; border-radius:7px; font-size:14px; line-height:1.4; font-weight:700; cursor:pointer; transition:transform .18s,box-shadow .18s; white-space:normal; }
.aceb .aceb-button-dark { background:#142b22; color:#fff; }
.aceb .aceb-button-dark:hover { background:#142b22; color:#fff; transform:translateY(-2px); box-shadow:0 6px 16px #142b221f; }
.aceb .aceb-button-green { background:#229821; color:#071d09; }
.aceb .aceb-button-green:hover { background:#229821; color:#071d09; transform:translateY(-2px); }
.aceb .aceb-text-link { font-size:14px; font-weight:650; padding-block:12px; }
.aceb .aceb-text-link span { margin-left:10px; }
.aceb .aceb-text-link:hover, .aceb .aceb-reset:hover, .aceb .aceb-phone:hover { text-decoration:underline; text-underline-offset:4px; }
.aceb .aceb-local { margin-top:30px; font-size:10px; letter-spacing:.12em; color:#69736a; font-weight:650; }
.aceb .aceb-hero-media { position:relative; min-width:0; overflow:hidden; border-radius:12px; background:#eef3ea; }
.aceb .aceb-hero-media > img { width:100%; height:420px; object-fit:cover; }
.aceb .aceb-hero-caption { position:absolute; bottom:18px; left:18px; right:18px; display:flex; align-items:center; gap:9px; padding:15px 18px; border-radius:6px; color:#142b22; background:#fffffff5; font-size:13px; font-weight:650; }
.aceb .aceb-caption-dot { width:7px; height:7px; flex:none; border-radius:50%; background:var(--aceb-green); }
.aceb .aceb-library { padding-top:48px; scroll-margin-top:110px; }
.aceb .aceb-section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:24px; }
.aceb .aceb-section-heading .aceb-eyebrow { font-size:10px; margin-bottom:9px; }
.aceb h2.aceb-section-title { font-size:32px; line-height:1.2; font-weight:720; letter-spacing:-.04em; }
.aceb .aceb-total { font-size:13px; color:var(--aceb-muted); white-space:nowrap; padding-bottom:3px; }
.aceb .aceb-filters { display:flex; gap:12px; align-items:center; margin:0 0 28px; padding:0; border:0; }
.aceb .aceb-search { position:relative; flex:1; min-width:120px; margin:0; }
.aceb .aceb-search svg { position:absolute; width:20px; height:20px; left:16px; top:50%; transform:translateY(-50%); stroke:#5c6861; stroke-width:1.7; pointer-events:none; }
.aceb .aceb-search input { display:block; width:100%; height:52px; min-height:52px; margin:0; padding:12px 16px 12px 46px; background:#f7f9f5; color:#142b22; border:1px solid #e0e6df; border-radius:7px; box-shadow:none; font-size:14px; line-height:1.5; }
.aceb .aceb-search input::placeholder { color:#68756b; opacity:1; }
.aceb .aceb-topic { flex:0 1 220px; min-width:140px; margin:0; }
.aceb .aceb-topic select { width:100%; height:52px; border:1px solid #e0e6df; border-radius:7px; color:#142b22; background:#fff; padding:10px 32px 10px 14px; box-shadow:none; font-size:14px; appearance:auto; }
.aceb .aceb-filters .aceb-button { min-height:52px; min-width:120px; }
.aceb .aceb-reset { font-size:13px; padding:10px 0; white-space:nowrap; }
.aceb .aceb-filter-note { color:var(--aceb-muted); font-size:14px; margin:-8px 0 24px; overflow-wrap:anywhere; }
.aceb .aceb-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.aceb .aceb-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; margin:0; border:1px solid var(--aceb-line); border-radius:10px; background:#fff; transition:box-shadow .2s,transform .2s; }
.aceb .aceb-card:hover { box-shadow:0 12px 30px #142b220d; transform:translateY(-3px); }
.aceb .aceb-card-media { display:block; flex:none; aspect-ratio:16/10; overflow:hidden; background:#edf3e9; }
.aceb .aceb-card-image { width:100%; height:100%; object-fit:cover; border-radius:0; transition:transform .35s; }
.aceb .aceb-card:hover .aceb-card-image { transform:scale(1.025); }
.aceb .aceb-card-body { display:flex; flex:1; flex-direction:column; align-items:stretch; padding:22px; }
.aceb .aceb-card-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:10px; line-height:1.4; color:#647067; margin-bottom:15px; }
.aceb .aceb-badge { padding:5px 8px; background:#edf5e9; color:#315532; border-radius:4px; font-size:10px; font-weight:700; }
.aceb h3.aceb-card-title { margin:0 0 13px; font-size:21px; font-weight:720; line-height:1.32; letter-spacing:-.025em; }
.aceb .aceb-card-title a { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; color:#142b22; }
.aceb .aceb-card-title a:hover { color:#142b22; text-decoration:underline; text-decoration-color:#229821; text-decoration-thickness:2px; text-underline-offset:4px; }
.aceb .aceb-card-excerpt { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; margin:0 0 22px; color:#5c6861; font-size:13px; line-height:1.75; }
.aceb .aceb-read { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:16px; border-top:1px solid #e9ede7; margin-top:auto; font-size:12px; font-weight:700; }
.aceb .aceb-read span { font-size:19px; line-height:1; color:#142b22; }
.aceb .aceb-read:hover { color:#142b22; text-decoration:underline; text-underline-offset:4px; }
.aceb .aceb-image-placeholder { display:flex; width:100%; height:100%; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:#426447; background:linear-gradient(135deg,#edf5e7,#e2eddf); }
.aceb .aceb-image-placeholder svg { width:90px; height:65px; }
.aceb .aceb-image-placeholder > span { font-size:9px; font-weight:700; letter-spacing:.17em; }
.aceb .aceb-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin-top:36px; }
.aceb .aceb-page { display:inline-flex; align-items:center; justify-content:center; min-width:42px; min-height:44px; padding:8px 12px; border:1px solid #e0e6df; border-radius:6px; font-size:13px; line-height:1.5; font-weight:650; }
.aceb .aceb-page-current, .aceb .aceb-page:hover { background:#142b22; color:#fff; border-color:#142b22; }
.aceb .aceb-page-gap { padding:8px 2px; }
.aceb .aceb-page-word { gap:8px; }
.aceb .aceb-empty { padding:64px 24px; background:#f7f9f5; border:1px solid #e0e6df; border-radius:10px; text-align:center; }
.aceb .aceb-empty h3 { font-size:26px; line-height:1.3; font-weight:700; margin-bottom:12px; }
.aceb .aceb-empty p { margin-bottom:22px; color:#5c6861; }
.aceb .aceb-cta { display:flex; align-items:center; justify-content:space-between; gap:36px; margin-top:56px; padding:38px; border-radius:10px; background:#142b22; color:#fff; }
.aceb .aceb-cta .aceb-eyebrow { color:#d0e4c8; margin-bottom:12px; font-size:10px; }
.aceb .aceb-cta h2 { font-size:30px; line-height:1.2; font-weight:700; letter-spacing:-.035em; margin:0 0 12px; color:#fff; }
.aceb .aceb-cta p:not(.aceb-eyebrow) { font-size:13px; line-height:1.8; color:#c9d4cc; max-width:480px; }
.aceb .aceb-cta-actions { display:flex; flex-direction:column; align-items:center; gap:12px; flex:none; }
.aceb .aceb-phone { font-size:12px; color:#e6ede8; padding:7px 0; }
.aceb .aceb-sr { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media (max-width:960px) {
 .aceb .aceb-wrap { padding-top:40px; }
 .aceb .aceb-hero { gap:30px; padding-bottom:42px; }
 .aceb .aceb-hero-media > img { height:380px; }
 .aceb .aceb-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .aceb .aceb-filters { flex-wrap:wrap; }
 .aceb .aceb-reset { padding-inline:6px; }
 .aceb .aceb-cta { padding:30px; gap:24px; }
 .aceb .aceb-cta h2 { font-size:26px; }
}
@media (max-width:640px) {
 .aceb .aceb-wrap { padding:28px 18px 40px; }
 .aceb .aceb-hero { grid-template-columns:1fr; gap:28px; padding:0 0 32px; }
 .aceb h1.aceb-heading { font-size:44px; max-width:420px; margin-bottom:18px; }
 .aceb .aceb-intro { font-size:15px; }
 .aceb .aceb-hero-copy > .aceb-eyebrow { margin-bottom:16px; }
 .aceb .aceb-hero-actions { gap:20px; margin-top:22px; }
 .aceb .aceb-local { margin-top:20px; font-size:9px; }
 .aceb .aceb-hero-media > img { height:260px; }
 .aceb .aceb-hero-caption { bottom:12px; left:12px; right:12px; padding:12px; font-size:12px; }
 .aceb .aceb-library { padding-top:32px; }
 .aceb .aceb-section-heading { align-items:center; gap:12px; }
 .aceb h2.aceb-section-title { font-size:26px; }
 .aceb .aceb-section-heading .aceb-eyebrow { font-size:8px; }
 .aceb .aceb-total { font-size:11px; }
 .aceb .aceb-filters { gap:10px; }
 .aceb .aceb-search { flex-basis:100%; }
 .aceb .aceb-topic { flex:1; }
 .aceb .aceb-filters > .aceb-button { flex:1; }
 .aceb .aceb-grid { grid-template-columns:1fr; gap:22px; }
 .aceb .aceb-card-body { padding:22px; }
 .aceb h3.aceb-card-title { font-size:22px; }
 .aceb .aceb-card-excerpt { font-size:14px; }
 .aceb .aceb-cta { flex-direction:column; align-items:start; gap:24px; margin-top:32px; padding:28px 24px; }
 .aceb .aceb-cta-actions { align-items:start; width:100%; }
 .aceb .aceb-cta-actions .aceb-button { width:100%; }
 .aceb .aceb-cta h2 { font-size:28px; }
 .aceb .aceb-pagination { gap:6px; }
 .aceb .aceb-page { min-width:36px; padding-inline:10px; }
 .aceb .aceb-page-word { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) {
 .aceb *, .aceb *::before, .aceb *::after { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
}
