.directory-page { background:var(--paper); }
.directory-hero { padding:84px 0 66px; background:radial-gradient(circle at 84% 7%,#ead195 0,transparent 25%),var(--ink); color:#fff; }
.directory-hero .lead { color:#cbd5e8; }
.directory-hero .motto { border-color:rgba(255,255,255,.24); background:rgba(255,255,255,.08); color:var(--gold); }
.directory-note { max-width:835px; margin:25px 0 0; padding:15px 18px; border-left:3px solid var(--gold); background:rgba(255,255,255,.08); color:#dfe6f3; font-size:.9rem; }
.intake-section { padding:55px 0; background:var(--cream); border-bottom:1px solid var(--line); }
.intake-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:20px; }
.intake-heading h2 { margin:0; font-size:clamp(2rem,3.6vw,3rem); }
.intake-heading p { max-width:560px; margin:0; color:var(--muted); font-size:.91rem; }
.intake-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }
.intake-card { position:relative; width:100%; min-height:133px; padding:18px; border:1px solid var(--line); border-radius:19px; color:var(--ink); background:var(--paper); text-align:left; font:inherit; cursor:pointer; transition:transform .2s,border-color .2s,background .2s; }
.intake-card:hover,.intake-card.is-active { border-color:var(--ink); background:#fff; transform:translateY(-3px); }
.intake-card .country { display:block; margin-bottom:8px; color:#795722; font-size:.7rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.intake-card b { display:block; max-width:230px; font-size:1.02rem; line-height:1.12; }
.intake-card small { display:block; margin-top:7px; color:var(--muted); font-size:.75rem; }
.language-section { padding:66px 0; border-bottom:1px solid var(--line); background:#f8f4e9; }
.language-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.language-card { min-height:236px; padding:24px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.language-card-accent { border-color:var(--ink); background:var(--ink); color:#fff; }
.language-number { display:inline-grid; width:30px; height:30px; margin-bottom:28px; place-items:center; border-radius:50%; color:#604d29; background:#f1e6c8; font-size:.7rem; font-weight:900; }
.language-card-accent .language-number { color:var(--ink); background:var(--gold); }
.language-card h3 { margin:0 0 10px; font-size:1.18rem; line-height:1.1; }
.language-card p { margin:0; color:var(--muted); font-size:.87rem; line-height:1.55; }
.language-card-accent p { color:#cbd5e8; }
.language-card .text-link { display:inline-flex; margin-top:16px; color:#fff; font-size:.84rem; font-weight:850; text-decoration:underline; text-underline-offset:3px; }
.language-note { margin:15px 0 0; color:var(--muted); font-size:.77rem; line-height:1.45; }
.directory-section { padding:72px 0 94px; }
.directory-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start; }
.directory-controls { padding:18px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 15px 35px rgba(17,18,29,.07); }
.search-wrap { display:flex; align-items:center; gap:10px; padding:0 13px; border:1px solid var(--line); border-radius:14px; background:var(--paper); }
.search-wrap span { color:#76561f; font-size:1.1rem; }
.search-wrap input { width:100%; padding:13px 0; border:0; outline:0; background:transparent; color:var(--ink); font:inherit; }
.filter-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-top:12px; }
.filter-row label { display:grid; gap:6px; color:var(--muted); font-size:.71rem; font-weight:850; letter-spacing:.04em; }
.filter-row select { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--paper); font:inherit; }
.country-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.filter-chip { padding:8px 10px; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:transparent; font:inherit; font-size:.76rem; font-weight:820; cursor:pointer; }
.filter-chip:hover,.filter-chip.is-active { color:#fff; border-color:var(--ink); background:var(--ink); }
.directory-meta { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:24px 2px 15px; color:var(--muted); font-size:.85rem; }
.directory-meta b { color:var(--ink); }
.uni-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.uni-card { display:flex; min-height:238px; flex-direction:column; padding:20px; border:1px solid var(--line); border-radius:21px; background:#fff; }
.uni-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:9px; }
.uni-country { color:#785823; font-size:.7rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.uni-card h3 { margin:13px 0 9px; font-size:1.23rem; line-height:1.03; }
.uni-card h3,.directory-note,.directory-legend { overflow-wrap:anywhere; }
.uni-card p { margin:0; color:var(--muted); font-size:.84rem; }
.tags { display:flex; flex-wrap:wrap; gap:6px; margin:15px 0 17px; }
.tag { padding:5px 8px; border-radius:999px; background:#f1eadb; color:#604d29; font-size:.68rem; font-weight:860; }
.tag.ged-confirmed { color:#234d32; background:#e5f2d6; }.tag.ged-pathway { color:#694b1c; background:#f5e7c6; }.tag.ged-case-by-case,.tag.ged-check-case { color:#544e61; background:#ebebef; }.tag.ged-generally-ged-friendly { color:#294d61; background:#dcebf1; }
.uni-facts { display:grid; gap:7px; margin:0 0 17px; }
.uni-facts p { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0; padding:9px 10px; border-radius:12px; background:var(--paper); color:var(--ink); }
.uni-facts span { flex:0 0 auto; color:var(--muted); font-size:.7rem; font-weight:820; letter-spacing:.04em; }
.uni-facts b { text-align:right; font-size:.82rem; line-height:1.2; }
.uni-actions { display:flex; gap:8px; margin-top:auto; }
.uni-actions button,.uni-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:8px 10px; border-radius:11px; font:inherit; font-size:.75rem; font-weight:850; cursor:pointer; }
.uni-actions button { flex:1; border:1px solid var(--ink); color:var(--ink); background:transparent; }.uni-actions button.is-saved { color:#fff; background:var(--ink); }
.uni-actions a { border:1px solid transparent; color:#fff; background:var(--ink); }
.load-more { display:flex; margin:23px auto 0; }
.empty { padding:34px; border:1px dashed var(--line); border-radius:20px; background:#fff; color:var(--muted); text-align:center; }
.shortlist { position:sticky; top:100px; padding:21px; border:1px solid var(--line); border-radius:22px; background:var(--ink); color:#fff; box-shadow:var(--shadow); }
.shortlist h2 { margin:0 0 7px; font-size:1.6rem; }.shortlist > p { margin:0; color:#c8d3e8; font-size:.85rem; }
.shortlist-count { display:inline-grid; min-width:25px; height:25px; margin-left:5px; place-items:center; border-radius:50%; color:var(--ink); background:var(--gold); font-size:.74rem; vertical-align:middle; }
.shortlist ul { display:grid; gap:8px; max-height:280px; margin:18px 0; padding:0; overflow:auto; list-style:none; }.shortlist li { display:flex; align-items:center; justify-content:space-between; gap:9px; padding:9px; border-radius:11px; background:rgba(255,255,255,.08); font-size:.78rem; }.shortlist li button { border:0; color:#fff; background:transparent; font:inherit; cursor:pointer; }
.shortlist .empty-list { color:#c8d3e8; font-size:.82rem; }.shortlist .button { width:100%; padding:12px; }.shortlist .button[disabled] { opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }
.directory-legend { margin-top:16px; color:var(--muted); font-size:.79rem; }.directory-legend b { color:var(--ink); }
@media (max-width:900px) { .directory-layout { grid-template-columns:1fr; }.shortlist { position:static; order:-1; }.intake-grid { grid-template-columns:repeat(2,1fr); }.language-grid { grid-template-columns:1fr; }.language-card { min-height:0; } }
@media (max-width:620px) { .directory-hero { padding:64px 0 52px; }.intake-heading { align-items:flex-start; flex-direction:column; }.intake-grid,.uni-grid,.filter-row { grid-template-columns:1fr; }.language-section { padding:52px 0; }.language-card { padding:21px; }.language-number { margin-bottom:21px; }.directory-section { padding:54px 0 70px; }.uni-card { min-height:0; }.directory-meta { align-items:flex-start; flex-direction:column; }.filter-chip { min-height:42px; }.uni-facts p { align-items:flex-start; flex-direction:column; gap:3px; }.uni-facts b { text-align:left; }.uni-actions { flex-direction:column; }.uni-actions button,.uni-actions a { width:100%; min-height:44px; }.shortlist { margin-bottom:8px; } }
