@charset "utf-8";

* {
  box-sizing: border-box;
}
html {
  height: 100%;
  margin-bottom: 1px;
  font-family: YakuHanJP, 'Noto Sans JP', sans-serif;
  font-weight: 400;
}
.pc {
  display: block;
}
.sp {
  display: none;
}
/*ヘッダー*/
header {
  background : linear-gradient(256.28deg, rgba(0, 91, 171, 1) 0%, rgba(0, 69, 133, 1) 78.47%, rgba(0, 62, 121, 1) 100%);
  width: 100%;
  position: relative;
  padding-top: 0;
}
header div {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
}
header h1 {
  display: block;
  position: absolute;
  top: 0%;
  left: 0;
  width: 100%;
  max-width: 10000px;
  z-index: 1;
}
header img.tmlogo {
  position: absolute;
  display: block;
  width: 212px;
  top: 26px;
  right: calc(50% - 500px);
}
@media screen and (max-width:1160px) {
  header img.tmlogo {
    width: 18.2%;
    top: 26px;
    right:65px;
  }
}

header h1 img.title{
  width: 100%;
  /* position: absolute; */
  top: 0;
  left: 0;
}
header h1 img.catch{
  width:100%;
  margin-top: 3%;
} 
header div img.mainvisual {
  display: block;
  width: 100%;
}
header div.read {
  width: 100%;
  max-width: unset;
  background:#fff;
  padding: 0;
}
header div.read h3 {
  max-width: 1000px;
  margin: auto;
  display: block;
  padding: 40px 0;
  position: relative;
  text-align: center;
}
header div.read h3 span, header div.read h3 b {
  display: block;
  width: 80%;
  margin: auto;
  color: #000;
  text-align: center;
  line-height: 1.8;
  font-size: 18px;
  font-weight: 700;
}
header div.read h3 b {
  margin-top: 0;
  color: var(--keyblue);
  font-weight: 900;
  font-size: 26px;
}
header div.read h3 small{
  font-size:15px;
}

/*特集リンク*/
section.feature_link {
  max-width: 730px;
  width:73%;
  margin: auto;
  margin: 50px auto 50px;
  padding: 0 0 40px;
  /* border-bottom: solid 1px #dcdcdc; */
}
  
section.feature_link nav {
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
section.feature_link nav a {
  width: calc(92% / 3);
  margin-right: 4%;
  margin-bottom: 4%;
  display: block;
  text-decoration: none;
}
section.feature_link nav a:nth-child(1){
  width:70%;
  margin:0 auto 50px;
} 
section.feature_link nav a:nth-child(4),
section.feature_link nav a:nth-child(7){
  margin-right: 0;
}
section.feature_link nav a img {
  width: 100%;
}
section.feature_link nav a h5 {
  width: 100%;
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--keyblue);
  min-height: 54px;
  margin-top: 0;
  line-height: 1.2;
}
section.feature_link nav a p {
  font-size: 14px;
  color: #000;
  text-align: justify;
  font-weight: 500;
}
/*メインエリア*/
article.index {
  padding: 0;
}
article.index h3 {
  max-width: 1000px;
  margin: auto;
  text-align: center;
  font-size: 32px;
  font-weight: 600;
  margin-bottom: 20px;
  /* border-bottom: solid 1px #000; */
  color: #000;
}
aside {
  width: 100%;
  background: rgb(0 165 227 / 80%);
  position: sticky;
  bottom: 0;
  padding: 10px;
  display: flex;
  justify-content: center;
}
aside a {
  display: block;
  width: 320px;
  background-color: #fff111;
  padding: 15px 0;
  border-radius: 5px;
  line-height: 1;
  font-size: 24px;
  font-weight: 600;
  color: var(--keyblue);
  text-align: center;
  text-decoration: none;
  margin: 0 20px;
}
/*フッター*/
footer {
  width: 100%;
  padding: 20px 0;
  background-color: var(--keyblue);
  clear: both;
  text-align: center;
}
footer img {
  margin: 0 auto;
}
/*トップへ戻る*/
.pagetop {
  bottom: 1.1%;
  position: fixed;
  right: 4%;
  z-index: 99999;
}
.pagetop a {
  background: #343c48 none repeat scroll 0 0;
  border: 1px solid #fff;
  border-radius: 8px;
  display: block;
  line-height: 1;
  overflow: hidden;
  width: 50px;
  height: 50px;
  position: relative;
}
.pagetop a::before {
  content: '';
  width: 20px;
  height: 20px;
  display: block;
  border-top: solid 4px #fff;
  border-left: solid 4px #fff;
  transform: rotate(45deg);
  position: absolute;
  top: calc(50% - 8px);
  left: calc(50% - 12px);
}
@media screen and (min-width:640px) {
  header a.headerDP:hover {
    background-color: #fff17a
  }
  section.feature_link nav a:hover, section.btnarea nav a:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width:1040px) {
  header div.read h3 {
    padding: 5vw 0;
  }
  header div.read h3 span, header div.read h3 b {
    font-size: 1.8vw;
  }
  header div.read h3 b {
    margin-top: 0;
    font-size: 2.6vw;
  }
  header div.read h3 small{
  font-size:1.5vw;
}
  header div.read h3::before {
    width: 27.8vw;
    height: 16.8vw;
  }
  header div.read h3::after {
    width: 24vw;
    height: 18vw;
  }
  /*特集リンク*/
  section.feature_link {
    margin: 5vw auto 6vw;
    padding: 0 0 4vw;
  }
  section.feature_link h4 {
    font-size: 3vw;
    margin-bottom: 5vw;
  }
  section.feature_link h4::before {
    width: 5.2vw;
    height: 5.2vw;
    margin-right: 1vw;
  }
  section.feature_link nav a h5 {
    font-size: 1.8vw;
    min-height: 5.4vw;
  }
  section.feature_link nav a p {
    font-size: 1.4vw;
    color: #000;
  }
  /*メインエリア*/
  article.index {
    padding: 0;
  }
  article.index h3 {
    font-size: 2.4vw;
    margin-bottom: 4vw;
  }
  aside {
    padding: 1vw;
  }
  aside a {
    width: 32vw;
    padding: 1.5vw 0;
    font-size: 2.4vw;
    margin: 0 2vw;
  }
  /*フッター*/
  footer {
    padding: 2vw 0;
  }
} /*@media screen and (max-width:920px) */
@media screen and (max-width:640px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
  header div img.year {
    top: 2%;
    left: 2%;
    width: 14%;
  }
  header div {
    overflow: hidden;
  }

  header h1 {
    top: 0;
    left: 0;
    width: 100%;
  }
  header img.tmlogo {
    position:absolute;
    top: 4vw;
    left: 5vw;
    width: 46%;
    margin:0;
    z-index: 1;
  }
  header h1 img.title{
    width: 100%;
    position:absolute;
    top: 0;
    left: 0;
    margin-top: 0;
  }
  header h1 img.catch{
    width: 90%;
    position:absolute;
    bottom: 2%;
    left:5%
  }
  header div.read h3 {
    padding: 4vw 0;
    position: relative;
  }
  header div.read h3 span, header div.read h3 b {
    display: block;
    width: 100%;
    font-size: 3.0vw;
    line-height: 2;
  }
  header div.read h3 b {
    margin-top: 0;
    font-size: 4.6vw;
    line-height: 1.6;
  }
  header div.read h3 small{
  font-size:2.7vw;
}
  header div.read h3::before, header div.read h3::after {
    content: none;
  }
  /*特集リンク*/
  section.feature_link {
    margin: 8vw auto 6vw;
    padding: 0 4vw 4vw;
    width: 100%;
  }
  section.feature_link h4 {
    font-size: 6.4vw;
    margin-bottom: 6vw;
  }
  section.feature_link h4::before {
    width: 10vw;
    height: 10vw;
    margin-right: 2vw;
  }
  section.feature_link nav {}
  section.feature_link nav a {
    width: 48%;
    margin-right: 4%;
    margin-bottom: 4%;
  }
  section.feature_link nav a:nth-child(1){
    width:90%;
    margin-bottom:6vw
  }
  section.feature_link nav a:nth-child(2),
  section.feature_link nav a:nth-child(4),
  section.feature_link nav a:nth-child(6){
    margin-right:4%;
  }
  section.feature_link nav a:nth-child(3),
  section.feature_link nav a:nth-child(5),
  section.feature_link nav a:nth-child(7){
    margin-right:0%;
  }
  section.feature_link nav a h5 {
    font-size: 3.6vw;
    min-height: 10vw;
  }
  section.feature_link nav a p {
    font-size: 2.8vw;
  }
  aside {
    padding: 2vw;
    display: flex;
    justify-content: center;
  }
  aside a {
    display: block;
    width: 60%;
    padding: 3vw 0;
    font-size: 5vw;
    margin: 0;
  }
  /*トップへ戻る*/
  .pagetop {
    bottom: 2vw;
    right: 2vw;
  }
  .pagetop a {
    width: 11vw;
    height: 11vw;
  }
  .pagetop a::before {
    width: 4vw;
    height: 4vw;
    top: calc(50% - 1.5vw);
    left: calc(50% - 2.5vw);
  }
  footer {
    width: 100%;
    height: unset;
    padding: 5vw;
  }
  footer img {
    margin: 0 auto;
    padding: 1vw 0 0;
    width: 60vw;
  }
} /*@media screen and (max-width:640px)*/