header{
width:100%;


  background: #FFF;

  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* ドロップシャドウを追加 */
}
.header_wrap{
  width:100%;
  max-width: 1400px;
  min-width: 1000px;
  display: grid;
    grid-template-columns: 200px 1fr;
  padding: 10px 4%;
    align-items: center;
    margin: auto;
  }
header img.logo{
  width:100%
}
header ul.menu{
  width: 800px;
  height: 100px;
  padding: 20px 20px;
  margin-left: auto;
  display: flex
;
  flex-wrap: wrap;
  gap: 10px 20px;
}
header ul.menu li{
  width:calc((100% - 40px) /3);
}



img.visual{
  width:100%;
  max-width: 1400px;
  min-width: 1000px;
  margin: auto;
}



img.catch{
  width:40%;
  margin: var(--section-margin) 30%;
}
#sec_01{

  width:100%;

}
#sec_02{
  width:100%;
  margin: auto;
  background-image: url('http://localhost/wordpress/wp-content/themes/asum/img/sec_02_back.svg');
  background-repeat: repeat; /* 縦方向にリピート */
  background-size: cover;
  padding: var(--section-margin) 0;

}

#sec_02 h2{
  width:70%;
  font-size: 6.4rem;
  margin:auto;
  border-bottom: 5px solid #382ECE;
  padding-bottom: 20px;
  text-align: center;
  font-family: "Abyssinica SIL", serif;
  font-weight: 400;
  margin-bottom: 20px;
}

#sec_02 ul.thumbnail{
  width:100%;
  margin:auto;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: var(--section-margin);
}

#sec_02 ul.thumbnail li{
  width: calc((100% - 40px) / 3);
}


#sec_02 ul.thumbnail li img{
  margin:0 0 10px
}

#sec_02 ul li h3{
  text-align: center;
  font-weight: 500;
}
#sec_02 img.sec_02_catch{
  width: 90%;
  margin:0 auto 60px;
  display: block;
}
.car-animation {
  position: relative;
  width: 100%;
  height: 350px; /* アニメーションエリアの高さ */

  overflow: hidden; /* 車がエリア外に出ないようにする */
}

.car {
  position: absolute;
  width: 90%; /* 車の画像サイズ */
  bottom: 20px; /* 車の位置（下からの距離） */
  left: 100%; /* 初期位置（画面外右側） */
  transition: transform 0.5s ease-in-out; /* アニメーションのスムーズな動き */
}

.car.animate {
  animation: drive 3s ease-in-out forwards, brake 0.5s ease-in-out 3s forwards;
}

/* 車が右から左に走るアニメーション */
@keyframes drive {
  0% {
    left: 100%; /* 画面外右側 */
  }
  80% {
    left: 20%; /* 画面内左側に近づく */
  }
  100% {
    left: 10%; /* ブレーキ後の最終位置 */
  }
}

/* ブレーキ時のアニメーション（少し揺れる） */
@keyframes brake {
  0% {
    transform: scale(1) rotate(0deg);
  }
  50% {
    transform: scale(1.1) rotate(-2deg); /* 少し揺れる */
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
#sec_02 .box_wrap{
  width:90%;
  margin: auto;
  background-image: url('http://localhost/wordpress/wp-content/themes/asum/img/sec_02_square.svg');
  background-repeat:no-repeat ;
  background-size: contain;
  background-position: center;
  padding:40px 2%;
  margin-bottom: var(--section-margin);
}

#sec_02 .box_wrap h3{
  width:100%;
  font-size: 2.4rem;
  text-align: center;
  border-bottom: 1px solid #000;
  padding:0 10px 10px;
  margin:0 0 10px;
}
#sec_02 .box_wrap h3 span{
  color:#D13435
}

#sec_02 .box_wrap p{
  width:100%;
  font-size:1.6rem;
  text-align: center;
}

#sec_02 .box_wrap p.second{
  font-size: 1.8rem;
  font-weight: 700;
}

#sec_02 .box_wrap p.second span{
  color:#382ECE ;
}

ul.btn_thumb{
  width:100%;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

ul.btn_thumb li{
  width:calc((100% - 80px) / 3)
}

#sec_03{
  padding: var(--section-margin) 0;
  border-radius: 50px 50px 0 0;
  background-color: #382ECE;
}
#sec_03 .main_wrap{
  padding-inline: 10%;
}
#sec_03 .box_wrap{
  width:100;
  display: flex;
  flex-wrap: wrap;
}

#sec_03 img.sec_03_car{
  width:150px
}
#sec_03 h2{
  width:calc(100% - 150px);
  padding-left: 20px;
  color:#FFF;
  font-weight: 700;
  font-size:4.8rem;
  line-height: 1.4;
  text-align: left;
}

#sec_03 img.sec_03_catch{
  width:100%;
  margin-top:60px
}
#sec_04{
  padding-top: calc(var(--section-margin) / 2);
  padding-bottom: calc(var(--section-margin) / 2);
  border-radius: 50px 50px 0 0;
  background-color: #F1FAFF;
  margin-top: -60px;
}

img.sec_04_title{
  width:860px;
  margin:0 auto 60px;
  display: block
}

#sec_04 ul{
  width:100%;
}
#sec_04 ul li{
  width: 100%;
  position: relative;
  padding: 30px 0;
  margin-bottom: 120px;
}

#sec_04 ul li .contents {
  width: 60%;
  position: relative; /* 必須 */
}
#sec_04 ul li .contents .box{
  width:100%;
  background: #FFF;
  border: 1px solid #000;
  padding: 40px 20px;
  position: relative; /* 必須 */
  z-index: 2; /* 擬似要素より上に配置 */
}
#sec_04 ul li .contents::after {
  content: '';
  width: 100%;
  height: 100%;
  background: linear-gradient(26deg, #E5F3FF, #382ECE);
  position: absolute; /* 必須 */
  top: 8px; /* 下に4ピクセルずらす */
  left: 8px; /* 右に4ピクセルずらす */
  z-index: 1; /* 元の要素の下に配置 */
  display: block; /* 擬似要素を表示 */
}

#sec_04 ul li:nth-child(2) {
    margin-bottom: 200px;
}

#sec_04 ul li .contents h3{
  font-size:2.0rem;
  color: #D13435;
  margin:0 0 10px
}
#sec_04 ul li .contents p{
  font-size:1.6rem;
  color: #000;
  margin:0 0 10px
}
#sec_04 ul li img.thumb{
  /*height: calc(100% + 60px);*/
  width: 50%;
  /*object-fit: cover;*/
  position: absolute;
  top: -30px;
}

#sec_04 ul li:nth-child(2n-1) .contents{
  margin-left: 40%;
}
#sec_04 ul li:nth-child(2n) img.thumb{
  right:0
}

img.sec_04_title_02{
  width:860px;
  margin:0 auto 60px;
  display: block
}

#sec_05{
  padding: calc(var(--section-margin) / 2) 0 var(--section-margin);
  border-radius: 50px 50px 0 0;
  background: linear-gradient(26deg, #382ECE 0%, #382ECE 59%, #004E8F 100%);
  margin-top: -60px;
}
img.sec_05_title{
  width:560px;
  margin:0 auto 60px;
  display: block
}
#sec_05 ul{
  width:90%;
  margin:0 5%;
  display: flex;
  padding:20px;
  flex-wrap: wrap;
  background: #FFF;
  border-radius: 50px 0 50px 0;
  box-shadow: 5px 5px 20px #DADADA;
  gap: 20px;
}
#sec_05 ul li{
  width:calc((100% - 60px) / 4);
  background: #DFEFF6;
  padding:20px;
}

#sec_05 ul li h3{
  font-size:1.8rem;
  padding:10px 0;

}

#sec_06{
  padding-top: calc(var(--section-margin) / 2);
  padding-bottom: calc(var(--section-margin) / 1);
  border-radius: 50px 50px 0 0;
  background: #FFF;
  margin-top: -60px;
}
img.sec_06_title{
  width:560px;
  margin:60px auto 60px;
  display: block
}
#sec_06 .box_wrap{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 0 4%;
}
#sec_06 .box_wrap .box_01 {
  width: calc(20% - 20px);
  background: #382ECE;
  display: flex; /* 子要素を中央揃えするためにflexboxを使用 */
  justify-content: center; /* 横方向の中央揃え */
  align-items: center; /* 縦方向の中央揃え */
}

#sec_06 .box_wrap .box_01 h3 {
  writing-mode: vertical-rl; /* 縦書き */
  text-orientation: upright; /* 文字を直立させる */
  color: #FFF;
  font-size: 4.8rem;
  font-weight: 700;
  margin: 0; /* 不要な余白を削除 */
}
#sec_06 ul{
  width: 80%;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
#sec_06 ul li{
  width: 100%;
  background: #DFEFF6;
  border-top: 3px solid #382ECE;
  border-right: 3px solid #382ECE;
  border-radius: 0 30px 30px 0;
  padding: 40px 20px 40px 150px;
  position: relative;
  
}
#sec_06 ul li .time{
  width: 120px;
  position: absolute;
  left: 0;
  top:-1px;
}
#sec_06 ul li .time .time_text{
  position: absolute;
  top:40%;
  left: 50%;
  transform: translate(-50%,-50%);
  color: #FFF;
  font-size: 2.4rem;
}
#sec_06 ul li h3{
  font-size: 3.2rem;
  font-weight: 500;
}

#sec_07{
  padding: calc(var(--section-margin) / 2) 0 var(--section-margin);
  border-radius: 50px 50px 0 0;
  background: linear-gradient(26deg, #382ECE 0%, #382ECE 59%, #004E8F 100%);
  margin-top: -60px;
}
img.sec_07_title{
  width:560px;
  margin:0 auto 60px;
  display: block
}

#sec_07 .box_wrap{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 40px 4%;
  background: #FFF;
  border-radius: 50px 0 50px 0;
  box-shadow: 5px 5px 20px #DADADA;
}
#sec_07 .box_wrap .box_01 {
  width: calc(20% - 20px);
  background: #2B9C74;
  display: flex; /* 子要素を中央揃えするためにflexboxを使用 */
  justify-content: center; /* 横方向の中央揃え */
  align-items: center; /* 縦方向の中央揃え */
}

#sec_07 .box_wrap .box_01 h3 {
  writing-mode: vertical-rl; /* 縦書き */
  text-orientation: upright; /* 文字を直立させる */
  color: #FFF;
  font-size: 4.8rem;
  font-weight: 700;
  margin: 0; /* 不要な余白を削除 */
}
#sec_07 ul{
  width: 80%;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
#sec_07 ul li{
  width: 100%;
  background: #D5EEDD;
  border-top: 3px solid #2B9C74;
  border-right: 3px solid #2B9C74;
  border-radius: 0 30px 30px 0;
  padding: 40px 20px 40px 150px;
  position: relative;
  
}
#sec_07 ul li .time{
  width: 120px;
  position: absolute;
  left: 0;
  top:-1px;
}
#sec_07 ul li .time .time_text{
  position: absolute;
  top:40%;
  left: 50%;
  transform: translate(-50%,-50%);
  color: #FFF;
  font-size: 2.4rem;
}
#sec_07 ul li h3{
  font-size: 3.2rem;
  font-weight: 500;
}

#sec_08{
  padding-top: calc(var(--section-margin) / 2);
  padding-bottom: calc(var(--section-margin) / 1);
  border-radius: 50px 50px 0 0;
  background: #E9F7FF;
  background-image: url('http://localhost/wordpress/wp-content/themes/asum/img/sec_08_back.svg');
  background-repeat: repeat; /* 縦方向にリピート */
  background-size: contain;
  margin-top: -60px;
}
#sec_08 .box_wrap{
  width: 90%;
  display: flex;
  flex-wrap: wrap;
  padding: 60px 5%;
  background: #FFF;
  border-radius: 50px;
  margin: 0 auto 60px;
  box-shadow: 5px 5px 10px rgba(131, 131, 131, 0.25);
}

#sec_08 h2{
  width:100%;
  font-weight: 700;
        font-size: 4.8rem;
  margin:auto;
  border-bottom: 5px solid #382ECE;
  padding-bottom: 20px;
  text-align: center;
  margin-bottom: 60px;
}

#sec_08 dl{
  width:94%;
  font-size: 2.0rem;
  line-height: 1.8;
  display: flex;
  flex-wrap: wrap;
  padding:0 3%;
  margin:0 auto;
  border-bottom: 5px solid #382ECE;
}
#sec_08 dl dt{
  width:30%;
  padding:0 2% 20px;
  border-bottom: 2px solid #D9D9D9;
  margin:0 0 20px
}
#sec_08 dl dd{
  width:70%;
  padding:0 2% 20px;
  border-bottom: 2px solid #D9D9D9;
  margin:0 0 20px
}

#sec_08 dl dt:nth-last-child(2){
  border-bottom: 0;
}
#sec_08 dl dd:last-child{
  border-bottom: 0;
}
#sec_08  p.announce{
  text-align: center;
  font-size: 2.4rem;
}

#sec_09{
  width:100%;
  padding: var(--section-margin) 0;
}
#sec_10{

  padding-bottom: calc(var(--section-margin) / 1);

}
#sec_10 .box_wrap{
  width: 90%;
  display: flex;
  flex-wrap: wrap;
  padding: 60px 5%;
  background: #F1FAFF;

  margin: auto;

}

#sec_10 h2{
  width:100%;
  font-weight: 700;
        font-size: 4.8rem;
  margin:auto;
  text-align: center;
  margin-bottom: 20px;
}
#sec_10 p{
  width:100%;
  font-weight: 500;
  font-size: 2.0rem;
  margin:auto;
  text-align: center;
  margin-bottom: 60px;
}

#sec_10  p.announce{
  text-align: center;
  font-size: 2.4rem;
}

ul.contact_form {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  margin:0 0 60px;
}

ul.contact_form li {
  width: 100%;
  margin: 0 0 16px;
  font-size: 1.8rem;
}

ul.contact_form li:nth-child(2n) {
  margin-bottom: 30px;
}

ul.contact_form .must {
  background-color: #D13435;
  color: #FFF;
  border-radius: 10px;
  padding: 0 10px;
  margin-right: 20px;
}

ul.contact_form .gender label {
  margin-right: 20px;
  font-size: 1.6rem;
  cursor: pointer;
}

ul.contact_form .gender input[type="radio"] {
  margin-right: 8px;
  transform: scale(1.2); /* ラジオボタンを少し大きくする */
  cursor: pointer;
}


/* Internet Explorer */
ul.contact_form  input[type="text"]{
  width: 100%
}
ul.contact_form textarea{
  width: 100%
}

.send_btn{

    width: 300px;
    position: relative;
    background: #E6E4FF;
    color: #000;
    font-size: calc(var(--base-font-size) *  1.2);
    padding:14px 0;
    font-weight: 700;
    display: inline-block;
    text-align: center;
    border: 5px solid #382ECE;
    border-radius: 10px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);

}
#sec_11{

  padding-bottom:calc(var(--section-margin) / 1);

}