/*
    Structure instruction：
        # [Default Css]
            - [Root Css]: :root { ... }
            - [Structure]: html, body, #wrap, main ...
            - [HtmlTag]: h1, a, ::-webkit-scrollbar ...

        # [Plugins]
            - [Plugins Modified]: Bootstrap Modals...
            - [Plugins SelfMade]: My Modals...

        # [Public Style]
            - [Simple Css]: typesetting, color ... ( Single Css )
            - [Elements]: button, checkbox, icon ... ( Simple Component )
            - [Components]: RWD_table, user_card ... ( Complex Components )

        # [Pages]
            - [Include Page]: header, footer ...
            - [Current Page]: #login, #about ...

    -- Author Comebuy
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700&display=swap');

/*######### [Default Css] #########*/
    /*====== [Root Css] ======*/
        :root {
            --wh: 100vh;
            --header-h: 60px;

            --primary: #002855;
            --primaryDark: #192D41;
            --info: #469ccf; 
            --link: #469CCF;

            --dark: #3d4049;
            --gray: #707070;
            --light: #e4e4e4;
            --white: #ffffff;
            
            --fs-p: 16px;
        }
        @media( max-width: 575.98px ){
            :root {
                --fs-p: 14px;
            }
        }


    /*====== [Structure] ======*/
        html { scroll-behavior: smooth; }
        body { font-family: 'Noto Sans TC', 'Microsoft JhengHei', sans-serif; font-size: var(--fs-p); color: var(--dark); }
        #wrap { display: flex; flex-direction: column; min-height: var(--wh); margin-left: auto; margin-right: auto; }
        main { flex-grow: 1; }


    /*====== [Default Html] =======*/
        a { color: inherit; text-decoration: none; }
        a:hover { color: inherit; text-decoration: none; }
        label { margin-bottom: 0; }
        

/*######### [Plugins] #########*/
    /*====== [Plugins Modified] ======*/
        /*=== Bootstrap ===*/
            .btn:focus, .form-control:focus, .form-select:focus { box-shadow: 0 0 0 0.15rem rgba(0, 40, 100, 0.2) }
            .medium-zoom-image--opened { z-index: 99; }

    /*====== [Plugins SelfMade] ======*/
        /*=== js-input-eye ===*/

/*######### [Public Style] #########*/
    /*====== [Simple Css] ======*/
        /*=== emmet ===*/
            /* position */
                .pos-s {position:static !important;}
                .pos-a {position:absolute !important;}
                .pos-r {position:relative !important;}
                .pos-f {position:fixed !important;}

            /* display */
                .d-n {display:none !important;}
                .d-b {display:block !important;}
                .d-f {display:flex !important;}
                .d-if {display:inline-flex !important;}
                .d-i {display:inline !important;}
                .d-ib {display:inline-block !important;}

            /* font */
                .fw-n {font-weight:normal !important;}
                .fw-b {font-weight:bold !important;}
                .fw-br {font-weight:bolder !important;}
                .fw-lr {font-weight:lighter !important;}
                .fs-n {font-style:normal !important;}
                .fs-i {font-style:italic !important;}
                .fs-o {font-style:oblique !important;}

                .ta-l {text-align:left !important;}
                .ta-c {text-align:center !important;}
                .ta-r {text-align:right !important;}
                .ta-j {text-align:justify !important;}

                .whs-n {white-space:normal !important;}
                .whs-nw {white-space:nowrap !important;}

            /* flex */
                .ai-b {align-items:baseline !important;}
                .ai-c {align-items:center !important;}
                .ai-fe {align-items:flex-end !important;}
                .ai-fs {align-items:flex-start !important;}
                .ai-s {align-items:stretch !important;}
        
                .as-a {align-self:auto !important;}
                .as-b {align-self:baseline !important;}
                .as-c {align-self:center !important;}
                .as-fe {align-self:flex-end !important;}
                .as-fs {align-self:flex-start !important;}
                .as-s {align-self:stretch !important;}

                .jc-c {justify-content:center !important;}
                .jc-fe {justify-content:flex-end !important;}
                .jc-fs {justify-content:flex-start !important;}
                .jc-sa {justify-content:space-around !important;}
                .jc-sb {justify-content:space-between !important;}


        /*=== location ===*/
            .loc-1 { left:0; bottom:0; }
            .loc-2 { left:50%; bottom:0; transform:translate(-50%,0%); }
            .loc-3 { right:0; bottom:0; }
            .loc-4 { left:0; top:50%; transform:translate(0%,-50%); }
            .loc-5 { left:50%; top:50%; transform:translate(-50%,-50%); }
            .loc-6 { right:0; top:50%; transform:translate(0%,-50%); }
            .loc-7 { left:0; top:0; }
            .loc-8 { left:50%; top:0; transform:translate(-50%,0%); }
            .loc-9 { right:0; top:0; }
            
            .loc-t { left:0; right:0; top:0; }
            .loc-b { left:0; right:0; bottom:0; }
            .loc-l { left:0; top:0; bottom:0; }
            .loc-r { right:0; top:0; bottom:0; }
            .loc-full { left:0; right:0; top:0; bottom:0; }


        /*=== color ===*/
            .c_primary { color: var(--primary) !important; }
            .c_info { color: var(--info) !important;    }
            .bg_primary { background-color: var(--primary) !important; }


        /*=== font ===*/
            .fs-h1 { font-size: 24px; }
            .fs-h2 { font-size: 18px; }
            .fs-h3, .fs-p { font-size: 16px; }
            .fs-h4 { font-size: 14px; }
            .fs-h5 { font-size: 14px; } 
            .fs-h6 { font-size: 14px; }


        /*=== typesetting ===*/
            .lh-2 { line-height: 2; }
            .-my-3 { margin-top: -1rem; margin-bottom: -1rem; }
            .flex_center { display: flex; align-items: center; justify-content: center; }
            .flex_center_a { display: flex; align-items: center; }
            .max-w-980 { max-width: 980px; }
            .prevent_mobile_refresh { overscroll-behavior-y: contain; }


    /*====== [Elements] ======*/
        .bg_img { background: center center no-repeat; background-size: cover; }

        .alink { color: var(--link); text-decoration: underline; }
        .alink:hover { color: var(--link); }
        .aHoverLink { color: var(--link); }
        .aHoverLink:hover { color: var(--link); text-decoration: underline; }

        .img_text { display: inline-flex; align-items: center; }
        .img_text > *:first-child { margin-right: 8px; }

        .scrollBar::-webkit-scrollbar { -webkit-appearance: none; }
        .scrollBar::-webkit-scrollbar:vertical { width: 8px; }
        .scrollBar::-webkit-scrollbar:horizontal { height: 8px; }
        .scrollBar::-webkit-scrollbar-thumb { border-radius: 8px; border: 2px solid white; background-color: rgba(0,0,0,.25); }


    /*====== [Components] ======*/
        .newsTag { display: inline-flex; align-items: center; height: 32px; font-size: 14px; color: white; padding: 0 18px; border-radius: 50px; background-color: #002855; }



/*######### [Pages] #########*/
    /*====== [Include Page] ======*/
        /*=== header / mobile-header ===*/
            header { position: sticky; height: var(--header-h); top: 0; width: 100%; z-index: 50; background-color: var(--primaryDark); color: #fff; overflow: hidden; }
            #header-navbar { padding: 0; color: white; }
            #header-navbar-nav { flex-direction: row; }
            #header-navbar-nav .nav-link { color: white; padding: 6px 18px; text-align: center; line-height: 1.2; }
            @media( max-width: 767.98px ){
                #header-navbar > [class*=container] { justify-content: center; }
                #header-navbar .navbar-brand { margin: 0; }
                #header-navbar-nav { height: var(--header-h); position: fixed; bottom: 0; left: 0; right: 0; background-color: var(--primaryDark); align-items: center; }
                #header-navbar-nav .nav-link { padding: 0 8px; width: calc(100vw / 5); height: calc(var(--header-h) - 14px); display: flex; align-items: center; justify-content: center; }
                #header-navbar-nav > .nav-item:not(:last-child) .nav-link { border-right: solid 1px #61717d; }
            }
            @media( max-width: 575.98px ){
                #header-navbar-nav .nav-link { padding: 0 4px; font-size: 15px; }
            }


        /*=== footer ===*/
            footer { text-align: center; background-color: #F5F5F5; }
            @media( max-width: 767.98px ){
                footer { margin-bottom: var(--header-h); }
            }


        /*=== twMap ===*/
            /* map */
                /* 關係圖: #twMap > #twMap-map > #twMap-svgBox > #svg */
                #twMap { --map-bg: #f5f5f5; position: relative; background-color: var(--map-bg); text-shadow: 0 0 2px var(--map-bg); }
                #twMap-map { overflow: hidden; height: var(--wh); transition: height 0.15s; }
                #twMap-svgBox { position: relative; left: 0; right: 0; top: 0; bottom: 0; }
                #svg-tw { shape-rendering: optimizeSpeed; position: absolute; left: 0; right: 0; top: 0; bottom: 0; fill: none; background-color: var(--map-bg); }
                #svg-tw path { stroke: #111; stroke-width: 0.2px; cursor: pointer; }
                #svg-tw path.town:hover { filter: brightness(120%); opacity: 0.9; }
                #svg-tw path.town.active { fill: url(#pattern1) !important; animation: 1.2s twinkleTown infinite; }
                #svg-tw path.county:hover { opacity: 0.9; stroke-width: 0.4px; }
                #svg-tw path.county.active { stroke-width: 0.6px; pointer-events: none; animation: 1.2s twinkleCounty infinite; box-shadow: 1px 1px 10px 10px #ff0000; }
                #svg-tw path.town.active ~ path.county.active { animation-play-state: paused; }
                @keyframes twinkleTown {
                    0% { opacity: 1; }
                    50% { opacity: 0.85; }
                    100% { opacity: 1; }
                }
                @keyframes twinkleCounty {
                    0% { fill: rgba(255,255,255,0.05); }
                    50% { fill: rgba(0,0,0,0.05); }
                    100% { fill: rgba(255,255,255,0.05); }
                }
                
                #twMap-map-cursor { display: none; position: fixed; left: -999px; top: -999px; pointer-events: none; padding: 4px; text-align: center; border: solid 1px rgba(0,0,0,0.15); border-radius: 0.25rem; background-color: #fff; user-select: none; }


            /* map UI */
                /* 關係圖: #twMap > #twMap-? */
                #twMap-mapUI-top { position: absolute; top: var(--header-h); left: 0; right: 0; text-shadow: 0px 0px 2px white; transition: top .2s ease-in; }
                #twMap-choose { position: absolute; top: 8px; left: 8px; z-index: 10; display: flex; align-items: center; max-width: 320px; user-select: none; }
                #twMap-infoBox { position: absolute; top: 0; left: 0; z-index: 30; width: 100%; display: flex; justify-content: center; padding: 8px 8px 0 8px; pointer-events: none; }
                .twMap-infoBox { padding: 24px; max-width: 380px; margin: 8px 3rem; display: inline-flex; border: solid 2px #fff; box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2); background-color: rgb(255,255,255,0.5); border-radius: 4px; backdrop-filter: blur(1px); }
                .twMap-infoBox::before { content: ''; flex-shrink: 0; margin-top: 4px; vertical-align: middle; width: 18px; height: 18px; margin-right: 8px; background: url(../img/icon/circle-exclamation-solid.png) center center no-repeat; background-size: contain; }
                @media( max-width: 1099.98px ){
                    .twMap-infoBox { margin-top: 3.5rem; padding: 20px 24px; }
                }
                @media( max-width: 575.98px ){
                    .twMap-infoBox { margin-top: 3.5rem; padding: 12px; }
                }
                #twMap-backBtn { position: absolute; left: 0; top: 66px; z-index: 10; max-width: 48px; border-color: #ff5a5a; background-color: #ff5a5a; white-space: normal; }
                #twMap-zoomBtn { position: absolute; top: 8px; right: 8px; z-index: 10; display: flex; flex-direction: column; }
                #twMap-legend { position: absolute; bottom: 8px; left: 8px; z-index: 10; text-align: center; }
                #twMap-detail { position: absolute; bottom: 0; right: 0; z-index: 10; --detail-maxH: calc(100vh - 100px); width: 420px; max-height: var(--detail-maxH); background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.125); border-radius: 0.25rem; overflow: auto; }
                #twMap-detail-head { padding: 16px 16px 8px 16px; position: sticky; top: 0; z-index: 10; background-color: #fff; }
                #twMap-detail-body-toggler { position: absolute; top: 0; right: 0; padding: 0 12px; margin: 1rem; color: var(--gray); border: 1px solid var(--gray); }
                #twMap-detail-body { padding: 0px 16px 0px 16px; }
                #twMap-detail-body > * { padding-bottom: 12px; margin-bottom: 12px; }
                #twMap-detail-body > *:not(:last-child) { border-bottom: solid 2px #eee; }
                @media( max-width: 767.98px ){
                    #twMap-detail { --detail-maxH: calc(100vh - 360px); }
                    #twMap-detail-body { height: 100% }
                    #twMap-legend { bottom: calc( var(--header-h) + 8px ); }
                }
                @media( max-width: 575.98px ){
                    #twMap-detail { --detail-maxH: calc(50vh); width: 100%; margin: 0px; }
                }

                #twMap-zoomIn { padding: 0; width: 36px; height: 36px; background: url(../img/icon/zoom_in@2x.png) center center no-repeat; background-size: contain; image-rendering: -webkit-optimize-contrast; }
                #twMap-zoomOut { padding: 0; width: 36px; height: 36px; background: url(../img/icon/zoom_out@2x.png) center center no-repeat; background-size: contain; image-rendering: -webkit-optimize-contrast; }

    /*====== [Current Page] ======*/
        /*=== index ===*/
            #index header { position: fixed; left: 0; }
            /* sections (common) */
                .section_container { display: flex; }
                .section_container > *:not(.section_title) { flex: 1 }
                .section_title { text-align: center; color: var(--primaryDark); }
                .section_title > * { position: relative; display: inline-block; font-size: 24px; font-weight: bold; margin: 0 3rem 0 0; letter-spacing: 0.5em; writing-mode: vertical-rl; text-orientation: mixed; }
                .section_title > *::after { content: ''; position: static; display: inline-block; width: 0.5em; height: 5em; margin-top: 0.25em; background: linear-gradient( to bottom, #C0CED4 0%, transparent 100%); }
                .section_title._right > * { margin: 0 0 0 3rem; }
                .section_title._right > *::after { height: 7.5em; }
                @media( max-width: 991.98px ){
                    .section_title > * { margin: 0 1.5rem 0 0; }
                    .section_title._right > * { margin: 0 0 0 1.5rem; }
                }
                @media( max-width: 767.98px ){
                    .section_container { flex-direction: column; }
                    .section_title { order: -1; }
                    .section_title > *, .section_title._right > * { padding-bottom: 0.75em; font-size: 20px; margin: 0 0 2rem 0; writing-mode: initial; }
                    .section_title > *::after, .section_title._right > *::after { position: absolute; left: 0; bottom: 0; width: 100%; height: 0.5em; background: linear-gradient( to right, #C0CED4 0%, transparent 100%); }
                }

                .section { padding-top: 4rem; padding-bottom: 4rem; position: relative; }
                .section > .hashTag { position: absolute; top: calc( -1 * var(--header-h)); }
                @media( max-width: 767.98px ){
                    .section { padding-top: 2rem; padding-bottom: 2rem; }
                }

            /* section0 - Banner */
                .section0_bg { background: url(../img/banner@2x.jpg) center center no-repeat; background-size: cover; height: 490px; color: white; position: relative; display: flex; flex-direction: column; justify-content: center; text-align: center; }
                .section0_streamer { color: #001f45; background-image: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,0) 100%); max-width: 700px; margin: auto; font-size: 24px; font-weight: bold; letter-spacing: 14px; }
                .section0_desc { line-height: 2; }
                @media( max-width: 575.98px ){
                    .section0_streamer { font-size: 18px; letter-spacing: 10px; padding: 4px; }
                }

            /* section1 - 公司簡介 */
                .section1_intro { display: flex; align-items: center; line-break: anywhere; }
                .section1_cards { flex: 1; align-self: flex-start; max-width: 320px; margin-right: 56px; }
                .section1_cards > * { background-color: var(--primary); color: white; padding: 1.5rem 1.75rem; font-weight: 300; line-height: 2; }
                .section1_desc { flex: 1; line-height: 2; }
                @media( max-width: 991.98px ){
                    .section1_cards { margin-right: 32px; }
                }
                @media( max-width: 575.98px ){
                    .section1_intro { flex-direction: column; }
                    .section1_cards { align-self: center; margin: 0 0 20px 0; }
                }
                .section1_memberBlock { display: flex; color: var(--gray); font-size: 14px; }
                .section1_memberBlock ._pic { width: 180px; flex-shrink: 0; margin-right: 32px; }
                .section1_memberBlock ._title { font-size: 14px; color: var(--primary); font-weight: bold; margin-bottom: 2px; }
                .section1_memberBlock ._name { font-size: 24px; color: var(--primary); margin-bottom: 4px; }
                .section1_memberBlock ._blocks > * { padding: 10px 0; }
                .section1_memberBlock ._blocks > *:not(:first-child) { border-top: solid 1px #e4e4e4; }
                @media( max-width: 575.98px ){
                    .section1_memberBlock ._pic { width: clamp(100px,30vw,180px); margin-right: clamp(18px,5.5vw,24px); }
                }

            /* section2 - 網路調查 */
                .section2_bg { background-color: rgba(191, 205, 212, 0.5); }

            /* section3 - 大數據 */
                .section3_bg { background: url(../img/bg_data@2x.jpg) center top no-repeat; background-size: cover; }
                .section3 { display: flex; flex: 1; }
                .section3 > ._text { flex: 1; }
                .section3 > ._img { width: 340px; flex-shrink: 0; margin-left: 48px; text-align: center; align-self: flex-end; }
                .section3 ._imgBlock { color: #61717d; font-size: 14px; max-width: 340px; margin: auto; }
                .section3 ._text1 { font-size: 34px; font-weight: bold; margin-bottom: 16px; }
                .section3 ._text2 { font-size: 24px; color: #bfcdd4; margin-bottom: 30px; }
                .section3 ._text3 { font-size: 16px; font-weight: bold; margin-bottom: 30px; }
                .section3 ._text3 > * { margin-bottom: 8px; }
                .section3 ._text4 { line-height: 2; text-align: left; }
                @media( max-width: 991.98px ){
                    .section3 { flex-direction: column; }
                    .section3 > * { max-width: 600px; margin: auto; }
                    .section3 > ._img { order: -1; margin-left: 0; align-self: center; }
                    .section3 ._imgBlock { text-align: center; }
                    .section3 ._text { text-align: center; }
                }
                @media( max-width: 575.98px ){
                    .section3 ._text1 { font-size: 24px; }
                    .section3 ._text2 { font-size: 16px; }
                    .section3 ._text3 { font-size: 13px; }
                    .section3 ._text4 { font-size: 13px; }
                }

            /* section4 - 研究發佈 */
                .section4 ._newsRow ._line1 { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 10px 0; }
                /* .section4 ._newsRow > *:nth-child(6n+1) .newsTag { background-color: #002855; }
                .section4 ._newsRow > *:nth-child(6n+2) .newsTag { background-color: #004987; }
                .section4 ._newsRow > *:nth-child(6n+3) .newsTag { background-color: #61b3e4; }
                .section4 ._newsRow > *:nth-child(6n+4) .newsTag { background-color: #263645; }
                .section4 ._newsRow > *:nth-child(6n+5) .newsTag { background-color: #007a89; }
                .section4 ._newsRow > *:nth-child(6n+6) .newsTag { background-color: #7aded4; } */
                .section4 ._newsRow .newsTag.tag1 { background-color: #002855; }
                .section4 ._newsRow .newsTag.tag2 { background-color: #004987; }
                .section4 ._newsRow .newsTag.tag3 { background-color: #61b3e4; }

                .section4 ._time { color: var(--gray); font-size: 14px; }
                .section4 ._desc { color: var(--primaryDark); font-size: 18px; font-weight: bold; line-height: 1.65; }
                .hoverZoomBgSize._hoverZoomBgSize-target,
                .hoverZoomBgSize ._hoverZoomBgSize-target { transition: background-size 0.5s; background-size: 100%; }
                .hoverZoomBgSize:hover ._hoverZoomBgSize-target { background-size: 120%; }

            /* section5 - 聯絡我們 */
                .section5 ._text { display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 16px; }
                .section5 ._text > ._infos { display: flex; flex-wrap: wrap; }
                .section5 ._text > ._infos > * { margin: 0 30px 16px 0; }
                @media( max-width: 767.98px ){
                    .section5 ._text > ._infos { width: 100%; flex-direction: column; align-items: center; }
                    .section5 ._text > ._infos > * { margin-right: 0; }
                    .section5 ._text > ._FB { width: 100%; text-align: center; }
                }



        /*=== news-detail ===*/
            .news-container { --news-pt: 50px; display: flex; padding-block: var(--news-pt) 50px; max-width: 1000px; margin-inline: auto; }
            .news-sticky-panel { width: 320px; flex-shrink: 0; align-self: flex-start; position: sticky; top: calc( var(--header-h) + var(--news-pt) ); z-index: 0; }
            .news-article-panel { width: 100%; padding-left: 60px; }
            @media( max-width: 991.98px ){
                .news-container { flex-wrap: wrap; --news-pt: 24px; max-width: 620px; }
                .news-sticky-panel { width: 100%; position: static; text-align: center; }
                .news-article-panel { padding-left: 0; }
            }

            .editor,
            .editor * { line-height: 1.75; }
            .editor a,
            .editor a:hover { color: -webkit-link; cursor: pointer; text-decoration: underline; }
            .editor img { image-rendering: -webkit-optimize-contrast; }
            .editor figcaption { font-size: 14px; padding-top: 4px; color: var(--gray); }
            .editor h4 { font-size: 18px; font-weight: bold; color: var(--primaryDark); }



@media( min-width: 576px ){}
@media( min-width: 768px ){}
@media( min-width: 992px ){}
@media( min-width: 1200px ){}
@media( min-width: 1400px ){}