:root{--pj-ink:#253f4b;--pj-muted:#68777d;--pj-line:#ccd5d8;--pj-mist:#f2f5f5;--pj-support:#dceaf0}
.projects-page{color:var(--pj-ink);background:#fff}.pj-overview *{box-sizing:border-box}.pj-overview img{display:block;width:100%;height:100%;object-fit:cover}.pj-shell{width:min(1380px,calc(100% - 96px));margin-inline:auto}.pj-kicker{margin:0;color:#526872;}.pj-overview h1,.pj-overview h2,.pj-overview h3,.pj-overview p,.pj-overview figure{margin-top:0}.pj-overview h1,.pj-overview h2{}.pj-link,.pj-card-link{position:relative;display:inline-flex;gap:8px;padding-bottom:6px;color:var(--pj-ink);text-decoration:none}.pj-link:after,.pj-card-link:after{position:absolute;right:0;bottom:0;left:0;height:1px;background:currentColor;content:"";transform-origin:left;transition:transform .25s}.pj-link:hover:after,.pj-card-link:hover:after{transform:scaleX(.55)}
.pj-hero{display:grid;grid-template-columns:36% 64%;min-height:550px;padding-top:76px;background:#f8faf9}.pj-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:70px clamp(42px,5vw,84px)}.pj-hero-copy .pj-kicker{margin-bottom:34px}.pj-hero h1{margin-bottom:24px;}.pj-hero-copy>p:not(.pj-kicker){max-width:480px;margin-bottom:0;color:var(--pj-muted);}.pj-hero-copy .pj-link{align-self:flex-start;margin-top:34px}.pj-hero-media{position:relative;min-height:474px;overflow:hidden}.pj-hero-media picture{display:block;height:100%}.pj-hero-media img{object-position:50% 48%}.pj-hero-media figcaption{position:absolute;right:24px;bottom:18px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.pj-featured,.pj-index{padding:112px 0;background:#fff}.pj-editorial-layout,.pj-index-layout{display:grid;grid-template-columns:minmax(230px,28%) 1fr;gap:clamp(52px,7vw,110px)}.pj-section-intro{align-self:start}.pj-section-intro .pj-kicker{margin-bottom:34px}.pj-section-intro h2,.pj-support h2{margin-bottom:22px;}.pj-section-intro>p:not(.pj-kicker),.pj-support-copy>p:not(.pj-kicker){color:var(--pj-muted);}.pj-section-intro .pj-link{margin-top:28px}.pj-featured-list{display:grid;gap:12px}.pj-featured-row{display:grid;grid-template-columns:minmax(0,60%) 1fr;gap:34px;padding-bottom:12px;border-bottom:1px solid var(--pj-line)}.pj-featured-row figure{aspect-ratio:2.15/1;overflow:hidden;background:#e8ecec}.pj-featured-copy{padding:10px 0 20px}.pj-project-type{margin-bottom:8px;color:#637780;text-transform:uppercase}.pj-featured-copy h3,.pj-card h3{margin-bottom:2px;}.pj-location{margin-bottom:13px;color:#5e6d73;}.pj-description{margin-bottom:12px;color:var(--pj-muted);}.pj-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none}.pj-tags li{padding:3px 6px;background:#eef2f2;color:#637177;}.pj-card-link{margin-top:14px;}
.pj-types{padding:76px 0;background:var(--pj-mist)}.pj-types-layout{display:grid;grid-template-columns:minmax(230px,25%) 1fr;gap:clamp(45px,6vw,90px)}.pj-type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.pj-type{display:block;color:inherit;text-decoration:none}.pj-type figure{aspect-ratio:1.55/1;margin-bottom:14px;overflow:hidden;background:#e4e9e9}.pj-type img{transition:transform .4s}.pj-type:hover img{transform:scale(1.02)}.pj-type-number{margin-bottom:6px;color:#60727a;}.pj-type h3{margin-bottom:4px;}.pj-type>p:not(.pj-type-number){margin-bottom:10px;color:var(--pj-muted);}.pj-type>span{}
.pj-index-layout{grid-template-columns:minmax(200px,20%) 1fr;gap:clamp(42px,5vw,80px)}.pj-filters{display:flex;flex-wrap:wrap;gap:12px 30px;margin-bottom:35px;border-bottom:1px solid var(--pj-line)}.pj-filters button{padding:0 0 12px;border:0;border-bottom:2px solid transparent;background:none;color:#6c7a80;cursor:pointer}.pj-filters button.is-active{border-color:var(--pj-ink);color:var(--pj-ink);}.pj-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 22px}.pj-card[hidden]{display:none}.pj-card figure{aspect-ratio:1.48/1;margin-bottom:15px;overflow:hidden;background:#e6eaea}.pj-card h3{}.pj-card .pj-location{margin-bottom:10px}.pj-card .pj-tags li{}
.pj-support{padding:82px 0;background:var(--pj-support)}.pj-support-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(70px,9vw,138px)}.pj-support-copy .pj-kicker{margin-bottom:34px}.pj-support-copy>p:not(.pj-kicker){max-width:560px}.pj-support-copy .pj-link{margin-top:32px}.pj-information-kicker{margin-bottom:18px;color:#60747d;}.pj-information ol{margin:0;padding:0;border-top:1px solid rgba(77,105,116,.28);list-style:none}.pj-information li{display:grid;grid-template-columns:34px 130px 1fr;align-items:center;gap:12px;min-height:54px;border-bottom:1px solid rgba(77,105,116,.28)}.pj-information li span{}.pj-information li strong{}.pj-information li small{color:#63767e;}.pj-information-output{margin:18px 0 0;}.pj-information-output span{margin-right:18px}
.pj-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s,transform .65s}.pj-reveal.is-visible{opacity:1;transform:none}
@media(min-width:1101px){.pj-hero{grid-template-columns:50% 50%}.pj-hero-copy{padding-inline:clamp(42px,3.5vw,52px)}.pj-hero h1{word-break:keep-all;overflow-wrap:normal}.pj-editorial-layout{grid-template-columns:minmax(220px,23%) 1fr;gap:clamp(46px,4.5vw,68px)}.pj-featured-row{grid-template-columns:minmax(0,62%) 1fr;gap:30px}.pj-types-layout{grid-template-columns:minmax(190px,20%) 1fr;gap:clamp(36px,3.5vw,52px)}.pj-type-grid{gap:20px}.pj-type figure{aspect-ratio:1.35/1}.pj-type h3{}.pj-index-layout{grid-template-columns:minmax(180px,16%) 1fr;gap:clamp(36px,3.4vw,50px)}}
@media(max-width:1100px){.pj-shell{width:calc(100% - 64px)}.pj-hero{grid-template-columns:39% 61%}.pj-hero-copy{padding-inline:32px}.pj-editorial-layout,.pj-types-layout,.pj-index-layout{grid-template-columns:1fr}.pj-section-intro{max-width:620px}.pj-section-intro h2 br{display:none}.pj-type-grid{grid-template-columns:repeat(5,1fr)}.pj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.pj-shell{width:calc(100% - 48px)}.pj-hero{display:flex;min-height:0;padding-top:62px;flex-direction:column}.pj-hero-copy{padding:66px 24px 42px}.pj-hero-copy .pj-kicker{margin-bottom:23px}.pj-hero h1{}.pj-hero-media{min-height:0;aspect-ratio:4/3}.pj-hero-media figcaption{right:auto;bottom:10px;left:12px}.pj-featured,.pj-index{padding:78px 0}.pj-editorial-layout,.pj-index-layout,.pj-types-layout{gap:44px}.pj-featured-row{grid-template-columns:1fr;gap:18px;padding-bottom:34px}.pj-featured-row figure{aspect-ratio:16/9}.pj-featured-copy{padding:0}.pj-type-grid{grid-template-columns:1fr;gap:28px}.pj-type{display:grid;grid-template-columns:40% 1fr;grid-template-rows:auto auto auto 1fr;column-gap:18px}.pj-type figure{grid-row:1/5;margin:0}.pj-type-number,.pj-type h3,.pj-type>p:not(.pj-type-number),.pj-type>span{margin-bottom:3px}.pj-grid{grid-template-columns:1fr;gap:42px}.pj-card figure{aspect-ratio:16/10}.pj-support-layout{grid-template-columns:1fr;gap:56px}.pj-information li{grid-template-columns:30px 105px 1fr}.pj-information li small{}}
@media(prefers-reduced-motion:reduce){.pj-reveal{opacity:1;transform:none;transition:none}}

/* Projects visual-balance restoration. */
.pj-type figure {
  margin: 0 0 14px;
}

.pj-card figure {
  margin: 0 0 15px;
}

.pj-type-number,
.pj-card .pj-project-type {
  font-size: 9px;
}

.projects-page .pj-overview .pj-type h3 {
  font-size: 14px;
  line-height: 1.4;
}

.pj-type > p:not(.pj-type-number),
.pj-type > span {
  font-size: 10px;
  line-height: 1.6;
}

.pj-card h3 {
  font-size: 15px;
  line-height: 1.35;
}

.pj-card .pj-location,
.pj-card .pj-card-link {
  font-size: 11px;
}

.pj-card .pj-tags li {
  font-size: 8px;
}

@media (min-width: 1101px) {
  .pj-types-layout {
    grid-template-columns: minmax(300px, 28%) 1fr;
    gap: clamp(44px, 4.5vw, 70px);
  }

  .pj-index-layout {
    grid-template-columns: minmax(220px, 20%) 1fr;
    gap: clamp(42px, 4vw, 62px);
  }

  .pj-overview #featured-title {
    font-size: 28px !important;
  }

  .pj-overview #project-index-title {
    font-size: 30px !important;
  }
}

/* Keep approved long titles from leaving one- or two-character tails. */
.pj-overview #projects-title {
  font-size: clamp(28px, 2.35vw, 34px) !important;
}

.pj-overview #projects-title .pj-title-line {
  display: block !important;
}
