/* Mosaico del portfolio */
.portfolio-section{border-bottom:1px solid var(--line)}
.portfolio-intro{margin:10px 0 45px}
.portfolio-intro .eyebrow{color:var(--accent);margin-bottom:30px}
.portfolio-intro h1{font-family:var(--heading);font-size:clamp(66px,10vw,150px);letter-spacing:-2px;line-height:1}
.portfolio-intro h1 span{color:var(--accent)}
.portfolio-intro>p:last-child{color:var(--muted);margin-top:25px;max-width:600px}
.portfolio-note{font-size:12px;color:var(--muted);margin:0 0 25px}
.photo-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.photo-tile{position:relative;padding:0;background:var(--panel);overflow:hidden;min-width:0;aspect-ratio:4/5;text-align:left}
.photo-tile:nth-child(4n+2){aspect-ratio:4/5}
.photo-tile img{height:100%;width:100%;object-fit:cover;transition:transform .4s}
.photo-tile:hover img{transform:scale(1.035)}
.photo-caption{position:absolute;inset:auto 0 0;display:flex;gap:20px;justify-content:space-between;padding:50px 20px 20px;background:linear-gradient(transparent,#000b);font-size:13px;color:#fff;pointer-events:none}
.photo-caption>span:last-child{font-size:23px}
.photo-tile .sample-tag{top:15px;bottom:auto;right:15px;font-size:8px}
.portfolio-empty{padding:30px;border:1px solid var(--line);color:var(--muted)}
@media(max-width:900px){
 .site-header{height:80px;gap:15px}
 .menu-toggle:not([hidden]){display:block}
 .site-header nav{position:absolute;top:79px;left:0;right:0;background:var(--bg);padding:20px var(--gutter) 30px;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid var(--line)}
 .site-header nav a{padding:17px 0}
 .site-header nav a[aria-current]:before{top:26px}
 .site-header .nav-contact{display:flex;justify-content:space-between}
 .site-header nav[data-ready]:not(.is-open){display:none}
 .site-header:has(nav:not([data-ready])){height:auto;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
 .site-header nav:not([data-ready]){position:static;flex-basis:100%;padding:0;border:0}
 .photo-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media(max-width:480px){.photo-wall{gap:8px}.photo-caption{padding:35px 10px 10px;font-size:10px;gap:5px}.photo-tile .sample-tag{top:7px;right:7px;max-width:calc(100% - 14px);padding:4px;font-size:7px;letter-spacing:0}.portfolio-page{padding-top:45px}.portfolio-intro h1{font-size:clamp(55px,14vw,80px)}}
