*,
*:before,
*:after {
   -webkit-box-sizing: border-box;
   box-sizing: border-box;
}

a {
   text-decoration: none !important;
}

input:checked {
   accent-color: #007bff;
}

input:focus,
input:active {
   border: 1px solid #007bff !important;
}


/*--------------------------------------------------------
共通
--------------------------------------------------------*/
.mini {
   font-size: 12px;
}

.large {
   font-size: 1.2em;
}

.bold {
   font-weight: bold;
}

.al-center {
   text-align: center;
}

.al-right {
   text-align: right;
}

.al-left {
   text-align: left;
}

/*右に空白*/
.m-r5 {
   margin-right: 5px;
}

.m-r10 {
   margin-right: 10px;
}

.m-r15 {
   margin-right: 15px;
}

/*左に空白*/
.m-l5 {
   margin-left: 5px;
}

.m-l10 {
   margin-left: 10px;
}

.m-l15 {
   margin-left: 15px;
}

/*上に空白*/
.m-t15 {
   margin-top: 15px;
}

.m-t25 {
   margin-top: 25px;
}

.m-t35 {
   margin-top: 35px;
}

/*下に空白*/
.m-b5 {
   margin-bottom: 5px;
}

.m-b10 {
   margin-bottom: 10px;
}

.m-b15 {
   margin-bottom: 15px;
}

.m-b25 {
   margin-bottom: 25px;
}

/*着色*/
.green {
   color: #5a9900;
}

.blue {
   color: #046bd2;
}

.red {
   color: #da3c10;
}

.gray {
   color: #555;
}

.gold {
   color: #d2bb7b;
}

/*マーカー表示（背景に着色）*/
.marker-yellow {
   background: linear-gradient(transparent 50%, #ff6 50%);
}

/*黄*/
.marker-lime {
   background: linear-gradient(transparent 50%, #bfffbf 50%);
}

/*黄緑*/
.marker-pink {
   background: linear-gradient(transparent 50%, #ffccff 50%);
}

/*改行*/
@media (max-width: 680px) {

   .br {
      display: block;
   }
}


/*--------------------------------------------------------
テーマ上書き
--------------------------------------------------------*/
/*タイトル*/
.ast-site-title-wrap {
   display: none;
}

/*メニュー*/
.ast-desktop .ast-primary-header-bar .main-header-menu>.menu-item {
   line-height: normal;
}

.menu-item.contact a.menu-link {
   display: block;
   padding: 8px 20px;
   margin-left: 10px;
   font-size: .9em;
   color: #fff !important;
   background: #046bd2;
   border-radius: 10px;
}

@media only screen and (max-width: 921px) {
   .main-navigation {
      box-shadow: 0 2px 6px rgba(100, 100, 100, .2);
   }
}

/*コンテンツエリア*/
img {
   box-shadow: none !important;
}

.ast-plain-container.ast-no-sidebar #primary {
   margin: 1.5em 0 0;
}

h1.section-title {
   font-size: 1.5em;
   margin: 1em 0 .75em;
}

h1.entry-title {
   font-size: 1.5em !important;
}

.site-content>.ast-container {
   margin-bottom: 2em;
}

.entry-meta {
   display: none;
}

.single .post-navigation {
   display: none;
}

/*フッター*/
@media (max-width: 921px) {

   #ast-scroll-top {
      right: 1em;
   }
}



/*--------------------------------------------------------
カレンダー
--------------------------------------------------------*/
.saturday {
   color: #61a1cf !important;
}

.sunday,
.holiday {
   color: #da3c10 !important;
}

.flatpickr-day:hover {
   background: #ebf8fc !important;
   border: none !important;
}

.flatpickr-day.selected {
   background: #ded7aa !important;
   color: #fff !important;
   border: none !important;
}

.flatpickr-day.flatpickr-disabled {
   color: #bbb !important;
}

.flatpickr-day.flatpickr-disabled:hover {
   color: #bbb !important;
   background: rgba(0, 0, 0, 0) !important;
}


/*--------------------------------------------------------
コンテンツエリア
--------------------------------------------------------*/
/*
.info-container {
   width: 100%;
   margin: 0 auto;
   padding-bottom: .5em;
}

.info-container:not([top]) {
   max-width: 1000px;
}
   */

/*ボタン*/
.btn-erea {
   text-align: center;
}

.btn-erea button,
.btn-erea input {
   font-size: .9em;
   min-width: 200px;
   padding: 15px 25px;
   outline: none;
}

.btn-erea a {
   display: block;
   width: fit-content;
   margin-left: auto;
   margin-right: 0;
   padding: 8px 25px;
   font-size: .8em;
   color: #333;
   background: #eee;
   border-radius: 5px;
}

/*車両検索*/
.search-area {
   width: 100%;
   height: fit-content;
   padding: 20px 15px;
   background: #fff;
   border-radius: 10px;
   box-shadow: 0 2px 6px rgba(100, 100, 100, .3);
}

.rentacar-search {
   display: flex;
   flex-direction: column;
   gap: 0;
   margin-bottom: .5em;
}

.rentacar-search>div {
   flex: 1;
}

.rentacar-search-item {
   display: flex;
   gap: 2%;
}

.rentacar-search-item input,
.rentacar-search-item select {
   margin: .5em 0;
}

.rentacar-search-item .select-date {
   flex: 1;
}

.rentacar-search-item .select-time {
   flex: 0 0 95px;
}


/*--------------------------------------------------------
リスト
--------------------------------------------------------*/
.info-rentacar-area {
   display: flex;
   justify-content: space-between;
   gap: 2%;
}

.info-rentacar-area .info-rentacar-search {
   flex: 0 0 300px;
   position: -webkit-sticky;
   position: sticky;
   align-self: flex-start;
   top: 0px;
   margin-bottom: 2em;
}

.info-rentacar-area .search-area {
   margin-bottom: 1em;
}

.info-rentacar-area .info-rentacar-list {
   flex: 1;
}

.info-rentacar {
   width: 100%;
   margin: 0 auto 2.5em;
   padding: 20px 15px;
   background: #fff;
   border: none;
   border-radius: 10px;
   box-shadow: 0 2px 6px rgba(100, 100, 100, .3);
   transition: .3s;
}

.info-rentacar:hover {
   background: #fdfdfd;
   box-shadow: 0 7px 15px rgba(70, 70, 70, .5);
}

.title-name {
   font-size: 1.3em;
   padding: 0 0 7px;
   margin-bottom: .7em;
   border-bottom: solid 1px #ccc;
}

.rentacar_info_area {
   width: 100%;
   display: flex;
   flex-wrap: wrap;
}

.rentacar_img {
   width: 50%;
   max-width: 500px;
   display: flex;
   flex-flow: column;
}

.rentacar_data {
   width: 50%;
   max-width: 550px;
   display: flex;
   flex-flow: column;
}

.eye-catch {
   width: 100%;
   padding-right: 1em;
   text-align: center;
}

.eye-catch img {
   width: 100%;
}

.rentacar_img[list] .eye-catch img {
   width: auto;
   height: 185px;
}

.fee {
   font-size: 1.15em;
   margin-bottom: 1em;
}

.eq-title {
   width: 100%;
   height: fit-content;
   padding: 3px 10px;
   text-align: center;
   font-size: .8em;
   background: #e3eaee;
   margin-bottom: 1em;
}

.eq_list {
   margin: .25em 0 1em;
}

.eq_list img {
   width: 38px;
   margin: 0 .5em .5em 0;
   border-radius: 5px;
}

.rentacar_tag {
   display: inline-block;
   height: fit-content;
   padding: 3px 13px;
   font-size: .8em;
   color: #fff;
   background: #ccc;
   margin: 0 .5em .5em 0;
   border-radius: 5px;
}

.rentacar_tag.on {
   background: #ebd79e;
}

.rentacar_table {
   display: flex;
   flex-wrap: wrap;
   height: fit-content;
   border: 1px solid #ddd;
   margin-bottom: 1.5em;
}

.rentacar_table_item {
   flex: 0 0 50%;
   padding: 0px 10px 5px;
   border-right: 1px solid #ddd;
   border-bottom: 1px solid #ddd;
}

.rentacar_table_item svg {
   width: 28px;
   height: 28px;
   position: relative;
   top: 7px;
}

.rentacar_table_item svg path {
   fill: #aaa;
}

.rentacar_table_item:nth-child(2n) {
   border-right: none;
}

.rentacar_table_item:nth-last-child(-n + 2) {
   border-bottom: none;
}

@media only screen and (max-width: 921px) {
   .info-rentacar-area {
      flex-direction: column;
      gap: 0;
   }

   .info-rentacar-area .info-rentacar-search {
      width: 100%;
      flex: 1;
      position: static;
   }

   .rentacar_data,
   .rentacar_img,
   .rentacar_table {
      width: 100%;
   }

   .rentacar_img,
   .rentacar_data {
      max-width: 921px;
   }

   .eye-catch {
      padding-right: 0;
      margin-bottom: 1.5em;
   }

   .eq_list img {
      width: 33px;
   }
}

/*ページャー*/
.pager {
   clear: both;
   text-align: center;
}

a.page-numbers,
.pager .current {
   display: inline-block;
   color: #555;
   border: none;
   border-radius: 2px;
   padding: 7px 13px;
   margin: 7px 3px;
}

.pager .current {
   color: #fff;
   background: #046bd2;
}

.prev-btn,
.next-btn {
   display: inline-block;
   padding: 7px 5px;
   position: relative;
}

.prev-btn::after,
.next-btn::after {
   position: absolute;
   content: '';
   top: 50%;
   right: 50%;
   width: 8px;
   height: 8px;
   border-top: 2px solid #777;
   border-right: 2px solid #777;
}

.prev-btn::after {
   -webkit-transform: rotate(-135deg) translateX(-25%) translateY(75%);
   transform: rotate(-135deg) translateX(-25%) translateY(75%);
}

.next-btn::after {
   -webkit-transform: rotate(45deg) translateY(-50%);
   transform: rotate(45deg) translateY(-50%);
}

.pager {
   margin-bottom: 2em !important;
}

.pager a:hover {
   opacity: .7;
}

@media only screen and (max-width: 480px) {

   a.page-numbers,
   .pager .current {
      padding: 6px 10px;
   }

}


/*--------------------------------------------------------
車両ページ
--------------------------------------------------------*/
.title-name-car {
   font-size: 1.3em;
   padding: 0 0 10px;
   margin-bottom: 1em;
   border-bottom: solid 1px #bbb;
}

.rentacar_data_area {
   width: 100%;
   display: flex;
   justify-content: space-between;
   margin-bottom: 1em;
}

@media only screen and (max-width: 921px) {

   .rentacar_data_area {
      flex-flow: column;
   }

   .rentacar_data_area .eye-catch {
      width: 100%;
   }

}


/*--------------------------------------------------------
利用条件・オプションを選択
--------------------------------------------------------*/
.option-rentacar_box {
   width: 100%;
   margin: 0 auto;
   border-radius: 10px;
   border: solid 1px #ccc;
}

.option-rentacar_box[option] {
   margin-bottom: 1.5em;
}

.option-rentacar_box .title-area {
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 10px;
   color: #fff;
   background: #ccc;
   border-radius: 10px 10px 0 0;
}

.search-area[option] {
   margin-bottom: 0;
   box-shadow: none;
}

@media (min-width: 680px) {

   .search-area[option] .rentacar-search {
      flex-direction: row;
      gap: 2%;
   }
}

.select-area {
   display: flex;
   justify-content: space-between;
   gap: 2%;
   flex-wrap: wrap;
}

.select-option {
   max-width: 49%;
   flex: 1 1 49%;
   display: flex;
   flex-direction: column;
   gap: .5em;
   margin-bottom: 1.5em;
}

.select-option-item {
   display: flex;
   gap: .5em;
}

.option,
.plan {
   width: 100%;
   padding: 10px;
   background: #eee;
   border-radius: 5px;
   font-weight: normal;
}

.option {
   display: flex;
   align-items: center;
   gap: 1em;
}

.option select {
   width: 75px;
   height: fit-content;
   margin-left: auto;
}

.option:has(input:checked),
.plan:has(input:checked) {
   color: #fff;
   background: #7aabdb;
}

@media (max-width: 921px) {
   .select-option {
      max-width: 100%;
      flex: 1 1 100%;
   }
}

/*エラーメッセージ*/
.message {
   margin-bottom: 2em;
}

.error_message {
   font-size: .9em;
   color: #da3c10;
}


/*--------------------------------------------------------
フォーム
--------------------------------------------------------*/
.info-title {
   font-size: 1.3em;
   padding: 0 0 10px;
   margin-bottom: .7em;
}

/*予約内容*/
.reserve-info {
   margin-bottom: 1.5em;
   padding: 30px 30px 25px;
   border: solid 1px #ccc;
   border-radius: 5px;
}

.option-fee {
   display: flex;
   justify-content: space-between;
   margin-bottom: 1em;
}

.fee_table {
   display: flex;
   flex-wrap: wrap;
   border: 1px solid #ddd;
   margin-bottom: .5em;
}

.fee_table_item {
   display: grid;
   align-items: center;
   flex: 0 0 50%;
   min-height: 55px;
   padding: 10px;
   font-size: .95em;
   border-right: 1px solid #ddd;
   border-bottom: 1px solid #ddd;
}

.fee_table_item:nth-child(2n) {
   border-right: none;
}

.fee_table_item:nth-of-type(2n) {
   text-align: right;
}

.fee_table_item:nth-last-child(-n + 2) {
   border-bottom: none;
}

/*利用者情報入力*/
.reserve-area {
   padding: 25px 30px;
   background: #fff;
   border-radius: 0 0 10px 10px;
}

.postal-code-region {
   display: flex;
   justify-content: space-between;
   gap: 2%;
}

.postal-code-region>div {
   flex: 1;
}

.reserve-area input:not([type=radio], [type=checkbox]),
.reserve-area select {
   margin: .5em 0 1.5em;
}

@media (max-width: 921px) {

   .reserve-info {
      padding: 20px 15px;
   }

   .reserve-area {
      padding: 20px 15px 25px;
   }
}

/*ラジオボタン*/
.radio-parts {
   margin: .7em 0 1em;
}

.radio-parts input[type=radio] {
   position: absolute;
   opacity: 0;
   pointer-events: none;
}

.radio-parts label {
   display: inline-block;
   min-width: 150px;
   text-align: center;
   margin-right: 5px;
   padding: 9px 10px;
   font-size: .9em;
   font-weight: normal;
   border: 1px solid #ccc;
   border-radius: 5px;
}

.radio-parts label:has(input[type=radio]:checked) {
   background: #f4f9fc;
   border: 1px solid #007bff;
}

/*payjp入力エリア*/
.payjp-form {
   padding: 30px 20px 0;
}

#payjp_checkout_box {
   text-align: center;
}

#payjp_checkout_box input[type=button] {
   font-size: .9em !important;
   background: #046bd2 !important;
   border: none !important;
   padding: 14px 35px !important;
}

#payjp_checkout_box input[type=button]:hover {
   opacity: .7;
}

label[for="simplepayjppayment-name"],
label[for="simplepayjppayment-mail"],
#simplepayjppayment-name,
#simplepayjppayment-mail {
   display: none;
}

.pay-message {
   width: fit-content;
   margin: 2.5em auto;
   font-size: .9em;
}


/*--------------------------------------------------------
予約確認
--------------------------------------------------------*/
.search-reservation-area {
   width: 100%;
   max-width: 650px;
   margin: 0 auto;
}

.search-reservation-area input {
   margin: .5em 0 1.5em;
}


/*--------------------------------------------------------
トップページ
--------------------------------------------------------*/
.front-image-area {
   width: 100%;
   height: 450px;
   background-repeat: no-repeat !important;
   background-position: 50% 90% !important;
   background-size: cover !important;
   display: flex;
   justify-content: center;
   align-items: center;
}

.front-image-area .search-area {
   max-width: 300px;
   margin-right: 60%;
}

@media (max-width: 921px) {
   .front-image-area {
      justify-content: flex-start;
   }

   .front-image-area .search-area {
      margin-right: 0;
      margin-left: 2%;
   }

}

@media (max-width: 580px) {
   .front-image-area {
      height: 230px;
      justify-content: center;
      margin-bottom: 350px;
   }

   .front-image-area .search-area {
      max-width: 380px;
      margin: 530px 1em 0;
   }

}


/*--------------------------------------------------------
お知らせ、地図
--------------------------------------------------------*/
.information {
   width: 100%;
   max-width: 1000px;
   margin: 2em auto 3em;
   padding: 0 1em;
}

.information h2 {
   font-size: 1.5em;
   padding: 0 0 10px;
   margin: 3em 0 .75em;
   border-bottom: solid 1px #bbb;
}

/*お知らせ*/
.notice-post {
   display: flex;
   margin: 1em 0;
}

.notice-date {
   width: fit-content;
   margin: 0 1em .5em 0;
   padding: 3px 15px;
   font-weight: bold;
   font-size: .9em;
   background: #e3eaee;
}

.notice-post a {
   text-decoration: underline;
}

.section-date {
   text-align: right;
}

/*地図*/
.map-info {
   display: flex;
   justify-content: space-between;
   margin: 1em 0;
}

.access-left {
   margin-bottom: 1em;
}

.access-right {
   width: 50%;
   max-width: 500px;
   height: 300px;
}

.map-info iframe {
   width: 100%;
   height: 100%;
}

@media (max-width: 921px) {

   .notice-post {
      flex-flow: column;
      margin: 1em 0 1.5em;
   }

   .map-info {
      flex-flow: column;
      justify-content: space-between;
   }

   .access-right {
      width: 100%;
      height: 250px;
   }
}