body{
    font-family: 'Source Han Serif CN';
    background: #F3F3F1 !important;
}
@font-face {
    font-family: 'Source Han Serif CN';
    src: url("./font/Granjon.otf");
    font-weight: 400;
    font-style: normal; }
@font-face {
        font-family: 'Source Han Serif CN';
        src: url("./font/Granjon.otf");
        font-weight: 500;}
@font-face {
            font-family: 'Source Han Serif CN';
            src: url("./font/Granjon.otf");
            font-weight: 600; }
.break-all { 
  font-family: "FZLanTingHei-EL-GBK";
  word-break: break-all; 
  font-size: 12px;
  font-weight: 250;
  line-height: 167.67%;
  letter-spacing: 0.02em;
  color:#656D70;
}
.main-section{
    height: 100vh; 

    height: calc(var(--vh, 1vh) * 100);
}
.main-box{
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
}     
.left-image img{
  width:100%;
  height: 100%;
  object-fit: cover;
}
.box-right{
  margin: 5vw;
  }
  .right-box >div{
    margin-bottom: 16px;
}
.div-with{
    width: 40px;
}
.right-title{
    font-size:24px;
    font-weight: 700;
}
.right-content{
    font-size:14px;
    font-weight: 400;
}
.right-btn{
padding-top: 16px;
}
.right-footer{
    font-size: 12px;
    font-weight: 400;
}

span{color: #DA3E00;}

.form-label{font-size: 20px; font-weight:500;margin-bottom: 13px;}
.modal-footer{flex-wrap: inherit;}
label{font-weight:100;color: #404040;}
.form-group{padding:0 30px 38px;}
.form-group:hover>label,.form-group:focus-within label{
    color: #252728;
}
.beg{
    background-color: rgba(14, 14, 14, 0.03);
}
/* .beg_1{background-color: #FBFCFC;} */
.text-field{min-height: 48px;}
.bg_button{
    padding-bottom: 80px;
}
.clear_row_l_r{
    margin-left: 0px;
    margin-right: 0px;
}
.headers {
  position: relative;
  width: 100%;
  height: 96px;
}
.header-wrap {
    height: 96px;
    width: 100%;
}
.logo{
  margin: 51px auto 32px;
  width: 200px;
  height: 39px;
    /* position: absolute;
    left: 40px;
    top: 30px;    */
}
.top{
  margin: 0 auto;
  max-width: 357px;
  height: 85px;
}
img{
  max-width: 100%;
  height: auto;
  display:block;
}
.top-text{
  text-align: center;
  margin: 13px auto 36px;
}
.date{
  margin: 0 auto 28px;
  width: 194px;
  height: 40px;
}
.car{
  margin: 0 auto;
  max-width: 421px;
  height: 134px;
}
.bottom{
  margin: 0 auto;
  width: 324px;
  height: 216px;
}
.radioh{
  margin-bottom: 12px;
}
.radioh:nth-child(3) {
margin-bottom: 0;
}
.radioh label {
  margin-left: 6px;
}
.btn-submit{
border-radius: 8px;
background: #C49962;
}
.collbtn >button {
  border-radius: 8px !important;
}
.btndiv{
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 1024px) {
    .logo {
      left: 30px; } }

.c_h_logo{
    height:32px;
    padding: 80px 40px;
}
.c_h_logo_1{
  padding: 80px 40px 50px 0px;
}
.c_h_logo span{
    font-size: 24px;
    font-weight: 700;
    vertical-align: middle;
    padding-left: 32px;
}
.c_h_logo_p{
  font-size: 32px;
  font-weight: 700;
  vertical-align: middle;
}
.c_h_content_p{
  margin-bottom: 2.5rem;
}
.content_left-l{
    padding-left: 0px;
    padding-right: 12px;
}
.c_h_content_p_ul{
list-style-type: none; 
padding-left: 0;
}
.c_h_content_p_ul :first-child{
  font-weight:bold;
}
.content_left-r{
    padding-left: 12px;
    padding-right: 0px;
    padding-top: 0px;
}
.content_left,.content_right{
    flex: 0 0 auto;
    width:50%;
}
.title,.left,.right{
  box-shadow: rgba(0, 0, 0, 0.05) 0px 4px 20px;
  -webkit-box-shadow:rgba(0, 0, 0, 0.05) 0px 4px 20px;
  border-radius: 4px;
}
.r1{
  padding:30px 0 30px 0;
}
.title{
  padding: 40px;
  background-color: #F4F9FF;
}
.left,.right{
    padding:56px;
    /* background-color: white; */
}
.title_head span{
  font-size: 20px;
  font-weight: 700;
  vertical-align: middle;
  padding-left: 32px;
  color: #298BFF;
}
.title_footer{
  padding:16px 84px;
}
.title-footer-r-t{
  font-weight: 500;
  font-size: 16px;
}
/* .title-footer-r{
  padding-bottom: 8px;
} */
.left_head{
  padding-top: 16px;
padding-bottom: 32px;
}
.left_head span{
    font-size: 20px;
    font-weight: 700;
    vertical-align: middle;
    /* padding-left: 32px; */
}
.text-field__wrap{
    padding-bottom: 16px;
}

.form-control{
  font-size: 20px;
    border-radius: 8px;
    border: 0 !important;
}
.custom-control {
    position: relative;
    z-index: 1;
    display: block;
    min-height: 1.5rem;
    padding-left: 1.5rem;
    print-color-adjust: exact; 
  }
  .custom-radio-l{
    padding-left: 0px;
    padding-right: 5px;
  }
  .custom-radio-r{
    padding-left: 5px;
    padding-right: 0px;
  }
.custom-control-inline {
   padding: 11px
  }
  .custom-control-label{
    position: relative;
  margin-bottom: 0;
  vertical-align: top;
  font-size: 16px;
  }
  .border-r{
    border: 1px #dee2e6 solid;
    border-radius: 4px;
  }
  .message-r{
    padding: 40px 0px;
  }
  .message{
    position: relative;
    padding: 40px 24px;
    background: #EAF3FF;
    border-radius: 4px;
  }
  .message-t{
    padding: 0 10rem;
    text-align: left;
  }
  .span1{
    position: absolute;
    width: 24px;
    height: 24.23px;
    left: 8rem;
    top: 4rem;
  }
  .span1_{
    top: 3rem;
  }
  .info-div-1{
    font-weight: 600;
    padding-left:0px;
    padding-bottom: 8px;
  }
  .btncss{
    padding-bottom: 120px;
  }
  .collbtn{
    width: auto;
    margin-top: 80px;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .collbtn_{
    /* margin-top: 80px; */
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .btn{
    width: 188px;
    height: 48px;
    border-radius: 8px;
    margin: 53px 0 70px;
    color: #fff;
  }
  .btnauto{
    width:100%
  }
  .amg{
    position: relative;
  }
  .amg img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
.hide_yes>label{
  font-size: 12px;
  padding-left: 20px;
}
.labsize{
  font-size:12px;
  color: #7C7D7E;
}
.note{
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  border-radius: 8px;
  padding: 4px 8px;
  background:  #F4F9FF;
}
.fw{font-weight: 500;color: #252728;}
.fb{font-weight: 400;color:#7C7D7E; font-size: 12px;}
.plane_div,.train_div,.travelling_div,.Partner_div{display: none;}
.plane_div_b,.train_div_b,.travelling_div_b{display:block;}
.note_text{
  padding-left: 8px;
  font-size: 12px;
  font-weight: 500;
  color: #767676;;
}
.hide_yes,.hide_specify{display: none;}


.content{
  background: rgba(255,255,255,1);
  display: flex;
  flex-flow: column;
  justify-content: center;
  padding:110px 12vh;
}
.content-title{
  text-align: center;
  padding-bottom: 88px;
}
.content-title-o{
  max-width: 800px;
  margin: auto;
  font-size: 32px;
  text-align: center;
  font-weight: 500;
}
.content-title-o1{
  margin: auto;
  font-size: 32px;
  text-align: center;
  font-weight: 500;
}
.content-title-t{
  /* text-align: left; */
  font-size: 20px;
  padding-top: 29px;
  padding-left: 0;
}
.spring-s{
  border-top: 2px solid #ccc;
}
.collbtn{
  margin-top: 88px;
  /* width: 400px; */
}
.collbtn >button{
  border-radius:0;

}
.cc{
  display: flex;
  justify-content: center;
  background: #FBFBFB;
}
.content-ten{
  display: flex;
  padding: 40px;
  flex-direction: column;

  gap: 48px;
  /* background: #FBFBFB; */
}
.tent-t{
  display: flex;
  align-items: center;
}
.tent-t span{padding-left: 2rem;}
.tent-c{
  display: flex;
}
.tent-c img{
padding-top: 0.5rem;
}
.spring-image img{width:100%;height: 100%;}
.i-auto{text-align: center;padding: 16px 0 39px 0; font-size: 13px;}
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .c_h_logo{
        padding: 64px 32px;
    }
    .c_h_logo_1{
      padding: 60px 40px 0px 0px;
    }
    .left,.right{
        padding:24px;
    }
    .collbtn{
        margin-top: 64px;
    }
    .btncss{
        padding-bottom: 96px;
    }
    .left_head span{
        font-size: 18px;
    }
    .message-t{
        padding: 0 2rem;
    }
    .span1{
        left: 1rem;
    }
    .content{
      padding: 90px 10vh;
    }
    .content-ten{
      background: #FBFBFB;
    }
    .content-title-o{
      font-size: 20px;
    }
    .content-title-o1{
      font-size: 24px;
    }
  .content-title-t{
    font-size: 14px;
  }
  .step-content{
    width: 10rem;
    min-width: 10rem;
    max-width: 10rem;
  }
  .step-circle::before{
    left: -9px;
    width: calc(9rem);
  }
}
@media only screen and (max-width: 479px) {
  .container,.row{
    margin: auto;
  }
  .content{
    padding: 48px 16px 96px;
  }
  .c_h_content_p{
    margin-bottom: 0;
  }
  .content-title{
    padding-bottom: 32px;
  }
  .content-title-o{
    font-size:14px
  }
  .content-title-o1{
    font-size: 16px;
  }
  .content-title-t{
    font-size: 14px;
  }
  .content-ten{
    gap: 18px;
    padding:32px;
  }
  .tent-c img{
    padding-top: 1.8rem;
  }
  .tent-t span{
    font-size: 12px;
  }
  .steps{
    flex-direction:column;
    /* overflow-x: initial; */
  }
  .step-text{
    padding-left: 2.5rem;
  }
  .step-circle{top:1.5rem;}
  .step-circle::before{
    top:-3.2rem;
    left: auto;
    width: calc(5rem);
    transform: rotate(90deg);
  }
    .headers{
        height:60px;
    }
    .header-wrap{height: 60px;}
    .c_h_logo_p{
      font-size:20px;
    }
    .title_head{
      display: flex;
      flex-flow: column;
      align-items: flex-start;
      padding-left: 0;
    }
    .title_head span{
      font-size: 16px;
      padding-left: 0px;
      padding-top: 16px;
    }
    .title_footer{
      padding: 16px 0;
    }
    .content_left,.content_right{
        width: 100%;
      }  
      .logo{top:15px;}

      .bg_button{padding: 0px;}
      .c_h_logo{
        padding:30px 5px;
      }
      .c_h_logo span{font-size: 20px;}
      .c_b_div{
        background-color: #FBFCFC;
      }
      .c_h_logo_1{
        padding: 40px 0px 25px 10px;
      }
      .r1{
        padding: 0;
      }
      .content_left-l{
        padding: 30px 8px 4px;
      }
      .content_left-r{
        padding: 4px 8px 40px 8px;
      }
      .left, .right{
        padding:0px;
       -webkit-box-shadow:none;
       box-shadow: none;
      }
      .rowtop{
        padding-top: 32px;
      }
      .custom-radio-l,.custom-radio-r{
        width:50%;
      }
      .message-r{
        padding: 40px 8px;
      }
      .message{
        padding:20px 8px 20px 30px;
      }
      .message-t{
        padding:0 0 0 20px;
      }
      .message-t >span{
        font-size: 14px;;
      }
      .span1{
        width: 18px;
        height: 18px;
        left: 1rem;
        top:1.5rem;
      }
      .info-div{
        padding: 0 12px;
      }
      .collbtn,.collbtn_{
        margin-top:40px;
      }
      .collbtn{
        width:100%;
      }
      .btncss{
        padding-bottom: 60px;
        width: auto;
      }
      .form-check-label{font-size: 14px;}
      /* .btn{width: 100%;margin: 0 0 10px 0;} */
}
@media (orientation:portrait){
    @media screen and (min-width: 768px) and (max-width: 1024px) {
        .c_h_logo{
            height: auto;
            padding:44px 32px;
        }
        .bg_button{
            padding-bottom:48px;
        }
      .content_left,.content_right{
        width: 100%;
      }  
      .content_left-l{
        padding-left:40px;
        padding-right:40px;
      }
      .content_left-r{
        padding-top: 16px;
        padding-left:40px;
        padding-right: 40px;
      }
      .message-r{
        padding:40px 40px;
      }
      .info-div{
        padding: 0 40px;
      }
      .collbtn{
        margin-top:40px;
      }
      .btncss{
        padding-bottom: 80px;
      }
    }
}


.win { display: none; position: fixed; left:0; top:0; width:100%; height:100%; z-index:9999; }
.mask-layer { 
    position: fixed; 
    width: 100%; 
    height: 100%; 
    opacity: 0.5; 
    filter: alpha(opacity=50); 
    background-color: black; 
    z-index: 99998; 
    top: 0px; 
    left: 0px; 
}
.window-panel { 
    position: fixed; 
    z-index: 99999; 
    /* 删除旧的 top:50%; left:50%; JS改用transform居中 */
    background-color: white; 
    border-radius: 18px; 
    overflow: hidden;
}
.window-panel .title-panel { 
    position: absolute; 
    height: 36px; 
    width: 100%; 
    border-radius: 18px 18px 0 0; 
}
.window-panel .title { 
    position: absolute; 
    height: 36px; 
    width: 100%; 
    text-align: center; 
    border-radius: 18px 18px 0 0; 
    line-height: 36px; 
    vertical-align: middle; 
    background-color: whitesmoke; 
    border-bottom: 1px solid rgb(233, 233, 233); 
    z-index: 1; 
}
.window-panel h3 { font-size: 16px; margin: 0; }
.window-panel .close-btn { 
    display: block; 
    text-align: center; 
    vertical-align: middle; 
    position: absolute; 
    width: 56px; 
    height: 56px; 
    line-height: 56px; 
    right: 0px; 
    text-decoration: none; 
    font-size: 44px; 
    color: black; 
    border-radius: 2px; 
    z-index: 1; 
}

/* body-panel：取消绝对定位、取消写死340px高度，实现内容自适应撑开 */
.window-panel .body-panel { 
  position: relative; /* 给btns-close做绝对定位父容器 */
  padding: 32px 24px;
}
.window-panel .body-panel.toast-panel{ 
    color:#fff;
    background:rgba(0,0,0,0.7); 
    padding:12px 20px;
    border-radius:8px;
}

.window-panel .btns-close { 
  position: absolute;
  top: 12px;
  right:12px;
  margin:0;
  padding:0;
  height:auto;
  z-index: 10;
}
.window-panel .btns-close .close-btn{
  font-size:22px;
  color:#999;
  text-decoration:none;
}
.window-panel .btns { 
  text-align: center;
  margin: 0 0 16px 0 !important; /* 上面margin清零，只保留下边距，隔开文字 */
  padding:0;
}
/* 弹窗图标容器 */
.window-panel .icon-wrap{
  display: flex;
  justify-content: center;
  align-items: center;
  text-align:center;
  margin: 0 0 16px 0; /* 上边距0，只留下边距隔开文字 */
  padding:10px;
}
.window-panel .btns img{
  vertical-align: middle;
  margin: auto;
}
.window-panel .content { 
    font-size: 18px; 
    min-height: 40px; 
    line-height: 2.2; 
    /* 重点：white-space:pre 删掉，改为normal，多行文案正常换行 */
    white-space: normal;
    text-align:center;
    padding: 0 16px 0;
}
.window-panel .content span{padding-bottom: 2px; margin-top: 0 !important;}
.window-panel .content.toast-content{padding:0;min-height:0; font-size:14px; line-height:1.5;}

.window-panel .w-btn { 
    display: inline-block; 
    width: 88px; 
    height: 36px; 
    line-height: 36px; 
    background-color: #DE5923; 
    color: white; 
    cursor: pointer; 
    text-align: center; 
    border-radius: 4px; 
    text-decoration: none; 
    margin: 0 10px 0px 10px; 
    border: none; 
}
.window-panel .w-btn:hover { background-color: #DA3E00; }
.window-panel .w-btn:focus { outline: 0 none; }



@mixin form-validation-state-selector($state) {
  @if ($state == "valid" or $state == "invalid") {
    .was-validated #{if(&, "&", "")}:#{$state},
    #{if(&, "&", "")}.is-#{$state} {
      @content;
    }
  } @else {
    #{if(&, "&", "")}.is-#{$state} {
      @content;
    }
  }
}

.form-check-input {
  @include form-validation-state-selector($state) {
    border-color: $border-color;

    &:checked {
      background-color: #b02a37;
    }

    &:focus {
      box-shadow: #b02a37;
    }

    ~ .form-check-label {
      color: $color;
    }
  }
}
.mobbox{
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
}
/* 独立加号，定位悬浮在输入框上面，不受表单校验影响 */
.tel-plus-mark {
position: absolute;
  z-index: 3;
  left: 18px;
  top: 50%;
  transform: translateY(-60%);
  font-size:28px;
  font-weight:bold;
  color:#222;
  pointer-events:none;
  line-height: 1;
}
.tel-plus-mark::before{
  content:"+";
}
.tel1{
  width: 30%;
padding: 0.375rem 0.5rem 0.375rem 46px !important;
  text-indent:0 !important;
}
.tel2{
  width: 70%;
}
.mytellico{
  /* background: url(image/+.svg) no-repeat 20px center; */
  background-color: #fff;
   /* text-indent: 20px; */
   /* padding: 0.375rem 0.375rem 0.375rem 1.375rem;
   text-indent: 0; */
}
/* 校验状态完全交给bootstrap原生，不再写多背景 */
.was-validated .mytellico:invalid,
.mytellico.is-invalid {
  padding-right: 2.25rem !important;
}
.form-check-input:checked{
    background-color: #C49962;
  border-color: #C49962;
}