/* Portfolio layouts use shared tokens, typography, controls and navigation. */
.projects-masthead { padding-bottom:var(--space-3); }
.projects-hero { display:grid;grid-template-columns:40% 60%;background:var(--surface); }
.projects-hero-copy { padding:clamp(2rem,4.5vw,4.5rem) var(--space-4) clamp(2rem,4.5vw,4.5rem) max(var(--gutter),calc((100vw - var(--width))/2));align-self:center;min-width:0;container-type:inline-size; }
.projects-hero h1 { color:var(--green);font-size:min(7rem,25cqi);line-height:1.05;margin-top:var(--space-2); }
.projects-hero-copy>p:not(.eyebrow) { max-width:26rem;font-size:1.125rem; }
.projects-hero-copy .projects-hero-note { font-size:1rem;margin-top:var(--space-3); }
.projects-hero-copy .text-link { margin-top:var(--space-2); }
.projects-hero-image { margin:0;align-self:center;min-width:0; }
.portfolio-crop { position:relative;overflow:hidden; }
.portfolio-crop img { position:absolute;max-width:none;height:auto; }
/* Photographic windows in supplied, unchanged concept bitmaps; no embedded project text is shown. */
.portfolio-hero-crop { aspect-ratio:563/288; }
.portfolio-hero-crop img { width:161.811723%;left:-61.278863%;top:-22.222222%; }
.projects-hero-image figcaption { font-size:.8125rem;padding:.65rem 1rem;background:var(--forest);color:var(--on-dark); }
.portfolio-intro { display:grid;grid-template-columns:1fr 1.25fr;gap:var(--space-5);padding-block:clamp(2.5rem,4vw,4rem);align-items:start; }
.portfolio-intro h2 { margin-top:.65rem; }
.portfolio-intro>p { border-left:2px solid var(--green);padding-left:var(--space-3);max-width:42rem; }
.portfolio-entry { min-width:0; }
.portfolio-entry-copy { padding:var(--space-4) 0; }
.portfolio-entry-copy h3 { font-size:clamp(1.7rem,2.7vw,2.6rem);margin:.5rem 0 var(--space-2); }
.portfolio-status { font-family:var(--display);font-size:.9375rem;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid var(--border);padding-bottom:var(--space-2);margin-bottom:var(--space-3);color:var(--green); }
.portfolio-status span { display:block;font-family:var(--body);font-size:.875rem;line-height:1.5;text-transform:none;letter-spacing:0;color:var(--muted);margin-top:.25rem; }
.portfolio-entry-copy>.eyebrow { margin-top:0; }
.portfolio-description { max-width:35rem; }
.portfolio-entry .text-link { justify-content:flex-start;margin-top:var(--space-3);text-align:left; }
.portfolio-entry .text-link span { flex-shrink:0; }
.portfolio-featured { display:grid;grid-template-columns:1.2fr 1fr;align-items:center; }
.portfolio-lab-crop { aspect-ratio:462/262; }
.portfolio-lab-crop img { width:197.186147%;left:-6.060606%;top:-188.931298%; }
.portfolio-featured .portfolio-entry-copy { padding:var(--space-4); }
.portfolio-featured .portfolio-status { border-color:var(--border-dark);color:var(--on-dark); }
.portfolio-featured .portfolio-status span { color:var(--on-dark); }
.portfolio-featured .eyebrow { color:#9dca7b; }
.portfolio-featured h3 { font-size:clamp(2rem,3.2vw,3rem); }
.portfolio-pair { display:grid;grid-template-columns:1.12fr 1fr;gap:var(--space-5);margin-top:var(--space-5);align-items:start; }
.portfolio-pair .portfolio-entry { border-bottom:1px solid var(--border); }
.portfolio-photo { overflow:hidden; }
.portfolio-photo img { width:100%;height:auto;object-fit:cover; }
.portfolio-commercial .portfolio-photo img { aspect-ratio:1.85; }
.portfolio-remodel { margin-top:var(--space-5); }
.portfolio-remodel-crop { aspect-ratio:505/224; }
.portfolio-remodel-crop img { width:171.089109%;left:-70.693069%;top:-156.25%; }
.portfolio-structural { display:grid;grid-template-columns:1.4fr 1fr;background:var(--surface);align-items:center;margin-top:var(--space-5); }
.portfolio-structural .portfolio-photo img { aspect-ratio:1.75; }
.portfolio-structural .portfolio-entry-copy { padding:var(--space-4); }
.portfolio-next { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);padding-block:clamp(2.5rem,5vw,4.5rem); }
.portfolio-next h2 { margin-top:.75rem; }
.portfolio-actions { display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-top:var(--space-3); }
.portfolio-actions .button { text-align:left; }
@media(max-width:1000px) {
  .projects-hero { grid-template-columns:1fr 1fr; }
  .projects-hero h1 { font-size:clamp(3.5rem,7.4vw,5rem); }
  .portfolio-featured { grid-template-columns:1fr 1fr; }
  .portfolio-featured .portfolio-entry-copy,.portfolio-structural .portfolio-entry-copy { padding:var(--space-3); }
  .portfolio-pair { gap:var(--space-4); }
  .portfolio-structural { grid-template-columns:1.1fr 1fr; }
}
@media(max-width:900px) {
  .portfolio-featured { grid-template-columns:1fr; }
  .portfolio-featured .portfolio-entry-copy { padding:var(--space-4); }
  .portfolio-featured h3 br { display:none; }
}
@media(max-width:700px) {
  .projects-hero { grid-template-columns:1fr; }
  .projects-hero-copy { padding:var(--space-4) var(--gutter); }
  .projects-hero-copy>p:not(.eyebrow) { max-width:34rem; }
  .projects-hero h1 { font-size:clamp(3.5rem,13vw,5rem); }
  .portfolio-intro { grid-template-columns:1fr;gap:var(--space-3); }
  .portfolio-pair { grid-template-columns:1fr 1fr;gap:var(--space-3); }
  .portfolio-pair .portfolio-entry-copy h3 { font-size:1.6rem; }
  .portfolio-remodel { margin-top:var(--space-4); }
  .portfolio-entry .text-link { letter-spacing:.035em; }
  .portfolio-structural { grid-template-columns:1fr; }
  .portfolio-structural .portfolio-photo img { aspect-ratio:2.2; }
  .portfolio-structural .portfolio-entry-copy { padding:var(--space-4); }
  .portfolio-next { grid-template-columns:1fr;gap:var(--space-3); }
}
@media(max-width:500px) {
  .portfolio-pair { grid-template-columns:1fr;gap:var(--space-4);margin-top:var(--space-4); }
  .portfolio-remodel { margin-top:0; }
  .portfolio-pair .portfolio-entry-copy h3 { font-size:1.8rem; }
  .portfolio-entry-copy { padding-block:var(--space-3); }
  .portfolio-featured .portfolio-entry-copy,.portfolio-structural .portfolio-entry-copy { padding:var(--space-3); }
  .portfolio-featured h3 { font-size:2rem; }
  .portfolio-structural { margin-top:var(--space-4); }
  .portfolio-actions .button { letter-spacing:.035em; }
}
