.full_bg.no-banner-bg { background: #fff; }
.project-page-wrap { background: #fff; }
.projects-archive-header { padding: 85px 0 35px; }
.projects-archive-header .titlepage { max-width: 850px; margin: 0 auto; }
.projects-archive-header h1 { font-size: 44px; font-weight: 700; color: #141620; margin-bottom: 12px; }
.projects-archive-header p { font-size: 17px; line-height: 1.7; }
.projects-archive { padding: 10px 0 70px; }
.project-archive-col { margin-bottom: 30px; }
.project-card { height: 100%; background: #fff; box-shadow: 0 4px 22px rgba(20,22,32,.10); }
.project-card-image { display: block; overflow: hidden; }
.project-card-image img { display: block; width: 100%; height: 260px; object-fit: cover; transition: transform .25s ease; }
.project-card:hover .project-card-image img { transform: scale(1.025); }
.project-card-body { padding: 24px 24px 28px; }
.project-card-body h2 { font-size: 24px; line-height: 1.25; margin-bottom: 6px; }
.project-card-body h2 a { color: #141620; }
.project-card-body h2 a:hover { color: #ff5a12; }
.project-meta, .project-detail-location, .project-detail-category { color: #70727b; font-weight: 600; }
.project-card-body > p:not(.project-meta) { min-height: 78px; }
.project-card-link { color: #ff5a12; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.project-breadcrumb { padding: 34px 0 20px; font-size: 14px; color: #777; }
.project-breadcrumb span { padding: 0 5px; }
.project-detail { padding: 38px 0 70px; }
.project-detail-intro { align-items: center; padding-bottom: 35px; }
.project-detail-cover { display: block; width: 100%; max-height: 620px; object-fit: cover; }
.project-detail-copy { padding: 20px 0 20px 35px; }
.project-detail-copy h1 { font-size: 44px; line-height: 1.15; font-weight: 700; color: #141620; margin-bottom: 8px; }
.project-detail-copy p { line-height: 1.75; }
.project-detail-category { margin-top: -3px; margin-bottom: 22px; }
.project-gallery { border-top: 1px solid #ececec; padding-top: 35px; }
.project-gallery-col { margin-bottom: 30px; }
.project-gallery img { width: 100%; height: 300px; object-fit: cover; }
.project-detail-bottom { display: flex; flex-wrap: wrap; gap: 15px; padding-top: 10px; }
.project-detail-bottom .read_more { margin-top: 0; width: auto; max-width: none; padding-left: 24px; padding-right: 24px; }
.projects-more-link .read_more { width: auto; max-width: none; padding-left: 24px; padding-right: 24px; }
.project .project_img a { display: block; }
.project .project_text h3 a { color: inherit; }
.project .project_text h3 a:hover { text-decoration: underline; }
.projects-more-link { text-align: center; padding-top: 30px; }
@media (max-width: 991px) {
  .project-detail-copy { padding-left: 0; padding-top: 30px; }
  .project-detail-copy h1 { font-size: 36px; }
}
@media (max-width: 767px) {
  .projects-archive-header { padding-top: 55px; }
  .projects-archive-header h1, .project-detail-copy h1 { font-size: 32px; }
  .project-card-image img { height: 230px; }
  .project-card-body > p:not(.project-meta) { min-height: 0; }
  .project-gallery img { height: auto; }
}

/* V3.7: enforce a uniform 450:655 Featured Projects viewport.
   This lives in projects.css (loaded after legacy styles) so arbitrary
   featured.jpg dimensions are center-cropped reliably. */
.projects .project_img figure {
    position: relative;
    aspect-ratio: 450 / 655;
    overflow: hidden;
}

.projects .project_img figure img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center center;
    display: block;
}
