:root{
  --color-primary:#21633f;
  --color-primary-dark:#0f3f2a;
  --color-river:#277c82;
  --color-gold:#d69a2d;
  --color-sand:#f7efdf;
  --color-cream:#fffaf0;
  --color-card:#fffdf7;
  --color-ink:#123326;
  --color-muted:#637568;
  --line:rgba(33,99,63,.18);
  --shadow:0 16px 42px rgba(48,70,45,.10);
  --radius:22px;
  --container:1180px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--color-ink);background:linear-gradient(180deg,#fff8ec 0%,#f7f1e5 32%,#f6faf2 100%)!important;font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.01em;display:flex;flex-direction:column}main{flex:1 0 auto;width:100%;}a{color:inherit;transition:.18s ease}img{max-width:100%;display:block}p{line-height:1.85}.max-w-7xl,.max-w-6xl,.max-w-5xl{max-width:var(--container)!important}.bg-gray-50{background:transparent!important}.text-gray-800{color:var(--color-ink)!important}.text-gray-700{color:#2e4638!important}.text-gray-600{color:var(--color-muted)!important}.bg-white{background:rgba(255,253,247,.96)!important}.border-gray-200{border-color:var(--line)!important}.shadow,.shadow-md,.shadow-sm{box-shadow:var(--shadow)!important}.rounded-xl{border-radius:18px!important}.rounded-2xl{border-radius:var(--radius)!important}.bg-teal-800{background:#2d6b46!important}.bg-teal-900{background:#123c2a!important}.text-teal-700,.text-blue-600,.text-blue-500{color:var(--color-primary)!important}.border-teal-700{border-color:var(--color-primary)!important}.bg-teal-700{background:var(--color-primary)!important}.badge-secondary{display:inline-block;font-size:.8rem;font-weight:800;color:#173225;padding:.12rem .58rem;border-radius:999px;background:#e6c46b;border:1px solid rgba(0,0,0,.08)}
.site-header{position:sticky;top:0;left:0;right:0;z-index:9999;background:rgba(255,248,236,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(33,99,63,.16);box-shadow:0 8px 26px rgba(73,62,35,.08)}.header-inner{height:76px;max-width:var(--container);margin:auto;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:260px}.brand img{width:50px;height:50px;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(33,99,63,.16);object-fit:contain}.brand-title{font-weight:950;font-size:1.08rem;white-space:nowrap}.brand-subtitle{display:block;font-size:.78rem;color:#5f725f;margin-top:3px}.site-version{font-size:.7rem;color:#fff;background:#3f8b55;border-radius:999px;padding:.13rem .48rem;margin-left:.35rem;vertical-align:middle}.desktop-nav{display:flex;align-items:center;gap:8px;font-weight:850}.nav-group{position:relative;padding-bottom:18px;margin-bottom:-18px}.nav-button,.nav-link{border:0;background:transparent;text-decoration:none;color:var(--color-ink);font-weight:900;padding:.72rem .88rem;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center}.nav-button:hover,.nav-link:hover{background:rgba(33,99,63,.08);color:var(--color-primary)}.nav-panel{position:absolute;top:100%;left:0;min-width:198px;background:#fffdf7;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:10px;display:none}.nav-panel:before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}.nav-group:hover .nav-panel,.nav-group:focus-within .nav-panel{display:block}.nav-panel a{display:block;text-decoration:none;color:var(--color-ink);font-weight:750;padding:.7rem .85rem;border-radius:12px}.nav-panel a:hover{background:#eef5e8;color:var(--color-primary);transform:translateX(2px)}.nav-cta{background:#efb94e;color:#3c2b06!important;box-shadow:0 10px 22px rgba(214,154,45,.28)}.menu-btn{display:none;border:1px solid var(--line);background:#fffdf7;color:var(--color-primary);border-radius:14px;padding:.62rem .9rem;font-weight:900}.mobile-menu{display:none;background:#fffdf7;border-top:1px solid var(--line);box-shadow:var(--shadow)}.mobile-menu.hidden{display:none!important}.mobile-menu-inner{max-width:var(--container);margin:auto;padding:16px;display:grid;gap:12px}.mobile-section{background:#f7f1e5;border:1px solid var(--line);border-radius:18px;padding:12px}.mobile-section-title{font-weight:950;color:var(--color-primary-dark);margin-bottom:6px}.mobile-section a{display:inline-block;margin:4px 12px 4px 0;text-decoration:none;font-weight:700}
.page-main,.page-content{max-width:var(--container);margin:0 auto;padding:38px 18px 64px;width:100%;}.page-main>h1,.page-title,.page-hero h1,.timetable-inner>h1,main:not(.home-main) h1:first-of-type{font-size:clamp(2.1rem,4vw,3.2rem)!important;line-height:1.16!important;font-weight:950!important;margin:0 0 18px!important;color:var(--color-primary-dark)!important;letter-spacing:.02em;writing-mode:horizontal-tb!important;transform:none!important;word-break:keep-all}.page-main>h1:after,.page-title:after,.page-hero h1:after,.timetable-inner>h1:after,main:not(.home-main) h1:first-of-type:after{content:"";display:block;width:76px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--color-primary),var(--color-gold));margin-top:12px}.page-lead,.page-hero p{font-size:1.04rem;color:#54695c;line-height:1.9;max-width:860px}.page-hero{padding:0 0 22px;margin-bottom:10px}.page-card,.content-card,.hupu-card{background:rgba(255,253,247,.95);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.page-card{padding:26px;margin:22px 0}.page-card h2,.content-card h2{font-size:1.45rem;font-weight:950;color:var(--color-primary-dark);margin:0 0 12px}.page-card p{margin:.45rem 0;color:#3e5547}.page-list{margin:.7rem 0 0 1.2rem;padding:0}.page-list li{margin:.45rem 0;line-height:1.75}.content-pad,.home-card-pad{padding:28px}.section-eyebrow{display:inline-flex;align-items:center;padding:.34rem .72rem;border-radius:999px;background:#e8f0e4;border:1px solid rgba(33,99,63,.16);color:var(--color-primary);font-weight:900;font-size:.85rem}.hupu-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.74rem 1.05rem;border-radius:999px;text-decoration:none;font-weight:950;border:1px solid var(--line);gap:.4rem}.hupu-btn-primary{background:var(--color-primary);color:white!important;box-shadow:0 12px 26px rgba(33,99,63,.24)}.hupu-btn-light{background:#fffdf7;color:var(--color-primary-dark)!important}.home-main{padding:0;max-width:none}.home-wrap,.home-section{max-width:var(--container);margin:0 auto;padding:34px 18px}.home-hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:28px;align-items:stretch}.home-hero-copy{padding:38px;background:linear-gradient(135deg,#fff0d8 0%,#fffaf0 56%,#eef5e7 100%)}.home-title{font-size:clamp(2.25rem,4.5vw,4rem)!important;line-height:1.12;margin:18px 0;color:#123c2a;font-weight:950;writing-mode:horizontal-tb!important}.home-title:after{display:none!important}.home-lead{font-size:1.08rem;color:#4d604f}.home-actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.home-stat{padding:14px;border-radius:18px;background:rgba(255,255,255,.76);border:1px solid var(--line)}.home-stat strong{display:block;font-size:1.05rem}.home-stat span{display:block;font-size:.9rem;color:var(--color-muted);margin-top:4px}.home-visual .swiper{height:100%;min-height:420px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#e9dfcf}.swiper-slide img{width:100%;height:100%;object-fit:cover}.home-grid-2{display:grid;grid-template-columns:1fr 1.22fr;gap:24px;align-items:stretch}.home-section h2,.home-card-pad h2{font-size:clamp(1.55rem,3vw,2.35rem);font-weight:950;line-height:1.25;margin:16px 0;color:var(--color-primary-dark)}.home-muted{color:var(--color-muted)}.home-link-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px}.home-link-grid a,.home-feature,.course-feature,.story-card,.highlight-card{display:block;text-decoration:none;border:1px solid var(--line);background:#fffaf0;border-radius:18px;padding:16px;font-weight:900}.home-link-grid a:hover,.home-feature:hover,.course-feature:hover,.story-card:hover,.highlight-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(33,99,63,.12)}.home-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.home-news-list{list-style:none;margin:0;padding:0}.home-news-list li a{display:grid;grid-template-columns:100px 1fr auto;gap:18px;align-items:center;text-decoration:none;padding:18px 0;border-bottom:1px solid var(--line)}.home-news-list span{font-family:ui-monospace,monospace;font-weight:800;color:var(--color-primary)}.home-news-list b{font-size:1.05rem}.home-news-list em{font-style:normal;background:#e8f0e4;color:var(--color-primary);border-radius:999px;padding:.18rem .56rem;font-weight:800;font-size:.8rem}.course-feature-grid,.home-programs,.home-feature-grid,.story-grid,.highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.course-feature h3,.home-program h3,.story-card h3,.highlight-card h3{font-size:1.16rem;font-weight:950;margin:0 0 8px;color:#173c2d}.course-feature p,.home-program p,.story-card p,.highlight-card p{color:#54695c;margin:0}.home-program{padding:18px;border-radius:18px;background:#fffdf7;border:1px solid var(--line)}.warm-band{background:linear-gradient(135deg,#fff1d4 0%,#f8e5bd 100%);border:1px solid rgba(214,154,45,.22);border-radius:var(--radius)}.highlight-card{padding:0;overflow:hidden}.highlight-card img{width:100%;height:180px;object-fit:cover}.highlight-card-body{padding:18px}.highlight-card time{display:block;color:#6c7b70;font-weight:800;margin-bottom:4px}.highlight-card h3{margin-bottom:8px}.detail-hero-img{width:100%;max-height:420px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);margin:18px 0}table{background:#fffdf7;border-radius:16px;overflow:hidden}th{background:#edf3e8!important;color:var(--color-primary-dark)}td,th{border-color:var(--line)!important}input,select,textarea{border-radius:14px!important;border-color:rgba(33,99,63,.22)!important}.divide-y>:not([hidden])~:not([hidden]){border-color:var(--line)!important}footer{margin-top:auto;position:relative}footer .max-w-7xl{padding-top:22px!important;padding-bottom:18px!important}footer p,footer li,footer div{line-height:1.7}
@media(max-width:1000px){.desktop-nav{display:none}.menu-btn{display:inline-flex}.mobile-menu:not(.hidden){display:block}.home-hero-grid,.home-grid-2{grid-template-columns:1fr}.course-feature-grid,.home-programs,.home-feature-grid,.story-grid,.highlight-grid{grid-template-columns:1fr 1fr}.home-visual .swiper{min-height:300px}.brand-subtitle{display:none}}@media(max-width:640px){.header-inner{height:68px}.brand{min-width:0}.brand img{width:44px;height:44px}.brand-title{font-size:.92rem}.home-wrap,.home-section,.page-main,.page-content{padding-left:14px;padding-right:14px}.home-hero-copy,.content-pad,.home-card-pad,.page-card{padding:22px}.home-stats,.course-feature-grid,.home-programs,.home-feature-grid,.story-grid,.highlight-grid,.home-link-grid{grid-template-columns:1fr}.home-news-list li a{grid-template-columns:1fr;gap:6px}.page-main>h1,.page-title,.page-hero h1,.timetable-inner>h1,main:not(.home-main) h1:first-of-type{font-size:2.15rem!important}}

/* v2.0.8 homepage stability patch: prevent Swiper/image natural width from breaking CSS grid */
.home-hero-grid{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)!important;overflow:hidden!important;}
.home-hero-grid>*{min-width:0!important;}
.home-hero-copy{min-width:0!important;overflow:hidden!important;}
.home-visual{min-width:0!important;width:100%!important;max-width:100%!important;overflow:hidden!important;}
.home-visual .swiper{width:100%!important;max-width:100%!important;min-width:0!important;display:block!important;}
.home-visual .swiper-wrapper{width:100%!important;max-width:100%!important;min-width:0!important;}
.home-visual .swiper-slide{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;}
.home-visual .swiper-slide img{width:100%!important;max-width:100%!important;height:100%!important;object-fit:cover!important;}
.home-title{font-size:clamp(2rem,4vw,3.45rem)!important;word-break:keep-all!important;overflow-wrap:normal!important;}
.home-lead{max-width:100%!important;}
@media (max-width:1000px){.home-hero-grid{grid-template-columns:1fr!important;}.home-visual .swiper{min-height:280px!important;}}

/* v2.0.8 subpage title size refinement */
.page-main>h1,.page-title,.page-hero h1,.timetable-inner>h1,main:not(.home-main) h1:first-of-type{font-size:clamp(1.9rem,3vw,2.65rem)!important;}
