@charset "UTF-8";

/*****************************
top
*****************************/
.topsec {
  padding: 10rem 0;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec {
    padding: 6rem 0;
  }
}

/*****************************
topsec-fv
*****************************/
.topsec-fv {
  margin-top: 4rem;
  margin-bottom: -5rem;
}
.topsec-fv .splide .splide__slide {
  height: calc(100vh - 10rem);
}
.topsec-fv .splide .splide__slide img {
  clip-path: url(#mask);
  object-fit: cover;
  object-position: -150px 0;
  height: 100%;
  width: 100%;
}
.topsec-fv .illust{
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
}
.topsec-fv .bgbox{
  position: absolute;
  top: 0;
  left: -5rem;
  background: #fcfbf7;
  aspect-ratio: 1 / 1;
  filter: blur(50px);
  width: 45vw;
}
.topsec-fv .txtbox {
  position: absolute;
  bottom: 150px;
  left: 6vw;
}
.topsec-fv .txt1 {
  margin-bottom: 2rem;
}
.topsec-fv .txt1 span {
  color: #694329;
  display: inline-block;
  font-size: 3vw;
  font-weight: bold;
  letter-spacing: -8px;
  line-height: 1;
}
.topsec-fv .txt2 {
  color: #694329;
  font-size: 1.3vw;
  font-weight: bold;
  line-height: 1.5;
  border-top: dotted 3px #694329;
  padding-top: 3rem;
}
@media only screen and (min-width: 1920px) {
  .topsec-fv .txt1 span {
    font-size: 8rem;
  }
  .topsec-fv .txt2 {
    font-size: 3rem;
  }
}
@media only screen and (max-width: 1180px) {
  .topsec-fv .splide .splide__slide img {
    object-position: -470px 0;
  }
  .topsec-fv .txt1 span {
    font-size: 5.5rem;
  }
  .topsec-fv .txt2 {
    font-size: 2rem;
  }
  .topsec-fv .bgbox{
    width: 70vw;
  }
}
@media only screen and (max-width: 1024px) {
  .topsec-fv .splide .splide__slide {
    height: 600px;
  }
  .topsec-fv .splide .splide__slide img {
    object-position: -350px 0;
  }
}
@media only screen and (max-width: 820px) {
  .topsec-fv .splide .splide__slide img {
    object-position: -530px 0;
  }
  .topsec-fv .txtbox {
    top: 50px;
  }
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec-fv .bgbox{
    display: none;
  }
  .topsec-fv {
    margin-top: 6rem;
  }
  .topsec-fv .txt1 {
    line-height: 1.5;
    margin-bottom: 1rem;
  }
  .topsec-fv .txt1 span {
    color: #181818;
    font-size: 2.9rem;
  }
  .topsec-fv .txt2 {
    color: #181818;
    font-size: 1.6rem;
    padding-top: 1rem;
  }
  .topsec-fv .splide .splide__slide {
    height: 250px;
  }
  .topsec-fv .splide .splide__slide img {
    object-position: 0;
  }
  .topsec-fv .txtbox {
    top: 250px;
  }
}
@media only screen and (max-width: 450px) {
  .topsec-fv .splide .splide__slide img {
    object-position: -190px 0;
  }
}

/* scrolldown */
.scrolldown {
  position: absolute;
  bottom: -30px;
  right: 5vw;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.scrolldown a {
  position: relative;
  height: 200px;
  width: 200px;
}
.scrolldown .txt {
  animation: circlerotate 20s linear infinite;
  position: absolute;
  height: 100%;
  width: 100%;
}
.scrolldown .txt span {
  position: absolute;
  left: 50%;
  transform-origin: 0 100px;
}
.scrolldown .arrow {
  animation: scrollefect 3s infinite;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 50px;
  width: 30px;
}
.scrolldown .arrow::before {
  background: #181818;
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  transform: translateX(-50%);
  width: 1px;
}
.scrolldown .arrow::after {
  border-bottom: 1px solid #181818;
  content: '';
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%) rotate(-45deg);
  height: 12px;
  width: 12px;
}
@keyframes circlerotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes scrollefect {
  0% {
    transform: translate(-50%, -50%) translateY(-10px);
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -50%) translateY(10px);
    opacity: 0;
  }
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
  .scrolldown a {
    height: 150px;
    width: 150px;
  }
  .scrolldown .txt span {
    transform-origin: 0 80px;
  }
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .scrolldown {
    bottom: -220px;
    right: 20px;
  }
  .scrolldown a {
    height: 100px;
    width: 100px;
  }
  .scrolldown .txt span {
    font-size: 1rem;
    transform-origin: 0 50px;
  }
  .scrolldown .arrow {
    height: 40px;
  }
  .scrolldown .arrow::after {
    height: 8px;
    width: 8px;
  }
}

/*****************************
topsec-news
*****************************/
.topsec-news {
  padding: 15rem 0 10rem;
}
.topnewsbox {
  background: #fff;
  border-radius: 30% 34% 36% 16% / 27% 28% 24% 41% ;
  padding: 10rem 6rem 5rem;
  width: 80%;
  margin: 0 auto;
}
.topsec-news .ttl1{
  position: absolute;
  top: -1rem;
  left: 0;
  letter-spacing: 1rem;
}
.topnewsbox .morebtn1{
  text-align: center;
  margin-top: 4rem;
}
@media only screen and (max-width: 1180px) {
  .topsec-news {
    padding: 20rem 0 25rem;
  }
}
@media only screen and (max-width: 1024px) {
  .topnewsbox {
    width: 100%;
    padding: 6rem 3rem 4rem;
  }
  .topnewsbox .flexbox1 {
    gap: 4rem;
  }
  .topnewsbox .ftxtbox:nth-child(1),
  .topnewsbox .ftxtbox:nth-child(2) {
    width: 100%;
  }
  .topsec-news .ttl1 {
    top: -6rem;
  }
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec-news {
    padding: 30rem 0 10rem;
  }
}

/*****************************
topsec-about
*****************************/
.topsec-about{
  background: linear-gradient(#fbfaf5d5), url(../images/top/bg_about.webp) no-repeat center / cover;
}
.topsec-about .ttl2{
  margin-bottom: 2rem;
}
.topsec-about .aboutbox{
  text-align: center;
}
.topsec-about .annai{
  margin-top: 3rem;
}
.topsec-about .annai .timebox{
  width: 58%;
  border:solid .5px #694329;
  box-shadow: 3px 3px 2px #6D8F39;
  background: #fff;
  border-radius: 25px;
  padding: 2rem;
}
.topsec-about table{
  text-align: center;
  width: 100%;
  border-collapse: collapse;
}
.topsec-about table th{
  padding: 1rem 1.5rem;
  background: #694329;
  color: #fff;
}
.topsec-about table th:nth-of-type(1){
  padding: 1rem 2rem;
  border-radius: 25px 0 0 25px;
}
.topsec-about table th:last-child{
  border-radius: 0 25px 25px 0;
}
.topsec-about table .dashed {
  background-image : linear-gradient(to right, #000, #000 5px, transparent 5px, transparent 8px);
  background-size: 8px 1px;
  background-position: left bottom;
  background-repeat: repeat-x; 
}
.topsec-about table td{
  padding: 3rem 0 1rem 0;
  color: #6D8F39;
  font-size: 2.5rem;
}
.topsec-about table td:nth-of-type(1),
.topsec-about table td:nth-of-type(8){
  font-size: 1.6rem;
  color: #181818;
}
.topsec-about .annai .kome{
  margin-top: 2rem;
}
.topsec-about .mapbox {
  width: 38%;
}
.topsec-about .mapbox iframe{
  width: 100%;
  height: 100%;
  aspect-ratio: 1/.8;
  border-radius: 25px;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
  .topsec-about .annai .timebox{
    width: 100%;
    padding: 1rem;
  }
  .topsec-about .mapbox {
    width: 100%;
    margin-top: 2rem;
  }
  .topsec-about table th{
    padding: .5rem 1rem;
  }
  .topsec-about table th:nth-of-type(1){
  padding: 1rem 0;
}
.topsec-about table td{
  padding: 1.5rem 0 1rem 0;
  font-size: 1.6rem;
}
.topsec-about .annai .kome p{
  font-size: 1.4rem;
}
}
@media only screen and (max-width: 767px) {
}

/*****************************
topsec-point
*****************************/
.topsec-point{
  background: linear-gradient(#fbfaf5c9), url(../images/top/bg_point.webp) no-repeat center / cover;
}
.topsec-point .ttl2{
  text-align: center;
  margin-bottom: 6rem;
}
.topsec-point .ttl2 span,
.topsec-point .ttl2 span:nth-of-type(2){
  color: #6D8F39;
}
.topsec-point .ttl2 span{
  font-size: 5rem;
}
.topsec-point .ttl2 span:nth-of-type(2){
  font-size: 3rem;
}
.topsec-point .pointbox{
  width: 32%;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
.topsec-point .pointbox .imgbox{
  width: 150px;
  height: 150px;
}
.topsec-point .pointbox .suuji{
  color: #694329;
  position: absolute;
  top: 0;
  left: 3rem;
  font-size: 2rem;
}
.topsec-point .pointbox .suuji span{
  color: #6D8F39;
  font-size: 3rem;
}
.topsec-point .pointbox .txtbox{
  text-align: center;
}
.topsec-point .pointbox .txtbox h3{
  font-weight: 600;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
  .topsec-point .pointbox{
    width: 100%;
    margin-top: 3rem;
  }
  .topsec-point .ttl2 {
    margin-bottom: initial;
  }
  .topsec-point .pointbox .suuji {
    top: 0;
    left: 40%;
    transform: translate(-50%,-50%);
  }
}
@media only screen and (max-width: 767px) {
}
/*****************************
topsec-service
*****************************/
.topsec-service{
  background: #fff;
}
.topsec-service::before,
.topsec-service::after{
  content: "";
  position: absolute;
  width: 350px;
  height: 160px;
}
.topsec-service::before{
  background: url(../images/top/illust2.webp) no-repeat center / cover;
  top: 2rem;
  left: 0;
}
.topsec-service::after{
  background: url(../images/top/illust3.webp) no-repeat center / cover;
  bottom: 0;
  right: 0;
}
.topsec-service .ttl2{
  text-align: center;
  margin-bottom: 6rem;
}
.topsec-service .servicebox{
  width: 32%;
  padding: 3rem;
}
.topsec-service .servicebox img{
  border-radius: 25px;
  box-shadow: 4px 4px 2px #6D8F39;
}
.topsec-service .servicebox h3{
  text-align: center;
  margin-top: 2rem;
}
.topsec-service .support{
  text-align: center;
  font-size: 2.2rem;
  color: #6D8F39;
  font-weight: 600;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
  .topsec-service .servicebox{
  padding: 1rem;
  }
  .topsec-service .servicebox h3{
  margin-top: 1rem;
  }
  .topsec-service::before,
  .topsec-service::after{
    display: none;
  }
}
@media only screen and (max-width: 767px) {
  .topsec-service .ttl2{
  margin-bottom: 3rem;
  font-size: 2.5rem;
  }
.topsec-service .servicebox{
  width: 48%;
  }
}

/*****************************
  top-QA
*****************************/
.top-qa .ttl2{
  text-align: center;
  margin-bottom: 1rem;
}
.top-qa .box .imgbox{
  margin-left: calc(50% - 50vw);
  width: 48%;
  z-index: -1;
}
.top-qa .box .imgbox::before{
  content: "";
  background: linear-gradient(to right, #fcfbf734, #fcfbf78b, #fcfbf7);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.top-qa .qanda{
  width: 48%;
}
.top-qa .qalist{
  gap: 2rem;
  flex-direction: column;
  width: 100%;
  padding: 2rem 0;
}
.top-qa .qalist li{
  width: 100%;
}
.top-qa .qanda .morebtn1{
  text-align: center;
  margin-top: 1rem;
}
.top-qa .que,
.top-qa .ans{
  background: #fff;
  box-shadow: 0 4px 4px rgb(0 0 0 / 12%), 0 2px 3px -2px rgba(0 0 0 / 18%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem 1rem 4rem;
  position: relative;
}
.top-qa .que{
  cursor: pointer;
}
.top-qa .que::before,
.top-qa .ans::before{
  position: absolute;
  left: 1rem;
  font-weight: 600;
  font-size: 2rem;
}
.top-qa .que::before{
  color: #6D8F39;
  content: "Q";
}
.top-qa .que::after{
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10PX;
  border-bottom: 3px solid #333;
  border-right: 3px solid #333;
  content: "";
  transition: transform .5s;
}
.top-qa .que.active::after{
  transform: rotate(225deg);
}
.top-qa .ans{
  display: none;
}
.top-qa .ans.active{
  display: flex;
  align-items: center;
}
.top-qa .ans::before{
  color: #694329;
  line-height: 1.2;
  content: "A";
}
.top-qa .btn2{
  margin-top: 3rem;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
    
}
@media only screen and (max-width: 768px) {
  .top-qa{
    padding: 2rem 0;
  }
  .top-qa .box{
  width: 100%;
}
  .top-qa .qalist li{
    width: 90%;
  }
}
@media only screen and (max-width: 767px) {
  .top-qa .que::before,
  .top-qa .ans::before{
    font-size: 1.5rem;
  }
  .top-qa .que::after{
  width: 5px;
  height: 5px;
  }
  .top-qa .box .imgbox,
  .top-qa .qanda{
    width: 100%;
  }
}