/* ConstruBIM — Daily BIM News cards (home + blog archive). Loaded after theme-apple.css. */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media(max-width:900px){ .news-grid{ grid-template-columns:1fr; } }
.news-card{ display:flex; flex-direction:column; background:#fff; border:1px solid #d2d2d7; border-radius:16px; overflow:hidden; text-decoration:none; color:inherit; transition:transform .2s ease, box-shadow .2s ease; }
.news-card:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -22px rgba(0,0,0,.35); }
.news-card-media{ aspect-ratio:16/9; background:#f5f5f7; overflow:hidden; }
.news-card-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.news-card-body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.news-meta{ font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:#86868b; display:flex; gap:12px; flex-wrap:wrap; margin:0 0 10px; }
.news-meta .on{ color:#0066CC; }
.news-card h3{ font-size:19px; line-height:1.2; letter-spacing:-.2px; margin:0 0 8px; color:#1d1d1f; font-weight:600; }
.news-card p{ font-size:14.5px; line-height:1.55; color:#6e6e73; margin:0 0 16px; }
.news-card .news-go{ margin-top:auto; color:#0066CC; font-weight:600; font-size:14.5px; }
.news-tags{ display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.news-tags span{ font-size:11px; letter-spacing:.04em; color:#6e6e73; background:#f5f5f7; border-radius:999px; padding:4px 9px; }
/* Archive (blog.html) */
.news-archive{ display:flex; flex-direction:column; gap:36px; }
.news-day{ }
.news-day-h{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#0066CC; margin:0 0 14px; padding-top:18px; border-top:1px solid #d2d2d7; }
.news-empty{ color:#86868b; font-size:15px; }
/* Archive tools (search + topic pills) */
.news-tools{ display:flex; flex-direction:column; gap:14px; margin:0 0 30px; padding:18px 20px; background:#fff; border:1px solid #d2d2d7; border-radius:16px; }
.news-tools-row{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.news-tools input[type=search]{ flex:1 1 320px; font:inherit; font-size:15px; padding:11px 14px; border:1px solid #d2d2d7; border-radius:9px; background:#f5f5f7; color:#1d1d1f; outline:none; }
.news-tools input[type=search]:focus{ border-color:#0066CC; background:#fff; }
.news-count{ font-size:13px; color:#6e6e73; white-space:nowrap; }
.news-count b{ color:#0066CC; font-weight:600; }
.news-pills{ display:flex; gap:7px; flex-wrap:wrap; }
.news-pill{ font:inherit; font-size:12.5px; font-weight:500; cursor:pointer; padding:6px 11px; border-radius:7px; background:#fff; color:#6e6e73; border:1px solid #d2d2d7; }
.news-pill i{ font-style:normal; color:#86868b; margin-left:3px; }
.news-pill:hover{ border-color:#1d1d1f; color:#1d1d1f; }
.news-pill.active{ background:#1d1d1f; color:#fff; border-color:#1d1d1f; }
.news-pill.active i{ color:#bbb; }
.news-month{ margin:0; }
.news-month-h{ font-size:clamp(20px,2.4vw,26px); font-weight:600; letter-spacing:-.02em; color:#1d1d1f; margin:0 0 6px; }
.news-day-h{ font-weight:600; }
.news-more{ text-align:center; padding:26px 0 6px; }
.news-link{ font:inherit; color:#0066CC; background:none; border:0; cursor:pointer; text-decoration:underline; }

/* ===== News portal front page (index.html #news, news.html) ===== */
.np-mast{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; border-bottom:1px solid #d2d2d7; padding-bottom:16px; margin:0 0 26px; }
.np-mast-title{ font-weight:600; font-size:clamp(30px,4.4vw,48px); letter-spacing:-.02em; line-height:1; color:#1d1d1f; margin:0; }
.np-mast-title a{ color:inherit; text-decoration:none; }
.np-mast-meta{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#6e6e73; display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.np-mast-meta a{ color:#1d1d1f; text-decoration:none; font-weight:600; }
.np-mast-meta a:hover{ color:#0066CC; }
.np-topics{ display:flex; gap:18px; flex-wrap:wrap; font-size:13px; font-weight:600; border-bottom:1px solid #d2d2d7; padding:0 0 12px; margin:-8px 0 24px; }
.np-topics a{ color:#1d1d1f; text-decoration:none; }
.np-topics a:hover{ color:#0066CC; }
.np-front{ display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,.8fr); gap:0; }
.np-front > *{ padding:0 24px; border-left:1px solid #d2d2d7; }
.np-front > *:first-child{ padding-left:0; border-left:0; }
.np-front > *:last-child{ padding-right:0; }
.np-h{ font-weight:600; color:#1d1d1f; margin:0; letter-spacing:-.02em; }
.np-h a{ color:inherit; text-decoration:none; }
.np-h a:hover{ color:#0066CC; }
.np-h1{ font-size:clamp(26px,3vw,38px); line-height:1.1; margin:0 0 12px; }
.np-h2{ font-size:20px; line-height:1.18; margin:0 0 8px; }
.np-h3{ font-size:16.5px; line-height:1.22; margin:0 0 6px; }
.np-kicker{ font-size:11.5px; font-weight:400; letter-spacing:.14em; color:#0066CC; margin:0 0 8px; }
.np-dek{ font-size:16px; line-height:1.55; color:#6e6e73; margin:0 0 10px; }
.np-dek.sm{ font-size:14px; line-height:1.5; color:#6e6e73; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.np-by{ font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:#86868b; }
.np-lead-media{ display:block; aspect-ratio:16/9; overflow:hidden; background:#f5f5f7; margin:0 0 16px; border-radius:14px; }
.np-lead-media img,.np-second-media img,.np-compact-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.np-second{ padding:0 0 20px; margin:0 0 20px; border-bottom:1px solid #d2d2d7; }
.np-second:last-child{ border-bottom:0; margin-bottom:0; padding-bottom:0; }
.np-second-media{ display:block; aspect-ratio:16/9; overflow:hidden; background:#f5f5f7; margin:0 0 12px; border-radius:12px; }
.np-rail-h,.np-more-h{ font-size:12px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; color:#0066CC; border-top:1px solid #d2d2d7; padding-top:12px; margin:0 0 6px; }
.np-rail ol{ list-style:none; margin:0; padding:0; }
.np-rail li{ border-bottom:1px solid #e8e8ed; }
.np-rail li a{ display:block; padding:12px 0; text-decoration:none; color:inherit; }
.np-rail-date{ display:block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:#86868b; margin-bottom:4px; }
.np-rail-t{ font-weight:600; font-size:15px; line-height:1.3; letter-spacing:-.01em; color:#1d1d1f; }
.np-rail li a:hover .np-rail-t{ color:#0066CC; }
.np-rail-all{ display:inline-block; margin-top:14px; font-size:13.5px; font-weight:600; color:#0066CC; text-decoration:none; }
.np-more-h{ margin-top:34px; }
.np-more{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-top:10px; }
.np-compact a{ text-decoration:none; color:inherit; display:block; }
.np-compact-media{ aspect-ratio:3/2; overflow:hidden; background:#f5f5f7; margin:0 0 10px; border-radius:12px; }
.np-compact a:hover .np-h3{ color:#0066CC; }
.np-sections{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:12px; }
.np-section h3{ font-size:12px; font-weight:400; letter-spacing:.14em; text-transform:uppercase; border-top:1px solid #d2d2d7; padding-top:12px; margin:0 0 4px; color:#0066CC; }
.np-section ul{ list-style:none; margin:0; padding:0; }
.np-section li{ border-bottom:1px solid #e8e8ed; }
.np-section li a{ display:block; padding:11px 0; text-decoration:none; color:inherit; }
.np-section li a:hover .np-rail-t{ color:#0066CC; }
@media (max-width:1020px){
  .np-front{ grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
  .np-rail{ grid-column:1/-1; border-left:0 !important; padding:26px 0 0 !important; }
  .np-rail ol{ display:grid; grid-template-columns:1fr 1fr; column-gap:28px; }
  .np-more{ grid-template-columns:1fr 1fr; } .np-sections{ grid-template-columns:1fr 1fr; }
}
@media (max-width:700px){
  .np-front{ grid-template-columns:1fr; }
  .np-front > *{ padding:0 !important; border-left:0; }
  .np-col-second{ border-top:1px solid #d2d2d7; margin-top:22px; padding-top:22px !important; }
  .np-rail ol{ grid-template-columns:1fr; } .np-sections{ grid-template-columns:1fr; }
}
