/* PNK internal project pages, v3.2.0 */
.project { display: block; }
.project-open {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  color: var(--paper);
  font-size: 13px;
  font-weight: 600;
  opacity: .74;
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.project-open .diagonal-arrow { width: 14px; height: 14px; color: var(--sage); }
.project:hover .project-open { opacity: 1; transform: translateX(-5px); }
.projects-all { width: var(--page); margin: 34px auto 0; display: flex; justify-content: flex-start; }

.inner-page { background: var(--paper); }
.inner-page .site-header { background: rgba(27,43,52,.97); }
.inner-page main { min-height: 70svh; }
.inner-page .site-footer { position: relative; }

.project-index-hero,
.project-detail-hero {
  position: relative;
  color: var(--paper);
  background: var(--wine);
  overflow: hidden;
  isolation: isolate;
}
.project-index-hero { min-height: 76svh; }
.project-detail-hero { min-height: 88svh; }
.project-index-hero > img,
.project-detail-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.68) contrast(1.08);
}
.project-index-hero::after,
.project-detail-hero::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(27,43,52,.92), rgba(27,43,52,.46) 52%, rgba(27,43,52,.12)), linear-gradient(0deg, rgba(27,43,52,.78), transparent 56%);
}
.project-hero-inner {
  position: relative;
  z-index: 2;
  width: var(--page);
  min-height: inherit;
  margin: auto;
  padding: 160px 0 86px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
}
.project-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
  color: rgba(244,238,223,.66);
  font-size: 12px;
}
.project-breadcrumbs a { border-bottom: 1px solid rgba(244,238,223,.34); }
.project-breadcrumbs span:not(:last-child)::after { content: '/'; margin-inline-start: 10px; color: var(--sage); }
.project-hero-kicker { margin: 0 0 18px; color: var(--sage); font-size: 12px; font-weight: 600; letter-spacing: .11em; }
.project-hero-title {
  max-width: 960px;
  margin: 0;
  font: 800 clamp(50px, 6.4vw, 96px)/.96 var(--display-alt);
  letter-spacing: -.035em;
  text-wrap: balance;
}
.project-hero-lead {
  max-width: 760px;
  margin: 28px 0 0;
  color: rgba(244,238,223,.8);
  font-size: clamp(18px, 1.6vw, 24px);
  line-height: 1.55;
}
.project-hero-index {
  position: absolute;
  z-index: 2;
  inset-inline-end: 4vw;
  inset-block-start: 150px;
  color: rgba(244,238,223,.14);
  font: 900 clamp(90px, 17vw, 260px)/.8 var(--display);
  letter-spacing: -.08em;
}

.project-directory-intro {
  width: var(--page);
  margin: auto;
  padding: clamp(88px, 10vw, 150px) 0 56px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.project-directory-intro > * { min-width: 0; }
.project-directory-intro > div { max-width: 940px; }
.project-directory-intro h2 { margin: 20px 0 0; }
.project-directory-intro p { margin: 0; max-width: 62ch; color: var(--text-body); }
.project-directory { width: var(--page); margin: 0 auto; padding-bottom: clamp(96px, 11vw, 170px); border-top: 1px solid var(--line-dark); }
.project-directory-row {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
  min-height: 430px;
  border-bottom: 1px solid var(--line-dark);
  transition: color .3s var(--ease), background .3s var(--ease);
}
.project-directory-row:nth-child(even) { grid-template-columns: minmax(0, 1.22fr) minmax(300px, .78fr); }
.project-directory-row:nth-child(even) .project-directory-media { grid-column: 2; }
.project-directory-row:nth-child(even) .project-directory-copy { grid-column: 1; grid-row: 1; }
.project-directory-media { position: relative; overflow: hidden; background: var(--wine-2); }
.project-directory-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) contrast(1.07); transition: transform 1s var(--ease), filter .5s; }
.project-directory-copy { padding: clamp(34px, 5vw, 76px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.project-directory-copy small { color: var(--sage-deep); font-weight: 600; letter-spacing: .08em; }
.project-directory-copy h3 { margin: 18px 0 14px; font: 700 clamp(32px, 3.7vw, 58px)/1.02 var(--display); letter-spacing: -.025em; text-wrap: balance; }
.project-directory-copy p { max-width: 48ch; margin: 0; color: var(--text-body); }
.project-directory-action { display: inline-flex; align-items: center; gap: 16px; margin-top: 30px; padding-bottom: 7px; border-bottom: 1px solid currentColor; font-weight: 600; }
.project-directory-action i { color: var(--sage-deep); transition: transform .3s var(--ease); }
.project-directory-row:hover .project-directory-media img { transform: scale(1.035); filter: saturate(.92) contrast(1.04); }
.project-directory-row:hover .project-directory-action i { transform: translateX(-6px); }
.project-directory-note { width: var(--page); margin: 0 auto clamp(90px, 10vw, 140px); padding: 22px 0; border-block: 1px solid var(--line-dark); color: var(--text-body); font-size: 13px; }

.project-fact-strip {
  color: var(--paper);
  background: var(--wine);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line-light);
}
.project-fact-strip div { min-height: 148px; padding: 30px 4vw; border-inline-start: 1px solid var(--line-light); display: grid; align-content: center; gap: 9px; }
.project-fact-strip small { color: var(--sage); font-size: 10px; letter-spacing: .11em; }
.project-fact-strip strong { font: 600 clamp(20px, 2vw, 30px)/1.2 var(--display); }

.project-story {
  width: var(--page);
  margin: auto;
  padding: clamp(90px, 11vw, 170px) 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 46px;
  align-items: start;
}
.project-story > * { min-width: 0; }
.project-story-heading { max-width: 940px; }
.project-story-heading h2 { margin: 26px 0 0; max-width: 820px; }
.project-story-copy { max-width: 1120px; padding-top: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(42px, 6vw, 88px); }
.project-story-copy section + section { margin-top: 0; padding-top: 0; border-top: 0; }
.project-story-copy h3 { margin: 0 0 15px; font: 700 26px/1.15 var(--display); text-wrap: balance; }
.project-story-copy p { margin: 0; color: var(--text-body); }

.project-detail-gallery {
  padding: 0 4vw clamp(92px, 10vw, 150px);
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  grid-template-rows: repeat(2, minmax(300px, 46vw));
  gap: 20px;
  background: var(--paper);
}
.project-detail-gallery figure { position: relative; margin: 0; overflow: hidden; background: var(--wine-2); }
.project-detail-gallery figure:first-child { grid-row: 1 / 3; }
.project-detail-gallery img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.74) contrast(1.06); }
.project-detail-gallery figcaption { position: absolute; inset: auto 18px 16px; padding: 7px 10px; color: var(--paper); background: rgba(27,43,52,.82); font-size: 10px; }
.project-detail-gallery--two { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: minmax(520px, 62vw); }
.project-detail-gallery--two figure:first-child { grid-row: auto; }
.project-detail-gallery--two img { object-position: center 45%; }

.project-process { color: var(--paper); background: var(--wine); padding: clamp(92px, 10vw, 150px) 4vw; }
.project-process-inner { width: var(--page); margin: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 46px; }
.project-process-inner > * { min-width: 0; }
.project-process-inner > div { max-width: 940px; }
.project-process ol { width: min(100%, 960px); }
.project-process h2 { margin: 26px 0 0; }
.project-process ol { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line-light); }
.project-process li { display: grid; grid-template-columns: 52px 1fr; gap: 22px; padding: 28px 0; border-bottom: 1px solid var(--line-light); }
.project-process li > span { color: var(--sage); font-size: 11px; }
.project-process strong { display: block; font: 600 25px/1.15 var(--display); }
.project-process p { margin: 7px 0 0; max-width: 54ch; color: rgba(244,238,223,.72); font-size: 14px; }

.project-next { width: var(--page); margin: auto; padding: clamp(80px, 9vw, 130px) 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.project-next a { min-height: 250px; padding: clamp(30px, 5vw, 64px); border: 1px solid var(--line-dark); display: flex; flex-direction: column; justify-content: space-between; transition: color .3s, background .3s; }
.project-next a:hover { color: var(--paper); background: var(--wine); }
.project-next small { color: var(--sage-deep); }
.project-next strong { font: 700 clamp(30px, 3.5vw, 52px)/1.04 var(--display); letter-spacing: -.025em; text-wrap: balance; }
.project-next span { align-self: flex-start; border-bottom: 1px solid currentColor; }

.project-cta { position: relative; overflow: hidden; color: var(--paper); background: var(--wine-2); padding: clamp(88px, 10vw, 150px) 4vw; }
.project-cta::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 18% 30%, rgba(214,164,74,.16), transparent 34%); }
.project-cta-inner { position: relative; width: var(--page); margin: auto; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; }
.project-cta h2 { margin: 18px 0 0; max-width: 900px; }
.project-cta .button { width: auto; white-space: nowrap; }

@media (max-width: 800px) {
  .project-open { opacity: 1; }
  .projects-all { margin-top: 28px; }
  .project-index-hero { min-height: 78svh; }
  .project-detail-hero { min-height: 84svh; }
  .project-index-hero::after,
  .project-detail-hero::after { background: linear-gradient(0deg, rgba(27,43,52,.96), rgba(27,43,52,.42)); }
  .project-hero-inner { padding: 136px 0 56px; }
  .project-hero-title { font-size: clamp(48px, 14vw, 68px); }
  .project-hero-lead { font-size: 17px; }
  .project-hero-index { top: 110px; font-size: 34vw; }
  .project-directory-intro,
  .project-story,
  .project-process-inner,
  .project-cta-inner { grid-template-columns: minmax(0, 1fr); }
  .project-directory-intro > *,
  .project-story > *,
  .project-process-inner > *,
  .project-cta-inner > * { min-width: 0; }
  .project-directory-intro { padding-top: 82px; gap: 30px; }
  .project-directory-row,
  .project-directory-row:nth-child(even) { grid-template-columns: 1fr; min-height: 0; }
  .project-directory-row:nth-child(even) .project-directory-media,
  .project-directory-row:nth-child(even) .project-directory-copy { grid-column: auto; grid-row: auto; }
  .project-directory-media { height: 66vw; min-height: 290px; }
  .project-directory-copy { padding: 34px 0 54px; }
  .project-directory-copy h3 { font-size: 38px; }
  .project-fact-strip { grid-template-columns: 1fr; }
  .project-fact-strip div { min-height: 112px; padding: 24px 4vw; border-inline-start: 0; border-bottom: 1px solid var(--line-light); }
  .project-story { padding-block: 84px; gap: 22px; }
  .project-story-copy { padding-top: 12px; }
  .project-story-copy { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .project-story-copy section + section { margin-top: 38px; padding-top: 32px; border-top: 1px solid var(--line-dark); }
  .project-detail-gallery { grid-template-columns: 1fr; grid-template-rows: none; gap: 12px; }
  .project-detail-gallery--two { grid-template-columns: 1fr; grid-template-rows: none; }
  .project-detail-gallery figure,
  .project-detail-gallery figure:first-child { grid-row: auto; height: 82vw; min-height: 310px; }
  .project-process-inner { gap: 48px; }
  .project-next { grid-template-columns: 1fr; }
  .project-next a { min-height: 210px; }
  .project-cta-inner { align-items: start; }
  .project-cta .button { width: 100%; }
}

@media (max-width: 430px) {
  .project-hero-title { font-size: 46px; }
  .project-directory-media { min-height: 260px; }
  .project-detail-gallery figure,
  .project-detail-gallery figure:first-child { min-height: 280px; }
}
