
/* VISAN real-project photo gallery. Shares existing branding. */
.home-hero:before{background-image:url('projects/visan-project-05.webp')!important}
.portfolio-section{padding-top:95px}
.portfolio-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:36px}
.portfolio-heading h2{margin:12px 0 18px}.portfolio-heading p{max-width:715px;color:var(--muted);font-size:1.05rem}
.portfolio-stat{border-left:1px solid var(--line);padding:0 20px 0 33px;display:flex;align-items:center;gap:15px;flex-shrink:0}
.portfolio-stat strong{font:700 clamp(3.7rem,5vw,5.5rem)/1 Manrope,sans-serif;color:#0b3b6b}
.portfolio-stat span{font:700 .72rem/1.65 Manrope,sans-serif;letter-spacing:.12em;color:var(--muted)}
.project-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:12px}
.project-filter{border:1px solid #d1dfec;background:white;color:#123d67;padding:10px 16px;font-size:.81rem;font-weight:700;cursor:pointer;border-radius:3px;transition:.2s}
.project-filter:hover,.project-filter:focus-visible{border-color:#123d67;outline-offset:3px}
.project-filter.selected{background:#0b3867;color:#fff;border-color:#0b3867}
.filter-count{color:var(--muted);font-size:.82rem;margin-bottom:28px}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;align-items:start}
.portfolio-card{background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:0 4px 16px #0a27400a}
.portfolio-card[hidden]{display:none!important}
.portfolio-card:has(details[open]){box-shadow:0 12px 28px #071b3324}
.portfolio-summary{display:block;list-style:none;cursor:pointer}
.portfolio-summary::-webkit-details-marker{display:none}
.portfolio-cover{height:230px;position:relative;overflow:hidden;background:#102b4a}
.portfolio-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.portfolio-summary:hover .portfolio-cover img{transform:scale(1.04)}
.portfolio-quantity{position:absolute;bottom:15px;right:14px;background:#fff;color:#102a47;padding:4px 10px;font:700 .73rem Manrope,Arial,sans-serif;border-radius:2px}
.portfolio-copy{padding:24px;min-height:210px;display:flex;flex-direction:column}
.portfolio-type{font:800 .66rem Manrope,sans-serif;letter-spacing:.17em;color:#0b457e}
.portfolio-copy h3{margin:10px 0;font-size:1.25rem;line-height:1.3;letter-spacing:-.025em}
.portfolio-copy p{font-size:.84rem;line-height:1.58;color:var(--muted);margin:0 0 20px}
.portfolio-open{font:800 .77rem Manrope,Arial,sans-serif;color:#0b457e;margin-top:auto}
.portfolio-expanded{padding:0 20px 22px;border-top:1px solid var(--line)}
.photo-set-note{margin:14px 0 10px;color:var(--muted);font-size:.74rem}
.portfolio-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.portfolio-thumb{display:block;aspect-ratio:1;outline-offset:3px;overflow:hidden;background:#eef2f7}
.portfolio-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s}
.portfolio-thumb:hover img{transform:scale(1.06)}
.portfolio-disclaimer{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:25px;margin-top:32px}
.photo-lightbox{border:0;padding:0;background:#071b33;color:#fff;width:min(95vw,1430px);max-height:95dvh;box-shadow:0 18px 80px #0009}
.photo-lightbox::backdrop{background:rgba(1,10,21,.88)}
.lightbox-bar{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;font-size:.8rem}
.lightbox-bar button,.lightbox-main button{border:1px solid #ffffff88;background:#071b33aa;color:white;cursor:pointer;border-radius:2px}
.lightbox-bar button{padding:8px 13px;font-size:1.1rem}
.lightbox-main{position:relative;display:flex;align-items:center;justify-content:center;min-height:40vh}
.lightbox-main img{display:block;max-width:100%;max-height:calc(95dvh - 115px);width:auto;height:auto;object-fit:contain}
.lightbox-main button{position:absolute;top:50%;transform:translateY(-50%);font-size:2.2rem;line-height:1;padding:5px 15px;z-index:2}
#lightbox-prev{left:12px}#lightbox-next{right:12px}.lightbox-count{text-align:center;padding:7px 0 12px;font-size:.74rem;color:#d0deed}
@media(max-width:1050px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.portfolio-heading{display:block}.portfolio-stat{margin-top:12px;border:0;border-top:1px solid var(--line);padding:12px 0}.portfolio-grid{grid-template-columns:1fr}.portfolio-cover{height:265px}.portfolio-copy{min-height:unset}.portfolio-section{padding-top:65px}.lightbox-main button{font-size:1.7rem;padding:4px 9px}.lightbox-main img{max-height:calc(95dvh - 145px)}}
@media(prefers-reduced-motion:reduce){.portfolio-cover img,.portfolio-thumb img{transition:none!important}}
