@charset "utf-8";

/*theme-bg 背景色*/
.theme-bg{background:#f1efeb;background-image: url(../img/bg.png);background-position: center top;  background-repeat: no-repeat;}

/*模組背景色*/
.module { background: #ffffff; border: 1px solid #dcae77; border-radius: 8px;}
:not(.module-content).module-padding.module-bg { background: #ffffff; border: 1px solid #89e7ca; border-radius: 8px;}

/**************************************************
= header 上方登入選單
********************/
header, header a, header button, header .dropdown-content a { background: rgba(255,255,255,0.8);}
header>a,header>div{color:#4f7836;}
header .fontsize button {color: #ffffff; background-color:#54812c; border:none; }
header .fontsize button:hover {background-color: rgba(70, 140, 0,1); color: #ffffff; }
header .dropdown svg { fill: #468c00;}
header a:hover,
header>div:hover{ color:#ad5a10; }
header .dropdown-content a:hover{ color:#4b712e; background-color: rgb(241, 245, 225); }
.login .top-space header { padding-top: 45px;}
.logo,.logo a { font-size: 2rem;  color: #0e6566;}

@media screen and (max-width: 767px) {
header, header a, header button, header .dropdown-content a { background: #89be54;}
header>a,header>div{ color:#ffffff; }
header a:hover, header>div:hover { color: rgba(255,255,255,0.8);}
header .dropdown svg{ fill:#ffffff; }
header .dropdown-content a:hover { color: #bc8ce4; background-color: rgb(246, 235, 255);}
.theme-bg { background-position: -550px 30px;}
.login .top-space header { padding-top: 0px;}
}

@media screen and (max-width:520px){
.theme-bg { background-position: -700px 0px;}
}

/**************************************************
= theme 上方主圖
********************/
h1 strong { position: relative;}
h1 strong.picshow { position: absolute; top: -900px;}

/**************************************************
= navbar 橫式選單模組
********************/
.navbar { background-color:#ed96af;}
.navbar ul{ max-width: 1500px; justify-content: center;}
.navbar li:hover a {color:#1d463b;}
.navbar li:hover .navbar-svg { fill: #9adcdc;}
.navbar li:hover ul a,.navbar ul li a:focus + .navrwd + .menuhidden{ background-color:#ed96af; color:#74122d;}
.navbar li:hover ul a:hover { background-color:#c41c4e;}
.navbar li .menuhidden.navbar-menu a { background-color:#ed96af; color:#74122d;}
.navbar li .menuhidden.navbar-menu a:hover { background-color:#c41c4e; color:#ffffff;}
.navbar li ul li { border-bottom:1px solid #de6688; min-width:max-content;}
.navbar li a{color:#74122d;}
.navrwd-svg svg{ fill: #74122d;}

@media screen and (max-width: 767px) {
.navbar ul li, .navbar li a { background: #ed96af; color: #ffffff;}
.navbar li:hover a{ color: #ffecf1;}
.navbar ul li{border-bottom:1px solid #ffc3d4;}
.navbar .show-menu{ color: #bc8ce4;background:#ffffff}
.navbar .show-menu .ct-hamburger svg { fill:#ed96af;}
.navbar li:hover ul a {  background: #ffbcce;  color: #da577d;}	
.navbar li:hover ul a:hover { background-color:#ffdae4;color: #da577d;}
.navbar li .menuhidden.navbar-menu a { background: #ffbcce;  color: #da577d;}
.navbar li .menuhidden.navbar-menu a:hover { background-color:#ffdae4;color: #da577d;}
.navrwd-svg{ background: rgb(247, 190, 206); border: none;}
.navrwd-svg svg{ fill: #74122d;}
.navbar li ul li { border: 0;}
}

@media screen and (min-width: 1680px){
.navbar>ul>li { padding: 0 18px;}
}

@media screen and (min-width: 992px) and (max-width: 1679px){
.navbar>ul>li {padding: 0 8px;}
}

@media screen and (min-width: 768px) and (max-width: 991px){
.navbar>ul>li {padding: 0 5px;}
}


/**************************************************
= breadcrumb 麵包屑
********************/
.breadcrumb-item + .breadcrumb-item::before {border-left: 8px solid #b77418;}
.breadcrumb-item.active {color:#70440b;}
.breadcrumb a{color:#805110;}
.breadcrumb a:hover{color:#77490c;}

/**************************************************
= footer 最下方聯絡資訊
********************/
.footerbg{ background-color: inherit; color:#734e0e; background-image: url(../img/footer.png); background-repeat: no-repeat;}
.footerbg a {color: #926312;}
.connect-links,.connect .text.connect-explorer{ color: #926312;}
.connect-links:hover{text-decoration: none;color:#926312;}

.copyright{color:#335238;}

/**************************************************
= module title 模組標題
********************/
.module-title { color: #ca4a5a;}

/**************************************************
= color
********************/

/* tab頁簽 ********************/
.nav-tabs {border-bottom-color:#ed96af;}
.nav-tabs .nav-item,.nav-pills .nav-item{margin-right: 2px;}
.nav-tabs .nav-item a,
.nav-pills .nav-item a{ color: #7d3b4d; background: #ebb6c5; border-color: #ebb6c5 #ebb6c5 #F39BB8;}
.nav-pills .nav-item a{ border-bottom: 1px solid #f4ffd4;}
.nav-tabs .nav-link:focus,
.nav-tabs .nav-link:hover {  color: #441e28; background: #ebb6c5; border-color: #ebb6c5 #ebb6c5 #F39BB8;}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {color: #ffffff; background: #b3556f;      border-color: #b3556f #b3556f #b3556f;}
.nav-pills .nav-link:focus,
.nav-pills .nav-link:hover { color: #ffffff; background-color: #ed96af;}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {color: #fff;background-color:#ed96af;}
.nav-tabs .nav-link.disabled,
.nav-pills .nav-link.disabled {color: #868e96;}
.ct-dropdown-menu { background-color: #fff;  border: 1px solid #ed96af;}
.ct-dropdown-item { color: #3a92e9;}
.nav-tabs .nav-item .ct-dropdown-item, .nav-tabs .nav-item .ct-dropdown-item{ border: 0; background: #ffffff; border-top: 1px solid #F5D0DC;color: #ed96af;}
.nav-tabs .nav-item .ct-dropdown-item:focus,
.nav-tabs .nav-item .ct-dropdown-item:hover { color: #ed96af; background-color: #fdf1f4;}


/* table表格 ********************/
.ct-table th,.ct-table td {border-top-color:#ccc;}
.ct-table tbody + tbody {border-top-color:#ccc;}
.table-striped tbody tr:nth-of-type(odd) { background-color:#f3f3f4;}
.ct-table .thead-light th { color: #57504a;  background-color: #fcf1f4;border-color: #f39bb5;  border-bottom: 1px solid #f39bb5;}
.ct-table .thead-dark th { color: #ffffff;     background-color: #ed96af;border-color: #d8819a;}
.table-bordered {border-color: #e9ecef;}
.table-bordered th,.table-bordered td {border-color:#ccc;}
.table-hover tbody tr:hover { background-color:#fcf1f4;}

@media only screen and (max-width: 575px){
.table-responsive .ct-table  td:before,
.table-responsive .ct-table th:before{color:#2d67a0;}
}

/* nav-Vertical 直式選單 ********************/
.nav-Vertical ul li .sub-menu-item{ background: #f3f3f4; color: #676767;  border-bottom-color: #ffc6d7;}
.nav-Vertical ul li .sub-menu-item:hover { background:#ed96af; color: #ffffff;}
.nav-Vertical ul li .sub-menu-item a{color:#ad526b;}
.nav-Vertical ul li .sub-menu-item a:hover,
.nav-Vertical ul li .sub-menu-item a:focus,
.nav-Vertical ul li .sub-menu-item a:active,
.nav-Vertical ul li .sub-menu-item .active,
.nav-Vertical ul li .sub-menu-item:hover a{color:#6b2b3e;}
.nav-Vertical ul li .menu-arrow svg{ fill:#e66576;}
.nav-Vertical ul li .menu-arrow:hover svg{ fill: #ffffff;}
.nav-Vertical ul li ul li .sub-menu-item{ background: #fff5f8; color: #a9596f;}
.nav-Vertical ul li ul li ul li .sub-menu-item{ background:#eefefd;}
.nav-Vertical ul li ul li .sub-menu-item:hover,
.nav-Vertical ul li ul li ul li .sub-menu-item:hover { background: #ffffff; color: #a95984; border-left-color: #ed96af;}
.vertical-hamburger { background:#ed96af;}
.vertical-hamburger svg { fill:#ffffff;}


.ct-sitemap{background:rgba(255,255,255,0.5);}
.sitemap-title { background: #f3c3d1; color: #933751;}
.sitemap-block { background: #ffffff;}
.sitemap-item a { color: #0e6566; border-left-color:#d46987 ; background: #f5f5f5;}
.sitemap-item a:hover,
.sitemap-item a:focus{background:#fff1f5;}
.sitemap-icon svg {fill: #ffffff;}

/*span-color-ga003*/
.span-color-ga003,a.span-color-ga003{color: #f06577;}
a.span-color-ga003:hover,a.span-color-ga003:focus {color:#e24a5e;}

/*span-color-ga007*/
.span-color-ga007,a.span-color-ga007{color: #f06577;}
a.span-color-ga007:hover,a.span-color-ga007:focus {color:#e24a5e;}

/*線上報修button-ga009********************/
.repair-basicset .btn-primary { color: #ffffff;  background-color:#b3556f;  border-color:#b3556f;  fill: #ffffff;}
.repair-basicset .btn-primary:hover,.repair-basicset .btn-primary:focus,.repair-basicset .btn-primary:active,.repair-basicset .btn-primary.active,.repair-basicset .open .ct-dropdown-toggle.btn-primary,.repair-basicset .btn-primary:active:focus,.repair-basicset .btn-primary:active:hover,.repair-basicset .btn-primary.active:hover,.repair-basicset .btn-primary.active:focus{background:#8c3f55;}
.repair-basicset .btn-primary.active.focus,.repair-basicset .btn-primary.active:focus,.repair-basicset .btn-primary.active:hover,.repair-basicset .btn-primary:active.focus,.repair-basicset .btn-primary:active:focus,.repair-basicset .btn-primary:active:hover,.repair-basicset .open>.ct-dropdown-toggle.btn-primary.focus,.repair-basicset .open>.ct-dropdown-toggle.btn-primary:focus,.repair-basicset .open>.ct-dropdown-toggle.btn-primary:hover{ background:#8c3f55;}

/* CGA001 圖文公告換色 ********************/
.ct-focusslider .focus-content .textblock{ background:#fff5f8; color: #545454; border-bottom: 4px solid #ed96af;}
.ct-focusslider .focus-content .textblock.notice-color{background:#f5f5f5; color: #545454;  border-bottom: 4px solid #ed96af;}
/*CGA001 圖文公告箭頭顏色*/
.ct-focusslider .focus-controls .focus-arrow{ fill:#77a47c; }
.ct-focusslider .focus-controls .focus-arrow:hover { fill: #3f7d49;}
.ct-focusslider .focus-controls .focus-arrow.focus-end{ fill: rgba(175, 175, 175, 1);}

/* GA017 全文檢索*******************/
.cmgch-google .btn-all{ color: #ffffff; background-color:#b3556f; border-color:#b3556f; fill: #ffffff;}
.cmgch-google .btn-all:hover,.cmgch-google .btn-all:focus,.cmgch-google .btn-all:active,.cmgch-google .btn-all.active,.cmgch-google .btn-all:active:focus,.cmgch-google .btn-all:active:hover,.cmgch-google .btn-all.active:hover,.cmgch-google .btn-all.active:focus { color: #ffffff; background-color:#8c3f55;  border-color:#b3556f; fill: #ffffff;}
.cmgch-google .btn-advanced{ color: #ffffff; background-color: #797979; border-color: #797979; fill: #ffffff;}
.cmgch-google .btn-advanced:hover,.cmgch-google .btn-advanced:focus,.cmgch-google .btn-advanced:active,.cmgch-google .btn-advanced.active,.cmgch-google .btn-advanced:active:focus,.cmgch-google .btn-advanced:active:hover,.cmgch-google .btn-advanced.active:hover,.cmgch-google .btn-advanced.active:focus { color: #ffffff; background-color: #676767;  border-color: #676767; fill: #ffffff;}
.cmgch-google .form-group-m input { caret-color:#ed96af;} 
.cmgch-google .form-group-m .bar::before {background:#ed96af;}

/*GA027 跑馬燈*/
.ct-row.module-padding.bg-no.border-no.module-bg.ct5e1427edfd724105bd1cf164 { border: none;}

/*freeze btn overflow *******************/
#noticeview_to_print .ct-btn {white-space: normal;}

/*權限scrollbar *******************/
.select-menu-container.select-visible .select-menu {overflow-y: scroll; height: 150px;}

/**************************************************
= 焦點指示器 focus indicator（WCAG 1.4.11 非文字對比 / GN2141100E）

   問題來源有三層，都不合格：
     basic.css :focus{outline:2px dotted #d26800}     對粉紅#ed96af 1.68:1
     basic.css #menu a:focus{outline:2px solid #007aff} 對粉紅#ed96af 1.83:1
     各模組自帶 .ct<uniq> …:focus{outline:2px dotted #d26800}（本站 21 處）

   一律改 solid（點虛線的視覺厚度會被判定未達 2px），並改用「雙色環」：
   內圈白 3px（box-shadow）＋ 外圈深紅 2px（outline），兩色互比 11.25:1。

   ※ 為什麼要雙色而不是單色：
     單色永遠有死角 —— #74122d 壓在輪播照片的深藍海水上只有 1.29:1。
     雙色環掃過整條亮度軸，最壞情況（背景 L=0.263）較好的那條帶仍有
     3.35:1，等於任何底色（含使用者上傳的照片）都保證過 3:1。
     深藍海水 白8.72／珊瑚礁土黃 深紅3.58／中灰 白3.95／粉紅選單 深紅5.13。
     附帶效果：深色按鈕面（#b3556f 4.72、#797979 4.35、#54812c 4.61）
     不再需要個別開白框例外，故原本那組例外規則已移除。

   ※ 為什麼用 box-shadow 而不是 border：
     border 佔版面，focus 時會把元素撐大、整排位移；box-shadow 的 spread
     完全不參與排版，也不會吃掉元件原本的 border 設計。

   ※ 為什麼要 !important：
     模組 CSS 不是 <link>，是 siteserver.js 在 runtime 注入的 <style>，
     位置永遠在版型 <link> 之後；且模組規則帶 .ct<uniq> 前綴，權重 (0,3,1)
     遠高於版型的 a:focus (0,1,1)。順序與權重雙輸，唯一能蓋過的只有
     !important。這等於版型接管全站焦點樣式，模組的自訂焦點外觀會失效
     （本站有 2 處模組是用 box-shadow 當焦點框的，會被本規則取代）。

   ※ outline-offset 為正值 = 環畫在元素外側。若發現被 overflow:hidden 的
     容器裁掉，把 offset 改負值、box-shadow 改 inset 即可（見檔末註解）。
********************/

/* 通則：:focus 本身即匹配任何 focus 中的元素（a/button/input/select/
   textarea/[tabindex]…），不需列舉各模組 DOM。
   由元素邊緣往外：白 0～3px（box-shadow spread 3px）→ 深紅 3～5px
   （outline-offset:3px），總寬 5px。
   ※ 兩條帶必須連續：spread 與 outline-offset 要相等。試過 offset 4px 而
     spread 只有 2px，中間會露出底色，視覺上變成兩個各自獨立的框；補到
     spread 4px 雖然連續了，但 6px 的環在選單列上太寬。 */
:focus {
	outline: 2px solid #74122d !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 3px #ffffff !important;
}

/* 這 3 條模組規則自己就帶 !important，!important 之間比權重、同權重再比
   順序，而模組注入在後 —— 故需嚴格高於其 (0,3,1)，前綴 html 補一個型別
   選擇器成為 (0,3,2)。 */
html .ct5abf2dafaa93092cee58cec0 .form-group-m input:focus,
html .ct5c0e1defb295a734beb37b2f .form-group-m input:focus,
html .ct5e03008ec7e4096ac7f18008 a.dishName:focus {
	outline: 2px solid #74122d !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 3px #ffffff !important;
}

/* 焦點環改掛在子元素上的少數情況。
   有些模組的 <a> 沒有設 display（＝預設 inline）卻包著 block 內容，例如
   GA004 相簿：<a role="button" tabindex="0"><div class=imgResponsiveShow>…
   inline 元素包 block 時自己的框會被切成破碎片段，outline／box-shadow
   幾乎畫不出東西 —— 模組作者當初就是因此把框畫在子元素上。通則掛在 <a>
   身上對這種結構無效，只能跟著改掛子元素，順便把模組原本的橘色點虛線
   （2px dotted #d26800，對白底僅 3.67:1、對彩色縮圖更低）換成雙色環。 */
.abimgs a:focus > .imgResponsiveShow,
.abimgs a:focus > .imgResponsiveShow_item,
.month-simple a:focus .day {
	outline: 2px solid #74122d !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 3px #ffffff !important;
}

/* 焦點環不可被模組的 transition:all 帶著動 —— box-shadow 與 outline-* 都是
   可動畫屬性。模組在 .ct-focusslider .imgblock img (all .5s)、.focus-arrow
   (all .3s)、.imgResponsiveShow_item (all .15s)，版型自己在 header>a
   (all 200ms) 都用了 transition:all，結果焦點環會淡入，失焦後還淡出留下
   白色殘影。
   ※ 必須在「非聚焦」狀態也生效：殘影發生在焦點已經移走之後，那時 :focus
     規則早就不套用了，是元素回到自己的 transition:all 把環淡出的。
   ※ CSS 沒有「all 扣掉某幾個」的寫法，只能用白名單取代 all。清單是掃過
     全站 102 個 transition:all 選擇器的 hover/focus 態實際改動屬性後列全的
     （border-radius 42、width 26、left 26、padding-right 12… 都要保留，
     否則搜尋框展開、滑動那類效果會變成瞬間跳），實際只排除 box-shadow
     與 outline-*。清單列太長無害，不可動畫的值會被瀏覽器忽略。
   ※ 代價：全站有 5 處模組是刻意用 transition:all 去動 box-shadow 的，
     那 5 處的陰影動畫會變成瞬間切換。 */
a, button, input, select, textarea, summary,
[tabindex], [role="button"], [role="link"] {
	transition-property:
		transform, opacity, filter, visibility,
		color, background, background-color, background-image,
		background-position, background-size,
		fill, stroke,
		border-color, border-width, border-radius,
		width, height, min-width, min-height, max-width, max-height,
		top, right, bottom, left,
		margin, margin-top, margin-right, margin-bottom, margin-left,
		padding, padding-top, padding-right, padding-bottom, padding-left,
		font-size, font-weight, letter-spacing, line-height, text-shadow,
		flex-basis, gap, z-index !important;
}

/**************************************************
= 輪播：環改畫在容器上（:focus-within）

   輪播的投影片本身是一個被圖片填滿的連結：
     <a class="imgblock"><img …></a>            CGA001 圖文輪播
     <button class="carousel-item">…</button>   BGA001 大橫幅
   在它身上畫環兩條路都不通：
     外側環 → 被祖先容器的 overflow:hidden 裁掉，只剩一條邊
     內側環 → inset box-shadow 畫在背景層、在內容之下，被填滿的 <img> 蓋住
              （outline 不受影響，所以只看得到深紅那圈、白色不見）
   換 px 數沒有用，這是繪製層級問題不是尺寸問題。

   解法：環改畫在輪播容器自己身上。元素**自己的** overflow:hidden 只裁子孫、
   不裁自己的 outline，所以容器上的外側雙色環可以完整顯示，與全站一致。
   也不能改用 overflow:visible —— .focus-content 的 overflow:hidden 正是用來
   藏住畫面外的投影片，放開會整排噴出來。

   代價：框住的是整個輪播而不是單一張投影片（對「整張圖就是一個連結」的
   輪播而言視覺上等價），且 Tab 到左右箭頭時也會框整個輪播。要把箭頭分開
   需要 :has()（Chrome 105+）。

   ※ 只用在 BGA001 大橫幅。CGA001 圖文公告不要走這條 —— 它的
     .focus-content 是四張卡整排的框，套上去會變成「框住四張卡」，看不出
     焦點在哪一張。那裡外側環本來就可行：.imgblock 自己的 overflow:hidden
     不裁自己的 outline，.item 又沒有設 overflow，所以交給全站通則即可，
     只有最左／最右那張的外側邊會被 .focus-content 的邊界裁到。
********************/
.carousel:focus-within {
	outline: 2px solid #74122d !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 3px #ffffff !important;
}

/* 頁籤列一律用內側環：頁籤列都會把 overflow 關起來（橫向捲動用），外側環
   四邊會被裁掉。
     GA006 .tab-scroll-container  SCSS !important + <ul> inline style 雙重
                                  設 overflow-x/y:hidden，且 display:flex
                                  緊貼頁籤高度
     GA002 .nav-tabs             <ul> inline style overflow:hidden，只留
                                  paddingTop:2px，環的上緣會露出一小條、
                                  其餘三邊被裁 —— 比全裁掉更難看
   不能改用容器 :focus-within（會變成框住整排頁籤，看不出焦點在哪一個），
   只能把環畫在頁籤內側。.nav-link 內距 0.5rem（8px），4px 的環不壓到文字。
   直接掛在共用的 .nav-tabs 上，兩個模組與其他頁籤一併涵蓋，也讓全站頁籤
   的焦點樣式一致，不必逐個模組補。 */
.nav-tabs :focus,
.tab-scroll-container :focus {
	outline: 2px solid #74122d !important;
	outline-offset: -2px !important;
	box-shadow: inset 0 0 0 4px #ffffff !important;
}

/* 大橫幅的投影片本身不再自己畫環：畫了也是被裁掉或被圖片蓋住，留著只會在
   容器環之外多一條殘缺的邊。 */
.carousel-item:focus,
.bgabannerpicimg:focus,
.bgabannerpicimgPhone:focus {
	outline: none !important;
	box-shadow: none !important;
}
