/* Internal pages extend Prime's navy and silver-blue identity. */
.inner-page { --page-gutter: clamp(1.25rem, 3.4vw, 3rem); }
.inner-page :focus-visible { outline: 3px solid #76a9df; outline-offset: 5px; }
.inner-page .nav nav a[aria-current="page"] { color: #dceafa; text-decoration: underline; text-underline-offset: 7px; }
.inner-page main { min-height: 65vh; }
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; padding-block: 1.5rem; font-size: .875rem; color: #b5cbe1; }
.breadcrumb a { transition: color .2s; }
.breadcrumb a:hover { color: white; }
.breadcrumb [aria-current] { color: #f0f6fc; }
.breadcrumb span[aria-hidden] { color: #7892af; }
.project-intro, .archive-intro, .document-intro { color: #fff; background: radial-gradient(ellipse at 15% 45%, #0a2d6b, #06183a 45%, #010516 100%); }
.project-intro { position: relative; overflow: hidden; }
.project-lead { position: relative; display: grid; grid-template-columns: .85fr 1.3fr; align-items: stretch; gap: 3rem; padding: 1rem 0 3.5rem; }
.project-lead-copy { align-self: center; padding-block: 1rem; }
.inner-page .section-label { font-size: .8125rem; }
.project-lead .section-label, .archive-intro .section-label, .document-intro .section-label { color: #aac9e8; }
.project-lead h1 { font-size: clamp(2.4rem, 4.6vw, 4.6rem); line-height: 1.12; margin: 0; letter-spacing: -.045em; overflow-wrap: break-word; }
.project-lead-copy > p:not(.eyebrow) { color: #b5cbe1; margin-top: 1.5rem; max-width: 35rem; font-size: 1rem; line-height: 1.8; }
.project-lead .button { margin-top: 2rem; }
.project-cover { display: block; position: relative; margin: 0; min-height: 460px; overflow: hidden; border-radius: 4px; background: #102440; }
.project-cover img { position: absolute; inset: 0; }
.project-cover-label { position: absolute; bottom: 1.25rem; left: 1.25rem; padding: .55rem .85rem; font-size: .875rem; background: #05162add; color: #f0f6fc; backdrop-filter: blur(10px); }
.image-zoom { position: absolute; right: 1.25rem; bottom: 1.25rem; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #e7f1fb; color: #061a3b; font-size: 1.5rem; transition: transform .3s, background .3s; }
.project-cover:hover .image-zoom { transform: translateY(3px); background: #fff; }
.gallery-item:hover .image-zoom { transform: rotate(90deg); background: #fff; }
.project-cover img, .gallery-item img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.project-cover:hover img, .gallery-item:hover img { transform: scale(1.025); }
.project-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.project-facts > div { padding-inline: 2rem; border-right: 1px solid var(--line); }
.project-facts > div:first-child { padding-left: 0; }
.project-facts > div:last-child { border: 0; }
.project-facts dt { font-size: .875rem; color: var(--muted); margin-bottom: .4rem; }
.project-facts dd { margin: 0; font-size: clamp(1.5rem, 3vw, 2.7rem); letter-spacing: -.035em; line-height: 1.3; font-variant-numeric: tabular-nums; }
.project-facts small { font-size: .875rem; color: var(--muted); }
.project-context { display: grid; grid-template-columns: .85fr 1.3fr; gap: 3rem; padding-top: 2rem; }
.project-context h2 { font-size: 1.4rem; line-height: 1.4; letter-spacing: -.025em; }
.project-context p { font-size: 1rem; color: var(--muted); max-width: 45rem; }
.project-context .cost-note { font-size: .8125rem; margin-top: 1rem; }
.photo-section { padding-block: 5rem; }
.photo-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.photo-heading h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.photo-heading p { color: var(--muted); font-size: .875rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.gallery-item { display: block; position: relative; overflow: hidden; border-radius: 4px; background: #dce6ef; }
.gallery-item img { width: 100%; height: auto; object-fit: contain; }
.gallery-item.gallery-wide { grid-column: 1 / -1; }
.gallery-item .image-zoom { width: 44px; height: 44px; bottom: 1rem; right: 1rem; font-size: 1.25rem; }
.photo-index { position: absolute; left: 1rem; bottom: 1rem; color: #fff; background: #05162ad9; padding: .35rem .7rem; border-radius: 2px; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.related-section { padding-block: 4rem; background: #e3ebf3; }
.related-heading { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: 2rem; }
.related-heading h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.text-link { display: inline-flex; gap: .7rem; font-size: .875rem; border-bottom: 1px solid #829ab1; padding-block: .5rem; }
.related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.related-grid .project-image { height: 290px; }
.project-contact { background: radial-gradient(ellipse at 80% 35%, #0a2d6b, #06183a 45%, #010516); color: white; padding-block: 4rem; }
.project-contact .wrap { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.project-contact h2 { font-size: clamp(1.8rem, 3.6vw, 3.2rem); max-width: 45rem; }
.project-contact p { margin-top: 1rem; color: #b5cbe1; max-width: 35rem; font-size: 1rem; }
.project-contact .button { flex-shrink: 0; }
.archive-intro { padding-bottom: 3.5rem; }
.archive-heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-top: 1rem; }
.archive-heading h1 { margin: 0; font-size: clamp(2.7rem, 6vw, 5.5rem); }
.archive-heading > p { max-width: 27rem; font-size: 1rem; color: #b5cbe1; }
.archive-projects { padding-block: 4rem 5rem; background: #e8eff6; }
.archive-projects .project:nth-child(2n) { align-self: end; }
.inner-page .project-type { font-size: .8125rem; }
.inner-page .project-metrics { font-size: .875rem; }
.inner-page .project-title h3 a:hover { color: var(--prime-blue); }
.document-intro { padding-bottom: 3rem; }
.document-intro h1 { margin-top: 1rem; font-size: clamp(2.1rem, 4.5vw, 4rem); max-width: 60rem; line-height: 1.2; }
.document-layout { padding-block: 3rem 5rem; display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 4rem; align-items: start; }
.document-nav { position: sticky; top: 125px; display: grid; gap: .5rem; font-size: .875rem; }
.document-nav a { padding: .6rem .75rem; border-left: 2px solid transparent; }
.document-nav a[aria-current] { border-color: var(--prime-blue); color: var(--prime-blue); background: #e0eaf4; }
.document-copy { max-width: 820px; min-width: 0; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.85; }
.document-copy p + p { margin-top: 1rem; }
.document-copy h2 { font-size: 1.5rem; line-height: 1.4; letter-spacing: -.025em; margin: 2.5rem 0 1rem; }
.document-copy h2:first-child { margin-top: 0; }
.document-copy h3 { font-size: 1.125rem; margin: 1.5rem 0 .75rem; }
.document-copy a { color: #235c9d; text-decoration: underline; text-underline-offset: 3px; }
.document-notice { font-size: .875rem; line-height: 1.65; padding: 1rem 1.25rem; border-left: 2px solid #4c85c1; background: #e1eaf3; margin-bottom: 2rem; color: #415f7d; }
.not-found-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; padding-top: 2rem; }
.archive-link { display: flex; width: max-content; max-width: 100%; margin: 1rem auto 0; }
.footer-legal { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; }
.project-metrics { flex-wrap: wrap; row-gap: .4rem; }
.document-copy ul, .document-copy ol { padding-left: 1.5rem; }
.document-copy li + li { margin-top: .5rem; }
.document-copy table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.document-copy td, .document-copy th { border: 1px solid var(--line); padding: .75rem; text-align: left; }
.gallery-dialog { position: fixed; inset: 0; margin: auto; width: 100%; max-width: none; height: 100%; max-height: none; padding: 0; border: 0; background: #010516f7; color: #fff; }
.gallery-dialog::backdrop { background: #010516; }
.gallery-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.lightbox-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.5rem; }
.lightbox-title { font-size: .875rem; color: #c7d7e9; }
.lightbox-control { display: grid; place-items: center; flex-shrink: 0; border: 1px solid #6c86a8; background: #0b2341; color: white; border-radius: 50%; width: 48px; height: 48px; font-size: 1.5rem; transition: background .2s; }
.lightbox-control:hover { background: #244876; }
.lightbox-stage { position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; padding: .5rem 5.5rem; }
.lightbox-stage img { width: 100%; height: 100%; object-fit: contain; }
.lightbox-stage .lightbox-control { position: absolute; z-index: 2; top: calc(50% - 24px); }
.lightbox-prev { left: 1.5rem; }
.lightbox-next { right: 1.5rem; }
.lightbox-bottom { text-align: center; padding: 1rem 5rem 1.5rem; font-size: .875rem; font-variant-numeric: tabular-nums; }
.lightbox-error { position: absolute; text-align: center; max-width: 25rem; margin-inline: 2rem; }
.lightbox-error a { display: inline-block; color: #b5d9ff; text-decoration: underline; margin-top: .75rem; }
body.gallery-open { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .project-lead-copy, .archive-heading, .document-intro h1 { animation: rise-in .8s both; }
  .project-cover { animation: page-photo-enter 1s .1s both; }
  .gallery-dialog[open] .lightbox-stage { animation: lightbox-enter .25s both; }
  @keyframes page-photo-enter { from { opacity: 0; clip-path: inset(0 0 0 7%); } to { opacity: 1; clip-path: inset(0); } }
  @keyframes lightbox-enter { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: scale(1); } }
}
@media (max-width: 1000px) {
  .project-lead { gap: 2rem; grid-template-columns: 1fr 1.15fr; }
  .project-cover { min-height: 400px; }
  .document-layout { gap: 2rem; grid-template-columns: 190px minmax(0, 1fr); }
  .project-contact .wrap { align-items: start; flex-direction: column; }
}
@media (max-width: 750px) {
  .project-lead { grid-template-columns: 1fr; gap: 1.75rem; padding-top: .5rem; padding-bottom: 2rem; }
  .project-lead-copy { padding: 0; }
  .project-lead h1 { max-width: 38rem; }
  .project-lead-copy > p:not(.eyebrow) { margin-top: 1rem; }
  .project-lead .button { margin-top: 1.5rem; }
  .project-cover { min-height: 0; aspect-ratio: 4 / 3; }
  .project-facts > div { padding-inline: 1rem; }
  .project-context { grid-template-columns: 1fr; gap: 1rem; }
  .archive-heading { display: block; }
  .archive-heading > p { margin-top: 1.5rem; }
  .photo-section { padding-block: 3rem; }
  .gallery-grid { gap: .75rem; }
  .related-grid { gap: 1.25rem; }
  .related-grid .project-image { height: 240px; }
  .document-layout { grid-template-columns: 1fr; gap: 2rem; }
  .document-nav { position: static; border-bottom: 1px solid var(--line); padding-bottom: 1.5rem; }
}
@media (max-width: 500px) {
  .breadcrumb { font-size: .8125rem; padding-block: 1.1rem; gap: .3rem .5rem; }
  .project-lead h1 { font-size: 2.6rem; }
  .project-cover-label { bottom: 1rem; left: 1rem; font-size: .8125rem; }
  .project-facts { grid-template-columns: 1fr 1fr; gap: 1.25rem; padding-block: 1.5rem; }
  .project-facts > div { padding: 0; border: 0; }
  .project-facts > div:last-child { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 1rem; }
  .project-facts dd { font-size: 1.85rem; }
  .photo-heading { align-items: start; flex-direction: column; gap: .7rem; }
  .gallery-grid { grid-template-columns: 1fr; gap: 1rem; }
  .gallery-item.gallery-wide { grid-column: auto; }
  .related-grid { grid-template-columns: 1fr; gap: 2rem; }
  .related-heading { align-items: start; flex-direction: column; gap: .75rem; }
  .lightbox-top { padding: .75rem 1rem; }
  .lightbox-stage { padding: 0 .5rem; }
  .lightbox-stage .lightbox-control { top: auto; bottom: -60px; }
  .lightbox-prev { left: 1rem; }
  .lightbox-next { right: 1rem; }
  .lightbox-bottom { min-height: 80px; display: grid; place-items: center; padding: 1.5rem 5rem; }
  .archive-intro { padding-bottom: 2.5rem; }
  .archive-projects { padding-block: 2.5rem 3rem; }
  .document-copy { line-height: 1.75; }
}
@media print {
  header, footer, .scroll-progress, .document-nav, .breadcrumb, .skip { display: none !important; }
  .document-intro, body { background: white !important; color: black !important; }
  .document-layout { display: block; padding: 1rem 0; }
  .document-copy { max-width: none; }
  .document-intro { padding-bottom: 1rem; }
  .wrap { width: 100%; }
}
