/* A photographic editorial mosaic with full-card captions and touch affordances. */
.gallery .gallery-top {align-items:center;gap:6vw;margin-bottom:38px}
.gallery .gallery-top h2 {font-size:clamp(2.8rem,5vw,5.6rem)}
.gallery .gallery-top > p {max-width:300px;font-size:.95rem;line-height:1.8}
.gallery .gallery-filters {display:flex;gap:8px;padding:8px;border:1px solid #a4874540;background:#fffbf380;width:fit-content;border-radius:14px;margin:0 0 32px}
.gallery .gallery-filters button {border:0;border-radius:8px;padding:12px 20px;transition:background .35s,color .35s,box-shadow .35s}
.gallery .gallery-filters button.selected {background:var(--green);color:var(--cream);box-shadow:0 4px 12px #173e3125}
.gallery .gallery-grid {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(140px,14vw,210px);gap:18px;align-items:stretch}
.gallery .gallery-card,
.gallery .gallery-card:nth-child(even),
.gallery .gallery-card:nth-child(4n+2),
.gallery .gallery-card:nth-child(4n+4) {
  grid-column:span 3;grid-row:span 1;position:relative;margin:0;padding:0;height:100%;min-width:0;overflow:hidden;border-radius:7px;
  background:var(--forest);color:var(--cream);text-align:left;isolation:isolate;transition:box-shadow .4s;animation:none;
}
.gallery .gallery-card:nth-child(8n+1),.gallery .gallery-card:nth-child(8n+6) {grid-column:span 6;grid-row:span 2}
.gallery .gallery-card:nth-child(8n+7),.gallery .gallery-card:nth-child(8n+8) {grid-row:span 2}
.gallery .gallery-card .gallery-image,
.gallery .gallery-card:nth-child(n) .gallery-image {
  position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;max-height:none;border:0;border-radius:0;clip-path:none;background:transparent;
}
.gallery .gallery-image::after {content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#07191345,transparent 35%,#07191325 55%,#071913d9)}
.gallery .gallery-card img {width:100%;height:100%;object-fit:cover;transform:none;filter:none;transition:transform 1.25s cubic-bezier(.2,.7,.3,1),filter .8s}
.gallery .gallery-card .caption {position:absolute;bottom:0;left:0;right:0;z-index:3;display:block;margin:0;padding:22px;font-size:1rem;line-height:1.25;letter-spacing:0}
.gallery .gallery-caption-title {display:block;font-family:var(--serif);font-size:clamp(1.15rem,1.7vw,1.8rem);line-height:1.15;max-width:90%}
.gallery .gallery-card:nth-child(8n+1) .gallery-caption-title,
.gallery .gallery-card:nth-child(8n+6) .gallery-caption-title {font-size:clamp(1.7rem,2.7vw,2.8rem);max-width:85%}
.gallery .gallery-caption-hint {display:block;font-size:.59rem;letter-spacing:.14em;text-transform:uppercase;color:#e5d1a6;margin-top:10px;opacity:.8}
.gallery .gallery-card .open-indicator {inset:auto 17px 20px auto;width:32px;height:32px;border-radius:50%;font-size:1.1rem;z-index:4;transform:none;opacity:.9;background:#163d3070;backdrop-filter:none;transition:background .4s,transform .4s}
.gallery .gallery-card.cutout {background:var(--paper);background-image:url('assets/menu-paper-texture.avif');background-size:400px;color:var(--green);border:1px solid #a4874530}
.gallery .gallery-card.cutout img {object-fit:contain;padding:24px 24px 70px}
.gallery .gallery-card.cutout .gallery-image::after {background:linear-gradient(transparent 55%,#f7f0e4ed)}
.gallery .gallery-card.cutout .gallery-caption-hint {color:#846b37}
.gallery .gallery-card.cutout .open-indicator {color:var(--green);background:#b08b4c26;border-color:#a4874566}
.gallery .gallery-card:focus-visible {outline:3px solid var(--gold);outline-offset:5px;box-shadow:0 10px 35px #173e3140}
.gallery .gallery-card:focus-visible img {transform:scale(1.045)}
.gallery .gallery-card:active .open-indicator {transform:scale(.88)}
.gallery #gallery-more {margin:32px auto 0;padding:15px 32px;background:var(--green);color:var(--cream);border-color:var(--green)}
.gallery .gallery-status {font-size:.7rem;letter-spacing:.1em;margin-top:18px}
@media(hover:hover) and (pointer:fine) {
  .gallery .gallery-card:hover {transform:none;box-shadow:0 15px 40px #173e3130}
  .gallery .gallery-card:hover img {transform:scale(1.065);filter:saturate(1.06)}
  .gallery .gallery-card:hover .open-indicator {transform:rotate(45deg);background:var(--gold);color:var(--green)}
}
@media(max-width:1050px) and (min-width:761px) {
  .gallery .gallery-grid {gap:12px;grid-auto-rows:145px}
  .gallery .gallery-card .caption {padding:15px}
  .gallery .gallery-caption-title {font-size:1.15rem}
}
@media(max-width:760px) {
  .gallery .gallery-top {display:block;margin-bottom:26px}
  .gallery .gallery-top > p {max-width:390px;margin-top:22px;font-size:.9rem}
  .gallery .gallery-filters {width:100%;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:5px;margin-bottom:22px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .gallery .gallery-filters button {flex:0 0 auto;white-space:nowrap;padding:10px 13px;font-size:.72rem}
  .gallery .gallery-grid {grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(155px,43vw,220px);gap:10px}
  .gallery .gallery-card:nth-child(n) {grid-column:span 1;grid-row:span 1;margin:0}
  .gallery .gallery-card:nth-child(8n+1),.gallery .gallery-card:nth-child(8n+6) {grid-column:span 2;grid-row:span 2}
  .gallery .gallery-card:nth-child(8n+7),.gallery .gallery-card:nth-child(8n+8) {grid-row:span 2}
  .gallery .gallery-card .caption {padding:14px; padding-right:35px}
  .gallery .gallery-caption-title {font-size:1.08rem;max-width:100%}
  .gallery .gallery-card:nth-child(8n+1) .gallery-caption-title,.gallery .gallery-card:nth-child(8n+6) .gallery-caption-title {font-size:1.9rem}
  .gallery .gallery-caption-hint {font-size:.46rem;margin-top:7px;letter-spacing:.08em}
  .gallery .gallery-card .open-indicator {right:10px;bottom:16px;width:25px;height:25px;font-size:.9rem}
  .gallery .gallery-card.cutout img {padding:16px 12px 65px}
}
@media(prefers-reduced-motion:reduce) {
  .gallery .gallery-card img,.gallery .gallery-card:hover img,.gallery .gallery-card:focus-visible img {transform:none;transition:none}
}

.gallery .gallery-card.is-unavailable .gallery-image::before {content:"Sa Llum";position:absolute;inset:0;display:grid;place-items:center;font:italic 2rem var(--serif);color:var(--gold)}

.gallery .gallery-card .open-indicator svg{display:block;width:17px;height:17px;pointer-events:none}
