/* The gallery consumes the site's shared tokens.css. */
.pf{background:var(--subtle);color:var(--text)}
.pf-intro{max-width:var(--prose);color:var(--muted);margin-top:var(--s-5)}
.pf-nav,.pf-filters{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-block:var(--s-8)}
.pf-nav a,.pf-filters button{display:inline-flex;align-items:center;min-height:var(--touch);padding:var(--s-3) var(--s-5);border:var(--line) solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-decoration:none;transition:background var(--motion)}
.pf-nav a:hover,.pf-filters button:hover{background:var(--subtle);border-color:var(--input-border)}
.pf-nav a:active,.pf-filters button:active{transform:translateY(var(--line))}
.pf-filters button[aria-pressed=true]{background:var(--text);color:var(--surface);border-color:var(--text)}
.pf-nav a:focus-visible,.pf-filters button:focus-visible,.pf-photo:focus-visible,.pf-lightbox button:focus-visible{outline:var(--line-thick) solid var(--focus);outline-offset:var(--s-1)}
.pf-grid{columns:1;column-gap:var(--s-6)}
.pf-item{display:inline-block;width:100%;margin:0 0 var(--s-6);break-inside:avoid;vertical-align:top}
.pf-item[hidden]{display:none}
.pf-photo{display:block;overflow:hidden;border-radius:var(--radius);background:var(--surface);position:relative;text-decoration:none}
.pf-photo img{display:block;width:100%;height:auto;transition:transform var(--motion)}
.pf-photo:hover img{transform:scale(1.015)}
.pf-photo:active img{transform:scale(1)}
.pf-item figcaption{font-size:var(--fs-small);line-height:1.5;color:var(--muted);padding-top:var(--s-3)}
.pf-status,.pf-note{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--s-5)}
.pf-more{margin-top:var(--s-6)}
.pf-collection{padding-block:var(--s-12);scroll-margin-top:var(--s-8)}
.pf-collection h2{margin-bottom:var(--s-4)}
.pf-collection .pf-intro{margin-block:var(--s-4) var(--s-8)}
.pf-lightbox{background:var(--dialog-bg);color:var(--dialog-text);border:0;border-radius:var(--radius);padding:var(--s-4);width:var(--dialog-width);max-width:calc(100% - var(--s-6));max-height:calc(100dvh - var(--s-6));margin:auto;overflow:auto}
.pf-lightbox::backdrop{background:var(--backdrop)}
.pf-lb-image{width:100%;height:70dvh;object-fit:contain;display:block}
.pf-lb-bar{display:grid;grid-template-columns:var(--touch) minmax(0,1fr) var(--touch);gap:var(--s-3);align-items:center;margin-top:var(--s-4)}
.pf-lb-bar button,.pf-lb-error button{min-width:var(--touch);min-height:var(--touch);padding:var(--s-2) var(--s-3);font:inherit;background:var(--dialog-bg);color:var(--dialog-text);border:var(--line) solid var(--input-border);border-radius:var(--radius)}
.pf-lb-bar button:hover,.pf-lb-error button:hover{background:var(--footer-bg)}
.pf-lb-bar button:active,.pf-lb-error button:active{transform:translateY(var(--line))}
.pf-lb-caption{overflow-wrap:anywhere;text-align:center;font-size:var(--fs-small)}
.pf-lb-close{grid-column:1/-1;justify-self:end}
.pf-lb-state{min-height:var(--s-6);margin-top:var(--s-2);font-size:var(--fs-small);text-align:center}
.pf-lb-error{padding:var(--s-5);text-align:center}
.pf-lb-error button{margin-top:var(--s-3)}
.pf-lightbox[aria-busy=true] .pf-lb-image{opacity:.65}
.pf-top{padding-bottom:var(--s-8)}
.pf-booking{padding:var(--s-8);border:var(--line) solid var(--border);border-radius:var(--radius);background:var(--surface);margin-top:var(--s-10)}
.pf-booking p{margin-top:var(--s-4)}
/* ds-allow-hardcode: media-query breakpoints cannot reference CSS custom properties. */
@media(min-width:600px){.pf-grid{columns:2}.pf-lb-close{grid-column:auto}.pf-lb-bar{grid-template-columns:var(--touch) minmax(0,1fr) var(--touch) max-content}}
/* ds-allow-hardcode: media-query breakpoints cannot reference CSS custom properties. */
@media(min-width:960px){.pf-grid{columns:3}}
@media(prefers-reduced-motion:reduce){.pf-photo img,.pf-nav a,.pf-filters button{transition:none}}
