.public-blog-page,
.public-blog-article { padding: clamp(36px, 7vw, 88px) 20px 96px; color: #15312e; background: #f6f8f5; }
.public-blog-shell,
.public-blog-article-shell { width: min(1120px, 100%); margin: 0 auto; }
.public-blog-heading { max-width: 760px; margin: 48px auto 54px; text-align: center; }
.public-blog-heading h1 { margin: 14px 0; color: #142f2c; font-size: clamp(2.8rem, 7vw, 5.4rem); font-weight: 800; letter-spacing: -.065em; line-height: .98; }
.public-blog-heading h1 em { color: #13825d; font-family: Georgia, serif; font-weight: 500; }
.public-blog-heading p { max-width: 610px; margin: 20px auto 0; color: #667a73; font-size: clamp(1rem, 2vw, 1.16rem); line-height: 1.7; }
.public-blog-search { width: min(620px, 100%); margin: 0 auto 38px; }
.public-blog-search > label { display: block; margin-bottom: 9px; color: #28483e; font-size: .82rem; font-weight: 750; }
.public-blog-search-control { position: relative; display: flex; min-height: 58px; align-items: center; gap: 12px; padding: 0 17px; border: 1px solid #dce8df; border-radius: 17px; background: #fff; box-shadow: 0 14px 35px #173c2c0a; transition: border-color .2s ease, box-shadow .2s ease; }
.public-blog-search-control:focus-within { border-color: #72b79b; box-shadow: 0 0 0 4px #13825d16, 0 14px 35px #173c2c0a; }
.public-blog-search-icon { color: #13825d; font-size: 1.55rem; line-height: 1; transform: rotate(-20deg); }
.public-blog-search-control input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; background: transparent; color: #183630; font: inherit; font-size: .96rem; }
.public-blog-search-control input::placeholder { color: #91a099; }
.public-blog-search-control [data-blog-search-clear],
.public-blog-search-control [data-news-search-clear] { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #eef5f0; color: #45675a; font-size: 1.25rem; }
.public-blog-search-control [data-blog-search-clear][hidden],
.public-blog-search-control [data-news-search-clear][hidden] { display: none; }
.public-blog-search-status { min-height: 1.2em; margin: 9px 3px 0; color: #76877f; font-size: .8rem; }
.public-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.public-blog-card { overflow: hidden; border: 1px solid #e0e9e2; border-radius: 22px; background: #fff; box-shadow: 0 16px 40px #173c2c0a; transition: transform .22s ease, box-shadow .22s ease; }
.public-blog-card:hover { transform: translateY(-5px); box-shadow: 0 24px 50px #173c2c16; }
.public-blog-card-link { display: flex; height: 100%; flex-direction: column; color: inherit; text-decoration: none; }
.public-blog-card-image,
.public-blog-card-art { display: grid; width: 100%; height: 218px; flex: 0 0 218px; place-items: center; object-fit: cover; background: linear-gradient(135deg, #d5eddf, #f0f7eb 58%, #cae6dc); color: #17835e; font-size: 3rem; }
.public-blog-card-copy { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.public-blog-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #71847c; font-size: .73rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.public-blog-card-meta > span { color: #13825d; }
.public-blog-card h2 { margin: 18px 0 10px; color: #183630; font-size: 1.3rem; font-weight: 750; letter-spacing: -.025em; line-height: 1.25; }
.public-blog-card-copy > p { margin: 0 0 24px; color: #687d75; font-size: .94rem; line-height: 1.65; }
.public-blog-read { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 15px; border-top: 1px solid #edf1ed; color: #13825d; font-size: .85rem; font-weight: 750; }
.public-blog-empty { max-width: 540px; margin: 0 auto; padding: 54px 24px; border: 1px dashed #c8d9cf; border-radius: 24px; text-align: center; }
.public-blog-empty > span { display: grid; width: 58px; height: 58px; margin: 0 auto 17px; place-items: center; border-radius: 18px; background: #e3f2e8; color: #13825d; font-size: 1.35rem; }
.public-blog-empty h2 { color: #193d32; font-size: 1.35rem; }
.public-blog-empty p { margin-bottom: 0; color: #687d75; }
.public-blog-load-wrap { margin: 38px auto 0; text-align: center; }
.public-blog-load { display: inline-flex; min-height: 50px; align-items: center; gap: 11px; padding: 0 25px; border: 0; border-radius: 999px; background: #167c58; color: #fff; font-weight: 750; box-shadow: 0 10px 24px #167c5830; transition: background .2s ease, transform .2s ease; }
.public-blog-load:hover { transform: translateY(-2px); background: #116847; }
.public-blog-load:disabled { cursor: wait; }
.public-blog-load-spinner { display: none; width: 16px; height: 16px; border: 2px solid #ffffff66; border-top-color: #fff; border-radius: 50%; animation: public-blog-spin .7s linear infinite; }
.public-blog-load.is-loading .public-blog-load-spinner { display: block; }
.public-blog-load-error { margin: 12px 0 0; color: #a23535; font-size: .9rem; }
@keyframes public-blog-spin { to { transform: rotate(360deg); } }
.public-blog-article-shell { width: min(850px, 100%); }
.public-blog-article-heading { margin: 45px 0 32px; }
.public-blog-article-heading .public-blog-card-meta { justify-content: flex-start; }
.public-blog-article-heading h1 { margin: 18px 0; color: #183630; font-size: clamp(2.4rem, 6vw, 4.6rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.04; }
.public-blog-article-heading > p { color: #687d75; font-size: 1.15rem; line-height: 1.7; }
.public-blog-hero-image { display: block; width: 100%; max-height: 510px; margin: 0 0 40px; border-radius: 24px; object-fit: cover; }
.public-blog-article-body { color: #304b43; font-size: 1.08rem; line-height: 1.9; overflow-wrap: anywhere; }
.public-blog-article-body > * + * { margin-top: 1.2em; }
.public-blog-article-body h2,
.public-blog-article-body h3,
.public-blog-article-body h4 { color: #183630; font-weight: 750; line-height: 1.25; }
.public-blog-article-body a { color: #117c56; text-decoration: underline; text-underline-offset: 3px; }
.public-blog-article-body blockquote { margin-left: 0; padding: 7px 0 7px 22px; border-left: 3px solid #13825d; color: #557167; }
.public-blog-back-link { display: inline-block; margin-top: 42px; color: #13825d; font-weight: 750; text-decoration: none; }
@media (max-width: 900px) { .public-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .public-blog-page, .public-blog-article { padding: 26px 16px 68px; }
    .public-blog-heading { margin: 38px auto 36px; }
    .public-blog-search { margin-bottom: 25px; }
    .public-blog-grid { grid-template-columns: 1fr; gap: 16px; }
    .public-blog-card-image, .public-blog-card-art { height: 200px; flex-basis: 200px; }
    .public-blog-article-heading { margin-top: 36px; }
    .public-blog-article-heading h1 { font-size: clamp(2.2rem, 11vw, 3.3rem); }
}
