/* KDEC course finder. Keep every rule within the finder page. */
.kdec-program-finder { --pf-line:#d8e3ef; --pf-muted:#52677f; padding-top:20px; color:#152640; font-family:inherit; line-height:1.85; }
.kdec-program-finder .kl-wrap { max-width:1320px; }
.kdec-program-finder .kl-section { margin-top:58px; }
.kdec-program-finder .kl-section-label { font-size:13px; }
.kdec-program-finder [hidden] { display:none !important; }
.kdec-program-finder .pf-hero { padding:40px 44px; border:1px solid #d7e4f0; border-radius:22px; background:linear-gradient(125deg,#f1f6ff,#f0f8f6); }
.kdec-program-finder .pf-hero .kl-eyebrow,
.kdec-program-finder .pf-hero .kl-section-label,
.kdec-program-finder .pf-hero .pf-eyebrow { display:block; margin-bottom:15px; color:#125bd1; font-size:13px; line-height:1.7; font-weight:700; letter-spacing:.09em; }
.kdec-program-finder .pf-hero h1 { color:#091f42; font-size:clamp(32px,3vw,44px); line-height:1.3; letter-spacing:-.04em; }
.kdec-program-finder .pf-hero p { max-width:920px; margin-top:17px; color:#45607d; font-size:16px; line-height:1.9; }
.kdec-program-finder .pf-shortcuts { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin:24px 0; padding:0; }
.kdec-program-finder .pf-shortcuts a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; padding:10px 16px; border:1px solid #cfdeed; border-radius:8px; background:#fff; color:#315879; font-size:14px; line-height:1.6; font-weight:600; }
.kdec-program-finder .pf-shortcuts a:hover { border-color:#125bd1; background:#f1f6ff; color:#125bd1; }
.kdec-program-finder .pf-filter { margin-top:26px; padding:29px 30px; border:1px solid var(--pf-line); border-radius:18px; background:#f7f9fc; }
.kdec-program-finder .pf-filter-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.kdec-program-finder .pf-filter-fields label { display:flex; flex-direction:column; min-width:0; gap:10px; margin:0; color:#284c72; }
.kdec-program-finder .pf-filter-fields label > span { display:block; font-size:14px; line-height:1.6; font-weight:700; }
.kdec-program-finder .pf-filter-fields .pf-filter-search { grid-column:1 / -1; }
.kdec-program-finder .pf-filter-fields select,
.kdec-program-finder .pf-filter-fields input[type="search"] { display:block; width:100%; max-width:100%; min-width:0; min-height:52px; margin:0; padding:12px 14px; border:1px solid #b8cce0; border-radius:8px; background:#fff; color:#183857; font-family:inherit; font-size:16px; line-height:1.5; }
.kdec-program-finder .pf-filter-fields select { padding-right:32px; }
.kdec-program-finder .pf-filter-fields input[type="search"]::placeholder { color:#687d95; opacity:1; }
.kdec-program-finder .pf-filter-fields input[type="search"] { -webkit-appearance:none; appearance:none; }
.kdec-program-finder .pf-filter-fields select:hover,
.kdec-program-finder .pf-filter-fields input[type="search"]:hover { border-color:#7f9fbd; }
.kdec-program-finder .pf-filter-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:10px; margin-top:23px; }
.kdec-program-finder .pf-filter-actions .kl-btn,
.kdec-program-finder .pf-filter-actions .kl-btn-outline { display:inline-flex; align-items:center; justify-content:center; min-height:48px; max-width:100%; padding:12px 22px; border:1px solid #125bd1; border-radius:8px; font-size:15px; line-height:1.5; font-weight:700; text-align:center; cursor:pointer; }
.kdec-program-finder .pf-filter-actions .kl-btn { background:#125bd1; color:#fff; }
.kdec-program-finder .pf-filter-actions .kl-btn-outline { border-color:#c1d2e5; background:#fff; color:#315c84; }
.kdec-program-finder .pf-filter-actions .kl-btn:hover { border-color:#0d49ad; background:#0d49ad; color:#fff; }
.kdec-program-finder .pf-filter-actions .kl-btn-outline:hover { border-color:#125bd1; background:#edf4ff; color:#125bd1; }
.kdec-program-finder .pf-filter-help { margin:18px 0 0; color:#5a708a; font-size:13px; line-height:1.9; }
.kdec-program-finder .pf-result-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px 25px; margin:0 0 23px; }
.kdec-program-finder .pf-result-heading > div { flex:1 1 600px; min-width:0; }
.kdec-program-finder .pf-result-heading h2 { color:#14385f; font-size:29px; line-height:1.4; }
.kdec-program-finder #pf-result-count { flex:0 0 auto; color:#12385e; font-size:25px; line-height:1.5; font-weight:700; letter-spacing:-.025em; }
.kdec-program-finder #pf-selected-summary { max-width:980px; margin-top:12px; color:var(--pf-muted); font-size:14px; line-height:1.85; }
.kdec-program-finder .pf-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:24px; }
.kdec-program-finder .pf-course { display:flex; flex-direction:column; min-width:0; margin:0; padding:28px; border:1px solid var(--pf-line); border-radius:17px; background:#fff; }
.kdec-program-finder .pf-course > header { min-width:0; }
.kdec-program-finder .pf-family { display:inline-flex; align-items:center; min-height:29px; max-width:100%; padding:4px 9px; border-radius:5px; background:#edf3fd; color:#386396; font-size:13px; line-height:1.5; font-weight:700; }
.kdec-program-finder .pf-course h2 { margin:18px 0 0; color:#0e3056; font-size:23px; line-height:1.5; letter-spacing:-.035em; }
.kdec-program-finder .pf-course-desc { margin-top:14px; color:var(--pf-muted); font-size:15px; line-height:1.9; }
.kdec-program-finder .pf-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.kdec-program-finder .pf-tags > span { display:inline-flex; align-items:center; max-width:100%; min-height:28px; padding:4px 9px; border-radius:5px; background:#eef7f5; color:#346d66; font-size:13px; line-height:1.6; }
.kdec-program-finder .pf-course-note { margin-top:18px; padding-top:15px; border-top:1px solid #e1e9f2; color:#60768d; font-size:13px; line-height:1.85; }
.kdec-program-finder .pf-course .kl-actions { align-self:stretch; width:100%; margin-top:auto; padding-top:23px; }
.kdec-program-finder .pf-course .kl-actions .kl-btn { flex:1 1 auto; min-height:46px; padding:11px 18px; border-radius:8px; font-size:14px; }
.kdec-program-finder #pf-empty { margin:0; padding:32px 27px; border:1px dashed #bbcee2; border-radius:15px; background:#f8fafd; color:#45617f; font-size:16px; line-height:1.9; }
.kdec-program-finder #pf-related { margin-top:38px; border-top:1px solid #cfdeed; }
.kdec-program-finder #pf-related > summary { display:flex; align-items:center; gap:15px; min-height:70px; padding:20px 5px; color:#214a71; font-size:20px; line-height:1.6; font-weight:700; letter-spacing:-.025em; list-style:none; cursor:pointer; }
.kdec-program-finder #pf-related > summary::-webkit-details-marker { display:none; }
.kdec-program-finder #pf-related > summary::after { content:"+"; color:#125bd1; font-size:25px; line-height:1; font-weight:400; }
.kdec-program-finder #pf-related[open] > summary::after { content:"−"; }
.kdec-program-finder #pf-related-count { flex:0 0 auto; margin-left:auto; padding:4px 10px; border-radius:20px; background:#edf3fb; color:#476d97; font-size:13px; line-height:1.5; letter-spacing:0; }
.kdec-program-finder #pf-related-list { margin-top:8px; }
.kdec-program-finder #pf-related .pf-course { border-color:#dce5ef; background:#fbfcfe; }
.kdec-program-finder .pf-related-note { margin:0 0 22px; color:#60768d; font-size:13px; line-height:1.85; }
.kdec-program-finder #pf-related > p { margin:0 0 22px; color:#60768d; font-size:13px; line-height:1.85; }
.kdec-program-finder .pf-next { padding:32px 35px; border:1px solid #d5e2f0; border-radius:17px; background:#f2f7fd; }
.kdec-program-finder .pf-next h2 { color:#133b65; font-size:29px; line-height:1.45; }
.kdec-program-finder .pf-next > p { max-width:1000px; margin-top:15px; color:#526b86; font-size:15px; line-height:1.9; }
.kdec-program-finder .pf-extra-links { padding-top:32px; border-top:1px solid #d8e3ef; }
.kdec-program-finder .pf-extra-links h2 { color:#244969; font-size:24px; line-height:1.5; }
.kdec-program-finder .pf-extra-links .kl-actions { margin-top:22px; }
.kdec-program-finder a:focus-visible,
.kdec-program-finder button:focus-visible,
.kdec-program-finder select:focus-visible,
.kdec-program-finder input:focus-visible,
.kdec-program-finder summary:focus-visible { outline:3px solid #125bd1; outline-offset:4px; }
@media (max-width:1100px) {
    .kdec-program-finder .pf-hero { padding:35px; }
    .kdec-program-finder .pf-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .kdec-program-finder .pf-results { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
    .kdec-program-finder .pf-course { padding:26px; }
}
@media (max-width:650px) {
    .kdec-program-finder { padding-top:12px; }
    .kdec-program-finder .kl-section { margin-top:42px; }
    .kdec-program-finder .kl-section-label { font-size:13px; }
    .kdec-program-finder .pf-hero { padding:28px 23px; border-radius:16px; }
    .kdec-program-finder .pf-hero h1 { font-size:30px; }
    .kdec-program-finder .pf-hero p { font-size:15px; }
    .kdec-program-finder .pf-hero .kl-eyebrow,
    .kdec-program-finder .pf-hero .kl-section-label,
    .kdec-program-finder .pf-hero .pf-eyebrow { margin-bottom:12px; font-size:13px; letter-spacing:.06em; }
    .kdec-program-finder .pf-shortcuts { gap:8px; margin:20px 0; }
    .kdec-program-finder .pf-shortcuts a { min-height:44px; padding:10px 12px; font-size:13px; }
    .kdec-program-finder .pf-filter { margin-top:22px; padding:23px 20px; border-radius:15px; }
    .kdec-program-finder .pf-filter-fields { grid-template-columns:minmax(0,1fr); gap:19px; }
    .kdec-program-finder .pf-filter-fields label { gap:8px; }
    .kdec-program-finder .pf-filter-fields label > span { font-size:14px; }
    .kdec-program-finder .pf-filter-fields select,
    .kdec-program-finder .pf-filter-fields input[type="search"] { min-height:52px; font-size:16px; }
    .kdec-program-finder .pf-filter-actions { gap:9px; margin-top:23px; }
    .kdec-program-finder .pf-filter-actions .kl-btn,
    .kdec-program-finder .pf-filter-actions .kl-btn-outline { flex:1 1 120px; min-height:46px; padding:11px 13px; font-size:14px; }
    .kdec-program-finder .pf-filter-help { margin-top:17px; font-size:13px; }
    .kdec-program-finder .pf-result-heading { display:block; margin:0 0 20px; }
    .kdec-program-finder .pf-result-heading h2 { font-size:27px; }
    .kdec-program-finder #pf-result-count { display:block; margin-bottom:9px; font-size:24px; }
    .kdec-program-finder #pf-selected-summary { font-size:13px; }
    .kdec-program-finder .pf-results { grid-template-columns:minmax(0,1fr); gap:17px; }
    .kdec-program-finder .pf-course { padding:25px 22px; border-radius:14px; }
    .kdec-program-finder .pf-course h2 { margin-top:16px; font-size:23px; }
    .kdec-program-finder .pf-course-desc { font-size:14px; }
    .kdec-program-finder .pf-tags { margin-top:18px; }
    .kdec-program-finder .pf-course-note { font-size:13px; }
    .kdec-program-finder .pf-course .kl-actions { padding-top:21px; }
    .kdec-program-finder #pf-empty { padding:25px 22px; font-size:15px; }
    .kdec-program-finder #pf-related { margin-top:30px; }
    .kdec-program-finder #pf-related > summary { min-height:68px; gap:10px; font-size:17px; }
    .kdec-program-finder #pf-related-count { padding:4px 8px; font-size:13px; }
    .kdec-program-finder .pf-next { padding:26px 22px; border-radius:14px; }
    .kdec-program-finder .pf-next h2 { font-size:25px; }
    .kdec-program-finder .pf-next > p { font-size:14px; }
    .kdec-program-finder .pf-extra-links { padding-top:27px; }
    .kdec-program-finder .pf-extra-links h2 { font-size:22px; }
}
@media (prefers-reduced-motion:reduce) {
    .kdec-program-finder *,
    .kdec-program-finder *::before,
    .kdec-program-finder *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
