/*
    ツアータイプトップ
--------------------*/
ul li#infoli {
    background: none;
    padding: 0.7em 5px 0.7em 20px;
    border-bottom: dashed 1px #ccc;
    width: 998px;
}
.item_wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.item_block {
    width: 28%;
    border: 1px solid #ccc;
    padding: 0 1em;
    margin-top: 1em;
}
.item_block a {
    text-decoration: none;
}
.item_block .title {
    position: relative;
    padding: 0 0 0 1.5em;
    font-size: 16px;
    font-weight: 900;
    color: #000;
}
.item_block .title:after {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    content: '';
    width: 10px;
    height: 10px;
    border: solid 4px #22b3f8;
    border-radius: 100%;
}
.item_block img {
    width: 100%;
}
.item_block .text {
    display: block;
    position: relative;
    margin: 15px auto;
    padding: 35px 1em 30px;
    background: #f1f1f1;
    box-sizing: border-box;
    color: #555;
    font-size: 13px;
}
.item_block .text span {
    display: inline-block;
    position: absolute;
    top: -6px;
    right: 10px;
    margin: 0;
    padding: 8px 0 1px;
    z-index: 2;
    width: 40px;
    text-align: center;
    color: white;
    font-size: 13px;
    background: #22b3f8;
    border-radius: 2px 0 0 0;
}
.item_block .text span:before {
    position: absolute;
    content: '';
    top: 0;
    right: -5px;
    border: none;
    border-bottom: solid 6px #c1e0ff;
    border-right: solid 5px transparent;
}
.item_block .text span:after {
    content: '';
    position: absolute;
    left: 0;
    top: 100%;
    height: 0;
    width: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 10px solid #22b3f8;
}

/*
    ツアータイプ詳細
--------------------*/
.eyecatch {
    display: flex;
    align-items: center;
    width: 1023px;
    margin: 0 0 1em 0;
    background-color: #fff;
}
.eyecatch p {
    width: 100%;
    color: #fff;
    font-size: 36px;
    font-weight: 900;
    text-align: center;
    text-shadow: 2px 2px 4px black;
}
#tourtype {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}
#tourtype p { width: 48%; }
#tourtype p.image { text-align: center; }
#tourtype p.image img { width: 100%; }
#tourtype p.text {
    position: relative;
    padding: 2.7em 0 7px;
    border: solid 1px #1e329f;
}
#tourtype p.text .title {
    position: absolute;
    display: inline-block;
    top: -1px;
    left: -1px;
    padding: 0.25em 0.7em;
    height: 25px;
    line-height: 25px;
    vertical-align: middle;
    font-size: 17px;
    background: #1e329f;
    color: #ffffff;
    font-weight: bold;
}
#tourtype p.text .moji {
    font-weight: bold;
    margin: 1em;
    display: inline-block;
    padding: 0;
}

/*
    ツアー詳細
--------------------*/
.two_in_one_oya {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: flex-start;
}
.two_in_one_oya .two_in_one_ko { width: 48%; }
.listview div {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: flex-start;
}
.listview .head { border-bottom: 1px solid #c1e0ff; }
.listview .head p {
    color: #1e329f;
    font-weight: 900;
}
.listview .inner { border-bottom: 1px dashed #ccc; }
.listview div p {
    text-align: center;
    margin-bottom: 0;
    padding-bottom: 0.8em;
}
.listview div .date, .listview div .reserve { width: 15%; }
.listview div .plan, .listview div .price { width: 30%; }
.calender table {
    border-collapse: collapse;
    border: 1px solid #ccc;
    font-size: 12px;
    margin-top: 1em;
    min-width: 100%;
}
.calender table th {
    width: 14.28%;
}
.calender table td {
    height: 10.5em;
    vertical-align: top;
}
.calender table tr:not(:last-child) {
    text-align: center;
}
.calender .pager {
    height: auto;
}
.calender .pager div {
    display: flex;
    justify-content: space-between;
}
.calender .pager div p { width: 50%; }
.calender .pager div .next {
    text-align: right;
    padding-right: 1em;
}
.calender .pager div .prev {
    text-align: left;
    padding-left: 1em;
}
.koutei div {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: flex-start;
}
.koutei .head { border: 1px solid #ccc; }
.koutei .head p {
    background: #ccc;
    color: #333;
    font-weight: 900;
}
.koutei .inner { border-bottom: 1px dashed #ccc; }
.koutei div p {
    text-align: center;
    margin-bottom: 0;
    padding-bottom: 0.8em;
}
.koutei div .days, .koutei div .meal { width: 15%; }
.koutei div .dep, .koutei div .arv { width: 30%; }
.koutei div p span { display: block; }
.exposition span {
    background: linear-gradient(transparent 75%, #c1e0ff 75%);
    font-weight: bold;
    margin-top: 1em;
    display: inline-block;
    padding: 0;
}
.table1 table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
    border: 0;
}
.table1 table tr { border-bottom: solid 2px white; }
.table1 table tr:last-child { border-bottom: none; }
.table1 table th {
    position: relative;
    text-align: left;
    width: 30%;
    background-color: #1e329f;
    color: white;
    padding: 1em 2em;
}
.table1 table th:after {
    display: block;
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    top:calc(50% - 10px);
    right:-10px;
    border-left: 10px solid #1e329f;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
}
.table1 table td {
    text-align: left;
    width: 70%;
    background-color: #f9f9f9;
    padding: 1em 2em;
}
.dtl_h2 {
    background: none;
    padding: 0;
    font-size: xx-large;
    color: #f70;
    line-height: 1.1;
}
.dtl_h4 {
    font-size: large;
    color: #333;
}
#tourtype .tour_naiyou {
    width: 423px;
    margin-left: 23px;
}
#tourtype .tour_naiyou table {
    border-collapse: collapse;
    width: 100%;
}
#tourtype .tour_naiyou table th {
    white-space: nowrap;
}
#tourtype .tour_naiyou table td {
    min-width: 60%;
}
#tourtype .tour_naiyou table th, #tourtype .tour_naiyou table td {
    padding: 1em;
    text-align: left;
}
#tourtype .tour_naiyou table tr:first-child th, #tourtype .tour_naiyou table tr:first-child td {
    background: #f70;
    color: #fff;
}
#tourtype .tour_naiyou table tr:not(:first-child) {
    border-bottom: dashed 1px #bbb;
}
.dtl_tour_point {
    display: block;
    position: relative;
    margin: 15px auto 0;
    padding: 35px 1em 1em;
    background: #f1f1f1;
    box-sizing: border-box;
    color: #555;
    font-size: 16px;
}
.dtl_tour_point span {
    display: inline-block;
    position: absolute;
    top: -6px;
    right: 3em;
    margin: 0;
    padding: 8px 0 1px;
    z-index: 2;
    width: 40px;
    text-align: center;
    color: white;
    font-size: 13px;
    background: #22b3f8;
    border-radius: 2px 0 0 0;
}
.dtl_tour_point span:before {
    position: absolute;
    content: '';
    top: 0;
    right: -5px;
    border: none;
    border-bottom: solid 6px #c1e0ff;
    border-right: solid 5px transparent;
}
.dtl_tour_point span:after {
    content: '';
    position: absolute;
    left: 0;
    top: 100%;
    height: 0;
    width: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 10px solid #22b3f8;
}
.tour_koutei table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
    border: 0;
}
.tour_koutei table th {
    background: #777;
    color: #fff;
}
.tour_koutei table .hi {
    width: 5em;
    text-align: center;
}
.tour_koutei table .yotei {
    flex-grow: 2;
}
.tour_koutei table .shousai {
    padding: 1em;
}
.tour_koutei table .td_wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
}
.tour_koutei table .td_wrap p {
    padding: 1em;
    margin: 0;
}
.tour_koutei table .td_wrap .label {
    width: 3em;
}
.tour_koutei table .td_wrap .text {
    flex-grow: 2;
}
.tour_koutei table .td_wrap .deparv {
    background: #ddd;
}
.tour_koutei table .td_wrap .meal {
    background: #ffffe0;
}
.table1 table table {
    width: auto;
    border-collapse: collapse;
    margin: 0;
    border: 0;
}
.table1 table table tr { border-bottom: none; }
.table1 table table tr:last-child { border-bottom: none; }
.table1 table table th {
    position: relative;
    text-align: left !important;
    width: auto;
    background-color: #f9f9f9;
    color: #555;
    text-align: center;
    padding: 0.25em 0;
}
.table1 table table th:after {
    content: none;
}
.table1 table table td {
    text-align: left !important;
    width: auto;
    text-align: center;
    background-color: #f9f9f9;
    padding: 0 0 0 2em;
}
.table2 table {
    width: 100%;
    border-collapse: collapse;
    margin: 2em auto 1em;
    border: 0;
}
.table2 table tr { border: solid 1px #ddd; }
.table2 table th {
    position: relative;
    text-align: left;
    width: 15%;
    background: #f0f0f0;
    padding: 1em 2em;
}
.table2 table td {
    text-align: left;
    width: 85%;
    background-color: #fff;
    padding: 1em 2em;
}
.tour_res2_checkbox {
    font-size: 16px;
    text-align: center;
}


/*
    汎用
--------------------*/
.cmn_wrap { width: 1023px !important; }
.block_space { padding-bottom: 1em !important; margin-bottom: 2em; }
h3 {
    background: none;
    margin: 2em 0 0 0;
    position: relative;
    padding-bottom: 0.5em;
    padding-left: 0;
    border-bottom: 4px solid #c1e0ff;
    color: #1e329f;
}
h3:after {
    position: absolute;
    content: " ";
    border-bottom: solid 4px #1e329f;
    bottom: -4px;
    width: 1em;
    display: block;
}


/*
    ツアー人数選択UI
--------------------*/
.tourNumTable {
    width: 98%;
}.tourNumTable th {
    font-weight: normal;
    padding-right: 0.5em;
}
.tourNumTable td div {
    display: flex;
}
.tourNumTable td button {
    display: block;
    padding: 0.25em 0.75em;
    border: 1px solid #ccc;
    background: #ddd;
    color: #555;
    font-weight: bold;
}
.tourNumTable td input {
    display: block;
    padding: 0.25em 1px 0.25em 0;/* ちょっと左に寄ってる？ので微調整で1px */
    font-size: 18px;
    width: 3em !important;
    text-align: center;
    border: 0;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    border-radius: 0;
}


/*
    新ツアータイプ詳細
--------------------*/
.item_block_new {
    width: 100%;
    border: 1px solid #ccc;
    padding: 1em;
    margin-top: 1em;
}
.item_block_new img {
    width: 100%;
}
.item_block_new .title {
    position: relative;
    padding: 1em 0 1em 2em;
    margin: 0 0 1em;
    font-size: 16px;
    font-weight: 900;
    color: #000;
    background: #c1e0ff;
}
.item_block_new .title:after {
    position: absolute;
    top: 50%;
    left: 0.5em;
    transform: translateY(-50%);
    content: '';
    width: 10px;
    height: 10px;
    border: solid 4px #22b3f8;
    border-radius: 100%;
}
.item_block_new .flexArea {
    display: flex;
}
.item_block_new .leftArea {
    width: 40%;
    margin-right: 1em;
}
.item_block_new .leftArea .text {
    display: block;
    position: relative;
    margin: 15px auto 0;
    padding: 35px 1em 30px;
    background: #f1f1f1;
    box-sizing: border-box;
    color: #555;
    font-size: 13px;
}
.item_block_new .leftArea .text span {
    display: inline-block;
    position: absolute;
    top: -6px;
    right: 10px;
    margin: 0;
    padding: 8px 0 1px;
    z-index: 2;
    width: 40px;
    text-align: center;
    color: white;
    font-size: 13px;
    background: #22b3f8;
    border-radius: 2px 0 0 0;
}
.item_block_new .leftArea .text span:before {
    position: absolute;
    content: '';
    top: 0;
    right: -5px;
    border: none;
    border-bottom: solid 6px #c1e0ff;
    border-right: solid 5px transparent;
}
.item_block_new .leftArea .text span:after {
    content: '';
    position: absolute;
    left: 0;
    top: 100%;
    height: 0;
    width: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 10px solid #22b3f8;
}
.item_block_new .rightArea {
    flex-grow: 2;
}
.item_block_new .rightArea .naiyou table {
    border-collapse: collapse;
    width: 100%;
}
.item_block_new .rightArea .naiyou table th,
.item_block_new .rightArea .naiyou table td {
    border-bottom: 1px solid #ccc;
    padding: 0.5em 1em;
    vertical-align: top;
}
.item_block_new .rightArea .naiyou table th {
    white-space: nowrap;
    background: #f70;
    color: #fefefe;
}
.item_block_new .rightArea .naiyou table th.priceLabel {
    background: none;
    border-bottom: 0;
    padding: 0.5em 0 0 0;
}
.item_block_new .rightArea .naiyou table th.priceLabel span {
    padding: 0.25em 0.5em;
    border: 1px solid #ccc;
    color: #777;
}
.item_block_new .rightArea .naiyou table td {
    width: 50%;
}
.item_block_new .rightArea .naiyou table td.price {
    font-size: 26px;
    font-weight: bold;
    color: red;
    padding: 1em 0.5em 0.75em;
}
.item_block_new .rightArea .naiyou table td.rightBorder {
    border-right: 1px solid #ccc;
}
.item_block_new .rightArea p {
    width: 100%;
    text-align: center;
    margin: 2em 0;
}
.item_block_new .rightArea p a {
    display: inline-block;
    background:linear-gradient(135deg, #fad961 0%,#f76b1c 100%);
    color: #fefefe;
    font-weight: bold;
    font-size: 22px;
    text-decoration: none;
    padding: 1em 0.75em 1em 1.5em;
    border-radius: 10px;
    border: 1px solid yellow;
    animation: btnAnimeDoki 2.5s infinite;
}
@keyframes btnAnimeDoki {
    0% { transform: scale(1) }
    10% { transform: scale(1.01) }
    20% { transform: scale(1) }
    30% { transform: scale(1.01) }
    40% { transform: scale(1) }
    100% { -webkit-transform: scale(1) }
}


/*
    新ツアー詳細
--------------------*/
/* スムーススクロール */
/*html { scroll-behavior: smooth; }*//*カレンダーの前次月切り替えもあるので一旦切る*/
.item_block_new.detailPage {
    width: auto;
    border: 0;
    padding: 0;
    margin-top: 0;
}
.listNavi {
    display: flex;
    width: 90%;
    margin: 0 auto;
    padding: 0;
    justify-content: space-around;
}
.listNavi a {
    text-decoration: none;
}
.listNavi li {
    list-style: none;
    border: 2px solid #1e329f;
    border-radius: 10px;
    padding: 0.25em 1em;
    color: #1e329f;
}
.listNavi a:hover li {
    background: #1e329f;
    color: #fff;
}
.block_space .calender .calenderHead {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 1.5em;
}
.block_space .calender .calenderHead p {
    margin: 0;
}
.block_space .calender .calenderHead .prev span,
.block_space .calender .calenderHead .prev a,
.block_space .calender .calenderHead .next a {
    display: block;
    background: #ececec;
    color: #333;
    font-size: 16px;
    padding: 0.75em 1.5em;
    white-space: nowrap;
    border-radius: 5px;
}
.block_space .calender .calenderHead .center {
    text-align: center;
}
.block_space .calender .calenderHead h5 {
    margin: 0 0 0.25em;
    font-size: 20px;
    color: #333;
}
/* ツアーのポイント内に画像を表示 */
.block_space .dtl_tour_point .flexBetween {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5em;
}
.block_space .dtl_tour_point .flexBetween > div:nth-child(1) {
    line-height: 1.4;
}
.block_space .dtl_tour_point .flexBetween > div:nth-child(2) {
    margin-left: 1em;
}
.block_space .dtl_tour_point .flexBetween > div > img {
    width: 400px;
    vertical-align: bottom;
}