.compact-case .case-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
.compact-case .case-hero-image { min-height:360px; }
.compact-case .case-hero-image img { object-position:center; }
.compact-case .case-scope-list h3 { margin:0; }
.compact-gallery { padding-block:64px; }
.compact-images { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:28px; }
.compact-images button { padding:0; border:0; cursor:pointer; background:#e8edf0; }
.compact-images img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.compact-case .compact-button { background:#203f60; color:white; padding:16px 24px; flex-shrink:0; font-size:14px; font-weight:600; }
.compact-return { display:flex; justify-content:space-between; gap:24px; padding-block:28px; }
.compact-return a { color:#203f60; font-size:14px; }
.compact-case a:focus-visible,.compact-case button:focus-visible { outline:3px solid #547a9b; outline-offset:4px; }
.compact-dialog { background:#101b24; border:0; padding:52px 20px 20px; max-width:94vw; max-height:94dvh; }
.compact-dialog::backdrop { background:#101b24d9; backdrop-filter:blur(6px); }
.compact-dialog img { display:block; max-width:85vw; max-height:78dvh; width:auto; height:auto; object-fit:contain; }
.compact-close { position:absolute; right:12px; top:8px; color:white; background:transparent; border:1px solid #ffffff60; border-radius:50%; width:36px; height:36px; cursor:pointer; font-size:25px; }
html.project-photo-open { overflow:hidden; }
@media(max-width:700px) { .compact-case .case-facts { grid-template-columns:1fr; gap:20px; } .compact-case .case-facts > div { padding:0; border:0; } .compact-images { grid-template-columns:1fr; } .compact-gallery { padding-block:40px; } .compact-case .case-hero-image { min-height:280px; } .compact-return { flex-wrap:wrap; } }

.compact-dialog { box-sizing:border-box; width:max-content; overflow-x:hidden; } .compact-dialog img { max-width:calc(94vw - 40px); }

.cpfc-case .case-facts { grid-template-columns:repeat(4,minmax(0,1fr)); } .cpfc-case .case-scope-list h3 { margin-bottom:12px; } @media(max-width:700px) { .cpfc-case .case-facts { grid-template-columns:1fr; } }

.expanded-project.four-facts .case-facts { grid-template-columns:repeat(4,minmax(0,1fr)); } .expanded-project .case-scope-list h3 { margin-bottom:12px; } @media(max-width:700px) { .expanded-project.four-facts .case-facts { grid-template-columns:1fr; } }

.barking-delivery { border-bottom:1px solid #d5dee3; } .barking-gallery > p:not(.case-eyebrow) { color:#587082; max-width:720px; } .barking-photo-caption { display:block; padding:14px 16px; text-align:left; color:#243e51; background:#edf2f5; font:500 14px 'Open Sans',sans-serif; } .barking-gallery .compact-images button { align-self:start; }

.barking-access-photos { grid-column:1/-1; display:grid; grid-template-columns:1fr 1.5fr; gap:24px; align-items:stretch; } .barking-access-photos button { padding:0; border:0; background:#edf2f5; cursor:pointer; min-width:0; } .barking-access-photos img { display:block; width:100%; height:520px; object-fit:cover; object-position:center; } @media(max-width:700px) { .barking-access-photos { grid-template-columns:1fr; } .barking-access-photos img { height:auto; } }
.fenchurch-delivery { border-bottom:1px solid #d5dee3; } .fenchurch-gallery > p:not(.case-eyebrow) { color:#587082; max-width:720px; } .project-photo-caption { display:block; padding:14px 16px; text-align:left; color:#243e51; background:#edf2f5; font:500 14px "Open Sans",sans-serif; } .fenchurch-finished-photos { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:24px; } .fenchurch-finished-photos button { padding:0; border:0; cursor:pointer; background:#edf2f5; min-width:0; } .fenchurch-finished-photos img { display:block; width:100%; height:520px; object-fit:contain; } .fenchurch-gallery button { align-self:start; } @media(max-width:700px) { .fenchurch-finished-photos { grid-template-columns:1fr; } .fenchurch-finished-photos img { height:auto; } }

.hayes-delivery { border-bottom:1px solid #d5dee3; } .hayes-gallery > p:not(.case-eyebrow) { color:#587082; max-width:720px; } .hayes-gallery button { align-self:start; }
/* Shared gallery treatment: photo-led captions matching Southend. */
[data-project-photo] { position:relative; overflow:hidden; isolation:isolate; background:transparent; }
[data-project-photo]::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0a1e3418,transparent 32%,transparent 60%,#0a1e34d9); pointer-events:none; z-index:1; }
[data-project-photo]::after { content:""; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg); position:absolute; right:22px; bottom:24px; color:#fff; font:600 14px "Open Sans",sans-serif; z-index:2; pointer-events:none; }
[data-project-photo] .barking-photo-caption,
[data-project-photo] .project-photo-caption { position:absolute; left:0; right:0; bottom:0; padding:22px 52px 22px 22px; margin:0; color:#fff; background:transparent; font:600 14px/1.5 "Open Sans",sans-serif; z-index:2; pointer-events:none; }
[data-project-photo]:hover { outline:3px solid #789bb7; outline-offset:3px; }
.barking-access-photos button,.fenchurch-finished-photos button,.compact-images button { background:transparent; }
.fenchurch-finished-photos img { object-fit:cover; }
@media(max-width:700px) { [data-project-photo] .barking-photo-caption,[data-project-photo] .project-photo-caption { font-size:12px; padding:18px 46px 18px 18px; } [data-project-photo]::after { right:18px; bottom:18px; } }

[data-project-photo]::after { width:20px; height:20px; border:0; transform:none; bottom:20px; background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M13 1H1v18h12' fill='none' stroke='black' opacity='.5'/%3E%3Cpath d='M6 10h12m-4-4 4 4-4 4' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat; }

/* Fenchurch: alternating wide and portrait views, with a balanced detail row. */
.fenchurch-gallery .compact-images { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; grid-auto-rows:clamp(260px,30vw,420px); }
.fenchurch-gallery .compact-images button { min-width:0; height:100%; align-self:stretch; }
.fenchurch-gallery .compact-images img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
.fenchurch-gallery .compact-images button:nth-child(1),
.fenchurch-gallery .compact-images button:nth-child(4) { grid-column:span 2; }
@media(max-width:700px) {
  .fenchurch-gallery .compact-images { grid-template-columns:1fr; grid-auto-rows:auto; gap:18px; }
  .fenchurch-gallery .compact-images button:nth-child(n) { grid-column:auto; }
  .fenchurch-gallery .compact-images img { height:auto; aspect-ratio:4/3; }
}
