/* Styles for projects.html and project.html (loads after style.css) */

/* page header band */
.phero{position:relative;color:#fff;background:#111;padding:150px 0 70px;overflow:hidden}
.phero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(1);opacity:.35}
.phero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#111 0%,rgba(17,17,17,.2) 70%)}
.phero .wrap{position:relative;z-index:2}
.phero h1{font-size:clamp(44px,7vw,92px);font-weight:700;line-height:.95;margin:16px 0 18px;letter-spacing:-1px}
.phero p{max-width:720px;color:#d4d4d4;font-size:17px;margin:0}
.crumbs{font-family:var(--head);font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px}
.crumbs a{color:#cfcfcf;transition:color .2s}
.crumbs a:hover{color:var(--accent)}
.crumbs span{color:var(--accent);margin:0 8px}
.tag{display:inline-block;background:var(--accent);color:var(--ink);border-radius:4px;padding:5px 11px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}

/* filter chips */
.filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 40px}
.chip{border:1.5px solid #d8d8d8;background:#fff;border-radius:30px;padding:8px 20px;font-family:var(--head);font-weight:700;font-size:15px;letter-spacing:.8px;text-transform:uppercase;transition:background .2s,border-color .2s}
.chip:hover{border-color:var(--accent)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* project cards */
.pgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.pcard{position:relative;display:block;flex:0 0 calc((100% - 44px) / 3);aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:#111;color:#fff;animation:pin .6s ease both}
@keyframes pin{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.pcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .5s,transform .8s}
.pcard:hover img,.pcard:focus-visible img{filter:none;transform:scale(1.06)}
.pcard:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.92) 100%)}
.pinfo{position:absolute;z-index:2;left:24px;right:24px;bottom:22px}
.pinfo small{display:inline-block;background:#fff;color:var(--ink);border-radius:4px;padding:5px 10px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.pinfo h3{font-size:36px;font-weight:700;margin:12px 0 8px}
.pinfo p{font-size:14px;line-height:1.6;color:#dcdcdc;margin:0 0 12px}
.pinfo .more{font-family:var(--head);font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--accent)}
.count{display:inline-block;margin-left:8px;color:#bbb;font-size:13px}
.empty{text-align:center;color:var(--muted);padding:60px 0}

/* project page */
.pbody{display:grid;grid-template-columns:1fr 2fr;gap:70px;align-items:start}
.pmeta h2{font-size:clamp(30px,3.4vw,44px);margin:0 0 16px}
.pmeta p{color:#555;font-size:16px}
.gallery{columns:2;column-gap:16px;margin-top:0}
.shot{display:block;width:100%;margin:0 0 16px;padding:0;border:0;background:#111;border-radius:12px;overflow:hidden;break-inside:avoid;position:relative}
.shot img{width:100%;height:auto;display:block;filter:grayscale(1);transition:filter .4s,transform .6s}
.shot:hover img,.shot:focus-visible img{filter:none;transform:scale(1.04)}
.gallery-wrap{margin-top:70px}
.gallery-wrap h3{font-size:34px;margin-bottom:22px}
.pnav{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:60px;padding-top:34px;border-top:1px solid #e6e6e6}

/* lightbox */
.lb{position:fixed;inset:0;z-index:300;background:rgba(8,8,8,.95);display:none;align-items:center;justify-content:center;padding:60px 70px}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 20px 80px #000}
.lb button{position:absolute;background:rgba(255,255,255,.1);border:0;color:#fff;width:48px;height:48px;border-radius:50%;font-size:24px;line-height:1;transition:background .2s,color .2s}
.lb button:hover{background:var(--accent);color:var(--ink)}
.lb .x{top:18px;right:18px}
.lb .prev{left:14px;top:50%;margin-top:-24px}
.lb .next{right:14px;top:50%;margin-top:-24px}
.lb .cnt{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#aaa;font-size:14px}

@media(max-width:1000px){
  .pcard{flex-basis:calc((100% - 22px) / 2)}
  .pbody{grid-template-columns:1fr;gap:30px}
  .gallery{columns:2}
}
@media(max-width:600px){
  .phero{padding:120px 0 50px}
  .pcard{flex-basis:100%;aspect-ratio:4/4.6}
  .gallery{columns:1}
  .lb{padding:60px 12px}
  .lb .prev{left:6px}.lb .next{right:6px}
}
@media(prefers-reduced-motion:reduce){.pcard{animation:none}}

.pill.outline-dark{background:transparent;border-color:var(--ink);color:var(--ink)}
.pill.outline-dark:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* event folders on the project page */
.folders-title{font-size:30px;margin:0 0 20px}
.fgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.folder{position:relative;display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#111;color:#fff}
.folder img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .5s,transform .8s}
.folder:hover img,.folder:focus-visible img{filter:none;transform:scale(1.06)}
.folder:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.9) 100%)}
.folder:before{content:'';position:absolute;z-index:2;left:20px;top:18px;width:30px;height:22px;border-radius:3px;background:var(--accent);
  clip-path:polygon(0 0,40% 0,50% 18%,100% 18%,100% 100%,0 100%)}
.finfo{position:absolute;z-index:2;left:20px;right:20px;bottom:18px}
.finfo small{display:inline-block;background:#fff;color:var(--ink);border-radius:4px;padding:3px 9px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}
.finfo h4{font-size:28px;font-weight:700;margin:0 0 4px}
.finfo .more{font-family:var(--head);font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--accent);font-size:14px}
.crumbs b{color:#fff}
@media(max-width:600px){.fgrid{grid-template-columns:1fr}}

/* event gallery: text on top, photos full width (works for 2 or 30 photos) */
.pbody.wide{grid-template-columns:1fr;gap:40px}
.pbody.wide .pmeta{display:grid;grid-template-columns:1fr 1.3fr;gap:20px 70px;align-items:end}
.pbody.wide .pmeta .eyebrow,.pbody.wide .pmeta h2{grid-column:1}
.pbody.wide .pmeta p{grid-column:2;grid-row:1 / span 2;margin:0}
.pbody.wide .pmeta .pill{display:none}
.pbody.wide .gallery{columns:3;column-gap:16px}
.shot:after{content:'+';position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--ink);
  font:700 22px/36px var(--head);text-align:center;opacity:0;transform:scale(.7);transition:opacity .3s,transform .3s}
.shot:hover:after,.shot:focus-visible:after{opacity:1;transform:none}
@media(max-width:1000px){
  .pbody.wide .pmeta{grid-template-columns:1fr}
  .pbody.wide .pmeta p{grid-column:1;grid-row:auto}
  .pbody.wide .gallery{columns:2}
}
@media(max-width:600px){.pbody.wide .gallery{columns:2;column-gap:10px}.pbody.wide .shot{margin-bottom:10px;border-radius:8px}}

/* ===== Event gallery: featured mosaic =====
   projects.js gives each photo a size class so every row is filled, whatever the number of photos. */
.pbody.wide .gallery.mosaic{columns:auto;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:14px}
.gallery.mosaic .shot{margin:0;height:100%;border-radius:12px}
.gallery.mosaic .shot img{width:100%;height:100%;object-fit:cover}
.gallery.mosaic .d-big{grid-column:span 2;grid-row:span 2}
.gallery.mosaic .d-wide{grid-column:span 2}
.gallery.mosaic .d-full{grid-column:span 4;grid-row:span 2}
@media(max-width:1000px){
  .pbody.wide .gallery.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}
  .gallery.mosaic .shot{grid-column:auto;grid-row:auto}
  .gallery.mosaic .m-wide{grid-column:span 2}
  .gallery.mosaic .m-big{grid-column:span 2;grid-row:span 2}
}
@media(max-width:600px){
  .pbody.wide .gallery.mosaic{gap:8px;grid-auto-rows:130px}
  .gallery.mosaic .shot{border-radius:8px}
}
