.positions-page{--op-bg:#fbfcfa;--op-soft:#f1f5f2;--op-surface:#fff;--op-ink:#17211d;--op-muted:#606d65;--op-line:#dfe8e2;--op-green:#0f6b49;background:var(--op-bg);color:var(--op-ink);font:16px/1.65 Arial,sans-serif}
.positions-page *{box-sizing:border-box}
.positions-page h1,.positions-page h2,.positions-page h3{color:var(--op-ink);font-weight:600;letter-spacing:-.035em}
.positions-page h1{font-size:clamp(40px,4.1vw,58px);line-height:1.08}
.positions-page h2{font-size:clamp(30px,3vw,40px);line-height:1.16}
.positions-page h3{font-size:25px;line-height:1.25}
.positions-page p{color:var(--op-muted)}
.positions-page .eyebrow{color:var(--op-green);font-size:12px;font-weight:700}
.positions-page strong{color:var(--op-ink);font-weight:600}
.positions-page a:focus-visible{outline:3px solid #2783de;outline-offset:4px}
.positions-page .op-hero{padding:64px 0}
.positions-page .op-hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px}
.positions-page .op-lead{font-size:18px;line-height:1.65;max-width:480px;margin:24px 0 0}
.positions-page .op-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-top:28px}
.positions-page .op-primary{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:10px 18px;background:var(--op-green);color:#fff;border-radius:8px;font-size:14px;font-weight:600}
.positions-page .op-primary:hover{background:#0b553a}
.positions-page .op-text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--op-green);font-size:14px}
.positions-page .op-text-link:hover,.positions-page .op-card-link:hover,.positions-page .op-contact-note a:hover{text-decoration:underline;text-underline-offset:4px}
.positions-page .op-photo{margin:0;min-width:0}
.positions-page .op-photo img{display:block;width:100%;height:auto;border-radius:12px}
.positions-page .op-photo figcaption{margin-top:12px;color:var(--op-muted);font-size:14px;line-height:1.5}
.positions-page .op-opportunities{padding:64px 0;background:var(--op-soft)}
.positions-page .op-heading{margin-bottom:28px}
.positions-page .op-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.positions-page .op-card{display:flex;flex-direction:column;align-items:flex-start;padding:32px;border:1px solid var(--op-line);border-radius:12px;background:var(--op-surface)}
.positions-page .op-level{margin:0 0 12px;color:var(--op-green);font-size:14px;font-weight:600}
.positions-page .op-card p:not(.op-level){margin:16px 0 0;font-size:16px;line-height:1.7}
.positions-page .op-projects{padding:0;margin:20px 0 0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.positions-page .op-projects li{padding:5px 10px;border:1px solid var(--op-line);border-radius:5px;font-size:14px;line-height:1.5;color:var(--op-muted)}
.positions-page .op-card-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:auto;padding-top:24px;color:var(--op-green);font-size:14px;font-weight:600}
.positions-page .op-funding{padding:64px 0}
.positions-page .op-funding-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px}
.positions-page .op-funding .op-heading{max-width:360px;margin:0}
.positions-page .op-funding .op-heading>p:last-child{margin:20px 0 0}
.positions-page .op-funding-list article{padding:0 0 24px;border-bottom:1px solid var(--op-line)}
.positions-page .op-funding-list article+article{padding-top:28px}
.positions-page .op-funding-list h3{font-size:23px}
.positions-page .op-funding-list p{margin:12px 0 0;font-size:16px}
.positions-page .op-funding-list .op-text-link{margin-top:8px}
.positions-page [lang=th]{line-height:1.9;overflow-wrap:anywhere}
.positions-page .op-apply{padding:0 0 72px}
.positions-page .op-apply-panel{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:48px;border:1px solid var(--op-line);border-radius:12px;background:var(--op-soft)}
.positions-page .op-apply-panel>div>p:last-child{margin:20px 0 0}
.positions-page .op-checklist-label{margin:0 0 16px;font-size:16px}
.positions-page .op-checklist{padding-left:24px;margin:0 0 24px;color:var(--op-ink)}
.positions-page .op-checklist li{padding-left:4px;margin:8px 0}
.positions-page .op-email{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--op-green);font-size:20px;font-weight:600;overflow-wrap:anywhere}
.positions-page .op-contact-note{font-size:14px;line-height:1.6}
.positions-page .op-contact-note a{display:inline-flex;align-items:center;min-height:44px;color:var(--op-green)}
@media(max-width:900px){.positions-page .op-hero-grid{grid-template-columns:1fr;gap:32px}.positions-page .op-hero-copy{max-width:650px}.positions-page .op-photo{max-width:760px}.positions-page .op-funding-grid{gap:40px}.positions-page .op-apply-panel{gap:32px;padding:32px}}
@media(max-width:620px){.positions-page .op-hero{padding:40px 0}.positions-page h1{font-size:42px}.positions-page h2{font-size:32px}.positions-page h3{font-size:25px}.positions-page .op-lead{font-size:17px;margin-top:20px}.positions-page .op-actions{gap:8px 16px}.positions-page .op-cards,.positions-page .op-funding-grid,.positions-page .op-apply-panel{grid-template-columns:1fr;gap:24px}.positions-page .op-card{padding:24px}.positions-page .op-card-link{margin-top:8px;line-height:1.6}.positions-page .op-opportunities,.positions-page .op-funding{padding:40px 0}.positions-page .op-funding-grid{gap:28px}.positions-page .op-funding .op-heading{max-width:100%}.positions-page .op-apply{padding-bottom:48px}.positions-page .op-apply-panel{padding:24px;gap:28px}.positions-page .op-email{font-size:18px}.positions-page .op-contact-note{margin-top:12px}.positions-page .op-photo figcaption{font-size:14px}}
@media(prefers-color-scheme:dark){.positions-page{--op-bg:#191d1a;--op-soft:#222a24;--op-surface:#202620;--op-ink:#f3f5f3;--op-muted:#b7c0b9;--op-line:#48584c;--op-green:#8ad2ad}.positions-page .op-primary{background:#9ad9b8;color:#14241b}.positions-page .op-primary:hover{background:#b2e6cb}}
@media(prefers-reduced-motion:reduce){.positions-page *{transition:none!important;animation:none!important;scroll-behavior:auto}}

/* Page-local English / Thai navigation; links work without JavaScript. */
.positions-page .op-language-bar{display:flex;justify-content:flex-end;padding-top:20px}
.positions-page .op-language-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--op-line);border-radius:8px;background:var(--op-surface)}
.positions-page .op-language-switch a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:68px;padding:8px 14px;border-radius:5px;color:var(--op-muted);font-size:14px;font-weight:600}
.positions-page .op-language-switch a[aria-current=true]{background:var(--op-green);color:var(--op-bg)}
.positions-page .op-language-switch a:hover{text-decoration:underline;text-underline-offset:4px}
.positions-page .op-hero{padding-top:32px}
.positions-page:lang(th){font-family:Arial,"Noto Sans Thai",sans-serif;line-height:1.85}
.positions-page:lang(th) h1,.positions-page:lang(th) h2,.positions-page:lang(th) h3{letter-spacing:0;line-height:1.45;overflow-wrap:anywhere}
.positions-page:lang(th) h1{font-size:clamp(34px,3.4vw,48px)}
.positions-page:lang(th) h2{font-size:clamp(28px,2.7vw,36px)}
.positions-page:lang(th) .eyebrow{letter-spacing:.03em}
.positions-page:lang(th) .op-card p:not(.op-level){line-height:1.85}
@media(max-width:620px){.positions-page .op-language-bar{padding-top:16px}.positions-page .op-hero{padding-top:24px}.positions-page:lang(th) h1{font-size:34px}.positions-page:lang(th) h2{font-size:28px}.positions-page:lang(th) .op-card-link{font-size:14px}}
