
.mainimg {
  margin: 60px auto 0;
  width: min(calc(100% - 120px), 1320px);
}
.mainimg img {
  width: 100%;
}

@media only screen and (max-width: 782px) {
  .mainimg { margin: 2vw; width: auto;}
  .mainimg img {
    width: auto;
  }
}



.flx-t { display: flex; width: calc(100% + 30px); margin: 0 0 0 -15px; flex-wrap: wrap;}
.flx-t > * { width: calc(33.333% - 40px); margin: 40px 15px 0; font-size: 86%;}
@media only screen and (max-width: 782px) {
  .flx-t { display: block; width: auto; margin: 0 0 0 0;}
  .flx-t > * { width: auto; margin: 30px 0 3vw;}
}
.flx-t dl {
  display: flex;
  flex-direction: column;
  margin-bottom: 30px;
}
.flx-t dt {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  min-height: 70px;
}
.flx-t dt .en {
  font-size: 200%;
  line-height: 40px;
  margin-right: 20px;
}
.flx-t dt .jp {
  font-weight: bold;
  line-height: 30px;
}
.flx-t dd { margin-top: 30px; padding-bottom: 70px;  position: relative; flex-grow: 2;}
.flx-t dd > a { display: block;}

.flx-t p.btn {
  position: absolute;
  width: 100%;
  height: 50px;
  left: 0;
  bottom: 0;
}

.flx-t p.btn a {
  display: inline-block;
  padding: 10px 50px;
  font-weight: bold;
  text-align: center;
  background: #c7a840;
  color: #002c5b;
  text-decoration: none;
}
@media only screen and (max-width: 782px) {
  .flx-t dt {min-height: inherit; margin-top: 20px;}
  .flx-t dt .en {line-height: 30px;margin-right: 10px;}
  .flx-t dt .jp {line-height: 20px;}
  .flx-t dd { margin-top: 15px; padding-bottom: 0px; }
  .flx-t p.btn {
    position: relative;
    width: auto;
    height: auto;
    left: auto;
    bottom: auto;
  }
  .flx-t p.btn a {padding: 10px 20px; display: block; margin: 0 3vw;}
}