@charset "UTF-8";

/* **********************************************************************
 *
 *       Title:   block.css
 *
 ********************************************************************** */


/* トップページ設定
======================================================= */

/* メインビジュアル */
.top_main {
    position: relative;
}
.mv .slide {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.mv .slide .slides {
    height: 710px;
}
.mv .slide .slide01 {
	background: url(../img/bg_mv01.jpg) 50% 50% no-repeat;
	background-size: cover;
}
.mv .slide .slide02 {
	background: url(../img/bg_mv02.jpg) 50% 50% no-repeat;
	background-size: cover;
}
.mv .slide .slide03 {
	background: url(../img/bg_mv03.jpg) 50% 50% no-repeat;
	background-size: cover;
}
.mv .slide .slide04 {
    background: url(../img/bg_mv04.jpg) 50% 50% no-repeat;
    background-size: cover;
}
.mv .slide .slide05 {
    background: url(../img/bg_mv05.jpg) 50% 50% no-repeat;
    background-size: cover;
}
.mv .slide .inner {
    width: 1080px;
    margin: 0 auto;
    padding: 430px 0 0 0;
    color: #fff;
}
.mv .slide .catch {
    font-size: 4.5rem;
    font-style: italic;
}
.mv .slide .subcatch {
    font-size: 2.1rem;
}

#top h2 {
    font-size: 2.6rem;
    font-weight: 500;
    color: #B29869;
    text-align: left;
}
#top h2 span {
    color: #E60012;
    font-size: 5.5rem;
    font-family: "Libre Bodoni", serif;
    font-weight: 500;
    font-style: italic;
    margin: 0 70px 0 0;
}
.top_topics {
    position: absolute;
    width: 624px;
    background: #B29869;
    padding: 25px 30px;
    bottom: -50px;
    right: calc(50% - 540px);
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    z-index: 2;
}
.top_topics .tit {
    margin: 0 20px 0 0;
}
.top_topics dl {
    display: flex;
}
.top_topics dl dt {
    width: 100px;
    margin: 0 0 0 0;
}
.top_topics dl dd {
    width: calc(100% - 110px);
}
.top_topics dl dd a {
    color: #fff;
}
.top_topics .link {
    width: 100%;
    text-align: right;
}
.top_topics .link a {
    color: #fff;
}
/* top_about */
.top_about .intro {
    width: 1080px;
    margin: 0 auto;
    padding: 120px 0 100px;
}
.top_about .intro .txt {
    padding: 0 0 0 220px;
}
.top_about .list {
    background: #F7F7F5;
    padding: 100px 0 110px;
}
.about_box {
    position: relative;
    z-index: 0;
    margin: 0 0 60px;
    height: 540px;
}
.about_box.first::after {
    content: "";
    width: 100%;
    height: 646px;
    background: #ECEAE7;
    position: absolute;
    z-index: -1;
    top: 300px;
}
.about_box.second {
    height: 660px;
}
.about_box.third {
    position: relative;
    z-index: 0;
    margin: 0 0 0;
    height: 640px;
}
.about_box.third::after {
    content: "";
    width: 100%;
    height: 539px;
    background: #ECEAE7;
    position: absolute;
    z-index: -1;
    top: 300px;
}
.about_box .img{
    position: absolute;
    z-index: 0;
    top: 0px;
    right: 0px;
    min-width: 1180px;
    width: calc( ( 100vw - 1080px ) / 2 + 1080px );
    min-width: 590px;
    height: 400px;
}
.about_box.left .img{
    left: 0px;
    right: auto;
}
@supports ( object-fit: cover ) {
    .about_box .img img {
        height: 100%;
        width: 100%;
        left: 0;
        -o-object-fit: cover;
        object-fit: cover;
        top: 0;
        -ms-transform: none;
        -moz-transform: none;
        -webkit-transform: none;
        transform: none;
    }
}
.about_box .txt {
    width: 770px;
    position: absolute;
    top: 280px;
    left: calc( ( 100vw - 1080px ) / 2 + 100px );
    z-index: 1;
    padding: 70px 70px 50px 70px;
    background: #fff;
    box-shadow: 0 0 10px 0 rgba(96, 52, 0, .08);
}
.about_box.left .txt {
    left: auto;
    right: calc( ( 100vw - 1080px ) / 2 + 100px );
}
.about_box .txt .num {
    width: 100px;
    font-size: 4.5rem;
    line-height: 1;
    font-style: italic;
    position: absolute;
    top: -20px;
    left: 70px;
    color: #E60012;
    padding: 0 0 20px;
    background: url(../img/bg_num.png) 0 bottom no-repeat;
    background-size: 100px auto;
}
.about_box .txt .tit {
    font-size: 2.6rem;
    color: #B29869;
    margin: 0 0 20px;
}
.top_about .btn {
    position: relative;
    z-index: 2;
}

/* top_aircraft */
.top_aircraft {
    background: #ECEAE7;
    position: relative;
    height: 767px;
    padding: 0 0 100px;
}
.top_aircraft .img {
    background: url(../img/bg_top_aircraft.jpg) 50% 0 no-repeat;
    background-size: cover;
    height: 527px;
}
.top_aircraft .cnt {
    width: 1007px;
    box-sizing: border-box;
    position: absolute;
    top: 380px;
    left: calc( ( 100% - 1080px ) / 2 );
    z-index: 1;
    padding: 60px 70px 60px 70px;
    background: #fff;
    box-shadow: 0 0 10px 0 rgba(96, 52, 0, .08);
}
.top_aircraft .cnt .txt {
    width: 580px;
    margin: 0 0 30px;
}
.top_aircraft .cnt .img01 {
    position: absolute;
    right: -45px;
    top: -30px;
}
.top_aircraft .cnt .img02 {
    position: absolute;
    right: 50px;
    top: 248px;
}

/* top_case */
.top_case {
    background: #F7F7F5;
    padding: 100px 0 40px;
}
.top_case .inner {
    width: 1080px;
    margin: 0 auto;
}
.top_case .priority {
    display: flex;
    align-items: center;
    background: #B29869;
    color: #fff;
    padding: 4px 60px 4px 4px;
    margin: 0 0 70px;
}
.top_case .priority .img {
    margin: 0 60px 0 0;
}
.top_case .priority .tit {
    font-size: 2.6rem;
    color: #FFFCDE;
    margin: 0 0 10px;
}
.top_case .priority .btn a {
    background: #fff;
    color: #B29869;
}
.top_case .priority .btn a::before {
    background: url(../img/arw_g.png) 0 50% no-repeat;
    background-size: 10px auto;
}

.top_case .priority_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 0 30px;
}
.top_case .priority_list .col {
    width: calc(50% - 20px);
    margin: 0 0 40px;
    padding: 40px;
    box-sizing: border-box;
    background: #B29869;
    color: #fff;
}
.top_case .priority_list .col .tit {
    font-size: 2.6rem;
    color: #FFFCDE;
    margin: 0 0 10px;
}
/* .top_case .priority_list .col .btn {
    text-align: center;
} */
.top_case .priority_list .col .btn a {
    background: #fff;
    color: #B29869;
}
.top_case .priority_list .col .btn a::before {
    background: url(../img/arw_g.png) 0 50% no-repeat;
    background-size: 10px auto;
}

.top_case .case_inner > p {
    padding: 0 0 0 195px;
}
.top_case .case_list {
    margin: 60px 0 0 0;
}
.top_case .case_list ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.top_case .case_list ul li {
    width: 520px;
    background: #fff;
    margin: 0 0 60px 3px;
    box-shadow: 0 0 20px 0 rgba(96, 52, 0, .08);
}
.top_case .case_list ul li .img {
    position: relative;
}
.top_case .case_list ul li .img img {
    border: 1px solid #B29869;
    box-sizing: border-box;
}
.top_case .case_list ul li .img span {
    background: #B29869;
    color: #fff;
    position: absolute;
    left: -3px;
    top: 10px;
    padding: 0 10px;
}
.top_case .case_list ul li .txt {
    padding: 35px 45px;
}
.top_case .case_list ul li .txt .tit {
    font-size: 2.2rem;
    color: #B29869;
    margin: 0 0 10px;
}

/* top_carousel */
.top_carousel {
    background: #ECEAE7;
    padding: 100px 0;
}
.top_carousel ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.top_carousel ul li {
    margin: 0 5px;
}

/* top_faq */
.top_faq {
    background: #F7F7F5;
    padding: 70px 0 100px 0;
}
.top_faq .inner {
    width: 1080px;
    margin: 0 auto;
}
.top_faq h2 {
    margin: 0 0 20px;
}
dl.faq {
    margin: 0 0 30px;
}
dl.faq dt {
    border-top: 1px solid #B29869;
    background: #F7F7F5;
    font-size: 2.0rem;
    line-height: 1.5;
    padding: 18px 80px 18px 40px;
    margin: 0 0 10px;
    position: relative;
    cursor: pointer;
    display: flex;
}
#top dl.faq dt {
    background: #fff;
}
dl.faq dt i {
    background: #fff;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    position: absolute;
    right: 20px;
    top: 14px;
}
#top dl.faq dt i {
    background: #F7F7F5;
}
dl.faq dt i:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    right: 13px;
    bottom: 0;
    margin: auto;
    width: 16px;
    height: 1px;
    background-color: #504123;
    transition: .2s;
    transform: rotate(90deg);
    -webkit-transform: rotate(90deg)
}
dl.faq dt i:after {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    right: 13px;
    bottom: 0;
    margin: auto;
    width: 16px;
    height: 1px;
    background-color: #504123;
    transition: .3s
}
dl.faq dt.active i:before {
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg)
}

dl.faq dt.active i:after {
    background-color: transparent
}
dl.faq dt span {
    content: 'Q';
    font-size: 2.4rem;
    font-style: italic;
    color: #B29869;
    margin: -5px 20px 0 0;
}
dl.faq dd {
    display: none;
}
.top_faq .btn {
    margin: 60px 0 0;
}

/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
    transition: 0.6s ease-in-out;
    transform: translateY(30px);
    opacity: 0;
}
.scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}
  
/*----------------------------
scroll_left ｜左から出現
----------------------------*/
.scroll_left {
    -webkit-transition: 0.6s ease-in-out;
    -moz-transition: 0.6s ease-in-out;
    -o-transition: 0.6s ease-in-out;
    transition: 0.6s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_left.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

/*----------------------------
scroll_right ｜右から出現
----------------------------*/
.scroll_right {
    -webkit-transition: 0.6s ease-in-out;
    -moz-transition: 0.6s ease-in-out;
    -o-transition: 0.6s ease-in-out;
    transition: 0.6s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_right.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}


/*----------------------------
scroll_right ｜遅延用
----------------------------*/
.delay02 {transition-delay: .2s;}
.delay03 {transition-delay: .4s;}
.delay04 {transition-delay: .6s;}
.delay05 {transition-delay: .8s;}


/* 下層ページ設定
======================================================= */

/* 機体
=============================== */
.body_slide {
    margin: 40px 0 40px;
}
.body_slide ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.body_slide ul li img {
    width: 100%;
    height: 710px;
    object-fit: cover;
}
.body_feature ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
}
.body_feature ul li {
    width: 330px;
}
.body_feature ul li .img {
    margin: 0 0 20px;
}
.body_feature ul li .tit {
    font-size: 2.2rem;
    color: #B29869;
    margin: 0 0 10px;
}
.body_about {
    background: url(../img/img_body_about.png) 50% 50% no-repeat;
}
.body_about ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.body_about ul li {
    width: 330px;
    margin: 0 0 0 3px;
    position: relative;
}
.body_about ul li span {
    background: #B29869;
    color: #fff;
    position: absolute;
    left: -3px;
    top: 10px;
    padding: 0 10px;
}
.body_about ul li:nth-child(-n+3) {
    margin: 0 0 350px 3px;
}

/* 会社概要
=============================== */

table.tbr.row2 th {
    width: 25%;
}
ul.img2col {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
}
ul.img2col li:not(:last-child) {
    margin: 0 30px 0 0;
}

/* 優先航空券
=============================== */

.flex_wrap {
    display: flex;
    justify-content: space-between;
}
.flex_wrap .img {
    margin: 0 0 0 50px;
}
.imgframe {
    border: 1px solid #B29869;
    padding: 50px;
    text-align: center;
}
.imgframe.airport_map {
    margin: 50px 0;
}
span.emphasize {
    background: #B29869;
    color: #fff;
}
.pticket_cost {
    display: flex;
    justify-content: space-between;
    margin: 0 0 30px;
    background: url(../img/ico_plus.png) 50% 50% no-repeat;
}
.pticket_cost .pc_wrap_l {
    width: 470px;
    background: #ECEAE7;
    padding: 40px 60px;
    text-align: center;
    box-sizing: border-box;
}
.pticket_cost .pc_wrap_r {
    width: 470px;
    background: #F7F7F5;
    padding: 40px 60px;
    text-align: center;
    box-sizing: border-box;
}
.pticket_cost .tit {
    margin: 0 0 20px;
}
.pticket_cost .pc_box {
    background: #fff;
    padding: 15px 20px;
    margin: 0 0 10px;
    display: flex;
    align-items: center;
}
.pticket_cost .pc_box .img {
    width: 78px;
    text-align: center;
    margin: 0 20px 0 0;
    flex-shrink: 0;
}
.pticket_cost .pc_box ul {
    text-align: left;
    font-size: 1.3rem;
}
.imgframe.example .tit {
    margin: 0 0 30px;
    font-size: 2.1rem;
}
.imgframe.example .tit span {
    color: #E60012;
}
.imgframe.example table {
    margin: 0 0 30px;
}
.imgframe.example table tr.head th {
    background: #B29869;
    color: #fff;
    border-right: 1px solid #D6D3CD;
}
.imgframe.example table tr.head th:last-child {
    border: none;
}
.note.num {
    text-indent: -2em;
    margin-left: 2em;
    text-align: left;
}
.pt_step_tit {
    text-align: center;
    font-size: 2.1rem;
    margin: 0 0 30px;
}
.pt_step {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
}
.pt_step li {
    width: 25%;
    text-align: center;
    position: relative;
}
.pt_step li:not(:last-child) {
    border-right: 1px solid #504123;
}
.pt_step li:not(:last-child)::before {
    content: "";
    background: url(../img/arw_step.png) 0 0 no-repeat;
    width: 42px;
    height: 42px;
    position: absolute;
    top: calc(50% - 21px);
    right: -21px;
}
.pt_step li span {
    display: block;
    font-style: italic;
    margin: 0 0 20px;
}
.pt_step li img {
    margin: 0 0 20px;
}

.pt_flow {
    position: relative;
}
.pt_flow::before {
    content: "";
    display: block;
    width: 1px;
    height: 87.5%;
    background: #E60012;
    position: absolute;
    left: 7px;
    top: 7px;
}
.st_overwrite::before {
    height: 88.5%;
}

.pt_flow ol {
    list-style-type: none;
    margin: 0;
    padding: 0 0 0 70px;
}
.pt_flow ol li {
    position: relative;
    margin: 0 0 70px;
}
.pt_flow ol li::before {
    content: "";
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #E60012;
    position: absolute;
    left: -70px;
    top: 7px;
}
.pt_flow ol li > p {
    margin: 0 0 20px;
    color: #E60012;
    font-size: 1.3rem;
}
.pt_flow ol li > p span {
    font-style: italic;
    color: #504123;
    font-size: 1.8rem;
    margin: 0 25px 0 0;
}
.pt_flow ol li dl {
    display: flex;
}
.pt_flow ol li dl dt {
    margin: 0 20px 0 0;
}
.pt_flow ol li dl dd .tit {
    font-size: 2.4rem;
    margin: 0 0 10px;
}

/* 予約状況について
=============================== */

.calender {
    width: 730px;
    margin: 0 auto;
    position: relative;
}

.calender thead th,
.calender tbody td {
    font-weight: 500;
    border-color: rgba(184,184,184,.44);
}

.calender thead th.fc-col-header-cell {
    padding: 10px;
}

.calender .fc-day-sun {
    color: #C14D4D;
}

.calender .fc-day-sat {
    color: #3E4AB5;
}

.calender .fc-daygrid-day-top {
    justify-content: center;
}

.calender .fc-toolbar {
    display: block;
}

.calender .fc-toolbar .fc-toolbar-title {
    margin: 0;
    padding: 0;
    border-bottom: none;
    font-size: 25px;
    font-size: 2.5rem;
    color: #6B6B6B;
    text-align: center;
}

.calender .fc-toolbar .fc-toolbar-title::before {
    content: none;
}

.calender .fc-today-button {
    display: none;
}

.calender .fc-button-group {
    display: block;
    position: static;
}

.calender .fc-button-group .fc-prev-button,
.calender .fc-button-group .fc-next-button {
    width: 66px;
    height: 66px;
    border: none !important;
    border-radius: 50px !important;
    background: rgba(178,152,105,.52) !important;
    box-shadow: none !important;
    transition: .2s;
}

.calender .fc-button-group .fc-prev-button {
    position: absolute;
    top: 50%;
    left: -122px;
    background-image: url(../img/arw_calender_prev.png) !important;
    background-repeat: no-repeat !important;
    background-position: 24px center !important;
}

.calender .fc-button-group .fc-next-button {
    position: absolute;
    top: 50%;
    right: -122px;
    background-image: url(../img/arw_calender_next.png) !important;
    background-repeat: no-repeat !important;
    background-position: 28px center !important;
}

.calender .fc-button-group .fc-prev-button:hover,
.calender .fc-button-group .fc-next-button:hover {
    opacity: .7;
}

.calender .fc-scrollgrid {
    border: 1px solid #B29869;
    box-shadow: 2px 3px 8px rgba(0,0,0,.26)
}

.calender .fc-daygrid-day-number:hover,
.calender a.fc-event:hover {
    color: inherit;
}

.calender .fc-h-event .fc-event-main-frame,
.calender .fc-daygrid-dot-event {
    flex-wrap: wrap;
}

.calender .fc-h-event .fc-event-title,
.calender .fc-daygrid-dot-event .fc-event-title {
    white-space: normal;
}

/* お知らせ
=============================== */


.topics_list {
    margin: 0 0 60px;
    padding: 0;
    list-style: none;
}

.topics_list li {
    display: flex;
    align-items: flex-start;
    margin: 0 0 20px;
    padding: 0 0 20px;
    border-bottom: 1px solid #ECEAE7;
}

.topics_list li:last-child {
    margin: 0;
}

.topics_list li .date {
    width: 100px;
    margin: -2px 0 0;
    color: #A4AAB5;
}

.topics_list li .tit {
    width: 950px;
    margin: -2px 0 0 30px;
}

.pager {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.pager > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 5px 10px;
    border: 1px solid #202090;
    border-radius: 20px;
    font-size: 20px;
    font-size: 2.0rem;
    line-height: 1;
}

.pager a {
    color: #202090;
    text-decoration: none;
}

.pager > span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 5px;
    border: 1px solid #F4F6F7;
    border-radius: 20px;
    font-size: 20px;
    font-size: 2.0rem;
    line-height: 1;
    color: var(--cv_navy);
    background: #F4F6F7;
}

.pager .link_before,
.pager .link_next {
    text-indent: 50px;
    white-space: nowrap;
    overflow: hidden;
}

.pager .link_before {
    background: url(../img/pager_prev.png) no-repeat center center;
    background-size: 10.5px auto;
}

.pager .link_next {
    background: url(../img/pager_next.png) no-repeat center center;
    background-size: 10.5px auto;
}


/* お問合わせ
=============================== */

.block.thin {
    width: 900px;
    margin: 0 auto 60px;
}
.stepflow {
    display: table;
    overflow: hidden;
    list-style-type: none;
    width: 100%;
    margin: 0;
    padding: 0;
}
.stepflow li {
    display: table-cell;
    position: relative;
    width: 33%;
    padding: 12px 0 15px 0;
    background: #D6D3CD;
    color: #fff;
    text-align: center;
    line-height: 1.3;
    font-size: 2.4rem;
    height: 35px;
}
.stepflow li:last-child::before,
.stepflow li:last-child::after {
    display: none;
}
.stepflow li::before,
.stepflow li::after {
    position: absolute;
    width: 0;
    height: 0;
    margin: auto;
    content: "";
}
.stepflow li::before {
    z-index: 10;
    top: -8px;
    right: -1em;
    border-width: 40px 0 40px 1em;
    border-style: solid;
    border-color: transparent transparent transparent #fff;
}
.stepflow li::after {
    z-index: 10;
    top: -8px;
    right: -.9em;
    border-width: 40px 0 40px 1em;
    border-style: solid;
    border-color: transparent transparent transparent #D6D3CD;
}
.stepflow li.is-current {
    background: #B29869;
    color: #fff;
}
.stepflow li.is-current::after {
    border-color: transparent transparent transparent #B29869;
}
.stepflow li span {
    margin: 0 10px 0 0;
    font-size: 1.2rem;
}
.contactform th {
    width: 25%;
}
.contactform input[type="text"],
.contactform input[type="email"],
.contactform input[type="tel"],
.contactform input[type="url"],
.contactform textarea,
.contactform select {
    box-sizing: border-box;
    padding: 15px;
    border: 1px solid #EFEEEC;
    background: #F5F5F4;
    font-size: 1.6rem;
}
.contactform textarea {
    max-width: 100%;
}
.contactform input[type="text"],
.contactform input[type="email"],
.contactform input[type="tel"],
.contactform input[type="url"],
.contactform textarea {
    width: 100%;
}
.contactform input#zip1,
.contactform input#zip2 {
    width: 40%;
}
.contactform input.size_s {
	width: 200px;
}
::placeholder {
    color: #ADA79B;
}
.attention {
    font-size: 1.2rem;
    color: #E60012;
}
.mailtxt {
    font-size: 1.2rem;
    margin: 10px 0;
}
/* エラーメッセージ */
.err_block {
    clear: both;
    margin: 0 0 20px;
    padding: 12px;
    background: #fff3f3;
}
.err_block p {
    color: #e00000;
}
.err_block p.err_tit {
    margin: 0 0 5px;
    padding: 2px 0 2px 10px;
    background: #e00000;
    color: #fff;
    font-weight: bold;
}
/* タグ　エラー */
.contactform label.error {
    display: inline-block;
    border: 1px solid #ff8383;
    background: #fff3f3;
}
.contactform input.error {
    border: 1px solid #ff8383;
    background: #fff3f3;
}
.contactform select.error {
    border: 1px solid #ff8383;
    background: #fff3f3;
}
.contactform textarea.error {
    border: 1px solid #ff8383;
    background: #fff3f3;
}
fieldset {
    display: inline;
    padding: 3px;
}
fieldset.error {
    background: #fff3f3;
}
.contactform {
    border-top: 1px solid #ccc;
}
.contactform fieldset {
    overflow: hidden;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 15px 0;
    border: none;
    border-bottom: 1px solid #D6D3CD;
    vertical-align: bottom;
}
.contactform fieldset.end {
    border: none;
    padding: 60px 0 10px;
}
.contactform fieldset legend {
    box-sizing: border-box;
    position: relative;
    float: left;
    width: 25%;
    padding: 0 50px 0 10px;
    font-weight: bold;
    text-align: left;
    line-height: 1.5;
}
.contactform fieldset .inputarea {
    float: right;
    width: 70%;
}
.contactform fieldset .inputarea .tit {
    font-size: 1.4rem;
    font-weight: bold;
}
.contactform fieldset .inputarea ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.contactform fieldset .inputarea ul li {
    margin: 0 30px 0 0;
}
.contactform i {
    position: absolute;
    top: 0;
    right: 0;
    padding: 5px 7px;
    color: #fff;
    font-size: 12px;
    font-size: 1.2rem;
    font-weight: normal;
    font-style: normal;
    line-height: 1;
}
.contactform span {
    flex: 1;
}
.contactform i.required {
    background: #E60012;
}
.contactform i.any {
    background: #888;
}
.contactform label {
    cursor: pointer;
}

.contactform .inputarea_tit {
	display: inline-block;
	margin: 0 0 5px;
}

.contactform .inputarea_tit.mb0 {margin-bottom: 0;}

.contactform .inputarea_tit i {
	display: inline-block;
	position: static;
	margin: 0 10px;
}

.contactform .scroll_text {
	height: 100px;
	padding: 15px;
	border: 1px solid #EFEEEC;
	background: #F5F5F4;
	overflow-y: scroll;
}

form .submit {
    margin: 30px 0 0 0;
    text-align: center;
}
form .submit .btn {
    padding: 15px 60px;
    border: none;
    background: none;
    color: #fff;
    border-radius: 50px;
    cursor: pointer;
    position: relative;
    transition: opacity .2s;
}
form .submit .btn:hover {
    opacity: .6;
    transition: opacity .2s;
}
form .submit .btn:disabled {
    background:#ccc;
    cursor: default;
}
form .submit .btn:hover {
    opacity: 1;
    transition: opacity .2s;
}
form .submit .backbtn {
    padding: 12px 40px;
    border: none;
    background: #f1f1f1;
    color: #333;
    border-radius: 50px;
    cursor: pointer;
    position: relative;
    transition: opacity .2s;
}

table.form {
    border-top: 1px solid #D6D3CD;
}
table.form th,
table.form td {
    border-bottom: 1px solid #D6D3CD;
    padding: 20px 10px;
}
table.form th {
    width: 30%;
    font-weight: bold;
}
.thxmsg {
    font-size: 2.1rem;
    text-align: center;
    margin-bottom: 24px;
    line-height: 1.5;
}

/* 搭乗者情報入力フォーム
=============================== */
.privacy-policy {
    color: #555;
    border: 1px solid #ccc;
    border-radius: 4px;
    height: 200px;
    overflow-y: scroll;
    padding: 6px 12px;
}
.check-disabled {
    color: #afafaf;
}


/* 汎用スタイル
======================================================= */

span.texts {
    display: inline-block;
    font-size: 12px;
    font-size: 1.2rem;
}
span.textn {
    display: inline-block;
    font-size: 16px;
    font-size: 1.6rem;
}
span.textl {
    display: inline-block;
    font-size: 18px;
    font-size: 1.8rem;
}
span.textll {
    display: inline-block;
    font-size: 20px;
    font-size: 2.0rem;
}
span.textxl {
    display: inline-block;
    font-size: 24px;
    font-size: 2.4rem;
}
span.textxxl {
    display: inline-block;
    font-size: 28px;
    font-size: 2.8rem;
}

.btn a,
.btn a:visited {
    display: inline-block;
    min-width: 320px;
    padding: 15px 0;
    background: rgb(230,0,18);
    background: linear-gradient(90deg, rgba(230,0,18,1) 0%, rgba(193,0,15,1) 100%);
    color: #fff;
    text-decoration: none;
    border-radius: 40px;
    text-align: center;
    position: relative;
    transition: .2s;
}
.btn a:hover {
    opacity: .6;
    transition: .2s;
}
.btn a::before {
    content: "";
    background: url(../img/arw_w.png) 0 50% no-repeat;
    background-size: 10px auto;
    width: 10px;
    height: 8px;
    position: absolute;
    right: 20px;
    top: calc(50% - 4px);
    transition: .2s;
}
.btn a:hover::before {
    right: 10px;
    transition: .2s;
}

.overimg {
    transition: opacity .2s;
}
.overimg:hover {
    opacity: .6;
    transition: opacity .2s;
}

table {
    border-collapse: collapse;
    width: 100%;
    line-height: 1.5;
}

table.nbr,
table.tbr table.nbr {
    border-collapse: collapse;
    border-top: none;
    border-left: none;
}

table.nbr th,
table.tbr table.nbr th {
    padding: 0;
    border-right: none;
    border-bottom: none;
    font-weight: bold;
}

table.nbr td,
table.tbr table.nbr td {
    padding: 0;
    border-right: none;
    border-bottom: none;
}

table.tbr,
table.nbr table.tbr {
    border-collapse: collapse;
    border-top: 1px solid #D6D3CD;
    /* border-left: 1px solid #D6D3CD; */
}

table.tbr th,
table.nbr table.tbr th {
    padding: 20px 15px;
    border-right: 1px solid #D6D3CD;
    border-bottom: 1px solid #D6D3CD;
    background: #F7F7F5;
    font-weight: 500;
}

table.tbr td,
table.nbr table.tbr td {
    padding: 20px 15px;
    border-right: 1px solid #D6D3CD;
    border-bottom: 1px solid #D6D3CD;
}
table.tbr tr td:last-child {
    border-right: none;
}
table caption {
    margin: 0 0 10px;
    text-align: left;
}

.photo-r {
    float: right;
    margin: 3px 0 30px 30px;
    font-size: 10px;
    font-size: 1.0rem;
    text-align: left;
}
.photo-l {
    float: left;
    margin: 3px 30px 30px 0;
    font-size: 10px;
    font-size: 1.0rem;
    text-align: left;
}
.photo-c {
    margin: 3px auto 30px;
    font-size: 10px;
    font-size: 1.0rem;
}

.photo-r img,
.photo-l img,
.photo-c img {
    margin-bottom: 5px;
}
.top_back {
    clear: both;
    padding: 30px 0;
    text-align: center;
}

.top_back a {
    padding: 0 15px;
}
iframe {
    border: none;
}

.tac {
    text-align: center !important;
}
.tal {
    text-align: left !important;
}
.tar {
    text-align: right !important;
}

.mb5 {
    margin-bottom: 5px;
}
.mb10 {
    margin-bottom: 10px;
}
.mb15 {
    margin-bottom: 15px;
}
.mb20 {
    margin-bottom: 20px;
}
.mb25 {
    margin-bottom: 25px;
}
.mb30 {
    margin-bottom: 30px;
}
.mb35 {
    margin-bottom: 35px;
}
.mb40 {
    margin-bottom: 40px;
}
.mb60 {
    margin-bottom: 60px;
}

.pc_none {
    display: none;
}
.clearfix {
    zoom: 1;
}
.clearfix::after {
    display: block;
    clear: both;
    content: "";
}
*::after {
    display: block;
    clear: both;
}
