@font-face{font-family:"FA";font-style:normal;font-weight:900;font-display:swap;src:url(/static/fonts/fa-solid-900.woff2) format("woff2")}
.fa{font-family:"FA";font-weight:900;font-style:normal;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased}
.fa-calculator::before{content:"\f1ec"}
.fa-chart-line::before{content:"\f201"}
.fa-rocket::before{content:"\f135"}
.fa-seedling::before{content:"\f4d8"}
.fa-paw::before{content:"\f1b0"}
.fa-users::before{content:"\f0c0"}
.fa-monument::before{content:"\f5a6"}
.fa-tree::before{content:"\f1bb"}
.fa-building-columns::before{content:"\f19c"}
.fa-robot::before{content:"\f544"}
.fa-car::before{content:"\f1b9"}
.fa-dna::before{content:"\f471"}
.fa-heart-pulse::before{content:"\f21e"}
.fa-flask::before{content:"\f0c3"}
.fa-helmet-safety::before{content:"\f807"}
.fa-scale-balanced::before{content:"\f24e"}
.fa-shield-halved::before{content:"\f3ed"}
.fa-database::before{content:"\f1c0"}
.fa-laptop-code::before{content:"\f5fc"}
.fa-microchip::before{content:"\f2db"}
.fa-tooth::before{content:"\f5c9"}
.fa-handshake::before{content:"\f2b5"}
.fa-leaf::before{content:"\f06c"}
.fa-bolt::before{content:"\f0e7"}
.fa-coins::before{content:"\f51e"}
.fa-briefcase::before{content:"\f0b1"}
.fa-graduation-cap::before{content:"\f19d"}
.fa-book::before{content:"\f02d"}
.fa-language::before{content:"\f1ab"}
.fa-palette::before{content:"\f53f"}
.fa-utensils::before{content:"\f2e7"}
.fa-mountain::before{content:"\f6fc"}
.fa-landmark::before{content:"\f66f"}
.fa-church::before{content:"\f51d"}
.fa-brain::before{content:"\f5dc"}
.fa-newspaper::before{content:"\f1ea"}
.fa-globe::before{content:"\f0ac"}
.fa-water::before{content:"\f773"}
.fa-gears::before{content:"\f085"}
.fa-square-root-variable::before{content:"\f698"}
.fa-stethoscope::before{content:"\f0f1"}
.fa-hand-holding-heart::before{content:"\f4be"}
.fa-music::before{content:"\f001"}
.fa-masks-theater::before{content:"\f630"}
.fa-pills::before{content:"\f484"}
.fa-atom::before{content:"\f5d2"}
.fa-building::before{content:"\f1ad"}
.fa-dumbbell::before{content:"\f44b"}
.fa-truck::before{content:"\f0d1"}
.fa-plane::before{content:"\f072"}
.fa-city::before{content:"\f64f"}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/Poppins-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/Poppins-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/Poppins-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/Poppins-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/Poppins-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/Poppins-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/static/fonts/Inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/static/fonts/Inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* =====================================================================
   AustriaUniversities - single consolidated stylesheet
   Palette: Austrian red #C8102E ONLY for buttons and thin rules; deep warm grey #2f2a27 for dark bands; alpine green as
   the secondary (links, tags, icons, active states); warm white and warm greys for surfaces. Light, white-dominant header.
   Every text/background pair below is checked at >= 4.5:1 (AA) by the script in the project notes; non-text UI borders >= 3:1.
   Order: tokens > base > buttons/tags > header > hero/band > blocks > listing > detail > article > tables > ads > footer > responsive
   ===================================================================== */

/* ---------- 1. tokens ---------- */
:root{
  /* Austrian red: buttons and rules only */
  --red:#C8102E; --red-d:#A30D26;
  /* alpine green: links, tags, icons, active states */
  --green:#2c5a4b; --green-d:#1e4034; --green-50:#eef4f1; --green-100:#dcebe4; --green-200:#bcd5c9; --green-300:#8fb3a2;
  /* warm greys and surfaces */
  --bg:#f3f0eb; --card:#ffffff; --tint:#f8f6f2; --fill:#ebe6df; --band:#e9e4dc; --line:#d9d2c8; --edge:#857d73;
  --ink:#26221f; --ink-2:#403a35; --muted:#5a544d; --faint:#645d55;
  --dark:#2f2a27; --dark-2:#26211e; --dark-3:#1d1917;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:72px;
  --r:0; --r-pill:2px;
  --sh-3:0 6px 18px rgba(38,34,31,.14);
  --ring:0 0 0 3px rgba(44,90,75,.35);
  --sans:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --head:"Poppins","Inter",ui-sans-serif,-apple-system,"Segoe UI",sans-serif;
  --fs-h2:clamp(1.3rem,1.1rem + .8vw,1.65rem);
  --wrap:1060px; --head-h:60px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- 2. base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.58 var(--sans);font-feature-settings:"cv11","ss01";text-rendering:optimizeLegibility;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
::selection{background:var(--green-100);color:var(--green-d)}
a{color:var(--green);text-decoration:none;transition:color .15s,background-color .15s,border-color .15s}
a:hover{text-decoration:underline;text-underline-offset:3px;color:var(--green-d)}
img,svg{max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--head);line-height:1.2;letter-spacing:-.015em;color:var(--ink);font-weight:600}
p{margin:0}
code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--fill);padding:2px 7px;font-size:.84rem;color:var(--ink-2)}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}
button{font-family:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:#ffffff;color:var(--ink);padding:10px 14px;z-index:80;box-shadow:var(--sh-3)}.skip:focus{left:8px}
.ic{width:18px;height:18px;flex:none;vertical-align:-3px;color:currentColor;stroke-linecap:round;fill:none}
.ti,.empty-ic{stroke-linecap:round;fill:none}
::placeholder{color:var(--muted);opacity:1}

/* ---------- 3. buttons, chips, tags ---------- */
.vbtn,.apply,.find{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:2px;background:var(--red);color:#ffffff;font:600 .86rem/1.4 var(--sans);letter-spacing:.005em;padding:8px 16px;cursor:pointer;text-align:center}
.vbtn:hover,.apply:hover{background:var(--red-d);color:#ffffff;text-decoration:none}
.vbtn:focus-visible,.apply:focus-visible,.find:focus-visible{outline-color:var(--ink)}
.vbtn.lg{padding:10px 20px;font-size:.9rem}
.vbtn.block{display:flex;margin-top:var(--s4)}
.vbtn.ghost{background:#ffffff;color:var(--red-d);box-shadow:inset 0 0 0 1.5px var(--red)}
.vbtn.ghost:hover{background:#fbeaed;color:var(--red-d)}
.apply{width:100%;padding:11px}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s5) 0 var(--s2)}
.copy{border:0;background:#ffffff;box-shadow:inset 0 0 0 1.5px var(--red);border-radius:2px;padding:9px 18px;font:600 .86rem var(--sans);cursor:pointer;color:var(--red-d)}
.vbtn.ghost.copy{margin-left:0}

.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s3)}
.tags span,.tags a{display:inline-block;padding:3px 10px;background:var(--fill);color:var(--ink-2);border-radius:2px;font-size:.78rem;font-weight:600;line-height:1.5}
.tags a{color:var(--green-d)}
.tags a:hover{text-decoration:none;background:var(--green-100)}
.tags .eng{background:var(--green-100);color:var(--green-d)}
.tags .mix,.prow-m em.mix{background:#ffffff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink-2)}
.tags.big{margin-top:0}.tags.big span,.tags.big a{font-size:.82rem;padding:4px 12px}

.save{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);font:600 .82rem var(--sans);cursor:pointer;padding:8px 10px;border-radius:2px}
.save .ic{width:18px;height:18px}
.save:hover{color:var(--green-d);background:var(--green-50)}
.save[aria-pressed="true"]{color:var(--green-d)}
.save[aria-pressed="true"] .ic{fill:currentColor;animation:pop .35s var(--ease)}
.save.wide{background:#ffffff;box-shadow:inset 0 0 0 1.5px var(--edge);height:46px;padding:0 20px;color:var(--ink);font-weight:700}

/* ---------- 4. header: light, white-dominant ---------- */
.top{position:sticky;top:0;z-index:50;background:#ffffff;border-top:3px solid var(--red);border-bottom:1px solid var(--line);transition:box-shadow .25s}
.top.scrolled{box-shadow:0 6px 20px -10px rgba(38,34,31,.35)}
.top .wrap{max-width:var(--wrap)}
.top-in{display:flex;align-items:center;gap:14px;height:var(--head-h)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);flex:none}.brand:hover{text-decoration:none;color:var(--ink)}
.mark{width:34px;height:34px}
.brand-t{font-family:var(--head);font-size:1.15rem;font-weight:500;letter-spacing:-.02em;color:var(--ink)}.brand-t b{font-weight:700;color:var(--green-d)}
.nav{display:flex;gap:2px;margin-left:8px}
.nav a{white-space:nowrap;color:var(--ink-2);padding:19px 11px 17px;font-weight:600;font-size:.88rem;position:relative;border-bottom:3px solid transparent;margin-bottom:-1px}
.nav a:hover{color:var(--ink);text-decoration:none;border-bottom-color:var(--line)}
.nav a.on{color:var(--ink);border-bottom-color:var(--red)}
.top-search{margin-left:auto;position:relative;flex:0 1 220px;min-width:0}
.top-search input{width:100%;background:var(--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='6.5' fill='none' stroke='%235a544d' stroke-width='1.5'/%3E%3Cpath d='m16 16 4.5 4.5' stroke='%235a544d' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 12px center/17px no-repeat;border:0;box-shadow:inset 0 0 0 1px var(--edge);border-radius:2px;padding:9px 14px 9px 38px;color:var(--ink);font:inherit;font-size:.88rem}
.top-search input:hover{background-color:#ffffff}
.top-search input:focus{outline:0;background-color:#ffffff;box-shadow:inset 0 0 0 2px var(--green),var(--ring)}
.sl-link{position:relative;display:inline-flex;align-items:center;gap:7px;color:var(--ink);border-radius:2px;padding:8px 14px;font-weight:600;font-size:.86rem;box-shadow:inset 0 0 0 1px var(--edge)}
.sl-link:hover{text-decoration:none;background:var(--tint);color:var(--ink)}
.sl-link b{min-width:20px;height:20px;border-radius:10px;background:var(--dark);color:#ffffff;font-size:.7rem;display:grid;place-items:center;padding:0 6px}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;color:var(--ink);display:grid;place-items:center;width:44px;height:44px;border-radius:2px;box-shadow:inset 0 0 0 1px var(--edge)}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary svg path{stroke-width:1.5}
.mnav[open] summary{background:var(--tint)}
.mnav nav{position:absolute;right:0;top:54px;width:min(300px,86vw);background:#ffffff;box-shadow:var(--sh-3),inset 0 0 0 1px var(--line);padding:8px;z-index:60;display:flex;flex-direction:column;animation:drop .22s var(--ease)}
.mnav nav a{padding:13px 16px;color:var(--ink);font-weight:600;display:flex;justify-content:space-between}
.mnav nav a::after{content:"\203A";color:var(--muted);font-size:1.2rem;line-height:1}
.mnav nav a:hover{background:var(--green-50);text-decoration:none;color:var(--ink)}

/* ---------- 5. hero (home) and band (inner pages): light ---------- */
.hero{background:linear-gradient(180deg,var(--tint),var(--band));color:var(--ink);text-align:center;position:relative}
.hero-in{padding:64px 20px 44px;position:relative;z-index:2}
.hero h1{color:var(--ink);font-size:clamp(2rem,1.2rem + 3.2vw,3.2rem);font-weight:600;letter-spacing:-.025em;line-height:1.15;max-width:820px;margin:0 auto 14px;animation:rise .6s var(--ease) both}
.hero h1::before{content:"";display:block;width:56px;height:4px;background:var(--red);margin:0 auto 18px}
.hero-sub{max-width:660px;margin:0 auto 32px;color:var(--ink-2);font-size:1.08rem;line-height:1.55;animation:rise .6s .08s var(--ease) both}
.finder{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr) auto;gap:6px;padding:8px;background:#ffffff;box-shadow:inset 0 0 0 1px var(--line),var(--sh-3);text-align:left;animation:rise .6s .16s var(--ease) both}
.finder:focus-within{box-shadow:inset 0 0 0 1px var(--line),var(--sh-3),0 0 0 3px rgba(44,90,75,.35)}
.finder label{display:block;position:relative}
.finder select{width:100%;height:54px;border:0;border-radius:2px;background-color:var(--tint);box-shadow:inset 0 0 0 1px var(--edge);padding:0 40px 0 16px;font:inherit;font-size:.96rem;font-weight:500;color:var(--ink-2);appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%235a544d' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.finder select:hover{background-color:#ffffff}
.finder select:focus{outline:0;background-color:#ffffff;box-shadow:inset 0 0 0 2px var(--green)}
.find{height:54px;padding:0 32px;font-size:1rem;font-weight:700;border-radius:2px}
.find:hover{background:var(--red-d)}
.notch{background:var(--dark);color:#d9d1c8}
.stats{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--s3) var(--s7);padding:26px 20px 28px;font-size:.92rem}
.stats div{display:flex;flex-direction:column;align-items:center;line-height:1.3;text-align:center}
.stats b{font-family:var(--head);font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);font-weight:600;color:#ffffff;letter-spacing:-.02em;font-variant-numeric:tabular-nums}

.band{background:var(--band);color:var(--ink);padding:20px 0 64px;border-bottom:1px solid var(--line)}
.band h1{color:var(--ink);font-size:clamp(1.7rem,1.1rem + 2vw,2.5rem);font-weight:600;letter-spacing:-.02em;max-width:900px}
.band h1::before{content:"";display:block;width:44px;height:4px;background:var(--red);margin-bottom:12px}
.band-sub{margin:10px 0 0;color:var(--ink-2);font-size:1.05rem;max-width:720px}
.bc{font-size:.84rem;color:var(--muted);margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:center;gap:2px 0}
.bc a{color:var(--green-d);padding:2px 0;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--green-300)}.bc a:hover{color:var(--ink)}
.bc i{font-style:normal;font-size:0;margin:0 8px}
.bc i::before{content:"\203A";font-size:1rem;color:var(--muted)}
.bc span{color:var(--ink);font-weight:600}
.bigsearch{display:flex;max-width:820px;margin-top:24px;padding:6px;background:#ffffff;box-shadow:inset 0 0 0 1px var(--edge),var(--sh-3)}
.bigsearch:focus-within{box-shadow:inset 0 0 0 1px var(--line),var(--sh-3),0 0 0 3px rgba(44,90,75,.35)}
.bigsearch input{flex:1;min-width:0;border:0;padding:12px 16px;font:inherit;font-size:1rem;color:var(--ink);background:transparent}.bigsearch input:focus{outline:0}
.bigsearch button{border:0;padding:0 28px;border-radius:2px;background:var(--red);color:#ffffff;font:700 .95rem var(--sans);cursor:pointer}
.bigsearch button:hover{background:var(--red-d)}

.page{background:var(--bg);padding:0 0 var(--s5)}
.band + main .page>.listing,.band + main .page>.blk,.band + main .page>.detail,.band + main .page>.article,.band + main .page>.rail-layout{margin-top:-38px;position:relative;z-index:2}
/* the white content column on a tinted backdrop leaves the margins free for side-rail ads */
.page>.wrap,.page>section.wrap,.page>article.wrap{background:#ffffff;border:1px solid var(--line);border-top:0;padding:22px 24px 30px}
.band + main .page>.wrap,.band + main .page>section.wrap,.band + main .page>article.wrap{border-top:1px solid var(--line)}

/* ---------- 6. section blocks, link grids ---------- */
.blk{padding-top:var(--s7);padding-bottom:var(--s2)}
.band + main .page>.blk{padding-top:var(--s5)}
.blk-h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);margin-bottom:var(--s4)}
.blk-h h2{font-size:1.3rem;font-weight:600}
.blk-h a{font-weight:700;font-size:.9rem;color:var(--green);white-space:nowrap}
.lgrid{display:grid;grid-template-columns:1fr;gap:8px}
.li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px;background:#ffffff;border:1px solid var(--line);border-left:3px solid var(--red);color:var(--ink)}
.li:hover{text-decoration:none;border-color:var(--green-300);border-left-color:var(--red);color:var(--ink)}
.li b{flex:1;min-width:0;font:600 .95rem/1.35 var(--head);letter-spacing:-.01em}
.li b small{display:block;margin-top:3px;font:400 .84rem/1.45 var(--sans);color:var(--muted);letter-spacing:0}
.li b em.sub{font-style:normal;font-weight:500;color:var(--muted)}
.li>span{margin-left:auto;font-weight:700;color:var(--green-d);font-size:.82rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.li::after{content:"\203A";margin-left:2px;color:var(--green);font-size:1.2rem;line-height:1}
.li .fa{flex:none;width:34px;height:34px;display:grid;place-items:center;font-size:1rem;color:var(--green);background:var(--green-50);border-radius:50%}
.bylevel{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:var(--s5) 0 0;font-size:.9rem;color:var(--muted)}
.bylevel>span{font-weight:700;color:var(--ink);margin-right:4px}
.bylevel a{padding:6px 14px;background:#ffffff;color:var(--green-d);border-radius:2px;font-weight:600;font-size:.86rem;box-shadow:inset 0 0 0 1px var(--green-200)}
.bylevel a:hover{text-decoration:none;background:var(--green-50)}
.lr-tag{flex:none;font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:2px;background:var(--green-100);color:var(--green-d)}

/* logos: the institution's mark sits over a monogram; if it fails the monogram stays */
.logo{position:relative;overflow:hidden;flex:none;width:52px;height:52px;border-radius:2px;display:grid;place-items:center;background:var(--green-50);color:var(--green-d);font:700 1rem var(--head);outline:1px solid var(--green-100);outline-offset:-1px}
.logo:hover{text-decoration:none}
.logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px;background:#ffffff}
.logo.big{width:68px;height:68px;font-size:1.3rem}.logo.big img{padding:9px}
.logo.ico{background:var(--green-50);color:var(--green)}
.logo.ico svg{stroke-width:1.25}

/* ---------- 7. listing pages: filters, results, cards ---------- */
.listing{display:grid;grid-template-columns:292px minmax(0,1fr);gap:var(--s5);align-items:stretch;padding-top:var(--s5)}
.sidecol{display:flex;flex-direction:column;gap:var(--s4);align-self:stretch;min-width:0}
.sidecol>.filters{position:sticky;top:72px}
.filters{background:#ffffff;border:1px solid var(--line);padding:6px 4px 10px}
.f-sum{display:none}.f-sum .ic{display:none}
.f-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 4px}.f-head b{font:700 1.02rem var(--head)}.f-head a{font-size:.82rem;font-weight:700;color:var(--green)}
.f-sec{padding:12px 16px 4px}
.f-sec h4{font:700 .72rem var(--sans);letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px;color:var(--muted)}
.f-in{width:100%;padding:10px 14px;border:0;border-radius:2px;background:var(--tint);font:inherit;font-size:.92rem;color:var(--ink);box-shadow:inset 0 0 0 1px var(--edge)}
.f-in:hover{background:#ffffff}
.f-in:focus{outline:0;background:#ffffff;box-shadow:inset 0 0 0 2px var(--green),var(--ring)}
select.f-in{appearance:none;-webkit-appearance:none;padding-right:36px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%235a544d' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.ck{display:flex;align-items:center;gap:10px;padding:7px 8px;margin:0 -8px;cursor:pointer;font-size:.92rem;color:var(--ink-2)}
.ck:hover{background:var(--tint)}
.ck:has(input:checked){color:var(--green-d);font-weight:600}
.ck i{margin-left:auto;font-style:normal;color:var(--faint);font-size:.78rem;font-variant-numeric:tabular-nums}
.ck input{appearance:none;-webkit-appearance:none;width:18px;height:18px;border-radius:50%!important;background:#ffffff;flex:none;position:relative;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--edge)}
.ck input:hover{box-shadow:inset 0 0 0 1.5px var(--green)}
.ck input:checked{box-shadow:inset 0 0 0 5px var(--green);background:#ffffff}
.f-sec:last-child{padding-top:14px}

.rbox{background:#ffffff;border:1px solid var(--line);padding:18px 22px;margin-bottom:var(--s4)}
.rbox p{font-size:.98rem;color:var(--ink-2);line-height:1.6}.rbox p b{color:var(--ink);font-family:var(--head)}
.rbox p+p{margin-top:var(--s2)}
.rbox p a{font-weight:600}
.achips{display:flex;flex-wrap:wrap;gap:8px;margin:var(--s3) 0 0}
.achip{display:inline-flex;gap:8px;align-items:center;padding:5px 12px;border-radius:2px;background:var(--green);color:#ffffff;font-weight:600;font-size:.82rem}
.achip:hover{text-decoration:none;background:var(--green-d);color:#ffffff}
.popular{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:var(--s4)}
.popular>span{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.popular a{padding:5px 12px;background:var(--green-50);color:var(--green-d);border-radius:2px;font-weight:600;font-size:.82rem}
.popular a:hover{text-decoration:none;background:var(--green-100)}
.popular a i{font-style:normal;color:var(--muted);margin-left:5px;font-weight:500}
.popular a.on{background:var(--green);color:#ffffff}
.popular a.on i{color:#ffffff}
.rbar{display:flex;justify-content:space-between;align-items:center;margin:var(--s5) 4px var(--s3);font-size:.88rem;color:var(--muted);font-weight:500}

.plist2,.plist,.lgrid{grid-template-columns:1fr;gap:8px}
.plist2{display:grid}
.plist2>.adslot,.plist2>.adrail,.plist2>.empty{grid-column:1/-1}
.pc{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;background:#ffffff;border:1px solid var(--line);padding:10px 14px}
.pc:hover{border-color:var(--green-300)}
.pc .logo{width:40px;height:40px;font-size:.8rem}
.pc-main{min-width:0;display:flex;flex-direction:column}
.pc-u{margin:0 0 1px;font-size:.78rem;font-weight:600;color:var(--muted);line-height:1.4}
.pc-u a{color:var(--green-d);font-weight:600;position:relative;z-index:2}.pc-u a:hover{color:var(--ink)}
.pc h3{font:600 .98rem/1.3 var(--head);letter-spacing:-.012em}
.pc h3 a{color:var(--ink)}
.pc h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.pc h3 a:hover{color:var(--green-d);text-decoration:none}
.pc .tags{margin-top:5px;gap:4px}
.pc .tags span{padding:1px 7px;font-size:.72rem}
.pc-s{margin:4px 0 0;font-size:.84rem;color:var(--ink-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc .logo,.pc-side>*{position:relative;z-index:2}
.pc-side{display:flex;flex-direction:row;align-items:center;gap:4px;white-space:nowrap}
.pc-ects{font-size:.74rem;color:var(--muted);text-align:right;white-space:normal;max-width:190px;margin-right:6px}.pc-ects b{font:600 1.05rem var(--head);color:var(--ink);margin-right:4px;letter-spacing:-.02em}.pc-ects i{font-style:normal;color:var(--muted)}
.pc-side .vbtn{padding:6px 12px;font-size:.78rem}
.pc-side .save span{display:none}

.pager{display:flex;flex-wrap:wrap;gap:6px;margin:var(--s6) 0 var(--s2);align-items:center;justify-content:center}
.pager a,.pager b,.pager span{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border-radius:2px;background:#ffffff;color:var(--ink);font-weight:600;font-size:.9rem;box-shadow:inset 0 0 0 1px var(--line)}
.pager b{background:var(--green);color:#ffffff;box-shadow:none}
.pager span{background:transparent;box-shadow:none;min-width:24px;padding:0}
.pager a:hover{text-decoration:none;background:var(--green-50);color:var(--green-d);box-shadow:inset 0 0 0 1px var(--green-300)}

.empty{background:#ffffff;border:1px solid var(--line);padding:var(--s7) var(--s5);text-align:center;color:var(--muted)}
.empty.big{margin:var(--s7) auto;max-width:640px}
.empty>b{display:block;font:600 1.25rem var(--head);color:var(--ink);letter-spacing:-.02em}
.empty p{margin-top:var(--s2);font-size:.98rem}
.empty-ic{display:block;margin:0 auto var(--s4);width:44px;height:44px;color:var(--green);stroke-width:1.25}
.empty .popular{justify-content:center}
.skel,.skel i{display:block;border-radius:2px;background:linear-gradient(100deg,var(--fill) 30%,#ffffff 50%,var(--fill) 70%) 0 0/220% 100%;animation:shimmer 1.2s linear infinite}
.skel{height:14px;margin:10px 14px}
.clear{display:inline-block;margin-top:var(--s4);font-size:.86rem;font-weight:700;color:var(--green)}

/* ---------- 8. detail pages (one big card + side cards) ---------- */
.detail{padding-bottom:var(--s6);padding-top:var(--s5)}
.d-grid{display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:var(--s5);align-items:start}
.d-main,.d-side{display:flex;flex-direction:column;gap:var(--s4);min-width:0}.d-side{align-self:stretch}
.card2{background:#ffffff;border:1px solid var(--line);padding:16px 18px}
.card2.bigcard{padding:22px 24px}
.card2>h2,.d-side h2,.rail-side h2{font:700 .76rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);padding:0 0 8px;margin:0 0 12px;border-bottom:2px solid var(--red)}
.bigcard section{margin-top:28px}
.bigcard section>h2,.d-main h2{font-size:1.3rem;font-weight:600;margin:0 0 10px}
.uni-card{display:flex;gap:var(--s4);align-items:center}
.uni-card b{display:block;font:600 1.05rem/1.3 var(--head);letter-spacing:-.015em}.uni-card span{font-size:.86rem;color:var(--muted)}.uni-card a{color:var(--ink)}.uni-card a:hover{color:var(--green-d)}
.lead{font-size:1.2rem;line-height:1.6;color:var(--ink-2);margin:var(--s5) 0 0;max-width:62ch}
.callout{margin:16px 0 0;padding:12px 16px;background:var(--tint);border:1px solid var(--line);border-left:4px solid var(--red);color:var(--ink);font-size:.95rem;line-height:1.55}
.callout b{color:var(--ink)}

/* facts: unboxed, thin icons, flowing grid */
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5);margin:var(--s6) 0 var(--s2)}
.tile{display:flex;align-items:flex-start;gap:12px}
.tile .ti{flex:none;width:22px;height:22px;color:var(--green);stroke-width:1.25}
.tile.wd{grid-column:1/-1}
.tile.na .ti{color:var(--faint)}
.tile .k{display:block;font:600 .68rem/1.4 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.tile .v{display:block;margin-top:2px;font:500 .98rem/1.35 var(--head);color:var(--ink);letter-spacing:-.01em}
.tile.na .v{color:var(--muted)}
.fee-note{max-width:78ch}.fee-note b{color:var(--ink)}
.dl{margin:0}.dl div{display:flex;justify-content:space-between;gap:var(--s4);padding:9px 0}
.dl dt{color:var(--muted);font-size:.88rem}.dl dd{margin:0;font-weight:500;text-align:right;font-size:.92rem;color:var(--ink)}
.note{margin:var(--s3) 0 0;font-size:.82rem;color:var(--muted);line-height:1.55}
.verify{background:var(--green-50);border-color:var(--green-200)}
.verify a{display:block;margin-top:var(--s2);font-weight:700;font-size:.9rem;color:var(--green-d)}.verify a:hover{color:var(--ink)}

.prose{font-size:1.02rem;line-height:1.78;color:var(--ink-2);max-width:72ch}
.prose h3{font-size:1.15rem;margin:18px 0 6px;color:var(--ink)}
.prose p{margin:0 0 var(--s4);max-width:70ch}
.intro .prose p{margin:0 0 12px;line-height:1.7}
.prose a{text-decoration:underline;text-decoration-color:var(--green-300);text-underline-offset:3px;font-weight:600}.prose a:hover{text-decoration-color:var(--green-d);color:var(--green-d)}
.prose b,.prose strong{color:var(--ink)}
.prose table{border-collapse:separate;border-spacing:0;width:100%;margin:var(--s4) 0;font-size:.92rem}
.prose th,.prose td{padding:11px 14px;text-align:left;vertical-align:top}
.prose th{background:var(--green-50);color:var(--green-d);font-weight:700}
.prose tr:nth-child(even) td{background:var(--tint)}
.prose.long{max-width:78ch}
.prose.long h2{font-size:var(--fs-h2);margin:var(--s7) 0 var(--s3);color:var(--ink)}.prose.long h2:first-child{margin-top:0}
.prose.long h3{font-size:1.2rem}

/* slim ticks and thin outlined numbered steps */
.prose ul,.ticks{list-style:none;padding:0;margin:8px 0}
.prose ul li,.ticks li{position:relative;padding:3px 0 3px 20px;line-height:1.5}
.prose ul li::before,.ticks li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' fill='none' stroke='%232c5a4b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.ticks b{color:var(--ink)}
.prose ol,.steps{list-style:none;counter-reset:st;padding:0;margin:8px 0}
.prose ol>li,.steps>li{counter-increment:st;position:relative;padding:4px 0 4px 26px;line-height:1.5}
.prose ol>li::before,.steps>li::before{content:counter(st);position:absolute;left:0;top:6px;width:18px;height:18px;border-radius:50%;border:1px solid var(--green);color:var(--green-d);font:600 11px var(--sans);display:grid;place-items:center}
.careers ul{display:flex;flex-wrap:wrap;gap:8px;margin:var(--s3) 0}
.careers ul li{padding:5px 10px;margin:0;background:var(--green-50);border-radius:2px;font-weight:600;font-size:.85rem;color:var(--green-d);line-height:1.3}
.careers ul li::before{display:none}

/* study-guide hub: the raw link blocks become horizontal cards */
.prose.long a:has(>p){display:block;font-size:0;position:relative;padding:12px 40px 12px 16px;border:1px solid var(--line);border-left:3px solid var(--red);background:#ffffff;margin:0 0 8px;color:inherit;text-decoration:none}
.prose.long a:has(>p)::after{content:"\203A";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--green)}
.prose.long a:has(>p) p:first-child{margin:0;font:600 1.02rem var(--head);color:var(--ink)}
.prose.long a:has(>p) p:nth-child(2){margin:2px 0 0;font:400 .88rem var(--sans);color:var(--muted)}
.prose.long a:has(>p):hover{border-color:var(--green-300);border-left-color:var(--red)}
.prose.long a:has(>p):hover p:first-child{color:var(--green-d)}

/* university page: full-width profile */
.fw>.wrap{max-width:none;border:0;background:none;padding:0}
.fw>section.wrap{padding:44px max(20px,4vw)}
.fw>section.wrap:nth-of-type(odd){background:#ffffff}
.fw>section.wrap:nth-of-type(even){background:var(--tint)}
.uni-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:48px;align-items:start}
.uni-main h2,.fw .blk-h h2{font-size:1.5rem}
.uni-main .prose{max-width:none;font-size:1.04rem}
.uni-main .prose p{max-width:80ch}
.uni-head{display:flex;align-items:center;gap:18px;margin-bottom:22px;flex-wrap:nowrap}.uni-head .tags{flex:1;min-width:0;margin:0}
.uni-head .logo.big{width:84px;height:84px;border:1px solid var(--line)}
.uni-side{position:sticky;top:84px;padding-left:28px;border-left:3px solid var(--red)}
.uni-side h3{font:700 .8rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0 0 10px}
.ustats{display:flex;gap:44px;flex-wrap:wrap;margin:18px 0 10px}
.ustats div{max-width:230px}
.ustats b{display:block;font:500 2.2rem/1.1 var(--head);color:var(--green-d);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.ustats span{font-size:.85rem;color:var(--muted)}
.lvbars{margin-top:var(--s5);display:flex;flex-direction:column;gap:10px;max-width:600px}
.lvbars div{display:grid;grid-template-columns:170px 1fr 38px;gap:var(--s3);align-items:center;font-size:.86rem;color:var(--ink-2)}
.lvbars i{display:block;height:8px;background:var(--green);width:var(--w,0%);min-width:6px;transform-origin:left;animation:grow .8s var(--ease) both}
.lvbars b{text-align:right;font-variant-numeric:tabular-nums}
.lvbars.wide{max-width:none}
.lvbars.wide div{grid-template-columns:minmax(180px,260px) 1fr 40px}
.pfilter{margin:var(--s2) 0;max-width:420px}
.ptools{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:6px 0 18px}
.ptools .pfilter{flex:0 1 380px}
.jump{display:flex;gap:8px;flex-wrap:wrap}
.jump a{padding:6px 12px;border:1px solid var(--line);background:#ffffff;font-size:.85rem;font-weight:600;color:var(--green-d)}
.jump a i,.lv-h i{font-style:normal;color:var(--muted);font-weight:500;margin-left:4px}
.jump a:hover{border-color:var(--green);text-decoration:none}
.lv-h{font:600 1.15rem var(--head);margin:26px 0 12px;scroll-margin-top:90px}
.fw .plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:10px;margin-top:0}
.prow{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;padding:9px 14px;background:#ffffff;border:1px solid var(--line);color:var(--ink)}
.prow:hover{text-decoration:none;border-color:var(--green-300);color:var(--ink)}
.prow b{display:block;width:100%;font:600 .92rem/1.35 var(--head);color:var(--ink);letter-spacing:-.01em}
.prow:hover b{color:var(--green-d)}
.prow-m{display:flex;flex-wrap:wrap;gap:6px;align-items:center;white-space:normal;width:100%}
.prow-m em{font-style:normal;font-size:.74rem;font-weight:600;padding:2px 9px;border-radius:2px;background:var(--fill);color:var(--ink-2)}
.prow-m em.eng{background:var(--green-100);color:var(--green-d)}
.pos{font:700 .8rem var(--head);color:var(--green-d)}

/* faq accordion */
.faq{display:grid;gap:var(--s2)}
.faq details{background:var(--tint);border:1px solid var(--line)}
.faq details[open]{background:var(--green-50);border-color:var(--green-200)}
.faq summary{cursor:pointer;padding:14px 18px;font:600 1rem/1.4 var(--head);letter-spacing:-.01em;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--s3);color:var(--ink)}
.faq summary:hover{color:var(--green-d)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='%232c5a4b' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(135deg)}
.faq p{margin:0;padding:0 18px 16px;color:var(--ink-2);line-height:1.7}

.sticky-cta{display:none}
.share{display:flex;align-items:center;gap:6px;margin:18px 0 4px;font:700 .78rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.share a,.share button{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--edge);background:#ffffff;color:var(--ink-2);border-radius:2px;cursor:pointer;padding:0}
.share a:hover,.share button:hover{border-color:var(--green);color:var(--green-d);text-decoration:none}
.share svg{width:17px;height:17px}

/* ---------- 9. article / guide pages and list pages with a side rail ---------- */
.article{padding-bottom:var(--s6);padding-top:var(--s5)}
.article.with-side{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:var(--s5);align-items:start}
.art-main{min-width:0}.art-side{align-self:stretch;display:flex;flex-direction:column;gap:var(--s4)}
.art-main>.card2{padding:24px 28px 28px}
.guide-nav{display:flex;flex-direction:column;gap:2px;margin:0 -8px}
.guide-nav a{display:flex;justify-content:flex-start;gap:var(--s3);padding:5px 8px;color:var(--ink-2);font-weight:600;font-size:.9rem;line-height:1.4}
.guide-nav a::before{content:"\00bb";color:var(--green);font-weight:800;margin-right:2px;flex:none}
.guide-nav a:hover{background:var(--green-50);color:var(--green-d);text-decoration:none}
.guide-nav a.on{background:var(--green);color:#ffffff}.guide-nav a.on::before{color:#ffffff}
.guide-nav a i{font-style:normal;font-size:.78rem;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;margin-left:auto}.guide-nav a.on i{color:#ffffff}
.rail-layout{display:grid;grid-template-columns:minmax(0,1fr) 324px;gap:var(--s5);align-items:start;padding-top:var(--s5);padding-bottom:var(--s2)}
.rail-main{min-width:0}.rail-side{display:flex;flex-direction:column;gap:var(--s4);align-self:stretch;min-width:0}
.sfilter label{display:block;font-size:.8rem;font-weight:700;color:var(--ink-2);margin-top:var(--s4)}
.sfilter select{display:block;width:100%;margin-top:6px;padding:10px 36px 10px 14px;border:0;border-radius:2px;background-color:var(--tint);box-shadow:inset 0 0 0 1px var(--edge);font:inherit;font-size:.92rem;appearance:none;-webkit-appearance:none;cursor:pointer;color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%235a544d' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.sfilter select:hover{background-color:#ffffff}
.sfilter select:focus{outline:0;background-color:#ffffff;box-shadow:inset 0 0 0 2px var(--green),var(--ring)}
.social{display:flex;gap:8px;margin:0 0 10px}
.social a{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.45);color:#ffffff;border-radius:2px;padding:0}
.social a:hover{background:#ffffff;color:var(--dark);text-decoration:none}
.social svg{width:18px;height:18px}

/* ---------- 10. tables (compare, tuition, shortlist) ---------- */
.cmp{border-collapse:separate;border-spacing:0;width:100%;font-size:.92rem}
.cmp th,.cmp td{padding:12px 16px;text-align:left;white-space:nowrap}
.cmp thead th{background:var(--green-50);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--green-d);font-weight:700;border-bottom:2px solid var(--red)}
.cmp tbody tr:nth-child(even) td,.cmp tbody tr:nth-child(even) th{background:var(--tint)}
.cmp tbody tr:hover td{background:var(--green-50)}
.cmp td a{font-weight:600}
.cmp .ext{font-size:.8rem;font-weight:500}
.cmp-rules th,.cmp-rules td{white-space:normal;vertical-align:top;min-width:200px}
.cmp-rules tbody th{font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--ink);background:#ffffff;font-weight:700}
.cmp-h{font-size:var(--fs-h2);margin:var(--s7) 0 var(--s4)}
.cmp-p th:first-child,.cmp-p td:first-child{position:sticky;left:0;background:#ffffff;z-index:1}
.cmp-p td{white-space:normal;min-width:200px;vertical-align:top}
.cmp-p tbody th{color:var(--muted);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}

/* type-ahead suggestions */
.suggest{position:absolute;z-index:90;background:#ffffff;box-shadow:var(--sh-3),inset 0 0 0 1px var(--line);overflow:hidden;max-width:92vw;padding:6px;animation:drop .18s var(--ease)}
.suggest a{display:flex;flex-direction:column;padding:10px 14px;color:var(--ink);line-height:1.3}
.suggest a b{font:600 .92rem var(--head)}.suggest a span{font-size:.78rem;color:var(--muted)}
.suggest a:hover,.suggest a.on{background:var(--green-50);text-decoration:none;color:var(--ink)}

.totop{position:fixed;right:18px;bottom:22px;z-index:45;width:44px;height:44px;border-radius:2px;border:0;background:var(--red);color:#ffffff;display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-3);animation:rise .3s var(--ease)}
.totop svg path{stroke-width:1.75}
.totop:hover{background:var(--red-d)}

/* ---------- 11. home: icon grid for subjects, carousels, full-width sections ---------- */
.is-home .page{padding:0}
.is-home .page>.wrap{max-width:none;border:0;background:none;padding:0}
.is-home .page>section.wrap{padding:52px max(20px,4vw)}
.is-home .page>section.wrap:nth-of-type(odd){background:#ffffff}
.is-home .page>section.wrap:nth-of-type(even){background:var(--tint)}
.is-home .page>section.wrap.trust{background:var(--dark);color:#e6dfd8}
.is-home .trust .blk-h h2,.is-home .trust h3{color:#ffffff}
.is-home .lgrid,.is-home .start .lgrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.is-home .blk-h h2{font-size:1.5rem}
.is-home .hero-in,.is-home .stats{max-width:none}
.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:8px}
.trust-grid h3{font-size:1.05rem;margin:0 0 6px;color:#ffffff;border-left:3px solid var(--red);padding-left:10px}
.trust-grid p{margin:0;color:#e6dfd8;line-height:1.65;font-size:.95rem}
.sgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-top:6px}
.st{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:24px 12px 20px;background:#ffffff;color:var(--ink);border:1px solid var(--line)}
.st-i{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--green-50);color:var(--green);font-size:1.5rem;margin-bottom:8px;transition:background .2s,color .2s}
.st b{font:500 .98rem/1.3 var(--head);color:var(--ink)}
.st small{font-size:.8rem;color:var(--muted)}
.st:hover{text-decoration:none;border-color:var(--green)}.st:hover .st-i{background:var(--green);color:#ffffff}
.car{position:relative}
.car-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 12px;scrollbar-width:none}
.car-track::-webkit-scrollbar{display:none}
.cc{flex:0 0 clamp(220px,22vw,280px);scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;padding:18px;background:#ffffff;color:var(--ink);border:1px solid var(--line)}
.cc.wide{flex-basis:clamp(260px,28vw,360px)}
.cc:hover{text-decoration:none;border-color:var(--green);color:var(--ink)}
.cc .logo{width:54px;height:54px}
.cc b{font:500 1rem/1.35 var(--head);color:var(--ink)}
.cc small{font-size:.84rem;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cc i{font-style:normal;font-size:.76rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--green-d)}
.cc .lr-tag{align-self:flex-start;margin-top:auto}
.car-b{position:absolute;top:42%;z-index:3;width:40px;height:40px;border:0;border-radius:2px;background:var(--red);color:#ffffff;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.22)}
.car-b:hover{background:var(--red-d)}
.car-b.prev{left:-14px}.car-b.next{right:-14px}
.car-b[disabled]{opacity:.4;cursor:default}

/* ---------- 12. ad containers: layout only, the snippet inside is Google's own ---------- */
.adslot{margin:var(--s4) 0;padding:8px 0;text-align:center}
.adslot:has(ins.adsbygoogle[data-ad-status="unfilled"]){display:none}
.adslot--mobile{display:none}
.adrail{position:sticky;top:88px}
.adrail .adslot{margin:0}
.adbottom:empty{display:none}
.adslot--debug{position:relative;min-height:96px;border:2px dashed var(--green);background:repeating-linear-gradient(45deg,#f8f6f2,#f8f6f2 10px,#ebe6df 10px,#ebe6df 20px);display:flex!important;align-items:center;justify-content:center}
.adslot--debug>span{font:700 12px/1 var(--sans);color:var(--green-d);background:#ffffff;padding:5px 9px}
.adrail .adslot--debug{min-height:280px}

/* ---------- 13. footer: dark band ---------- */
.foot{background:var(--dark);color:#e6dfd8;margin-top:0}
.foot-cta{background:var(--tint);color:var(--ink);border-top:1px solid var(--line);border-bottom:4px solid var(--red)}
.foot-cta .fc{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:24px;padding-bottom:24px}
.foot-cta b{display:block;font:600 1.25rem var(--head);color:var(--ink)}
.foot-cta span{display:block;margin-top:2px;font-size:.92rem;color:var(--ink-2)}
.fc-b{display:flex;gap:10px;flex-wrap:wrap}
.foot-cta .vbtn{padding:10px 22px}
.foot-in{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px;padding-top:44px;padding-bottom:36px;font-size:.92rem}
.foot-h{display:block;margin:0 0 12px;font:700 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#ffffff}
.foot a{color:#e6dfd8;display:block;padding:4px 0;font-size:.92rem}
.foot a:hover{color:#ffffff;text-decoration:underline;text-underline-offset:3px}
.foot .foot-cta a.vbtn{display:inline-flex;padding:10px 22px;color:#ffffff}
.foot .foot-cta a.vbtn.ghost{color:var(--red-d)}
.foot .foot-cta a.vbtn:hover{text-decoration:none}
.foot .foot-cta a.vbtn.ghost:hover{color:var(--red-d)}
.foot p{max-width:38ch;color:#d4ccc2;line-height:1.65;margin:12px 0 14px;font-size:.9rem}
.brand.light{display:inline-flex;padding:0}.brand.light .brand-t,.brand.light .brand-t b{color:#ffffff}
.brand.light .mark .o{stroke:#ffffff}
.brand.light:hover{text-decoration:none}
.foot :focus-visible{outline-color:#ffffff}
.foot-b{background:var(--dark-3)}
.foot-b .fb{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 24px;padding-top:16px;padding-bottom:16px;font-size:.82rem;color:#d4ccc2}
.foot-b a{display:inline;padding:0;color:#e6dfd8;text-decoration:underline;text-underline-offset:3px}
.fb-l{display:flex;gap:16px}
.foot .social a{display:inline-grid;padding:0}
.is-home .foot-in,.is-home .fc,.is-home .fb{max-width:none;padding-left:max(20px,4vw);padding-right:max(20px,4vw)}

/* ---------- 14. motion ---------- */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
.plist2>.pc{animation:rise .5s var(--ease) both}
.plist2>.pc:nth-child(2){animation-delay:.04s}.plist2>.pc:nth-child(3){animation-delay:.08s}.plist2>.pc:nth-child(4){animation-delay:.12s}
.plist2>.pc:nth-child(n+5){animation-duration:.4s}

/* ---------- 15. responsive ---------- */
@media (max-width:1100px){.sgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1020px){
  .listing{grid-template-columns:1fr}
  .f-sum{display:flex;cursor:pointer;list-style:none;font:700 1rem var(--head);padding:16px 20px;align-items:center;gap:var(--s2)}
  .f-sum::-webkit-details-marker{display:none}
  .f-sum::after{content:"";margin-left:auto;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%235a544d' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .25s var(--ease)}
  .filters[open] .f-sum::after{transform:rotate(180deg)}
  .dot{width:8px;height:8px;border-radius:50%;background:var(--red);display:inline-block}
  .d-grid,.article.with-side,.rail-layout{grid-template-columns:1fr}.d-side,.art-side,.rail-side{align-self:auto}
  .adrail{position:static}
  .f-head{display:none}
  .sidecol>.filters{position:static}
  .finder{grid-template-columns:1fr 1fr}
  .find{grid-column:1/-1}
}
@media (min-width:900px){.ticks.cols{grid-template-columns:1fr 1fr}}
@media (min-width:720px){.tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:1000px){.uni-grid{grid-template-columns:1fr}.uni-side{position:static;padding-left:0;border-left:0;border-top:3px solid var(--red);padding-top:16px}.fw .plist{grid-template-columns:1fr}}
@media (max-width:900px){
  .nav,.top-search{display:none}
  .mnav{display:block;order:3}.top-in{justify-content:space-between}.top-in .sl-link{margin-left:auto}
  .foot-in{grid-template-columns:1fr 1fr}.f-about{grid-column:1/-1}
}
@media (max-width:800px){.trust-grid,.is-home .trust-grid{grid-template-columns:1fr}}
@media (max-width:760px){
  .adslot--mobile{display:block}.adslot--desktop{display:none}
}
@media (max-width:700px){.car-b{display:none}.sgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.is-home .lgrid,.is-home .start .lgrid{grid-template-columns:1fr}}
@media (max-width:640px){
  :root{--head-h:56px}
  .wrap{padding:0 16px}
  .brand-t{font-size:1.02rem}.sl-link{padding:9px 12px}.sl-link span{display:none}
  .hero-in{padding:40px 16px 28px}
  .hero-sub{font-size:1rem;margin-bottom:24px}
  .finder{grid-template-columns:1fr}
  .finder select,.find{height:50px}.find{justify-content:center}
  .stats{gap:var(--s4) var(--s6);padding:22px 16px 26px}
  .band{padding:16px 0 56px}.bigsearch button{padding:0 18px}
  .page>.wrap,.page>section.wrap,.page>article.wrap{padding:18px 14px 26px}
  .card2.bigcard,.art-main>.card2{padding:20px 16px 24px}
  .lvbars div{grid-template-columns:110px 1fr 34px}
  .ustats{gap:var(--s4) var(--s6)}
  .pc{grid-template-columns:auto minmax(0,1fr)}.pc-side{grid-column:1/-1;justify-content:space-between}.pc-ects{max-width:none;text-align:left}
  .foot-in{grid-template-columns:1fr;gap:var(--s5)}
  .sticky-cta{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:48;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 -10px 30px -12px rgba(38,34,31,.25)}
  .sticky-cta .vbtn{flex:1;padding:12px 8px}.detail{padding-bottom:96px}
  .totop{bottom:88px}
  .rbox{padding:16px 18px}
  .pager a,.pager b{min-width:38px;height:38px;padding:0 10px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{.top,.band,.foot,.adslot,.adrail,.totop,.sticky-cta,.filters,.rail-side,.d-side{display:none!important}body{background:#ffffff}.card2{box-shadow:none;padding:0}}
