﻿@charset "UTF-8";

* {
    margin: 0;
    padding: 0;
    list-style: none;
    box-sizing: border-box;
}

    *:focus {
        outline: none;
    }

body {
    background: #fef5df;
}

    body > * {
        font-family: 'PingFang TC','Heiti TC','LantingHei TC','LiHei Pro','微軟正黑體','Noto Sans TC','Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;
    }

img {
    max-width: 100%;
    vertical-align: top;
}

input, select {
    -webkit-appearance: none;
    outline: none;
    border: none;
    width: 100%;
    background: transparent;
    padding: 5px;
    font-size: 22px;
    border: none;
    position: relative;
    overflow: hidden;
}

.chkbox input[type="checkbox"] {
    -webkit-appearance: checkbox;
    border: 1px solid #000;
    width: 1em;
    height: 1em;
}

select::-ms-expand {
    display: none;
}

.select {
    border: 1px solid #000;
    background: #fff;
    position: relative;
    -webkit-appearance: listbox;
}

table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #9c9c9c;
    margin-bottom: 1em;
}

    table th, table td {
        border: 1px solid #9c9c9c;
        padding: 0 5px;
    }

    table caption {
        padding: 2px;
        color: #999;
    }

    table th {
        color: #343434;
        padding: 3px;
        font-weight: bold;
        text-align: center;
        line-height: 20px;
        background: rgba(2,104,183,.1);
    }

.mt-1em {
    margin-top: 1em;
}

.footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    background-color: #6ebb29;
}

    .footer .companyinfo {
        padding: 1em 5px;
        font-size: 16px;
        color: #fff;
        width: 100%;
        max-width: 768px;
        margin: 0 auto;
    }

@media screen and (max-width: 768px) {
    .companyinfo {
        height: 5em;
        overflow-y: scroll;
    }
}

.copyright {
    border-top: 1px solid #fff;
    padding: 1em 5px;
    font-size: 16px;
    color: #fff;
    width: 100%;
    max-width: 768px;
    margin: 0 auto;
}

.text-align-center {
    text-align: center;
}

.container {
    width: 100%;
    max-width: 768px;
    padding: 0 15px;
    margin: auto;
}

    .container.fluid {
        padding: 0;
    }

    .container.myticket {
        margin: auto auto 140px auto;
    }

    .container h2 {
        color: #fff;
        font-size: 22px;
        padding-bottom: 2px;
        margin-bottom: 10px;
    }

.title__box {
    background-color: #6ebb29;
    padding: 5px 15px;
    margin: 0 -15px;
}

    .title__box h1 {
        color: #fff;
        margin: .5em 0;
        font-size: 24px;
    }

        .title__box h1 img {
            vertical-align: middle;
        }

        .title__box h1 a {
            color: #fff;
            text-decoration: none;
            line-height: 20px;
        }

.kv {
    width: 100%;
    height: 0;
    padding-bottom: 51.8518518519%;
    margin: 0 auto;
}

.logon__box {
    padding: 0;
    margin: 0 -15px;
}

    .logon__box.buttons {
        padding: 1.5em 1.5em 0 1.5em;
    }

    .logon__box.personal {
        font-size: 0;
        text-align: center;
    }

        .logon__box.personal input {
            display: inline-block;
            width: 45%;
            padding: 1.5em 10px;
        }

    .logon__box.notice {
        background: #fff;
        margin: 1em auto 0 auto;
        padding: 15px;
        width: 95%;
        height: 60vh;
        overflow-y: scroll;
        border-radius: 20px;
        font-size: 16px;
    }

        .logon__box.notice .level0 {
            padding-bottom: 1em;
        }

        .logon__box.notice .level1 {
            text-indent: -2.2em;
            margin-left: 2em;
            padding-bottom: 1em;
        }

        .logon__box.notice .level2 {
            text-indent: -2em;
            margin-left: 3em;
            padding-bottom: 1em;
        }

        .logon__box.notice .level3 {
            text-indent: -1.8em;
            margin-left: 4em;
            padding-bottom: 1em;
        }

.logon__item {
    width: 100%;
    background: #fff;
    padding: 1em;
    border-bottom: 1px solid #999;
}

.logon__item-title {
    font-size: 18px;
    margin-bottom: .5em;
}

.logon__item-input {
    font-size: 18px;
}

    .logon__item-input span {
        font-size: 22px;
        font-weight: bold;
    }

    .logon__item-input input {
        padding: .3em;
        border: 1px solid #333;
    }

.logon__item.notice {
    background-color: transparent;
    border-bottom: none;
}

    .logon__item.notice .chkbox {
        display: block;
        margin-bottom: 1em;
    }

        .logon__item.notice .chkbox label {
            font-size: 20px;
            font-weight: bold;
            padding-left: 10px;
        }

    .logon__item.notice .btn {
        width: 95%;
        border-radius: 0;
    }

    .logon__item.notice input.btn:disabled {
        background-color: #ccc;
        cursor: not-allowed;
    }

.buyticket__progressbar {
    background-color: #fff;
    display: flex;
    margin: 0 -15px;
}

.buyticket__progressbar-item {
    flex: 0 0 25%;
    padding: .5em 0;
    border-bottom: 4px solid #fff;
    text-align: center;
    font-size: 20px;
    font-weight: bold;
    color: #ccc;
}

    .buyticket__progressbar-item.active {
        border-bottom-color: #0d469d;
        color: #0d469d;
    }

        .buyticket__progressbar-item.active:nth-child(1)::before {
            background-image: url("../imgs/ticket-blue.png");
        }

        .buyticket__progressbar-item.active:nth-child(2)::before {
            background-image: url("../imgs/cart-blue.png");
        }

        .buyticket__progressbar-item.active:nth-child(3)::before {
            background-image: url("../imgs/pay-blue.png");
        }

        .buyticket__progressbar-item.active:nth-child(4)::before {
            background-image: url("../imgs/confirm-blue.png");
        }

    .buyticket__progressbar-item::before {
        content: '';
        display: inline-block;
        width: 20px;
        height: 20px;
        padding-right: 5px;
        background-repeat: no-repeat;
        background-size: contain;
        transform: translateY(2px);
    }

    .buyticket__progressbar-item:nth-child(1)::before {
        background-image: url("../imgs/ticket-gray.png");
    }

    .buyticket__progressbar-item:nth-child(2)::before {
        background-image: url("../imgs/cart-gray.png");
    }

    .buyticket__progressbar-item:nth-child(3)::before {
        background-image: url("../imgs/pay-gray.png");
    }

    .buyticket__progressbar-item:nth-child(4)::before {
        background-image: url("../imgs/confirm-gray.png");
    }

.ticket__item {
    background: #fef5df;
    margin: 0 -15px;
    padding: 1em .5em;
    border-bottom: 4px solid #fff;
    display: flex;
    justify-content: space-between;
    align-content: center;
}

.ticket__item-title {
    flex: 0 0 5em;
    color: #000;
    font-size: 24px;
    font-weight: bold;
}

.ticket__item.cart {
    padding: 0 0 0 1em;
    background-color: #fff;
    color: #6ebb29;
    font-size: 24px;
    font-weight: bold;
}

    .ticket__item.cart img {
        display: inline-block;
        height: 24px;
        vertical-align: baseline;
        padding-right: 5px;
    }

.buyticket__table {
    width: 100%;
    margin: 0;
    font-size: 22px;
    border: none;
}

    .buyticket__table th {
        padding: .5em 0;
        background-color: #6ebb29;
        color: #fff;
        font-weight: bold;
        border: none;
    }

        .buyticket__table th + th {
            border-left: 2px solid #fff;
        }

    .buyticket__table td {
        padding: .5em;
        border: none;
        background-color: #fff;
    }

.cart__table {
    margin: 1em 0;
    border: 0;
    font-size: 16px;
}

    .cart__table th {
        padding: .5em 0;
        background-color: #6ebb29;
        color: #fff;
        font-weight: bold;
        border: none;
    }

        .cart__table th + th {
            border-left: 2px solid #fff;
        }

    .cart__table td {
        border: none;
        padding: .5em;
    }

    .cart__table .btn__cart input {
        width: 1.5em;
        padding: 0;
    }

.paytype__item {
    margin: 0 -15px;
    background-color: #fef5df;
    border-bottom: 4px solid #fff;
}

    .paytype__item table {
        border: none;
        margin-bottom: 0;
    }

        .paytype__item table th, .paytype__item table td {
            border: none;
            font-size: 24px;
            padding: .5em;
        }

    .paytype__item input[type="radio"] {
        -webkit-appearance: radio;
        width: auto;
        margin-right: 5px;
        width: 1em;
        height: 1em;
    }

.ordersuccess .container {
    position: relative;
}

.ordersuccess__successbox {
    margin: 0 -15px;
    height: 0;
    padding-bottom: 50%;
    background-color: #6ebb29;
    position: relative;
}

    .ordersuccess__successbox img {
        width: 35%;
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        margin: auto;
    }

.ordersuccess__detailbox {
    margin: 0 -15px 40px -15px;
    background-color: #fff;
    padding-bottom: 30px;
}

    .ordersuccess__detailbox h2 {
        padding: .5em 0 .5em 1em;
        border-bottom: 1px solid #333;
        color: #6ebb29;
        font-size: 24px;
        font-weight: bold;
        margin: 0;
    }

.ordersuccess__detailbox-item {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #333;
    padding: .5em 1em;
    font-size: 20px;
}

.header {
    position: relative;
    z-index: 10;
    background-color: #fef5df;
    border-top: 1em solid #6ebb29;
}

    .header .logo_wrap {
        background-color: #fef5df;
        position: relative;
        z-index: 10;
        padding: 5px 0;
    }

        .header .logo_wrap .logo {
            display: inline-block;
        }

            .header .logo_wrap .logo img {
                height: 64px;
                width: auto;
            }

        .header .logo_wrap .hb {
            position: absolute;
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-content: center;
            width: 50px;
            height: 50px;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }

            .header .logo_wrap .hb span {
                width: 80%;
                height: 4px;
                background-color: #6ebb29;
            }

                .header .logo_wrap .hb span:nth-last-child(2) {
                    margin: 6px auto;
                }

.main {
    margin: 8px 0px 24px 0px;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    background-color: transparent !important;
}

.menu {
    position: relative;
    z-index: 100;
    background: #fef5df;
    left: 0;
    right: 0;
    margin: auto;
    height: 0;
    overflow: hidden;
    transition: .5s;
}

    .menu .menu-list {
        width: 100%;
        max-width: 960px;
        margin: auto;
        padding: 0;
    }

        .menu .menu-list li {
            border-bottom: 2px solid #fff;
        }

            .menu .menu-list li a {
                display: block;
                font-size: 1.5em;
                font-weight: bold;
                color: #333;
                text-decoration: none;
                padding: 15px 0 15px 20px;
            }

                .menu .menu-list li a::before {
                    content: '•';
                    padding-right: .5em;
                }

                .menu .menu-list li a.myticket::before {
                    content: '';
                    padding-right: 0;
                }

                .menu .menu-list li a.myticket img {
                    width: 30px;
                }

#menu-check {
    display: none;
}

    #menu-check:checked + * .menu {
        height: 100%;
        transition: .5s;
    }

.btn {
    -webkit-appearance: none;
    display: block;
    padding: .5em 3em;
    border: none;
    border-radius: .5em;
    outline: none;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    background-color: #0468b8;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}

.btn-info {
    display: inline-block;
    border-radius: initial;
    background-color: transparent;
    padding: 0;
    vertical-align: middle;
}

    .btn-info svg {
        background-color: #6ebb29;
        color: #fff;
        border-radius: 50%;
        fill: #fff;
        stroke: #fff;
    }

.btn.reload {
    padding: 5px 1em;
    font-size: 18px;
}

.btn-primary {
    color: #fff;
    background-color: #337ab7;
    border-color: #2e6da4;
}

    .btn-primary:hover {
        color: #fff;
        background-color: #286090;
        border-color: #204d74;
    }

.btn-warning {
    color: #fff;
    background-color: #f0ad4e;
    border-color: #eea236;
}

    .btn-warning:hover {
        color: #fff;
        background-color: #ec971f;
        border-color: #d58512;
    }

.btn-ticket {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 15px;
    background: #6ebb29;
    color: #fff;
    font-size: 24px;
    width: 100%;
    max-width: 768px;
    margin: auto;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
}

.btn-buyticket {
    width: auto;
    border-radius: 10px;
    padding: 5px 1em;
    background: #000;
    font-size: 1em;
    font-weight: bold;
}

.btn-logon {
    display: block;
    margin-bottom: 1.5em;
}

.btn-booking {
    line-height: 20px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 5px;
    width: 100%;
    max-width: 768px;
    margin: 0 auto;
}

    .btn-booking img {
        width: 20px;
    }

.btn__myticket-bar {
    display: flex;
    background: #a0a0a0;
    margin: 1em 0;
    padding: 5px;
    border-radius: 15px;
}

    .btn__myticket-bar .btn__myticket-btn {
        font-weight: bold;
        border-radius: 10px;
        color: #fff;
    }

        .btn__myticket-bar .btn__myticket-btn.active {
            background: #fff;
            color: #000;
        }

.tabbar {
    display: flex;
    background: #6ebb29;
}

    .tabbar li {
        flex: 0 0 33.333333%;
        text-align: center;
        cursor: pointer;
        height: 0;
        padding-bottom: 21.6666666667%;
        position: relative;
    }

        .tabbar li + li {
            border-left: 1px solid #fff;
        }

        .tabbar li img {
            width: 50%;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
        }

.tabitem {
    padding: 15px;
    margin-bottom: 7em;
}

    .tabitem h2 {
        color: #000;
        font-size: 22px;
        padding-bottom: 2px;
        margin-bottom: 10px;
        border-bottom: 5px solid #fef5de;
        position: relative;
    }

        .tabitem h2::after {
            content: '';
            position: absolute;
            left: 0;
            bottom: -5px;
            margin: auto;
            width: 4em;
            height: 5px;
            background: #6ebb29;
        }

.myticket__item {
    display: flex;
    flex-wrap: wrap;
    background: transparent;
    margin-bottom: 1em;
}

.myticket__item-num {
    padding: 10px 15px 0 15px;
    flex: 0 0 100%;
    background: #fff;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
}

.myticket__item-date {
    padding: 10px 15px;
    flex: 0 0 100%;
    background: #fff;
}

.myticket__item-detail {
    padding: 10px 15px;
    flex: 0 0 100%;
    border-top: 1px solid #666;
    background: #fff;
    display: flex;
}

    .myticket__item-detail .detail__title {
        flex: 0 0 3em;
    }

    .myticket__item-detail .detail__content {
        font-weight: bold;
        flex: 1 0 0;
        display: flex;
        flex-wrap: wrap;
    }

        .myticket__item-detail .detail__content p {
            width: 100%;
            display: flex;
            justify-content: space-between;
        }

.myticket__item-link {
    flex: 0 0 100%;
    background: #6ebb29;
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px;
    text-align: center;
}

    .myticket__item-link a {
        display: block;
        padding: 5px 15px;
        color: #fff;
        text-decoration: none;
        font-size: 20px;
        font-weight: bold;
    }

.ticketdetail__item {
    margin-top: 1em;
    display: flex;
    flex-wrap: wrap;
}

    .ticketdetail__item.btnbar {
        justify-content: flex-end;
    }

.ticketdetail__item-detail {
    display: flex;
    width: 100%;
    text-align: left;
    font-size: 20px;
    margin-bottom: .5em;
}

    .ticketdetail__item-detail .detail__title {
        flex: 0 0 3em;
    }

    .ticketdetail__item-detail .detail__content {
        flex: 1 0 0;
    }

.ticketdetail__item-text {
    width: 100%;
    text-align: left;
    font-size: 20px;
    margin-bottom: .5em;
}

.ticketdetail__item-qritem {
    width: 95%;
    margin: 10px auto 30px;
}

    .ticketdetail__item-qritem .qritem__wrap {
        padding: 45px 15px;
        background: #fff;
        border-radius: 20px;
    }

        .ticketdetail__item-qritem .qritem__wrap + .qritem__wrap {
            position: relative;
        }

            .ticketdetail__item-qritem .qritem__wrap + .qritem__wrap::before {
                content: '';
                position: absolute;
                left: 0;
                right: 0;
                top: 0;
                width: calc(100% - 30px);
                margin: 0 auto;
                height: 1px;
                background-image: repeating-linear-gradient(90deg,#fff,#fff 4px,#000 0,#000 8px);
            }

    .ticketdetail__item-qritem .qritem__ticketname {
        font-size: 20px;
        text-align: left;
        padding-bottom: 10px;
        border-bottom: 1px solid #666;
    }

    .ticketdetail__item-qritem .qritem__qrcode {
        text-align: center;
    }

    .ticketdetail__item-qritem .qritem__qrcodehint {
        font-size: 18px;
        font-weight: bold;
        color: #ff006e;
        text-align: center;
        padding: 5px 0 20px 0;
    }

    .ticketdetail__item-qritem .qritem__ticketinfo {
        padding: 5px;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

        .ticketdetail__item-qritem .qritem__ticketinfo.border {
            border: 1px solid #666;
        }

.noticketdate {
    color: #f00;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    padding: 0 0 1em 0;
}

.refund__wrap {
    margin: 1em auto 0 auto;
    padding: 15px;
}

    .refund__wrap p {
        background: #fff;
        margin: .3em 0;
        font-size: 20px;
        color: #000;
        padding: .7em;
    }
