﻿@font-face {
    font-family: 'icomoon';
    src: url("../fonts/icomoon/icomoon.eot?srf3rx");
    src: url("../fonts/icomoon/icomoon.eot?srf3rx#iefix") format("embedded-opentype"), url("../fonts/icomoon/icomoon.ttf?srf3rx") format("truetype"), url("../fonts/icomoon/icomoon.woff?srf3rx") format("woff"), url("../fonts/icomoon/icomoon.svg?srf3rx#icomoon") format("svg");
    font-weight: normal;
    font-style: normal;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden; /*捲軸因此掛在 html 上，modal 開啟時不會消失*/
}

/*捲軸沒消失，Bootstrap 補的 padding-right 反而讓內容左移；inline style 要 !important 才蓋得掉*/
body.modal-open {
    padding-right: 0 !important;
}

body {
    color: #222222;
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-family: "微軟正黑體", "Microsoft JhengHei", sans-serif;
    overflow-x: hidden;
}

a {
    background: transparent;
    text-decoration: none;
    -webkit-transition: .3s all ease;
    -o-transition: .3s all ease;
    transition: .3s all ease;
}

a:hover {
    text-decoration: none;
}

img {
    border: 0;
    padding: 0;
    margin: 0;
    vertical-align: middle;
    width: 100%;
}

p {
    line-height: 24px;
    color: #3a3a3a;
}

.row .row {
    margin-left: 0;
    margin-right: 0;
}

.no-padding {
    padding: 0;
}

.mb-10 {
    margin-bottom: 10px;
}

.mb-20 {
    margin-bottom: 20px;
}

.mb-30 {
    margin-bottom: 30px;
}

.mt-20 {
    margin-top: 20px;
}

.mt-30 {
    margin-top: 30px;
}

.relative {
    position: relative;
}



/*--header--*/
#page {
    position: relative;
    overflow-x: hidden;
    width: 100%;
    height: 100%;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
}

.offcanvas #page {
    overflow: hidden;
    position: absolute;
}

.offcanvas #page:after {
    -webkit-transition: 2s;
    -o-transition: 2s;
    transition: 2s;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 101;
    background: rgba(0, 0, 0, 0.7);
    content: "";
}

.nav {
    background: #fff;
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    right: 0;
    box-shadow: 0 0px 10px 9px rgb(0 0 0 / 15%);
    display: flex;
    text-align: center;
}

.logo {
    width: 150px;
    padding: 10px 0;
}

.nav ul {
    padding-left: 0;
    margin-bottom: 0;
}

.nav ul li {
    padding: 28px 7px;
    margin: 0;
    list-style: none;
    display: inline-block;
}

.nav ul li a {
    font-size: 18px;
    color: #2d2d2d;
    letter-spacing: 1px;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
}

.nav ul li.active a {
    color: #ec6d25;
}

.nav ul li a:hover,
.nav ul li a:focus,
.nav ul li a:active {
    color: #ec6d25;
}


.nav ul li a.cart span {
    position: relative;
}

.nav ul li a.cart span small {
    position: absolute;
    top: -20px;
    right: -15px;
    padding: 10px 6px;
    line-height: 0;
    font-size: 12px;
    background: #ec6d25;
    color: white;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
}

.nav ul li.has-dropdown {
    position: relative;
}

.nav ul li.has-dropdown .dropdown {
    width: 150px;
    -webkit-box-shadow: 0px 0px 8px -2px rgb(220 220 220);
    -moz-box-shadow: 0px 0px 8px -2px rgb(220 220 220);
    box-shadow: 0px 0px 8px -2px rgb(220 220 220);
    z-index: 1002;
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: 100%;
    left: 0;
    text-align: left;
    background: #fff;
    padding: 10px 0;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    border-radius: 4px;
    -webkit-transition: 0s;
    -o-transition: 0s;
    transition: 0s;
}

.nav ul li.has-dropdown .dropdown:before {
    bottom: 100%;
    left: 40px;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-bottom-color: #f3f3f3;
    border-width: 8px;
    margin-left: -8px;
}

.nav ul li.has-dropdown .dropdown li {
    display: block;
    padding: 10px 15px;
}


.nav ul li.has-dropdown .dropdown li a {
    display: block;
    color: #2d2d2d;
    line-height: 1.2;
    text-transform: none;
    font-size: 16px;
}

.nav ul li.has-dropdown .dropdown li a:hover {
    color: #ec6d25;
}

@media screen and (max-width: 991px) {

    .fh5co-nav .menu-1 {
        display: none;
    }
}

#fh5co-offcanvas ul li.shopping-cart {
    float: left;
}

#fh5co-offcanvas ul li a.cart {
    display: block;
    margin-top: 30px;
    color: #fff;
}

#fh5co-offcanvas ul li a.cart span {
    position: relative;
}

#fh5co-offcanvas ul li a.cart span small {
    position: absolute;
    top: -20px;
    right: -15px;
    padding: 10px 6px;
    line-height: 0;
    font-size: 12px;
    background: #ec6d25;
    color: white;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    border-radius: 50%;
}

/*手機導覽列*/
.fh5co-nav-toggle {
    display: none;
}

#footer-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background-color: rgb(247 247 247 / 98%);
    box-shadow: 0 -5px 10px 0 rgb(0 0 0 / 6%);
    min-height: 72px;
    height: calc(62px + (constant(safe-area-inset-bottom))*1.1);
    height: calc(62px + (env(safe-area-inset-bottom))*1.1);
    display: flex;
    text-align: center;
}

#footer-bar a {
    color: #333;
    padding-top: 8px;
    position: relative;
    flex: 1 1 auto;
}

#footer-bar a i {
    font-size: 32px;
    position: relative;
    z-index: 2;
    color: #ec6d25 !important;
}

#footer-bar a span {
    position: relative;
    z-index: 2;
    display: block;
    font-size: 16px;
    font-weight: 500;
    margin: 2px 0;
}

#fh5co-offcanvas {
    position: absolute;
    z-index: 1901;
    width: 270px;
    background: black;
    top: 0;
    right: 0;
    top: 0;
    bottom: 0;
    padding: 40px 30px;
    overflow-y: auto;
    display: none;
    -moz-transform: translateX(270px);
    -webkit-transform: translateX(270px);
    -ms-transform: translateX(270px);
    -o-transform: translateX(270px);
    transform: translateX(270px);
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
}

.offcanvas #fh5co-offcanvas {
    -moz-transform: translateX(0px);
    -webkit-transform: translateX(0px);
    -ms-transform: translateX(0px);
    -o-transform: translateX(0px);
    transform: translateX(0px);
}

#fh5co-offcanvas a {
    color: #fff;
    font-size: 18px;
}

#fh5co-offcanvas a:hover {
    color: #ec6d25;
}

#fh5co-offcanvas ul {
    padding: 0;
    margin: 0;
}

#fh5co-offcanvas ul li {
    padding: 10px 0;
    margin: 0;
    list-style: none;
}

#fh5co-offcanvas ul li>ul {
    padding-left: 20px;
    display: none;
}

#fh5co-offcanvas ul li.offcanvas-has-dropdown>a {
    display: block;
    position: relative;
}

#fh5co-offcanvas ul li.offcanvas-has-dropdown>a:after {
    position: absolute;
    right: 0px;
    font-family: 'icomoon';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "\e921";
    font-size: 20px;
    color: #fff;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
}

#fh5co-offcanvas ul li.offcanvas-has-dropdown.active a:after {
    -webkit-transform: rotate(-180deg);
    -moz-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    -o-transform: rotate(-180deg);
    transform: rotate(-180deg);
}

@media screen and (max-width: 991px) {
    #fh5co-offcanvas {
        display: block;
    }

}

/*banner*/
.banner-mt {
    margin-top: 80px;
}

/*index*/
.page {
    padding: 80px 0;
}

@media (max-width: 767px) {
    .page {
        padding: 40px 0;

    }
}

.page-bg {
    background-color: #FFFFFF;
    background-image: url(../img/bg-l.png);
    background-position: center left;
    background-repeat: no-repeat;
    background-size: 130px auto;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    position: relative;

}

@media (max-width: 767px) {
    .page-bg {
        padding-top: 40px;

    }
}

.elementor-background-overlay2 {
    background-image: url(../img/bg-r.png);
    background-position: center right;
    background-repeat: no-repeat;
    background-size: 300px auto;
    opacity: 0.5;
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    position: absolute;
}

.page-sitebg {
    background: rgba(213, 195, 160, 0.1);

}

.index-title {
    color: #ec6d25;
    font-weight: 700;
    letter-spacing: 3px;
}

.separator {
    border-top: 1px solid;
    clear: both;
    display: inline-block;
    position: relative;
    border-color: #ec6d25;
    width: 100px;
    margin-bottom: 30px;
    margin-top: 5px;
}

.sep_diamond {
    content: "";
    height: 10px;
    left: 50%;
    margin: -5px auto auto -5px;
    position: absolute;
    transform: rotate(-45deg);
    width: 10px;
    background-color: #ec6d25;
}

.bg {
    background-color: #F8F9FA;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    position: relative;
}

.elementor-background-overlay {
    background-image: url(../img/bg2.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 0.7;
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    position: absolute;
}

/*in-banner*/
.in-banner {
    position: relative;
    padding: 100px 0px 0 0;
    background-image: url(../img/in-banner.jpg);
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    height: 300px;
    margin-top: 80px;
}

.in-banner h1 {
    color: #ffffff;
    text-shadow: 0.05em 0.05em 0.15em #2b2b2b;
    font-weight: 700;
    letter-spacing: 1px;
}

.bread-crumb {
    position: relative;
    padding-left: 0px;
    text-shadow: 0.05em 0.05em 0.15em #2b2b2b;
}

.bread-crumb li:first-child {
    margin-left: 0px;
    padding-left: 0;
}

.bread-crumb li {
    position: relative;
    display: inline-block;
    line-height: 30px;
    padding-left: 20px;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    text-transform: uppercase;
}

.bread-crumb li:before {
    content: '/';
    position: absolute;
    right: -20px;
    top: 1px;
    width: 20px;
    font-size: 14px;
    text-align: center;
    line-height: 30px;
}

.bread-crumb li:last-child:before {
    content: none;
}

.bread-crumb li a {
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
}

@media (max-width: 767px) {

    .in-banner {
        padding: 50px 0;
        height: auto;
    }


    .in-banner h1 {
        font-size: 24px;
        margin-bottom: 0;
        line-height: 30px;
    }

    .bread-crumb {
        padding-left: 0px;
    }

    .bread-crumb:before {
        width: 0;
    }

    .bread-crumb li {
        padding-left: 5px;
        font-size: 14px;
    }

    .bread-crumb li:before {
        right: -14px;
        width: 20px;
    }

    .bread-crumb li a {
        font-size: 14px;
    }
}

/*------ end ------*/

/*--課程--*/
.product {
    margin-bottom: 30px;
}

.product .desc h3 {
    font-size: 20px;
    letter-spacing: 1px;
    margin-bottom: 10px;
    font-weight: 700;
    line-height: 24px;
    color: #2d2d2d;
    text-align: center;
}

.product .desc .price {
    letter-spacing: 2px;
    text-align: center;
}

.pdt-img {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-repeat: no-repeat;
}

.pdt-img img {
    -moz-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.product:hover .pdt-img img {
    -moz-transform: scale(1.1);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
}

.product:hover .pdt-img,
.product:focus .pdt-img {
    -webkit-box-shadow: 0px 10px 24px -7px rgba(0, 0, 0, 0.35);
    -moz-box-shadow: 0px 10px 24px -7px rgba(0, 0, 0, 0.35);
    -ms-box-shadow: 0px 10px 24px -7px rgba(0, 0, 0, 0.35);
    -o-box-shadow: 0px 10px 24px -7px rgba(0, 0, 0, 0.35);
    box-shadow: 0px 10px 24px -7px rgba(0, 0, 0, 0.35);
}

.product:hover .desc h3,
.product:focus .desc p {
    color: #ec6d25;
}

/*pdt-detail*/
.item .thumb {
    width: 25%;
    cursor: pointer;
    float: left;
    padding: 3px;
}

.item .thumb img {
    width: 100%;
    padding: 3px;
    border: 1px solid #bab7b7;
    border-radius: 4px;
}

.item img {
    width: 100%;
}

.price-h3 {
    color: #fd0404;
    font-weight: 700;
    font-size: 30px;
    margin: 0 10px 0 0;
}

.quantity {
    margin: 35px 0;
}

.add-btn {
    top: -2px;
    padding: 8px 20px !important;
}

.input-number {
    text-align: center;
    height: 40px !important;
    border: 1px solid #d2d2d2 !important;
}

.buy-btn {
    color: #fff;
    background-color: #ec6d25;
    border-color: #ec6d25;
    width: 48.5%;
    padding: 10px 30px !important;
}

.buy-btn:hover {
    color: #2d2d2d;
    background-color: #fff;
    border-color: #ec6d25;
}

.ml-15 {
    margin-left: 15px
}

.page-detail {
    padding-bottom: 80px;
}

@media screen and (min-width:990px) and (max-width:1200px) {
    .buy-btn {
        width: 47.5%;
    }
}

@media (max-width: 767px) {
    .buy-btn {
        width: 46.7%;
    }
}

/*shopping*/
.class {
    padding: 30px;
    border: 1px dashed #ec6d25;
    margin-bottom: 30px;
}

.order .checkbox {
    font-size: 20px;
}

.order input[type="checkbox"] {
    margin: 8px 0 8px -20px !important;

}

.order span {
    margin-left: 20px;
    color: #f60404
}

@media (max-width: 767px) {
    .class {
        padding: 0px;
        border: none;
    }
}

/*timer*/
.timer-bg {
    padding: 80px 0;
    background: url(../img/timer-bg.jpg);
    /*background-repeat: no-repeat;*/
    background-position: center;
    background-attachment: fixed;
}

#timer {
    font-size: 24px;
    color: #ec6d25;
    font-weight: 700;
}

.time-ti {
    font-size: 55px;
    font-weight: bold;
    color: #fff;
    margin: 0px 10px;
    letter-spacing: 1px;
    display: inline-block;
}

#timer span {
    font-size: 55px;
    font-weight: bold;
    color: #fff;
    margin: 0px 10px;
    letter-spacing: 1px;
}

#timer span:first-child {
    margin-left: 0;
}


@media (max-width: 767px) {
    .timer-bg {
        padding: 60px 0;
    }

    #timer {
        font-size: 20px;
        color: #ec6d25;
        font-weight: 700;
        margin-bottom: 15px;
    }

    .time-ti {
        font-size: 32px;
        font-weight: bold;
        color: #fff;
        margin: 0 0 5px;
        letter-spacing: 1px;
        display: block;
    }

    #timer span {
        font-size: 28px;
        margin: 0 8px;
    }

}

/*end*/

/*news*/
.news {
    margin-bottom: 45px;
}

.news-img {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-repeat: no-repeat;
}

.news-img img {
    -moz-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.news:hover .news-img img {
    -moz-transform: scale(1.1);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
}

.news-info {
    padding: 30px 25px;
    margin: 0 30px;
    margin-top: -35px;
    background: #ffffff;
    -webkit-transition: all, 0.3s;
    -o-transition: all, 0.3s;
    transition: all, 0.3s;
    position: relative;
    box-shadow: 0px 1px 10px rgb(67 69 70 / 20%);
}

.news-info span {
    color: #7d7d7d;
    font-size: 14px;
    display: block;
    margin-bottom: 10px;
    letter-spacing: 2px;
}


.news-info h5 {
    color: #2d2d2d;
    font-weight: 700;
    line-height: 28px;
    margin-bottom: 10px;
    font-size: 18px;
}

.news-info .more {
    display: inline-block;
    color: #2d2d2d;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 5px 0;
    position: relative;
}

.news-info .more:after {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: #111111;
    content: "";
    -webkit-transition: all, 0.3s;
    -o-transition: all, 0.3s;
    transition: all, 0.3s;
}

.news:hover .more::after {
    width: 40px;
    background: #ec6d25;
}

.news:hover .news-info h5 {
    color: #ec6d25;
}

.clock {
    margin: 10px 0;
}

/*------ qa ------*/
.panel-title {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 18px;
    color: inherit;
}

.panel-group .panel {
    margin-bottom: 10px;
}

.panel-default>.panel-heading {
    padding: 15px;
}

.panel-title>a:hover,
.panel-title>a:focus {
    color: #ec6d25;
}

/*------ end ------*/
/*------ pagination ------*/
.pagination {
    display: block;
    margin-top: 50px;
}

ul.pager {
    margin: 30px 0 0px;
    text-align: left;
}

ul.pagination li {
    padding: 0;
    margin: 0 5px 0 0;
    border-bottom: none;
    display: inline-block;
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    border-radius: 0px;
}

ul.pagination li>a,
.pagination>li:first-child>a,
.pagination>li:last-child>a,
ul.pager li>a {
    text-align: center;
    padding: 0;
    height: 40px;
    width: 40px;
    border: 1px solid #959393;
    line-height: 39px;
    background-color: #fff;
    color: #959393;
    display: inline-block;
    border-radius: 4px;
}


ul.pagination li>a:hover,
ul.pagination li>a:focus {
    background-color: transparent;
    color: #ffffff;
    border-color: #ec6d25;
    background: #ec6d25;

}

ul.pagination li.active a,
.pagination>.active>a:hover,
.pagination>.active>a:focus {
    color: #ffffff;
    border-color: #ec6d25;
    background: #ec6d25;
}

/*policy*/
.ti-h3 {
    font-size: 20px;
    font-weight: 700;
    color: #ec6d25;
}


/*contact*/

.form-control {
    box-shadow: none;
    background: white;
    border: 1px solid rgba(0, 0, 0, 0.1);
    height: 46px;
    font-size: 16px;
    /*font-weight: 300;*/
    border-radius: 0;
    color: #757575;
}

.form-control:active,
.form-control:focus {
    outline: none;
    box-shadow: none;
    border-color: #ec6d25;
}

.contact-info p {
    text-align: justify;
}

.contact-info ul {
    padding-left: 0;
}

.contact-info li {
    list-style-type: none;
    font-size: 20px;
    padding: 5px 0;
}

.contact-info li a {
    color: #222;
}

.contact-info li a:hover {
    color: #ec6d25;
}

.contact-info i {
    margin-right: 10px;
    color: #ec6d25;
}


.btn {
    font-size: 16px;
    font-weight: 400;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    -ms-border-radius: 2px;
    border-radius: 2px;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
    padding: 8px 30px;
}


.btn:hover,
.btn:active,
.btn:focus {
    box-shadow: none !important;
    outline: none !important;
}

.btn-cont {
    background: #ec6d25;
    color: #fff;
    border: 2px solid #ec6d25;
}

.btn-cont:hover,
.btn-cont:focus,
.btn-cont:active {
    color: #fff;
    background: #ff8e4f !important;
    border-color: #ff8e4f !important;
}



/*cart1*/
/*cart*/
.mycart {
    margin-bottom: 40px;
    padding: 0;
}

.cart-menu {
    width: 100%;
}

.cart-tabs {
    counter-reset: step;
    padding: 0;
    margin-top: 20px;
}

.cart-tabs li:first-child:nth-last-child(1) {
    width: 100%;
}

.cart-tabs li:first-child:nth-last-child(2),
.cart-tabs li:first-child:nth-last-child(2)~li {
    width: 49%;
}

.cart-tabs li:first-child:nth-last-child(3),
.cart-tabs li:first-child:nth-last-child(3)~li {
    width: 30.3333%;
}

.cart-tabs li:first-child:nth-last-child(4),
.cart-tabs li:first-child:nth-last-child(4)~li {
    width: 24%;
}

.cart-tabs li {
    list-style: none;
    display: inline-block;
    position: relative;
    text-align: center;
    cursor: pointer;
}

.cart-tabs li:before {
    content: counter(step);
    counter-increment: step;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border: 1px solid #ddd;
    border-radius: 100%;
    display: block;
    text-align: center;
    margin: 0 auto 10px auto;
    background-color: #fff;
}

.cart-tabs li:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 5px;
    background-color: #ddd;
    top: 13px;
    left: -50%;
    z-index: -1;
}

.cart-tabs li:first-child:after {
    content: none;
}

.cart-tabs li.tab_active,
.cart-tabs li.tab_inactive a,
.cart-tabs li.tab_active a {
    color: #686565;
}

.cart-tabs li.tab_active:before {
    border-color: #918f8f;
    background-color: #918f8f;
    color: #fff;
}

.cart-tabs li.tab_inactive:before {
    border-color: #918f8f;
    background-color: #918f8f;
    color: #fff;
}

.cart-tabs li.tab_inactive+li:after {
    background-color: #918f8f;
}

@media (max-width: 751px) {
    .mycart {
        margin-bottom: 20px;
    }
}

.cart-table {
    width: 100%;
    margin-bottom: 15px;
}

.cart-table th {
    color: #FFFFFF;
    font-weight: bold;
    line-height: 30px;
    position: relative;
    padding: 5px 10px;
    background-color: #ec6d25;
    text-align: center;
}

.cart-table th:not(:last-child):after {
    content: '';
    position: absolute;
    right: 0px;
    top: 0px;
    bottom: 0px;
    background-color: #d2d2d2;
    height: 14px;
    width: 1px;
    margin: auto;
}

.cart-table tr {
    background: #fafafa;
    border-bottom: 1px solid #d2d2d2;
}

.cart-table td {
    position: relative;
    text-align: center;
    padding: 10px;
    /*
     text-align: right;
    font-size: 18px;
    font-weight: 700;*/
}

.cart-table .info-img img {
    width: 80px;
}

.cart-table a:hover {
    color: #8d8d8d;
}

.cart-total td {
    font-size: 18px !important;
    font-weight: bold;
}

.sub {
    text-align: right !important;
}

.subtotal {
    color: #f00;
}

.right {
    float: right;
}
.cart-table .tagr a {
        color: #ec6d25;
    }

@media screen and (max-width: 991px) {
    .cart-table {
        font-size: 16px;
    }

    .cart-table:not(:first-of-type) {
        border-top: 1px solid #d2d2d2;
    }

    /*.cart-table .info-img {
        width: 100%;
    }*/

    .cart-table .info-img img {
        width: 50px;
    }

    .cart-table .tagr {
        display: block;
        width: 100%;
        text-align: right;
        padding: 5px;
        line-height: 1.5;
    }

    

    .cart-table .tagr:before {
        content: attr(data-tag);
        float: left;
        color: #686565;
    }

    /*.cart-table td {
        float: left;
        width: 100%;
    }*/
}


#num {
    width: 40px;
    text-align: center;
    border: 1px solid #d6d6d6;
}

#min,
#add {
    border: 1px solid #d6d6d6;
    margin: 0;
}

#min:hover,
#min:focus,
#min .focus,
#add:hover,
#add:focus,
#add .focus {
    border: 1px solid #d6d6d6 !important;
    background-color: #ec6d25;
    color: #fff;
}


.btn-checkout {
    width: 100%;
    background: #ec6d25;
    color: #fff;
    margin: 25px 0;
}

.btn-checkout:hover {
    color: #fff;
    background: #2d2d2d;
}

/*cart2*/
.twzipcode {
    display: flex;
}

.county,
.district {
    width: 127px;
    height: 46px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 15px;
    margin-right: 7px;
    color: #757575;
    padding: 10px 20px;
}

@media (min-width: 1200px) {

    .county,
    .district {
        width: 160px;
    }
}

.section-header {
    padding: 10px 15px;
    margin: 0 -15px 15px;
    font-weight: 500;
    background-color: #e8e8e8;
    border-bottom: 1px solid #EDEDED;
    color: #ec6d25;
}

.section-header h3 {
    font-weight: 700;
    margin: 0;
    font-size: 18px;
    line-height: 28px;
}

.order-form {
    border-radius: 0px;
    border: 1px solid #EDEDED;
    margin-bottom: 30px;
    padding: 0 15px;
    background-color: white;
    min-height: 531px;
}

@media (max-width: 992px) {
    .order-form {
        min-height: 300px;
    }


    .form-group span {
        color: #ec6d25;
        font-size: 14px;
    }

    /*@media (max-width: 400px) {

    .county,
    .district {
        width: 153px;

    }
*/
}

/*cart3*/
.cart-form {
    font-size: 18px;
    color: #FFFFFF;
    font-weight: bold;
    line-height: 40px;
    padding: 0 15px;
    background-color: #ec6d25;
    margin-top: 30px;
    text-align: center;
    s
}

.cart3-text {
    border-bottom: 1px solid #d2d2d2;
    margin: 0 0 50px;
    min-height: 100px;
    text-align: center;
    line-height: 100px;
}

.fa-check-circle {
    padding-right: 8px;
}

@media (max-width: 767px) {
    .cart3-text {
        margin: 20px 0;
        min-height: 80px;
        line-height: 30px;
    }
}

/*search*/
.serch-btn {
    background: #ec6d25;
    border-color: #ec6d25;
    border-radius: 0;
    height: 42px;
    padding: 9px 40px;
    color: #fff;
}

.serch-btn:hover {
    color: #fff;
}

/*footer*/
footer {
    background: #fbfbfb;
    padding: 50px 0;
}

.footer-logo {
    width: 200px;
    display: block;
    margin: 10px auto;
}

.footer-info {
    padding-left: 0;
    list-style: none;
}

.footer-info li,
.footer-info a {
    padding: 5px 0;
    color: #2d2d2d;
}

.footer-info a:hover {
    color: #ec6d25;
}

.copyright {
    background: #f0f0f0;
    padding: 15px 0;
}


.copyright p {
    text-align: center;
    margin-bottom: 0
}

/*gotop*/
.gototop {
    position: fixed;
    bottom: 80px;
    right: 17px;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
}

.gototop.active {
    opacity: 1;
    visibility: visible;
}

.gototop a {
    width: 54px;
    height: 54px;
    display: table;
    background: #ec6d25;
    color: #fff;
    text-align: center;
    border-radius: 50%;
}

.gototop a i {
    height: 50px;
    display: table-cell;
    vertical-align: middle;
}

.gototop a:hover,
.gototop a:active,
.gototop a:focus {
    text-decoration: none;
    outline: none;
}

@media (max-width: 751px) {
    .gototop a {
        width: 39px;
        height: 39px;
    }

    .gototop a i {
        height: 39px;
    }

    .gototop {
        bottom: 115px;
        right: 15px;
    }
}

/*------ right-link ------*/
.right_link {
    position: fixed;
    bottom: 140px;
    right: 14px;
    z-index: 99;
    width: 60px;
    text-align: center;
    font-weight: bold;
}

.right_link a {
    text-align: center;
    display: inline-block;
    margin-bottom: 1em;
}

.right_link img {
    width: 90%;
}

@media (max-width: 751px) {
    .right_link {
        bottom: 150px;
        right: 5px;
    }

    .right_link img {
        width: 65%;
    }
}

/*------ Menulist ------*/
.menu-p {
    padding: 40px 0;
    min-height: 400px;
}

.Menulist {
    clear: both;
    margin-bottom: 100px;
}

.Menulist ul {
    margin: 0px;
    padding: 0px;
}

@media (min-width: 769px) {
    .Menulist ul li {
        margin: 0px 20px 20px 0px;
        width: 48%;
        float: left;
        list-style-type: none;
    }
}

@media (max-width: 768px) {
    .Menulist ul li {
        margin: 0px 20px 20px 0px;
        width: 100%;
        float: left;
        list-style-type: none;
    }

    .menu-p {
        min-height: 600px;
    }
}

.Menulist ul li:nth-child(2n) {
    margin: 0px 0px 20px;
    float: right;
}

.Menulist ul li a {
    background-position: 15px 12px;
    padding: 10px 15px 10px 35px;
    border: 1px solid rgb(198, 198, 198, 1);
    border-image: none;
    display: block;
    background-repeat: no-repeat;
    color: #43403e;
    font-size: 18px;
    -webkit-border-radius: 19px;
    -moz-border-radius: 19px;
    border-radius: 30px;
    box-shadow: 2px 3px 2px rgba(0, 0, 0, 0.1);
    -webkit-transition: all 0.3s ease-in-out;
    -moz-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
}

.Menulist ul li a:hover {
    color: #fff;
    text-decoration: none;
    background-color: #ec6d25;
}

/*------ end ------*/

/*------ 上方跑馬燈（整站，一個直播檔期一組） ------*/
.top-marquee {
    background: #cc0000;
    color: #fff;
    font-size: 18px;
    position: fixed; /*選單是 fixed，跑馬燈不跟進來會被蓋掉*/
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
}

.top-marquee .marquee-item {
    display: none;
    align-items: center;
    justify-content: center;
    padding: 5px 30px 16px; /*下方留白給 DAYS/HRS 這排小字，左右對稱避開關閉鈕*/
    white-space: nowrap;
    overflow: hidden;
    transition: opacity .25s;
}

.top-marquee .marquee-item.is-on {
    display: flex;
}

.top-marquee .marquee-item.is-fading {
    opacity: 0;
}

/*關閉鈕要挂在 .top-marquee 上，挂進 owl 裡會跟輪播一起被切掉*/
.top-marquee .marquee-close {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    padding: 0 6px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 34px;
    line-height: 1;
    opacity: .8;
    cursor: pointer;
    z-index: 2;
}

.top-marquee .marquee-close:hover,
.top-marquee .marquee-close:focus {
    color: #fff;
    opacity: 1;
    outline: none;
}

.top-marquee .marquee-name {
    font-weight: 700;
    flex: 0 1 auto;
    min-width: 0; /*不設 0 的話 flex 子元素不會縮，ellipsis 不會生效*/
    position: relative;
    top: 6px; /*卡片置中在 32.4px，但整條含 label 有 53.4px，補 6px 才落在視覺中線*/
    color: #fff;
    margin-right: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.top-marquee .marquee-name:hover,
.top-marquee .marquee-name:focus {
    color: #ffd9d9;
    text-decoration: none;
}

.top-marquee .marquee-btn {
    display: inline-block;
    flex: 0 0 auto;
    position: relative;
    top: 6px; /*跟檔期名稱一起下移，對齊視覺中線*/
    margin-left: 14px;
    padding: 0 12px;
    height: 32.4px; /*跟翻牌卡同高，整條高度才由時鐘決定*/
    background: #ffd966;
    color: #303030;
    font-size: 15px;
    font-weight: 700;
    line-height: 32.4px;
    border-radius: 3px;
    white-space: nowrap;
}

.top-marquee .marquee-btn:hover,
.top-marquee .marquee-btn:focus {
    background: #ffe28a;
    color: #303030;
    text-decoration: none;
}

/*FlipClock 原尺寸是 60x90 的大時鐘，這裡縮成橫幅用的小卡*/
.top-marquee .flip-clock-wrapper {
    display: flex; /*套件內部是 float，不轉 flex 寬度會塌掉撠不到中*/
    flex-wrap: wrap; /*窄螢幕時分秒整組往下折，這是參考站的行為*/
    justify-content: center;
    align-items: flex-start;
    flex: 0 1 auto; /*不給 min-width:0，才會縮到剩一組寬就折行而不是無限壓扁*/
    width: auto;
    margin: 0;
    row-gap: 18px; /*折行後上一排的 DAYS/HRS 小字要有地方站*/
}

/*每個時間單位（分隔點＋兩張卡）包成一組，折行才不會把同一組拆開*/
.top-marquee .flip-clock-item-wrapper {
    position: relative;
    display: flex;
    flex: 0 0 auto;
}

.top-marquee .flip-clock-wrapper a {
    pointer-events: none; /*套件自己包了 href="#"，不擋會點一下跳回頁頂*/
}

.top-marquee .flip-clock-wrapper ul {
    flex: 0 0 auto;
    width: 27px;
    height: 32.4px;
    margin: 0 2px;
    font-size: 27px;
    line-height: 32.4px;
    border-radius: 3px;
}

.top-marquee .flip-clock-wrapper ul li {
    line-height: 32.4px;
}

.top-marquee .flip-clock-wrapper ul li a div {
    font-size: 27px;
}

.top-marquee .flip-clock-wrapper ul li a div.up:after {
    height: 0; /*對方沒有中間那條摺線*/
}

.top-marquee .flip-clock-wrapper ul li a div.down {
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
}

.top-marquee .flip-clock-wrapper ul li a div div.inn {
    font-size: 27px;
    line-height: 33px;
    color: #fff;
    background-color: #000;
    text-shadow: none;
    border-radius: 3px;
}

.top-marquee .flip-clock-divider {
    flex: 0 0 auto;
    width: 15px;
    height: 32.4px;
}

/*天數那組本來靠 :first-child 把分隔點收成 0 寬，包一層之後選不到，補回來*/
.top-marquee .flip-clock-item-wrapper:first-child .flip-clock-divider {
    width: 0;
}

.top-marquee .flip-clock-divider .flip-clock-dot {
    width: 6px;
    height: 6px;
    left: 4px;
    background: #fff;
    box-shadow: 0 0 5px rgba(0, 0, 0, .5);
}

.top-marquee .flip-clock-divider .flip-clock-dot.top {
    top: auto;
    bottom: 20%;
}

.top-marquee .flip-clock-divider .flip-clock-dot.bottom {
    top: 20%;
    bottom: auto;
}

/*label 由 JS 搬到整組底下，padding-left 補掉分隔點的寬度才會落在數字正中間*/
.top-marquee .flip-clock-item-wrapper .flip-clock-label {
    position: absolute; /*原本靠 .flip-clock-divider .flip-clock-label 給，搬出來後要自己宣告*/
    top: 100%;
    left: 0;
    right: auto;
    width: 100%;
    padding-left: 15px;
    margin-top: 4px;
    color: #fff;
    font-size: 10.8px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.top-marquee .flip-clock-item-wrapper:first-child .flip-clock-label {
    padding-left: 0;
}

/*------ 公告彈窗 ------*/
.announce-btn {
    display: block;
    background: #ec6d25;
    color: #fff;
    text-align: center;
    padding: 10px 6px;
    margin-bottom: 6px;
    border-radius: 4px;
    line-height: 1.2;
    font-size: 15px;
}

.announce-btn:hover,
.announce-btn:focus {
    color: #fff;
    background: #ff8e4f;
    text-decoration: none;
}

/*BS3 的 modal 預設貼在上方，靠偽元素撐滿高度才能跟彈窗一起垂直置中*/
.announce-modal {
    text-align: center;
}

.announce-modal:before {
    content: '';
    display: inline-block;
    height: 100%;
    margin-right: -4px; /*inline-block 之間的空白字元*/
    vertical-align: middle;
}

.announce-modal .modal-dialog {
    display: inline-block;
    margin: 10px auto;
    text-align: left;
    vertical-align: middle;
}

.announce-content {
    background-size: cover;
    background-position: center;
    padding: 40px 30px 30px;
    border-radius: 6px;
}

.announce-content .close {
    font-size: 30px;
    opacity: .8;
}

.announce-body {
    max-height: 60vh;
    overflow-y: auto;
}

.announce-body img {
    max-width: 100%;
    height: auto;
}

.announce-foot {
    margin-top: 20px;
    text-align: center;
}

.announce-foot .buy-btn {
    width: auto;
}

/*公告倒數：照參考站 Zotabox SimplePopup 的 style2，半透明黑底方塊＋白色大數字，不是跑馬燈那組翻牌鐘*/
.announce-clock {
    padding-top: 20px;
    text-align: center;
}

.announce-clock-item {
    display: inline-block;
    margin-right: 8px;
    padding: 15px 15px 8px;
    border-radius: 3px;
    background: rgba(0, 0, 0, .5);
    color: #fff;
}

.announce-clock-item:last-child {
    margin-right: 0;
}

.announce-clock-num {
    font-size: 40px;
    font-weight: bold;
    line-height: 1;
}

.announce-clock-label {
    padding-top: 3px;
    font-size: 13px;
    text-transform: uppercase;
}

/*------ 商品圖固定比例，一律抓中央 ------*/
.pdt-img {
    position: relative;
    width: 100%;
    padding-top: 75%;
    overflow: hidden;
    background: #f5f5f5;
}

.pdt-img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.pdt-thumbs {
    margin: 10px -5px 25px;
}

.pdt-thumb {
    float: left;
    width: 25%;
    padding: 0 5px;
    margin-bottom: 10px;
    cursor: pointer;
}

.pdt-thumb img {
    width: 100%;
    height: 80px;
    object-fit: cover;
    object-position: center;
    border: 2px solid transparent;
}

.pdt-thumb.active img,
.pdt-thumb:hover img {
    border-color: #ec6d25;
}

/*------ 商品內頁三段價格與方案 2 選 1 ------*/
.pdt-title {
    color: #ec6d25;
    font-weight: 700;
    letter-spacing: 2px;
    margin-top: 0;
}

.price-box {
    margin: 25px 0;
}

.price-origin {
    color: #999;
    font-size: 16px;
    margin-bottom: 10px;
}

.price-origin del {
    margin-left: 4px;
}

.plan-list {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -6px;
}

.plan-card {
    position: relative;
    flex: 1 1 45%;
    margin: 0 6px 12px;
    padding: 15px 15px 15px 18px;
    border: 2px solid #e5e5e5;
    border-radius: 6px;
    background: #fff;
    font-weight: normal;
    cursor: pointer;
}

.plan-card.single {
    flex: 1 1 100%;
    cursor: default;
}

.plan-card.on {
    border-color: #ec6d25;
    box-shadow: 0 0 0 1px #ec6d25 inset;
}

.plan-card input[type="radio"] {
    position: absolute;
    top: 16px;
    right: 12px;
    margin: 0;
}

.plan-card .plan-name {
    display: block;
    color: #2d2d2d;
    font-size: 16px;
    margin-bottom: 6px;
}

.plan-card .plan-price {
    display: block;
    color: #fd0404;
    font-size: 26px;
    font-weight: 700;
}

.plan-card .plan-note {
    display: block;
    color: #888;
    font-size: 13px;
    margin-top: 4px;
}

/*------ 直播購物頁的價格區 ------*/
.shop-price {
    margin: 25px 0;
}

.shop-price .price-h3 {
    display: block;
    margin: 0 0 6px;
    font-size: 24px;
}

.shop-price .price-multi {
    color: #ec6d25;
}

.price-tip {
    color: #888;
    font-size: 13px;
    margin: 0;
}

/*------ 購物清單的單人/多人切換 ------*/
/*併在商品名下方橫排；塞回單價欄會把整列撐高，右邊的小計就對不齊*/
.cart-table .plan-select {
    margin-top: 6px;
    font-size: 14px;
}

.cart-table .plan-select label {
    display: inline-block;
    font-weight: normal;
    margin: 0 12px 0 0;
    cursor: pointer;
}

.cart-table .plan-select input {
    margin-right: 4px;
}

/*------ 常見問題 / 課前回答 ------*/
.qa-list {
    max-width: 900px;
    margin: 0 auto;
}

.qa-item {
    border-bottom: 1px solid #e5e5e5;
}

.qa-q {
    position: relative;
    padding: 18px 40px 18px 0;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    color: #2d2d2d;
}

.qa-q:after {
    content: "\2212";
    position: absolute;
    right: 5px;
    top: 16px;
    color: #ec6d25;
    font-size: 22px;
}

.qa-q.collapsed:after {
    content: "\002B";
}

.qa-asker {
    display: block;
    font-size: 13px;
    color: #999;
    font-weight: normal;
    margin-top: 4px;
}

.qa-a {
    padding: 0 0 18px;
    color: #555;
    line-height: 1.8;
}

.qa-a img {
    max-width: 100%;
    height: auto;
}

/*------ 最新評價 ------*/
.review-item {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 20px;
}

.review-head {
    margin-bottom: 12px;
    overflow: hidden;
}

.review-avatar {
    float: left;
    width: 56px;
    height: 56px;
    margin-right: 12px;
}

.review-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.review-meta {
    overflow: hidden;
}

.review-name {
    margin: 0;
    font-weight: 700;
    color: #2d2d2d;
}

.review-star span {
    color: #ddd;
    font-size: 16px;
}

.review-star span.on {
    color: #ffc107;
}

.review-date {
    margin: 0;
    font-size: 13px;
    color: #999;
}

.review-body {
    color: #555;
    line-height: 1.8;
}

.review-body img {
    max-width: 100%;
    height: auto;
}

/*------ 編輯器內容區 ------*/
/*編輯器內容常有靠左右對齊的浮動圖，不關住會溢出到下一個區塊的標題旁*/
.course-block:after,
.editor-area:after,
.qa-a:after {
    content: "";
    display: block;
    clear: both;
}

.editor-area img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    .announce-clock-item {
        margin-right: 5px;
        padding: 15px 10px 5px;
    }

    .announce-clock-num {
        font-size: 25px;
    }

    .announce-clock-label {
        font-size: 8px;
    }

    .top-marquee .marquee-item {
        flex-direction: column; /*一行塞不下名稱＋時鐘＋按鈕，照參考站堆成三行*/
        font-size: 16px;
        padding: 4px 24px 5px;
    }

    .top-marquee .mq-clock {
        margin-bottom: 15px; /*label 吊在卡片下方 12.4px，不留空會壓到按鈕*/
    }

    .top-marquee .marquee-close {
        font-size: 26px;
        right: 4px;
    }

    .top-marquee .marquee-name {
        max-width: 100%;
        margin: 0 0 3px;
        top: 0; /*手機是堆疊的，不需要桌機那段對齊位移*/
    }

    .top-marquee .flip-clock-wrapper ul {
        width: 21px;
        height: 25.2px;
        font-size: 21px;
        line-height: 25.2px;
    }

    .top-marquee .flip-clock-wrapper ul li {
        line-height: 25.2px;
    }

    .top-marquee .flip-clock-wrapper ul li a div,
    .top-marquee .flip-clock-wrapper ul li a div div.inn {
        font-size: 21px;
        line-height: 25.2px;
    }

    .top-marquee .flip-clock-divider {
        width: 15px;
        height: 25.2px;
    }

    .top-marquee .flip-clock-wrapper {
        row-gap: 16px;
    }

    .top-marquee .flip-clock-item-wrapper .flip-clock-label {
        margin-top: 4px;
        font-size: 8.4px;
    }

    .top-marquee .marquee-btn {
        margin-left: 0;
        padding: 0 12px;
        height: 25.2px;
        font-size: 13px;
        line-height: 25.2px;
        top: 0;
    }

    .plan-card {
        flex: 1 1 100%;
    }

    .pdt-thumb img {
        height: 60px;
    }

    .announce-content {
        padding: 35px 18px 20px;
    }

    .announce-modal .modal-dialog {
        width: calc(100% - 20px); /*inline-block 在手機會縮成內容寬*/
    }
}

/*320px 機型可用寬只剩 272px，天數超過 99 天會多一張卡，尺寸照 18px 這組往下算*/
@media (max-width: 359px) {
    .announce-clock-item {
        padding-top: 6px;
    }

    .top-marquee .flip-clock-wrapper ul {
        width: 18px;
        height: 21.6px;
        font-size: 18px;
        line-height: 21.6px;
    }

    .top-marquee .flip-clock-wrapper ul li {
        line-height: 21.6px;
    }

    .top-marquee .flip-clock-wrapper ul li a div,
    .top-marquee .flip-clock-wrapper ul li a div div.inn {
        font-size: 18px;
        line-height: 21.6px;
    }

    .top-marquee .flip-clock-divider {
        width: 11px;
        height: 21.6px;
    }

    .top-marquee .flip-clock-wrapper {
        row-gap: 14px;
    }

    .top-marquee .flip-clock-item-wrapper .flip-clock-label {
        padding-left: 11px; /*跟著分隔點寬度走*/
        font-size: 7.2px;
    }

    .top-marquee .mq-clock {
        margin-bottom: 13px;
    }
}

.plan-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 10px;
    background: #ec6d25;
    color: #fff;
    font-size: 12px;
    vertical-align: middle;
}

/*------ end ------*/

/*------ 課程內頁：錨點列 + 左內容 / 右購買卡 ------*/
.course-page {
    margin-top: 80px; /*banner 拿掉了，要自己讓開 fixed 選單，實際值由 JS 覆寫*/
    padding-top: 40px;
}

.course-anchor {
    margin-bottom: 40px;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
}

/*祖先 #page 有 overflow-x:hidden，position:sticky 會失效，改由 JS 掛這個 class 並補上左欄的位置與寬度*/
.course-anchor.is-fixed {
    position: fixed;
    z-index: 998; /*要比 fixed 選單的 999 低，才不會蓋掉選單*/
    box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
}

.course-anchor ul {
    margin: 0;
    padding: 0;
    list-style: none;
    white-space: nowrap;
    overflow-x: auto;
}

.course-anchor li {
    display: inline-block;
}

.course-anchor a {
    display: block;
    padding: 16px 18px;
    color: #555;
    font-size: 16px;
    letter-spacing: 1px;
    border-bottom: 3px solid transparent;
}

.course-anchor a:hover,
.course-anchor a:focus,
.course-anchor a.on {
    color: #ec6d25;
    border-bottom-color: #ec6d25;
    text-decoration: none;
}

.buy-card-col {
    position: relative; /*購買卡跟到底時會改用 absolute 掛在這欄上*/
}

.course-main .pdt-title {
    font-size: 36px;
    line-height: 1.4;
    margin-top: 0;
    text-align: center;
}

.course-main > .separator {
    display: block; /*原本是 inline-block，改成 block 才能用 auto 跟著標題一起置中*/
    margin: 5px auto 25px;
}

.course-block {
    margin-bottom: 45px;
}

.course-block .block-title {
    position: relative;
    color: #2d2d2d;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 1px;
    margin: 0 0 20px;
    padding-left: 14px;
}

.course-block .block-title:before {
    content: "";
    position: absolute;
    left: 0;
    top: 3px;
    bottom: 3px;
    width: 4px;
    background: #ec6d25;
}

.course-block .qa-list {
    max-width: none; /*欄寬已被左欄限制，再置中會多出一截留白*/
}

.buy-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
    padding: 15px;
}

.buy-video {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    margin-bottom: 15px;
    overflow: hidden;
    border-radius: 6px;
    background: #000;
}

.buy-video iframe,
.buy-video video,
.buy-video img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
}

.buy-video-text {
    white-space: pre-line; /*後台是純文字 textarea，換行要保留*/
    color: #555;
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 18px;
}

.plan-block {
    border: 2px solid #e5e5e5;
    border-radius: 6px;
    padding: 20px 18px;
    margin-bottom: 30px;
}

.plan-block:last-child {
    margin-bottom: 0;
}

.plan-title {
    color: #2d2d2d;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 10px;
}

/*劃掉的原價就貼在按鈕上方*/
.plan-origin {
    color: #999;
    font-size: 15px;
    margin-bottom: 8px;
}

.plan-desc {
    color: #555;
    font-size: 15px;
    line-height: 1.9;
    margin-bottom: 15px;
}

.plan-desc p:last-child {
    margin-bottom: 0;
}

/*卡片寬度塞不下兩顆並排的 buy-btn，一律撐滿堆疊*/
.plan-btns .buy-btn {
    display: block;
    width: 100%;
    padding: 12px !important;
    font-size: 17px;
    white-space: normal; /*金額跟文字擠不下時讓它換行，不要溢出按鈕*/
}

.plan-btns .btn-price {
    font-weight: 700;
    letter-spacing: 1px;
}

.plan-btns .buy-btn + .buy-btn {
    margin-top: 8px;
    color: #ec6d25;
    background-color: #fff;
}

.plan-btns .buy-btn + .buy-btn:hover {
    color: #fff;
    background-color: #ec6d25;
}

@media (max-width: 991px) {
    .buy-card {
        margin-bottom: 40px;
    }

    .course-block .block-title {
        font-size: 20px;
    }

    .course-anchor a {
        padding: 13px 14px;
        font-size: 15px;
    }
}

/*------ end ------*/

/*------ 課前提問 / 評價投稿表單 ------*/
.post-form {
    margin-top: 30px;
    padding: 25px;
    background: #fafafa;
    border: 1px solid #eee;
    border-radius: 6px;
}

.post-form-title {
    color: #2d2d2d;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 15px;
}

.post-form .form-control {
    height: auto;
    padding: 10px 12px;
}

.post-form textarea.form-control {
    resize: vertical;
}

.post-form .g-recaptcha {
    transform-origin: 0 0; /*窄欄放不下 304px 的預設寬度，縮放由下面的 media query 接手*/
}

.post-form-note {
    color: #888;
    font-size: 14px;
    margin: 10px 0 0;
}

@media (max-width: 480px) {
    .post-form {
        padding: 18px 15px;
    }

    .post-form .g-recaptcha {
        transform: scale(0.85);
    }
}

/*------ end ------*/

/*------ 課前問答 / 最新評價：留言板式清單 ------*/
.qa-board {
    margin-top: 35px;
}

.qa-post {
    padding: 22px 0;
    border-top: 1px solid #d5d5d5;
}

.qa-post:first-child {
    border-top: 0;
}

.post-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

/*頭像是姓名前兩字上色，沒有上傳圖這回事*/
.post-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 50%;
    background: #ec6d25;
    color: #fff;
    font-size: 13px;
    line-height: 1;
}

.post-avatar-owner {
    background: #2d2d2d;
}

.post-name {
    color: #2d2d2d;
    font-weight: 700;
}

.post-time {
    color: #aaa;
    font-size: 12px;
}

.post-star {
    margin-left: auto;
}

.post-star span {
    color: #ddd;
    font-size: 15px;
}

.post-star span.on {
    color: #ffb400;
}

.post-body {
    color: #555;
    font-size: 14px;
    line-height: 1.9;
    white-space: pre-line; /*留言是純文字，換行要留著*/
    word-break: break-word;
    margin-top: 10px;
    padding-left: 44px;
}

.post-body img {
    max-width: 100%;
    height: auto;
}

/*官方回覆縮排並加底色，跟提問區分開*/
.qa-reply {
    margin: 15px 0 0 44px;
    padding: 15px;
    background: #f7f7f7;
    border-radius: 6px;
}

.qa-reply .post-avatar {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    font-size: 12px;
}

.qa-reply .post-body {
    padding-left: 40px;
    margin-top: 8px;
}

/*留言表單*/
.qa-asker-input {
    max-width: 260px;
    margin-bottom: 10px;
}

.qa-textarea {
    resize: vertical;
}

.qa-form-foot {
    text-align: right;
    margin: 6px 0 12px;
}

.qa-count {
    color: #aaa;
    font-size: 12px;
}

.qa-form-btn {
    text-align: right;
    margin-top: 12px;
}

@media (max-width: 767px) {
    .post-body,
    .qa-reply .post-body {
        padding-left: 0;
    }

    .qa-reply {
        margin-left: 0;
    }

    .post-star {
        margin-left: 0;
        width: 100%;
    }
}

/*------ end ------*/

/*------ 最新評價：統計 + 灰底卡片 ------*/
.review-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 25px;
}

.review-score {
    color: #444;
    font-size: 60px;
    font-weight: 700;
    line-height: 1;
}

.review-summary .post-star {
    margin-left: 0;
}

.review-summary .post-star span {
    font-size: 20px;
}

.review-count {
    color: #888;
    margin-left: 8px;
}

/*參考站每則評價是獨立灰底圓角卡，彼此用間距分開，不用分隔線*/
.review-board {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.review-card {
    padding: 18px;
    background: #f5f5f5;
    border-radius: 8px;
}

.review-card .post-body {
    margin-top: 8px;
}

/*------ end ------*/

/*------ 字級對齊參考站 ------*/
/*參考站送出鈕是 1rem，站上 .btn-cont 沿用 bootstrap 的 14px，只在投稿表單內改*/
.post-form .btn-cont,
.qa-form-btn .btn-cont {
    font-size: 16px;
}

@media (max-width: 767px) {
    .course-main .pdt-title {
        font-size: 20px; /*參考站 h1 手機是 text-xl*/
    }
}

/*------ end ------*/
