/*
    Structure instruction：
    # [Default Css]
        - [Root Css]: :root { ... }
        - [Structure]: html, body, main, #wrap ...
        - [HtmlTag]: h1, a, ::-webkit-scrollbar ...

    # [Plugins]
        - [Plugins Modified]: Bootstrap Modals...
        - [Plugins SelfMade]: My Modals...

    # [Public Style]
        - [Simple Css]: typesetting, color, fonts ... ( Single Css )
        - [Base Elements]: btn, select, radioBox ... ( Use frequently )
        - [Components]: user_card, avatar, badge ... ( Use when more than 2 pages, custom )

    # [Pages]
        - [Layout Pages]: header, footer
        - [Current Pages]: #login, #about

    -- Author Comebuy
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@200..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:wght@400;700&family=Montserrat:ital,wght@0,400;0,600;0,700;1,400&display=swap');

/*######### [Default Css] #########*/
    /*###### [Root Css] ######*/
        :root {
            --red: #e74356;
            --black: #2c2c2c; /* text */
            --gray-70: #707070; /* text_muted */
            --gray-99: #999999;
            --gray-c7: #c7c7c7;
            --gray-d6: #d6d6d6; /* border */
            --gray-ef: #efefef;
            --gray-f5: #f5f5f5;

            --border: #D9D9D9;

            /* --main: #B51656;
            --main-hover: rgba(181, 22, 86, 0.9);
            --main-light: #B5E2FF;
            --secondary: #EC6C00;
            --secondary-hover: #FFA237;
            --secondary-dark: #ce8c00;
            --secondary-dark-hover: #ce8c00; */

            --main: #22356C;
            --main-hover: #556FBC;
            --main-light: #556FBC;
            --main-lighter: #fff1f6;

            --secondary: #00698C;
            --secondary-hover: #009dd2;
            --secondary-dark: #003f53;
            --secondary-dark-hover: #17637c;

            --table-hover: #f0f8f7; /* color-mix(in srgb, var(--main) 6%, white); */
            --table-striped-odd: #f7f7f7;
            --table-striped-even: #f4f8f1; /* #d6e9ca */

            --ff-NotoSerif: "Noto Serif";
            --ff-NotoSerifTC: "Noto Serif TC";
            --ff-Montserrat: "Montserrat";
            --ff-FontAwesome: "Font Awesome 6 Free";

            --header-height: 62px;

            --fs-p: 18px;
            --fs-h1: 36px;
            --fs-h2: 21px;
            --fs-h6: 14px;
            --fs-btn: 16px;
        }
        @media ( max-width: 767.98px ){
            :root, ::before, ::after {
                --fs-p: 16px;
                --fs-h1: 28px;
                --fs-h2: 19px;
                --fs-h6: 14px;
                --fs-btn: 15px;
            }
        }
        @media ( max-width: 575.98px ){
            :root, ::before, ::after {
                --fs-p: 14px;
                --fs-h1: 24px;
                --fs-h2: 17px;
                --fs-h6: 13px;
                --fs-btn: 14px;
            }
        }

    /*###### [Structure] ######*/
        html { scroll-behavior: smooth; }
        body { font-family: var(--ff-NotoSerif), var(--ff-NotoSerifTC), "Arial", "Microsoft JhengHei"; font-size: var(--fs-p); color: var(--black); animation: 0.5s op1; }
        @keyframes op1 {
            from { opacity: 0.75;}
            to { opacity: 1;}
        }

        #wrap { display: flex; flex-direction: column; min-height: 100vh; min-width: 360px; max-width: 1920px; margin-left: auto; margin-right: auto; }
        main { flex-grow: 1; }


    /*###### [Default Html] ######*/
        textarea { border: solid 1px var(--gray-70); }
        a { color: inherit; text-decoration: none; }
        a:hover { color: inherit; }


/*######### [Plugins] #########*/
    /*###### [Plugins Modified] ######*/
        /*=== Bootstrap ===*/
            @media (min-width: 1600px) {
                .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl { max-width: 1540px; }
            }

            /* table */
            .table td, .table th { padding: 20px 12px; vertical-align: top; border-top: 1px solid #dee2e6; }
            .table-hover > tbody > tr:hover { color: inherit; background-color: var(--table-hover); }

            /* btn */
            .btn { display: inline-flex; align-items: center; justify-content: center; font-weight: bold; padding: 8px 15px; font-size: var(--fs-btn); border-radius: 4px; min-height: 42px;}
            .btn:focus { box-shadow: none; }

            /* badge */
            .badge { border-radius: 100vmax; font-size: 16px; padding: 6px 12px; }

            /* nav */
            .navbar-toggler { padding: 0; border-radius: 0; }
            .navbar-brand { margin-right: 1rem; padding: 0; }

            /* form */
            .form-label { font-size: 14px; font-weight: bold; }
            .form-control, .form-select { min-height: 42px; font-size: var(--fs-p); }
            .form-control:focus, .form-select:focus { box-shadow: none; }
            .form-control:disabled { background-color: #e4e4e4; color: var(--gray-70); }
            .form-control::placeholder { color: var(--gray-99) }
            .form-control[readonly] { background-color: white; }

            /* pagination */
            .pagination { margin-bottom: 0; align-items: center; font-size: 16px; gap: 8px; }
            .page-item .page-link { color: var(--main); background-color: white; border-color: var(--gray-70); display: flex; align-items: center; justify-content: center; padding: 0 4px; border-radius: 8px; min-width: 35px; height: 40px; }
            .page-item .page-link:focus { box-shadow: none; }
            .page-item .page-link.prev,
            .page-item .page-link.next { color: var(--gray-c7); border: none; background: transparent; margin-inline: -4px; }
            .page-item.disabled .page-link.prev,
            .page-item.disabled .page-link.next { filter: grayscale(1) opacity(0); }
            .page-item .page-link.prev::after { content: '\f053'; font-family: var(--ff-FontAwesome); font-size: 1.75em; font-weight: 900; display: inline; line-height: 1; transition: 0.15s all; }
            .page-item .page-link.next::after { content: '\f054'; font-family: var(--ff-FontAwesome); font-size: 1.75em; font-weight: 900; display: inline; line-height: 1; transition: 0.15s all; }
            .page-item .page-link:not(.prev, .next):hover,
            .page-item.active .page-link { color: white; background-color: var(--main); border-color: var(--main); }
            .page-item:not(.disabled) .page-link.prev:hover::after { color: var(--main); }
            .page-item:not(.disabled) .page-link.next:hover::after { color: var(--main); }

            /* modal */
            .modal-content { background-clip: border-box; border: none; border-radius: 0; }
            .modal-header { border-bottom: none; padding: 0; }
            .modal-header .close { padding: 0; border-radius: 0; min-height: unset; width: 40px; height: 40px; border: 0; background: url(../img/icon/icon-close.png) center center no-repeat; background-size: contain; }
            .modal-body { padding: 16px 16px 48px 16px; }
            @media (max-width: 575.98px) {
                .modal-header .close { width: 32px; height: 32px; }
            }
            .modal-backdrop { background-color: var(--gray-99); }
            .modal-backdrop.show { opacity: 1; }

            /* other */
            .ratio-9x5 { --bs-aspect-ratio: 55.556%; }
            .dropdown-menu { border-radius: 0; }
            .breadcrumb { padding: 0.5rem 0; margin-bottom: 0; font-size: 14px; }
            .breadcrumb-item { --bs-breadcrumb-item-active-color: var(--black); }
            /* .breadcrumb-item > a[href] { text-decoration: underline; text-decoration-color: var(--gray-99); text-underline-offset: 0.12em; } */
            /* .breadcrumb-item > span {} */
            .breadcrumb-item + .breadcrumb-item::before { --bs-breadcrumb-divider: '>'; color: var(--gray-c7); }
            @media (max-width: 991.98px) {
                .breadcrumb { display: none; }
            }


        /*=== swiper ===*/
            .swiper-button-next, .swiper-button-prev { --swiper-navigation-size: calc(24px + 1vw); width: calc( 16px + 3vw ); color: #fff; font-weight: bold; }
            .swiper-button-next:hover, .swiper-button-prev:hover { color: #eee; }
            .swiper-button-next:focus, .swiper-button-prev:focus { outline: none; }
            .swiper-button-next::after, .swiper-button-prev::after { padding: calc( 6px + 0.5vw ) calc( 10px + 0.5vw );}
            .swiper-pagination-bullet-active { --swiper-pagination-color: rgba(0,0,0,0.6); }


        /*=== bannerCarousel ===*/
            .bannerCarousel { --ratio-pc: 1920/500; --ratio-m: 1/1; position: relative; overflow: hidden; }
            .bannerCarousel .swiper-slide { aspect-ratio: var(--ratio-pc); }
            .bannerCarousel .swiper-slide > a,
            .bannerCarousel .swiper-slide > div { display: block; width: 100%; height: 100%; }
            .bannerCarousel .swiper-slide picture,
            .bannerCarousel .swiper-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
            @media (max-width: 767px) {
                .bannerCarousel .swiper-slide { aspect-ratio: var(--ratio-m); }
            }
            .bannerCarousel .swiper-button-prev,
            .bannerCarousel .swiper-button-next { --swiper-navigation-size: clamp(20px, 3vw, 44px); width: calc(var(--swiper-navigation-size) * 2); }
            .bannerCarousel .swiper-pagination { bottom: 16px; }
            .bannerCarousel .swiper-pagination-bullet { width: 10px; height: 10px; background: rgba(255,255,255,0.6); opacity: 1; transition: background 0.2s, transform 0.2s; }
            .bannerCarousel .swiper-pagination-bullet-active { background: #fff; transform: scale(1.3); }


        /*=== plyr ===*/
            .plyr--audio .plyr__controls { 
                --plyr-color-main: transparent;
                --plyr-audio-controls-background: transparent;
                --plyr-audio-control-color: white;
                /* --plyr-audio-control-background-hover: transparent; */
                --plyr-range-fill-background: white;
            }

            .plyr__volume input[type=range]{
                /* --plyr-range-fill-background: var(--secondary-dark-hover); */
            }


/*######### [Public Style] #########*/
    /*###### [Simple Css] ######*/
        /*=== color ===*/
            .c_red { color: var(--red) !important; }
            .c_main { color: var(--main) !important; }
            .c_secondary { color: var(--secondary) !important; }
            .c_secondaryDark { color: var(--secondary-dark) !important; }
            .c_gray7 { color: var(--gray-70) !important; }
            .c_gray9 { color: var(--gray-99) !important; }
            .c_grayC { color: var(--gray-c7) !important; }
            .c_black { color: var(--black) !important; }


            .c_main_hover { color: var(--main) !important; }
            .c_main_hover:hover,
            .c_main_hover:focus { color: var(--main-hover) !important; }


        /*=== background ===*/
            .bg_grayF { background-color: var(--gray-f5) !important; }
            .bg_grayE { background-color: var(--gray-ef) !important; }


        /*=== font ===*/
            .fz_h1 { font-size: var(--fs-h1); }
            .fz_h2 { font-size: var(--fs-h2); }
            .fz_h6 { font-size: var(--fs-h6); }


        /*=== typesetting ===*/
            .ch-mr-2 > *:not(:last-child) { margin-right: 0.5rem; }
            .ch-mr-3 > *:not(:last-child) { margin-right: 1rem; }
            .ch-mb-1 > *:not(:last-child) { margin-bottom: .25rem; }
            .ch-mb-2 > *:not(:last-child) { margin-bottom: 0.5rem; }
            .ch-mb-3 > *:not(:last-child) { margin-bottom: 1rem; }
            .ch-mb-4 > *:not(:last-child) { margin-bottom: 1.5rem; }
            .ch-mb-5 > *:not(:last-child) { margin-bottom: 3rem; }

            .container_540 { max-width: 540px; margin-left: auto; margin-right: auto; }
            .container_600 { max-width: 600px; margin-left: auto; margin-right: auto; }
            .container_720 { max-width: 720px; margin-left: auto; margin-right: auto; }
            .container_840 { max-width: 840px; margin-left: auto; margin-right: auto; }
            .container_980 { max-width: 980px; margin-left: auto; margin-right: auto; }
            .container_1200 { max-width: 1200px; margin-left: auto; margin-right: auto; }
            .min_w_90 { min-width: 90px; }
            .min_w_200 { min-width: 200px; }

            .size_16 { width: 16px; aspect-ratio: 1/1; }
            .size_18 { width: 18px; aspect-ratio: 1/1; }
            .size_20 { width: 20px; aspect-ratio: 1/1; }

            .article_py { padding-block: 3rem; }
            .article_pt { padding-top: 3rem; }
            .article_pb { padding-bottom: 3rem; }
            @media (max-width: 575.98px) {
                .article_py { padding-block: 1rem; }
                .article_pt { padding-top: 1rem; }
                .article_pb { padding-bottom: 1rem; }
            }



        /*=== other ===*/
            .pointer-events-none { pointer-events: none; }
            .img-rd { image-rendering: -webkit-optimize-contrast; }

            .list_marker { list-style: none; padding-left: 1em; }
            .list_marker > * { position: relative; }
            .list_marker > *::before { content: ''; position: absolute; width: 0.5em; height: 0.5em; background-color: var(--main); display: block; left: -1em; top: 0.75em; transform: translateY(-50%);  }

            .list_custom { list-style: none; }
            .list_custom li { text-indent: 0; }
            .list_custom > li { padding-left: 2rem; text-indent: -2rem; }


    /*###### [Base Elements] ######*/
        /*=== <a> href ===*/
            .alink { color: var(--main); text-decoration: underline; word-wrap: break-word; word-break: break-word; }
            .alink:hover, alink:focus { color: var(--main-hover); }
            .hrefText::before { content: attr(href); word-wrap: break-word; word-break: break-word; }


        /*=== rounded avatar ===*/
            .avatar { --w: 100px; --w-sm: var(--w); --w-md: var(--w-sm); --w-lg: var(--w-md); --w-xl: var(--w-lg); --w-xxl: var(--w-xl); }
            .avatar { width: var(--w); aspect-ratio: 1/1; border-radius: 100vmax; background: center center / cover no-repeat; overflow: hidden; }
            .avatar > img { width: 100%; height: 100%; object-fit: cover; image-rendering: -webkit-optimize-contrast; }
            @media (min-width: 576px) {
                .avatar { width: var(--w-sm); }
            }
            @media (min-width: 768px) {
                .avatar { width: var(--w-md); }
            }
            @media (min-width: 992px) {
                .avatar { width: var(--w-lg); }
            }
            @media (min-width: 1200px) {
                .avatar { width: var(--w-xl); }
            }
            @media (min-width: 1400px) {
                .avatar { width: var(--w-xxl); }
            }

            .rounded_avatar_lg { width: 160px; height: 160px; border-radius: 100vmax; background: center center / cover no-repeat; }
            .rounded_avatar_md { width: 110px; height: 110px; border-radius: 100vmax; background: center center / cover no-repeat; }
            .rounded_avatar_sm { width: 90px; height: 90px; border-radius: 100vmax; background: center center / cover no-repeat; }


        /*=== background-image set ===*/
            .bg_img { background-repeat: no-repeat; background-position: center center; background-size: cover; }
            .bg_full { height: 100%; width: 100%; }
            .bg_fixed { background-attachment: fixed; }
            .bg_top { background-position-y: top; }
            .bg_contain { background-size: contain; }


        /*=== buttons ===*/
            /* colors */
            .btn_gray { background-color: var(--gray-99); color: #fff; }
            .btn_gray:hover,
            .btn_gray:focus { background-color: var(--gray-c7); color: #fff; }

            .btn_main { background-color: var(--main); color: white; }
            .btn_main:hover,
            .btn_main:focus { background-color: var(--main-hover); color: white; }

            .btn_outline_main { background-color: white; color: var(--main); border: 1px solid var(--main); }
            .btn_outline_main:hover,
            .btn_outline_main:focus { background-color: var(--main-hover); color: white; border: 1px solid var(--main-hover); }

            .btn_secondary { background-color: var(--secondary); color: white; }
            .btn_secondary:hover,
            .btn_secondary:focus { background-color: var(--secondary-hover); color: white; }

            .btn_outline_secondary { background-color: white; color: var(--secondary); border: 1px solid var(--secondary); }
            .btn_outline_secondary:hover,
            .btn_outline_secondary:focus { background-color: white; color: var(--secondary-hover); border: 1px solid var(--secondary-hover); }

            .btn_secondaryDark { background-color: var(--secondary-dark); color: white; }
            .btn_secondaryDark:hover,
            .btn_secondaryDark:focus { background-color: var(--secondary-dark-hover); color: white; }

            /* methods */
            .btn_with_img { display: inline-flex; align-items: center; justify-content: center; column-gap: 0.2em; }

            .btn_group { display: flex; flex-wrap: wrap; gap: 0.5rem; }

            .btn_text { padding: 0; min-height: unset; }


        /*=== badge ===*/
            .badge_main { color: #fff; background: var(--main); }
            .badge_gray { color: #fff; background: var(--gray-c7); }
            .badge_success { color: #fff; background: #34C759; }


        /*=== text-more ===*/
            .text_more_2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
            .text_more_3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }


        /*=== maskIcon ===*/
            .maskIcon { --size: 18px; display: inline-block; flex-shrink: 0; width: var(--size); height: var(--size); background-color: currentColor; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }
            .maskIcon.maskIcon_moderator { -webkit-mask-image: url('../img/icon/icon-moderator.svg'); mask-image: url('../img/icon/icon-moderator.svg'); }
            .maskIcon.maskIcon_speaker { -webkit-mask-image: url('../img/icon/icon-speaker.svg'); mask-image: url('../img/icon/icon-speaker.svg'); }
            .maskIcon.maskIcon_abstract { -webkit-mask-image: url('../img/icon/icon-abstract.svg'); mask-image: url('../img/icon/icon-abstract.svg'); }
            .maskIcon.maskIcon_download { -webkit-mask-image: url('../img/icon/icon-download.svg'); mask-image: url('../img/icon/icon-download.svg'); }
            .maskIcon.maskIcon_viewDetail { -webkit-mask-image: url('../img/icon/icon-view-detail.svg'); mask-image: url('../img/icon/icon-view-detail.svg'); }
            .maskIcon.maskIcon_pen { -webkit-mask-image: url('../img/icon/icon-pen.svg'); mask-image: url('../img/icon/icon-pen.svg'); }
            .maskIcon.maskIcon_arrowRight { -webkit-mask-image: url('../img/icon/icon-arrow-right.svg'); mask-image: url('../img/icon/icon-arrow-right.svg'); }
            .maskIcon.maskIcon_payment_creditCard { -webkit-mask-image: url('../img/payment/credit-card.svg'); mask-image: url('../img/payment/credit-card.svg'); }
            .maskIcon.maskIcon_payment_atm { -webkit-mask-image: url('../img/payment/atm.svg'); mask-image: url('../img/payment/atm.svg'); }
            .maskIcon.maskIcon_payment_barcode { -webkit-mask-image: url('../img/payment/convenience-store.svg'); mask-image: url('../img/payment/convenience-store.svg'); }
            .maskIcon.maskIcon_payment_cash { -webkit-mask-image: url('../img/payment/cash.svg'); mask-image: url('../img/payment/cash.svg'); }



    /*###### [Components] ######*/
        /*=== rwd_table ===*/
            .rwd_table { color: var(--black); width: 100%; border-collapse: collapse; }
            .rwd_table > thead > tr > th { padding: 20px 12px; font-size: var(--fs-h6); vertical-align: bottom; border-bottom: 1px solid var(--gray-d6); color: var(--black); white-space: nowrap; }
            .rwd_table > tbody > tr > td { padding: 20px 12px; font-size: var(--fs-p); vertical-align: middle; border-top: 1px solid var(--gray-d6); }
            .rwd_table > thead > tr > th:first-child,
            .rwd_table > tbody > tr > td:first-child { padding: 0; }

            .rwd_table--striped > tbody > tr:nth-child(odd) { background-color: var(--table-striped-odd); }
            .rwd_table--striped > tbody > tr:nth-child(even) { background-color: var(--table-striped-even); }
            .rwd_table--striped > thead > tr > th { padding-top: 4px; padding-bottom: 4px; border-top: 1px solid var(--gray-d6); }
            .rwd_table--striped > tbody > tr > td { border-color: white; }
            .rwd_table--striped > thead > tr > th:first-child,
            .rwd_table--striped > tbody > tr > td:first-child { padding-left: 12px; }
            .rwd_table--striped > thead > tr > th:last-child,
            .rwd_table--striped > tbody > tr > td:last-child { padding-right: 24px; }

            .rwd_table > tbody > tr.sp_tag > td:nth-child(1) { position: relative; }
            .rwd_table > tbody > tr.sp_tag > td:nth-child(1)::before { content: "HOT"; display: inline-block; text-align: center; padding: 6px 10px; color: #fff; font-size: 14px; font-weight: bold; background-color: var(--red); position: absolute; left: 0; top: 50%; transform: translate(-50%,-50%); }

            @media ( min-width: 1200px ){
                .rwd_table > tbody > tr:hover { background-color: var(--table-hover); }
                .rwd_table--striped > tbody > tr:hover { background-color: #eee; }
            }
            @media ( max-width: 1199.98px ){
                .rwd_table > thead > tr > th { display: none; }
                .rwd_table > tbody > tr > td { display: block; border-top: none; text-align: left; padding: 0 20px 20px 20px; }
                .rwd_table > tbody > tr > td:first-child { padding: 0; }
                .rwd_table > tbody > tr > td:nth-child(2) { padding-top: 20px; }
                .rwd_table > tbody > tr > td[data_th]:before { content: attr(data_th) ""; font-weight: bold; font-size: var(--fs-h6); display: block; color: var(--black); margin-bottom: 8px; }
                .rwd_table--striped > tbody > tr > td:last-child { border-bottom: 1px solid white; }
            }


        /*=== editor ===*/
            .editor_container { font-size: var(--fs-p); }
            .editor_container h1 { font-size: var(--fs-h1); }
            .editor_container h2 { font-size: var(--fs-h2); font-weight: bold; }
            .editor_container a[href] { color: var(--main); text-decoration: underline; word-wrap: break-word; }
            .editor_container a[href]:hover, 
            .editor_container a[href]:focus { color: var(--main-hover); }
            .editor_container a[download]::before { content: '\f0c6'; font-family: var(--ff-FontAwesome); font-weight: 900; display: inline-block; padding-right: .5em; }
            .editor_container img { max-width: 100%; height: auto; }
            .editor_container iframe,
            .editor_container video { max-width: 100%; height: auto; aspect-ratio: 16/9; object-fit: contain; /*width:100%!important*/ }
            .editor_container iframe:not([width]),
            .editor_container video:not([width]) { width: 100%; }
            .editor_container table > thead > tr > *,
            .editor_container table > tbody > tr > * { font-size: var(--fs-p); }

            /* 後台有<table>時，會在後台編輯器加上 tablescroll (橫向捲動)、fixedThScope (第一個td固定) */
            @media screen and (max-width: 991.98px) {
                .tablescroll { overflow-x: auto; }
                .tablescroll > table { width: -webkit-max-content; width: max-content; max-width: 1156px; }
            }
            @media screen and (max-width: 991.98px) {
                .fixedThScope table > thead > tr > *:first-child,
                .fixedThScope table > tbody > tr > *:first-child { position: sticky; left: 0; z-index: 1; }
            }


        /*=== tabList ===*/
            /* 通用設定 */
            .nav .nav-link {
                --bgc: ; --bgc-HOV: ; --bgc-ACT: ;
                --clr: ; --clr-HOV: ; --clr-ACT: ;
                --bor: ; --bor-HOV: ; --bor-ACT: ;
                background-color: var(--bgc); color: var(--clr); border: 1px solid var(--bor);
            }
            .nav .nav-link:is(:hover,:focus) { border-color: var(--bor-HOV); background-color: var(--bgc-HOV); color: var(--clr-HOV); }
            .nav .nav-link.active { border-color: var(--bor-ACT); background-color: var(--bgc-ACT); color: var(--clr-ACT); }

            /* default */
            .nav .nav-link {
                --bgc: var(--gray-f5); --bgc-HOV: var(--main); --bgc-ACT: var(--bgc-HOV);
                --clr: var(--main);    --clr-HOV: white;   --clr-ACT: var(--clr-HOV);
                --bor: transparent;    --bor-HOV: var(--bor);  --bor-ACT: var(--bor-HOV);
            }

            /* nav_tabs */
            .nav.nav_tabs .nav-link { position: relative; padding: 16px 24px; font-size: 20px; font-style: italic; --bgc: var(--main-hover); --bgc-ACT: var(--main); --clr: var(--gray-ef); --clr-ACT: #fff; }
            .nav.nav_tabs .nav-link.active::before { content: ''; display: block; position: absolute; left: 0; top: 0; width: 100%; height: 5px; background-color: var(--bgc-ACT); z-index: 1; }
            @media (max-width: 1199.98px) {
                .nav.nav_tabs .nav-link { padding: 15px 10px; font-size: 16px; }
            }

            /* nav_pills */
            .nav.nav_pills .nav-link { --bgc: var(--gray-ef); --clr: var(--main); --bgc-HOV: var(--main); --clr-HOV: #fff;
                padding: 8px 12px; border-radius: 4px; font-size: var(--fs-btn); }

            /* nav_days */
            .nav.nav_days .nav-link { --bgc: var(--main); --clr: #fff; --bgc-HOV: var(--bgc); --clr-HOV: #fff;
                position: relative; padding: 12px 20px; border-radius: 0 10px; font-size: 16px; font-weight: bold; box-shadow: 0 4px 14px 0 rgba(0, 0, 0, 0.25) inset; text-align: center; }
            .nav.nav_days .nav-link.active::before { content: ''; display: block; position: absolute; left: 50%; transform: translateX(-50%); top: 8px; width: 4px; aspect-ratio: 1/1; background: #fff; border-radius: 100vmax; z-index: 1; }

            /* nav_rooms */
            .nav.nav_rooms .nav-link { --bgc: rgba(255,255,255,0.2); --clr: #fff; --bgc-HOV: #fff; --clr-HOV: var(--main);
                padding: 6px 20px; border-radius: 10px 10px 0 0; font-weight: bold; font-style: italic; margin-top: 8px; transition: all .15s; }
            .nav.nav_rooms .nav-link:is(:hover,:focus,.active) { padding: 10px 20px; margin-top: 0px; }

            /* nav_pills_outline */
            .nav.nav_pills_outline .nav-link { --bor: var(--main); --bgc: white; --clr: var(--main); --bgc-HOV: var(--main); --clr-HOV: #fff; 
                border-radius: 4px; line-height: 1.25; font-style: italic; padding: 6px 10px; }
            .nav.nav_pills_outline .nav-link:is(:hover,:focus,.active) { font-weight: 700 }



        /*=== title ===*/
            .main_title_banner { position: relative; overflow: hidden; background: url(../img/page-banner.png) center center no-repeat; background-size: cover; height: clamp(72px,calc(10px + 12vw),192px); display: flex; align-items: center; color: var(--black); text-shadow: 1px 1px #fff, -1px 1px #fff, 1px -1px #fff, -1px -1px #fff; box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.20) inset; }
            .main_title_banner_img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
            .main_title_banner > .container { position: relative; z-index: 1; }
            .main_title { border-left: clamp(5px,0.3em,10px) solid #FFF; margin-bottom: 0; padding-left: 0.875em; opacity: 0; font-size: clamp(18px,3vw,36px); transform: translateY( calc(1em + 50px) ); animation: 1s titleSlideDown forwards; }

            .main_title_year { font-family: 'Roboto'; font-size: clamp(30px,6.5vw,76px); margin-bottom: clamp(3px,1vw,16px); font-weight: bold; line-height: 1; opacity: 0; text-align: center; transform: translateY( 150px ); animation: 1s titleSlideDown forwards; }
            .main_title_line { padding: 0; border: none; border-top: 2px solid white; opacity: 0; transform: translateY( 80px ); animation: 1s titleSlideDown 0.25s forwards; }
            .main_title_line > legend { float: none; width: auto; margin: auto; font-style: italic; }
            .main_title_line > legend > .main_title { font-weight: normal; font-size: clamp(16px,3vw,32px); padding: 0 0.4em; opacity: 1; animation-duration: 0s; }
            @keyframes titleSlideDown {
                100% { opacity: 1; transform: translateY(0); }
            }

            .form_section_title { font-size: 1.25rem; font-weight: bold; color: var(--main); border-left: 4px solid var(--main); padding-left: 10px; margin-bottom: 1.25rem; }
            @media (max-width: 575.98px) {
                .form_section_title { font-size: 1rem; }
            }


        /*=== form_card ===*/
            .form_card { padding: 30px 60px; border-radius: 0.5rem; }
            @media (max-width: 767.98px){
                .form_card { padding: 24px 36px; border-radius: 0.25rem; }
            }
            @media (max-width: 575.98px){
                .form_card { padding: 20px 20px; border-radius: 0.2rem; }
            }


        /*=== print ===*/
            body.print { font-size: 16px; }
            .printSheet { position: relative; width: 210mm; height: 296mm; page-break-after: always; }
            @media screen {
                body.print { background: #e9e9e9; }
                .printSheet { background: white; box-shadow: 0 .5mm 2mm rgba(0,0,0,.3); margin: 5mm auto; }
            }
            @media print {
                body.print { width: 210mm; }
            }



/*######### [Pages] #########*/
    /*###### [Page Layout] ######*/
        /*=== header ===*/
            [aria-expanded=false] .aria-expanded-true { display: none; }
            [aria-expanded=true] .aria-expanded-false { display: none; }

        /*=== header.html ===*/
            /* base */
            .header { position: sticky; top: 0; min-height: var(--header-height); z-index: 99; }
            .header > .navbar { flex: 1; position: relative; padding-block: 6px; background-color: #fff; backdrop-filter: blur(4px); }
            .header > .navbar::after { content: ""; display: block; position: absolute; left: 0; right: 0; bottom: 1px; transform: translate(0,100%); height: 1px; background-color: #D9D9D9; }
            .header .navbar-brand { margin-right: 0.25rem; padding: 0; }
            .header .navbar-brand > img { height: calc(var(--header-height) - 12px); width: auto; }
            .header .navbar-light .navbar-toggler { padding: 0; width: 42px; height: 42px; }

            /* menu */
            .header ul.navbar-nav {
                --Link-bg: transparent; --Menu-bg: transparent; --Lv1-bg: transparent; --Lv2-bg: transparent;
                --Link-pd: 9px 24px 9px 18px; --Menu-pd: 9px 28px 9px 18px; --Lv1-pd: 9px 18px 9px 18px; --Lv2-pd: 9px 18px 9px 27px;
                width: 100%;
            }
            .header ul.navbar-nav > li.nav-item > a.nav-link { /* --Link */ display: flex; align-items: center; gap: 2px 10px; padding: var(--Link-pd); background-color: var(--Link-bg); color: var(--main); line-height: 1.25; }
            .header ul.navbar-nav > li.nav-item > a.nav-link:hover { opacity: 0.8; color: var(--main); }
            .header ul.navbar-nav > li.nav-item > a.nav-link > ._lg { font-size: 18px; font-weight: 600; }
            .header ul.navbar-nav > li.nav-item > a.nav-link > ._sm { font-size: 14px; }
            @media (min-width: 1200px) {
                .header ul.navbar-nav { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; }
                .header ul.navbar-nav:has( .navbar-brand) { grid-template-columns: max-content; }
                .header ul.navbar-nav > li.nav-item > a.nav-link { /* --Menu */ position: relative; min-width: 140px; height: calc(var(--header-height) - 12px); padding: .5rem 1rem; flex-direction: column; align-items: flex-start; justify-content: center; }
                .header ul.navbar-nav > li.nav-item > a.nav-link::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); height: calc(100% - 1rem); width: 4px; background: linear-gradient(to bottom, #C8D6FF, rgba(200, 214, 255, 0.3) ); }
                .header ul.navbar-nav > li.nav-item > a.nav-link.navbar-brand::before { display: none !important; }
                .header .navbar-collapse { flex: 1; }
            }
            @media (max-width: 1399.98px) {
                .header ul.navbar-nav .nav-link { font-size: 16px; }
            }
            @media (max-width: 1199.98px) {
                .header ul.navbar-nav {
                    --Link-bg: transparent; --Menu-bg: transparent; --Lv1-bg: #e9e9e9; --Lv2-bg: #f5f5f5;
                    --Link-pd: 9px 18px 9px 18px; --Menu-pd: 9px 18px 9px 18px; --Lv1-pd: 9px 18px 9px 18px; --Lv2-pd: 9px 18px 9px 27px;
                }
                .header .navbar-light ul.navbar-nav .nav-link { font-size: 16px; }
                .header ul.navbar-nav { padding-block: 15px 5px; }
            }


            /* dropdown:
            * ├── a.dropdown-toggle
            * └── ul.dropdown-menu
            *     └── li:is(.dropdown, .dropend, .dropstart)
            */
            /* 共用 */
            .header .dropdown > .dropdown-menu > li > a.dropdown-item { /* --LV? */ margin-bottom: 1px; display: flex; align-items: center; gap: 2px 10px; line-height: 1.25; }
            .header .dropdown > .dropdown-menu > li > a.dropdown-item:hover { opacity: 0.8; color: var(--main); }
            .header .dropdown > .dropdown-menu > li > a.dropdown-item > ._lg { font-size: 16px; font-weight: 600; }
            .header .dropdown > .dropdown-menu > li > a.dropdown-item > ._sm { font-size: 14px; }
            .header .dropdown > .dropdown-menu > li:last-child > a.dropdown-item { margin-bottom: 0; }
            .header .dropdown-item:focus,
            .header .dropdown-item:hover { background-color: inherit; color: inherit; }
            .header :is(.dropdown,.dropend,.dropstart) > a.dropdown-toggle { position: relative; }
            .header :is(.dropdown,.dropend,.dropstart) > a.dropdown-toggle::after { content: '\f107'; position: absolute; top: 50%; transform: translateY(-50%); font-family: var(--ff-FontAwesome); font-size: 0.9em; font-weight: 900; line-height: 1; vertical-align: middle; border: none; }
            .header .dropdown > a.dropdown-toggle::after { content: '\f107'; right: 0.375em; }
            .header .dropend > a.dropdown-toggle::after { content: '\f105'; right: 0.375em; }
            .header .dropstart > a.dropdown-toggle::before { content: '\f104'; left: 0.375em; }

            /* dropdown-menu Lv1 (ul.navbar-nav > li.nav-item.dropdown) */
            .header ul.navbar-nav > li.nav-item.dropdown > a.dropdown-toggle { /* --Menu */ background-color: var(--Menu-bg); padding: var(--Menu-pd); }
            .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu { background-color: rgba(255,255,255,0.95); margin-top: 5px; }
            .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li > a.dropdown-item { /* --LV1 */ background-color: var(--Lv1-bg); padding: var(--Lv1-pd); }
            .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li > a.dropdown-item:not(:last-child) { margin-bottom: 1px; }

            /* dropdown-menu Lv2 (ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li:is(.dropdown,.dropend,.dropstart)) ) */
            .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li:is(.dropdown,.dropend,.dropstart) > a.dropdown-toggle { /* --LV1 */ background-color: var(--Lv1-bg); padding: var(--Lv1-pd); }
            .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li.dropdown > ul.dropdown-menu { position: static !important; border: 0; }
            .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li:is(.dropdown,.dropend,.dropstart) > ul.dropdown-menu > li > a.dropdown-item { /* --LV2 */ background-color: var(--Lv2-bg); padding: var(--Lv2-pd); }

            @media (min-width: 1200px) {
                .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li > a.dropdown-item { flex-direction: column; align-items: flex-start; justify-content: center; }
            }
            @media (max-width: 1199.98px) {
                .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu { background-color: white; margin-top: 0; padding: 0; border: 0; }
                .header ul.navbar-nav > li.nav-item.dropdown > ul.dropdown-menu > li > a.dropdown-item { background-color: #F5F5F5; padding: 10px 24px; }
            }


            /* header-megaMenu（特殊樣式）*/
            @media (min-width: 1200px) {
                .header.header-megaMenu > .navbar { position: fixed; align-items: flex-start; top: 0; left: 0; right: 0; z-index: 89; background: rgba(255,255,255,0.95); height: var(--header-height); overflow: hidden; }
                .header.header-megaMenu > .navbar._expand { height: auto; overflow: auto; }
                .header.header-megaMenu > .navbar > .container > .navbar-brand { align-self: flex-start; }
                .header.header-megaMenu > .navbar .navbar-nav {
                    --Link-bg: transparent; --Menu-bg: transparent; --Lv1-bg: transparent; --Lv2-bg: transparent;
                    --Link-pd: 9px 18px 9px 18px; --Menu-pd: 9px 18px 9px 18px; --Lv1-pd: 9px 18px 9px 18px; --Lv2-pd: 9px 18px 9px 27px;
                    align-items: flex-start !important;
                }
                .header.header-megaMenu > .navbar .dropdown-toggle::after { display: none !important; }
                .header.header-megaMenu > .navbar .dropdown-menu { margin-top: 8px; display: block !important; position: static !important; border: none; min-width: auto; }
                .header.header-megaMenu > .navbar .dropdown-item { white-space: unset; background: none; padding: 10px 4px; }
                .header.header-megaMenu ul.navbar-nav > li.dropdown > ul.dropdown-menu { background-color: transparent; }
                .header.header-megaMenu ul.navbar-nav li:is(.dropdown,.dropend,.dropstart) > ul.dropdown-menu { margin: 0; padding: 0; min-width: 11rem; }
            }
            @media (max-width: 1199.98px) {
                .header.header-megaMenu .nav-link.navbar-brand { display: none !important; }
            }


        /*=== footer.html ===*/
            #backToTop { display: none; position: absolute; right: 12px; bottom: 12px; }
            #backToTop > .btn { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; font-size: 14px; line-height: 1.25; box-shadow: 0 0 4px #ccc; }

        /* ===== FOOTER ===== */
            .footer { position: relative; z-index: 98; background: linear-gradient(to bottom, #22356C 0%, #121C38 100%); color: #fff; padding-block: 20px; }
            .footer > .container { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
            .footer--logos { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
            .footer--logo { height: 52px; width: auto; display: block; }
            .footer--logos ._lg { font-size: 20px; }
            .footer--logos ._sm { font-size: 14px; }
            .footer--contact { display: flex; align-items: center; gap: 24px; font-size: 16px; }
            .footer--contact a { color: #fff; text-decoration: none; }
            .footer--contact a:hover { color: #fff; text-decoration: underline; }
            .footer--divider { width: 1px; height: 20px; background: #fff; }
            @media (max-width: 1199.98px) {
                .footer--logos { gap: 8px 16px; }
                .footer > .container { flex-direction: column; gap: 16px; }
                .footer--logos { flex-direction: column; justify-content: center; }
                .footer--contact { flex-direction: column; gap: 8px; }
                .footer--divider { display: none; }
            }



    /*###### [Current Page] ######*/
        /*=== index.html ===*/
            [class*="index_section_"] { --pd: 24px; }
            .index_section_first > section { padding-block: calc(var(--pd) * 2) var(--pd); }
            .index_section_middle > section { padding-block: var(--pd); }
            .index_section_last > section { padding-block: var(--pd) calc(var(--pd) * 2); }
            .index_section_full > section { padding-block: calc(var(--pd) * 2); }


            /*--- BANNER ---*/
            .index_banner { position: relative; overflow: hidden; }
            .index_banner--left { aspect-ratio: 2/1; background: url(../img/index/banner.png) center center / cover no-repeat; }
            .index_banner--right { container-type: inline-size; container-name: index_banner_right; z-index: 1; position: absolute; top: 0; right: 0; height: 100%; display: flex; align-items: center; aspect-ratio: 2/3; }
            .index_banner--right > .container { width: 100%; padding-block: calc(var(--bs-gutter-x) * .5); }
            .index_banner--countdown { display: flex; flex-direction: column; align-items: center; gap: 10px 20px; color: #fff; line-height: 1.25; }
            .index_banner--countdown ._label { display: flex; flex-direction: column; text-align: center; gap: 4px; }
            .index_banner--countdown ._label_lg { font-size: 36px; font-weight: 700; }
            .index_banner--countdown ._label_sm { font-size: 18px; }
            .index_banner--countdown ._num { font-size: 72px; font-weight: 200; }
            .index_banner--countdown ._unit { font-size: 36px; font-weight: 700; }
            .index_banner--btns { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; }
            .index_banner--btn { display: flex; justify-content: space-between; align-items: center; width: 100%; gap: 10px; padding: 20px 40px; background: #FF7575; color: #fff; border: none; border-radius: 100vmax; box-shadow: inset 0 0 36px 0 #fff; text-decoration: none; transition: all 0.15s; }
            .index_banner--btn:hover { background: #fff; color: #FF7575; }
            .index_banner--btn_label { display: flex; flex: 1; flex-direction: column; gap: 4px; line-height: 1.25; }
            .index_banner--btn_label > ._lg { font-size: 30px; font-weight: 700; }
            .index_banner--btn_label > ._sm { font-size: 24px; }
            .index_banner--btn > .index_maskIcon_online_registration { --size: 72px; -webkit-mask-image: url('../img/index/icon-online-registration.svg'); mask-image: url('../img/index/icon-online-registration.svg'); }
            @container index_banner_right (max-width: 480px) {
                .index_banner--countdown ._label_lg { font-size: 20px; }
                .index_banner--countdown ._label_sm { font-size: 14px; }
                .index_banner--countdown ._num { font-size: 54px; }
                .index_banner--countdown ._unit { font-size: 20px; }
                .index_banner--btn { padding: 15px 30px; }
                .index_banner--btn_label > ._lg { font-size: 20px; }
                .index_banner--btn_label > ._sm { font-size: 16px; }
                .index_banner--btn > .index_maskIcon_online_registration { --size: 48px; }
            }
            @media (min-width: 992px ){
                .index_banner--right > .container { max-width: 440px; box-sizing: content-box; padding: 3vw; }
            }
            @media (max-width: 991.98px ){
                .index_banner--left { position: relative; aspect-ratio: unset; background-image: url(../img/index/bannerL_m.jpg); background-size: 100% 100%; }
                .index_banner--left::before { content: ''; display: block; z-index: 0; position: absolute; inset: 0; background: transparent; backdrop-filter: blur(16px); }
                .index_banner--left::after { content: ''; display: block; z-index: 1; position: relative; background: url(../img/index/bannerL_m.jpg) center center / contain no-repeat; aspect-ratio: 3/4; max-width: 720px; margin-inline: auto; }
                .index_banner--right { position: static; width: 100%; height: auto; aspect-ratio: unset; padding-block: 1rem; background: #FF7575; }
                .index_banner--right > .container { max-width: 450px; }
                .index_banner--countdown { flex-direction: row; justify-content: center; }
                .index_banner--countdown ._label { text-align: start; }
                .index_banner--countdown ._label_lg { font-size: 20px; }
                .index_banner--countdown ._label_sm { font-size: 14px; }
                .index_banner--countdown ._num { font-size: 54px; }
                .index_banner--countdown ._unit { font-size: 20px; }
                .index_banner--btns { padding-top: 16px; }
                .index_banner--btn { padding: 15px 30px; background: #fff; color: #FF7575; border: none; border-radius: 100vmax; box-shadow: inset 0 0 4px 0 #FF7575; transition: all 0.15s; }
                .index_banner--btn:hover { background: #fff; color: #FF7575; }
                .index_banner--btn_label > ._lg { font-size: 20px; }
                .index_banner--btn_label > ._sm { font-size: 16px; }
                .index_banner--btn > .index_maskIcon_online_registration { --size: 48px; }
            }

            /*--- SECTION COMMON ---*/
            .index_section_title { display: flex; align-items: center; column-gap: 10px; color: #556FBC; }
            .index_section_title::before { content: ''; flex-shrink: 0; width: 30px; height: 30px; background: url('../img/index/deco-star.svg') center / contain no-repeat; }
            .index_section_title::after { content: ''; flex-shrink: 0; width: 24px; height: 24px; background: url('../img/index/deco-star.svg') center / contain no-repeat; }
            .index_section_title > ._lg,
            .index_section_title > ._sm { font-size: 18px; line-height: 1.25; }
            .index_section_title > ._lg { margin-right: 5px; font-weight: 700; }


            /*--- KEY DATES ---*/
            .index_key_dates--row { display: flex; gap: 50px; align-items: stretch; }
            .index_key_dates--left { flex: 1; }
            .index_key_dates--list { display: flex; flex-direction: column; gap: 10px; padding-left: 0; margin-bottom: 0; list-style: none; }
            .index_key_dates--item { display: flex; align-items: center; gap: 4px 10px; padding: 10px 20px; background: linear-gradient(90deg, rgba(255,247,125,0.3) 0%, rgba(255,247,125,0.05) 100%); border: 1px solid #FFF77D; border-radius: 10px; }
            .index_key_dates--item_date { flex-shrink: 0; font-size: 20px; padding-right: 20px; font-weight: 300; color: #2A2B2B; }
            .index_key_dates--item_title { font-size: 18px; font-weight: 700; color: #2A2B2B; }
            .index_key_dates--item_en { font-size: 16px; color: #2A2B2B; }
            @media (max-width: 991.98px ){
                .index_key_dates--item { flex-direction: column; align-items: flex-start; }
                .index_key_dates--row { flex-direction: column; }
            }


            /*--- NEWS item ---*/
            .index_news--item { --bg-op: 1; --clr-date: var(--gray-70); --clr-title: var(--black); --clr-desc: var(--black); position: relative; display: flex; flex-direction: column; padding: 20px 30px; border-radius: 10px; height: 100%; background: linear-gradient(to right, #556FBC, #C8D6FF); transition: all 0.35s; }
            .index_news--item:hover { --bg-op: 0; --clr-date: #fff; --clr-title: #fff; --clr-desc: #fff; }
            .index_news--item::before { content: ''; position: absolute; z-index: 0; inset: 4px; border-radius: 8px; background: #fff; opacity: var(--bg-op); transition: all 0.35s; }
            .index_news--item > * { z-index: 1; transition: all 0.35s; }
            .index_news--item > ._date { font-size: 20px; color: var(--clr-date); line-height: 1.25; }
            .index_news--item > ._title { font-size: 18px; color: var(--clr-title); font-weight: 700; margin-top: 10px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
            .index_news--item > ._desc { font-size: 16px; color: var(--clr-desc); margin-top: 4px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
            .index_news--flex_wrap { display: flex; align-items: center; gap: 8px; }
            .index_news--flex_nav { width: 44px; background: none; border: none; color: var(--gray-c7); padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: color 0.35s; }
            .index_news--flex_nav:hover { color: var(--main); }
            @media (max-width: 991.98px ){
                .index_news--item { padding: 20px; }
                .index_news--flex_nav { width: 40px; }
            }
            @media (max-width: 767.98px ){
                .index_news--flex_wrap { flex-direction: column; }
                .index_news--flex_nav { transform: rotate(90deg); }
            }

            /*--- NEWS swiper ---*/
            .index_news { padding: 0 0 40px 0; }
            .index_news--swiperContainer { display: flex; align-items: center; }
            .index_news--swiperContainer .swiper { flex: 1; overflow: hidden; }
            .index_news--swiperContainer .swiper-button-prev,
            .index_news--swiperContainer .swiper-button-next { position: static; --swiper-navigation-size: 32px; width: 24px; min-width: 24px; height: 56px; background: none; color: var(--gray-c7); margin: 0; border-radius: 0; }
            .index_news--swiperContainer .swiper-button-prev::after,
            .index_news--swiperContainer .swiper-button-next::after { font-weight: 900; padding-inline: 4px; }
            @media (min-width: 576px) {
                .index_news--swiperContainer { position: relative; display: block; }
                .index_news--swiperContainer .swiper { overflow: hidden; }
                .index_news--swiperContainer .swiper-button-prev,
                .index_news--swiperContainer .swiper-button-next { position: absolute; top: 50%; transform: translateY(-50%); }
                .index_news--swiperContainer .swiper-button-prev { left: -32px; }
                .index_news--swiperContainer .swiper-button-next { right: -32px; }
            }
            .index_news--swiperContainer .swiper-slide { height: auto; padding: 8px; }


            /*--- SPEAKERS ---*/
            .index_speakers { background: linear-gradient(0deg, rgba(200, 214, 255, 0.3) 0%, rgba(200, 214, 255, 0.1) 100%); }
            #index_swiper_speakers_container { position: relative; }
            #index_swiper_speakers_box { padding-inline: 50px; }
            .index_speakers_block { color: var(--black); text-align: center; }
            .index_speakers_block:hover { color: var(--black); }
            .index_speakers_block ._avatar { --def: linear-gradient(#f5f5f5, #fff); --bg: url(); margin-inline: auto; border-radius: 100vmax; width: 160px; height: 160px; background: var(--bg), var(--def); background-size: cover; }
            .index_speakers_block ._name { font-size: var(--fs-h2); font-weight: bold; margin-top: 12px; padding-inline: 8px; }
            .index_speakers_block ._desc { font-size: var(--fs-h6); font-weight: bold; margin-top: 4px; padding-inline: 8px; }

            #index_swiper_speakers_navigation { position: absolute; inset: 0; }
            #index_swiper_speakers_navigation .swiper-button-prev { --swiper-navigation-size: 36px; left: 0; width: 30px; color: var(--gray-c7); }
            #index_swiper_speakers_navigation .swiper-button-next { --swiper-navigation-size: 36px; right: 0; width: 30px; color: var(--gray-c7); }

            @media (max-width: 767.98px) {
                #index_swiper_speakers { height: 500px; }
                .index_speakers_block ._desc { min-height: 48px; }
                .index_speakers_block ._avatar { width: 140px; height: 140px; }
            }
            @media (max-width: 575.98px) {
                #index_swiper_speakers { height: 460px; }
                .index_speakers_block ._avatar { width: 120px; height: 120px; }
                #index_swiper_speakers_box { padding-inline: 20px; }
            }


            /*--- ORGANIZER ---*/
            .index_organizer { background: #F9F9F9; }
            .index_organizer--group { display: flex; align-items: center; gap: 24px 32px; }
            .index_organizer--label { width: 200px; height: 80px; align-self: flex-start; flex-shrink: 0; display: flex; align-items: center; }
            .index_organizer--label_title { position: relative; display: flex; gap: 4px 8px; padding-left: 20px; white-space: nowrap; }
            .index_organizer--label_title::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #69C2BD, #75D559); }
            .index_organizer--label_title > ._lg { font-size: 18px; line-height: 1.25; font-weight: 700; }
            .index_organizer--label_title > ._sm { font-size: 14px; line-height: 1.25; }
            .index_organizer--logos { flex: 1; align-items: center; }
            @media (max-width: 991.98px) {
                .index_organizer--group { flex-direction: column; align-items: center; }
                .index_organizer--label { align-self: center; height: auto; width: auto; text-align: center; }
                .index_organizer--label_title { flex-direction: row; }
            }

            /*--- index_coop_block ---*/
            .index_coop_block { display: flex; align-items: center; }
            .index_coop_block > .index_coop_block--icon { flex-shrink: 0; width: 80px; aspect-ratio: 1/1; display: flex; align-items: center; }
            .index_coop_block > .index_coop_block--name { margin-left: 12px; font-size: var(--fs-p); }
            .index_coop_block > .index_coop_block--name > ._lg { font-size: 18px; font-weight: 700; }
            .index_coop_block > .index_coop_block--name > ._sm { font-size: 14px; }
            @media (max-width: 991.98px) {
                .index_coop_block > .index_coop_block--icon { width: 60px; }
            }
            @media (max-width: 575.98px) {
                .index_coop_block > .index_coop_block--icon { width: 36px; }
            }



        /*=== greeting.html ===*/
            .greeting_sign { width: 164px; }
            .greeting_avatar { margin-right: 3rem; }
            @media (max-width: 767.98px){
                .greeting_avatar { width: 180px; height: 180px; margin-right: 2rem; }
                .greeting_sign { width: 128px; }
            }
            @media (max-width: 575.98px){
                .greeting_avatar { width: 120px; height: 120px; margin-right: 1.5rem; }
                .greeting_sign { width: 82px; }
            }


        /*=== Overview.html ===*/
            .overviewRow { margin-inline: auto; padding-bottom: 48px; }
            .overviewItem { position: relative; display: flex; flex-direction: column; align-items: center; font-size: var(--fs-p); text-align: center; padding: 20px; }
            .overviewItem:not(:first-child)::before { content: ''; position: absolute; left: 0; top: 0; width: 1px; height: 100%; background: var(--gray-d6); }
            .overviewItem ._img { flex: 0 0 120px; }
            .overviewItem ._img > img { width: 100%; }
            .overviewItem ._text { flex: 1 1 auto; margin-top: 24px; }
            .overviewItem ._title { font-weight: bold; margin-bottom: 10px; }
            .overviewItem:nth-child(1) ._title { color: var(--secondary-dark); }
            .overviewItem:nth-child(2) ._title { color: #8C3A9F; }
            .overviewItem:nth-child(3) ._title { color: var(--main); }
            .overviewItem:nth-child(4) ._title { color: #EB7E99; }
            .overviewItem:nth-child(5) ._title { color: var(--main-light); }
            @media (max-width: 1199.98px) {
                .overviewRow { max-width: 650px; margin-top: -20px; }
                .overviewItem { flex-direction: row; text-align: left; }
                .overviewItem:not(:first-child)::before { width: 100%; height: 1px; }
                .overviewItem ._img { flex: 0 0 100px; }
                .overviewItem ._text { padding-left: 20px; margin-top: 0; }
            }
            @media (max-width: 767.98px) {
                .overviewRow { max-width: 580px; padding-bottom: 16px; }
                .overviewItem ._img { flex: 0 0 72px; }
            }


        /*=== speakers.html ===*/
            .speakers_row_title { font-size: 24px; color: var(--gray-70); text-align: center; display: flex; align-items: center; justify-content: center; gap: 10px; }
            .speakers_row_title::before,
            .speakers_row_title::after { content: ''; display: block; width: 74px; height: 2px; background: var(--gray-d6); }
            .speakers_row { padding-bottom: 60px; }
            .speakers_col { padding: 30px 20px; text-align: center; }
            .speakers_avatar { --w: 100px; --w-sm: 160px; margin: auto; cursor: pointer; flex-shrink: 0; transition: transform .4s ease; }
            .speakers_text { font-style: italic; margin-top: 30px; }
            .speakers_name { font-size: 22px; color: var(--secondary-dark); }
            .speakers_country { font-size: 16px; margin-top: 10px; color: var(--gray-70); }
            .speakers_col:hover .speakers_avatar { transform: scale(1.1); }
            @media (max-width: 575.98px) {
                .speakers_row_title::before,
                .speakers_row_title::after { min-width: 24px; max-width: 74px; width: auto; flex-grow: 1; }
                .speakers_row { padding-bottom: 20px; display: inline-flex; flex-wrap: initial; flex-direction: column; align-content: center; }
                .speakers_col { display: flex; padding: 15px 20px; flex-direction: row; justify-content: start; align-items: center; }
                .speakers_avatar { margin: unset; }
                .speakers_text { margin-top: 0; padding-left: 20px; text-align: left; }
                .speakers_name { font-size: 18px; }
                .speakers_country { font-size: 14px; }
            }

            /* speakersModal */
            .speakerModal .modal-body { display: flex; flex-direction: column; align-items: center; gap: 3rem; padding: 8px 80px 50px 80px; }
            .speakerModal_name { font-size: 36px; margin-bottom: 4px; color: var(--secondary-dark); }
            .speakerModal_title { color: var(--gray-70); font-size: 24px; font-style: italic; display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 20px; line-height: 1.25; }
            .speakerModal_title::before,
            .speakerModal_title::after { content: ''; display: block; width: 74px; height: 2px; background: var(--gray-d6); }

            .speakerModal_speechCard { padding: 20px; background: #fff; border-radius: 20px; box-shadow: inset 0 0 30px rgba(217, 217, 217, 1); }
            .speakerModal_speechCard + .speakerModal_speechCard { margin-top: 8px; }
            .speakerModal_speechCard ._date { font-style: italic; font-weight: 700; white-space: nowrap; }
            .speakerModal_speechCard ._dot { flex-shrink: 0; width: 4px; height: 4px; border-radius: 100vmax; background: var(--gray-c7); }
            .speakerModal_speechCard ._room { font-style: italic; font-weight: 700; }
            .speakerModal_speechCard ._topic { font-size: 18px; }
            @media (max-width: 991.98px) {
                .speakerModal .modal-body { padding: 8px 24px 30px 24px; }
            }
            @media (max-width: 575.98px) {
                .speakerModal_title { font-size: 18px; }
                .speakerModal_speechCard { padding: 15px; }
            }


        /*=== program.html ===*/
            /* 結構 */
            .program_main { --program-clr: #B51656; background: linear-gradient(180deg, var(--program-clr) 0%, color-mix(in srgb, var(--program-clr) 45%, black) 100%) }
            .program_main .nav.nav_days .nav-link { min-width: 200px; }
            .program_main .nav.nav_rooms .nav-link { --clr-HOV: var(--program-clr); }
            .program_panels-day-room_container { padding-bottom: 3rem; }
            @media (max-width: 575.98px) {
                .program_main .nav.nav_days .nav-link { min-width: unset; }
                .program_panels-day-room_container { padding-inline: 0; }
            }

            /* 上層、通用元件 */
            .program_dayTitle { font-size: 30px; color: #fff; line-height: 1.25; padding-block: 1rem; }
            .program_person { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1.5rem; }
            .program_person > ._name { display: flex; align-items: center; gap: 5px; color: var(--program-clr); font-weight: 700; font-style: italic; }
            .program_person > ._name._toOpenSpeakerModal { cursor: pointer; }
            .program_person > ._org { font-size: 14px; color: var(--gray-70); }
            .program_downloads { display: flex; flex-wrap: wrap; column-gap: 1rem; }

            /* article */
            .program_article { display: flex; flex-direction: column; gap: 10px; padding: 30px 50px; background: #fff; }
            .program_article + .program_article { margin-top: 10px; }
            .program_article--time { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
            .program_article--time > ._time { padding: 6px 12px; line-height: 1.25; border-radius: 100vmax; background: var(--program-clr); color: #fff; font-size: 18px; font-weight: 700; }
            .program_article--time > ._desc { font-size: 13px; color: #777; }
            .program_article--topic { font-size: 22px; font-weight: 700; line-height: 1.33; color: #222; }
            .program_article--persons { display: flex; flex-direction: column; row-gap: 4px; }
            @media (max-width: 1199.98px) {
                .program_article--time > ._time { font-size: 16px; }
                .program_article--topic { font-size: 20px; }
            }
            @media (max-width: 767.98px) {
                .program_article { padding: 16px; }
            }

            /* program_listCard */
            .program_listCard { --card-gap: 40px; display: flex; align-items: center; gap: var(--card-gap); padding: 20px; background: #fff; border-radius: 20px; box-shadow: inset 0 0 30px rgba(217, 217, 217, 1); }
            .program_listCard > .listCard--time { flex: 0 0 110px; font-size: 18px; color: var(--program-clr); }
            .program_listCard > .listCard--topic { flex: 1; font-size: 22px; color: #222; }
            .program_listCard > .listCard--right { flex: 0 0 360px; padding: 0 0 0 var(--card-gap); border-left: 1px solid var(--border); display: flex; flex-direction: column; row-gap: 4px; }
            @media (max-width: 1399.98px) {
                .program_listCard { --card-gap: 20px; }
            }
            @media (max-width: 1199.98px) {
                .program_listCard { --card-gap: 8px; align-items: stretch; flex-direction: column; }
                .program_listCard > .listCard--time { flex-basis: auto; }
                .program_listCard > .listCard--right { flex-basis: auto; padding: var(--card-gap) 0 0 0; border-left: 0; border-top: 1px solid var(--border); }
            }

            /* abstractModal */
            #abstractModal .modal-body { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
            .abstractModal_title { font-size: 22px; }
            .abstractModal_name { font-style: italic; font-weight: 700; }


        /*=== poster.html & posterDetail.html ===*/
            .searchBlock { display: flex; justify-content: center; align-items: center; gap: 16px; }
            .searchInput { max-width: 700px; }

            /* poster listCard */
            .poster_listCard { display: flex; align-items: center; gap: 20px; padding: 20px 10px 20px 20px; background: #fff; border-radius: 10px; box-shadow: 0 0 10px 0 var(--gray-d6); }
            .poster_listCard--num { display: flex; justify-content: center; align-items: center; flex-shrink: 0; width: 70px; font-size: 24px; font-style: italic; color: var(--gray-70); }
            .poster_listCard--body { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
            .poster_listCard--body > ._title { margin: 0; font-size: 18px; line-height: 1.22; }
            .poster_listCard--body > ._meta { display: flex; align-items: center; gap: 5px; color: var(--main); font-size: 14px; font-weight: 700; font-style: italic; }
            .poster_listCard--arrow { display: flex; justify-content: center; align-items: center; flex-shrink: 0; width: 60px; color: var(--gray-c7); }
            .poster_listCard--arrow > .maskIcon_arrowRight { --size: 60px; transition: all .2s ease; }
            .poster_listCard:hover .poster_listCard--arrow > .maskIcon_arrowRight { transform: translateX(8px); color: var(--main); }
            @media (max-width: 767.98px) {
                .poster_listCard { flex-direction: column; align-items: stretch; gap: 10px; }
                .poster_listCard--num { justify-content: flex-start; align-items: stretch; font-size: 18px; }
                .poster_listCard--body > ._title { font-size: 16px; }
                .poster_listCard--arrow { display: none; }
            }


            /* audioPopup (both page) */
            .audioIcon { display: inline-block; width: 30px; height: 27px; background: url(../img/icon/headphones-solid.png) center center no-repeat; background-size: contain; }
            .audioIcon:hover { opacity: 0.8; }
            .audioPopup { position: fixed; display: flex; align-items: center; justify-content: space-between; padding-inline: 3rem; left: 0; bottom: 0; width: 100%; color: white; background-color: rgba(0,0,0,0.8); z-index: 999; }
            .audioPopup .closeBtn { position: absolute; right: 5px; top: 5px; padding: 0; cursor: pointer; background-size: contain; }
            .audioPopup .closeBtn::after { content: '\f057'; font-family: var(--ff-FontAwesome); font-size: 24px; line-height: 1; font-weight: bold; color: var(--gray-99); }
            .audioPopup > .audioText { padding: 15px; }
            .audioPopup .audioInfo { font-size: var(--fs-h6); }
            .audioPopup .audioTitle { font-size: var(--fs-p); }
            .audioPopup > .audioMedia { flex-shrink: 0; width: 580px; }
            @media (max-width: 991.98px) {
                .audioPopup { flex-direction: column; align-items: center; padding-inline: 1rem; }
                .audioPopup > .audioText { padding-bottom: 0; text-align: center; }
                .audioPopup > .audioMedia { width: 100%; }
            }

            /* posterDetail.html */
            @media (min-width: 1600px){
                .posterDetail main > .container { max-width: 1320px; }
            }
            .posterDetail_list { padding: 40px 0; margin: 0 -40px; }
            .posterDetail_list > .posterDetail_col { padding: 0 40px; }
            .posterDetail_listItem { position: relative; margin-bottom: 24px; }
            .posterDetail_listItem > *:nth-child(1) { font-weight: bold; font-size: 14px; line-height: 2.5; }
            .posterDetail_listItem > *:nth-child(2) { color: #707070; font-size: 16px; line-height: 2.25; display: flex; align-items: center; }
            .posterDetail_listItem::before { content: ''; display: block; padding-top: 24px; border-top: 1px solid var(--gray-d6); }
            .posterDetail_listItem:first-child::before { display: none; }
            .posterDetail_article { background-color: #fff; padding: 70px 100px; }
            /* .posterDetail_article section:not(:last-child) { padding-bottom: 30px; }
            .posterDetail_article section > *:first-child { font-size: 20px; line-height: 1.8; color: var(--black); margin-bottom: 25px; }
            .posterDetail_article section > * { font-size: 16px; line-height: 2.25; color: #707070; margin-bottom: 50px; } */
            @media (max-width: 991.98px){
                .posterDetail_article { padding: 30px 30px; }
            }
            @media (max-width: 767.98px){
                .posterDetail_list { padding: 30px 0; margin: 0 -12px; }
                .posterDetail_list > .posterDetail_col { padding: 0 15px; }
                .posterDetail_list > .posterDetail_col:not(:first-child) > .posterDetail_listItem:first-child::before { display: block; }
                .posterDetail_listItem > *:nth-child(2) { font-size: 14px; line-height: 2; }
                /* .posterDetail_article section:not(:last-child) { padding-bottom: 40px; }
                .posterDetail_article section > *:first-child { font-size: 16px; line-height: 1.8; margin-bottom: 15px; }
                .posterDetail_article section > * { font-size: 14px; line-height: 2; margin-bottom: 30px; }
                .posterDetail_article section > *:last-child { margin-bottom: 0; } */
            }
            @media (max-width: 575.98px){
                .posterDetail_article { padding: 30px 12px; margin: 0 -12px; }
            }


        /*=== news.html ===*/
            .news_card { display: flex; flex-direction: row; align-items: center; font-size: 16px; gap: 10px; padding: 20px; background-color: #fff; border-radius: 10px; box-shadow: 0 0 10px 0 rgba(217, 217, 217, 1); text-decoration: none; color: inherit; transition: box-shadow .35s; }
            .news_card:hover { box-shadow: 0 0 20px 0 color-mix(in srgb, var(--main) 18%, transparent); }
            .news_card_body { display: flex; flex-direction: column; gap: 10px; flex: 1; min-width: 0; }
            .news_card_time { font-size: 18px; line-height: 1.2; color: var(--gray-70); margin-left: 2px; }
            .news_card_badge { font-size: 16px; display: inline-flex; justify-content: center; align-items: center; padding: 2px 8px; background-color: var(--main); border-radius: 4px; font-weight: 700; font-style: italic; line-height: 1.219; color: #fff; }
            .news_card_title { font-size: 18px; line-height: 1.2; font-weight: 700; color: #222; margin: 0; }
            .news_card_desc { font-size: 16px; line-height: 1.2; color: var(--gray-70); margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
            .news_card_arrow { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 50px; color: var(--gray-c7); transition: 0.35s all; }
            .news_card:hover .news_card_arrow { color: var(--main); translate: 12px 0; }
            @media (max-width: 767.98px){
                .news_card_arrow { display: none; }
            }
            @media (max-width: 575.98px){
                .news_card_time { font-size: 16px; }
                .news_card_badge { font-size: 14px; }
                .news_card_title { font-size: 16px; }
                .news_card_desc { font-size: 14px; }
            }


        /*=== submission.html ===*/
            @media (min-width: 1200px) {
                .submission_table > tbody > tr > td:nth-child(5) { white-space: nowrap; }
            }


        /*=== invoice.html ===*/
            @media (min-width: 1200px) {
                .invoice_table > tbody > tr > td:nth-child(2) { white-space: nowrap; }
                .invoice_table > tbody > tr > td:nth-child(3) { width: 100%; }
            }


        /*=== photo.html ===*/
            .photo_img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }


        /*=== login.html ===*/
            .nav.auth_nav { justify-content: space-between; align-items: flex-end; }
            .nav.auth_nav > .nav-item { width: 49%; }
            .nav.auth_nav > .nav-item > .nav-link { padding: 20px 30px; text-align: center; background-color: #adb5bd; }
            .nav.auth_nav > .nav-item > .nav-link.active { background-color: white; }

            .login_bg { background-image: url(../img/login-bg.png); }
            .login_padding_top { padding-top: 60px; }
            @media (max-width: 575.98px){
                .login_padding_top { padding-top: 16px; }
            }

            .auth_card { padding: 40px 60px; background-color: white; }
            .auth_form { max-width: 480px; margin: auto; font-size: 16px; }

            @media( max-width: 575.98px ){
                .auth_card { padding: 20px 20px; }
                .auth_form { font-size: 14px; }
                .nav.auth_nav > .nav-item > .nav-link { font-size: 14px; }
            }


        /*=== channel / channel_video / program_video ===*/
            .bg_channel { background: var(--gray-ef); }
            .program_video_title { padding-bottom: 1rem; font-size: 22px; font-weight: bold; }
            @media (max-width: 575.98px) {
                .program_video_title { padding: 1rem; font-size: 18px; background: url(../img/bg_video@2x.jpg) center center no-repeat; background-size: cover; }
            }
            @media (min-width: 576px) {
                .bg_program_video_main { background: url(../img/bg_video@2x.jpg) center center no-repeat; background-size: cover; }
            }

            /* channel */
            .channel_block { display: block; }
            .channel_block::after { padding: 7px 15px; font-weight: bold; position: absolute; left: 0; top: 0; transform: translateY(-50%); z-index: 1; }
            .channel_block.coming_soon::after { content: 'Coming Soon'; color: var(--main); background-color: white; }
            .channel_block.live_now::after { content: 'Live Now'; color: white; background-color: var(--main); }
            @media (max-width: 575.98px) {
                .channel_block::after { padding: 4px 12px; }
            }

            .channel_rowCard:not(:first-child) { margin-top: 30px; }
            @media (max-width: 991.98px) {
                .channel_rowCard:not(:first-child) { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e4e4e4; }
            }


            /* channel_video */
            #survey .modal-body { padding: 0px 60px 24px 60px; }
            .survey_title { font-size: 30px; font-weight: bold; margin-bottom: 20px; }
            .survey_question { list-style: none; padding: 0; margin: 0; }
            .survey_question > li:not(:last-of-type)::after { content: ""; display: block; border-bottom: 1px solid var(--gray-d6); margin: 20px 0; }
            .survey_question .question_title { font-size: 18px; font-weight: bold; margin-bottom: 16px; }
            .survey_question .form-check { font-size: 16px; }
            @media (max-width: 575.98px) {
                #survey .modal-body { padding: 0px 16px 24px 16px; }
                .survey_title { font-size: 24px; text-align: center; }
                .survey_question .question_title { font-size: 16px; }
                .survey_question .form-check { font-size: 14px; }
            }

            .video_intro_block { padding: 24px; border-radius: 8px; background-color: #fcf0f3; line-break: anywhere; }


        /*=== accommodation.html ===*/
            .accom_stars { --star-score: 1; --star-width: 24px; display: flex; gap: 0px; }
            .accom_star { --star-cnt: 1; position: relative; width: var(--star-width); aspect-ratio: 1/1; }
            .accom_star::before,
            .accom_star::after { content: ''; position: absolute; inset: 0; background: center center / cover no-repeat; }
            .accom_star::before { background-image: url(../img/icon/star-empty.svg); }
            .accom_star::after { background-image: url(../img/icon/star-filled.svg); clip-path: rect(0 calc( var(--star-width) * (var(--star-score) - var(--star-cnt)) ) var(--star-width) 0) }
            .accom_stars > .accom_star:nth-child(1) { --star-cnt: 0; }
            .accom_stars > .accom_star:nth-child(2) { --star-cnt: 1; }
            .accom_stars > .accom_star:nth-child(3) { --star-cnt: 2; }
            .accom_stars > .accom_star:nth-child(4) { --star-cnt: 3; }
            .accom_stars > .accom_star:nth-child(5) { --star-cnt: 4; }

            .accom_card { display: flex; justify-content: space-between; gap: 30px; padding: 32px 40px; border-radius: 20px; background: white; box-shadow: 0 0 10px 0 var(--gray-d6); }
            .accom_card > .accom_desc { display: flex; flex-direction: column; gap: 16px; }
            .accom_card .accom_info { display: flex; align-items: center; gap: 5px; }
            .accom_card .accom_transport { background-color: var(--gray-f5); padding: 8px 15px; border-radius: 8px; }
            .accom_card .accom_links { display: flex; align-items: center; gap: 20px; }
            .accom_card .accom_links > .btn { min-height: unset; padding: 4px 0px; white-space: nowrap; transition: 0.3s all; }
            .accom_card .accom_links > .btn:hover { opacity: 0.8; }
            .accom_card .accom_links > ._splitter { height: 20px; width: 1px; background-color: var(--gray-d6); }
            .accom_card .accom_img { align-self: center; width: 300px; flex-shrink: 0; border-radius: 10px; overflow: hidden; }
            .accom_card .accom_img > img { width: 100%; height: 100%; object-fit: cover; }

            .accom_card._textOnly .accom_transport { flex-grow: 1; }
            .accom_card._textOnly .accom_links { justify-content: space-between; gap: 0px; }
            .accom_card._textOnly .accom_links > .btn { min-height: unset; flex: 1; }
            @media (max-width: 1199.98px){
                .accom_card { padding: 28px 32px; }
                .accom_card .accom_img { width: 240px; }
            }
            @media (max-width: 991.98px){
                .accom_card .accom_transport { flex-grow: 1; }
                .accom_card .accom_links { justify-content: space-between; gap: 0px; }
                .accom_card .accom_links > .btn { min-height: unset; flex: 1; }
                .accom_card .accom_img { width: 90px; margin-left: auto; }
            }
            @media (max-width: 575.98px){
                .accom_card { padding: 20px; }
            }


        /*=== transportation ===*/
            .trans_section_container .mb_16_sm_40 { margin-bottom: 2.5rem; }
            .trans_section_container .ch_mb_8_sm_16  > *:not(:last-child) { margin-bottom: 1rem; }
            .trans_section_container .ch_mb_16_sm_40 > *:not(:last-child) { margin-bottom: 2.5rem; }

            .trans_section_container > section { padding-bottom: 40px; }
            .trans_section_container > section + section { padding-top: 40px; border-top: solid 1px var(--gray-d6); }
            @media (max-width: 575.98px){
                .trans_section_container > section { padding-bottom: 30px; }
                .trans_section_container > section + section { padding-top: 30px; }

                .trans_section_container .mb_16_sm_40 { margin-bottom: 1rem; }
                .trans_section_container .ch_mb_8_sm_16  > *:not(:last-child) { margin-bottom: 0.5rem; }
                .trans_section_container .ch_mb_16_sm_40 > *:not(:last-child) { margin-bottom: 1rem; }
            }


        /*=== about_Taipei ===*/
            .aboutTP_title { display: flex; align-items: center; font-size: var(--fs-h2); font-weight: bold; margin-bottom: 1rem; }
            .aboutTP_title > img { flex-shrink: 0; margin-right: 12px; width: 60px; height: 60px; }
            .aboutTP_warningCard { padding: 24px; border-radius: 10px; background-color: #FFEF92; }
            @media (max-width: 575.98px){
                .aboutTP_title > img { width: 50px; height: 50px; }
            }


        /*=== sponsors.html ===*/
            .sponsors .sponsorRow { padding: 0 20px; }
            .sponsors .sponsorCol { padding: 0px 15px 40px 15px; }
            .sponsors .sponsorItem { text-align: center; }
            .sponsors .sponsorItem .sponsorItem--logo { max-width: 280px; margin: 0 auto 10px auto; /*padding: 5px 10px;*/ }
            .sponsors .sponsorItem .sponsorItem--logo img { display: block; image-rendering: -webkit-optimize-contrast; object-fit: contain; }
            .sponsors .sponsorItem .sponsorItem--text { color: var(--black); text-align: center; line-height: 1.5; padding: 5px 0; }
            .sponsors .sponsorItem .sponsorItem--text ._en { font-size: 18px; padding: 5px 0; }
            .sponsors .sponsorItem .sponsorItem--text ._tw { font-size: 14px; font-weight: bold; }
            @media (max-width: 1599.98px){
                .sponsors .sponsor_btn { left: auto; }
            }
            @media (max-width: 991.98px){
                .sponsors .sponsorRow { padding: 0 15px; }
                .sponsors_detail footer { display: none !important;}
            }
            @media (max-width: 575.98px){
                .sponsors .sponsorCol { padding: 18px 0px 18px 0px; }
                /* .sponsors .sponsorCol:not(:last-child) { border-bottom: 1px solid var(--gray-d6); } */
                .sponsors .sponsorItem { display: flex; align-items: center; justify-content: center; }
                .sponsors .sponsorItem .sponsorItem--logo { flex: 0 0 40%; max-width: 200px; max-height: none; margin: auto; }
                .sponsors .sponsorItem .sponsorItem--text { flex: 0 1 52%; max-width: 52%; text-align: left; font-size: 14px; padding-left: 8px; }
            }
            .sponsors_group { text-align: center; font-weight: bold; font-size: 24px; }
            @media (max-width: 575.98px) {
                .sponsors_group { font-size: 18px; }
            }


        /*=== receipt.html ===*/
            .receiptContainer { max-width: 175mm; margin: auto; }
            .receiptTitle { font-size: 22px; font-weight: bold; }
            .receiptTable { border: solid 1px #000; }
            .receiptTable td { padding: 8px; border-bottom: solid 1px #000; }
            .receiptTable > tbody > tr > td:first-child { white-space: nowrap; width: 0; }


        /*=== sign_up.html ===*/
            #modal-policy-tw .list_custom li:nth-child(n+2) { margin-top: 0.5rem }


        /*=== error.html ===*/
            .error_page { text-align: center; padding-block: clamp(24px, 6vw, 80px); }
            .error_page--status { font-family: var(--ff-Roboto); font-size: clamp(80px, 18vw, 180px); font-weight: 700; line-height: 1; color: var(--main); letter-spacing: 0.05em; }
            .error_page--title { font-size: var(--fs-h1); font-weight: bold; color: var(--black); margin-top: 12px; margin-bottom: 16px; }
            .error_page--message { font-size: var(--fs-p); color: var(--gray-70); margin-bottom: 32px; word-break: break-word; }
            .error_page--actions { justify-content: center; margin-top: 24px; }


    /*====== 備註 ======*/
        /*=== mobile(0) --> PC(∞) ===*/
            @media (min-width: 576px) {}
            @media (min-width: 768px) {}
            @media (min-width: 992px) {}
            @media (min-width: 1200px) {}
            @media (min-width: 1600px) {}

        /*=== PC(∞) --> mobile(0) ===*/
            @media (max-width: 1599.98px) {}
            @media (max-width: 1199.98px) {}
            @media (max-width: 991.98px) {}
            @media (max-width: 767.98px) {}
            @media (max-width: 575.98px) {}
