/*=========================================================

    booking data
    booking banner max-width: 600

=========================================================*/
.booking-list {
    --repeat-rowgap: 1em;
    --repeat-columngap: 1em;
}

.booking-list .entry {
    /* width: 100%; */
    max-width: 1000px;
    padding: 10px;
    margin: 0 auto;
    border: 1px solid #ccc;
    background-color: #fff;
    display: flex;
    justify-content: space-between;
    position: relative;
    gap: 0;
    container: booking-list / inline-size;
    position: relative;
    overflow: hidden;
    border-radius: 4px;

}

/* arrow for list banner */
:where(.front-section, .post-type-archive-booking) .booking-list .entry::before {
    content: '';
    position: absolute;
    top: 50%;
    right: 1em;
    width: .7em;
    height: .7em;
    border-top: 1px solid;
    border-right: 1px solid;
    transform: translateY(-50%) rotate(45deg);
    z-index: 3;
}

@media (max-width:600px) {
    .booking-list .entry {
        padding: 0;
    }

    .booking-list .entry::before {
        content: unset;
    }
}

.booking-list .entry .thumb-wrp {
    width: 33%;
    position: relative;
}

/* @container booking-list (max-width:600px) { */
@media (max-width:600px) {
    .booking-list .entry .thumb-wrp {
        width: 25%;
        /* padding: 7px; */
    }
}

.booking-list .entry .thumb-wrp .thumb {
    width: 100%;
    height: 100%;
}

/* @container booking-list (max-width:600px) { */
@media (max-width:600px) {
    .booking-list .entry .thumb-wrp .thumb {
        /* height: 0;
        padding-bottom: 100%; */
    }
}

.booking-list .entry .entry-meta-wrp {
    width: 67%;
    max-width: 600px;
    margin: 0 auto;
    padding: 1em;
}

@media (max-width:600px) {
    .booking-list .entry .entry-meta-wrp {
        width: 75%;
        padding: 7px 10px !important;
    }
}

/* travel agancy logo ==============================*/
.travel_agancy-logo {
    display: block;
    width: 4.25em;
    height: 4.25em;
    border: 1px solid #ccc;
    background-color: #fff;
    border-radius: 100%;
    overflow: hidden;
    padding: .75em;
    vertical-align: middle;
    margin-left: -.5em;
    margin-right: .5em;
}

@media (max-width:600px) {

    .front-section .travel_agancy-logo,
    .archive .travel_agancy-logo {
        width: 2.8em;
        height: 2.8em;
        padding: .5em;
    }
}

.travel_agancy-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;

}

/* bookinginfo wrp ==============================*/
.bookinginfo-wrp {
    /* container: bookinginfo-wrp / inline-size; */
}

.bookinginfo-title-wrp {
    display: flex;
    margin-bottom: .5em;
}

.bookinginfo-wrp .title-wrp {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25em .75em;
}

.bookinginfo-wrp .title-wrp .entry-title {
    display: inline-block;
    font-size: min(1.25em, 4vw) !important;
    font-weight: bold;
    min-height: 0;
    margin: 0;
}


.bookinginfo-wrp .title-wrp .sholder-tag {
    display: inline-block;
    padding: .35em .75em;
    font-size: .7em;
    line-height: 1.4;
    color: var(--color_red);
    border: solid 1px;
    border-radius: 4px;
    letter-spacing: 0;
}

.bookinginfo-wrp .data-wrp {
    padding: 0;
    background-color: transparent;
}

.bookinginfo-wrp .data-wrp .data-list {
    gap: .5em;
}

@media (max-width:767.9px) {
    :where(.booking-list) .bookinginfo-wrp .data-wrp .data-list {
        gap: 0 .25em;
    }
}

.bookinginfo-wrp .data-wrp .data-list2 {
    margin-top: .5em;
    padding-top: .5em;
    border-top: solid 1px #999;
}

@media (max-width:767.9px) {
    .bookinginfo-wrp .data-wrp .data-list dd {
        font-size: min(12px, 3vw);
        letter-spacing: 0;
    }
}

.bookinginfo-wrp .data-wrp .data-list dd span {
    display: inline-block;
}

@media (max-width:767.9px) {

    :where(.booking-list) .bookinginfo-wrp .data-wrp .data-list.data-list2 {
        display: none;
    }
}

.bookinginfo-wrp .data-wrp .data-list .icon {
    width: 1em;
    height: 1em;
    position: relative;
    line-height: 1;
}

/* price */
.bookinginfo-wrp .data-wrp .data-list .price-wrp {
    font-size: min(1.15em, 3.3vw) !important;
    font-weight: bold;
    line-height: 1.4;
}

.bookinginfo-wrp .data-wrp .data-list .price-wrp :where(.price_floor, .price_cap) {
    display: inline-block;
    padding-right: .2em;
    font-size: 1.7em;
    font-family: var(--en);
}

/* period */
.bookinginfo-wrp .data-wrp .data-list .period-wrp {
    font-size: min(1.05em, 3vw);
}

/* description */
.bookinginfo-wrp .data-wrp .data-list .description-wrp {
    font-size: min(.8em, 3vw);
}

/* airport */
.bookinginfo-wrp .data-wrp .data-list .airport-wrp {
    font-size: min(1em, 3.8vw);
}

.bookinginfo-wrp .data-wrp .data-list .airport-wrp .flight-hd {
    margin-right: 1em;
}

.bookinginfo-wrp .data-wrp .data-list .airport-wrp :where(.airport_departure, .airport_arrival) {
    display: inline-block;
    min-width: 7em;
    padding: .35em;
    text-align: center;
    font-size: .9em;
    border: solid 1px;
    border-radius: 5px;
    position: relative;
}

.bookinginfo-wrp .data-wrp .data-list .airport-wrp .airport_departure {
    margin-right: 1.75em;
}

.bookinginfo-wrp .data-wrp .data-list .airport-wrp .airport_departure::after {
    content: '';
    display: block;
    width: 2em;
    border-top: solid 1px;
    position: absolute;
    left: 100%;
    top: 50%;
}

.bookinginfo-wrp .data-wrp .data-list .airport-wrp .airport_arrival {
    margin-left: -.25em;
}

/*=========================================================

    booking front page and header title

=========================================================*/
.promotion-booking {
    background-color: #addee9;
}

.booking-title-wrp .section-title,
.promotion-booking .section-title {
    width: min(170px, 30%);
    margin: 0 auto .5em;
    line-height: 1;
}

.booking-title-wrp .section-lead,
.promotion-booking .section-lead {
    margin-top: .5em;
}

.booking-title-wrp .section-title img,
.promotion-booking .section-title img {
    width: 100% !important;
    height: auto;
}

.booking-title-wrp .section-title_jp,
.promotion-booking .section-title_jp {
    font-size: min(1.45em, 5vw);
    font-weight: 600;
    line-height: 1.6;
}

.promotion-booking .decoration-illust {
    width: min(280px, 30%) !important;
    left: max(calc(50% - 600px), 1%);
    top: 0;
    transform: translateY(-33%);

}


/*=========================================================

    Booking article //single page layout

=========================================================*/

.single .booking .wrp {
    background-color: #fafafa;
}

.single .booking-title-wrp {
    text-align: center;
    padding: 3em 0 1em;
}

.archive .booking main {
    background-color: #addee9;
}

.archive .booking-title-wrp {
    text-align: center;
    padding: 3em 0;

}

.single .booking-article {
    width: min(1280px, 92vw);
    margin: 0 auto;
    padding: 2em 0 5em;
}

@media (max-width:767.9px) {
    .single .booking-article {
        padding: 2em 0 4em;
    }
}


.single .booking-article .gallery-wrp-inner {
    width: 100%;
}

.single .booking-article .gallery-wrp {
    width: min(680px, 55%);
}

@media (max-width:767.9px) {
    .single .booking-article .gallery-wrp {
        width: 100%;
        order: 2;
        margin-top: 1em;
    }
}

.single .booking-article .bookinginfo-wrp {
    width: min(520px, 40%);
}

@media (max-width:767.9px) {
    .single .booking-article .bookinginfo-wrp {
        display: contents;
    }

    .single .booking-article .bookinginfo-wrp .bookinginfo-wrp-inner {
        display: contents;
    }
}

@media (max-width:767.9px) {
    .single .booking-article .travel_agancy-logo {
        width: 4.5em;
        height: 4.5em;
        padding: .75em;
    }
}

.single .booking-article .bookinginfo-wrp .title-wrp {
    order: 1;
}

.single .booking-article .bookinginfo-wrp .title-wrp .entry-title {
    font-size: min(1.5em, 5vw) !important;
}

@media (max-width:767.9px) {
    .single .booking-article .bookinginfo-wrp .data-wrp {
        margin-top: 2em;
        padding: 0;
        background-color: transparent;
        width: 100%;
    }
}

@media (max-width:767.9px) {
    .single .booking-article .bookinginfo-wrp .data-wrp {
        order: 3;
    }
}

.single .booking-article .data-wrp .data-list .price-wrp {
    font-size: min(1.15em, 5vw) !important;
}

.single .booking-article .bookinginfo-wrp .data-wrp .data-list2 {
    margin-top: 1.5em;
    padding-top: 1.5em;
}

.single .booking-article .bookinginfo-wrp .btn-wrp {
    width: 100%;
    margin-top: min(4em, 10vw);
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5em;
}

@media (max-width:767.9px) {
    .single .booking-article .bookinginfo-wrp .btn-wrp {
        order: 4;
    }
}

.single .booking-article .bookinginfo-wrp .btn-wrp a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    width: calc(50% - .75em);
    padding: 1em .5em;
    flex-grow: 1;
    font-size: min(.85em, 3.5vw);
    color: #fff;
    border-radius: 4px;
    background-color: #1a1a1a;
    border: solid 1px #1a1a1a;
    text-align: center;
    transition: all .3s ease;
}

@media (max-width:767.9px) {
    .single .booking-article .bookinginfo-wrp .btn-wrp a {
        width: 100%;
    }
}

.single .booking-article .bookinginfo-wrp .btn-wrp a:hover {
    color: #1a1a1a;
    background-color: #fff;
}

.single .booking-article .bookinginfo-wrp .btn-wrp span {
    padding: 0 .5em;
}

@media (max-width:767.9px) {
    .single .booking-article .travel_agancy-note {
        order: 99;
    }
}


/*=========================================================

    Booking single footer banner

=========================================================*/

:not(.booking) .booking-list-wrp {
    padding: min(60px, 10vw) min(30px, 3vw);
    background-color: #addee9;
}

:not(.booking) .booking-list-wrp .booking-title-wrp {
    padding: 0 0 3em;
    font-size: .8em;
}

:not(.booking) .booking-list-wrp .booking-list {
    margin: 0 auto;
    --repeat-rowgap: .75em;
    --repeat-columngap: .75em;
    --repeat-length: 5;

}

@media (max-width:980px) {
    :not(.booking) .booking-list-wrp .booking-list {
        --repeat-length: 3;
        padding: 0;
    }

    @media (max-width:600px) {
        :not(.booking) .booking-list-wrp .booking-list {
            --repeat-length: 1;
            --repeat-rowgap: 1em;
            --repeat-columngap: 1em;
        }
    }
}

:not(.booking) .booking-list-wrp .booking-list .bookinginfo-wrp .data-wrp .data-list.data-list2 {
    display: none;
}

:not(.booking) .booking-list-wrp .booking-list .thumb-wrp {
    width: 100%;
}

:not(.booking) .booking-list-wrp .booking-list .thumb {
    padding-bottom: 50%;
}

@media (max-width:600px) {
    :not(.booking) .booking-list-wrp .booking-list .thumb-wrp {
        width: 25%;
    }

    :not(.booking) .booking-list-wrp .booking-list .thumb {
        padding-bottom: 100%;
    }
}

:not(.booking) .booking-list-wrp .booking-list .entry {
    padding: 0;
    display: block;
    border: solid 1px #ccc;
}


@media (max-width:980px) {
    :not(.booking) .booking-list-wrp .booking-list .entry {
        margin: 0;
    }

    @media (max-width:600px) {
        :not(.booking) .booking-list-wrp .booking-list .entry {
            width: 100%;
            display: flex;
        }
    }
}

:not(.booking) .booking-list-wrp .booking-list .travel_agancy-logo {
    width: 2.8em;
    height: 2.8em;
    padding: .5em;
}

:not(.booking) .booking-list-wrp .booking-list .entry .entry-meta-wrp {
    width: 100%;
    padding: .5em 1em;
}

@media (max-width:600px) {
    :not(.booking) .booking-list-wrp .booking-list .entry .entry-meta-wrp {
        width: 75%;
        padding: 7px 10px;
    }
}

:not(.booking) .booking-list .bookinginfo-wrp .title-wrp .entry-title {
    font-size: .9em !important;
}

@media (max-width:600px) {

    :not(.booking) .booking-list .bookinginfo-wrp .title-wrp .entry-title {
        font-size: min(1.2em, 4vw) !important;
    }
}

:not(.booking) .booking-list .bookinginfo-wrp .data-wrp .data-list .price-wrp {
    font-size: .7em !important;
    letter-spacing: 0;
}

@media (max-width:600px) {
    :not(.booking) .booking-list .bookinginfo-wrp .data-wrp .data-list .price-wrp {
        font-size: min(1.1em, 3.3vw) !important;
    }
}

/* period */
:not(.booking) .booking-list-wrp .bookinginfo-wrp .data-wrp .data-list .period-wrp {
    font-size: .75em;
}

@media (max-width:600px) {
    :not(.booking) .booking-list-wrp .bookinginfo-wrp .data-wrp .data-list .period-wrp {
        font-size: 3vw;
    }

}