.image-slot {
  min-height: 210px;
  margin: 24px 0 20px;
  border: 4px solid #fff;
  border-radius: 20px;
  background: #f6f4f2;
  box-shadow: 0 9px 28px rgba(83,65,58,.14), inset 0 0 0 2px #ddd5d0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 25px;
  color: #8a7c76;
}
.image-slot::before {
  content: "▧";
  font-size: 42px;
  line-height: 1;
  color: var(--coral);
  margin-bottom: 10px;
}
.image-slot b {
  color: var(--coral-dark);
  font-size: 14px;
  margin-bottom: 5px;
}
.image-slot span {
  font-size: 14px;
  line-height: 1.7;
}
.howto-shot {
  margin: 24px 0 20px;
  border: 7px solid #fff;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 9px 28px rgba(83,65,58,.14), 0 0 0 1px #e7dfda;
}
.howto-shot img {
  width: 100%;
  height: auto;
  display: block;
}
.howto-shot figcaption {
  padding: 11px 14px 12px;
  color: #746762;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  line-height: 1.55;
}
.shot-sequence {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.shot-sequence.three {
  grid-template-columns: 1fr;
}
.shot-sequence .howto-shot {
  margin: 0;
}
@media (max-width: 620px) {
  .howto-shot {
    margin-left: -12px;
    margin-right: -12px;
    border-width: 5px;
    border-radius: 15px;
  }
  .shot-sequence {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .shot-sequence .howto-shot {
    margin-left: -12px;
    margin-right: -12px;
  }
}
.gallery-invite {
  position: relative;
  margin-top: 28px;
  padding: 52px 28px;
  overflow: hidden;
  border: 1px solid #d7efeb;
  border-radius: 32px;
  background: linear-gradient(135deg, #edfaf8, #fff 52%, #fff1f4);
  text-align: center;
}
.gallery-invite-mark {
  position: absolute;
  top: -28px;
  right: 28px;
  color: rgba(118,216,208,.28);
  font-size: 120px;
  line-height: 1;
}
.gallery-invite h2 {
  position: relative;
  margin: 4px 0 10px;
  font-family: "Kiwi Maru", serif;
  font-size: 34px;
  font-weight: 500;
}
.gallery-invite > p:not(.kicker) {
  position: relative;
  margin: 0 0 24px;
  color: #746762;
}
.gallery-button {
  position: relative;
  background: linear-gradient(135deg, #58c8c0, #3eb2aa);
  box-shadow: 0 10px 24px rgba(62,178,170,.24);
}
@media (max-width: 620px) {
  .gallery-invite {
    padding: 42px 20px;
  }
  .gallery-invite h2 {
    font-size: 27px;
  }
  .gallery-invite > p:not(.kicker) {
    font-size: 15px;
  }
}
