/* Loaded only on Projects and Heritage. The global identity is unchanged. */
.portfolio-filters { position:static; flex-wrap:wrap; justify-content:flex-start; gap:.65rem; overflow:visible; }
.portfolio-filters .filter-button { flex:0 1 auto; font-family:var(--display); font-size:clamp(1rem,1.4vw,1.35rem); font-weight:600; letter-spacing:-.02em; text-transform:none; white-space:normal; }
.portfolio-filter-count { opacity:.65; font-size:.8em; margin-left:.3rem; }
.portfolio-group { scroll-margin-top:calc(var(--header-h) + 2rem); }
.portfolio-group + .portfolio-group { margin-top:clamp(4rem,7vw,7rem); padding-top:clamp(2.5rem,4vw,4rem); border-top:1px solid var(--line); }
.portfolio-group[hidden] { display:none; }
.portfolio-group-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; margin-bottom:2rem; }
.portfolio-group-heading .portfolio-type-heading { margin:0; padding:0; }
.portfolio-group-heading h2 { max-width:100%; overflow-wrap:normal; word-break:normal; hyphens:none; }
.portfolio-group-heading .portfolio-total { font-size:1rem; color:var(--clay); vertical-align:top; margin-left:.7rem; }
.portfolio-heritage-action { display:inline-flex; align-items:center; gap:.8rem; white-space:nowrap; border-bottom:1px solid var(--gold); padding-bottom:.35rem; }
.heritage-navigation { padding-top:calc(var(--header-h) + 2rem); }
.heritage-back { display:inline-flex; align-items:center; gap:1rem; font-size:.95rem; }
.heritage-catalogue-opening { padding-block:clamp(2.5rem,4vw,4rem) 2.5rem; }
.heritage-page .heritage-title { font-family:var(--display); font-size:clamp(2.1rem,4vw,4.5rem); font-weight:600; line-height:1.15; letter-spacing:-.035em; text-transform:none; text-align:left; hyphens:none; word-break:normal; overflow-wrap:normal; margin:1.3rem 0; }
.heritage-title span { color:var(--clay); }
.heritage-catalogue-opening .lede { max-width:60ch; font-size:1.1rem; }
.heritage-catalogue { padding-bottom:clamp(3rem,6vw,6rem); }
/* Use the shared project grid, image ratio and type scale in every category. */
.heritage-project-card h3 { word-break:normal; overflow-wrap:normal; }
.heritage-project-media img { width:100%; object-position:center; }
.heritage-detail-opening .heritage-project-media img { height:100%; object-fit:contain; background:var(--paper-2); }
.heritage-project-media { position:relative; }
.heritage-image-caption { position:absolute; bottom:0; left:0; width:100%; padding:.6rem .8rem; background:rgba(13,16,14,.83); color:#fff; font-size:.8rem; line-height:1.5; }
.heritage-text-cover { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start; padding:clamp(1.5rem,3vw,3rem); background:var(--ink-2); color:var(--white); border-top:2px solid var(--gold); }
.heritage-text-cover .eyebrow { color:var(--gold); font-size:.75rem; }
.heritage-cover-name { font-family:var(--display); font-size:clamp(2.1rem,3.3vw,3.6rem); font-weight:600; line-height:1.1; }
.heritage-image-note { font-size:.8rem; line-height:1.6; color:#ddd6c8; }
.heritage-perspective { display:grid; grid-template-columns:1fr 1fr; gap:3rem; padding-block:clamp(3rem,6vw,6rem); border-top:1px solid var(--line); }
.heritage-perspective h2,.heritage-enquiry h2 { font-family:var(--display); font-size:clamp(1.8rem,3vw,3rem); font-weight:600; line-height:1.25; margin:0; }
.heritage-perspective p { max-width:48ch; font-size:1.1rem; line-height:1.8; margin:0; }
.heritage-detail-opening { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(2rem,5vw,5rem); padding-block:3rem; }
.heritage-detail-opening .project-card-media { aspect-ratio:4/5; }
.heritage-detail-opening .heritage-media-landscape { aspect-ratio:3/2; }
.heritage-source { margin:1.5rem 0; font-size:.95rem; }
.heritage-detail-copy { padding-block:2rem 6rem; }
.heritage-detail-copy>p { max-width:70ch; font-size:1.15rem; line-height:1.85; }
.heritage-story { display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(2rem,5vw,5rem);padding-block:2rem; }
.heritage-story h2,.heritage-intervention h2,.heritage-gallery-heading { font-family:var(--display);font-weight:600;font-size:clamp(1.8rem,2.8vw,2.7rem);line-height:1.2;letter-spacing:-.025em;word-break:normal;overflow-wrap:normal;margin:0; }
.heritage-story p { font-size:1.1rem;line-height:1.8;margin:0 0 1.4rem;max-width:60ch; }
.heritage-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-block:2rem 3rem; }
.heritage-facts .project-fact { min-width:0;border-top:1px solid var(--gold);padding-top:1.2rem; }
.heritage-facts strong { white-space:normal;overflow-wrap:normal;word-break:normal; }
.heritage-intervention { display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(2rem,5vw,5rem);padding-block:2rem 4rem; }
.heritage-intervention p { font-size:1.05rem;line-height:1.8;margin:0; }
.heritage-gallery-heading { margin:1rem 0 2rem; }
.heritage-gallery { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem; }
.heritage-gallery figure { margin:0;min-width:0; }
.heritage-gallery figure:first-child { grid-column:1/-1; }
.heritage-gallery figcaption { font-size:.875rem;line-height:1.6;margin-top:.8rem;color:var(--ink-2); }
.heritage-gallery img { width:100%; max-height:650px; object-fit:contain; }
.heritage-enquiry { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:2rem; padding-top:4rem; }
.heritage-page a:focus-visible,.portfolio-filters button:focus-visible { outline:2px solid var(--clay); outline-offset:5px; }
@media(max-width:1100px) { .heritage-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
 .heritage-perspective,.heritage-detail-opening { grid-template-columns:1fr; }
 .heritage-detail-opening { padding-top:2rem; }
 .heritage-perspective { gap:1.5rem; }
 .portfolio-filters .filter-button { font-size:1rem; padding:.65rem .8rem; }
 .portfolio-group-heading h2 { font-size:clamp(1.5rem,6vw,2rem); }
 .heritage-cover-name { font-size:2.5rem; }
 .heritage-story,.heritage-intervention,.heritage-gallery,.heritage-facts { grid-template-columns:1fr;gap:1.5rem; }
}
