/* Property-specific visuals with consistent framing across the catalogue. */
.portfolio-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#ece9e1;display:flex;align-items:center;justify-content:center;flex:none}
.portfolio-media>img{display:block;width:100%;height:100%;object-fit:cover}
.portfolio-render-window{position:relative;width:100%;overflow:hidden;flex:none}
.portfolio-media .portfolio-render-window>img{position:absolute;display:block;width:var(--render-width);max-width:none;height:auto;left:var(--render-left);top:var(--render-top);object-fit:initial}
.portfolio-image-caption{position:absolute;inset:auto 0 0;padding:8px 12px;background:rgba(20,39,32,.9);color:#fff;font:400 11px/1.4 var(--font-sans);letter-spacing:0;text-align:start}
.catalog-additional .opp[data-portfolio-key]{padding:0;display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}
.portfolio-opp-body{padding:24px;flex:1;display:flex;flex-direction:column;min-width:0}
.portfolio-opp-body .opp__name{margin-top:0;overflow-wrap:break-word}
.portfolio-opp-body .opp__footer{margin-top:auto;padding-top:20px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.portfolio-property-figure{margin:0 0 32px;max-width:1200px}
.portfolio-property-figure .portfolio-media{width:100%;max-height:780px}
.portfolio-property-figure .portfolio-image-caption{padding:11px 16px;font-size:12px}
@media(max-width:1000px){#catalogGrid,.catalog-additional .opps__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#catalogGrid,.catalog-additional .opps__grid{grid-template-columns:minmax(0,1fr)}.portfolio-opp-body{padding:22px}.portfolio-property-figure{margin-bottom:24px}}
