@media screen and (min-width: 769px), print {
  .contents p {
    font-size: 1.6rem;
    line-height: 35px;
  }
  h3.sec_ttl {
    font-size: 2.8rem;
    font-weight: bold;
    color: #009943;
    letter-spacing: 3px;
  }
  dl dt, dl dd {
    font-size: 1.6rem;
    line-height: 32px;
    letter-spacing: 2px;
  }
  .intro {
    padding: 70px 0 95px;
  }
  .intro_content {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
       -moz-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
       -moz-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .intro_content_left {
    width: 500px;
  }
  .intro_content_right {
    width: 410px;
  }
  .intro_content_right p {
    margin-top: 35px;
    letter-spacing: 1px;
  }
  .vision {
    background: #fffce7;
    padding: 62px 0 70px;
  }
  .vision .sec_ttl {
    text-align: center;
  }
  .vision .sec_des {
    text-align: center;
    margin: 32px 0 37px;
    letter-spacing: 1px;
  }
  .vision_list {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
       -moz-box-orient: horizontal;
       -moz-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
  .vision_list li {
    width: 296px;
    text-align: center;
  }
  .vision_list li:not(:nth-of-type(3n + 1)) {
    margin-left: 30px;
  }
  .vision_list li:not(:nth-of-type(-n + 3)) {
    margin-top: 30px;
  }
  .vision_list li > strong {
    width: 100%;
    display: block;
    padding: 4px 0 3px;
    background: url(../images/ttl_bg.png) #fff8cb repeat;
    font-size: 1.8rem;
    color: #009943;
  }
  .vision_list li .txt {
    padding: 14px 5px;
    background: #fff;
  }
  .vision_list li .txt strong {
    font-size: 1.8rem;
    color: #009943;
  }
  .overview {
    padding: 62px 0 100px;
  }
  .overview .sec_ttl {
    text-align: left;
  }
  .overview_content {
    margin-top: 44px;
  }
  .overview_content dl {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    padding: 17px 0 15px;
    border-top: 1px solid #d2d2d2;
  }
  .overview_content dl:last-child {
    border-bottom: 1px solid #d2d2d2;
  }
  .overview_content dl dt {
    width: 225px;
    padding-right: 10px;
  }
  .overview_content dl dd {
    width: -webkit-calc(100% - 225px);
    width: -moz-calc(100% - 225px);
    width: calc(100% - 225px);
  }
  .history {
    background: #fffce7;
    padding: 63px 0 70px;
  }
  .history .overview_content {
    margin-top: 45px;
  }
  .history .overview_content dl dt {
    width: 190px;
    padding-left: 5px;
    padding-right: 0;
  }
  .history .overview_content dl dt span {
    margin-left: 15px;
  }
  .history .overview_content dl dd {
    letter-spacing: .8px;
  }
}

@media screen and (max-width: 768px) {
  .contents p {
    font-size: 4.16667vw;
    line-height: 5.98958vw;
  }
  h3.sec_ttl {
    font-size: 5.20833vw;
    font-weight: bold;
    color: #009943;
    text-align: center;
    letter-spacing: 0.39062vw;
  }
  dl dt, dl dd {
    font-size: 4.16667vw;
    line-height: 5.98958vw;
    letter-spacing: 0.26042vw;
  }
  dl dd {
    margin-top: 1.30208vw;
  }
  .intro {
    padding: 9.11458vw 0 12.36979vw;
  }
  .intro_content_left {
    width: 100%;
    margin-bottom: 3.90625vw;
  }
  .intro_content_right {
    width: 100%;
  }
  .intro_content_right p {
    margin-top: 4.55729vw;
    text-align: justify;
  }
  .vision {
    background: #fffce7;
    padding: 9.11458vw 0;
  }
  .vision .sec_ttl {
    text-align: center;
  }
  .vision .sec_des {
    text-align: center;
    margin: 32px 0 37px;
    letter-spacing: 1px;
  }
  .vision_list {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
       -moz-box-orient: horizontal;
       -moz-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
  .vision_list li {
    width: 100%;
    text-align: center;
  }
  .vision_list li:not(:nth-of-type(-n + 1)) {
    margin-top: 6.51042vw;
  }
  .vision_list li > strong {
    width: 100%;
    display: block;
    padding: 1.04167vw 0 0.78125vw;
    background: url(../images/ttl_bg.png) #fff8cb repeat;
    font-size: 1.8rem;
    color: #009943;
  }
  .vision_list li .txt {
    padding: 3.64583vw 1.30208vw;
    background: #fff;
  }
  .vision_list li .txt strong {
    font-size: 4.42708vw;
    color: #009943;
  }
  .overview {
    padding: 9.11458vw 0;
  }
  .overview_content {
    margin-top: 6.51042vw;
  }
  .overview_content dl {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
       -moz-box-orient: horizontal;
       -moz-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    padding: 3.90625vw 1.30208vw 3.90625vw;
    border-top: 1px solid #d2d2d2;
  }
  .overview_content dl:last-child {
    border-bottom: 1px solid #d2d2d2;
  }
  .overview_content dl dt, .overview_content dl dd {
    width: 100%;
  }
  .history {
    background: #fffce7;
    padding: 9.11458vw 0 19.53125vw;
  }
  .history .overview_content {
    margin-top: 6.51042vw;
  }
  .history .overview_content dl {
    padding: 3.25521vw 1.30208vw 3.25521vw;
  }
  .history .overview_content dl dt {
    padding-right: 0;
  }
  .history .overview_content dl dt span {
    margin-left: 2.60417vw;
  }
}
