/* Recruitment page only; member profiles retain medical-advisory.css. */
.map-page { --map-navy:#102747; --map-magenta:#b91854; --map-muted:#4b5b70; --map-line:#d9dfe6; color:var(--map-navy); background:#fff; }
.map-page main { overflow:clip; }
.map-page main .wrap { width:calc(100% - 64px); max-width:1184px; margin-inline:auto; }
.map-page main :is(h1,h2,h3,p) { margin:0; }
.map-page main :is(h1,h2,h3) { color:inherit; letter-spacing:-.035em; text-wrap:balance; }
.map-page main h2 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.12; }
.map-page main p { line-height:1.65; }
.map-page main a { text-underline-offset:5px; }
.map-page main section[id] { scroll-margin-top:120px; }
.map-page .map-eyebrow { color:var(--map-magenta); font-size:.73rem; font-weight:800; text-transform:uppercase; letter-spacing:.13em; line-height:1.5; margin-bottom:18px; }
.map-eyebrow span { margin-inline:8px; opacity:.65; }
.map-hero { background:var(--map-navy); color:#fff; }
.map-hero__layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:64px; align-items:center; padding-block:64px 58px; }
.map-hero .map-eyebrow { color:#ffaccb; }
.map-page .map-hero h1 { max-width:12ch; font-size:clamp(2.6rem,5.2vw,4.5rem); line-height:1.02; letter-spacing:-.055em; margin-bottom:26px; }
.map-page .map-hero__statement { font-size:clamp(1.2rem,2vw,1.5rem); font-weight:650; line-height:1.35; margin-bottom:14px; }
.map-page .map-hero__intro { color:#dae3ee; font-size:1.05rem; max-width:55ch; margin-bottom:27px; }
.map-page .map-primary { min-height:var(--fnd-control-min,48px); gap:24px; padding:14px 22px; background:var(--map-magenta); border-color:var(--map-magenta); border-radius:var(--fnd-control-radius,10px); font-size:.94rem; }
.map-page .map-primary:hover { background:#971244; border-color:#971244; }
.map-primary span,.map-text-link span { display:inline-block; transition:transform var(--fnd-duration-standard,220ms) ease; }
.map-primary:hover span,.map-text-link:hover span { transform:translate(3px,-3px); }
.map-hero__purpose { border-left:1px solid #ffffff30; padding-left:48px; }
.map-page .map-hero__purpose p { font-size:clamp(1.3rem,2.2vw,1.8rem); font-weight:650; line-height:1.25; margin:30px 0 14px; letter-spacing:-.025em; }
.map-hero__purpose > span:last-child { color:#c2cfdf; font-size:.9rem; line-height:1.65; display:block; }
.map-orbit { display:block; position:relative; width:190px; height:190px; border:1px solid #ffffff45; border-radius:50%; transform:rotate(-18deg); }
.map-orbit::before { content:""; position:absolute; inset:23px; border:1px solid #ffffff25; border-radius:50%; }
.map-orbit i { position:absolute; width:14px; height:14px; border-radius:50%; background:#ed8bb2; box-shadow:0 0 0 6px var(--map-navy); }
.map-orbit i:nth-child(1) { left:88px; top:-7px; background:#fff; }
.map-orbit i:nth-child(2) { right:-2px; top:59px; }
.map-orbit i:nth-child(3) { right:32px; bottom:9px; }
.map-orbit i:nth-child(4) { left:24px; bottom:15px; }
.map-orbit i:nth-child(5) { left:-4px; top:62px; }
.map-orbit b { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(18deg); font-size:2.2rem; font-weight:800; letter-spacing:-.05em; line-height:1; }
.map-orbit b span { font-size:.8rem; color:#ffaccb; letter-spacing:.14em; margin-top:7px; }
.map-section-nav { border-top:1px solid #ffffff26; }
.map-section-nav .wrap { display:flex; align-items:center; gap:38px; }
.map-section-nav a { display:flex; gap:12px; align-items:center; min-height:64px; color:#e1e8f1; text-decoration:none; font-size:.88rem; font-weight:600; }
.map-section-nav a:first-child { margin-right:auto; color:#fff; }
.map-section-nav a:hover { text-decoration:underline; }
.map-status-dot { width:8px; height:8px; border-radius:50%; background:#f59fc0; }
.map-section { padding-block:80px; }
.map-section-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:end; margin-bottom:40px; }
.map-section-heading > p { color:var(--map-muted); max-width:48ch; font-size:1rem; }
.map-vacancies { background:#f7f8fa; }
.map-vacancy { display:grid; grid-template-columns:32px minmax(0,1fr) minmax(0,1.2fr) auto; gap:24px; align-items:center; padding:30px 0; border-top:1px solid var(--map-line); }
.map-vacancy:last-child { border-bottom:1px solid var(--map-line); }
.map-vacancy__number { color:#6d798a; font-size:.78rem; font-variant-numeric:tabular-nums; align-self:start; padding-top:4px; }
.map-page .map-status { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--map-magenta); margin-bottom:7px; }
.map-page .map-vacancy h3 { font-size:clamp(1.15rem,1.7vw,1.4rem); line-height:1.25; overflow-wrap:anywhere; }
.map-page .map-vacancy__description { color:var(--map-muted); font-size:.94rem; }
.map-page .map-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; min-height:var(--fnd-tap-min,44px); min-width:44px; color:var(--map-magenta); font-weight:750; font-size:.9rem; text-decoration:none; }
.map-page .map-text-link:hover { text-decoration:underline; }
.map-other { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; margin-top:32px; }
.map-page .map-other h3 { font-size:1.1rem; margin-bottom:7px; }
.map-other p { max-width:69ch; color:var(--map-muted); font-size:.9rem; }
.map-member { display:grid; grid-template-columns:260px minmax(0,1fr); gap:56px; align-items:center; border-top:1px solid var(--map-line); padding-top:36px; margin-top:32px; }
.map-member--text { grid-template-columns:1fr; }
.map-member__portrait { display:block; width:100%; border-radius:3px; overflow:hidden; }
.map-member__portrait img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; transition:transform 300ms ease; }
.map-member__portrait:hover img { transform:scale(1.025); }
.map-page .map-member h3 { font-size:clamp(1.65rem,3vw,2.4rem); line-height:1.15; margin-bottom:16px; }
.map-page .map-member__copy > p:not(.map-eyebrow) { max-width:66ch; color:var(--map-muted); margin-bottom:15px; }
.map-extra-members { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:32px; }
.map-extra-members article { border-top:1px solid var(--map-line); padding-top:24px; }
.map-contribution { background:var(--map-navy); color:#fff; }
.map-contribution .map-eyebrow { color:#ffaccb; }
.map-page .map-section-intro { color:#d3ddea; max-width:58ch; margin-top:20px; }
.map-work { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:44px; }
.map-work article { border-top:1px solid #ffffff40; padding-top:24px; }
.map-work article > span { color:#ffaccb; font-weight:750; font-size:.7rem; letter-spacing:.1em; }
.map-page .map-work h3 { font-size:1.35rem; line-height:1.3; margin:17px 0 12px; }
.map-work p { font-size:.95rem; color:#d3ddea; }
.map-remit { margin-top:44px; border:0; border-top:1px solid #ffffff40; border-bottom:1px solid #ffffff40; border-radius:0; background:transparent; color:#fff; }
.map-remit summary { color:inherit; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0; min-height:48px; cursor:pointer; font-weight:650; list-style:none; }
.map-remit summary::-webkit-details-marker { display:none; }
.map-remit summary::after { display:none; }
.map-remit summary span { font-size:1.4rem; transition:transform 200ms ease; }
.map-remit[open] summary span { transform:rotate(45deg); }
.map-remit > div { max-width:80ch; padding:0 0 24px; }
.map-page .map-remit h3 { font-size:1.05rem; margin:16px 0 12px; }
.map-remit ul { padding-left:20px; color:#d3ddea; font-size:.95rem; }
.map-remit li { margin-bottom:10px; line-height:1.6; }
.map-invitation { background:#f9f3f5; }
.map-invitation__layout { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; }
.map-page .map-invitation h2 { margin-bottom:22px; }
.map-page .map-invitation p:not(.map-eyebrow) { color:var(--map-muted); max-width:49ch; }
.map-invitation .map-primary { margin-top:26px; }
.map-application { border-left:1px solid #dfcdd5; padding-left:40px; }
.map-page .map-application h3 { font-size:1.4rem; margin-bottom:16px; }
.map-discipline-links { display:flex; flex-direction:column; align-items:flex-start; margin-top:20px; gap:4px; }
@media (prefers-reduced-motion:no-preference) {
  .map-hero__copy { animation:map-enter 550ms ease-out both; }
  .map-hero__purpose { animation:map-enter 650ms 90ms ease-out both; }
  @keyframes map-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
}
@media (max-width:1000px) {
  .map-hero__layout { gap:32px; }
  .map-hero__purpose { padding-left:32px; }
  .map-vacancy { grid-template-columns:24px minmax(0,1fr) minmax(0,1.2fr); gap:16px 24px; }
  .map-vacancy > a { grid-column:3; justify-self:start; }
  .map-vacancy__title { align-self:start; }
  .map-vacancy__description { grid-column:3; }
  .map-section-heading { gap:40px; }
}
@media (max-width:700px) {
  .map-page main .wrap { width:calc(100% - 40px); }
  .map-hero__layout { grid-template-columns:1fr; padding-block:36px; gap:0; }
  .map-hero__purpose { display:none; }
  .map-page .map-hero h1 { max-width:14ch; font-size:clamp(2.5rem,9.7vw,3.6rem); margin-bottom:20px; }
  .map-page .map-hero__intro { font-size:1rem; margin-bottom:22px; }
  .map-page .map-hero__statement { font-size:1.2rem; }
  .map-section-nav .wrap { gap:8px 24px; flex-wrap:wrap; padding-block:8px; }
  .map-section-nav a { font-size:.8rem; min-height:44px; }
  .map-section-nav a:first-child { flex-basis:100%; }
  .map-section-nav a:first-child > span:last-child { margin-left:auto; }
  .map-section { padding-block:48px; }
  .map-section-heading { grid-template-columns:1fr; gap:20px; margin-bottom:30px; }
  .map-vacancy { grid-template-columns:24px minmax(0,1fr); gap:12px 14px; padding-block:26px; }
  .map-page .map-vacancy h3 { font-size:1.4rem; }
  .map-vacancy__description,.map-vacancy > a { grid-column:2; }
  .map-other { grid-template-columns:1fr; gap:12px; }
  .map-other > a { justify-self:start; }
  .map-member { grid-template-columns:1fr; gap:24px; padding-top:28px; }
  .map-member__portrait { width:200px; }
  .map-extra-members { grid-template-columns:1fr; }
  .map-work { grid-template-columns:1fr; gap:28px; margin-top:32px; }
  .map-invitation__layout { grid-template-columns:1fr; gap:36px; }
  .map-application { border-left:0; border-top:1px solid #dfcdd5; padding:30px 0 0; }
}
@media (prefers-reduced-motion:reduce) {
  .map-page main *, .map-page main *::before, .map-page main *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
/* Let the shared support link wrap when readers enlarge their text. */
.map-page .public-header-support a { max-width:100%; flex-shrink:1; }
