@charset "utf-8";

/*/==========================================================
/ 
/ ***
/
==========================================================/*/
#title-box {
  display: block;
  overflow: hidden;
  max-width: 1200px;
  width: 94.872vw;
  margin-inline: auto;
}

#title-box h3 {
  display: block;
  overflow: hidden;
  margin-top: 39px;
  margin-bottom: clamp(26px, calc(20.75px + 0.8750000000000001vw), 33px);
  text-align: center;
  line-height: 125%;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
}

/*----------------------------------
/ 
/ 利用開始日の選択
/
 ----------------------------------*/
.js-step-6 > .step_flow__line-active {
  width: 635px;
}

.js-step-6 > .step_flow__arrow {
  left: 578px;
}

/******************************
 カレンダー
******************************/
#calendar {
  width: 100%;
  --calendar-th: #249bc4;
  --calendar-boder: #cccccc;
  --calendar-week: #f5f5f5;
  --calendar-colol: #fed451;
  --calendar-possible: #fdf3cc;
  --calenter-two-day: #ff9b36;
  --calenter-app-day: #ff0037;
  --calendar-txt: #333333;
  --calendar-sat: #e8f6fb;
  --calendar-sun: #fff0f1;
}

#calendar-table {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 30px 30px;
  width: 100%;
  margin: clamp(20px, calc(16.25px + 0.625vw), 25px) auto;
}

#calendar-table > table {
  min-width: auto;
  width: calc(50% - 30px);
  border-collapse: collapse;
  border-spacing: 0;
  margin-bottom: 0;
}

#calendar-table > table > caption {
  height: 50px;
  padding: 10px 0;
  text-align: center;
  background: var(--calendar-th);
  color: var(--color-white);
  font-weight: 600;
  /*border: 1px solid var(--calendar-th);*/
}

#calendar-table > table tr td {
  height: 55px;
  border: 1px solid var(--calendar-boder);
  /*border-bottom: 1px solid var(--calendar-boder);
	border-left: 1px solid var(--calendar-boder);
	border-right: 1px solid var(--calendar-boder);*/
  text-align: center;
  color: var(--calendar-txt);
  vertical-align: top;
  padding: 0;
}

#calendar-table > table > thead td {
  height: 21px;
  padding: 6px 0;
  color: var(--calendar-txt);
  background-color: var(--calendar-week);
}

#calendar-table > table > thead td.sat {
  background-color: var(--calendar-sat);
}
#calendar-table > table > thead td.sun {
  background-color: var(--calendar-sun);
}

#calendar-table > table td.possible {
}

#calendar-table > table td.possible > a {
  display: block;
  overflow: hidden;
  color: var(--calendar-txt) !important;
  background: var(--calendar-possible);
  text-decoration: none;
}

#calendar-table > table td.possible > a:hover {
  opacity: 0.5;
}
#calendar-table > table td.possible > a > p {
  padding-bottom: 10px;
  color: var(--calendar-txt);
  text-decoration: none;
}

#calendar-table > table td.possible > a strong {
  color: var(--calenter-two-day);
}
#calendar-table > table td.possible > a strong.cred {
  color: var(--calenter-app-day);
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
  #calendar-table {
    flex-direction: column;
  }

  #calendar-table > table {
    width: 100%;
  }
}

/******************************
 カレンダー 説明
******************************/
.step_quadruple {
  display: block;
  overflow: hidden;
  margin: 30px 0;
}

#quadruple_list {
  display: flex;
  justify-content: center;
  gap: 30px 30px;
  font-size: var(--font-size-20);
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
  .step_quadruple {
    margin-top: 0;
  }

  #quadruple_list {
    justify-content: flex-start;
    gap: 0.25em 0;
    flex-direction: column;
    font-size: var(--font-size-16);
  }
}

/******************************
 カレンダー 切り替え
******************************/
#move_nav {
  display: flex;
  overflow: hidden;
  justify-content: space-between;
  width: 100%;
}

/*----------------------------------
/ 
/ ご利用期間の選択
/
 ----------------------------------*/
#month_list {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 45px;
  margin: 50px 0 10px;
  justify-content: center;
}

.month-btn {
  width: min(44vw, 460px);
}

.month-btn a {
  display: block;
  overflow: hidden;
  font-size: var(--font-size-16);
  font-weight: 600;
  color: #00b5f7;

  text-align: left;
  padding-left: 24px;
  border-radius: 14px;
  border: 3px solid #00b5f7;
  box-shadow: 0px 3px 6px #00000029;
  transition: all 0.3s ease-out;
}

.month-btn a::after {
  color: #00b5f7;
}

.alC {
  text-align: center;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
  #month_list {
    gap: 20px 45px;
    flex-direction: column;
  }

  .month-btn {
    width: 100%;
  }
}

/*----------------------------------
/ 
/ 申込情報の入力
/
 ----------------------------------*/
.js-step-7 > .step_flow__line-active {
  width: 749px;
}

.js-step-7 > .step_flow__arrow {
  left: 692px;
}

.l-container-m form {
  width: 100%;
}

h3.h3-heading-ml {
  /*font-size: var(--font-size-28);
	font-weight: 600;*/
  margin-bottom: clamp(21px, calc(9.75px + 1.875vw), 36px);
  text-align: center;
}

.step-form {
  --form-color-01: #d4d4d4;
  --form-color-02: #f5f4eb;
  --form-color-03: #525252;

  /*padding-bottom: clamp(45px, calc(-33.75px + 13.125vw), 150px);*/
  margin: clamp(38px, calc(21.5px + 2.75vw), 60px) 0;
}

.step-form h4 {
  display: block;
  overflow: hidden;
  font-size: var(--font-size-20);
  font-weight: 600;
  padding-block: 12px;
  padding-inline: 21px;
  background-color: #dbf4ff;
  border-radius: 5px;
  margin-top: 0;
  margin-bottom: clamp(21px, calc(17.25px + 0.625vw), 26px);
}

.step-form > table {
  width: 100%;
}

.step-form > table th,
.step-form > table td {
  padding: 10px 10px;
  border-color: var(--form-color-01);
}

.step-form > table th {
  max-width: 346px;
  width: 30vw;
  font-weight: 600;
  background-color: var(--form-color-02) !important;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
}

/******************************
 フォームパーツ
******************************/

.step-form input[type="text"] {
  font-size: var(--font-size-16);
  padding: 5px;
}

.step-form input[type="tel"] {
  max-width: 30%;
  font-size: var(--font-size-16);
  padding: 5px;
}

.step-form input[type="password"],
.step-form input[type="tel"][name*="etc_"] {
  max-width: 50%;
  font-size: var(--font-size-16);
  padding: 5px;
}

.step-form input[type="email"] {
  max-width: 400px;
  width: 100%;
  font-size: var(--font-size-16);
  padding: 5px;
}

.step-form inputinput[type="radio"] {
  width: 15px;
  height: 15px;
  margin-top: 0;
}

.step-form select {
  font-size: var(--font-size-16);
  padding: 5px 10px;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
  .hayatabi_form > table th,
  .hayatabi_form > table td,
  .step-form > table th,
  .step-form > table td {
    display: block;
    overflow: hidden;
    width: 100%;
    max-width: unset;
  }
}

/******************************
 速旅会員
******************************/
#hayatabi_form {
  margin-top: 21px;
}

.hayatabi_description {
  margin: 21px 0;
}

.hayatabi_api_wrapper {
  margin-top: 12px;
}

.hayatabi_api_button {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;

  width: 300px;
  min-height: 60px;
  font-size: var(--font-size-16);
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  color: var(--color-white);

  background-color: var(--rule-apply-color);
  box-shadow: 0px 3px 6px #00000029;
  border-radius: 14px;
  border: none;
  transition: all 0.2s ease;
  box-shadow: 0px 3px 6px #00000029;
}

.hayatabi_api_button:disabled {
  background-color: var(--color-medium-gray);
}

#hayatabi_form_wrap label.hayatabi_confirm_label {
  max-width: calc(100% - 40px);
}

/******************************
 送信ボタン
******************************/
.btnset_box {
  display: block;
  overflow: hidden;
}

.btnset_box > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 10px;
}

.btnset_box li > span {
  display: inline-block;
  overflow: hidden;
  width: min(50vw, 350px);
  position: relative;
  font-weight: 600;
  text-align: center;
  padding-block: 12px;
  margin-inline: auto;
  background: #ffffff !important;
  border: 3px solid var(--colA1);
  border-radius: 99px !important;
  transition: 0.2s;
  cursor: pointer;
}

.btnset_box li.send > span {
  width: min(80vw, 460px);
  padding-block: 23px;
  color: var(--colA1) !important;
  font-size: var(--font-size-20);
  border-color: var(--colA1);
}

#next_bt_4.btnset_box li.send > span,
.btnset_box li.resend > span,
.btnset_box li.delete > span {
  width: min(33vw, 320px);
  padding-block: 23px;
  color: var(--colA1) !important;
  font-size: var(--font-size-20);
  border-color: var(--colA1);
}

.btnset_box li.send > span::after,
.btnset_box li.resend > span::after,
.btnset_box li.delete > span::after {
  position: absolute;
  right: 25px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 900;
  display: inline-block;
  content: "\f35a";
  padding-left: 0.5rem;
  font-family: "Font Awesome 7 Free" !important;
}

.btnset_box li.reset > span {
  padding-block: 23px;
  border-color: #c8c8c8;
  /*border-radius: 99px!important;
	border: solid #c8c8c8 3px !important;
	position:relative;
	transition: 0.2s;*/
}

.btnset_box li.reset > span::before {
  position: absolute;
  left: 25px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 900;
  display: inline-block;
  content: "\f0a8";
  padding-left: 0.5rem;
  font-family: "Font Awesome 7 Free" !important;
}

.btnset_box li.send span:hover,
.btnset_box li.reset span:hover {
  text-decoration: none !important;
}

.btnset_box li > span + p {
  text-align: center;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
  /*div#next_bt_3 .delete > span,
	div#next_bt_3 .resend > span,
	div#next_bt_3 .send span,
	div#next_bt_3 .send input,
	div#next_bt_4 ul li:not(.reset) > span,
	div#next_bt_3_tu ul li:not(.reset) > span{
		color: var(--colA1)!important;
	}*/
  .btnset_box > ul {
    flex-direction: column;
  }

  .btnset_box li > span {
    display: block;
    width: 100% !important;
    padding-block: 12px !important;
  }
}

/*----------------------------------
/ 
/ 申込情報の入力
/
 ----------------------------------*/
.js-step-8 > .step_flow__line-active {
  width: 863px;
}
.js-step-8 > .step_flow__arrow {
  left: 806px;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
}

/*----------------------------------
/ 
/ 申込完了
/
 ----------------------------------*/
.js-step-9 > .step_flow__line-active {
  width: 977px;
}
.js-step-9 > .step_flow__arrow {
  left: 920px;
}

#complete {
}

.f-18.f-bold {
  margin-bottom: clamp(13px, calc(-6.5px + 3.25vw), 39px);
}

.step-form_wrapper {
  width: 100%;
  margin-top: 32px;
}

.step-form_wrapper table th {
  background-color: var(--color-light-yellow);
}

#sf_request {
  display: block;
  overflow: hidden;
  padding: clamp(19px, calc(10px + 1.5vw), 31px);
  background-color: var(--color-light-yellow);
  text-align: center;
}

#sf_request > h3 {
  font-size: var(--font-size-22);
  font-weight: 600;
  margin-bottom: 20px;
}

#sf_request a.btn-bw-square {
  display: inline-block;
  margin: 20px 0;
}

#sf_request a.btn-bw-square:hover {
  text-decoration: none;
}

.step-form_info > h3 {
  display: block;
  overflow: hidden;
  width: 100%;
  padding: 20px 1em;
  font-size: var(--font-size-20);
  font-weight: 600;
  color: var(--color-white);
  text-align: center;
  background-color: var(--colA1);
  border-radius: 5px;
}

ul#comp-bnrs {
  display: flex;
  flex-wrap: wrap;
  gap: 80px;
  justify-content: center;
  align-items: center;
  margin-top: clamp(23px, calc(3.5px + 3.25vw), 49px);
}

ul#comp-bnrs > li > a {
  display: block;
  overflow: hidden;
  line-height: 100%;
  max-width: 381px;
}

/* for Sp --------------------*/
@media screen and (max-width: 768px) {
  ul#comp-bnrs {
    flex-direction: column;
    gap: 10px 0;
  }
}
