/* Styles are scoped to this standalone homepage template. */
body.klsh-homepage{--klsh-navy:#143d65;--klsh-ink:#183d64;--klsh-cyan:#15b3c7;--klsh-rule:#dae3ec;--klsh-muted:#61748b;--klsh-blue-tint:#e5f3fb;--klsh-teal-tint:#e7f6f2;background:#fff;color:var(--klsh-ink);margin:0;padding:0;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-size:16px;line-height:1.6}
.klsh-homepage *{box-sizing:border-box}
.klsh-homepage a{color:inherit;text-decoration:none}
.klsh-homepage a:hover{text-decoration:underline;text-underline-offset:4px}
.klsh-homepage button,.klsh-homepage input,.klsh-homepage select{font:inherit;letter-spacing:normal}
.klsh-homepage button,.klsh-homepage select{cursor:pointer}
.klsh-homepage button{color:inherit}
.klsh-homepage h1,.klsh-homepage h2,.klsh-homepage h3,.klsh-homepage p,.klsh-homepage ul{margin:0;padding:0}
body.klsh-homepage h2,body.klsh-homepage h3{font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-weight:700}
.klsh-homepage ul{list-style:none}
.klsh-homepage a:focus-visible,.klsh-homepage button:focus-visible,.klsh-homepage input:focus-visible,.klsh-homepage select:focus-visible,.klsh-homepage summary:focus-visible{outline:3px solid #cf7800;outline-offset:3px}
.klsh-homepage .dashicons{font-family:dashicons;font-weight:400;font-style:normal;vertical-align:middle}
.klsh-wrap{width:calc(100% - 96px);max-width:1280px;margin-inline:auto}
.klsh-sr-only,.klsh-homepage .screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px);white-space:nowrap!important;padding:0!important;border:0!important}
.klsh-skip{position:fixed;left:12px;top:-100px;z-index:999999;background:#fff;padding:12px 20px;border:2px solid var(--klsh-navy)}
.klsh-skip:focus{top:12px}
.klsh-masthead{background:#fff}
.klsh-brand-row{min-height:120px;display:flex;align-items:center;gap:30px;position:relative;padding-block:22px}
.klsh-brand{display:flex;flex-direction:column;flex-shrink:0;text-decoration:none!important}
.klsh-school-name{font-family:"BiauKai","DFKai-SB","KaiTi","STKaiti","Noto Serif TC",serif;font-size:42px;letter-spacing:.065em;font-weight:700;line-height:1.25;color:#102e4d}
.klsh-school-en{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.8;margin-top:6px}
.klsh-brand-note{padding-left:22px!important;border-left:1px solid #a9bed3;font-family:"BiauKai","DFKai-SB","KaiTi","Noto Serif TC",serif;font-size:20px;letter-spacing:.12em;line-height:1.75;transform:rotate(-3deg)}
.klsh-utilities{position:absolute;right:0;top:10px;display:flex;align-items:center;gap:0;font-size:13px}
.klsh-utilities a{display:flex;align-items:center;gap:5px;padding:4px 12px;min-height:32px;border-right:1px solid #b7c8d7;line-height:1.2}
.klsh-utilities a:last-child{padding-right:0;border:0}
.klsh-utilities .dashicons{font-size:21px;width:21px;height:21px}
.klsh-nav{position:relative;z-index:20;background:var(--klsh-navy);color:white;border-bottom:3px solid #d8f0f5}
.klsh-menu{display:flex;justify-content:space-between;gap:8px}
.klsh-nav-item{display:flex;position:relative;align-items:center;justify-content:center;flex:1;min-width:0}
.klsh-nav-item>a{display:flex;align-items:center;min-height:56px;padding:12px 14px;font-size:18px;letter-spacing:.08em;white-space:nowrap;font-weight:600;text-decoration:none}
.klsh-nav-item>a:hover{color:#b9f3f7}
.klsh-nav-current:after{content:"";height:4px;background:#28d0dd;position:absolute;bottom:0;left:25%;right:25%}
.klsh-dropdown summary{padding:16px 6px;min-width:30px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:center}
.klsh-dropdown summary::-webkit-details-marker{display:none}
.klsh-dropdown summary .dashicons{font-size:15px;width:15px;height:15px}
.klsh-dropdown[open] summary{background:#244e75}
.klsh-dropdown>ul{position:absolute;left:0;top:100%;min-width:210px;max-width:300px;max-height:65vh;overflow:auto;background:#fff;color:var(--klsh-ink);border:1px solid var(--klsh-rule);box-shadow:0 7px 16px #173e651c;padding:8px 0}
.klsh-dropdown li a{display:block;padding:10px 18px;font-size:16px;min-height:44px;line-height:1.5;white-space:normal}
.klsh-dropdown li a:hover{background:#edf6fa;text-decoration:none}
.klsh-nav-item:last-child .klsh-dropdown>ul{left:auto;right:0}
.klsh-mobile-toggle{display:none}
.klsh-hero{height:240px;position:relative;overflow:hidden;background:#e8f3f8}
.klsh-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.klsh-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffffeb 0%,#ffffffe0 24%,#ffffff75 43%,transparent 66%);pointer-events:none}
.klsh-hero-inner{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-left:34px}
.klsh-hero h1{font-family:"BiauKai","DFKai-SB","KaiTi","STKaiti","Noto Serif TC",serif;font-size:34px;line-height:1.5;letter-spacing:.16em;font-weight:500;text-shadow:0 1px 6px white,0 0 20px white;color:#163a60}
.klsh-hero p{font-size:16px;letter-spacing:.14em;margin-top:8px;text-shadow:0 0 8px white,0 0 14px white;font-weight:600}
.klsh-photo-source{position:absolute;z-index:2;right:14px;bottom:9px;background:#ffffffeb;color:#2b4c68!important;padding:2px 8px;border-radius:2px;font-size:11px;text-decoration:none!important}
.klsh-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:22px;padding-top:16px;padding-bottom:24px}
.klsh-announcements{min-width:0;scroll-margin-top:18px}
.klsh-news-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;margin-bottom:9px}
.klsh-categories{display:flex;align-self:stretch;gap:0;min-width:0}
.klsh-categories a{padding:15px 15px 12px;display:flex;align-items:center;position:relative;font-size:17px;font-weight:500;white-space:nowrap;text-decoration:none;min-height:44px}
.klsh-categories a.is-active{font-weight:700;color:#123d65}
.klsh-categories a.is-active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:2px;background:var(--klsh-cyan)}
.klsh-categories a:hover{background:#f0f7fa}
.klsh-search{display:flex;border:1px solid #c7d4e1;border-radius:4px;flex:0 1 200px;min-width:130px;height:44px;overflow:hidden;background:#fff}
.klsh-search input{border:0;background:transparent;color:var(--klsh-ink);padding:9px 10px;min-width:0;width:100%;font-size:15px;box-shadow:none;outline-offset:-3px!important}
.klsh-search input::placeholder{color:#657990}
.klsh-search button{width:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;border:0;background:#fff;padding:0}
.klsh-search button:hover{background:#edf6fa}
.klsh-search .dashicons{font-size:24px;width:24px;height:24px}
.klsh-search-status{background:#edf6fa;padding:10px 14px;margin-bottom:10px;font-size:14px}
.klsh-search-status a{margin-left:12px;text-decoration:underline}
.klsh-news-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:16px;text-align:left;margin:0}
.klsh-news-table th{background:#edf1f5;border:0;padding:10px 16px;font-weight:500;line-height:1.5}
.klsh-date-col{width:126px}
.klsh-category-col{width:110px}
.klsh-news-table td{padding:11px 16px;border:0;border-bottom:1px solid var(--klsh-rule);vertical-align:middle;line-height:1.65}
.klsh-news-table tbody tr:hover{background:#f6faff}
.klsh-date{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}
.klsh-title a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.6}
.klsh-title a:focus-visible{-webkit-line-clamp:unset}
.klsh-category{padding-inline:8px!important;text-align:center}
.klsh-badge{display:inline-block;background:#e9f1f8;color:#265479;padding:3px 9px;font-size:13px;border-radius:3px;white-space:nowrap;line-height:1.5}
.klsh-badge-important{color:#a52c32;background:#fff0f0}
.klsh-badge-admissions{color:#1a5f88;background:#e5f4ff}
.klsh-badge-activities{color:#246a44;background:#e9f6ec}
.klsh-badge-honors{color:#6b4896;background:#f2ecfc}
.klsh-empty{text-align:center;padding:48px 16px!important}
.klsh-empty h3{font-size:20px;margin-bottom:8px}
.klsh-empty a{display:inline-block;margin-top:14px;text-decoration:underline}
.klsh-list-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:20px}
.klsh-page-size{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:14px}
.klsh-page-size select{padding:5px 8px;border:1px solid #cad7e4;background:#fff;border-radius:3px;color:var(--klsh-ink);min-height:36px}
.klsh-page-size button{background:#edf3f8;border:0;padding:5px 9px;border-radius:3px;min-height:36px;font-size:13px}
.klsh-pagination{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:14px}
.klsh-pagination>a,.klsh-pagination>span{min-width:36px;min-height:38px;padding:7px 11px;text-align:center;border-radius:3px;background:#eef4f9;text-decoration:none}
.klsh-pagination>a:hover{background:#dbeef8}
.klsh-pagination .is-current{background:#1386bb;color:#fff;font-weight:600}
.klsh-pagination .is-disabled{color:#718295;background:#f2f5f8}
.klsh-pagination .klsh-ellipsis{min-width:18px;background:transparent;padding-inline:2px}
.klsh-count{font-size:12px;color:var(--klsh-muted);margin-top:10px!important}
.klsh-sidebar{padding-top:0;min-width:0}
.klsh-resource{padding:18px 11px 11px;border-radius:3px;margin-bottom:16px}
.klsh-admissions{background:var(--klsh-blue-tint)}
.klsh-learning{background:var(--klsh-teal-tint)}
.klsh-resource h2{font-size:21px;display:flex;align-items:center;gap:10px;line-height:1.4;padding:0 5px 12px;font-weight:700;color:#123f64}
.klsh-resource h2 .dashicons{font-size:31px;width:34px;height:34px}
.klsh-learning h2{color:#16747a}
.klsh-resource li{background:#fff;margin:0}
.klsh-resource li+li{border-top:1px solid #e3eaf1}
.klsh-resource li a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-size:16px;min-height:44px;gap:8px}
.klsh-resource li a .dashicons{font-size:16px;width:16px;height:16px;flex-shrink:0}
.klsh-resource li a:hover{background:#f8fcff;text-decoration:none}
.klsh-side-note{font-family:"BiauKai","DFKai-SB","KaiTi","Noto Serif TC",serif;font-size:21px;letter-spacing:.08em;text-align:left;color:#4c769b;line-height:1.7;padding:5px 10px 26px!important;min-height:108px;border-bottom:3px solid #d8eef4}
.klsh-footer{background:#edf4f9;padding:18px 0;color:#4e6b89}
.klsh-footer-row{display:flex;align-items:center;justify-content:space-between;gap:28px}
.klsh-footer strong{font-family:"Noto Serif TC","BiauKai",serif;font-size:20px;color:#365a7e;letter-spacing:.06em}
.klsh-footer strong+span{font-size:11px;margin-left:10px}
.klsh-footer p{font-size:13px;margin-top:8px}
.klsh-separator{margin-inline:8px;color:#9badbf}
.klsh-footer-links{font-size:12px;text-align:right;display:flex;justify-content:flex-end;gap:8px 14px;flex-wrap:wrap}
.klsh-footer-links small{display:block;width:100%;font-size:11px;color:#61748b}
@media(min-width:1500px){.klsh-hero{height:280px}.klsh-hero-inner{padding-left:45px}}
@media(max-width:1200px){.klsh-wrap{width:calc(100% - 56px)}.klsh-brand-note{font-size:17px}.klsh-school-name{font-size:36px}.klsh-school-en{font-size:10px}.klsh-main-grid{grid-template-columns:minmax(0,1fr) 225px;gap:18px}.klsh-news-toolbar{flex-wrap:wrap;gap:8px;padding-bottom:8px}.klsh-categories{flex:1 0 100%;justify-content:space-between}.klsh-categories a{padding-inline:14px;font-size:16px}.klsh-search{flex:1 1 100%;height:40px}.klsh-date-col{width:115px}.klsh-category-col{width:98px}.klsh-news-table th,.klsh-news-table td{padding-inline:12px}.klsh-resource h2{font-size:19px}}
@media(max-width:900px){.klsh-brand-note{display:none}.klsh-brand-row{min-height:117px;padding-top:35px}.klsh-main-grid{grid-template-columns:minmax(0,1fr)}.klsh-news-toolbar{flex-wrap:nowrap}.klsh-categories{flex:1 1 auto}.klsh-categories a{font-size:15px;padding-inline:11px}.klsh-search{flex:0 1 210px}.klsh-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px}.klsh-resource{margin-bottom:0}.klsh-side-note{grid-column:1/-1;font-size:19px}.klsh-nav-item>a{font-size:16px;padding:12px 8px;letter-spacing:0}.klsh-dropdown summary{min-width:24px;padding-inline:3px}.klsh-footer-row{align-items:flex-start}.klsh-footer strong+span{display:block;margin:2px 0 0}}
@media(max-width:640px){.klsh-wrap{width:calc(100% - 32px)}.klsh-brand-row{min-height:114px;padding-top:39px;padding-bottom:16px}.klsh-school-name{font-size:clamp(24px,6.5vw,34px);letter-spacing:.04em}.klsh-school-en{font-size:8px;letter-spacing:.1em}.klsh-utilities{top:7px;font-size:12px}.klsh-utilities a{padding-inline:8px}.klsh-utilities .dashicons{font-size:17px;width:17px;height:17px}.klsh-hero{height:210px}.klsh-hero-image{object-position:center}.klsh-hero:after{background:linear-gradient(90deg,#fffffff2 0%,#ffffffd9 45%,#ffffff24 78%)}.klsh-hero-inner{padding-left:4px;justify-content:center}.klsh-hero h1{font-size:25px;line-height:1.6;letter-spacing:.08em}.klsh-hero p{font-size:12px;letter-spacing:.04em;max-width:95%}.klsh-photo-source{font-size:9px;bottom:7px;right:8px}.klsh-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.klsh-nav-item>a{min-height:46px;font-size:15px;padding-inline:4px}.klsh-nav-current:after{left:12%;right:12%}.klsh-dropdown summary{padding-block:14px;min-width:26px}.klsh-dropdown>ul{width:240px;max-width:calc(100vw - 32px);z-index:25}.klsh-nav-item:nth-child(3n) .klsh-dropdown>ul{left:auto;right:0}.klsh-nav-item:nth-child(3n+2) .klsh-dropdown>ul{left:50%;transform:translateX(-50%)}.klsh-mobile-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:transparent;border:0;min-height:48px;padding:10px 3px;font-size:15px;font-weight:600}.klsh-homepage.klsh-js .klsh-mobile-toggle{display:flex}.klsh-homepage.klsh-js .klsh-menu:not(.is-expanded){display:none}.klsh-main-grid{padding-top:12px;padding-bottom:18px;gap:20px}.klsh-news-toolbar{flex-wrap:wrap;gap:9px;margin-bottom:6px}.klsh-categories{flex:1 0 100%;overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}.klsh-categories a{flex:1 0 auto;padding:10px 9px;font-size:14px;min-height:45px}.klsh-search{flex:1 0 100%;height:44px}.klsh-news-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.klsh-news-table,.klsh-news-table tbody{display:block;width:100%}.klsh-news-table tr{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:13px 2px;border-bottom:1px solid var(--klsh-rule)}.klsh-news-table td{border:0;padding:0;min-width:0}.klsh-news-table .klsh-date{grid-column:1;grid-row:1;font-size:12px;color:var(--klsh-muted);align-self:center}.klsh-news-table .klsh-category{grid-column:2;grid-row:1;text-align:right;padding:0!important}.klsh-badge{font-size:11px;padding:2px 8px}.klsh-news-table .klsh-title{grid-column:1/-1;grid-row:2}.klsh-title a{font-size:15px;line-height:1.65;-webkit-line-clamp:3;padding-block:3px}.klsh-news-table .klsh-empty{grid-column:1/-1}.klsh-list-footer{justify-content:center;gap:14px;padding-top:16px}.klsh-page-size{order:2;font-size:13px}.klsh-pagination{justify-content:center;gap:5px;width:100%;font-size:13px}.klsh-pagination>a,.klsh-pagination>span{padding:8px 9px;min-width:36px;min-height:42px}.klsh-pagination .klsh-ellipsis{min-width:14px}.klsh-count{text-align:center}.klsh-sidebar{gap:12px}.klsh-resource{padding:13px 8px 8px}.klsh-resource h2{font-size:16px;gap:6px;padding-inline:0}.klsh-resource h2 .dashicons{width:25px;height:25px;font-size:25px}.klsh-resource li a{font-size:13px;padding:9px 8px;min-height:44px}.klsh-resource li a .dashicons{width:12px;height:12px;font-size:12px}.klsh-side-note{font-size:18px}.klsh-footer-row{flex-direction:column;gap:15px}.klsh-footer strong+span{display:block;margin:2px 0 0}.klsh-footer-links{text-align:left;justify-content:flex-start}.klsh-footer p{font-size:12px}.klsh-search-status{font-size:13px}}
@media(prefers-reduced-motion:reduce){.klsh-homepage *{scroll-behavior:auto!important;transition:none!important}}
/* Unit + category + keyword filters, matching the requested school-portal workflow. */
.klsh-promo{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:9px;overflow:hidden;border:1px solid #bedbe9;border-radius:4px;background:linear-gradient(145deg,#e8f7ee 0%,#e0f2fc 55%,#bddfee 100%);padding:20px 15px 14px;margin-bottom:16px;text-align:center;min-height:242px;color:#143d65!important;text-decoration:none!important}
.klsh-promo:before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 100% 0%,#ffffffb3,transparent 60%);pointer-events:none}
.klsh-promo:hover{border-color:#5a98b7;box-shadow:0 4px 14px #173e6517}
.klsh-promo-eyebrow{font-size:13px;letter-spacing:.07em;font-weight:600}
.klsh-promo-symbol .dashicons{font-size:30px;width:30px;height:30px;color:#688746}
.klsh-promo-title{font-family:"BiauKai","DFKai-SB","KaiTi","Noto Serif TC",serif;font-size:34px;line-height:1.25;letter-spacing:.07em;overflow-wrap:anywhere}
.klsh-promo-subtitle{font-size:13px;line-height:1.7;color:#34566e}
.klsh-promo-cta{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:auto;min-height:40px;font-size:14px;font-weight:600;border-top:1px solid #94baca80;padding-top:8px;width:100%}
.klsh-promo-cta .dashicons{font-size:16px;width:16px;height:16px}
.klsh-promo.has-image{padding:0;gap:0;min-height:0;background:#e5f3fb}
.klsh-promo-image{display:block;width:100%;height:auto;object-fit:contain}
.klsh-promo.has-image .klsh-promo-cta{padding:10px 12px;border-top:0}
@media(max-width:900px){.klsh-promo{grid-column:1/-1;margin-bottom:0;min-height:210px;gap:8px}.klsh-promo.has-image .klsh-promo-image{width:100%;max-width:500px}}
.klsh-filters{display:flex;align-items:center;gap:14px;background:#f2f7fa;border:1px solid #e0e9f0;border-radius:4px;padding:12px 14px;margin-bottom:12px}
.klsh-filter-field{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 190px}
.klsh-filter-field label{font-size:14px;white-space:nowrap;font-weight:600}
.klsh-filter-field select{width:100%;min-width:0;min-height:44px;border:1px solid #c7d4e1;border-radius:4px;padding:8px 28px 8px 10px;background:#fff;color:var(--klsh-ink);font-size:14px}
.klsh-filter-keyword{flex:1 1 180px;min-width:160px}
.klsh-filters .klsh-search{height:44px;width:100%;min-width:0}
.klsh-filters .klsh-search button{width:76px;flex-basis:76px;gap:4px;background:var(--klsh-navy);color:#fff;font-size:14px}
.klsh-filters .klsh-search button:hover{background:#245680}
.klsh-filters .klsh-search .dashicons{width:20px;height:20px;font-size:20px}
.klsh-filter-reset{font-size:14px;display:flex;align-items:center;min-height:44px;white-space:nowrap;text-decoration:underline!important}
.klsh-filter-summary{font-size:14px;color:var(--klsh-muted);margin:0 0 10px!important}
@media(max-width:1200px){.klsh-filters{flex-wrap:wrap;gap:10px}.klsh-filter-field{flex:1 1 calc(50% - 10px)}.klsh-filter-keyword{flex:1 1 calc(100% - 50px)}}
@media(max-width:640px){.klsh-filters{padding:10px;gap:10px}.klsh-filter-field{display:block;flex-basis:calc(50% - 10px)}.klsh-filter-field label{display:block;margin-bottom:4px;font-size:13px}.klsh-filter-field select{font-size:14px}.klsh-filter-keyword{min-width:0}.klsh-filter-summary{font-size:13px}}
