.post__title {
  font-size: calc(18px + 4 * (100vw - 320px) / 1046);
  line-height: 1.5;
  letter-spacing: 0.1em;
  padding-bottom: 5px;
  border-bottom: 2px solid #20912d;
  margin-top: 10px;
}
@media screen and (min-width: 1440px) {
  .post__title {
    font-size: 22px;
  }
}

.container .date {
  width: min-content;
  font-size: calc(16px + 2 * (100vw - 320px) / 1046);
}
@media screen and (min-width: 1440px) {
  .container .date {
    font-size: 18px;
  }
}

.container .contents__box .thumbnail {
  width: 100%;
  margin: auto;
  height: 40vw;
  max-height: 710px;
}

.container .contents__box .thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.container .contents__box .contents {
  margin-top: 30px;
}

.container .contents__box .contents h2 {
  font-size: calc(18px + 2 * (100vw - 320px) / 1046);
  line-height: 1.5;
  letter-spacing: 0.1em;
  padding-left: 30px;
  color: #20912d;
  font-weight: bold;
  position: relative;
}
.container .contents__box .contents h2::before {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: #20912d;
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (min-width: 1440px) {
  .container .contents__box .contents h2 {
    font-size: 20px;
  }
}

.container .contents__box .contents h3 {
  font-size: calc(16px + 2 * (100vw - 320px) / 1046);
  line-height: 1.5;
  letter-spacing: 0.1em;
  border-bottom: 1px solid #20912d;
  width: fit-content;
  padding-bottom: 5px;
  font-weight: bold;
}
@media screen and (min-width: 1440px) {
  .container .contents__box .contents h3 {
    font-size: 18px;
  }
}

.container .contents__box .contents p {
  font-size: calc(14px + 2 * (100vw - 320px) / 1046);
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 1440px) {
  .container .contents__box .contents p {
    font-size: 16px;
  }
}

.container .detail__link {
  margin: auto;
  margin-top: 60px;
  position: relative;
}
.container .detail__link::after {
  width: 10px;
  height: 10px;
  border-bottom: 3px solid #ffffff;
  border-right: 3px solid #ffffff;
  transform: rotate(-45deg);
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  content: "";
  position: absolute;
}

/* ----------------------------------------------------------------------------------------------- */
/* responsive */
@media screen and (max-width: 768px) {
  .container {
    margin-bottom: 100px;
  }

  .container .detail__link {
    width: 200px;
  }

  .container .detail__link::after {
    width: 6px;
    height: 6px;
    border-bottom: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
  }
}

@media screen and (max-width: 480px) {
  .container {
    margin-top: 60px;
  }
}
/* ----------------------------------------------------------------------------------------------- */

.alignright {
  display: block;
  margin: 0 0 0 auto;
  max-width: 100%;
}
.aligncenter {
  display: block;
  margin: auto;
  max-width: 100%;
}
