/* Laura Barnard Photography — gallery + rates pages. */

.lbp-grid {
  columns: 1;
  gap: var(--sc-4);
}
@media (min-width: 640px)  { .lbp-grid { columns: 2; } }
@media (min-width: 1020px) { .lbp-grid { columns: 3; } }

.lbp-grid__item {
  break-inside: avoid;
  margin-bottom: var(--sc-4);
  border-radius: var(--sc-r-md);
  overflow: hidden;
  cursor: zoom-in;
  display: block;
  border: 0; padding: 0; background: none; width: 100%;
}
.lbp-grid__item img {
  width: 100%; height: auto; display: block;
  transition: transform var(--sc-d-slow) var(--sc-ease-out), filter var(--sc-d-slow) var(--sc-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .lbp-grid__item:hover img { transform: scale(1.03); }
}
.lbp-grid__item:focus-visible img { transform: scale(1.03); }
.lbp-grid__item:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 3px; }

.lbp-empty {
  border: 1px dashed rgba(42, 36, 29, 0.25);
  border: 1px dashed color-mix(in oklab, var(--sc-ink) 25%, transparent);
  border-radius: var(--sc-r-lg);
  padding: var(--sc-8) var(--sc-6);
  text-align: center;
  color: var(--sc-ink-soft);
}
.lbp-empty p { margin: 0 auto; max-width: 46ch; }

/* -------------------------------------------------------------- lightbox */

.lbp-lightbox {
  position: fixed; inset: 0; z-index: 200;
  background: #1A1712;
  background: color-mix(in oklab, var(--sc-ink) 92%, black);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity var(--sc-d-base) var(--sc-ease-out);
}
.lbp-lightbox.is-open { opacity: 1; pointer-events: auto; }
.lbp-lightbox img {
  max-width: min(92vw, 1400px);
  max-height: 88vh; max-height: 88svh;
  object-fit: contain; box-shadow: var(--sc-e3);
}
.lbp-lightbox__close {
  position: absolute;
  top: max(clamp(1rem,3vw,2rem), env(safe-area-inset-top, 0px));
  right: max(clamp(1rem,3vw,2rem), env(safe-area-inset-right, 0px));
  display: grid; place-items: center;
  min-width: 44px; min-height: 44px;
  background: none; border: 0; color: #F6F1E9; cursor: pointer; padding: 0.5rem;
}
.lbp-lightbox__close svg { width: 26px; height: 26px; display: block; }

/* ----------------------------------------------------------------- rates */

.rates-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--sc-5);
}
.rate-card {
  background: var(--sc-surface);
  border: 1px solid rgba(42, 36, 29, 0.1);
  border: 1px solid color-mix(in oklab, var(--sc-ink) 10%, transparent);
  border-radius: var(--sc-r-lg);
  padding: var(--sc-6);
  display: flex; flex-direction: column; gap: var(--sc-3);
}
.rate-card h3 { font-family: var(--sc-font-display); font-size: var(--sc-t-xl); margin: 0; }
.rate-card ul { margin: 0; padding-left: 1.1rem; color: var(--sc-ink-soft); font-family: var(--sc-font-text); }
.rate-card li { margin-bottom: 0.3rem; }
.rate-card__cta {
  margin-top: auto; align-self: flex-start;
  font-family: var(--sc-font-text); text-transform: uppercase; letter-spacing: var(--sc-track-wide); font-size: var(--sc-t-xs);
  color: var(--sc-accent); text-decoration: none; border-bottom: 1px solid var(--sc-accent); padding-bottom: 2px;
}
