/* ── Utbildningar – huvud-sida ── */
:root{--bg:#F4F8F5;--card:#fff;--tx:#0A0A0A;--mu:#3A3A36;--li:#7A7A74;--ac:#5BA882;--al:#EBF5F0;--ah:#2D6B4A;--bl:#5A8FB5;--bll:#E4F0FB;--bh:#2A4F6E;--re:#B04830;--rl:#FDECEA;--wa:#9A6A00;--wl:#FBF5EA;--pu:#8A70B5;--pl:#EDE7F5;--bo:#C5D8EB;--r:12px;--sh:0 2px 20px rgba(0,0,0,.06);--shl:0 8px 40px rgba(0,0,0,.1)}
*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background-color:#fff;color:var(--tx);line-height:1.6;-webkit-font-smoothing:antialiased}

/* ── Nav ── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border-bottom:1px solid #D0E3F5;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between;transition:transform .3s cubic-bezier(.4,0,.2,1)}
nav.nav-hidden{transform:translateY(-100%)}
.logo{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;letter-spacing:.01em;text-decoration:none;color:inherit;white-space:nowrap}
.logo .i-dot{position:relative;display:inline-block}
.logo .i-dot::after{content:'';position:absolute;top:.25em;left:50%;transform:translateX(-50%);width:.2em;height:.2em;background:#6BA3D0;border-radius:50%}
.nav-login{font-size:.85rem;font-weight:600;color:var(--ac);text-decoration:none;border:1.5px solid var(--ac);padding:7px 18px;border-radius:8px;transition:all .18s}
.nav-login:hover{background:var(--al)}

/* ── Page header ── */
.page-header{padding:72px 28px 0;max-width:1280px;margin:0 auto}
.page-header-inner{padding:24px 0 20px;border-bottom:1.5px solid #D0E3F5;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.page-header-label{font-size:.66rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--bl);margin-bottom:6px;text-align:center}
.page-header h1{font-family:'Inter',sans-serif;font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.1;letter-spacing:-.05em;margin-bottom:5px;text-align:center}
.page-header p{color:var(--mu);font-size:.88rem;max-width:400px;text-align:center;margin:0 auto}

/* ── Two-column layout ── */
.page-layout{max-width:1280px;margin:0 auto;padding:22px 28px 80px;display:flex;gap:22px;align-items:flex-start}

/* ── Sidebar drawer ── */
.sidebar{width:300px;position:fixed;top:0;left:0;height:100vh;z-index:200;background:#fff;border-right:1.5px solid #D0E3F5;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:0 16px 24px;box-shadow:4px 0 32px rgba(0,0,0,.1)}
.sidebar.open{transform:translateX(0)}
.sidebar::-webkit-scrollbar{width:3px}
.sidebar::-webkit-scrollbar-thumb{background:var(--bo);border-radius:3px}

/* Drawer header */
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:18px 0 14px;border-bottom:1.5px solid #D0E3F5;margin-bottom:2px;flex-shrink:0}
.sidebar-header-title{font-size:.8rem;font-weight:700;color:var(--tx);letter-spacing:-.01em}
.sidebar-close{background:none;border:1.5px solid #D0E3F5;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--li);transition:all .18s}
.sidebar-close:hover{border-color:var(--bl);color:var(--bl);background:var(--bll)}

/* Filter backdrop */
.filter-backdrop{display:none;position:fixed;inset:0;z-index:199;background:rgba(10,10,10,.35);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.filter-backdrop.show{display:block}

/* Filter toggle button */
.filter-toggle-btn{display:flex;align-items:center;gap:7px;padding:6px 14px;border:1.5px solid #D0E3F5;border-radius:8px;background:#fff;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;color:var(--mu);cursor:pointer;transition:all .18s;white-space:nowrap;position:relative}
.filter-toggle-btn:hover{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.filter-toggle-btn.has-filters{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.filter-toggle-count{background:var(--bl);color:#fff;border-radius:10px;font-size:.6rem;font-weight:700;padding:1px 5px;line-height:1.5;margin-left:2px}

.sb-block{background:#fff;border:1.5px solid #D0E3F5;border-radius:12px;padding:14px 16px}

/* Search */
.sb-search{position:relative;display:flex;align-items:center}
.sb-search svg{position:absolute;left:11px;color:var(--li);pointer-events:none;flex-shrink:0}
.sb-search input{width:100%;padding:9px 34px 9px 34px;border:1.5px solid #D0E3F5;border-radius:9px;font-family:'Inter',sans-serif;font-size:.85rem;background:#fff;color:var(--tx);transition:border-color .18s;outline:none}
.sb-search input:focus{border-color:var(--bl);box-shadow:0 0 0 3px rgba(90,143,181,.1)}
.sb-search input::placeholder{color:var(--li)}
.search-clear{position:absolute;right:9px;background:none;border:none;font-size:1rem;color:var(--li);cursor:pointer;line-height:1;display:none;align-items:center;justify-content:center;border-radius:50%;width:20px;height:20px;transition:background .15s}
.search-clear:hover{background:var(--bg);color:var(--tx)}

/* Mode buttons */
.sb-label{display:block;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--bl);margin-bottom:10px}
.mode-btns{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.qbtn{padding:7px 8px;border-radius:8px;border:1.5px solid var(--bo);background:var(--card);font-family:'Inter',sans-serif;font-size:.76rem;font-weight:600;color:var(--mu);cursor:pointer;transition:all .18s;white-space:nowrap;text-align:center}
.qbtn:hover{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.qbtn.active{border-color:var(--bl);background:var(--bl);color:#fff}

/* Filter inputs */
.filter-item{margin-bottom:11px}
.filter-item:last-of-type{margin-bottom:0}
.filter-item label{display:block;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--li);margin-bottom:5px}
.filter-item input[type=text],.filter-item select{width:100%;padding:8px 10px;border:1.5px solid #D0E3F5;border-radius:8px;font-family:'Inter',sans-serif;font-size:.83rem;background:#fff;color:var(--tx);transition:border-color .18s;outline:none}
.filter-item input[type=text]:focus,.filter-item select:focus{border-color:var(--bl)}
.filter-item select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B6B63' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}

/* Merit groups */
.merit-groups-wrap{display:flex;flex-direction:column;gap:8px}
.merit-groups-title{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--li);margin-bottom:2px}
.merit-group{background:#F8FBFE;border:1.5px solid #D0E3F5;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:5px}
.merit-group.active{border-color:var(--bl);background:#EEF7FF}
.merit-group-header{display:flex;align-items:center;justify-content:space-between}
.merit-group-name{font-size:.76rem;font-weight:600;color:var(--mu)}
.merit-help-btn{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--bo);background:none;font-size:.6rem;font-weight:700;color:var(--li);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;padding:0}
.merit-help-btn:hover{border-color:var(--bl);color:var(--bl)}
.merit-help-text{display:none;font-size:.71rem;color:var(--mu);line-height:1.4;background:var(--bll);border-radius:6px;padding:6px 8px}
.merit-help-text.open{display:block}
.merit-range-inputs{display:flex;align-items:center;gap:5px}
.merit-range-inputs input[type=text]{flex:1;padding:6px 8px;border:1.5px solid #D0E3F5;border-radius:7px;font-family:'Inter',sans-serif;font-size:.82rem;background:#fff;color:var(--tx);transition:border-color .18s;outline:none;min-width:0}
.merit-range-inputs input[type=text]:focus{border-color:var(--bl)}
.merit-range-inputs input[type=text].active{border-color:var(--bl);background:var(--bll)}
.merit-sep{font-size:.8rem;color:var(--li);font-weight:600;flex-shrink:0}

/* Behörighet */
.behorighet-options{display:flex;flex-direction:column;gap:0;margin-bottom:0}
.course-picker{display:none;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed #D0E3F5}
.course-picker.open{display:flex}
.course-search-input{padding:7px 10px;border:1.5px solid #D0E3F5;border-radius:8px;font-family:'Inter',sans-serif;font-size:.82rem;background:#fff;color:var(--tx);outline:none;transition:border-color .18s}
.course-search-input:focus{border-color:var(--bl)}
.course-list{max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}
.course-list::-webkit-scrollbar{width:3px}
.course-list::-webkit-scrollbar-thumb{background:var(--bo);border-radius:3px}
.course-item{display:flex;align-items:center;gap:7px;padding:4px 2px;cursor:pointer;border-radius:5px}
.course-item:hover{background:#F0F7FF}
.course-item input[type=checkbox]{width:13px;height:13px;accent-color:var(--bl);cursor:pointer;flex-shrink:0}
.course-item label{font-size:.78rem;color:var(--mu);cursor:pointer;user-select:none}
.selected-courses{display:flex;flex-wrap:wrap;gap:4px}
.course-tag{display:inline-flex;align-items:center;gap:4px;background:var(--bll);border:1px solid var(--bo);border-radius:12px;padding:3px 8px;font-size:.72rem;font-weight:600;color:var(--bh)}
.course-tag button{background:none;border:none;cursor:pointer;color:var(--li);font-size:.8rem;line-height:1;padding:0;display:flex;align-items:center}
.course-tag button:hover{color:var(--re)}
.sb-checks{margin-top:12px;padding-top:11px;border-top:1px solid #D0E3F5;display:flex;flex-direction:column;gap:1px}
.fcheck{display:flex;align-items:center;gap:8px;font-size:.79rem;font-weight:500;color:var(--mu);cursor:pointer;user-select:none;padding:5px 0}
.fcheck input[type=checkbox]{width:14px;height:14px;accent-color:var(--bl);cursor:pointer;flex-shrink:0}
.sb-reset{width:100%;background:none;border:none;font-family:'Inter',sans-serif;font-size:.76rem;color:var(--li);cursor:pointer;text-decoration:underline;padding:10px 0 0;text-align:left}
.sb-reset:hover{color:var(--re)}

/* ── Popular searches ── */
.popular-searches{margin-top:10px;display:flex;flex-direction:column;gap:5px}
.pop-chip{background:#EEF4FB;border:1px solid #D0E3F5;border-radius:20px;padding:5px 12px;font-size:.72rem;font-weight:600;color:var(--bh);cursor:pointer;transition:all .15s;white-space:nowrap;text-align:left}
.pop-chip:hover{background:var(--bl);color:#fff;border-color:var(--bl)}

/* ── Filter badge ── */
.sb-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.filter-badge{display:none;background:var(--bl);color:#fff;border-radius:10px;font-size:.6rem;font-weight:700;padding:2px 6px;line-height:1.4}
.filter-badge.show{display:inline-block}

/* ── Sort ── */
.sort-select{border:1.5px solid #D0E3F5;border-radius:7px;padding:5px 26px 5px 8px;font-family:'Inter',sans-serif;font-size:.76rem;font-weight:500;color:var(--mu);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6'%3E%3Cpath d='M1 1l3.5 3.5L8 1' stroke='%236B6B63' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 8px center;appearance:none;cursor:pointer;outline:none;transition:border-color .18s}
.sort-select:focus{border-color:var(--bl)}
.results-area{flex:1;min-width:0}
.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}
#subFilterRow{flex:1;min-width:0;display:none;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
#subFilterRow::-webkit-scrollbar{display:none}
.sub-chip{flex-shrink:0;padding:7px 16px;border:1.5px solid var(--bo);border-radius:20px;font-family:'Inter',sans-serif;font-size:.82rem;font-weight:500;color:var(--mu);background:#fff;cursor:pointer;transition:all .18s;white-space:nowrap}
.sub-chip:hover{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.sub-chip.active{border-color:var(--bl);color:var(--bl);background:var(--bll);font-weight:600}
.results-count{font-size:.79rem;color:var(--mu);font-weight:500}
.view-toggle{display:flex;gap:4px;flex-shrink:0}
.vtbtn{background:#fff;border:1.5px solid #D0E3F5;border-radius:7px;padding:6px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;color:var(--li)}
.vtbtn:hover{border-color:var(--bl);color:var(--bl)}
.vtbtn.active{border-color:var(--bl);background:var(--bl);color:#fff}

/* ── Cards: grid mode ── */
.edu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}

.edu-card{background:#fff;border:1.5px solid #D0E3F5;border-radius:12px;padding:16px 14px 12px;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;flex-direction:column;gap:0;position:relative;text-decoration:none;color:inherit;animation:fadeUp .3s ease forwards;opacity:0}
.edu-card:hover{border-color:var(--bl);box-shadow:0 4px 18px rgba(90,143,181,.13);transform:translateY(-2px)}

/* card-body and card-aside are transparent in grid mode */
.edu-grid:not(.list-mode) .card-body{display:contents}
.edu-grid:not(.list-mode) .card-aside{display:contents}
.edu-grid:not(.list-mode) .list-cta{display:none}

.card-name{font-family:'Inter',sans-serif;font-size:.92rem;font-weight:700;line-height:1.25;color:var(--tx);margin-bottom:3px;letter-spacing:-.02em}
.card-school{font-size:.73rem;font-weight:500;color:var(--mu)}
.card-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.card-mode-badge{font-size:.63rem;font-weight:700;padding:3px 8px;border-radius:8px;white-space:nowrap}
.card-pace{font-size:.63rem;font-weight:700;padding:3px 8px;border-radius:8px;background:var(--wl);color:var(--wa)}
.card-city{font-size:.7rem;color:var(--li);display:flex;align-items:center;gap:3px;margin-top:3px}
.card-duration{font-size:.7rem;color:var(--li);margin-top:3px}
.card-cutoff{margin-top:5px;display:flex;align-items:baseline;gap:3px}
.card-open-admission{margin-top:5px;font-size:.63rem;font-weight:600;color:var(--ac);}
.card-cutoff-val{font-size:1rem;font-weight:800;color:var(--tx)}
.card-cutoff-lbl{font-size:.65rem;color:var(--li);font-weight:600}
.card-desc{font-size:.74rem;color:var(--mu);line-height:1.55;margin-top:7px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-desc-more{display:none;font-size:.74rem;color:var(--mu);line-height:1.55;margin-top:4px}
.card-desc-more p+p{margin-top:6px}
.edu-card.desc-open .card-desc{-webkit-line-clamp:unset;overflow:visible}
.edu-card.desc-open .card-desc-more{display:block}
.card-desc-toggle{display:none;background:none;border:none;font-size:.71rem;font-weight:600;color:var(--bl);cursor:pointer;padding:3px 0 0;font-family:'Inter',sans-serif;text-align:left}
.card-desc-toggle:hover{color:var(--bh)}
.edu-grid.list-mode .card-desc-toggle{display:block}
.edu-grid.list-mode .card-desc{-webkit-line-clamp:unset;overflow:visible}
.edu-grid:not(.list-mode) .edu-card.has-img .card-desc{color:rgba(255,255,255,.8)}
.card-foot{font-size:.72rem;font-weight:700;color:var(--bl);margin-top:auto;padding-top:10px;border-top:1px solid #EEF4FB;letter-spacing:-.01em}
.card-initial{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;flex-shrink:0;margin-bottom:8px}

/* ── Cards: list mode ── */
.edu-grid.list-mode{grid-template-columns:1fr;gap:6px}
.edu-grid.list-mode .edu-card{flex-direction:row;align-items:center;padding:12px 16px;transform:none !important}
.edu-grid.list-mode .edu-card:hover{transform:none !important}
.edu-grid.list-mode .card-body{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}
.edu-grid.list-mode .card-aside{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:14px}
.edu-grid.list-mode .card-foot{display:none}
.edu-grid.list-mode .card-meta{margin-top:0}
.edu-grid.list-mode .card-city{margin-top:0}
.edu-grid.list-mode .card-duration{margin-top:0}
.edu-grid.list-mode .card-cutoff{display:none}
.edu-grid.list-mode .card-name{font-size:.86rem}
.edu-grid.list-mode .card-school{font-size:.71rem}
.list-cta{font-size:.72rem;font-weight:700;color:var(--bl);white-space:nowrap;padding-left:6px}

/* ── Card action buttons (outside the card anchor) ── */
.edu-card-wrap{display:flex;flex-direction:column}
.edu-card-wrap .edu-card{flex:1}
.edu-card-actions{display:flex;gap:5px;padding:5px 0 0}
.edu-grid.list-mode .edu-card-actions{display:none}
.edu-card-act{flex:1;text-align:center;padding:7px 8px;border-radius:8px;font-size:.72rem;font-weight:700;text-decoration:none;border:1.5px solid var(--bo);color:var(--mu);background:#fff;transition:border-color .15s,color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.edu-card-act:hover{border-color:var(--bl);color:var(--bl)}
.edu-card-act-apply{background:var(--bll);border-color:#A8C8E8;color:var(--bh)}
.edu-card-act-apply:hover{background:var(--bl);color:#fff;border-color:var(--bl)}
@media(max-width:640px){.edu-card-act{font-size:.68rem;padding:7px 5px}}

/* ── Cards: background images ── */
.card-thumb{display:none}
.edu-grid.list-mode .card-thumb{display:block;width:52px;border-radius:8px;flex-shrink:0;background-size:cover;background-position:center;align-self:stretch;margin-right:4px}
.edu-grid.list-mode .edu-card.has-img .card-initial{display:none}

/* Grid-mode: full background with strong overlay */
.edu-grid:not(.list-mode) .edu-card.has-img{background-size:cover;background-position:center;background-color:#1a3a2a;border-color:transparent}
.edu-grid:not(.list-mode) .edu-card.has-img:hover{border-color:transparent;box-shadow:0 6px 24px rgba(0,0,0,.35);transform:translateY(-3px)}
.edu-grid:not(.list-mode) .edu-card.has-img::before{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.08) 0%,rgba(0,0,0,.18) 40%,rgba(0,0,0,.62) 80%,rgba(0,0,0,.72) 100%);border-radius:11px;pointer-events:none;transition:opacity .22s}
/* Misty white fog on hover */
.edu-grid:not(.list-mode) .edu-card.has-img::after{content:'';position:absolute;inset:0;border-radius:11px;pointer-events:none;background:rgba(255,255,255,0);transition:background .22s;z-index:0}
.edu-grid:not(.list-mode) .edu-card.has-img:hover::after{background:rgba(255,255,255,.13)}
.edu-grid:not(.list-mode) .edu-card.has-img > *,
.edu-grid:not(.list-mode) .edu-card.has-img .card-body > *,
.edu-grid:not(.list-mode) .edu-card.has-img .card-aside > *{position:relative;z-index:1}

/* Text legibility */
.edu-grid:not(.list-mode) .edu-card.has-img .card-name{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-school{color:rgba(255,255,255,.85);text-shadow:0 1px 3px rgba(0,0,0,.5)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-city{color:rgba(255,255,255,.75)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-city svg{stroke:rgba(255,255,255,.75)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-foot{border-top-color:rgba(255,255,255,.2);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-duration{color:rgba(255,255,255,.75)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-cutoff-val{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.edu-grid:not(.list-mode) .edu-card.has-img .card-cutoff-lbl{color:rgba(255,255,255,.75)}

/* Badges */
.edu-grid:not(.list-mode) .edu-card.has-img .card-mode-badge{background:rgba(0,0,0,.48)!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)!important}
.edu-grid:not(.list-mode) .edu-card.has-img .card-pace{background:rgba(0,0,0,.48)!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)!important}

/* School logo: solid white pill so favicon is always visible */
.edu-grid:not(.list-mode) .edu-card.has-img .card-initial{background:#fff!important;color:var(--tx)!important;border:none!important;box-shadow:0 2px 8px rgba(0,0,0,.25)!important;padding:4px!important}
/* "Kontrollera behörighet" — frosted glass CTA button */
.edu-grid:not(.list-mode) .edu-card.has-img .card-foot{border-top:none;background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:7px 16px;text-align:center;color:#fff;font-weight:700;letter-spacing:.01em;text-shadow:none;transition:background .18s,border-color .18s}
.edu-grid:not(.list-mode) .edu-card.has-img:hover .card-foot{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.45)}

/* ── Skeletons, empty, error ── */
.empty{grid-column:1/-1;text-align:center;padding:56px 20px}
.empty .ei{font-size:2.2rem;margin-bottom:12px}
.empty p{font-size:.87rem;color:var(--mu);line-height:1.7}
.empty button{background:none;border:none;font-family:'Inter',sans-serif;font-weight:600;color:var(--bl);cursor:pointer;font-size:.87rem;margin-top:8px;text-decoration:underline}
.skeleton{opacity:1 !important;animation:none !important}
.skel-line{background:linear-gradient(90deg,#e4eef8 25%,#cfe0f2 50%,#e4eef8 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.error-box{grid-column:1/-1;background:var(--rl);border:1.5px solid #f5c6be;border-radius:12px;padding:20px;text-align:center;color:var(--re);font-size:.88rem}

.load-more-wrap{text-align:center;padding:32px 0;display:none}
.load-more-spinner{display:inline-block;width:28px;height:28px;border:3px solid #D0E3F5;border-top-color:var(--bl);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Branch filter bar ── */
.branch-bar-outer{position:sticky;top:60px;z-index:90;background:#fff;border-bottom:1.5px solid #D0E3F5;box-shadow:0 2px 12px rgba(0,0,0,.04);margin-top:60px;transition:top .3s cubic-bezier(.4,0,.2,1)}
.branch-bar-outer.scrolled{top:0}
.branch-bar-wrap{max-width:1280px;margin:0 auto;padding:10px 28px 0}
.branch-search-row{display:flex;align-items:center;gap:12px;padding-bottom:10px}
.branch-action-bar{background:#fff;border-bottom:1.5px solid #D0E3F5}
.branch-action-bar>.branch-bar-wrap{padding-top:0;padding-bottom:0}
.branch-filter-row{display:flex;align-items:center;gap:10px;padding:8px 0 10px}
.results-search-row{margin-bottom:14px}
.results-search-row .branch-search-wrap{max-width:100%;margin:0}
.sort-pill-wrap{position:relative}
.sort-pill-btn{display:flex;align-items:center;gap:7px;padding:6px 14px;border:1.5px solid #D0E3F5;border-radius:8px;background:#fff;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;color:var(--mu);cursor:pointer;transition:all .18s;white-space:nowrap}
.sort-pill-btn:hover{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.sort-pill-btn.active{border-color:var(--bl);color:var(--bl);background:var(--bll)}
.sort-pill-dropdown{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1.5px solid #D0E3F5;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.1);z-index:200;min-width:150px;overflow:hidden}
.sort-pill-dropdown button{display:block;width:100%;padding:9px 16px;text-align:left;border:none;background:transparent;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:500;color:var(--tx);cursor:pointer;transition:background .12s}
.sort-pill-dropdown button:hover{background:#F4F8F5}
.sort-pill-dropdown button.active{color:var(--bl);font-weight:700;background:#EFF6FB}
.branch-search-wrap{position:relative;flex:1;max-width:600px;margin:0 auto;transition:max-width .38s cubic-bezier(.4,0,.2,1),opacity .25s ease,margin .38s cubic-bezier(.4,0,.2,1);overflow:hidden}
.search-cta-wrap{display:flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap}
.search-cta-text{font-size:.82rem;color:var(--mu);font-weight:500}
.search-cta-btn{display:inline-flex;align-items:center;padding:8px 16px;background:var(--bl);color:#fff;border-radius:8px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .15s,transform .15s}
.search-cta-btn:hover{background:#4a7aa8;transform:translateX(2px)}
.branch-bar-outer.scrolled .branch-search-wrap{max-width:0;opacity:0;flex:0 0 0;margin:0}
.branch-bar-outer.scrolled .branch-search-row{justify-content:center}
.branch-search-wrap input{width:100%;padding:11px 36px 11px 40px;border:1.5px solid #D0E3F5;border-radius:12px;font-family:'Inter',sans-serif;font-size:.92rem;background:#fff;color:var(--tx);outline:none;transition:border-color .18s;box-sizing:border-box}
.branch-search-wrap input:focus{border-color:var(--bl);box-shadow:0 0 0 3px rgba(90,143,181,.1)}
.branch-search-wrap input::placeholder{color:var(--li)}
.branch-search-wrap .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#7A7A74;pointer-events:none}
.branch-search-wrap button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:.9rem;color:var(--li);cursor:pointer;line-height:1;padding:2px 4px}
.branch-bar-scroll-wrap{position:relative}
.branch-bar{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;padding-bottom:0}
.branch-bar::-webkit-scrollbar{display:none}
.branch-pill{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 20px 10px;border:none;border-bottom:3px solid transparent;border-radius:0;background:transparent;cursor:pointer;font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;color:var(--mu);transition:color .18s,border-color .18s;white-space:nowrap;text-align:center;line-height:1.25;flex-shrink:0}
.branch-pill:hover{border-bottom-color:var(--bl);color:var(--bl);background:transparent}
.branch-pill.active{border-bottom-color:var(--bl);color:var(--bl);background:transparent}
.branch-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:inherit;transition:color .18s;flex-shrink:0}
.branch-scroll-arrow{position:absolute;top:0;bottom:3px;width:44px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;color:var(--mu);padding:0;z-index:2;transition:color .18s}
.branch-scroll-arrow.right{right:0;background:linear-gradient(to right,transparent,#fff 40%)}
.branch-scroll-arrow.left{left:0;background:linear-gradient(to left,transparent,#fff 40%)}
.branch-scroll-arrow:hover{color:var(--bl)}
.branch-scroll-arrow.hidden{display:none}

/* ── Responsive ── */
@media(max-width:860px){.edu-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  nav{padding:0 16px}
  .page-layout{padding:16px 16px 80px}
  .page-header{padding:70px 16px 0}
  .page-header-inner{flex-direction:column;align-items:flex-start}
  .branch-bar-wrap{padding:8px 16px 8px}
  .sidebar{width:85vw;max-width:320px}
  .branch-bar{mask-image:linear-gradient(to right,#000 calc(100% - 40px),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 40px),transparent)}
  .branch-pill{padding:10px 14px 8px;font-size:.65rem}
  .search-cta-wrap{display:none}
  .branch-bar-outer.scrolled .search-cta-wrap{display:flex}
}
@media(max-width:480px){
  .edu-grid{grid-template-columns:1fr}
}
