.gallery {
  background: #fff;
  text-align: left;
}

.gallery-heading {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: end;
  gap: 70px;
  max-width: 1200px;
  margin: 0 auto 48px;
}

.gallery-heading > p {
  margin: 0 0 8px;
  font-size: 15px;
}

.gallery-grid {
  max-width: 1200px;
  margin: auto;
  columns: 3;
  column-gap: 16px;
}

.gallery-grid figure {
  margin: 0 0 16px;
  overflow: hidden;
  background: var(--peach);
  break-inside: avoid;
}

.gallery-grid img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .65s ease;
}

.gallery-grid figure:hover img { transform: scale(1.035); }

.gallery-note {
  max-width: 1200px;
  margin: 20px auto 0;
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
}

.faq { background: #fff; }
.faq-grid { max-width: 900px; margin: 48px auto 0; text-align: left; }
.faq details { border-top: 1px solid var(--line); padding: 19px 4px; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 600; }
.faq details p { margin: 12px 0 2px; }
footer { grid-template-columns: 1.5fr repeat(4, 1fr); }

@media (max-width: 800px) {
  .gallery-heading { grid-template-columns: 1fr; gap: 20px; }
  .gallery-grid { columns: 2; }
  footer { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
  .gallery-grid { columns: 1; }
  .gallery-grid figure { margin-bottom: 12px; }
  footer { grid-template-columns: 1fr; }
}
