@charset "utf-8";
body{
  padding-top: 0;
}
.top-main-visual{
  overflow: hidden;
}
.top-main-visual .swiper-slide{
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media print, screen and (min-width:781px) {
  .top-main-visual{
    margin-top: 120px;
    padding-left: 1.6483%;
    padding-right: 1.6483%;
    padding-bottom: 1.6483%;
    height: calc(100vh - 120px);
  }
}
@media screen and (max-width: 780px) {
  .top-main-visual{
    margin-top: 80px;
  }
  .top-main-visual .swiper-slide{
    padding-bottom: 100%;
  }
}




@media print, screen and (min-width:781px) {
  .top-contents-wrap{
    margin-left: auto;
    margin-right: auto;
    max-width: 1280px;
    width: 90%;
  }
}
@media screen and (max-width: 780px) {
  .top-contents-wrap{
    padding-top: 50px;
  }
}



.top-contents-section h2{
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
  line-height: 1.2;
}
.top-contents-section.normal .detail p{
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 400;
}
.top-contents-section.normal .detail .catch{
  font-weight: 700;
  line-height: 1.71;
}
.top-contents-section.normal .detail .btn{
  border: 1px solid #0D0D0D;
  border-radius: 60px;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  display: inline-flex;
  align-items: center;
  padding: 15px 30px;
  line-height: 1;
  transition: .3s;
}
.top-contents-section.normal .detail .btn:after{
  content: "\eaaa";
  font-family: "Material Symbols Outlined";
  font-weight: 400;
  line-height: 1;
}
@media (hover: hover) and (pointer: fine){
  .top-contents-section.normal .detail .btn:hover{
    background-color: #F4F4F4;
  }
}
@media print, screen and (min-width:781px) {
  .top-contents-section{
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .top-contents-section:first-child{
    margin-top: 100px;
  }
  .top-contents-section:nth-child(n + 2){
    margin-top: 80px;
  }
  .top-contents-section:nth-child(even){
    flex-direction: row-reverse;
  }
  .top-contents-section.normal .image{
    width: 46.875%;
  }
  .top-contents-section.normal .detail{
    width: 45.3125%;
  }
  .top-contents-section h2{
    font-size: min(5.3125vw,6.8rem);
  }
  .top-contents-section.normal .detail p{
    font-size: min(1.25vw,1.6rem);
  }
  .top-contents-section.normal .detail .catch{
    font-size: min(2.1875vw,2.8rem);
    margin-top: 30px;
    margin-bottom: 30px;
  }
  
  .top-contents-section.normal .detail .btn{
    font-size: min(1.406vw,1.8rem);
    margin-top: 30px;
  }
  .top-contents-section.normal .detail .btn:after{
    font-size: min(2.343vw,2.4rem);
    margin-left: 10px;
  }
}
@media screen and (max-width: 780px) {
  .top-contents-section.normal{
    margin-left: 5%;
    margin-right: 5%;
  }
  .top-contents-section:nth-child(n + 2){
    margin-top: 80px;
  }
  .top-contents-section.normal .detail{
    margin-top: 35px;
  }
  .top-contents-section h2{
    font-size: min(42.22vw,3.8rem);
  }
  .top-contents-section.normal .detail p{
    font-size: min(4.1025vw,1.6rem);
  }
  .top-contents-section.normal .detail .catch{
    font-size: min(6.1538vw,2.4rem);
    margin-top: 20px;
    margin-bottom: 20px;
  }
  .top-contents-section.normal .detail .catch br{
    display: none;
  }
  
  .top-contents-section.normal .detail .btn{
    display: flex;
    justify-content: center;
    font-size: min(4.61538vw,1.8rem);
    margin-top: 30px;
  }
  .top-contents-section.normal .detail .btn:after{
    font-size: min(6.1538vw,2.4rem);
    margin-left: 10px;
  }
}


.top-contents-section.blog{
  border-top: 1px solid #BFBFBF;
  display: block;
}
.top-contents-section.blog h2{
  text-align: center;
}
.blog-item > a{
  display: block;
}
.blog-item > a > .image{
  aspect-ratio: 1 / 0.749;
  overflow: hidden;
  position: relative;
}
.blog-item > a > .image img{
  object-fit: cover;
  height: 100%;
  width: 100%;
  transition: 1s cubic-bezier(0.215, 0.61,  0.355, 1);
}
@media (hover: hover) and (pointer: fine){
  .blog-item > a:hover .image img{
    transform: scale(1.05);
  }
}
.blog-item .detail .date{
  color: #888888;
  font-family: "Roboto", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
  line-height: 1.2;
}
.blog-item .detail h3{
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  line-height: 1.55;
}

.top-contents-section.blog .btn{
  border: 1px solid #0D0D0D;
  border-radius: 60px;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  display: inline-flex;
  align-items: center;
  padding: 15px 30px;
  line-height: 1;
  transition: .3s;
}
.top-contents-section.blog .btn:after{
  content: "\eaaa";
  font-family: "Material Symbols Outlined";
  font-weight: 400;
  line-height: 1;
}
@media (hover: hover) and (pointer: fine){
  .top-contents-section.blog .btn:hover{
    background-color: #F4F4F4;
  }
}
@media print, screen and (min-width:781px) {
  .top-contents-section.blog{
    padding-top: 100px;
    margin-top: 120px;
    text-align: center;
  }
  .blog-item-list{
    display: flex;
    flex-wrap: wrap;
    margin-top: 30px;
  }
  .blog-item{
    margin-right: 4.6484375%;
    width: 30.234375%;
  }
  .blog-item:nth-child(3n){
    margin-right: 0;
  }
  .blog-item:nth-child(n + 4){
    margin-top: 50px;
  }
  .blog-item .detail .date{
    font-size: min(1.015vw,1.3rem);
    margin-top: 20px;
    margin-bottom: 15px;
  }
  .blog-item .detail h3{
    font-size: min(1.406vw,1.8rem);
  }
  
  .top-contents-section.blog .btn{
    font-size: min(1.406vw,1.8rem);
    margin-top: 70px;
  }
  .top-contents-section.blog .btn:after{
    font-size: min(2.343vw,2.4rem);
    margin-left: 10px;
  }
}
@media screen and (max-width: 780px) {
  .top-contents-section.blog{
    padding: 80px 5% 0;
    margin-top: 80px;
  }
  .blog-item-list{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 30px;
  }
  .blog-item{
    margin-top: 40px;
    width: 45.7142%;
  }
  .blog-item .detail .date{
    font-size: min(3.0769vw,1.2rem);
    margin-top: 20px;
    margin-bottom: 15px;
  }
  .blog-item .detail h3{
    font-size: min(3.8461vw,1.5rem);
  }
  
  
  .top-contents-section.blog .btn{
    display: flex;
    justify-content: center;
    font-size: min(4.61538vw,1.8rem);
    margin-top: 60px;
  }
  .top-contents-section.blog .btn:after{
    font-size: min(6.1538vw,2.4rem);
    margin-left: 10px;
  }
}