.ps-wrap { max-width:1200px; margin:0 auto; padding:24px; }
.ps-hero { max-width:1200px; margin:32px auto 0; padding:0 24px; }
.ps-filter { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.ps-filter select, .ps-filter input[type=search] { padding:8px 10px; border:1px solid #e5e7eb; border-radius:8px; }
.ps-filter button { padding:8px 14px; border:0; background:#2563EB; color:#fff; border-radius:8px; cursor:pointer; }
.ps-filter .reset { padding:8px 10px; color:#64748b; }

.ps-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:24px; }
.ps-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 4px 18px rgba(0,0,0,.06); display:flex; flex-direction:column; }
.ps-card .thumb { position:relative; display:block; }
.ps-card img { width:100%; height:auto; display:block; }
.ps-card .badge { position:absolute; top:12px; left:12px; background:#2563EB; color:#fff; padding:6px 10px; border-radius:999px; font-size:12px; }
.ps-card.commercial .badge { background:#F59E0B; }
.ps-card.industrial .badge { background:#2563EB; }
.ps-card.residential .badge { background:#10B981; }
.ps-card .content { padding:16px; display:flex; flex-direction:column; gap:8px; }
.ps-card .title { font-size:18px; margin:0; }
.ps-card .excerpt { color:#6b7280; margin:0; }
.ps-card .meta { list-style:none; padding:0; margin:8px 0 0; display:flex; flex-wrap:wrap; gap:12px; color:#475569; font-size:14px; }
.ps-card .btn { margin-top:10px; display:inline-block; padding:8px 12px; border:1px solid #e5e7eb; border-radius:8px; text-decoration:none; color:#111827; }

.ps-pagination ul { display:flex; gap:8px; list-style:none; padding:0; margin:24px 0 0; }
.ps-pagination a, .ps-pagination span { padding:8px 12px; border:1px solid #e5e7eb; border-radius:8px; }

.ps-single .hero .media { position:relative; max-width:1200px; margin:0 auto; }
.ps-single .hero .badge { position:absolute; top:16px; left:16px; padding:6px 10px; border-radius:999px; background:#2563EB; color:#fff; }
.ps-single .title-wrap { max-width:1200px; margin:16px auto; padding:0 24px; }
.ps-single .meta-inline { display:flex; gap:12px; color:#475569; }

.ps-single .content-area { max-width:1200px; margin:24px auto; padding:0 24px; display:grid; grid-template-columns:2fr 1fr; gap:32px; }
.ps-single .key-facts ul { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.ps-single .gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; margin-top:16px; }

.ps-single .related { max-width:1200px; margin:24px auto; padding:0 24px; }
/* Slider area */
.ps-slider-wrap { max-width:1200px; margin:0 auto; padding:0 24px; }
.ps-slider { position:relative; border-radius:14px; overflow:hidden; }
.ps-slider .swiper-slide { position:relative; aspect-ratio:4/3; }
.ps-slider img { width:100%; height:100%; object-fit:cover; display:block; }
.ps-slider .badge { position:absolute; top:16px; left:16px; padding:6px 10px; border-radius:999px; background:#2563EB; color:#fff; z-index:5; }
.ps-slider .badge.commercial { background:#F59E0B; }
.ps-slider .badge.industrial { background:#2563EB; }
.ps-slider .badge.residential { background:#10B981; }

.ps-slider .slide-caption {
  position:absolute; left:16px; bottom:16px;
  background:rgba(0,0,0,.55); color:#fff;
  padding:10px 12px; border-radius:10px; max-width:75%;
}
.ps-slider .slide-caption .proj-name { margin:0 0 6px; font-size:20px; line-height:1.2; }
.ps-slider .slide-caption .img-cap { margin:0; font-weight:600; }
.ps-slider .slide-caption .img-desc { margin:4px 0 0; opacity:.95; }

/* Title + meta line under slider */
.title-meta { max-width:1200px; margin:16px auto 0; padding:0 24px; }
.title-meta h1 { margin:0 0 6px; }
.meta-inline { display:flex; gap:12px; color:#475569; flex-wrap:wrap; }

/* Content + Key Facts (2 columns) */
.ps-single .content-area { max-width:1200px; margin:24px auto; padding:0 24px; display:grid; grid-template-columns:2fr 1fr; gap:32px; }
.ps-single .key-facts ul { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.ps-single .entry p { margin:0 0 14px; }

/* Responsive */
@media (max-width: 900px){
  .ps-single .content-area { grid-template-columns:1fr; }
  .ps-slider .slide-caption { max-width:90%; }
}