/* Vinaigrette editorial gallery — composed pages, not a slideshow. */
.gallery-editorial {
  padding: clamp(108px,11vh,145px) max(44px,6vw) clamp(34px,5vh,60px);
}

.gallery-editorial--intro {
  display: grid;
  grid-template-columns: .62fr 1.38fr;
  gap: clamp(50px,7vw,120px);
  color: var(--black);
  background: var(--cream);
}

.gallery-editorial__copy {
  align-self: center;
}

.gallery-editorial__copy h1 {
  margin-bottom: 28px;
  font-size: clamp(4.5rem,6.8vw,8rem);
  line-height: .9;
}

.gallery-editorial__copy > p:not(.eyebrow) {
  max-width: 430px;
  color: rgba(13,12,10,.68);
}

.gallery-editorial__copy > span {
  display: block;
  margin-top: clamp(35px,6vh,70px);
  color: var(--gold-deep);
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.gallery-intro-composition,
.gallery-room-composition,
.gallery-table-composition,
.gallery-materials-composition,
.gallery-sushi-composition {
  position: relative;
  display: grid;
  min-height: 0;
}

.gallery-intro-composition {
  grid-template-columns: repeat(12,1fr);
  grid-template-rows: repeat(12,1fr);
}

.gallery-tile {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: var(--black);
}

.gallery-tile button {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  color: var(--white);
  background: transparent;
  cursor: zoom-in;
}

.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.74) contrast(1.03);
  transition: transform .65s var(--ease),filter .4s;
}

.gallery-tile button:hover img {
  filter: saturate(.9) contrast(1.03);
  transform: scale(1.025);
}

.gallery-tile button > span {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 7px 10px;
  color: var(--black);
  background: var(--gold);
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .13em;
  opacity: 0;
  text-transform: uppercase;
  transition: opacity .25s;
}

.gallery-tile button:hover > span,
.gallery-tile button:focus-visible > span {
  opacity: 1;
}

.gallery-tile--intro-main { grid-column: 1 / 9; grid-row: 1 / 13; }
.gallery-tile--intro-top { z-index: 2; grid-column: 9 / 13; grid-row: 1 / 7; margin: 0 0 10px 10px; }
.gallery-tile--intro-bottom { z-index: 3; grid-column: 8 / 13; grid-row: 7 / 13; margin: 10px 0 0 10px; }

.gallery-editorial--room,
.gallery-editorial--table,
.gallery-editorial--sushi {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: clamp(24px,3vh,38px);
  color: var(--white);
  background: var(--black);
}

.gallery-editorial__heading {
  display: grid;
  grid-template-columns: .55fr 1.15fr .72fr;
  gap: 42px;
  align-items: end;
}

.gallery-editorial__heading > p {
  margin: 0;
  font-size: .61rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.gallery-editorial__heading > p span {
  display: block;
  margin-bottom: 7px;
  color: var(--gold);
}

.gallery-editorial__heading h2 {
  margin: 0;
  font-size: clamp(3.6rem,5vw,6rem);
}

.gallery-editorial__heading small {
  max-width: 360px;
  color: rgba(255,255,255,.58);
  font-size: .72rem;
  line-height: 1.7;
}

.gallery-room-composition {
  grid-template-columns: repeat(12,1fr);
  grid-template-rows: repeat(8,1fr);
  gap: 12px;
}

.gallery-tile--room-wide { grid-column: 1 / 8; grid-row: 1 / 9; }
.gallery-tile--room-tall { grid-column: 8 / 11; grid-row: 1 / 9; }
.gallery-tile--room-detail { grid-column: 11 / 13; grid-row: 3 / 8; }

.gallery-editorial--materials {
  color: var(--black);
  background: var(--cream-2);
}

.gallery-materials-composition {
  height: 100%;
  grid-template-columns: repeat(12,1fr);
  grid-template-rows: repeat(10,1fr);
  gap: 14px;
}

.gallery-tile--materials-main { grid-column: 1 / 8; grid-row: 1 / 11; }
.gallery-tile--materials-detail { z-index: 2; grid-column: 7 / 10; grid-row: 6 / 11; border: 10px solid var(--cream-2); }
.gallery-materials-copy { grid-column: 9 / 13; grid-row: 1 / 6; align-self: center; padding-left: clamp(15px,3vw,50px); }
.gallery-materials-copy h2,
.gallery-sushi-copy h2 {
  margin-bottom: 24px;
  font-size: clamp(3.7rem,5.2vw,6.2rem);
}

.gallery-materials-copy > p:last-child,
.gallery-sushi-copy > p:not(.eyebrow) {
  max-width: 430px;
  color: rgba(13,12,10,.65);
}

.gallery-editorial--table {
  grid-template-columns: .34fr 1fr;
  grid-template-rows: 1fr;
  gap: clamp(35px,5vw,80px);
}

.gallery-editorial__heading--compact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.gallery-editorial__heading--compact h2 {
  margin-top: 32px;
}

.gallery-table-composition {
  grid-template-columns: repeat(12,1fr);
  grid-template-rows: repeat(8,1fr);
  gap: 11px;
}

.gallery-tile--table-main { grid-column: 1 / 8; grid-row: 1 / 9; }
.gallery-tile--table-fire { grid-column: 8 / 13; grid-row: 1 / 5; }
.gallery-tile--table-oyster { grid-column: 8 / 10; grid-row: 5 / 9; }
.gallery-tile--table-paella { grid-column: 10 / 13; grid-row: 5 / 9; }

.gallery-editorial--sushi {
  display: block;
}

.gallery-sushi-composition {
  height: 100%;
  grid-template-columns: repeat(12,1fr);
  grid-template-rows: repeat(12,1fr);
  gap: 14px;
}

.gallery-tile--sushi-main { grid-column: 1 / 8; grid-row: 1 / 13; }
.gallery-tile--sushi-detail { z-index: 2; grid-column: 7 / 10; grid-row: 7 / 13; border: 9px solid var(--black); }
.gallery-sushi-copy { grid-column: 9 / 13; grid-row: 2 / 8; align-self: center; padding-left: clamp(20px,3vw,50px); }
.gallery-sushi-copy > p:not(.eyebrow) { color: rgba(255,255,255,.62); }

.gallery-editorial--sunset {
  color: var(--white);
  background: var(--black);
}

.gallery-sunset-media,
.gallery-sunset-shade {
  position: absolute;
  inset: 0;
}

.gallery-sunset-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.82) brightness(.72);
}

.gallery-sunset-shade {
  background: linear-gradient(90deg,rgba(8,7,5,.82),rgba(8,7,5,.12) 70%),linear-gradient(0deg,rgba(8,7,5,.48),transparent 56%);
}

.gallery-sunset-copy {
  position: relative;
  z-index: 2;
  display: flex;
  height: 100%;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: var(--shell);
  margin-inline: auto;
}

.gallery-sunset-copy h2 {
  margin-bottom: 26px;
  font-size: clamp(4.5rem,7vw,8.5rem);
}

.gallery-sunset-copy > p:not(.eyebrow) {
  max-width: 420px;
  margin-bottom: 32px;
  color: rgba(255,255,255,.72);
}

@media (max-width: 900px) {
  .gallery-editorial {
    padding: 82px 19px 24px;
  }

  .gallery-editorial--intro {
    grid-template-columns: .72fr 1.28fr;
    gap: 25px;
  }

  .gallery-editorial__copy h1 {
    font-size: clamp(3.4rem,9vw,5rem);
  }

  .gallery-editorial__heading {
    grid-template-columns: .45fr 1fr;
    gap: 22px;
  }

  .gallery-editorial__heading small {
    display: none;
  }

  .gallery-editorial__heading h2 {
    font-size: clamp(3rem,8vw,4.4rem);
  }

  .gallery-editorial--table {
    grid-template-columns: .4fr 1fr;
    gap: 24px;
  }

  .gallery-materials-copy h2,
  .gallery-sushi-copy h2 {
    font-size: clamp(3rem,7vw,4.4rem);
  }
}

@media (max-width: 620px) {
  .gallery-editorial {
    padding: 78px 14px 18px;
  }

  .gallery-editorial--intro {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    gap: 16px;
  }

  .gallery-editorial__copy h1 {
    margin-bottom: 8px;
    font-size: 3.35rem;
  }

  .gallery-editorial__copy > p:not(.eyebrow) {
    display: none;
  }

  .gallery-editorial__copy > span {
    display: none;
  }

  .gallery-intro-composition {
    min-height: 0;
  }

  .gallery-tile--intro-main { grid-column: 1 / 10; }
  .gallery-tile--intro-top { grid-column: 10 / 13; }
  .gallery-tile--intro-bottom { grid-column: 8 / 13; }

  .gallery-editorial--room,
  .gallery-editorial--table {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    gap: 14px;
  }

  .gallery-editorial__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 15px;
  }

  .gallery-editorial__heading h2 {
    font-size: 2.65rem;
    text-align: right;
  }

  .gallery-editorial__heading--compact {
    flex-direction: row;
  }

  .gallery-editorial__heading--compact h2 {
    margin-top: 0;
  }

  .gallery-room-composition,
  .gallery-table-composition {
    min-height: 0;
  }

  .gallery-tile--room-wide { grid-column: 1 / 9; }
  .gallery-tile--room-tall { grid-column: 9 / 13; }
  .gallery-tile--room-detail { display: none; }

  .gallery-tile--table-main { grid-column: 1 / 9; }
  .gallery-tile--table-fire { grid-column: 9 / 13; grid-row: 1 / 5; }
  .gallery-tile--table-oyster { display: none; }
  .gallery-tile--table-paella { grid-column: 9 / 13; grid-row: 5 / 9; }

  .gallery-materials-composition {
    grid-template-rows: repeat(12,1fr);
  }

  .gallery-tile--materials-main { grid-column: 1 / 10; grid-row: 1 / 8; }
  .gallery-tile--materials-detail { grid-column: 8 / 13; grid-row: 6 / 10; border-width: 6px; }
  .gallery-materials-copy { grid-column: 1 / 13; grid-row: 9 / 13; align-self: end; padding: 12px 0 0; }
  .gallery-materials-copy h2 { margin-bottom: 5px; font-size: 2.8rem; }
  .gallery-materials-copy > p:last-child { display: none; }

  .gallery-tile--sushi-main { grid-column: 1 / 13; }
  .gallery-tile--sushi-detail { display: none; }
  .gallery-tile--sushi-main img { filter: saturate(.7) brightness(.54); }
  .gallery-sushi-copy { z-index: 2; grid-column: 1 / 13; grid-row: 6 / 13; align-self: end; padding: 20px; }
  .gallery-sushi-copy h2 { margin-bottom: 12px; font-size: 3.2rem; }
  .gallery-sushi-copy > p:not(.eyebrow) { font-size: .76rem; line-height: 1.5; }

  .gallery-sunset-copy {
    width: calc(100% - 38px);
    padding-bottom: 45px;
    justify-content: flex-end;
  }

  .gallery-sunset-copy h2 {
    margin-bottom: 14px;
    font-size: 3.8rem;
  }

  .gallery-sunset-copy > p:not(.eyebrow) {
    margin-bottom: 20px;
  }
}
