/* CORAFTER Phase 4 — editorial blog presentation, relevant local graphics, and consistent image framing. */
.blog-page-hero,.page-hero:has(.floating-panel){overflow:hidden}
.featured-post{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);border-radius:28px;border-color:#dce6f5;box-shadow:0 24px 70px rgba(7,27,69,.09)}
.featured-media{display:block;min-width:0;min-height:0;aspect-ratio:4/3;overflow:hidden;background:#eaf1ff}
.featured-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .5s ease}
.featured-post:hover .featured-media img{transform:scale(1.025)}
.featured-copy{min-width:0;padding:clamp(24px,4vw,48px)}
.featured-copy .project-category{display:inline-flex;align-self:flex-start;padding:7px 11px;border-radius:999px;background:#edf3ff;color:#155eef;font-size:11px;font-weight:800;letter-spacing:.03em}
.featured-copy h2{margin:12px 0 10px;line-height:1.12;letter-spacing:-.035em}
.featured-copy p{color:#687895}
.blog-toolbar{align-items:flex-start;flex-wrap:wrap;padding:17px;border:1px solid #e2eaf7;border-radius:20px;background:rgba(255,255,255,.88);box-shadow:0 8px 28px rgba(7,27,69,.035)}
.blog-cats{flex:1;min-width:0;gap:7px}
.blog-cats .filter-btn{border:1px solid #dce6f5;border-radius:999px;padding:9px 13px;background:#fff;color:#536481;font:700 12px Inter,sans-serif;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.blog-cats .filter-btn:hover{border-color:#a9c5ff;transform:translateY(-1px)}
.blog-cats .filter-btn.active{background:#155eef;border-color:#155eef;color:#fff;box-shadow:0 7px 18px rgba(21,94,239,.18)}
.blog-search{min-width:min(270px,100%);border-radius:999px;background:#f8faff;border-color:#dce6f5}
.blog-search:focus-within{border-color:#8db0ff;box-shadow:0 0 0 4px rgba(21,94,239,.08)}
.blog-results-count{margin:0 0 16px;color:#7785a0;font-size:12px;font-weight:700}
.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px}
.blog-card{min-width:0;height:100%;border-radius:22px;border-color:#dce6f5;box-shadow:0 12px 32px rgba(7,27,69,.055);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.blog-card:hover{transform:translateY(-5px);border-color:#c7d8fb;box-shadow:0 20px 45px rgba(7,27,69,.11)}
.blog-media{position:relative;display:block;width:100%;height:auto;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#eaf2ff,#f3efff)}
.blog-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .45s ease}
.blog-card:hover .blog-media img{transform:scale(1.035)}
.blog-card-body{padding:22px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.blog-card .post-meta{width:100%;justify-content:space-between;gap:8px;margin:0 0 12px;font-size:11px}
.blog-card .post-meta span:first-child{color:#155eef}
.blog-card h3{font-size:clamp(17px,1.45vw,20px);line-height:1.32;letter-spacing:-.025em;margin:0 0 10px}
.blog-card p{color:#687895;font-size:13px;line-height:1.75;margin:0 0 17px}
.blog-card .text-link{margin-top:auto;padding-top:2px;color:#155eef;font-size:12px;font-weight:800;text-decoration:none}
.blog-card .text-link:hover{text-decoration:underline;text-underline-offset:4px}
.article-hero{position:relative;overflow:hidden;padding:145px 0 92px;background:radial-gradient(circle at 85% 20%,rgba(85,142,255,.3),transparent 28%),linear-gradient(125deg,#071b45,#123b91 62%,#155eef)}
.article-hero:after{content:"";position:absolute;inset:auto -5% -80px;height:120px;border-radius:50% 50% 0 0/50% 50% 0 0;background:#fff;pointer-events:none}
.article-head{position:relative;z-index:1}
.article-head .eyebrow{display:inline-block;padding:8px 13px;border:1px solid rgba(203,222,255,.3);border-radius:999px;background:rgba(255,255,255,.08);color:#c8ddff}
.article-head h1{max-width:1000px;font-size:clamp(34px,5vw,62px);line-height:1.08;letter-spacing:-.045em}
.article-layout{grid-template-columns:minmax(0, min(800px, 1fr)) minmax(250px,320px);gap:42px;align-items:start}
.article-content{min-width:0}
.article-cover-wrap{margin:0 0 34px;padding:12px;border:1px solid #dce6f5;border-radius:26px;background:#fff;box-shadow:0 18px 45px rgba(7,27,69,.09)}
.article-cover{display:block;width:100%;height:auto;max-height:none;aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:17px;background:#edf3ff}
.article-cover-wrap figcaption{padding:10px 6px 1px;color:#71809b;font-size:11px;font-weight:700}
.article-body{color:#33415e;font-size:16px;line-height:1.9;overflow-wrap:anywhere}
.article-body h2{margin-top:2.2em;color:#0b1736;font-size:clamp(24px,3vw,32px);line-height:1.25;letter-spacing:-.03em}
.article-body h3{margin-top:1.7em;color:#0b1736;font-size:21px;line-height:1.35}
.article-body p{margin:0 0 1.25em}
.article-body ul,.article-body ol{padding-left:1.5em}
.article-body li{margin:.45em 0}
.article-aside{position:sticky;top:110px;min-width:0}
.article-aside .aside-card{border-radius:22px;border-color:#dce6f5;box-shadow:0 12px 32px rgba(7,27,69,.06)}
.article-aside .aside-card:first-child{background:linear-gradient(145deg,#f0f6ff,#f7f4ff)}
.article-tags span{border:1px solid #dce6f5;border-radius:999px;background:#f7f9ff;padding:7px 11px;color:#536481;font-size:11px;font-weight:700}
.article-lead-box{border-radius:24px;background:linear-gradient(135deg,#eff5ff,#f6f2ff);border:1px solid #dce6f5}
.empty-state{padding:35px;border:1px dashed #cbd8ef;border-radius:20px;text-align:center;color:#687895;background:#f8faff}
@media(max-width:1050px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:minmax(0,1fr) 270px;gap:26px}.featured-copy{padding:28px}}
@media(max-width:760px){.featured-post{grid-template-columns:1fr;margin-bottom:34px}.featured-media{aspect-ratio:16/10}.featured-copy{padding:24px}.featured-copy h2{font-size:30px}.blog-toolbar{padding:12px}.blog-cats{flex-wrap:nowrap;overflow-x:auto;padding:2px 1px 8px;scrollbar-width:thin}.blog-cats .filter-btn{flex:0 0 auto}.blog-search{width:100%;min-width:0}.blog-grid{gap:16px}.blog-card-body{padding:17px}.article-hero{padding:125px 0 76px}.article-layout{grid-template-columns:1fr}.article-aside{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.article-cover-wrap{padding:7px;border-radius:18px}.article-cover{border-radius:12px}.article-body{font-size:15px}}
@media(max-width:520px){.blog-grid{grid-template-columns:1fr}.blog-media{aspect-ratio:16/9}.blog-card h3{font-size:19px}.blog-card-body{padding:19px}.article-head h1{font-size:clamp(32px,9vw,42px)}.article-aside{grid-template-columns:1fr}.article-hero:after{height:80px;bottom:-55px}.article-cover{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.featured-media img,.blog-media img,.blog-card,.blog-cats .filter-btn{transition:none!important}}
