/* SJP opportunities.css v1.2 - 12th Sep 2026. Theme chrome; no content-block types. */
html.sjp-ats-open,body.sjp-ats-open{overflow:hidden}
.sjp-ats-overlay{position:fixed;inset:0;z-index:900;background:#0a1428b8;opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s ease}
.sjp-ats-overlay.is-open{opacity:1;visibility:visible}
.sjp-ats{position:fixed;inset:0 0 0 auto;z-index:901;width:min(600px,100%);height:100dvh;max-height:100%;display:flex;flex-direction:column;min-width:0;background:var(--bg);color:var(--ink);box-shadow:-20px 0 80px #0a142835;transform:translateX(102%);visibility:hidden;transition:transform .24s ease,visibility .24s ease;overflow-wrap:anywhere}
.sjp-ats.is-open{transform:translateX(0);visibility:visible}
.sjp-ats-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 30px;background:var(--navy);color:white;border-bottom:1px solid #536079}
.sjp-ats-brand{width:62px;height:46px;object-fit:contain}
.sjp-ats-close{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;min-width:44px;padding:9px 13px;color:white;border:1px solid #8b9bb4;background:transparent;font-size:.8rem;line-height:1.5}
.sjp-ats-close:hover{background:#243754}
.sjp-ats-close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6}
.sjp-ats-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:20px}
.sjp-ats-head{padding:26px 32px 32px;background:var(--navy);color:white;border-bottom:4px solid var(--accent)}
.sjp-ats-eyebrow{display:block;margin:0 0 14px;color:#d8e2f0;font-size:.72rem;line-height:1.65;letter-spacing:.12em;text-transform:uppercase}
.sjp-ats-head h2{margin:0 0 18px;font-size:clamp(2.2rem,4vw,3rem);line-height:1.1}
.sjp-ats-head p{margin:0;color:#d8e2f0;font-size:.87rem;line-height:1.85}
.sjp-ats-filters{display:flex;flex-wrap:wrap;gap:9px;padding:25px 30px 17px}
.sjp-ats-filters button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid #68768a;border-radius:0;background:var(--card);color:var(--ink);font-size:.78rem;font-weight:500;line-height:1.5}
.sjp-ats-filters button:hover{background:var(--panel)}
.sjp-ats-filters button[aria-pressed=true]{color:var(--navy);background:var(--accent);border-color:var(--navy);box-shadow:inset 0 -3px var(--navy)}
.sjp-ats-count{padding:0 30px;margin:0 0 18px;color:var(--muted);font-size:.76rem}
.sjp-ats-list{padding:0 30px 10px}
.sjp-ats-card{margin:0 0 20px;padding:25px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent)}
.sjp-ats-programme{display:block;margin:0 0 12px;color:var(--muted);font-size:.69rem;font-weight:600;line-height:1.65;letter-spacing:.1em;text-transform:uppercase}
.sjp-ats-card h3{font-size:1.85rem;line-height:1.17;margin:0 0 18px}
.sjp-ats-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0 0 14px;font-size:.8rem;line-height:1.75;color:var(--muted)}
.sjp-ats-meta>span{display:inline}
.sjp-ats-meta>span+span:before{content:'·';margin-right:10px}
.sjp-ats-closing{font-size:.77rem;color:var(--ink);margin:0}
.sjp-ats-route{display:flex;align-items:center;gap:10px;padding-top:18px;margin:18px 0;border-top:1px solid var(--line);font-size:.8rem;font-weight:500}
.sjp-ats-icon{width:20px;height:20px;fill:currentColor;flex:none;color:var(--ink)}
.sjp-ats-card .btn{min-height:48px;font-size:.8rem;padding:12px 18px}
.sjp-ats-empty{padding:32px 25px;margin:0 0 22px;background:var(--panel);border-left:3px solid var(--accent)}
.sjp-ats-empty h3{font-size:1.85rem;margin-bottom:17px}
.sjp-ats-empty p{color:var(--muted);font-size:.85rem}
.sjp-ats-key{padding:24px 30px 32px;background:var(--panel);border-top:1px solid var(--line)}
.sjp-ats-key h3{font-family:var(--font-body);font-size:.82rem;letter-spacing:0;margin:0 0 20px;line-height:1.6}
.sjp-ats-key dl{display:grid;gap:20px;margin:0}
.sjp-ats-key dt{display:flex;align-items:center;gap:10px;font-size:.79rem;font-weight:600;line-height:1.6}
.sjp-ats-key dd{margin:7px 0 0 30px;font-size:.76rem;color:var(--muted);line-height:1.8}
.sjp-ats :focus-visible{outline:3px solid #007b70;outline-offset:4px;box-shadow:0 0 0 2px var(--bg)}
.sjp-ats-toolbar :focus-visible{outline-color:var(--accent);box-shadow:0 0 0 2px var(--navy)}
html[data-theme=dark] .sjp-ats :focus-visible{outline-color:var(--accent)}
html[data-theme=dark] .sjp-ats-filters button{border-color:#aebbd0}
html[data-contrast='1'] .sjp-ats-card{border-color:var(--ink)}
@media(max-width:400px){.sjp-ats-toolbar{padding:10px 20px}.sjp-ats-head{padding:24px 20px 28px}.sjp-ats-filters{padding:22px 20px 17px}.sjp-ats-count{padding-inline:20px}.sjp-ats-list{padding-inline:20px}.sjp-ats-card{padding:22px 18px}.sjp-ats-key{padding:24px 20px 30px}.sjp-ats-card h3{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){.sjp-ats,.sjp-ats-overlay{transition:none}}
@media(forced-colors:active){.sjp-ats,.sjp-ats-toolbar,.sjp-ats-head,.sjp-ats-card,.sjp-ats-key{background:Canvas;color:CanvasText;border-color:CanvasText}.sjp-ats-filters button[aria-pressed=true]{border:3px solid Highlight}.sjp-ats :focus-visible{outline-color:Highlight}.sjp-ats-overlay{background:Canvas;opacity:.8}}
@media print{.sjp-ats,.sjp-ats-overlay{display:none!important}}
