.catalogue-page { background: var(--ivory); }
.catalogue-page .site-header { color: var(--ink); }
.catalogue-page main { padding-top: 72px; }
.catalogue-hero { padding: clamp(90px, 10vw, 145px) 0 clamp(70px, 8vw, 110px); border-bottom: 1px solid var(--line); background: var(--canvas); }
.catalogue-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: end; }
.catalogue-hero h1 { max-width: 760px; margin: 0; font-family: var(--serif); font-size: clamp(3.8rem, 7vw, 7rem); letter-spacing: -.035em; line-height: .94; }
.catalogue-hero-grid > div:last-child > p { max-width: 510px; margin-bottom: 30px; color: var(--muted); }
.catalogue-gallery-section { padding: clamp(75px, 9vw, 125px) 0; }
.gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 44px; }
.gallery-heading h2 { font-size: clamp(2.8rem, 5vw, 5rem); }
.gallery-heading p { margin: 0 0 9px; color: var(--muted); font-size: .78rem; }
.full-catalogue-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.catalogue-item { position: relative; margin: 0; overflow: hidden; background: #e6dfd3; }
.catalogue-item button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.catalogue-item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .45s ease, filter .45s ease; }
.catalogue-item figcaption { position: absolute; right: 12px; bottom: 12px; padding: 7px 10px; background: rgba(250,248,243,.92); color: var(--forest); font-size: .62rem; font-weight: 700; letter-spacing: .1em; pointer-events: none; text-transform: uppercase; }
.catalogue-item:hover img { filter: saturate(1.04); transform: scale(1.025); }
.catalogue-dialog { width: min(92vw, 960px); max-height: 92vh; padding: 18px; border: 0; background: var(--paper); color: var(--ink); }
.catalogue-dialog::backdrop { background: rgba(10,20,15,.82); backdrop-filter: blur(4px); }
.catalogue-dialog > button { position: absolute; top: 26px; right: 26px; z-index: 1; display: grid; width: 42px; height: 42px; border: 0; background: var(--paper); color: var(--forest); font-size: 1.55rem; place-items: center; cursor: pointer; }
.catalogue-dialog img { width: 100%; max-height: calc(92vh - 86px); object-fit: contain; }
.catalogue-dialog p { margin: 12px 0 0; text-align: center; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.catalogue-enquiry { padding: clamp(75px, 9vw, 120px) 0; background: var(--forest); color: white; text-align: center; }
.catalogue-enquiry h2 { max-width: none; color: white; }
.catalogue-enquiry > div > p:not(.eyebrow) { max-width: 620px; margin: 24px auto 34px; color: rgba(255,255,255,.7); }
.catalogue-page .site-footer { padding-top: 30px; }

@media (max-width: 700px) {
  .catalogue-page main { padding-top: 72px; }
  .catalogue-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .catalogue-hero h1 { font-size: clamp(3.4rem, 16vw, 5rem); }
  .gallery-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
  .full-catalogue-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .catalogue-item figcaption { right: 7px; bottom: 7px; padding: 5px 7px; font-size: .55rem; }
  .catalogue-dialog { width: 96vw; padding: 10px; }
}
