.flex_normal {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap
}

.flex_center, .menubar .pc_menu ul {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-align: center;
    -moz-flex-align: center;
    -webkit-box-align: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    align-items: center;
    justify-content: center
}

.translate_center {
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    position: absolute
}

.transition {
    transition: all .3s cubic-bezier(.68, -.55, .265, 1.55);
    -webkit-transition: all .3s cubic-bezier(.68, -.55, .265, 1.55);
    -moz-transition: all .3s cubic-bezier(.68, -.55, .265, 1.55)
}

.shadow_01 {
    -webkit-box-shadow: 0 10px 6px -6px #777;
    box-shadow: 0 10px 6px -6px #777
}

.shadow_02 {
    position: relative
}

.shadow_02:after, .shadow_02:before {
    z-index: 0;
    position: absolute;
    content: "";
    bottom: 15px;
    left: 10px;
    width: 50%;
    top: 80%;
    max-width: 300px;
    background: #777;
    -webkit-box-shadow: 0 15px 10px #777;
    box-shadow: 0 15px 10px #777;
    -webkit-transform: rotate(-3deg);
    transform: rotate(-3deg)
}

.shadow_02:after {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
    right: 10px;
    left: auto
}

.black_bg {
    color: #fff;
    background-attachment: fixed
}

.black_bg h2 {
    color: #fff
}

.black_bg a {
    color: #fc0
}

.fb_share img {
    margin-top: -5px;
    margin-right: 3px
}

.background-cover {
    background-size: cover;
    background-position: center center
}

body, html {
    height: auto;
    width: 100%;
    font-family: "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif;
    font-weight: 400;
    font-size: 16.5px;
    line-height: 1.8;
    background: #000;
    color: #ffffff;
    position: relative;
    padding: 0;
    margin: 0;
    overflow-x: hidden;
    letter-spacing: 2px;
    font-synthesis: none;
    position: relative;
}

body.modal-open, html.modal-open {
    overflow: hidden;
    padding-right: 0 !important
}

@media screen and (max-width:768px) {
    body, html {
        font-size: 14px
    }
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    background: 0 0;
    cursor: pointer
}

::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, .2);
    border-radius: 10px;
    border-color: transparent;
    border-style: solid;
    border-width: calc(10px/3);
    background-clip: padding-box
}

::-webkit-scrollbar-thumb:active {
    background-color: rgba(0, 0, 0, .5)
}

::-webkit-scrollbar-thumb:active, ::-webkit-scrollbar-thumb:hover {
    border-width: 1px;
    background-color: rgba(0, 0, 0, .5);
    cursor: pointer
}

a {
    color: #00b0ac;
    text-decoration: none;
    position: relative;
    -webkit-transition: all .3s;
    transition: all .3s
}

a:active, a:focus, a:hover, a:hover:active {
    outline: 0;
    text-decoration: none;
    color: #009ce5
}

p, li{
    font-size: 17px;
    font-weight: 300;
    word-wrap:break-word;
}

@media screen and (max-width:660px) {
    p, li {
        font-size: 17px;
        font-weight: 300;
    }
}

button {
    -webkit-transition: all .3s;
    transition: all .3s
}

button:active, button:focus, button:hover, button:hover:active {
    outline: 0;
    text-decoration: none
}

h2, h3, h4, h5, h6 {
    text-align: justify;
    color: #fff;
}

h1 {
    font-family: "Noto Serif TC";
    font-style: normal;
    font-weight: 700;
    font-size: 60px;
    line-height: 70px;
    color: #3e3a39;
}

@media screen and (max-width:680px) {
    h1 {
    }
}

h2 {
    font-size: 2em
}

@media screen and (max-width:680px) {
    h2 {
        font-size: 1.5em
    }
}

h3 {
    font-size: 1.5em;
    font-weight: 500;
    font-family: "Noto Serif TC";
}

::-webkit-selection {
    background: #262626;
    color: #ededed
}

::-moz-selection {
    background: #262626;
    color: #ededed
}

::selection {
    background: #262626;
    color: #ededed
}

hr {
    border-top: 1px solid #ededed
}

li, ul {
    list-style: none;
    margin-left: 0;
    padding: 0;
    margin: 0
}

img {
    max-width: 100%;
    height: auto;
    display: inline-block;
    vertical-align: middle
}

.mask {
    width: 100%;
    height: 100%;
    background-color: #000;
    background-image: -webkit-radial-gradient(center center, closest-side ellipse, rgba(255, 255, 255, .1) 20%, rgba(0, 0, 0, .8) 100%);
    position: absolute;
    top: 0;
    left: 0;
    opacity: .8
}

.container {
    max-width: 1250px;
    padding: 0 15px;
}

@media screen and (max-width:820px) {
    .container {
        max-width: 100%;
        padding: 0 40px;
    }
}
@media screen and (max-width:440px) {
    .container {
        padding: 0 20px;
    }
}
section {
    position: relative;
    width: 100%;
    padding: 4em 0;
    overflow: hidden;
    background-color: #d48f16;
}

@media screen and (max-width:1024px) {
    section {
        min-height: auto
    }
}

@media screen and (max-width:768px) {
    section {
        padding: 3em 0
    }

    section.form {
        /* padding-bottom: 5rem; */
    }
}

section .title {
    position: relative;
    margin-bottom: 3rem;
    margin: auto;
	
}

@media screen and (max-width:768px) {
    section .title {
        margin-bottom: 2rem;
        padding: 0
    }
}

section .title h2 {
    margin-bottom: 1.5em;
    font-family: "Noto Serif TC";
    font-style: normal;
    font-weight: 700;
    font-size: 48px;
    line-height: 45px;
    font-feature-settings: 'pnum' on, 'lnum' on;
    color: #000000;
    text-align: center;
}
@media screen and (max-width:820px) {
    section .title h2{
        margin-bottom: 0.8em;
    }
}
@media screen and (max-width:660px) {
    section .title h2{
        margin-bottom: 0.8em;
        font-size: 32px;
        line-height: 48px;
    }
}
section .title h2 span {
    font-family:'Cormorant Garamond', serif;
    font-style: italic;
    font-weight: 300;
    font-size: 22px;
    line-height: 20px;
    color: #e6c490;
    position: relative;
}
section .title h2 span::before, section .title h2 span::after {
    content:"";
    position: absolute;
    top: 13px;
    width: 40px;
    height: 1px;
    background-color: #e6c490;
}
section .title h2 span::before{
    left: -50px;
}
section .title h2 span::after{
   right: -50px;
}

@media screen and (max-width:660px) {
    section .title h2 span{
        font-size: 15px;
    }
    section .title h2 span::before, section .title h2 span::after {
        width: 100%;
    }
    section .title h2 span::before {
        left: 0;
        top: -10px;
    }
    section .title h2 span::after {
        right: 0;
        bottom: -10px;
        top: inherit;
    }
}

section .title h2 img {
    width: 160px
}

@media screen and (max-width:680px) {
    section .title h2 img {
        width: 120px
    }
}

section .title2 h2 {
    text-align: center;
    line-height: 1.8
}

@media screen and (max-width:768px) {
    section .title2 h2 br {
        display: none
    }
}

section .intro {
    font-size: 1rem
}

@media screen and (max-width:768px) {
    section .intro {
        font-size: .8rem
    }
}

@media screen and (max-width:768px) {
    section .intro br {
        display: none
    }
}

.desktop {
    display: block
}

@media screen and (max-width:680px) {
    .desktop {
        display: none
    }
}

.mobile {
    display: none
}

@media screen and (max-width:680px) {
    .mobile {
        display: block
    }
}

.container, footer, header, section {
    position: relative;
}

.highlight {
    color: gold;
    font-weight: 700
}

.btn {
    font-family: "Noto Sans TC";
    font-size: 1em;
    color: #fff;
    padding: 5px 25px;
    text-align: center;
    border: 1px #fff solid;
    border-radius: 0px;
    -webkit-transition: .5s;
    transition: .5s;
    font-weight: 400;
    width: 176px;
    height: 53px;
    line-height: 40px;
}

.btn:active, .btn:focus, .btn:hover, .btn:hover:active {
    background: #9b6b17;
    color: #ffffff;
    border: 1px rgba(255, 255, 255, 0) solid;
}

:active, :focus, :hover, :hover:active {
    outline: 0;
    -webkit-box-shadow: none !important;
    box-shadow: none !important
}

.menubar {
    width: 100%;
    position: fixed;
    z-index: 9;
    top: 0
}

.menubar .bg {
    background: #e8e8e8;
    width: 100%;
    height: 0;
    position: absolute;
    top: 0;
    -webkit-transition: .3s all;
    transition: .3s all
}

.menubar .bg_show {
    height: 70px;
}

.menubar .menurel {
    max-width: 1250px;
    position: relative;
    display: block;
    margin: 0 auto;
    padding: 0 30px 0 15px;
}

.menubar .logos {
    position: absolute
}

@media screen and (max-width:1200px) {
    .menubar .logos {
        margin-top: 14px;
    }
}
@media screen and (max-width:660px) {
    .menubar .logos {
        left: 20px;
    }
}
.menubar .logos a {
    display: inline-block
}

.menubar .logos a img {
    height: 36px;
}

.menubar .hamburger {
    position: absolute;
    display: block;
    top: 0;
    right: 0
}

.menubar .hamburger .hamburger-box {
    right: -5px;
    height: 35px;
}

.menubar .hamburger .hamburger-inner {
    background: 0 0;
    height: 2px;
    width: 30px;
    background-color: #000000;
}

.menubar .hamburger .hamburger-inner:after, .menubar .hamburger .hamburger-inner:before {
    background-color: #000000;
    height: 2px;
    width: 30px
}

.menubar .hamburger .hamburger-inner:before {
    margin-top: -1px
}

.menubar .hamburger .hamburger-inner:after {
    margin-top: -2px
}

.menubar .hamburger.is-active .hamburger-inner:after, .menubar .hamburger.is-active .hamburger-inner:before {
    background-color: #fff;
}
.menubar .hamburger.is-active .hamburger-inner:before{
    margin-top: 0px;
}
.menubar .hamburger.is-active .hamburger-inner:after {
    margin-top: 0px;
}

@media screen and (max-width:1200px) {
    .menubar .pc_menu {
        display: none
    }
}

.menubar .pc_menu .navbar {
    display: inherit;
    margin-top: 15px
}
.navbar .btn{
    width: auto;
    height: auto;
    line-height: inherit;
    background: #000;
    padding: 6px 34px;
}
.menubar .pc_menu ul {
    float: right
}

.menubar .pc_menu ul li {
    top: -12px;
    margin-right: 1em;
    position: relative
}

.menubar .pc_menu ul li:last-child {
    margin-right: 0
}

.menubar .pc_menu ul li a:not(.btn) {
    color: #000000;
}

.menubar .pc_menu ul li a:not(.btn):hover {
    color: #21a1c8;
}

.menubar .pc_menu ul li a:not(.btn).active {
    color: #21a1c8;
}

.menubar .pc_menu ul li a:not(.btn).active:after {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: bottom left;
    transform-origin: bottom left
}

.menubar .mb_menu {
    position: fixed;
    background: #000;
    top: 0;
    left: 0;
    width: 100vw;
    height: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-transition: opacity .3s, visibility .3s, height .3s;
    transition: opacity .3s, visibility .3s, height .3s;
    display: none
}
.hamburger--collapse.is-active .hamburger-inner:after{
    opacity: 1;
}
.menubar .mb_menu.visible {
    visibility: visible;
    height: 100%
}

.menubar .mb_menu.visible li {
    display: block;
    -webkit-animation: bounceIn .3s ease forwards;
    animation: bounceIn .3s ease forwards
}

.menubar .mb_menu.visible li:nth-of-type(1) {
    -webkit-animation-delay: .23s;
    animation-delay: .23s
}

.menubar .mb_menu.visible li:nth-of-type(2) {
    -webkit-animation-delay: .26s;
    animation-delay: .26s
}

.menubar .mb_menu.visible li:nth-of-type(3) {
    -webkit-animation-delay: .29s;
    animation-delay: .29s
}

.menubar .mb_menu.visible li:nth-of-type(4) {
    -webkit-animation-delay: .32s;
    animation-delay: .32s
}

.menubar .mb_menu.visible li:nth-of-type(5) {
    -webkit-animation-delay: .35s;
    animation-delay: .35s
}

.menubar .mb_menu.visible li:nth-of-type(6) {
    -webkit-animation-delay: .36s;
    animation-delay: .36s
}

@media screen and (max-width:1200px) {
    .menubar .mb_menu {
        display: block
    }
}

.menubar .mb_menu nav {
    font-size: 2em;
    text-align: center;
    padding: 2em 20px
}

.menubar .mb_menu nav ul {
    list-style: none;
    padding: 0;
    margin: 0
}

.menubar .mb_menu nav ul .nav-link {
    padding: 0
}

.menubar .mb_menu nav ul li {
    opacity: 0;
    margin: .3em 0;
    position: relative;
    display: none
}

.menubar .mb_menu nav ul li:after, .menubar .mb_menu nav ul li:before {
    content: "";
    display: block;
    position: absolute;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #ededed;
    -webkit-transition: all .3s;
    transition: all .3s
}

.menubar .mb_menu nav ul li:after {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    background: rgb(169 127 64);
}

.menubar .mb_menu nav ul li:hover:before {
    width: 0
}

.menubar .mb_menu nav ul li:hover:after {
    width: 100%
}

.menubar .mb_menu nav ul li a {
    color: #ededed;
    font-family: "Noto Sans TC";
    padding: 10px 0;
    display: block;
    text-decoration: none;
    font-size: 20px;
    letter-spacing: 5px
}

.menubar .mb_menu nav ul li a:hover {
    opacity: 1;
    color: rgb(169 127 64);
    letter-spacing: 15px;
}

@-webkit-keyframes fadeInBottom {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, 0, -25%);
        transform: translate3d(0, 0, -25%)
    }

    100% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

@keyframes fadeInBottom {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, 0, -25%);
        transform: translate3d(0, 0, -25%)
    }

    100% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

.buy__now {
    position: fixed;
    right: 1em;
    bottom: 1em;
    z-index: 1
}

.buy__now .btn {
    border: 3px solid gold;
    background: #fff;
    color: #262626
}

.tabs .nav-tabs {
    border-bottom: 1px solid #009ce5
}

.tabs .nav-tabs .nav-link {
    color: #009ce5;
    border-radius: 0;
    border: 1px solid #009ce5
}

.tabs .nav-tabs .nav-link.active {
    background-color: #009ce5;
    color: #fff
}

.tabs .nav-tabs .nav-item {
    border-radius: 0;
    background: #fff;
    font-size: 1.2rem
}

.tabs .nav-tabs .nav-item.active, .tabs .nav-tabs .nav-item.show {
    background: #009ce5;
    color: #fff
}

.tabs .tab-content {
    width: 100%;
    padding: 30px;
    background: #000
}

@media screen and (max-width:768px) {
    .tabs .tab-content {
        padding: 2rem 0
    }
}

.main__header {
    width: 100%;
    min-height: 100%;
    background: #177e9c;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 0;
}

@media screen and (max-width:1024px) {
    .main__header {
        min-height: auto
    }
}

.main__header .container {
    width: 100%;
    max-width: 1250px;
    margin: 0 auto;
}

@media screen and (max-width:991px) {
    .main__header .container {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start
    }
}

.main__header .container .main__intro {
    position: relative;
    max-width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    margin-top: 7rem;
    margin-bottom: 5rem;
    margin-bottom: 11rem;
    z-index: 2;
}

@media screen and (max-width:1200px) {
    .main__header .container .main__intro {
        font-size: .7rem
    }
}
@media screen and (max-width:820px) {
    .main__header .container .main__intro {
        margin-bottom: 0;
        margin-top: 6rem;
        padding: 20px 20px 0;
    }
}
@media screen and (max-width:768px) {
    .main__header .container .main__intro {
        margin-top: 5rem;
    }
}
@media screen and (max-width:660px) {
    .main__header .container .main__intro {
        flex-wrap: wrap;
        margin-bottom: 0;
        margin-top: 135px;
        padding: 0;
    }
}
@media screen and (max-width:440px) {
    .main__header .container .main__intro {
        flex-wrap: wrap;
        margin-bottom: 0;
        margin-top: 75px;
        padding: 0;
    }
}
.main__header .container .main__intro .txt {
    color: #000000;
    font-weight: lighter;
    line-height: 18px;
    overflow: hidden;
}
@media screen and (max-width:660px) {
    .main__header .container .main__intro .mb_only.txt {
        margin-top: 20px;
        margin-bottom: 120px;
    }
}
@media screen and (max-width:440px) {
    .main__header .container .main__intro .mb_only.txt {
        margin-top: 20px;
        margin-bottom: 60px;
    }
}
.main__header .container .main__intro .txt--2{
    position: absolute;
    top: calc(50% - 93px);
    right: 0;
}
.main__header .container .main__intro .txt--2 p{
    text-align: right;
}
@media screen and (max-width: 660px) {
    .main__header .container .main__intro .txt h1 {
        font-size: 40px;
        line-height: 50px;
    }
}

.main__header .container .main__intro .txt .h1_subtt{
    font-family: "Noto Serif TC";
    font-weight: 600;
    text-align: left;
    font-size: 36px;
    line-height: 40px;
    color: #3e3a39;
    margin-bottom: 5px;
}

@media screen and (max-width: 660px) {
    .main__header .container .main__intro .txt .h1_subtt{
        font-size: 20px;
        line-height: 25px;
    }
}
.main__header .container .main__intro .txt h3 {
    font-family: "Noto Serif TC";
    font-style: normal;
    font-weight: 700;
    font-size: 26px;
    text-align: left;
    letter-spacing: 0.1em;
    color: #9fa0a0;
    display: inline-block;
    margin-bottom: 20px;
}
@media screen and (max-width: 820px){
    .main__header .container .main__intro .txt h3 {
        margin-bottom: 10px;
    }
}

.main__header .container .main__intro .txt .words{
    font-family: "Noto Serif TC";
}
.main__header .container .main__intro .txt p {
    font-size: 17px;
    margin-bottom: 15px;
    color: #3e3a39;
    font-weight: 500;
    line-height: 1.3rem;
    letter-spacing: 1px;
}

.main__header .container .main__intro .txt strong {
    font-size: 17px;
    color: #3e3a39;
    line-height: 1.3rem;
    letter-spacing: 1px;
}

.main__header .container .main__intro .txt .date{
    font-family: "Noto Serif TC";
    font-size: 22px;
    color: #1ca0c5;
    font-weight: 700;
    line-height: 2.5rem;
}
@media screen and (max-width: 440px){
    .main__header .container .main__intro .txt .date{
        font-size: 18px;
    }
}
.main__header .container .main__intro .txt .date span{
    font-size: 35px;
}

@media screen and (max-width: 820px){
    .main__header .container .main__intro .txt p{
        font-size: 14px;
        line-height: 18px;
        letter-spacing: 0;
        margin-bottom: 8px;
    }
}

.main__header .container .main__intro .txt p.master-name{
    font-size: 26px;
    line-height: 25px;
    color:#b1646e;
    margin-bottom: 1rem;
}
@media screen and (max-width:820px){
    .main__header .container .main__intro .txt p.master-name{
        font-size: 20px;
        line-height: 18px;
        margin-top: 1rem;
        margin-bottom: 0.8rem;
    }
}
.main__header .container .main__intro .txt p.master-name span{
    font-size: 15px;
}
@media screen and (max-width:820px){
    .main__header .container .main__intro .txt p.master-name span{
        font-size: 13px;
    }
}
.main__header .container .main__intro .info p{
    color: #3e3a39;
    line-height: 1.6rem;
    font-weight: 400;
}
@media screen and (max-width: 820px) {
    .main__header .container .main__intro .info p{
        font-size: 13px;
        line-height: 1.4rem;
    }
}
@media screen and (max-width: 660px) {
    .main__header .container .main__intro .info .pcpc_p{
        display: none;
    }
}
@media screen and (max-width:1024px) {
    .main__header {
        min-height: auto
    }
}

.main__header .speaker {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 0;
}

/* 通用樣式 */
.speaker-img {
    width: 100%;
    height:auto;
    display: none; /* 預設隱藏所有圖片 */
}

/* 桌面版顯示 */
@media (min-width: 1025px) {
    .desktop {
        display: block; /* 顯示桌面版圖片 */
    }
}

/* 平板小版顯示 */
@media (min-width: 768px) and (max-width: 1024px) {
    .mobile_s {
        display: block; /* 顯示平板版圖片 */
    }
}

/* 手機版顯示 */
@media (max-width: 767px) {
    .mobile {
        display: block; /* 顯示手機版圖片 */
    }
}



@media screen and (max-width:992px) {
    .main__header .speaker .img-fluid{
        max-width: 153%;
        margin: 0 0 0 -90px;
    }
}


.main__header .copyright {
    font-size: .5em;
    position: absolute;
    right: -120px;
    bottom: 25px;
    letter-spacing: 0
}

@media screen and (max-width:1200px) {
    .main__header .copyright {
        right: 10px;
        -webkit-transform: scale(.7);
        transform: scale(.7)
    }
}

.main__header .logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: left;
    -ms-flex-align: left;
    align-items: left;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 70px 0 35px;
}

@media (max-width: 768px) {
    .logo-container {
        display: flex;
        flex-direction: column; /* 垂直排列 LOGO */
    }

    .logo-container img {
        max-width: 40px; /* LOGO 的統一寬度 */
        width: 100%;
        height: auto; /* 保持 LOGO 的比例 */
    }

    .mb_only .words,
    .mb_only .logo-container {
        margin-left: 0; /* 確保 LOGO 和標題的文本都是從左側開始，沒有偏移 */
    }
}



@media screen and (max-width:1025px) {
    .main__header .logo {
        margin: 30px 0 35px;
    }
}
@media screen and (max-width:680px) {
    .main__header .logo {
        width: 200px;
        margin-top: 50px;
        margin-bottom: 90px;
    }
}
@media screen and (max-width:390px) {
    .main__header .logo {
        margin-top: 0px;
        margin-bottom: 60px;
    }
}
.main__header .logo img {
    height: 30px;
    margin-right: 10px
}

@media screen and (max-width:768px) {
    .main__header .logo img {
        height: 21px;
        margin: 5px 8px 5px 0;
    }
}
.main__header .logo span {
    width: 100%;
    margin-top: 7px;
    font-size: 14px;
}
@media screen and (max-width:768px) {
    .main__header .logo span {
        margin-top: 5px;
    }
}


.main__header .btn {
    margin-top: 1rem;
    background: gold;
    color: #fff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, .15)
}

@media screen and (max-width:480px) {
    .main__header .btn {
        font-size: x-small;
        margin-top: 10px
    }
}

.main__header strong {
    font-size: .92rem
}

.main__header .sub__intro {
    font-weight: lighter
}

.master {
    background-color: #b55050;
    color: #ffffff;
    position: relative;
    overflow: hidden
}

.master .title h2:before {
    display: none
}

.master__intro {
    position: relative
}

.master__list {
    max-width: 690px;
    /* margin: -7.5rem 0 2rem; 有影片後打開 */
    margin: 2rem 0 2rem;
}
@media screen and (max-width:660px) {
    .master__list{
        margin: 1rem 0;
    }
}
.master__list li {
    margin-bottom: 1rem;
    position: relative;
    margin-left: 0px;
    text-align: justify;
    letter-spacing: 0.5px;
}
@media screen and (max-width:585px) {
    .master__list li{
        letter-spacing: 0px;
    }
}
.master__list li.name{
    font-size: 20px;
    line-height: 34px;
}
.master__list li{
    font-size: 17px;
    line-height: 32px;
}

.master__img {
    width: 310px;
    margin: 0 auto;
    position: relative;
    text-align: center
}

@media screen and (max-width:768px) {
    .master__img img {
        width: 240px;
    }
}

@media screen and (max-width:480px) {
    .master__img {
        width: 100%;
        text-align: center;
        margin-bottom: 1em;
    }
}

@media screen and (max-width:350px) {
    .master__img {
        width: 180px
    }
}

.master__img .name__ch, .master__img .name__en {
    position: absolute;
    top: 100px
}

@media screen and (max-width:768px) {
    .master__img .name__ch, .master__img .name__en {
        top: 50px
    }
}

@media screen and (max-width:500px) {
    .master__img .name__ch, .master__img .name__en {
        font-size: .7rem;
        letter-spacing: 0
    }
}

.master__img .name__ch h2, .master__img .name__en h2 {
    font-weight: 700
}

.master__img .name__en {
    right: -100px
}

@media screen and (max-width:767px) {
    .master__img .name__en {
        right: 0
    }
}

@media screen and (max-width:350px) {
    .master__img .name__en {
        right: -50px
    }
}

.master__img .name__ch {
    left: -100px
}

@media screen and (max-width:767px) {
    .master__img .name__ch {
        left: 0
    }
}

@media screen and (max-width:350px) {
    .master__img .name__ch {
        left: -50px
    }
}

.master__img .copyright {
    font-size: .5em;
    position: absolute;
    right: -100px;
    bottom: 100px;
    letter-spacing: 0
}

@media screen and (max-width:500px) {
    .master__img .copyright {
        -webkit-transform: scale(.8);
        transform: scale(.8);
        letter-spacing: 0;
        top: 73px;
        right: 16px;
        bottom: auto
    }
}

@media screen and (max-width:350px) {
    .master__img .copyright {
        right: -30px
    }
}

.book {
    overflow: visible
}

@media screen and (max-width:768px) {
    .book {
        overflow: hidden
    }
}

.book:before {
    content: '';
    background: url(../images/book__arrow.png);
    width: 600px;
    height: 800px;
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    bottom: -350px;
    left: -50px
}

@media screen and (max-width:768px) {
    .book:before {
        bottom: -100px;
        width: 300px;
        height: 300px
    }
}

.book .title h2:after, .book .title h2:before {
    background: #262626
}

.book .title .arrow .arrow::after, .book .title .arrow::after {
    border-color: #262626
}

.book .title .arrow .arrow.is-triangle::after, .book .title .arrow.is-triangle::after {
    border-color: transparent;
    border-bottom-color: #262626
}

.book .title .arrow .arrow::before, .book .title .arrow::before {
    background-color: #262626
}

.book__cover {
    width: 270px;
    margin: 0 auto;
    position: relative;
    text-align: center;
}

@media screen and (max-width:768px) {
    .book__cover img {
        max-width: 100%;
        height: auto;
    }
}
@media screen and (max-width:660px) {
    .book__cover img {
        max-width: 210px;
    }
}
.book__cover a{
    display: inline-block;
    margin-bottom: 3rem;
}
.book__cover .btn {
    font-size: 17px;
}

.book__list {
    margin-bottom: 1rem
}

@media screen and (max-width:768px) {
    .book__list {
        margin-top: 1rem
    }
}

.book__list li {
    text-indent: -20px;
    padding-left: 27px;
    margin-top: .5rem
}

.book__list li .arrow {
    display: inline-block;
    height: 10px;
    position: relative;
    width: 10px
}

.book__list li .arrow::after {
    border-bottom-style: solid;
    border-bottom-width: 2px;
    border-right-style: solid;
    border-right-width: 2px;
    content: '';
    display: inline-block;
    height: 10px;
    left: 0;
    position: absolute;
    top: 0;
    width: 10px
}

.book__list li .arrow.is-triangle::after {
    border-style: solid;
    border-width: 0 0 10px 10px;
    height: 0;
    width: 0
}

.book__list li .arrow.is-check::after {
    width: 5px
}

.book__list li .arrow.arrow-bar::before {
    bottom: 1px;
    content: '';
    height: 20px;
    position: absolute;
    right: 0;
    -webkit-transform-origin: bottom;
    transform-origin: bottom;
    width: 2px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.book__list li .arrow.is-top {
    -webkit-transform: rotate(225deg);
    transform: rotate(225deg)
}

.book__list li .arrow.is-right {
    -webkit-transform: rotate(315deg);
    transform: rotate(315deg)
}

.book__list li .arrow.is-bottom {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

.book__list li .arrow.is-left {
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg)
}

.book__list li .arrow .arrow::after, .book__list li .arrow::after {
    border-color: gold
}

.book__list li .arrow .arrow.is-triangle::after, .book__list li .arrow.is-triangle::after {
    border-color: transparent;
    border-bottom-color: gold
}

.book__list li .arrow .arrow::before, .book__list li .arrow::before {
    background-color: gold
}

.book__list li .arrow.is-right {
    position: relative;
    top: auto;
    margin-right: 10px
}

@media screen and (max-width:768px) {
    .book .col-md-4, .book .col-md-8 {
        padding: 0
    }
}
.about{
    background-color: #167e9c;
}
.about .title p {
    font-size: 22px;
    font-weight: 400;
    text-align: center;
}

.about .title p.intro {
    font-size: 18px;
}

.about .title p.intro strong {
    display: inline;
    margin-bottom: 0;
}

.about .title p.trailer {
    font-size: 22px;
}

@media screen and (max-width:660px) {
    .about .title p{
        font-size: 20px;
    }

    .about .title p.intro {
        text-align: left;
        font-size: 16px;
    }

    .about .title p.intro strong {
        display: block;
        margin-bottom: 20px;
    }

    .about .title p.trailer {
        text-align: center;
        font-size: 20px;
    }
}

.about .about__list{
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
    margin: auto;
    padding: 0 15px;
}
@media screen and (max-width:660px) {
    .about .about__list{
        flex: 1;
        max-width: 100%;
        margin: 1em 0;
        margin-left: 0;
        padding: initial;
        
    }
}
.about .title h2{
    margin-bottom: 30px;
}
.about .about__list p{
    margin-bottom:25px;
    font-size: 17px;
    line-height: 32px;
}
.about .about__list p:nth-child(2){
    margin-bottom: 45px;
}
.about .title .arrow .arrow::after, .about .title .arrow::after {
    border-color: #262626
}

.about .title .arrow .arrow.is-triangle::after, .about .title .arrow.is-triangle::after {
    border-color: transparent;
    border-bottom-color: #262626
}

.about .title .arrow .arrow::before, .about .title .arrow::before {
    background-color: #262626
}

.about .title h2:before {
    background: #262626
}

.about .title h2:after {
    display: none
}

.about .agenda .title2 {
    margin-bottom: 1.2rem;
    /* display: flex;
    justify-content: flex-start;
    align-items: flex-start; */
}
@media screen and (max-width:660px){
    .about .agenda .title2{
        display: block;
    } 
}
.about .agenda .title2 h3 {
    font-weight: 500;
    font-size: 22px;
    margin-bottom: 20px;
    width: 100%;
}

.about .agenda .title2 p {
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
    margin: -3.6rem 0 2rem;
    margin-left: calc(100% - 58.3333%);
    padding: 0 13px;
    font-size: 17px;
}

@media screen and (max-width:768px) {
    .about .agenda .title2 p {
        margin: 0 auto;
        margin-left: inherit;
        padding: 0;
        width: 100%;
        max-width: 100%;
    }
}

.about .agenda .title2 img {
    width: 300px
}

@media screen and (max-width:768px) {
    .about .agenda .title2 img {
        width: 100%
    }
}
@media screen and (max-width:660px) {
    .about .agenda .container{
        padding: 0;
    }
}

.agenda__list{
    width: 100%;
    height: auto;
    background-color: #1791b4;
    margin-bottom: 10px;
}
.agenda__content p{
    font-size: 14px;
}

.about .agenda__list li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 10px;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 10px 10px;
}

@media screen and (max-width:660px) {
    .about .agenda__list li {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        padding: 20px;
        margin-bottom: 0;
    }
}

.about .agenda__list li:nth-child(even){
    background-color:#0e7c9c;
}

.about .agenda__list li .time {
    margin-right: 10px;
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    line-height: 23px;
    letter-spacing: 0.1em;
    margin-top: 10px;
    padding: 0px 15px;
    min-width: 135px;
}
@media screen and (max-width:660px) {
    .about .agenda__list li .time{
        padding: 0;
        margin: 0;
    }
}
.about .agenda__list li .item{
    font-size: 22px;
    line-height: 42px;
}
@media screen and (max-width:660px) {
    .about .agenda__list li .item{
        width: 100%;
        font-size: 20px;
        line-height: 35px;
    }
}
.about .agenda__list li .name{
    font-size: 17px;
    line-height: 32px;
    margin-top: 10px;
}
@media screen and (max-width:660px) {
    .about .agenda__list li .name{
        font-size: 15px;
        line-height: 25px;
        margin-top: 0;
    }
}
.agenda__speaker .col-8{
    margin: 0 auto 20px;
}
.agenda__speaker .col-8 img{
    margin-bottom: 10px;
}
.agenda__speaker .col-8 h5{
    font-weight: 500;
    font-size: 20px;
    line-height: 20px;
    color: #FAFCFF;
}
.agenda__speaker .col-8 p{
    font-size: 17px;
    line-height: 23px;
    color: #FAFCFF;
}
.about .agenda .container{
    display: flex;
    justify-content: space-between;
    align-items: start;
    flex-wrap: wrap;
}
.about .agenda .container .agenda__content, .about .agenda .container .agenda__speaker{
width: 48%;
}
@media screen and (max-width:820px) {
    .about .agenda .container .agenda__content, .about .agenda .container .agenda__speaker{
        width: 100%;
    }
    .about .agenda .container .agenda__content{
        margin-bottom: 40px;
    }
}
.relate {
    background-color: #2F2F2F;
}

.relate .arrow_block {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%)
}

.relate .arrow_block>div {
    position: relative;
    max-width: 1600px;
    margin: auto;
    width: 100%;
    height: 100%
}

.relate .arrow_block>div:after, .relate .arrow_block>div:before {
    content: '';
    position: absolute;
    width: 200px;
    height: 100%
}

@media screen and (max-width:768px) {
    .relate .arrow_block>div:after, .relate .arrow_block>div:before {
        display: none
    }
}

.relate .arrow_block>div:before {
    content: '';
    background-image: url(../images/relate__arrow__l.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    left: 0
}

.relate .arrow_block>div:after {
    content: '';
    background-image: url(../images/relate__arrow__r.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    right: 0
}

.relate .title:before {
    display: none
}

.relate .title:after {
    background: #009ce5
}

.relate .title h2 {
}

.relate .title h2:before {
    display: none;
}
.relate .btn_seemore{
    text-align: center;
    margin: 50px auto;
}
.relate .btn_seemore a{
    background-color: black;
    font-size: 17px;
}
#seemore--1, #seemore--2{
    height: 0;
    overflow: hidden;
}
.faq .card-block,
.relate .card-block {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 20px
}

@media screen and (max-width:768px) {
    .faq .card-block,
    .relate .card-block {
        -ms-grid-columns: (1fr)[1];
        grid-template-columns: repeat(1, 1fr)
    }
}
.faq .card-block a,
.relate .card-block a {
    color: #fff
}
.faq .card-block a:hover,
.relate .card-block a:hover {
    color: gold
}
.faq .card-block .card,
.relate .card-block .card {
    color: #fff;
    border-radius: 15px;
    overflow: hidden;
    padding: 30px;
    min-height: 350px;
    position: relative;
    border: 0
}

@media screen and (max-width:768px) {
    .faq .card-block .card,
    .relate .card-block .card {
        min-height: 300px
    }
}

.faq .card-block .card:after,
.relate .card-block .card:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(rgba(0, 0, 0, 0), #000);
    bottom: 0;
    left: 0;
    z-index: 0;
    -webkit-transition: .3s all;
    transition: .3s all
}

.faq .card-block .card:hover:after,
.relate .card-block .card:hover:after {
    -webkit-transition: .3s all;
    transition: .3s all;
    opacity: .8
}

.faq .card-block .card__img,
.relate .card-block .card__img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%)
}

.faq .card-block .card__img img,
.relate .card-block .card__img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.faq .card-block .card__intro,
.relate .card-block .card__intro {
    position: relative;
    z-index: 1;
    margin-top: 100px;
}

@media screen and (max-width:768px) {
    .faq .card-block .card__intro,
    .relate .card-block .card__intro {
      margin-top: 20px;
    }
}


.faq .card-block .card__intro h3,
.relate .card-block .card__intro h3 {
    margin-top: .5em;
    color: #fff;
    font-size: 1.1rem;
    line-height: 1.5
}
@media screen and (max-width:768px) {
    .faq .card-block .card__intro h3,
    .relate .card-block .card__intro h3 {
        font-size: 17px;
    }
}
.faq .card-block .card__btn,
.relate .card-block .card__btn {
    background: #fff;
    color: #262626;
    position: relative;
    z-index: 1;
    width: auto;
    height: auto;
    font-weight: 500;
    letter-spacing: 1px;
    padding: 4px 25px;
    font-size: 15px;
}

.faq .card-block .card__btn:hover,
.relate .card-block .card__btn:hover {
    background: #000000;
    color: #ffffff;
}

.relate .swiper-container {
    display: none
}

.join{ background-color: #d48f16;}

section.join .title h2{    
    margin-bottom: 30px;
}

@media screen and (max-width:820px) {
    section.join .title h2{    
        margin-bottom: 1.5rem;
    }
}
.join p{
    font-family:" Noto Sans TC";
    font-size: 16px;
    line-height: 34px;
    font-weight: 400;
    text-align: center;
}

.join .title p.intro {
    font-size: 18px;
    font-weight: 400;
    font-family: "Noto Serif TC", serif;
    text-align: center;
    margin-bottom: 30px;
}
@media screen and (max-width:660px) {

    .join .title p.intro {
        text-align: left;
        font-size: 16px;
        margin-bottom: 1.5rem;
    }
}
.join .title .arrow .arrow::after, .join .title .arrow::after {
    border-color: #262626
}

.join .title .arrow .arrow.is-triangle::after, .join .title .arrow.is-triangle::after {
    border-color: transparent;
    border-bottom-color: #262626
}

.join .title .arrow .arrow::before, .join .title .arrow::before {
    background-color: #262626
}


.join .tab-content {
    padding: 20px
}

.join iframe {
    border: 1px solid #009ce5;
    height: 380px
}

@media screen and (max-width:768px) {
    .join iframe {
        height: 200px
    }
}

.join__list li {
    margin-top: .5rem;
    font-size: 17px;
line-height: 32px;  
    color: #E6E6E6;
    padding-left: 20px;
    position: relative;
}
@media screen and (max-width:440px) {
    .join__list li {
        font-size: 16px;
        letter-spacing: 1px;
    }
}
@media screen and (max-width:376px) {
    .join__list li {
        font-size: 15px;
        letter-spacing: 0px;
    }
}
.join__list li .arrow {
    position: absolute;
    left: 0;
    top: 10px;
    display: block;
    width: 15px;
    height: 15px;
    background: url(../../images/2022/check.png) top center no-repeat;
    background-size: contain;
}


.join__list li .time:after {
    content: '|';
    padding: 0 5px
}

.join .plan .col-lg-4:not(:last-child) {
    margin-bottom: 20px
}
.join .plan{
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
}
@media screen and (max-width:992px) {
    .join .plan{
        margin: 2rem 0;
    }
}
.join .plan__item {
    background: linear-gradient(310deg, #921313 36%, #c54545 77%, #921313 98%);
    overflow: hidden;
    padding: 40px 40px;
    margin: 0 0 30px;
    width: 48%;
    border-radius: 15px;
}
@media screen and (max-width:660px) {
    .join .plan__item {
        width: 100%;
    }
}

.join .plan__item--2{
    background: linear-gradient(310deg, #056876 36%, #5798ab 77%,  #056876 98%);
    width: 325px;
    margin: 0 auto;
}

.join .plan__item__title h3 {
    font-size: 22px;
    line-height: 32px;
    color: #e6c490;
}
@media screen and (max-width:660px) {
    .join .plan__item__title h3 {
        font-size: 20px;
    }
}
.join .plan__item__title span {
    font-family: 'Cormorant Garamond', serif;
    font-size: 54px;
    line-height: 32px;
    color: #e6c490;
    font-weight: bold;
}

.join .plan__item__title div {
    font-family: "Noto Serif TC";
    font-weight: 500;
    font-size: 26px;
    line-height: 42px;
    color: #e6c490;
}

.join .plan__item__list {
    margin: 20px 0 0;
}

.join .plan__item .prize {
    position: relative;
    text-align: center;
}
@media screen and (max-width:660px) {
    .join .plan__item .prize {
        position: relative;
        margin: 40px auto 20px;
        text-align: center;
    }
}
.join .plan__item .prize .twd{
    font-family: 'Cormorant Garamond', serif;
    font-size: 30px;
    line-height: 88px;
    color: #FFFFFF;
    text-align: center;
    font-weight: 400;
}
@media screen and (max-width:660px) {
    .join .plan__item .prize .twd{
        line-height: initial;
        text-align: center;
    }
}
.join .plan__item .prize strong {
    font-size: 48px;
    font-weight: 400;
}

.join .plan__item .prize .date {
    text-align: center;
    font-size: 17px;
    line-height: 1rem;
    margin-bottom: 0.8rem;
}
@media screen and (max-width:660px) {
    .join .plan__item .prize .date{
        line-height: initial;
        text-align: center;
    }
}
.join .plan__item .prize .btn {
    background-color: black;
    font-size: 17px;
}

.join .plan__item:nth-of-type(3) .prize {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

.join .plan__item.disable {
    background: linear-gradient(270deg, #46403A 12.2%, #9A8A82 49.43%, #46403A 81.2%);
    position: relative;
}
@media screen and (max-width:660px){
    .join .plan__item.disable {
        background: linear-gradient(360deg, #46403A 17.48%, #9A8A82 49.84%, #46403A 77.47%);
    }
}
.join .plan__item .btn.disable ,.join .plan__item .btn.disable:hover {
    background: #CCCCCC;
    cursor: default;
}

.historical .title p{
    text-align: center;
    /* padding: 0 18% 30px; */
    padding: 0 18%;
    margin-bottom: 0;
}
@media screen and (max-width:820px){
    .historical .title p{
        padding: 20px;
    }
}
@media screen and (max-width:768px){
    .historical .title p{
        padding: 0px;
        text-align: left;
    }
}

.historical .title h2{
    margin-bottom: 30px;
}

.historical .title .arrow .arrow::after, .historical .title .arrow::after {
    border-color: #fff
}

.historical .title .arrow .arrow.is-triangle::after, .historical .title .arrow.is-triangle::after {
    border-color: transparent;
    border-bottom-color: #fff
}

.historical .title .arrow .arrow::before, .historical .title .arrow::before {
    background-color: #fff
}

.historical .title h2:before {
    background: #fff
}

.historical .title h2:after {
    display: none
}

.card-blocks {
    width: 100%;
}

.card-blocks .card {
    background-color: #808080;
    border: none;
    border-radius: 0px;
}
.card-body{
    padding: 0 1.25rem 2rem;
}
@media screen and (max-width:660px) {
    .card-blocks .card {
        padding: 20px 0 0;
    }
}
.card-blocks .card .card-img{
    padding: 1.25rem;
}
@media screen and (max-width:660px){
    .card-blocks .card .card-img{
        padding: 1rem 1.25rem;
    }    
}

.card-blocks .card .card-img img {
    display: block;
    width: 150px;
    height: auto;
}
@media screen and (max-width:660px){
    .card-blocks .card .card-img img {
        width: 120px;
    }
}
.card-blocks .card .card-img .author {
    margin-left: 30px;
}

.card-blocks .card .card-img .author .year {
    font-family:'Cormorant Garamond', serif;
    font-size: 26px;
    line-height: 32px;
    color: #e6c490;
    margin-bottom: 20px;
    font-weight: 400;
    letter-spacing: 0;
}
@media screen and (max-width:660px){
    .card-blocks .card .card-img .author .year {
        font-size: 20px;
        margin-bottom: 0;
    }
}

.card-blocks .card .card-img .author .name .chi {
    font-family: "Noto Serif TC";
    font-weight: 400;
    font-size: 22px;
    line-height: 42px;
}
@media screen and (max-width:660px){
    .card-blocks .card .card-img .author .name .chi {
        font-size: 20px;
        line-height: 32px;
    }
}
.card-blocks .card .card-img .author .name .eng {
    font-family:'Cormorant Garamond', serif;
    font-style: normal;
    font-weight: normal;
    font-size: 15px;
    line-height: 25px;
    color: #E6E6E6;
}

@media (min-width:768px) {
    .card-blocks .card {
        width: calc((100% - 15px)/ 2);
        margin:auto;
    }

    .card-blocks .card:nth-child(2n) {
        margin-left: 15px
    }
}

.card-body p{
    font-size: 15px;
    margin-bottom: 0;
}

footer {
    padding: 1em 0;
    background: #000;
    color: #B3B3B3;
    font-size: .7em;
    letter-spacing: 1px;
    text-align: center
}

.title__line {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin-bottom: 1.5em
}

.effect-underline:after {
    content: '';
    position: absolute;
    left: 0;
    display: inline-block;
    height: 1em;
    width: 100%;
    border-bottom: 1px solid;
    margin-top: 10px;
    opacity: 0;
    -webkit-transition: opacity .35s, -webkit-transform .35s;
    transition: opacity .35s, -webkit-transform .35s;
    transition: opacity .35s, transform .35s;
    transition: opacity .35s, transform .35s, -webkit-transform .35s;
    -webkit-transform: scale(0, 1);
    transform: scale(0, 1)
}

.effect-underline:hover:after {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1)
}

.effect-underline2 {
    position: relative;
    display: inline-block;
    color: #e6c490;
}

.effect-box:after, .effect-box:before {
    content: '';
    position: absolute;
    left: 0;
    display: inline-block;
    height: 1em;
    width: 100%;
    margin-top: 10px;
    opacity: 0;
    -webkit-transition: opacity .35s, -webkit-transform .35s;
    transition: opacity .35s, -webkit-transform .35s;
    transition: opacity .35s, transform .35s;
    transition: opacity .35s, transform .35s, -webkit-transform .35s
}

.effect-box:before {
    border-left: 1px solid;
    border-right: 1px solid;
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0)
}

.effect-box:after {
    border-bottom: 1px solid;
    border-top: 1px solid;
    -webkit-transform: scale(0, 1);
    transform: scale(0, 1)
}

.effect-box:hover:after, .effect-box:hover:before {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1)
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet::before, [class^=swiper-button-] {
    -webkit-transition: all .3s ease;
    transition: all .3s ease
}

*, :after, :before {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

.swiper-container {
    width: 100%;
    height: 28vw;
    -webkit-transition: opacity .6s ease;
    transition: opacity .6s ease
}

.swiper-container.swiper-container-coverflow {
    padding-top: 2%
}

.swiper-container.loading {
    opacity: 0;
    visibility: hidden
}

.swiper-container:hover .swiper-button-next, .swiper-container:hover .swiper-button-prev {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
    visibility: visible
}

.swiper-slide {
    background-position: center;
    background-size: cover
}

.swiper-slide .entity-img {
    display: none
}

.swiper-slide .content {
    position: absolute;
    top: 40%;
    left: 0;
    width: 50%;
    padding-left: 5%;
    color: #fff
}

.swiper-slide .content .title {
    font-size: 2.6em;
    font-weight: 700;
    margin-bottom: 30px
}

.swiper-slide .content .caption {
    display: block;
    font-size: 13px;
    line-height: 1.4
}

[class^=swiper-button-] {
    width: 44px;
    opacity: 0;
    visibility: hidden
}

.swiper-button-prev {
    -webkit-transform: translateX(50px);
    transform: translateX(50px)
}

.swiper-button-next {
    -webkit-transform: translateX(-50px);
    transform: translateX(-50px)
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 9px;
    position: relative;
    width: 12px;
    height: 12px;
    background-color: #fff;
    opacity: .4
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 18px;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    border: 0 solid #fff;
    border-radius: 50%
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active, .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet:hover {
    opacity: 1
}

.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active::before {
    border-width: 1px
}

@media (max-width:1180px) {
    .swiper-slide .content .title {
        font-size: 25px
    }

    .swiper-slide .content .caption {
        font-size: 12px
    }
}

@media (max-width:1023px) {
    .swiper-container {
        height: 40vw
    }

    .swiper-container.swiper-container-coverflow {
        padding-top: 0
    }
}

#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    z-index: 100;
    /* display: -webkit-box;
    display: -ms-flexbox;
    display: flex; */
    display: none;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.gooey_bg{
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #000;
    -webkit-animation: fade 8s 0s 1 both;
    animation: fade 8s 0s 1 both;
}
.gooey {
    position: absolute;
    top: calc(50% - 120px);
    left: calc(50% - 25%);
    width: 50%;
    height: auto;
    text-align: center;
}
@media (max-width:1023px) {
    .gooey {
        left: calc(50% - 40%);
        width: 80%;
    }
}
.gooey p{
    transition: 4s;
    line-height: 2.5rem;
}
@media (max-width:440px) {
    .gooey p{
    font-size: 15px;
    letter-spacing: 1px;
    line-height: 2rem;
    }
}
@keyframes fade {
    0%{
        -webkit-opacity: 0;
        opacity: 0;
    }
    50% {
        -webkit-opacity: 1;
       opacity: 1;
    }
    90%{
        -webkit-opacity: 0;
        opacity: 0;
    }
    100%{
        -webkit-opacity: 0;
        opacity: 0;
    }
}

body::-webkit-scrollbar {
    display: none;
    -ms-overflow-style: none;
}
.faq-q{
    background: #d48f16;
    padding: 10px;}
.faq-a{font-size: 16px!important;}
.faq-a>a{color:#e6c490;}
.ani_kv_h1{
    animation: fade_h1 4s 1 1s both;
}
@keyframes fade_h1{
    0%{
        opacity: 0;
    }
    100%{
        opacity: 1;
    }
}

.bottom_btn{
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    padding: 20px;
    z-index: 10;
    background-color: #eea21c;
    text-align: center;
}

.bottom_btn span {
    display: block;
    text-align: left;
    padding: 0 10px;
}

.bottom_btn a{
    width: 100%;
    text-align: center;
    border: none;
    text-decoration: underline;
    font-size: 21px;
}
@media (max-width:820px) {
    .bottom_btn{ 
        display: block;
    }
}
@media (max-width:660px) {
    .bottom_btn{ 
        padding: 0px;
    }
}


/* 將這個樣式添加到你的 main.css 文件中 */
.content-center {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 10px 0; /* 調整間距 */
}

.title h2 {
    text-align: center;
}

.narrow-text {
    max-width: 800px; /* 限制最大寬度 */
    margin: 0 auto; /* 置中 */
    text-align: left; /* 文字靠左對齊 */
}

.large-image {
    width: 80%; /* 調整圖片寬度 */
    max-width: 700px; /* 設置圖片最大寬度 */
    height: auto; /* 確保圖片按比例縮放 */
}

  @media (max-width: 600px) {
    div {
      flex-direction: column;
    }
  }


#countdownTimer {
	text-align: center;
	padding: 10px;
	border-radius: 5px;
	box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.overview .title p{
    text-align: center;
    /* padding: 0 18% 30px; */
    padding: 0 18%;
    margin-bottom: 0;
}

@media screen and (max-width:820px){
    .overview .title p{
        padding: 20px;
    }
}

@media screen and (max-width:768px){
    .overview .title p{
        padding: 0px;
        text-align: left;
    }
}

.overview .title h2{
    margin-bottom: 30px;
}

.overview .title .arrow .arrow::after, .overview .title .arrow::after {
    border-color: #41b9af
}

.overview .title .arrow .arrow.is-triangle::after, .overview .title .arrow.is-triangle::after {
    border-color: transparent;
    border-bottom-color: #41b9af
}

.overview .title .arrow .arrow::before, .overview .title .arrow::before {
    background-color: #41b9af
}

.overview .title h2:before {
    background: #41b9af
}

.overview .title h2:after {
    display: none
}


.green-block {
            background-color: #31A8A1;
            color: white;
}

.white-block {
            background-color: white;
            color: black;
}

/* Slick 輪播區塊 */
	/* 一般樣式設定，適用於大部分裝置 */
	.carousel-wrapper {
		max-width: 800px; /* 限制輪播區塊的最大寬度，以免在大螢幕上過於寬 */
		width: 100%; /* 使輪播區塊充滿父容器 */
		margin: 0 auto; /* 水平居中 */
		padding: 0;
		position: relative; /* 為載入中的訊息提供絕對定位的基礎 */
	}
	
	/* 載入中的訊息樣式 */
    .loading-message {
        position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		font-size: 1.5em;
		color: #31A8A1;
		text-align: center;
		display: flex;
		align-items: center;
		justify-content: center;
		background: rgba(255, 255, 255, 0.8); /* 半透明的背景色，讓用戶知道還在載入 */
		padding: 20px;
		border-radius: 10px;
		z-index: 1; /* 確保載入中的訊息位於最上層 */
    }

	/* 平板樣式（1024px 及以下） */
	@media (max-width: 1024px) {
		.carousel-wrapper {
			max-width: 600px; /* 調整平板上的最大寬度 */
			padding: 0 10px; /* 在較小螢幕上稍微增加內邊距 */
		}
	}

	/* 手機樣式（600px 及以下） */
	@media (max-width: 600px) {
		.carousel-wrapper {
			max-width: 350px; /* 在手機上讓輪播區塊占滿整個螢幕寬度 */
			padding: 0 5px; /* 縮小內邊距，避免圖片過於擁擠 */
		}
	}

	/* 每張輪播圖片 */
	.carousel-slide img {
		width: 100%;
		height: auto;
		object-fit: cover; /* 確保圖片能等比例填滿容器 */
		border-radius: 10px; /* 圓角選擇性設置，如果需要去掉，設置為 0 */
		display: block; /* 確保圖片是區塊級元素，以避免任何潛在的間距問題 */
		opacity: 1; /* 預設圖片不可見，直到 Slick 完成初始化 */
		transition: opacity 0.5s ease-in; /* 為圖片增加淡入效果 */
	}
	
	/* 手機和平板設備的輪播調整 */
	@media (max-width: 1024px) {
		.carousel-slide img {
			width: 100%; /* 在所有小於 1024px 的裝置上，保持圖片寬度為 100% */
			height: auto; /* 確保高度自動調整 */
			object-fit: cover; /* 等比例填滿整個寬度 */
		}

		.carousel-wrapper {
			padding: 0 10px; /* 減少內邊距以適應較小的螢幕 */
		}
	}

	@media (max-width: 768px) {
		.carousel-slide img {
			height: auto; /* 確保圖片根據寬度等比例縮放 */
			object-fit: contain; /* 在小螢幕上等比例顯示圖片 */
		}
	}

	/* 更改 Slick dots 的顏色和樣式 */
	.slick-dots li button:before {
		color: #31A8A1; /* 設定點點的顏色為綠色 */
		font-size: 12px; /* 調整點點的大小 */
	}

	.slick-dots li.slick-active button:before {
		color: white; /* 設定當前活動點點的顏色為白色 */
	}

	/* 如果你想改變點的間距或對其位置進行調整 */
	.slick-dots {
		bottom: 10px; /* 調整導航點與輪播圖片底部的距離 */
	}
	
	

.card {
    border: 1px solid #dddddd;
    width: 350px;
    height: 500px;
    padding: 4px;
    background-color: #ffffff;
    font-family: "Microsoft JhengHei", Arial, sans-serif;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
}

.card-title {
    font-size: 20px;
    font-weight: bold;
    color: white;
    margin-bottom: 10px;
    padding-left: 10px;
}

.image-container {
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.image-container img {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.card-text {
    font-size: 16px;
    line-height: 1.5;
    text-align: left;
    flex-grow: 1;
    margin-top: 10px;
    margin-bottom: 10px;
    color: black;
    padding: 0px 16px;
}

.card-button {
    margin-top: auto;
}

.card-button a {
    text-decoration: none;
    display: block;
    width: 100%;
}

.card-button button {
    color: white;
    border: none;
    padding: 10px 0;
    font-size: 16px;
    cursor: pointer;
    border-radius: 4px;
    width: 100%;
    box-sizing: border-box;
    transition: background-color 0.3s; /* 添加過渡效果，讓變色更加平滑 */
}

/* 書籍按鈕 hover 效果 */
.book-button {
    background-color: #41b9af;
}

.book-button:hover {
    background-color: #36a098; /* 懸停時的顏色 */
}

/* 線上課程按鈕 hover 效果 */
.course-button {
    background-color: black;
}

.course-button:hover {
    background-color: #333333; /* 懸停時的顏色 */
}

/* 共學社群按鈕 hover 效果 */
.community-button {
    background-color: #11b32f;
}

.community-button:hover {
    background-color: #11b32f; /* 懸停時的顏色 */
}
/* 新增的響應式樣式 */
@media screen and (max-width: 1024px) {
  .master__list {
    margin: 1rem 0;
  }
}

@media screen and (max-width: 768px) {
  .card-blocks .card, .faq .card-block .card, .relate .card-block .card {
    padding: 20px;
    min-height: auto;
  }
}

@media screen and (max-width: 660px) {
  .master__list p, .master__list li {
    font-size: 16px;
    line-height: 1.5;
  }
  .join .plan__item {
    padding: 20px;
  }
  .join__list li {
    font-size: 15px;
  }
}

@media screen and (max-width: 480px) {
  .join .plan__item {
    padding: 15px;
  }
  .join__list li {
    font-size: 14px;
    line-height: 1.4;
  }
}
@media all and (max-width: 660px) {
  .ani_kv_h3 {
    width: 100%;
  }
  .ani_kv_h1 {
    width: 100%;
  }
  .menubar .pc_menu {
    display: none;
  }
  .menubar .mb_menu {
    display: block;
  }
  .menubar .logos {
    left: 20px;
    top: 15px;
  }
  .menubar .hamburger {
    right: 20px;
    top: 15px;
  }
  .main__header .container .main__intro {
    margin-top: 60px;
  }
  .bottom_btn {
    display: block;
  }
  .relate .card-block {
    grid-template-columns: 1fr;
  }
}
.pc_only {
  display: block;
}
@media all and (max-width: 821px) {
  .pc_only {
    display: none;
  }
}

.mb_only {
  display: none;
}
@media all and (max-width: 821px) {
  .mb_only {
    display: block;
  }
}

.mb_only_m {
  display: none;
}
@media all and (max-width: 660px) {
  .mb_only_m {
    display: block;
  }
}

.pad_only {
  display: block;
}
@media all and (max-width: 660px) {
  .pad_only {
    display: none;
  }
}

.ani_kv_h3 {
  position: relative;
  overflow: hidden;
  width: 250px;
}
@media all and (max-width: 660px) {
  .ani_kv_h3 {
    width: 60%;
  }
}
.ani_otc {
  -webkit-animation: otc 10s 4.3s ease forwards;
          animation: otc 10s 4.3s ease forwards;
  opacity: 0;
}

@-webkit-keyframes otc {
  0% {
    opacity: 0;
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(1);
            filter: blur(1);
  }
}

@keyframes otc {
  0% {
    opacity: 0;
    -webkit-filter: blur(0);
            filter: blur(0);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(1);
            filter: blur(1);
  }
}
.h1_subtt--ani {
  position: relative;
  overflow: hidden;
  -webkit-animation: ltr 1s 3.4s ease-in-out forwards;
          animation: ltr 1s 3.4s ease-in-out forwards;
  -webkit-transform: translateX(-110%);
          transform: translateX(-110%);
}
.h1_subtt--ani::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  z-index: 1;
  -webkit-animation: ttb 0.2s 4.2s ease forwards;
          animation: ttb 0.2s 4.2s ease forwards;
}

.ani_kv_h1 {
  position: relative;
  overflow: hidden;
  margin-bottom: 40px;
  width: 350px;
}
@media all and (max-width: 1025px) {
  .ani_kv_h1 {
    margin-bottom: 20px;
  }
}
@media all and (max-width: 660px) {
  .ani_kv_h1 {
    width: 80%;
    margin-bottom: 80px;
  }
}
@media all and (max-width: 440px) {
  .ani_kv_h1 {
    margin-bottom: 30px;
  }
}

.speaker-img {
  -webkit-transition: 0.8s;
  transition: 0.8s;
}

.filter-blur {
  -webkit-transition: 0.8s;
  transition: 0.8s;
  -webkit-filter: blur(10px);
          filter: blur(10px);
}

.atc {
  margin: 30px auto;
  position: relative;
}
@media all and (max-width: 660px) {
  .atc {
    margin: 0px auto;
  }
}
.atc h5 {
  font-size: 17px;
  line-height: 32px;
  font-weight: 300;
  margin-top: 10px;
  letter-spacing: 0;
}
.atc h5 span {
  font-size: 15px;
  color: #7F6000;
}
.atc a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.atc img {
  max-width: 100%;
  width: 100%;
  margin: auto;
}

.center .slick-slide {
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}
.center .slick-slide img {
  width: 100%;
  max-width: 300px;
  margin: 10px auto;
}
.center .slick-center {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 0.4s;
  transition: 0.4s;
  cursor: pointer;
}
.center .slick-center:hover {
  background-color: rgb(188, 124, 11);
}
.center .author {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-weight: 300;
  color: #e6c490;
  font-size: 26px;
  line-height: 32px;
  margin-bottom: 20px;
  letter-spacing: 0;
  text-align: center;
}
.center .author .year {
  display: none;
  margin-bottom: 5px;
  font-size: 26px;
}
.center .author .chi {
  font-family: "Noto Serif TC";
  font-weight: 500;
  font-size: 22px;
  margin-bottom: 5px;
  color: #E6E6E6;
}
.center .author .eng {
  display: none;
  font-size: 22px;
  line-height: 25px;
}

.slick-prev {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
  left: 0px;
  z-index: 5;
}

.slick-next {
  right: 0px;
  z-index: 5;
}

.slick-prev:before {
  content: "➤";
}

.slick-next:before {
  content: "➤";
}

.slick-list {
  position: relative;
}

@media all and (max-width: 660px) {
  .slick-list::before, .slick-list::after {
    content: "";
    width: 50px;
    height: 100%;
    position: absolute;
    top: 0;
    z-index: 1;
  }
}

@media all and (max-width: 660px) {
  .slick-list::before {
    left: -1px;
    background: -webkit-gradient(linear, left top, right top, from(rgb(23, 126, 156)), to(rgba(23, 126, 156, 0)));
    background: linear-gradient(to right, rgb(23, 126, 156) 0%, rgba(23, 126, 156, 0) 100%);
  }
}

@media all and (max-width: 660px) {
  .slick-list::after {
    right: -1px;
    background: -webkit-gradient(linear, left top, right top, from(rgba(23, 126, 156, 0)), to(rgb(23, 126, 156)));
    background: linear-gradient(to right, rgba(23, 126, 156, 0) 0%, rgb(23, 126, 156) 100%);
  }
}

.popup {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  background-color: rgba(51, 51, 51, 0.95);
}
.popup .close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  color: #fff;
  text-shadow: none;
  opacity: 1;
  font-size: 35px;
  font-weight: 400;
}
.popup .popup-content {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

/* ===== RWD Overrides Appended ===== */
/* =====================================================
   RWD Overrides (main_rwd.css)
   說明：此檔只做「自適應優化」，不更動原有內容與結構。
   使用方式：請在原本的 main.css 之後再引入本檔，避免覆蓋舊設定。
   例：<link rel="stylesheet" href="assets/css/main.css">
       <link rel="stylesheet" href="assets/css/main_rwd.css">
   ===================================================== */

/* 1) Header Logo 與文案在手機的排版優化 */
@media (max-width: 768px) {
  .logo-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }
  .logo-container img {
    max-width: 60px;
    width: 100%;
    height: auto;
  }
  .mb_only .words,
  .mb_only .logo-container {
    margin-left: 0;
  }
}

/* 2) Hero 圖片在平板高度與裁切 */
@media (min-width: 768px) and (max-width: 1024px) {
  .speaker-img {
    max-height: 80vh;
    width: 100%;
    height: auto;
    object-fit: cover;
  }
}

/* 3) Section padding 與標題/段落在小螢幕的可讀性 */
@media (max-width: 480px) {
  section {
    padding: 2em 0;
  }
  section .title h2 {
    font-size: 28px;
    line-height: 36px;
  }
  section .title p {
    font-size: 15px;
    line-height: 22px;
  }
}

/* 4) overview 區塊卡片在小螢幕改為直式堆疊 */
@media (max-width: 768px) {
  .image-row {
    flex-direction: column;
    align-items: center;
  }
  .image-row .card {
    max-width: 90%;
  }
}

/* 5) 全站段落與清單在小螢幕的字級統一與行高優化 */
@media (max-width: 660px) {
  p,
  li {
    font-size: 15px;
    line-height: 1.6;
  }
}

/* 6) 補強：主視覺文案區塊在極小螢幕的間距（避免擠壓） */
@media (max-width: 390px) {
  .main__header .container .main__intro {
    padding: 0 16px;
  }
  .main__header .logo {
    margin-top: 8px;
    margin-bottom: 40px;
  }
}

/* 7) 補強：平板寬度時，圖片容易超寬的情形（保底） */
@media (max-width: 992px) {
  .main__header .speaker .img-fluid {
    max-width: 100%;
    margin: 0;
  }
}


/* === Hotfix: overview cards mobile stacking & full-width === */
@media (max-width: 768px) {
  /* Override inline display:flex from HTML with !important */
  .overview .image-row {
    display: block !important;
    width: 100%;
    max-width: 100%;
  }
  .overview .image-row .card {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    margin: 0 auto 16px auto; /* spacing between cards */
  }
  .overview .image-row .card:last-child {
    margin-bottom: 0;
  }
  /* Ensure inner image scales nicely */
  .overview .image-row .card .image-container img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
  }
  /* Buttons centered on mobile */
  .overview .image-row .card .card-button {
    display: flex;
    justify-content: center;
  }
}


/* === Hotfix v2: fix card bottom overflow/cut-off on mobile === */
@media (max-width: 768px) {
  .overview .image-row {
    display: block !important;
    width: 100%;
    max-width: 100%;
  }
  .overview .image-row .card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;         /* remove any fixed heights */
    min-height: 0 !important;
    box-sizing: border-box;
    margin: 0 0 16px 0;
    overflow: hidden;                 /* avoid children spilling out */
  }
  .overview .image-row .card * {
    min-width: 0;                     /* prevent flex children overflow */
  }
  .overview .image-row .card .image-container {
    width: 100%;
  }
  .overview .image-row .card .image-container img {
    display: block;
    width: 100%;
    height: auto !important;
    object-fit: cover;
  }
  .overview .image-row .card .card-text {
    flex: 1 1 auto;
    margin: 12px 0;
  }
  .overview .image-row .card .card-button {
    margin-top: auto;
    padding-top: 12px;
    display: flex;
    justify-content: center;
  }
}


/* === Style Sync for Overview Cards (match visual reference) === */
.overview .image-row .card {
  background: #ffffff;
  border-radius: 10px;
  padding: 16px;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Title bar spans edge-to-edge within card */
.overview .image-row .card .card-title {
  color: #ffffff;
  font-weight: 700;
  padding: 8px 12px !important;
  border-radius: 6px;
  margin: -16px -16px 12px -16px; /* stretch to card edges */
  line-height: 1.4;
}

/* Image centered with safe max size */
.overview .image-row .card .image-container {
  text-align: center;
  padding: 8px 0 4px;
}
.overview .image-row .card .image-container img {
  display: inline-block;
  max-width: 260px;
  width: 100%;
  height: auto;
}

/* Body text spacing */
.overview .image-row .card .card-text {
  color: #222;
  margin: 8px 0 16px;
  line-height: 1.8;
  letter-spacing: 0.5px;
}

/* Button full-width & centered */
.overview .image-row .card .card-button {
  display: flex;
  justify-content: center;
}
.overview .image-row .card .card-button > a,
.overview .image-row .card .card-button > a > button {
  width: 100%;
  max-width: 260px;
}
.overview .image-row .card .card-button > a > button {
  border-radius: 6px;
  padding: 12px 0;
  font-size: 16px;
}

/* Mobile: card occupies full width with consistent spacing */
@media (max-width: 768px) {
  .overview .image-row {
    display: block !important;
  }
  .overview .image-row .card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0;
  }
  .overview .image-row .card .image-container img {
    max-width: 220px;
  }
  .overview .image-row .card .card-button > a,
  .overview .image-row .card .card-button > a > button {
    max-width: 100%;
  }
}


/* === Hotfix v3: Ensure overview card top image is fully visible === */
.overview .image-row .card .image-container {
  overflow: visible !important;    /* do not clip image */
  max-height: none !important;     /* remove any implicit max-height */
}

.overview .image-row .card .image-container img {
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;  /* show full image without crop */
  margin: 0 auto;
  display: block;
}


/* === Hotfix v3: overview card image should display fully (no crop) === */
.overview .image-row .card .image-container {
  padding-top: 12px;      /* extra spacing under the title bar */
  overflow: visible;      /* do not clip the image */
}
.overview .image-row .card .image-container img {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;  /* show full image */
  display: block;
  margin: 0 auto;
}


/* === Hotfix v4: Force proportional scaling for overview card images === */
.overview .image-row .card .image-container {
  text-align: center;
  padding: 12px 0;
}
.overview .image-row .card .image-container img {
  max-width: 100% !important;
  height: auto !important;
  object-fit: scale-down !important;  /* ensure whole image fits inside box */
  display: inline-block;
}
@media (max-width: 768px) {
  .overview .image-row .card .image-container img {
    max-width: 260px !important; /* keep image readable on small screens */
  }
}


/* === Hotfix v5: prevent overview card images from breaking layout === */
.overview .image-row .card .image-container {
  text-align: center;
}
.overview .image-row .card .image-container img {
  max-width: 90% !important;   /* limit image width relative to card */
  height: auto !important;
  object-fit: contain !important;
  display: inline-block;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .overview .image-row .card .image-container img {
    max-width: 240px !important; /* fixed safe max size for mobile */
  }
}


/* === Hotfix v6: ensure overview card image keeps aspect ratio and never breaks layout === */
.overview .image-row .card .image-container {
  text-align: center;
  padding: 12px 0;
}
.overview .image-row .card .image-container img {
  width: auto !important;
  max-width: 90% !important;   /* limit width inside card */
  height: auto !important;
  max-height: 320px !important; /* keep image from being too tall */
  object-fit: contain !important;
  display: inline-block;
}
@media (max-width: 768px) {
  .overview .image-row .card .image-container img {
    max-width: 240px !important;
    max-height: 280px !important;
  }
}


/* === Hotfix v7: overview card image must fit within card height (blue box), keep aspect ratio === */
.overview .image-row .card .image-container {
  text-align: center;
  padding: 12px 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.overview .image-row .card .image-container img {
  max-width: 100% !important;
  max-height: 100% !important;  /* don't exceed container height */
  height: auto !important;
  width: auto !important;
  object-fit: contain !important;
}


/* === Typo Fix: prevent cramped line-wrap for big title in book section === */
.book .title .content-center p {
  line-height: 1.35 !important;   /* add comfortable line height */
  letter-spacing: 0 !important;    /* avoid extra horizontal spacing */
  margin: 0.2em 0 0.6em;
}
@media (max-width: 480px) {
  .book .title .content-center p {
    font-size: 26px !important;    /* scale down on very small screens */
    line-height: 1.4 !important;
  }
}


/* === Hotfix v8: unify overview card heights across row === */
.overview .image-row {
  display: flex;
  align-items: stretch; /* make all children equal height */
}
.overview .image-row .card {
  flex: 1 1 0;
  min-height: 480px; /* base height to prevent short cards */
  display: flex;
  flex-direction: column;
}
.overview .image-row .card .card-text {
  flex: 1 1 auto; /* allow text area to expand */
}
.overview .image-row .card .card-button {
  margin-top: auto; /* push button to bottom */
}


/* === Hotfix v9: responsive unified card heights === */
@media (max-width: 480px) {
  .overview .image-row .card {
    min-height: 400px;
  }
}
@media (min-width: 481px) and (max-width: 991px) {
  .overview .image-row .card {
    min-height: 460px;
  }
}
@media (min-width: 992px) {
  .overview .image-row .card {
    min-height: 520px;
  }
}


/* === Hotfix v10: fix first card misaligned (iPad Mini) === */
.overview .image-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
}
.overview .image-row .card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 500px; /* unified height */
  box-sizing: border-box;
}
.overview .image-row .card .image-container {
  flex: 0 0 auto;
}
.overview .image-row .card .card-text {
  flex: 1 1 auto;
}
.overview .image-row .card .card-button {
  flex: 0 0 auto;
  margin-top: auto;
}


/* === Hotfix v10: overview tablet layout alignment & spacing === */
@media (min-width: 740px) and (max-width: 1024px) {
  .overview .image-row {
    display: flex !important;
    align-items: stretch !important;
    justify-content: center;
    gap: 16px;                  /* unified spacing between cards */
  }
  .overview .image-row .card {
    flex: 1 1 0;
    margin: 0 !important;       /* remove bottom margin causing cyan strip */
    min-height: 500px;          /* balanced height on tablet */
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }
  .overview .image-row .card .card-text {
    flex: 1 1 auto;
  }
  .overview .image-row .card .card-button {
    margin-top: auto;           /* stick to bottom */
  }
}


/* === Final Polish: overview row matches reference mock === */
.overview .image-row {
  gap: 24px; /* consistent spacing between cards */
}
.overview .image-row .card {
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.overview .image-row .card .image-container {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 0 10px;
  min-height: 180px; /* image box height keeps cards aligned */
}
.overview .image-row .card .image-container img {
  max-width: 90%;
  max-height: 160px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.overview .image-row .card .card-text {
  flex: 1 1 auto;
}
.overview .image-row .card .card-button {
  margin-top: auto;
  display: flex;
  justify-content: center;
}
.overview .image-row .card .card-button > a > button {
  width: 200px;     /* consistent button size */
  border-radius: 8px;
  padding: 10px 0;
}

/* Tablet refinement */
@media (min-width: 740px) and (max-width: 1199px) {
  .overview .image-row .card {
    min-height: 520px;
  }
  .overview .image-row .card .image-container {
    min-height: 200px;
  }
  .overview .image-row .card .image-container img {
    max-height: 180px;
  }
}

/* Desktop refinement */
@media (min-width: 1200px) {
  .overview .image-row .card {
    min-height: 540px;
  }
  .overview .image-row .card .image-container {
    min-height: 220px;
  }
  .overview .image-row .card .image-container img {
    max-height: 200px;
  }
}


/* === Hotfix v11: Relate & FAQ card blocks fit device width === */
@media (max-width: 1024px) {
  /* 1) 容器不再左右過寬留白，靠近滿版 */
  .relate .container,
  .faq .container {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* 2) 卡片排列：單欄滿寬，間距適中 */
  .relate .card-block,
  .faq .card-block {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-gap: 16px !important;
  }

  /* 3) 卡片本體也強制吃滿寬度，避免自身寬度或外距造成縮窄 */
  .relate .card-block .card,
  .faq .card-block .card {
    width: 100% !important;
    margin: 0 !important;
  }
}


/* === Hotfix v12: Desktop - card bottom buttons fill card width === */
@media (min-width: 1024px) {
  .overview .image-row .card .card-button {
    display: flex;
    justify-content: center;
    padding: 0 8px; /* small side padding so button doesn't touch rounded edges */
  }
  .overview .image-row .card .card-button > a {
    display: block;
    width: 100% !important;
  }
  .overview .image-row .card .card-button > a > button,
  .overview .image-row .card .card-button > .btn {
    width: 100% !important;
    box-sizing: border-box;
    border-radius: 8px;
    padding: 12px 0;
  }
}

/* Override previous fixed width setting */
.overview .image-row .card .card-button > a > button {
  width: 100% !important;
}


/* === Hotfix v13: prevent cramped wrap for the big book title on small screens === */
.book .title .content-center p {
  line-height: 1.35 !important;     /* comfortable leading */
  letter-spacing: 0 !important;      /* override global 2px letter-spacing */
  white-space: normal !important;    /* allow natural wrapping */
  word-break: keep-all !important;   /* avoid awkward CJK breaks */
  margin: 0.2em 0 0.6em;
}
.book .title .content-center p b {
  display: inline-block;             /* ensure line-height applies cleanly */
  line-height: 1.35 !important;
}
@media (max-width: 480px) {
  .book .title .content-center p {
    font-size: 26px !important;      /* scale down for iPhone SE width */
    line-height: 1.45 !important;
  }
  .book .title .content-center p b {
    line-height: 1.45 !important;
  }
}


/* === Hotfix v14: TGSrecords paragraph safe wrapping & spacing === */
#TGSrecords .title .content-center {
  overflow: visible !important;      /* avoid clipping */
}
#TGSrecords .title .content-center p {
  max-width: 680px;                  /* keep line length readable */
  margin: 0.2em auto 0.8em;          /* center horizontally */
  padding: 0 8px;                    /* small side padding */
  line-height: 1.8 !important;       /* comfortable leading */
  letter-spacing: 0 !important;      /* disable global 2px spacing here */
  word-break: keep-all !important;   /* avoid awkward CJK breaks */
  overflow-wrap: break-word !important;
  white-space: normal !important;
  text-align: left;                   /* better reading for multi-line Chinese */
}
@media (max-width: 480px) {
  #TGSrecords .title .content-center p {
    font-size: 16.5px !important;
    line-height: 1.8 !important;
    max-width: 92%;
    padding: 0 6px;
  }
}


/* === Hotfix v15: iPhone wrap/spacing fix for TGSrecords paragraph === */
/* Prevent iOS Safari auto text zoom from collapsing line-height */
html, body { -webkit-text-size-adjust: 100%; }

/* Stronger override for this specific paragraph */
#TGSrecords .title .content-center {
  align-items: flex-start; /* don't vertically center multiline text */
}
#TGSrecords .title .content-center p,
#TGSrecords .title p {
  letter-spacing: 0 !important;
  line-height: 1.9 !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
  padding: 0 10px !important;      /* override global 18% padding */
  margin: 0.4em auto 0.8em !important;
  max-width: 92% !important;
  text-align: left;
  font-size: 16.5px !important;
}
@media (max-width: 480px) {
  #TGSrecords .title .content-center p,
  #TGSrecords .title p {
    font-size: 16px !important;
    line-height: 1.95 !important;
    max-width: 94% !important;
  }
}
