﻿@charset "UTF-8";

/* CSS Document */

body {

  background-image: none;

  background-color: #dcdedd;

}

.class-row-wrap {

  padding: 3% 5%;

}

.class-row-wrap h3 {

  color: #333;

  font-size: 1.5em;

  line-height: 35px;

  max-width: 100%;

  margin: 2% auto 0;

  text-align: left;

}

.class-row-wrap p {

  text-align: left;

  font-size: 16px;

}

/* =========================

   SEC3 三大關鍵

========================= */

#sec.sec-keypoints {

  padding: 75px 0 80px;

  background: radial-gradient(circle at 15% 20%, rgba(65, 160, 220, .08), transparent 30%), linear-gradient(180deg, #f7fafc 0%, #eef4f8 100%);

}

/* 標題 */

.sec-heading {

  text-align: center;

  max-width: 900px;

  margin: 0 auto 42px;

}

.sec-eyebrow {

  display: inline-block;

  margin-bottom: 10px;

  padding: 5px 14px;

  color: #2f71a9;

  background: #e5f1fa;

  font-size: 13px;

  font-weight: 700;

  letter-spacing: 2px;

  border-radius: 30px;

}

.sec-heading h2 span {

  color: #2676ad;

}

.sec-subtitle {

  margin: 12px 0 0;

  color: #6b7582;

  font-size: 16px;

  line-height: 1.8;

}

/* 卡片區 */

.sec-card-wrap {

  display: flex;

  gap: 20px;

  max-width: 1080px;

  margin: 0 auto;

}

/* 單張卡片 */

.sec-card {

  position: relative;

  flex: 1;

  padding: 28px 26px 30px;

  background: #ffffff;

  border: 1px solid #dce8f1;

  border-radius: 12px;

  box-shadow: 0 8px 24px rgba(30, 69, 103, .08);

  transition: all .25s ease;

}

.sec-card:hover {

  transform: translateY(-5px);

  border-color: #9dc9e6;

  box-shadow: 0 14px 30px rgba(30, 69, 103, .13);

}

/* 卡片上方 */

.sec-card-top {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin-bottom: 20px;

}

/* 01 / 02 / 03 */

.sec-icon {

display: flex;

align-items: center;

justify-content: center;

width: 58px;

height: 58px;

background: linear-gradient(135deg, #24388f, #24388f);

border-radius: 50%;
}

.sec-icon span {

  color: #ffffff;

  font-size: 19px;

  font-weight: 800;

  font-style: italic;

}

/* 小標籤 */

.sec-tag {

  padding: 5px 11px;

  color: #6c5b15;

  background: #fff2aa;

  font-size: 13px;

  font-weight: 700;

  border-radius: 5px;

}

/* 卡片標題 */

.sec-card h3 {

  position: relative;

  margin: 0 0 16px;

  padding-bottom: 14px;

  color: #172f55;

  font-size: 1.6em;

  font-weight: 800;

  line-height: 1.45;

}

.sec-card h3:after {

  content: "";

  position: absolute;

  left: 0;

  bottom: 0;

  width: 40px;

  height: 3px;

  background: #4b9bd0;

  border-radius: 3px;

}

/* 內文 */

.sec-card p {

  margin: 0;

  color: #56616e;

  font-size: 15px;

  line-height: 1.9;

}

.sec-card p strong {

  color: #18598d;

  font-weight: 700;

}

/* 底部總結 */

.sec-bottom {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 15px;

  max-width: 800px;

  margin: 28px auto 0;

  padding: 15px 22px;

  background: #173b67;

  border-radius: 8px;

}

.sec-bottom-label {

  flex-shrink: 0;

  padding: 5px 10px;

  color: #173b67;

  background: #fff09a;

  font-size: 13px;

  font-weight: 800;

  border-radius: 4px;

}

.sec-bottom p {

  margin: 0;

  color: #ffffff;

  font-size: 16px;

  font-weight: 700;

}

/* =========================

   平板

========================= */
@media (max-width: 991px) {
  .sec-keypoints {

    padding: 55px 0 60px;

  }

  .sec-heading h2 {

    font-size: 29px;

  }

  .sec-card-wrap {

    flex-wrap: wrap;

  }

  .sec-card {

    flex: 0 0 calc(50% - 10px);

  }

}

/* =========================

   手機

========================= */
@media (max-width: 767px) {
  .sec-keypoints {

    padding: 42px 15px 48px;

  }

  .sec-heading {

    margin-bottom: 28px;

  }

  .sec-heading h2 {

    font-size: 25px;

    line-height: 1.45;

  }

  .sec-heading h2 span {

    display: block;

  }

  .sec-subtitle {

    font-size: 14px;

    padding: 0 10px;

  }

  .sec-card-wrap {

    display: block;

  }

  .sec-card {

    width: 100%;

    margin-bottom: 16px;

    padding: 23px 20px 24px;

  }

  .sec-card:last-child {

    margin-bottom: 0;

  }

  .sec-card h3 {

font-size: 1.5em;

}

  .sec-card p {

    font-size: 1em;

    line-height: 1.8;

  }

  .sec-icon {

    width: 50px;

    height: 50px;

  }

  .sec-icon span {

    font-size: 17px;

  }

  .sec-bottom {

    align-items: flex-start;

    margin-top: 20px;

    padding: 14px 15px;

  }

  .sec-bottom p {

    font-size: 14px;

    line-height: 1.6;

  }

}

/* =========================

   SEC1 HERO

========================= */

.hero-section {

  overflow: hidden;

  background: #dfe4e7;

}

.hero-link {

  display: block;

}

.hero-img {

  display: block;

  width: 100%;

  height: auto;

}

.bannerSlider {

  overflow: hidden;

}

/* =========================

   SEC2

========================= */

.sec-intro {

  padding: 42px 0 70px;

  /* background:

        radial-gradient(

            circle at 50% 0%,

            rgba(82, 165, 216, .08),

            transparent 35%

        ),

        #f2f4f5; */

}

/* =========================

   TOP NAV

========================= */

.sec-nav {

  display: flex;

  justify-content: center;

  gap: 10px;

  margin-bottom: 42px;

}

.sec-nav-btn {

  display: inline-flex;

  align-items: center;

  gap: 7px;

  padding: 10px 18px;

  color: #ffffff;

  background: #24388f;

  font-size: 14px;

  font-weight: 700;

  text-decoration: none;

  border-radius: 5px;

  box-shadow: 0 4px 10px rgba(36, 56, 143, .16);

  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;

}

.sec-nav-btn:hover {

  color: #ffffff;

  background: #162b75;

  transform: translateY(-2px);

  box-shadow: 0 7px 16px rgba(36, 56, 143, .22);

}

.sec-nav-num {

  color: #fff29c;

  font-size: 11px;

  font-weight: 800;

  letter-spacing: .5px;

}

/* =========================

   TITLE

========================= */

.sec-heading {

  max-width: 920px;

  margin: 0 auto 28px;

  text-align: center;

}

.sec-eyebrow {

display: inline-block;

margin-bottom: 10px;

padding: 5px 13px;

color: #24388f;

background: #dfeef8;

font-size: 12px;

font-weight: 800;

letter-spacing: 1.8px;

border-radius: 30px;
}

.sec-heading h2 {

  margin: 0;

  color: #28333d;

  font-size: 2.5em;

  font-weight: 800;

  line-height: 1.45;

}

.sec-heading h2 span {

color: #24388f;
}

.sec-heading p {

  /* max-width: 720px; */

  margin: 10px auto;

  color: #333;

  font-size: 1.2em;

  line-height: 1.8;

}

/* =========================

   MAIN BANNER

========================= */

.sec-banner-card {

  /* max-width: 980px; */

  margin: 0 auto;

  overflow: hidden;

  background: #ffffff;

  border: 1px solid rgba(34, 88, 130, .12);

  border-radius: 10px;

  box-shadow: 0 12px 28px rgba(34, 68, 98, .10);

  transition: transform .25s ease, box-shadow .25s ease;

}

.sec-banner-card:hover {

  transform: translateY(-4px);

  box-shadow: 0 17px 34px rgba(34, 68, 98, .15);

}

.sec-banner-card a {

  display: block;

}

.sec-banner-card img {

  display: block;

  width: 100%;

  height: auto;

  margin: 0;

  border-radius: 0;

}

/* 如果原本 thumbnail 有 border/padding */

.thumbnail {

  margin-bottom: 0;

  padding: 0;

  border: 0;

  background: transparent;

}

/* =========================

   CTA

========================= */

.sec-actions {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 12px;

  margin-top: 24px;

}

.sec-btn {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 9px;

  min-width: 150px;

  padding: 12px 20px;

  font-size: 15px;

  font-weight: 800;

  text-decoration: none;

  border-radius: 6px;

  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;

}

/* 主 CTA */

.sec-btn-main {

  color: #ffffff;

  background: #24388f;

  box-shadow: 0 6px 14px rgba(36, 56, 143, .20);

}

.sec-btn-main:hover {

  color: #ffffff;

  background: #172b77;

  transform: translateY(-2px);

}

/* 次 CTA */

.sec-btn-outline {

  color: #24388f;

  background: #ffffff;

  border: 1px solid #24388f;

}

.sec-btn-outline:hover {

  color: #ffffff;

  background: #24388f;

  transform: translateY(-2px);

}

/* =========================

   TABLET

========================= */
@media (max-width: 991px) {
  .sec-intro {

    padding: 36px 0 55px;

  }

  .sec-heading h2 {

    font-size: 28px;

  }

  .sec-banner-card {

    max-width: 860px;

  }

}

/* =========================

   MOBILE

========================= */
@media (max-width: 767px) {
  .sec-intro {

    padding: 26px 14px 42px;

  }

  /* 導覽 */

  .sec-nav {

    gap: 6px;

    margin-bottom: 30px;

  }

  .sec-nav-btn {

flex: 1;

justify-content: center;

padding: 9px 5px;

font-size: 13px !important;

}

  .sec-nav-num {

    display: none;

  }

  /* 標題 */

  .sec-heading {

    margin-bottom: 20px;

  }

  .sec-eyebrow {

    margin-bottom: 8px;

    font-size: 10px;

  }

  .sec-heading h2 {

    font-size: 2.5em;

    line-height: 1.4;

  }

  .sec-heading p {

    padding: 0 6px;

    font-size: 1.1em;

    line-height: 1.7;

    text-align: left;

  }

  /* Banner */

  .sec-banner-card {

    border-radius: 8px;

  }

  /* CTA */

  .sec-actions {

    flex-direction: column;

    margin-top: 18px;

  }

  .sec-btn {

    width: 100%;

    max-width: 300px;

    padding: 12px 18px;

  }

}

/* ==================================================

   SEC4 COURSE CONTENT

================================================== */

#sec4.course-section {

  padding: 72px 0 78px;

}

/* ==================================================

   Heading

================================================== */

.course-heading {

  max-width: 850px;

  margin: 0 auto 38px;

  text-align: center;

}

.course-eyebrow {

  display: inline-block;

  margin-bottom: 9px;

  padding: 5px 14px;

  color: #3477a6;

  background: #e5f1fa;

  font-size: 12px;

  font-weight: 800;

  letter-spacing: 1.8px;

  border-radius: 30px;

}

.course-heading h2 {

  margin: 0;

  color: #263642;

  font-size: 34px;

  font-weight: 800;

  line-height: 1.4;

}

.course-heading p {

  margin: 10px 0 0;

  color: #79838c;

  font-size: 15px;

  line-height: 1.8;

}

/* ==================================================

   Grid

================================================== */

.course-grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 14px;

  max-width: 1080px;

  margin: 0 auto;

}

/* ==================================================

   Card

================================================== */

.course-card {

  position: relative;

  display: flex;

  align-items: center;

  min-height: 118px;

  padding: 22px 20px;

  overflow: hidden;

  background: #ffffff;

  border: 1px solid #dde8ef;

  border-radius: 10px;

  box-shadow: 0 5px 16px rgba(29, 67, 96, .06);

  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;

}

.course-card:hover {

  transform: translateY(-3px);

  border-color: #a5cfe8;

  box-shadow: 0 10px 24px rgba(29, 67, 96, .11);

}

/* 左側數字 */

.course-number {

  position: relative;

  flex: 0 0 72px;

  padding-right: 17px;

  margin-right: 18px;

  text-align: center;

  border-right: 1px solid #d8e8f3;

}

.course-number span {

  display: block;

  color: #2878ad;

  font-size: 27px;

  font-weight: 800;

  font-style: italic;

  line-height: 1;

}

.course-number small {

  display: block;

  margin-top: 7px;

  color: #a0b5c3;

  font-size: 9px;

  font-weight: 800;

  letter-spacing: 1px;

}

/* 右側內容 */

.course-content {

  flex: 1;

}

.course-content h3 {

  margin: 0 0 7px;

  color: #17345b;

  font-size: 18px;

  font-weight: 800;

  line-height: 1.45;

}

.course-content p {

  margin: 0;

  color: #707b85;

  font-size: 14px;

  line-height: 1.55;

}

.course-content p strong {

  color: #a36d00;

  font-weight: 800;

}

/* ==================================================

   Review card

================================================== */

.course-card-review {

  background: linear-gradient( 135deg, #f7fbff 0%, #eef7fd 100% );

  border-color: #a8d1ea;

}

.course-card-review .course-number span {

  color: #1f6598;

}

.course-card-review .course-content h3 {

  color: #17345b;

}

/* 小黃條 */
.course-card:before {

  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 3px;

  background: transparent;

}

.course-card:hover:before {

  background: #ffe66d;

}

.course-card-review:before {

  background: #ffe66d;

}

/* ==================================================

   Summary

================================================== */

.course-summary {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 13px;

  max-width: 760px;

  margin: 28px auto 0;

  padding: 15px 22px;

  background: #edf6fb;

  border: 1px solid #cce2ef;

  border-radius: 8px;

}

.course-summary-icon {

  display: flex;

  align-items: center;

  justify-content: center;

  flex: 0 0 32px;

  width: 32px;

  height: 32px;

  color: #ffffff;

  background: #2c78aa;

  border-radius: 50%;

}

.course-summary div:last-child {

  display: flex;

  align-items: center;

  gap: 8px;

}

.course-summary strong {

  color: #17345b;

  font-size: 1.2em;

  font-weight: 800;

}

.course-summary span {

  color: #333;

  font-size: 14px;

}

/* ==================================================

   CTA

================================================== */

.course-actions {

  display: flex;

  justify-content: center;

  margin-top: 25px;

}

.course-btn {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 9px;

  min-width: 160px;

  padding: 12px 24px;

  color: #ffffff;

  background: #24388f;

  font-size: 15px;

  font-weight: 800;

  text-decoration: none;

  border-radius: 6px;

  box-shadow: 0 6px 14px rgba(36, 56, 143, .18);

  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;

}

.course-btn:hover {

  color: #ffffff;

  background: #172b77;

  transform: translateY(-2px);

  box-shadow: 0 9px 19px rgba(36, 56, 143, .23);

}

/* ==================================================

   Tablet

================================================== */
@media (max-width: 991px) {
  #sec4.course-section {

    padding: 58px 0 62px;

  }

  .course-grid {

    grid-template-columns: repeat(2, 1fr);

  }

  .course-heading h2 {

    font-size: 29px;

  }

}

/* ==================================================

   Mobile

================================================== */
@media (max-width: 767px) {
  #sec4.course-section {

    padding: 44px 15px 50px;

  }

  .course-heading {

    margin-bottom: 26px;

  }

  .course-heading h2 {

    font-size: 25px;

  }

  .course-heading p {

    padding: 0 10px;

    font-size: 14px;

  }

  .course-grid {

    display: block;

  }

  .course-card {

    min-height: auto;

    margin-bottom: 11px;

    padding: 18px 17px;

  }

  .course-number {

    flex-basis: 60px;

    margin-right: 15px;

    padding-right: 14px;

  }

  .course-number span {

    font-size: 24px;

  }

  .course-content h3 {

    font-size: 17px;

  }

  .course-content p {

    font-size: 13px;

  }

  .course-summary {

    align-items: flex-start;

    margin-top: 20px;

    padding: 14px 16px;

  }

  .course-summary div:last-child {

    display: block;

  }

  .course-summary span,
  .course-summary strong {

    display: block;

  }

  .course-summary span {

    margin-top: 4px;

    line-height: 1.6;

    font-size: 1em;

  }

  .course-actions {

    margin-top: 20px;

  }

  .course-btn {

    width: 100%;

    max-width: 300px;

  }

}

.course-table {

  margin-top: 42px;

  border: 1px solid #ddd;

  border-radius: 14px;

  overflow: hidden;

  background: #fff;

}

.course-unit {

display: grid;

grid-template-columns: 190px 1fr;

border-bottom: 1px solid #ddd;

text-align: center;
}

.course-unit-title {

  padding: 24px 22px;

  background: #f7f5f1;

  border-right: 1px solid #ddd;

  display: flex;

  flex-direction: column;

  justify-content: center;

}

.course-unit-title .unit-no {

  display: block;

  margin-bottom: 5px;

  font-size: 1.2em;

  font-weight: 700;

  color: #e34f31;

  letter-spacing: .08em;
}

.course-unit-title strong {

  font-size: 1.6em;

  line-height: 1.45;

  color: #12110f;
}

.course-unit-lessons {

display: inherit;

flex-direction: column;

margin: 0;
}

.course-lesson {

min-height: 72px;

padding: 18px 26px;

display: flex;

align-items: center;

gap: 22px;

border-bottom: 1px solid #e6e3df;

text-align: center;
}

.course-lesson:last-child {

  border-bottom: 0;

}

.lesson-no {

  flex: 0 0 78px;

  font-size: 1.2em;

  font-weight: 700;

  color: #e34f31;
}

.lesson-title {

font-size: 1.5em;

font-weight: 600;

line-height: 1.5;

color: #12110f;

text-align: center;
}

/* 總複習 */

.course-review {

  /* display: grid; */

  /* grid-template-columns: 190px 1fr; */

  background: #fff987;

  text-align: center;

}

.course-review-label {

  padding: 22px;

  display: flex;

  align-items: center;

  font-size: 20px;

  font-weight: 800;

  color: #12110f;

  border-right: 1px solid rgba(18,17,15,.15);

}

.course-review-title {

  padding: 20px;

  font-size: 1.5em;

  font-weight: 800;

  color: #12110f;

  /* display: flex; */

  width: 100%;

  text-align: center;
}

/* 手機版 */
@media (max-width: 768px) {
  .course-review,
  .course-unit {

    grid-template-columns: 1fr;

  }

  .course-unit-title {

    border-right: 0;

    border-bottom: 1px solid #ddd;

    padding: 18px 20px;

  }

  .course-unit-title strong {

font-size: 1.8em;
}

  .course-lesson {

    padding: 16px 18px;

    gap: 14px;

    align-items: flex-start;

  }

  .lesson-no {

    flex: 0 0 65px;

    font-size: 14px;

  }

  .lesson-title {

    font-size: 17px;

  }

  .course-review-label {

    border-right: 0;

    border-bottom: 1px solid rgba(18,17,15,.15);

  }

}


a:focus, a:hover {
    color: #fcffcd;
    text-decoration: underline;
}
