/* Plan Pages CSS - Extracted from reference files */

/* Gallery Columns */
.gallery { margin: 0 auto 15px; width: 100%; }
.gallery-item { display: inline-block; margin: 0; padding: 0; vertical-align: top; float: left; text-align: center; }
.gallery-columns-1 .gallery-item { width: 95%; }
.gallery-columns-1 .gallery-item img { max-width: 98.5%; }
.gallery-columns-2 .gallery-item { width: 45%; }
.gallery-columns-2 .gallery-item img { max-width: 95.5%; }
.gallery-columns-3 .gallery-item { width: 33.3% !important; float: left !important; }
.gallery-columns-3 .gallery-item img { max-width: 92%; }
.gallery-columns-4 .gallery-item { width: 22.5%; }
.gallery-columns-4 .gallery-item img { max-width: 88%; }
.gallery-columns-5 .gallery-item { width: 18%; }
.gallery-columns-5 .gallery-item img { max-width: 85%; }

/* Problems Section */
.post .problems {
    text-align: center;
    display: flex;
    justify-content: space-around;
    background: #7c90c5;
    margin: 0 auto;
    padding: 30px 5px;
    position: relative;
    list-style: none;
}
.post .problems:after {
    top: 100%;
    left: 50%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(204, 204, 204, 0);
    border-top-color: #7c90c5;
    border-width: 12px;
    margin-left: -12px;
}
.post .problems li {
    background: #fff;
    width: 30%;
    padding: 18px 10px;
    box-sizing: border-box;
    font-weight: 700;
    margin: 0;
    position: relative;
    font-size: 110%;
    line-height: 1.3;
}
.post .problems li:before {
    position: absolute;
    display: block;
    content: "\f10d";
    font-family: 'FontAwesome';
    left: 5px;
    top: -2px;
    margin-top: -8px;
    font-size: 130%;
    color: #2c3e6f;
    font-weight: 400;
}
.post .problems li img { width: 50%; margin-top: 8px; border: none !important; padding: 0 !important; }

/* Solution Section */
.post .solution {
    text-align: center;
    font-size: 145%;
    margin: 30px auto 60px;
    font-weight: 700;
    color: #0e7fad;
}
.post .solution2 {
    text-align: center;
    font-size: 120%;
    margin: 0 auto 60px;
    font-weight: 700;
    padding: 20px 10px;
    border-bottom: 10px solid #f0e800;
    box-shadow: 0px 1px 10px 0px rgba(0, 0, 0, .3);
}

/* KK Guide Section (観光利用) */
.kk_guide {
    display: flex;
    justify-content: space-between;
    margin-left: 0 !important;
    list-style: none;
}
.kk_guide li {
    background: #1f2d4d;
    width: 30%;
    text-align: center;
    padding: 10px 0;
    border-radius: 10px;
    font-weight: 700;
    color: #fff;
}
.kk_guide img { width: 40%; border: none !important; padding: 0 !important; }

/* Price Table */
.post table.priceTable th, .post table.priceTable td {
    text-align: center;
    vertical-align: middle;
}
@media print, screen and (min-width: 642px) {
    table.priceTable td { white-space: nowrap; }
}

/* Area Table */
.areaTable { border: 2px solid #bbc4dd; margin-bottom: 45px; }
.areaTable th { border: none; color: #1c2d4f; font-weight: 700; background: #e6e9f1; width: 30%; padding: 30px 20px; font-size: 110%; }
.areaTable td { border: none; padding: 30px 20px; }

/* Content Tab Menu */
.content_tabmenu .wcs-tabs-nav {
    display: flex;
    text-align: center;
    width: 100%;
    border: none;
    list-style: none;
    padding: 0;
    margin: 0 0 -2px 0;
}
.content_tabmenu .wcs-tabs-nav:before,
.content_tabmenu .wcs-tabs-nav:after { display: none; }
.content_tabmenu .wcs-tabs-nav li {
    display: flex;
    float: none;
    margin: 0;
    text-align: center;
    width: 100%;
}
.content_tabmenu .wcs-tabs-nav li a {
    padding: 20px 10px;
    border: 2px solid #e5e5e5;
    border-bottom: none;
    background: #e5e5e5;
    font-weight: 700;
    color: #495e7d;
    line-height: 1.2;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
}
.content_tabmenu .wcs-tabs-nav li.active a {
    color: #2c3e6f;
    border: 2px solid #2c3e6f;
    border-bottom: 2px solid #fff;
    background: #fff;
    position: relative;
    z-index: 1;
}
.content_tabmenu .tab-content {
    display: none;
    border: 2px solid #2c3e6f;
    box-sizing: border-box;
    padding: 20px;
}
.content_tabmenu .tab-content.active { display: block; }
.content_tabmenu .tab-content h2 small {
    font-size: 60%;
    font-weight: normal;
}

/* Merit Detail Section (定期利用のご契約) */
.post .merit_detail {
    position: relative;
}
.post .merit_detail img {
    width: 100%;
    height: auto;
    border: none !important;
    padding: 0 !important;
}
.post .merit_detail .text {
    position: absolute;
    left: 0;
    top: 50%;
    background: rgba(255, 255, 255, .9);
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
    padding: 20px 20px 5px;
}
.post .merit_detail .text ul {
    margin-left: 0;
}
.post .merit_detail .text ul li {
    margin-bottom: 8px;
}

/* Scene Area Section */
.post .scene-area {
    margin-top: 45px;
}

/* KK Point Section (ゲストの送迎) */
.kk_point {
    display: flex;
    justify-content: space-between;
    list-style: none;
    margin: 0 0 30px 0 !important;
    padding: 0;
}
.kk_point li {
    width: 30%;
    text-align: center;
    background: #f5f5f5;
    padding: 20px 10px;
    box-sizing: border-box;
    border-radius: 10px;
}
.kk_point li img {
    width: 60px;
    height: auto;
    border: none !important;
    padding: 0 !important;
}
.kk_point li p {
    margin: 10px 0 0;
    font-weight: 700;
    font-size: 90%;
    line-height: 1.4;
}

/* KK Service Section */
.kk_service {
    display: flex;
    justify-content: space-between;
    list-style: none;
    margin: 0 0 30px 0 !important;
    padding: 0;
}
.kk_service li {
    width: 32%;
    text-align: center;
    background: #2c3e6f;
    color: #fff;
    padding: 20px 15px;
    box-sizing: border-box;
    border-radius: 5px;
}
.kk_service li img {
    width: 80px;
    height: auto;
    border: none !important;
    padding: 0 !important;
}
.kk_service li h3 {
    color: #fff;
    border: none;
    margin: 10px 0;
    padding: 0;
    font-size: 110%;
}
.kk_service li p {
    margin: 0;
    font-size: 90%;
    line-height: 1.5;
    text-align: left;
}

/* Kanko KK Section */
.kanko_kk {
    margin-top: 40px;
}
.kanko_kk h2 {
    margin-bottom: 20px;
}

/* Examples Section */
.examples {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 20px 0;
}
.examples .example-item {
    width: 32%;
    margin-bottom: 20px;
    text-align: center;
}
.examples .example-item img {
    width: 100%;
    height: auto;
}
.examples .example-item p {
    margin-top: 10px;
    font-weight: 700;
}

/* Airport Pickup Page */
.airport_cnt { font-size: 15px; font-family: 'Noto Sans JP', "游ゴシック Medium", "游ゴシック", "ヒラギノ角ゴ Pro W3", "HiraKakuPro-W3", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", sans-serif; }
.airport_cnt img { width: 100%; vertical-align: bottom; }
.airport_cnt h1 { font-size: 24px; margin-bottom: 30px; background: linear-gradient(transparent 75%, #f3ea52 75%); display: inline; }
.airport_cnt h2 { font-size: 32px; font-weight: 400; text-align: center; margin-bottom: 20px; }
.airport_cnt h3 { border-bottom: 1px solid #ccc; font-size: 18px; margin-bottom: 10px; padding-bottom: 5px; }
.airport_cnt ul, .airport_cnt ol { margin: 0; padding: 0; }
.airport_cnt ul li, .airport_cnt ol li { line-height: 1.6; }
.airport_cnt .main { background: #f5f5f5; padding: 30px; margin-bottom: 80px; text-align: center; }
.airport_cnt .main p { margin-top: 20px; font-size: 14px; line-height: 2.2em; }
.airport_cnt .main a { display: inline-block; background: #53b39c; padding: 10px 20px 12px; color: #fff; text-decoration: none; border-radius: 5px; vertical-align: top; margin-top: 30px; }
.airport_cnt .main a:hover { background: #61ceb4; }
.airport_cnt .txt01 { padding: 10px 15px; background: rgba(255,255,255,.9); margin: -80px 0 30px 5%; display: inline-block; line-height: 2.2em; }
.airport_cnt .txt02 { font-size: 12px; }
.airport_cnt table { width: 100%; border: 1px solid #ccc !important; border-style: solid none none solid; font-size: 16px; margin-bottom: 15px; }
.airport_cnt th, .airport_cnt td { border: 1px solid #ccc !important; border-style: none solid solid none; padding: 10px; text-align: center !important; vertical-align: middle !important; }
.airport_cnt th { width: 20%; }
.haneda_price tr th, .narita_price tr th { background: #eee; color: #1c2d4f; font-weight: 700; }
.haneda_price tr:first-of-type th, .narita_price tr:first-of-type th { background: #888; color: #fff; }
.haneda_price tr:last-of-type th, .narita_price tr:last-of-type th { background: #fbeeb5; }
.haneda_price tr:first-of-type td, .narita_price tr:first-of-type td { background: #888; color: #fff; }
.haneda_price tr:last-of-type td, .narita_price tr:last-of-type td { background: #fbeeb5; font-weight: 700; }
/* Airport Tabs */
.tabs ul, .tabs ol { list-style: none; }
.tabs { margin: 0 0 80px; }
.tabs .tab-list { display: table; width: 100%; margin: 0; border-left: 2px solid #53b39c; overflow: hidden; font-size: 20px; box-sizing: border-box; }
.tabs .tab-list li { display: table-cell; height: 2em; line-height: 2em; border-top: 2px solid #53b39c; border-right: 2px solid #53b39c; }
.tabs .tab-list li a { display: inline-block; width: 100%; text-align: center; text-decoration: none; color: #333; }
.tabs .tab-list li a.active { background-color: #61ceb4; color: #fff; font-weight: 700; }
.tabs .tab-list li:hover { background-color: #eee; }
.tabs .tab-body { border: 1px solid #ccc; border-top: 2px solid #53b39c; padding: 20px; }
.tabs .tab-body li { display: none; }
.tabs .tab-body li.active { display: block; }
/* Airport Feature */
.airport_cnt ul.feature { list-style: none; }
.airport_cnt ul.feature li { display: flex; justify-content: space-between; background: #f5f5f5; margin-bottom: 20px; padding: 20px; border-radius: 10px; }
.airport_cnt ul.feature li:last-of-type { margin-bottom: 0; }
.airport_cnt ul.feature li div { width: 76%; }
.airport_cnt ul.feature li div p { font-size: 14px; margin-bottom: 8px; }
.airport_cnt ul.feature li .img { width: 22%; }
.airport_cnt ul.feature li a { color: #53b39c; }
.airport_cnt ul.feature li a:hover { color: #61ceb4; }
/* Airport Link Buttons */
.airport_cnt .airport_link { display: flex; justify-content: space-around; margin: 0 auto 40px; width: 80%; }
.airport_cnt .airport_link a { display: inline-block; background: #53b39c; padding: 10px 20px 12px; color: #fff; text-decoration: none; border-radius: 5px; vertical-align: top; text-align: center; }
.airport_cnt .airport_link a:last-of-type { margin-left: 10px; }
.airport_cnt .airport_link a:hover { background: #61ceb4; }

/* Loyal Customers Pickup Page */
#loyal { margin-bottom: 50px; padding: 6% 2% 6%; background: #ececec; box-sizing: border-box; }
#loyal img { width: 100%; vertical-align: bottom; }
#loyal h2 { text-align: center; margin-bottom: 20px; color: #222; font-size: 155%; }
#loyal h3 { text-align: center; margin-bottom: 3%; border-bottom: none; color: #222; font-size: 150%; line-height: 1em; }
#loyal h3 span { display: inline-block; font-size: 60%; color: #666; font-weight: 400; margin-top: 1%; border-bottom: 1px solid #666; padding-left: 0; }
#loyal h4 { margin-bottom: 4%; color: #3e70b6; padding: 0; font-size: 120%; }
#loyal h4:before { display: none; }
#loyal ul { display: flex; justify-content: space-around; text-align: center; margin-bottom: 10px; list-style: none; padding: 0; }
#loyal ul li { width: 33%; font-weight: 700; border-right: 1px solid #b2b2b2; padding: 10px 0; color: #3e70b6; }
#loyal ul li:last-child { border-right: none; }
#loyal .far { margin-bottom: 10px; display: block; }
#loyal .lead { font-size: 14px; margin-bottom: 30px; text-align: justify; padding: 3%; color: #222; background: transparent; }
#loyal .text { padding: 6% 6% 8%; }
#loyal .text p { font-size: 14px; text-align: justify; margin-bottom: 0; color: #222; }
#loyal .inner { padding: 0; margin-bottom: 5%; background: #fff; display: flex; }
#loyal .box { border-right: 2px solid #efefef; }
#loyal .box:last-child { border-right: none; }
#loyal .last { margin-bottom: 0; }
.inner2 p, .box p { margin-bottom: 0; color: #222; }
.inner2 { display: flex; flex-direction: row-reverse; background: #fff; margin-bottom: 40px; }
.inner2 .text { padding: 5.5%; }
.inner2 .text p { margin: 0; }
.btn_bk { background: #000; margin: 0 auto 60px; text-align: center; width: 70%; border-radius: 10px; }
.btn_bk a { display: block; padding: 5%; color: #fff; text-decoration: none; }
.btn_bk a:hover { background: #555; border-radius: 10px; }
.sightseeing-box { background: #fff; padding: 3% 5%; border-radius: 10px; margin-bottom: 15px; }
.sightseeing-box img { max-width: 100%; }
.arrow-down { width: 35%; margin: 0 auto 15px; text-align: center; }
.arrow-down img { max-width: 100%; }
.guest_plan { display: flex; margin-bottom: 15px; justify-content: space-between; }
#loyal .plan_photo { text-align: center; border-radius: 10px; margin-bottom: 10px; }
#loyal .plan_photo img { width: 80%; border-radius: 10px; }
#loyal .plan_text { background: #fff; padding: 5%; border-radius: 10px; margin-bottom: 25px; }
#loyal .plan_text p { margin-bottom: 0; }
#loyal .plan_text h5 { margin-bottom: 8px; color: #333; font-weight: 700; }

/* Ceremonial Occasion Page */
.content_tabmenu { margin-bottom: 30px; }
#wedding h2 { font-weight: bold; text-align: center; }
#wedding img { vertical-align: baseline; margin-bottom: 15px; }
#wedding .card { margin-bottom: 50px; padding: 20px; text-align: left; background: #f5f5f5; border-radius: 8px; position: relative; }
#wedding h4 { font-size: 130%; margin-top: 0; padding: 6px 10px; background-color: rgba(163,148,105,.95); color: #fff; font-weight: 400; position: absolute; }
#wedding h4:before { display: none; }
.inner-r p { line-height: 1.8em; color: #333; }

/* Gallery Item Caption */
.gallery-item dt { margin: 0; padding: 0; }
.gallery-item dd { margin: 0; padding: 5px 0; text-align: center; font-size: 90%; }

/* Utility Classes */
.w100 { width: 100%; box-sizing: border-box; }
.meritCheck li { margin-bottom: 10px; }

/* Mobile Responsive */
@media only screen and (max-width: 640px) {
    .post .problems {
        flex-direction: column;
        padding: 15px 5px;
    }
    .post .problems li {
        width: 90%;
        margin: 5px auto;
    }
    .post .solution {
        font-size: 120%;
        margin: 20px auto 40px;
    }
    .post .solution2 {
        font-size: 100%;
        margin: 0 auto 40px;
    }
    .kk_guide {
        flex-direction: column;
    }
    .kk_guide li {
        width: 100%;
        margin-bottom: 10px;
    }
    .kk_point {
        flex-direction: column;
    }
    .kk_point li {
        width: 100%;
        margin-bottom: 10px;
    }
    .kk_service {
        flex-direction: column;
    }
    .kk_service li {
        width: 100%;
        margin-bottom: 10px;
    }
    .post .merit_detail .text {
        position: static;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }
    .content_tabmenu .wcs-tabs-nav {
        flex-direction: column;
    }
    .content_tabmenu .wcs-tabs-nav li {
        width: 100%;
    }
    .content_tabmenu .wcs-tabs-nav li a {
        border-bottom: 2px solid #e5e5e5;
    }
    .content_tabmenu .wcs-tabs-nav li.active a {
        border-bottom: 2px solid #2c3e6f;
    }
    .gallery-columns-2 .gallery-item,
    .gallery-columns-3 .gallery-item {
        width: 98% !important;
        margin: 0 auto;
    }
    .gallery-columns-2 .gallery-item img,
    .gallery-columns-3 .gallery-item img {
        max-width: 98%;
    }
    .examples .example-item {
        width: 100%;
    }
    /* Airport Pickup Mobile */
    .tabs .tab-list { display: block; }
    .tabs .tab-list li { display: block; }
    .airport_cnt ul.feature li { flex-direction: column; }
    .airport_cnt ul.feature li .img { width: 100%; margin-bottom: 15px; }
    .airport_cnt ul.feature li div { width: 100%; }
    .airport_cnt .airport_link { flex-direction: column; width: 100%; }
    .airport_cnt .airport_link a { margin: 5px 0 !important; }
    .airport_cnt .txt01 { margin: 10px 0 30px; }
    /* Loyal Customers Mobile */
    #loyal ul { flex-direction: column; }
    #loyal ul li { width: 100%; border-right: none; border-bottom: 1px solid #b2b2b2; padding: 15px 0; }
    #loyal ul li:last-child { border-bottom: none; }
    #loyal .inner { flex-direction: column; }
    #loyal .box { border-right: none; border-bottom: 2px solid #efefef; }
    .inner2 { flex-direction: column; }
    .guest_plan { flex-direction: column; }
    .btn_bk { width: 90%; }
    /* Ceremonial Occasion Mobile */
    #wedding .card { margin-bottom: 30px; padding: 10px; }
    #wedding h4 { font-size: 80%; font-weight: bold; padding: 6px; }
}

