/* -------------------- mainContentsRelContainer -------------------- */

#mainContents .mainContentsRelContainer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
	margin-left: -1.5rem;
	margin-right: -1.5rem;
  margin-bottom: -3rem;
}

#mainContents .mainContentsRelContainer .linkContainer {
  display: block;
  margin: 0;
  position: relative;
  border: 1px solid #cccccc;
  padding: 2.25rem 2.25rem 0;
  min-height: 18.3rem;
}

_:-ms-lang(x)::-ms-backdrop, #mainContents .mainContentsRelContainer .linkContainer {
  border: none;
}

#mainContents .mainContentsRelContainer .linkHoverEffect01:before {
  content: "";
  margin-top: calc(1.5rem - 1px);
  margin-left: calc(1.5rem - 1px);
}

#mainContents .mainContentsRelContainer .linkHoverEffect01:hover:before {
  width: calc(100% + 2px);
  height: calc(100% + 2px);
}

#mainContents .mainContentsRelContainer .linkContainer:after {
  content: "";
  display: block;
  clear: both;
}

#mainContents .mainContentsRelContainer .linkContainer .linkContentsHeader {
	font-weight: 700;
  display: block;
  margin: 0 0 0.75rem 0;
}

#mainContents .mainContentsRelContainer .linkContainer .linkContentsText {
	font-weight: 300;
  padding: 0 0 2.25rem 0;
  margin: 0;
}

#mainContents .mainContentsRelContainer .linkContainer .linkContentsThumb {
  float: right;
  margin: 0.6rem 0 2.25rem 2.25rem;
  width: 10rem;
}

#mainContents .mainContentsRelContainer .linkContainer .linkContentsThumb img {
  display: block;
  width: 100%;
}

@media all and (min-width: 960px) {

  #mainContents .mainContentsRelContainer > div {
    flex-basis: calc(50% - 3rem);
    max-width: calc(50% - 3rem);
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    margin-bottom: 3rem;
  }

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsHeader {
    font-size: 0.93vw;;
  }

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsText {
    font-size: 0.86vw;
  }

}

@media screen and (min-width: 1450px) {

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsHeader {
    font-size: 1.4rem; !important;
  }

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsText {
    font-size: 1.3rem !important;
  }

}

@media screen and (max-width: 959px) {

  #mainContents .mainContentsRelContainer > div {
    flex-basis: calc(100% - 3rem);
    max-width: calc(100% - 3rem);
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    margin-bottom: 3rem;
  }

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsHeader {
    font-size: 1.6rem; !important;
    font-weight: 500;
    margin: 0 0 0.75rem 0;
  }

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsText {
    font-weight: 300;
    font-size: 1.5rem !important;
    margin: 0 0 1.5rem 0;
  }

  #mainContents .mainContentsRelContainer .linkContainer .linkContentsThumb {
    margin: 0.6rem 0 1.5rem 1.5rem;
  }

}

/* -------------------- mainContentsRelContainer02 -------------------- */

#mainContents .mainContentsRelContainer02 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
	margin-left: -1.5rem;
	margin-right: -1.5rem;
  margin-bottom: -3rem;
}

#mainContents .mainContentsRelContainer02 .linkContainer {
  display: block;
  margin: 0;
  position: relative;
  border: 1px solid #cccccc;
  padding: 2.5rem 2.5rem 0.25rem;
  border-radius: 2.5rem;
  transition-duration: 0.2s;
  min-height: 20rem;
}

#mainContents .mainContentsRelContainer02 .linkContainer:hover {
  border-color: #109189;
  box-shadow: 0 0 1.2rem rgb(16 145 137 / 40%);
  transition-duration: 0.2s;
}

#mainContents .mainContentsRelContainer02 .linkHoverEffect01:before {
  display: none;
}

#mainContents .mainContentsRelContainer02 .linkHoverEffect01:hover * {
  color: #000000;
}

#mainContents .mainContentsRelContainer02 .linkHoverEffect01:hover .linkContentsThumb img {
	transform: scale(1.0);
}

#mainContents .mainContentsRelContainer02 .linkContainer:after {
  display: none;
  content: "";
  display: block;
  clear: both;
}

#mainContents .mainContentsRelContainer02 .linkContainer .linkContentsHeader {
	font-weight: 700;
  font-size: 2rem;
  line-height: 3.2rem;
  color: #109189;
  display: block;
  margin: 0 0 1.0rem 0;
}

#mainContents .mainContentsRelContainer02 .linkContainer .linkContentsText {
	font-weight: 300;
  padding: 0 0 2.25rem 0;
  margin: 0;
}

#mainContents .mainContentsRelContainer02 .linkContainer .linkContentsThumb {
  float: right;
  margin: 0.6rem 0 2.25rem 2.25rem;
  width: 10rem;
}

#mainContents .mainContentsRelContainer02 .linkContainer .linkContentsThumb img {
  display: block;
  width: 100%;
}

@media all and (min-width: 960px) {

  #mainContents .mainContentsRelContainer02 > div {
    flex-basis: calc(50% - 3rem);
    max-width: calc(50% - 3rem);
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    margin-bottom: 3rem;
  }

}

@media screen and (max-width: 959px) {

  #mainContents .mainContentsRelContainer02 > div {
    flex-basis: calc(100% - 3rem);
    max-width: calc(100% - 3rem);
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    margin-bottom: 3rem;
  }

  #mainContents .mainContentsRelContainer02 .linkContainer .linkContentsThumb {
    margin: 0.6rem 0 1.5rem 1.5rem;
  }

}

@media screen and (max-width: 559px) {

#mainContents .mainContentsRelContainer02 .linkContainer .linkContentsHeader {
  font-size: 1.7rem;
  line-height: 2.7rem;
}

}

