#photo * {
  box-sizing: border-box;
}

#photo a {
  text-decoration: none;
}

#photo > div {
  display: block;
  position: absolute;
  z-index: 0;
  margin: 0;
  padding: 0;
  border: none;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
}

#photo .description {
  overflow: hidden;
  margin: 0;
  padding: 10px;
  border: none;
  width: 100%;
  font-size: 0.8em;
}

#photo {
  display: block;
  overflow: auto;
  position: relative;
  width: 100%;
  height: auto;
  box-sizing: border-box;
}
#photo::after {
  content: "";
  display: block;
  padding-bottom: 141.421%; /* 高さを幅の√2倍に */
}

#photo img {
  width: 100%;
  vertical-align: middle;
}

#photo .titlebox {
  text-align: left;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border: none;
  width: 100%;
}
#photo .titlebox h3 {
  text-align: center;
  position: relative;
  display: inline-block;
  margin: 0;
  padding: 7% 0 0 0;
  width: 100%;
  color: #000;
  font-size: 17px;
}
@media screen and (max-width: 1024px) {
  #photo .titlebox h3 {
    padding: 6% 0 0 0;
    font-size: 15px;
  }
}
@media screen and (max-width: 765px) {
  #photo .titlebox h3 {
    padding: 3% 0 0 0;
    font-size: 12px;
  }
}
@media screen and (max-width: 375px) {
  #photo .titlebox h3 {
    padding: 2% 0 0 0;
  }
}

#photo .titlebox .logo {
  margin: 0 auto;
  padding: 6% 0 0 0;
  width: 80%;
  text-align: center;
}
#photo .titlebox .logo img {
  width: 64%;
}
@media screen and (max-width: 1024px) {
  #photo .titlebox .logo {
    padding: 5% 0 0 0;
  }
}
@media screen and (max-width: 765px) {
  #photo .titlebox .logo {
    margin: 1% auto 3%;
    padding: 5% 0 0 0;
    width: 64%;
  }
}
@media screen and (max-width: 375px) {
  #photo .titlebox .logo {
    margin: 0% auto 1%;
  }
}

#photo .titlebox .photo {
  margin: 7% auto 3%;
  width: 80%;
  text-align: center;
}
#photo .titlebox .photo .title {
  margin: 0 0 0 5px;
}
#photo .titlebox .photo img {
  width: 38%;
}
@media screen and (max-width: 1024px) {
  #photo .titlebox .photo {
    margin: 5% auto 3%;
  }
}
@media screen and (max-width: 765px) {
  #photo .titlebox .photo {
    margin: 4% auto 6%;
  }
  #photo .titlebox .photo img {
    width: 38%;
  }
}
@media screen and (max-width: 375px) {
  #photo .titlebox .photo {
    margin: 3% auto 4%;
  }
}

#photo .titlebox .page {
  margin-bottom: 24px;
  margin-bottom: 4%;
  font-size: 16px;
  font-weight: 700;
  color: #505050;
  text-align: center;
  line-height: 28px;
}
#photo .titlebox .page span {
  font-size: 21px;
  color: #d90061;
}
#photo .titlebox .page .large {
  font-size: 25px;
}
@media screen and (max-width: 1024px) {
  #photo .titlebox .page {
    margin-bottom: 3%;
    font-size: 14px;
    line-height: 22px;
  }
  #photo .titlebox .page span {
    font-size: 18px;
  }
  #photo .titlebox .page .large {
    font-size: 21px;
  }
}
@media screen and (max-width: 765px) {
  #photo .titlebox .page {
    margin-bottom: 2%;
    font-size: 12.6px;
    line-height: 20px;
  }
  #photo .titlebox .page span {
    font-size: 16px;
  }
  #photo .titlebox .page .large {
    font-size: 20px;
  }
}
@media screen and (max-width: 375px) {
  #photo .titlebox .page {
    font-size: 10px;
    line-height: 18px;
  }
  #photo .titlebox .page span {
    font-size: 14px;
  }
  #photo .titlebox .page .large {
    font-size: 18px;
  }
}

#photo .member {
  margin-bottom: 4%;
  padding: 1% 0 3%;
  text-align: center;
  background-color: #ffe8f2;
}
#photo .member .text {
  margin-bottom: 1.5%;
  font-size: 15px;
  font-weight: 700;
  color: #414141;
}
#photo .member .text span {
  color: #d90061;
}
#photo .member .text .large {
  font-size: 18px;
}
#photo .member .text strong {
  font-size: 25px;
}
#photo .member .button_wrap {
  width: 52%;
  min-width: 240px;
  margin: 0 auto;
  background-color: #fff;
  border-radius: 32px;
}
#photo .member .button {
  display: grid;
  width: 100%;
  height: 41px;
  padding-top: 4px;
  place-items: center;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  background-color: #d90060;
  border-radius: 22px;
  box-shadow: 1.5px 3px 0 #952658;
}
#photo .member .button:hover {
  opacity: 0.6;
}
@media screen and (max-width: 1024px) {
  #photo .member {
    padding: 2% 0 3%;
  }
  #photo .member .text {
    font-size: 13px;
  }
  #photo .member .text .large {
    font-size: 16px;
  }
  #photo .member .text strong {
    font-size: 20px;
  }
  #photo .member .button {
    height: 36px;
    font-size: 16px;
  }
}
@media screen and (max-width: 765px) {
  #photo .member {
    margin-bottom: 3%;
    padding: 3% 0 4%;
  }
  #photo .member .text {
    margin-bottom: 1px;
    font-size: 12px;
  }
  #photo .member .text .large {
    font-size: 14px;
  }
  #photo .member .text strong {
    font-size: 18px;
  }
  #photo .member .button_wrap {
    width: 58%;
    min-width: auto;
    bottom: 6.6px;
    border-radius: 28px;
  }
  #photo .member .button {
    height: 30px;
    font-size: 12px;
    border-radius: 28px;
    padding-top: 2px;
  }
}
@media screen and (max-width: 375px) {
  #photo .member {
    padding: 2% 0 3%;
  }
  #photo .member .text {
    font-size: 10px;
  }
  #photo .member .text .large {
    font-size: 12px;
  }
  #photo .member .text strong {
    font-size: 16px;
  }
}

#photo .banner {
  text-align: center;
}
#photo .banner a:hover {
  opacity: 0.6;
}
#photo .banner img {
  width: 70%;
}
@media screen and (max-width: 765px) {
  #photo .banner {
    margin-bottom: 11.5px;
  }
  #photo .banner img {
    width: 295px;
  }
}

#photo .relativebox {
  position: absolute;
  overflow: hidden;
  left: 0;
  right: 0;
  bottom: 0;
  text-align: center;
}
#photo .relativebox a {
  text-decoration: none;
}
#photo .relativebox #linkTop {
  display: block;
  width: 100%;
  color: #fff;
  padding: 10px;
  background: #1a1311;
  font-size: 17px;
  font-weight: 700;
}
@media screen and (max-width: 1024px) {
  #photo .relativebox #linkTop {
    padding: 8px;
    font-size: 15px;
  }
}
@media screen and (max-width: 765px) {
  #photo .relativebox #linkTop {
    padding: 8px;
    font-size: 12px;
  }
}
