/* WCAG AA colour-contrast overrides shared by the main, English and alumni sites. */
:root {
  --aa-green: #527800;
  --aa-green-label: #72be43;
  --aa-green-dark: #356416;
  --aa-orange: #9e4900;
  --aa-blue: #174977;
  --aa-info: #1577b7;
  --aa-success: #277732;
  --aa-gray: #686868;
}

/* General text, links, secondary text and form hints on light backgrounds. */
a { color: var(--aa-blue); }
a:hover, a:focus { color: #0b3a66; }
::placeholder { color: var(--aa-gray); opacity: 1; }
.text-secondary, .text-gray, .txt-grey,
.number-pages .all, .news-list .date,
.jamt-brand .head-title-text-name,
.jamt-brand .head-title-text-e,
.txt-title h3 > span,
.logo-txt .en,
.ins-options .dropdown-menu li a {
  color: var(--aa-gray) !important;
}
.text-success, .valid-feedback,
.was-validated .form-check-input:valid ~ .form-check-label,
.form-check-input.is-valid ~ .form-check-label,
.was-validated .custom-control-input:valid ~ .custom-control-label,
.custom-control-input.is-valid ~ .custom-control-label,
input[type="radio"]:checked + label,
input[type="checkbox"]:checked + label {
  color: var(--aa-success) !important;
}
.text-info { color: var(--aa-info) !important; }
.text-warning, .txt-orange, .txt_orange,
.book .orange, .tree h4,
.news-ts .news-ts-page span,
.number-pages .current,
table a.file-download:hover,
.faculty-box figcaption h2 .job-title,
.faculty-box figcaption h3 .job-title,
.faculty-box figcaption .info-box ul li a:hover,
.breadcrumb-item.active {
  color: var(--aa-orange) !important;
}
.breadcrumb-item + .breadcrumb-item::before { color: var(--aa-gray); }

/* 表單欄位沿用網站原有的淺灰圓角外觀；鍵盤焦點提示另於下方處理。 */
table, th, td,
.table-bordered, .table-bordered th, .table-bordered td,
.sitemap-card {
  border-color: #767676;
}

/* Bootstrap-style controls and status components. */
.btn-success, .badge-success,
.btn-outline-success:hover, .btn-outline-success:focus,
.btn-outline-success:not(:disabled):not(.disabled):active,
.btn-outline-success:not(:disabled):not(.disabled).active {
  color: #fff !important;
  background-color: var(--aa-success) !important;
  border-color: var(--aa-success) !important;
}
.btn-success:hover, .btn-success:focus,
a.badge-success:hover, a.badge-success:focus {
  color: #fff !important;
  background-color: #1e5c26 !important;
  border-color: #1e5c26 !important;
}
.btn-outline-success { color: var(--aa-success); border-color: var(--aa-success); }
.btn-info, .badge-info,
.btn-outline-info:hover, .btn-outline-info:focus,
.btn-outline-info:not(:disabled):not(.disabled):active,
.btn-outline-info:not(:disabled):not(.disabled).active {
  color: #fff !important;
  background-color: var(--aa-info) !important;
  border-color: var(--aa-info) !important;
}
.btn-info:hover, .btn-info:focus,
a.badge-info:hover, a.badge-info:focus {
  color: #fff !important;
  background-color: #113a63 !important;
  border-color: #113a63 !important;
}
.btn-outline-info { color: var(--aa-info); border-color: var(--aa-info); }
.btn-warning, .btn-warning:hover, .btn-warning:focus,
.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active {
  color: #000 !important;
}
.btn-outline-warning { color: var(--aa-orange); border-color: var(--aa-orange); }
.btn-outline-warning:hover, .btn-outline-warning:focus,
.btn-outline-warning:not(:disabled):not(.disabled):active,
.btn-outline-warning:not(:disabled):not(.disabled).active {
  color: #fff !important;
  background-color: var(--aa-orange) !important;
  border-color: var(--aa-orange) !important;
}
.alert-secondary, .alert-light, .alert-lightgray,
.list-group-item-secondary, .list-group-item-light,
.list-group-item-lightgray {
  color: #495057 !important;
}

/* Site navigation, buttons, labels and pagination. */
.topLinks a:hover,
.good-link .swiper-slide a:hover,
.news-list a:hover,
.back_contact .back_contact_row .back_contact_content i,
.back_contact .back_contact_row .back_contact_content a,
.txt_green, .txt_green2, .txt_green3 {
  color: var(--aa-green) !important;
}
#main-nav .dropdown-menu,
a.btn, input.btn, .foot-select0 input.btn,
.btn-outline-primary, .btn-primary2,
.news-list li.news-category,
.news-headlines-txt, .news-classification,
.activities_list li.activities_category,
.foot_copyright_statement,
#top, #goTop,
.tab_book.th_x th,
#calendar-wrap #calendar-no .society-publication-h0,
#calendar-wrap #calendar2 .society-publication-h0,
.classroom_number .btn-border.active,
.classroom_number .btn-border:hover,
.table_calendar th,
.pd-body table th {
  color: #fff !important;
  background-color: var(--aa-green) !important;
  border-color: var(--aa-green) !important;
}

/* 教室預約表：欄標題、列標題與格線使用不同色彩，方便辨識閱讀方向。 */
.booking-schedule-table,
.booking-schedule-table th,
.booking-schedule-table td {
  border-color: #767676 !important;
}
.booking-schedule-table .calender-data > th {
  color: #fff !important;
  background-color: var(--aa-green) !important;
}
.booking-schedule-table tr:not(.calender-data) > th[scope="row"] {
  color: #1f2d19 !important;
  background-color: #e4eddd !important;
}

/* 新聞列表表頭：覆蓋原本日期欄位各自的淺綠底與灰字。 */
.news-list li.news-category > dl,
.news-list li.news-category .date,
.news-list li.news-category .title {
	color: #fff !important;
	background-color: var(--aa-green) !important;
}

/* 新聞類別膠囊沿用品牌亮綠；搭配深色字可符合 AA（9.16:1）。 */
.news-classification {
	color: #000 !important;
	background-color: var(--aa-green-label) !important;
	border-color: var(--aa-green-label) !important;
}

/* 黃底重要消息改用橘色膠囊；橘底配深色字符合 AA。 */
.news-list li.news-headlines .news-classification,
.news-list li.news-headlines .news-headlines-txt {
	color: #000 !important;
	background-color: #f39800 !important;
	border-color: #f39800 !important;
}
a.btn:hover, a.btn:focus,
input.btn:hover, input.btn:focus,
.btn-outline-primary:hover, .btn-outline-primary:focus,
.btn-primary2:hover, .btn-primary2:focus,
.btn-primary-frame:hover, .btn-primary-frame:focus,
#top:hover, #top:focus,
#goTop:hover, #goTop:focus {
  color: #fff !important;
  background-color: var(--aa-green-dark) !important;
  border-color: var(--aa-green-dark) !important;
}
.dropdown-item.active, .dropdown-item:active,
#main-nav .dropdown-item:hover,
#main-nav .dropdown-item:focus,
#main-nav .dropdown-item.show,
.ins-options .dropdown-menu > li > a:hover,
.ins-options .dropdown-menu > .active > a,
.ins-options .dropdown-menu.me-div a.active,
.ins-options .dropdown-menu.me-div a:hover {
  color: #fff !important;
  background-color: var(--aa-orange) !important;
}

/* Calendar, booking and content-specific links. */
#calendar-wrap #calendar-no .event,
#calendar-wrap #calendar2 .event { color: #006875; }
#calendar-wrap #calendar-no a:hover,
#calendar-wrap #calendar2 a:hover {
  color: #fff !important;
  background-color: #356416 !important;
}
.physician_row .txt h5,
.news_block .activitycard .caption .date-title,
.photo_gallery_row .txt h5,
.back_contact_row.inside_contact .back_contact_content a:hover {
  color: #3f6656 !important;
}

/* Keep keyboard focus conspicuous against every palette. */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: 3px !important;
}
.copyright .a-ex {
  color: #68b92e;
}

.copyright a:not(.a-ex),
.copyright .a-ex:hover,
.copyright .a-ex:focus,
.copyright .a-ex:focus-visible {
  color: #000;
}

/* 教室預約申請表。 */
#email01,
#email02,
#tKCNameActive {
  width: 383px;
}

#tSD {
  width: 150px;
  height: 105px;
}

#tBeginTime1,
#tBeginTime,
#tEndTime {
  width: 120px;
}

#buttonreplacement {
  display: none;
}

#buttonreplacement {
  margin-left: 30px;
}

.captchaBox .form-floatingx {
  display: inline-block;
}

.captchaBox .captcha-action,
.contact_verify .captcha-action {
  color: #fff;
  background-color: #154575;
  border: 2px solid #154575;
  font-weight: 600;
  opacity: 1;
}

.captchaBox .captcha-action:hover:not(:disabled),
.captchaBox .captcha-action:active:not(:disabled),
.contact_verify .captcha-action:hover:not(:disabled),
.contact_verify .captcha-action:active:not(:disabled) {
  color: #fff;
  background-color: #0d3054;
  border-color: #0d3054;
}

.captchaBox .captcha-action:focus-visible,
.contact_verify .captcha-action:focus-visible {
  outline: 3px solid #154575;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}

.captchaBox .captcha-action:disabled,
.contact_verify .captcha-action:disabled {
  color: #334155;
  background-color: #e2e8f0;
  border-color: #64748b;
  opacity: 1;
  cursor: not-allowed;
}

/* 網站導覽。 */
.sitemap-intro {
  max-width: 1180px;
  margin: 0 auto 3rem;
  color: #222;
  font-size: 1.125rem;
  line-height: 1.9;
}

.sitemap-intro p {
  margin-bottom: 1rem;
}

.sitemap-shortcuts {
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.sitemap-shortcuts li {
  margin-bottom: .75rem;
}

.sitemap-shortcuts kbd {
  display: inline-block;
  min-width: 4.5rem;
  padding: 0;
  color: #222;
  background: transparent;
  border: 0;
  box-shadow: none;
  font: inherit;
  font-weight: 700;
}

.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem 2.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sitemap-card {
  height: 100%;
  border: 1px solid #767676;
  background: #fff;
}

.sitemap-card h2 {
  margin: 0;
  padding: .9rem 1.25rem;
  color: #000;
  background: #68b92e;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.4;
}

.sitemap-card ul {
  margin: 0;
  padding: .85rem 1.25rem 1rem;
  list-style: none;
}

.sitemap-card li + li {
  margin-top: .35rem;
}

.sitemap-card a {
  display: inline-block;
  color: #527800;
  font-size: 1.05rem;
  line-height: 1.55;
  text-decoration: none;
}

.sitemap-card a:hover {
  color: #356416;
  text-decoration: underline;
}

.sitemap-card a:focus-visible {
  color: #111;
  outline: 3px solid #f39800;
  outline-offset: 3px;
  text-decoration: underline;
}

/* 校友網站導覽連結。 */
.sitemap-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.sitemap-list li {
  border-top: 1px solid #767676;
}

.sitemap-list li:nth-last-child(-n + 2) {
  border-bottom: 1px solid #767676;
}

.sitemap-list a {
  display: block;
  padding: .85rem 1rem;
  color: #174977;
  font-size: 1.125rem;
  line-height: 1.55;
  text-decoration: none;
}

.sitemap-list a:hover {
  color: #0b3a66;
  background: #f0f8ea;
  text-decoration: underline;
}

.sitemap-list a:focus-visible {
  color: #111;
  outline: 3px solid #f39800;
  outline-offset: -3px;
  text-decoration: underline;
}

@media (max-width: 991px) {
  .sitemap-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575px) {
  .sitemap-intro {
    font-size: 1rem;
  }

  .sitemap-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .sitemap-list {
    grid-template-columns: 1fr;
  }

  .sitemap-list li:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .sitemap-list li:last-child {
    border-bottom: 1px solid #767676;
  }
}

/* 課程及文件下載表格。 */
.file-area .file-col-index,
.file-area .file-col-attachment {
  width: 4rem;
}

.file-area .file-col-category {
  width: 8rem;
}

.file-area .file-col-audience {
  width: 15rem;
}

.file-area .file-col-title {
  text-align: left;
}

/* 校友新聞文章內容。 */
.news-meta-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .25rem;
}

.news-text-normal {
  font-size: 1rem;
}

.news-important-label {
  color: #b00020;
}
.input-width-120 { width: 120px; }
.input-width-383 { width: 383px; }
.booking-timeslot-select { width: 150px; height: 105px; }
.booking-button-replacement { margin-left: 30px; }
.col-width-4rem { width: 4rem; }
.col-width-6rem { width: 6rem; }
.input-width-250 { width: 250px; }
.form-error-message { color: #b00020; font-weight: bold; }
.pagination-center { position: relative; }
.map-iframe-borderless { border: 0; }
.form-field-normal {
    background-color: #fff;
}

.form-field-error {
    background-color: #fcc;
}
