/* Project gallery (archive-project.php, single-project.php). Figma 664:768 / 1216:2239. Scoped under #bt-root. */
#bt-root.bt-gallery section + section { margin-top:var(--space-9); }
.pg-hero { text-align:center; padding-top:clamp(40px,7vw,100px); }
.pg-hero__title { font-size:clamp(3rem,2rem + 4.5vw,6.25rem); font-weight:500; line-height:1.1; color:var(--c-primary); margin:0 0 var(--space-8); }
.pg-filters { display:grid; grid-template-columns:repeat(3,1fr) auto auto; gap:24px; align-items:end; background:var(--c-surface); border-radius:var(--r-xl); padding:32px; text-align:left; }
.pg-filters label { display:flex; flex-direction:column; gap:10px; font-size:1.25rem; }
.pg-filters select { min-height:56px; border-radius:var(--r-pill); border:1.5px solid var(--c-black); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 22px center; padding:0 50px 0 22px; font:inherit; font-size:1rem; appearance:none; }
.pg-filters .bt-btn { min-height:56px; }
.pg-filters__clear { font-size:var(--fs-small); color:var(--c-text-60); align-self:center; }
.pg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.pg-card { background:var(--c-surface); border-radius:var(--r-xl); overflow:hidden; display:flex; flex-direction:column; }
.pg-card__img { display:block; aspect-ratio:4/3; background:var(--c-surface-alt); }
.pg-card__img img { width:100%; height:100%; object-fit:cover; }
.pg-card__body { padding:24px 28px 26px; display:flex; flex-direction:column; gap:8px; }
.pg-card__title { font-size:1.375rem; font-weight:500; margin:0; }
.pg-card__title a { color:var(--c-black); text-decoration:none; }
.pg-card__meta { font-size:var(--fs-small); color:var(--c-text-60); margin:0; }
.pg-card__links { display:flex; gap:24px; margin:var(--space-2) 0 0; font-size:var(--fs-xs); font-weight:500; }
.pg-card__links a { color:var(--c-primary); text-decoration:none; }
.pg-pagination { display:flex; justify-content:center; gap:8px; margin-top:var(--space-7); }
.pg-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0 14px; border-radius:var(--r-pill); background:var(--c-surface); color:var(--c-black); text-decoration:none; }
.pg-pagination .current { background:var(--c-primary); color:#fff; }
.pg-empty { text-align:center; font-size:1.25rem; }
.pg-cta__card { background:var(--c-surface); border-radius:var(--r-2xl); padding:clamp(32px,6vw,72px); text-align:center; }
.pg-cta__card h2 { font-size:clamp(1.75rem,1.2rem + 2.5vw,3.75rem); font-weight:500; margin:0 0 var(--space-3); }
.pg-cta__card p { font-size:1.875rem; font-weight:300; margin:0 0 var(--space-7); }
/* single */
.pj-head { text-align:center; padding-top:clamp(32px,5vw,70px); }
.pj-title { font-size:clamp(2rem,1.4rem + 3vw,3.75rem); font-weight:500; color:var(--c-primary); margin:var(--space-4) 0 var(--space-3); }
.pj-meta { font-size:1.25rem; color:var(--c-text-60); margin:0 0 var(--space-5); }
.pj-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pj-photo { display:block; border-radius:var(--r-m); overflow:hidden; aspect-ratio:4/3; background:var(--c-surface-alt); }
.pj-photo--lead { grid-column:1 / -1; aspect-ratio:16/9; border-radius:var(--r-xl); }
.pj-photo img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.pj-photo:hover img { transform:scale(1.02); }
.pj-share { text-align:center; background:var(--c-surface); border-radius:var(--r-2xl); padding:clamp(32px,5vw,60px); }
.pj-share h2 { font-size:3.125rem; font-weight:500; margin:0 0 var(--space-6); }
.pj-share h3 { font-size:2.1875rem; font-weight:500; margin:var(--space-7) 0 var(--space-4); }
.pj-share__list { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:16px 40px; }
.pj-share__list a { display:inline-flex; align-items:center; gap:10px; min-height:52px; padding:0 22px; border-radius:var(--r-pill); background:var(--c-surface-alt); color:var(--c-black); font-size:1.375rem; text-decoration:none; }
.pj-share__list a:hover { background:var(--c-primary); color:#fff; }
.pj-share__url input { width:100%; max-width:760px; min-height:56px; border:1.5px solid var(--c-border); border-radius:var(--r-pill); padding:0 24px; font:inherit; font-size:1.125rem; text-align:center; }
.pj-related h2 { font-size:2.1875rem; font-weight:500; margin:0 0 var(--space-6); }
/* lightbox */
.bt-lb { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; }
.bt-lb img { max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--r-s); }
.bt-lb button { position:absolute; top:50%; transform:translateY(-50%); width:56px; height:56px; border-radius:50%; border:0; background:rgba(255,255,255,.15); color:#fff; font-size:2rem; cursor:pointer; }
.bt-lb__prev { left:16px; } .bt-lb__next { right:16px; } .bt-lb__close { top:24px; right:24px; transform:none; font-size:1.5rem; }
@media (max-width:1000px) { .pg-filters { grid-template-columns:1fr 1fr; } .pg-grid, .pj-gallery { grid-template-columns:repeat(2,1fr); gap:16px; } }
@media (max-width:640px) { #bt-root.bt-gallery section + section { margin-top:var(--space-8); } .pg-filters { grid-template-columns:1fr; padding:20px; } .pg-grid, .pj-gallery { grid-template-columns:1fr; } .pg-cta__card p { font-size:1.125rem; } .pj-share h2 { font-size:1.75rem; } .pj-share__list a { font-size:1rem; min-height:44px; } .pj-share__list { gap:10px; } }

/* Case study badge on gallery cards (Dan, 16 Oct 2026) */
.pg-card__img { position:relative; }
.pg-card__badge { position:absolute; top:14px; left:14px; background:var(--c-primary); color:#fff; font-size:.8125rem; font-weight:600; padding:6px 14px; border-radius:var(--r-pill); box-shadow:0 2px 8px rgba(0,0,0,.18); }
.pg-card__links a.pg-card__cs { font-weight:600; }
.pg-filters__check { display:flex; flex-direction:row !important; align-items:center; gap:10px; cursor:pointer; align-self:center; }
.pg-filters__check input { width:20px; height:20px; accent-color:var(--c-primary); }
@media (min-width:1001px) { .pg-filters { grid-template-columns:repeat(3,minmax(0,1fr)) auto auto auto; } }

/* Project map (17 Oct 2026) */
#bt-root .pg-map-wrap { margin-top:var(--space-7); }
#bt-root .pg-map-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:var(--space-4); }
#bt-root .pg-map-head h2 { font-size:var(--fs-h2-s); font-weight:500; margin:0; }
#bt-root .pg-map-head p { font-size:var(--fs-body); color:var(--c-text-60); margin:0; max-width:420px; text-align:right; }
#bt-root .pg-map { height:480px; border-radius:var(--r-xl); overflow:hidden; background:var(--c-surface-alt); z-index:0; }
#bt-root .pg-map-pop { list-style:none; margin:8px 0 0; padding:0; max-height:220px; overflow:auto; }
#bt-root .pg-map-pop li { padding:5px 0; border-top:1px solid #eee; font-size:13px; line-height:1.35; }
#bt-root .pg-map-pop a { color:var(--c-primary); font-weight:600; text-decoration:none; }
#bt-root .pg-map-pop span { color:#666; }
#bt-root .pg-map-pop em { font-style:normal; font-size:11px; background:var(--c-primary); color:#fff; border-radius:10px; padding:1px 7px; margin-left:4px; }
@media (max-width:640px) {
  #bt-root .pg-map-head { flex-direction:column; align-items:flex-start; }
  #bt-root .pg-map-head p { text-align:left; }
  #bt-root .pg-map { height:360px; border-radius:var(--r-m); }
}

/* map tiles in grey so the project circles stand out */
.pg-map .leaflet-tile-pane { filter: grayscale(1) contrast(.92) brightness(1.06); }
