:root{--navy:#0D1B40;--navy2:#1A2E5E;--teal:#0A6E6E;--gold:#C9933A;--gold2:#E8B95A;--paper:#F7FAF9;--ink:#1A2C2C;--muted:#4A6060;--line:#DDE7E5}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter','Segoe UI',system-ui,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.75;overflow-x:hidden}
a{color:var(--teal);text-decoration:none}
a:hover{color:var(--navy)}
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--navy)}
.brand img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.nlinks{display:flex;align-items:center;gap:14px;font-size:.84rem;font-weight:800;color:var(--muted)}
.nlinks a{color:var(--muted)}
.nlinks .cta{background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);border-radius:999px;padding:8px 14px}
.wrap{max-width:760px;margin:0 auto;padding:0 18px}
.wrap-wide{max-width:1080px;margin:0 auto;padding:0 18px}
.crumb{font-size:.78rem;color:var(--muted);padding:22px 0 0}
.crumb a{color:var(--teal)}
.lib-hero{background:var(--navy);color:#fff;padding:84px 18px 76px;position:relative;overflow:hidden}
.lib-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% -10%,rgba(10,110,110,.45),transparent 60%),radial-gradient(40% 60% at 88% 120%,rgba(201,147,58,.18),transparent 60%);pointer-events:none}
.lib-hero .wrap-wide{text-align:center;position:relative;max-width:760px}
.eyebrow{display:inline-block;color:var(--gold2);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:2.5px;margin-bottom:18px}
.lib-hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(2rem,4.6vw,3rem);line-height:1.12;letter-spacing:-.5px;margin-bottom:16px}
.lib-hero p{color:rgba(255,255,255,.72);max-width:580px;margin:0 auto;font-size:1.02rem}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:56px 0;box-shadow:none}
.acard{display:flex;flex-direction:column;background:#fff;border:0;border-radius:0;padding:32px 30px;transition:background .2s,transform .2s}
.acard:hover{background:#FCFEFE;transform:none}
.acard .k{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:1.4px;color:#8a6a1e}
article p a,article li a,.lead a,.faq-item p a{text-decoration:underline}
.acard h2{font-family:Georgia,serif;font-weight:700;font-size:1.22rem;color:var(--navy);margin:12px 0 10px;line-height:1.28;letter-spacing:-.2px}
.acard p{font-size:.9rem;color:var(--muted);flex:1}
.acard .read{margin-top:18px;font-size:.78rem;font-weight:800;color:var(--teal);transition:letter-spacing .2s}
.acard:hover .read{letter-spacing:.3px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
article{padding:6px 0 10px}
article h1{font-family:Georgia,serif;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.18;color:var(--navy);margin:14px 0 10px}
.meta{font-size:.8rem;color:var(--muted);margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}
article h2{font-size:1.3rem;color:var(--navy);margin:30px 0 10px;font-family:Georgia,serif}
article h3{font-size:1.05rem;color:var(--navy);margin:22px 0 8px}
article p{margin:0 0 18px;color:var(--ink);font-size:1.05rem;line-height:1.8}
article ul,article ol{margin:0 0 16px 22px}
article li{margin:0 0 8px;color:var(--ink)}
article strong{color:var(--navy)}
.lead{font-size:1.1rem;color:var(--muted);line-height:1.7}
.takeaway{background:linear-gradient(135deg,#FFF8EC,#F4FAFA);border:1px solid rgba(201,147,58,.24);border-radius:16px;padding:20px 22px;margin:24px 0}
.takeaway b{display:block;color:var(--gold);font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}
.takeaway ul{margin:0 0 0 20px}
.note{background:var(--paper);border-left:4px solid var(--teal);border-radius:0 12px 12px 0;padding:14px 18px;margin:20px 0;font-size:.92rem;color:var(--muted)}
table.cmp{width:100%;border-collapse:collapse;margin:18px 0;font-size:.9rem}
table.cmp th,table.cmp td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
table.cmp th{background:var(--paper);color:var(--navy);font-weight:800}
/* These tables carry four columns of prose, which cannot fit a phone. body
   sets overflow-x:hidden, so without this the right-hand columns are silently
   clipped rather than reachable — let the table scroll inside itself instead,
   and hint that it does with a fade on the right edge. */
@media(max-width:760px){
  table.cmp{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;
    background:linear-gradient(90deg,#fff 30%,hsla(0,0%,100%,0)),
      linear-gradient(90deg,hsla(0,0%,100%,0),#fff 70%) 100% 0,
      radial-gradient(farthest-side at 0 50%,rgba(13,27,64,.14),transparent),
      radial-gradient(farthest-side at 100% 50%,rgba(13,27,64,.14),transparent) 100% 0;
    background-repeat:no-repeat;background-size:36px 100%,36px 100%,14px 100%,14px 100%;
    background-attachment:local,local,scroll,scroll}
  table.cmp th,table.cmp td{min-width:148px}
}
.cta-box{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:18px;padding:40px 28px;text-align:center;margin:48px 0}
.cta-box h3{font-family:Georgia,serif;color:var(--navy);font-size:1.4rem;margin-bottom:10px}
.cta-box p{color:var(--muted);max-width:540px;margin:0 auto 22px;font-size:.96rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:999px;padding:13px 26px;font-weight:800;font-size:.9rem}
.btn.gold{background:var(--gold);color:#fff;box-shadow:none;transition:background .2s}
.btn.gold:hover{background:#b5832e;color:#fff}
a.btn:focus-visible,.acard:focus-visible,.nlinks a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.btn.ghost{border:1px solid rgba(255,255,255,.3);color:#fff;margin-left:8px}
.related{border-top:1px solid var(--line);margin-top:40px;padding:28px 0}
.related h2{font-size:1.1rem;color:var(--navy);margin-bottom:14px;font-family:inherit}
.related a{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-weight:700;color:var(--navy)}
.related a:hover{color:var(--teal)}
footer.foot{background:var(--navy);color:rgba(255,255,255,.72);padding:30px 18px;text-align:center;font-size:.84rem;margin-top:20px}
footer.foot a{color:var(--gold2)}
@media(max-width:760px){.cards{grid-template-columns:1fr}.nlinks a:not(.cta){display:none}}

/* ═══ Rich article pages — generated profiles, guides & comparisons ═══════════
   An on-brand navy hero band plus small inline-SVG / CSS infographics. Everything
   here is scoped to new .ar-* / hero-* / sal-* / vs-* / sec-ic classes, so the
   plain hand-authored articles that don't use them render exactly as before. */
.ar-hero{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding:4px 0 38px}
.ar-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 80% at 8% -12%,rgba(10,110,110,.5),transparent 60%),radial-gradient(48% 72% at 100% 116%,rgba(201,147,58,.22),transparent 60%);pointer-events:none}
.ar-hero .wrap{position:relative;z-index:2}
.ar-hero .crumb{color:rgba(255,255,255,.58);padding:20px 0 0}
.ar-hero .crumb a{color:var(--gold2)}
.ar-glyph{font-size:2.7rem;line-height:1;margin:18px 0 2px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}
.ar-art{display:block;width:108px;height:108px;margin:16px 0 4px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.3))}
.ar-eyebrow{display:inline-block;color:var(--gold2);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:2px;margin:12px 0 12px}
.ar-hero h1{font-family:Georgia,serif;font-weight:700;color:#fff;font-size:clamp(1.8rem,4.2vw,2.6rem);line-height:1.15;letter-spacing:-.4px;margin:0 0 12px;padding:0;border:0}
.ar-meta{font-size:.76rem;color:rgba(255,255,255,.5);margin:0 0 14px;letter-spacing:.2px}
.ar-lead{font-size:1.08rem;color:rgba(255,255,255,.84);line-height:1.62;max-width:650px;margin:0}
.ar-deco{position:absolute;right:-30px;top:0;height:100%;width:auto;opacity:.13;z-index:1;pointer-events:none;color:#fff}
@media(max-width:860px){.ar-deco{right:-110px;opacity:.07}}

.hero-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:26px;max-width:600px}
.hero-facts .hf{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:13px 8px;text-align:center}
.hero-facts .hf b{display:block;color:var(--gold2);font-size:.9rem;font-weight:800;line-height:1.25;margin-bottom:4px}
.hero-facts .hf span{font-size:.57rem;text-transform:uppercase;letter-spacing:.4px;color:rgba(255,255,255,.6);font-weight:800}
@media(max-width:560px){.hero-facts{grid-template-columns:1fr 1fr}}

.vs-head{display:flex;align-items:stretch;justify-content:center;gap:12px;margin-top:28px;max-width:600px}
.vs-side{flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:16px 12px;font-weight:800;color:#fff;font-size:1rem;line-height:1.25;display:flex;align-items:center;justify-content:center;text-align:center}
.vs-badge{align-self:center;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.85rem;flex:none;box-shadow:0 8px 20px rgba(201,147,58,.45)}

article h2 .sec-ic{display:inline-block;margin-right:9px;font-size:1.02em;vertical-align:-1px}

.sal-ladder{margin:18px 0 6px}
.sal-cap{font-size:.76rem;color:var(--muted);margin:2px 0 18px}
.sal-rung{margin:0 0 15px}
.sal-rung .sr-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.sal-rung .sr-stage{font-weight:700;color:var(--navy);font-size:.92rem}
.sal-rung .sr-pay{font-weight:800;color:var(--teal);font-size:.92rem;white-space:nowrap}
.sal-rung .sr-track{height:13px;border-radius:999px;background:var(--paper);border:1px solid var(--line);overflow:hidden}
.sal-rung .sr-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--gold2))}

/* Optional profession photo banner — present only when images/professions/<slug>.jpg
   exists (populated by tools/fetch-profession-photos.mjs), so pages without a photo are
   unaffected. Breaks out a little wider than the text column for an editorial feel. */
.ar-photo{max-width:1080px;margin:26px auto 6px;padding:0 18px}
.ar-photo img{width:100%;height:320px;object-fit:cover;border-radius:18px;display:block;box-shadow:0 18px 40px rgba(13,27,64,.16)}
.ar-photo figcaption{font-size:.72rem;color:var(--muted);text-align:right;margin-top:6px}
.ar-photo figcaption a{color:var(--muted)}
@media(max-width:600px){.ar-photo img{height:210px}}
