/* Individual occupations: scoped, no changes to directory/provider layouts. */
.aov-occupation { background: #fff; }
.aov-occupation .aov-occupation__hero { padding-bottom: 2.75rem; }
.aov-occupation__hero-grid { display: grid; gap: clamp(1.5rem,4vw,4rem); align-items: center; }
.aov-occupation__hero-grid--media { grid-template-columns: minmax(0,1fr) minmax(16rem,24rem); }
.aov-occupation__intro { min-width: 0; }
.aov-occupation h1 { max-width: 65rem; margin: 0 0 1.25rem; font-size: clamp(1.95rem,2.8vw,3.15rem); line-height: 1.14; letter-spacing: -0.035em; hyphens: auto; overflow-wrap: anywhere; }
.aov-occupation .aov-occupation__lead { max-width: 49rem; margin: 0 0 1.6rem; font-size: 1.08rem; line-height: 1.7; color: hsl(var(--muted-foreground)); }
.aov-occupation__actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.aov-occupation__media { margin: 0; width: 100%; max-width: 24rem; justify-self: end; }
.aov-occupation .aov-occupation__image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 40%; border-radius: 1.1rem; box-shadow: 0 14px 38px rgba(15,23,42,.09); }
.aov-occupation__media figcaption { margin-top: .6rem; font-size: .72rem; color: hsl(var(--muted-foreground)); }
.aov-occupation__jumps { border-bottom: 1px solid hsl(var(--border)); background: #fff; }
.aov-occupation__jumps > div { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; padding-top: .6rem; padding-bottom: .6rem; }
.aov-occupation__jumps a { padding: .5rem 0; font-size: .85rem; font-weight: 600; color: hsl(var(--muted-foreground)); text-decoration: none; }
.aov-occupation__jumps a:hover { color: hsl(var(--primary)); }
.aov-occupation__section { padding: clamp(2.5rem,4vw,4rem) 0; scroll-margin-top: 7.5rem; }
.aov-occupation__section--soft { background: hsl(var(--muted) / .58); }
.aov-occupation__section-head { margin-bottom: 1.5rem; max-width: 58rem; }
.aov-occupation h2 { font-size: clamp(1.6rem,2.3vw,2.25rem); line-height: 1.22; letter-spacing: -.025em; margin-bottom: .8rem; overflow-wrap: anywhere; }
.aov-occupation h3 { font-size: 1.05rem; line-height: 1.4; margin-bottom: .85rem; }
.aov-occupation__section-head > p:last-child:not(.aov-home-eyebrow) { margin: 0; color: hsl(var(--muted-foreground)); line-height: 1.7; }
.aov-occupation__work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.aov-occupation__work-grid--single { grid-template-columns: minmax(0,1fr); }
.aov-occupation__work-card { padding: 1.5rem; border: 1px solid hsl(var(--border)); border-radius: 1rem; }
.aov-occupation__work-card ul { list-style: disc; padding-left: 1.1rem; margin: 0; color: hsl(var(--muted-foreground)); font-size: .95rem; line-height: 1.7; }
.aov-occupation__work-card li + li { margin-top: .45rem; }
.aov-occupation__work-card li::marker { color: hsl(var(--primary)); }
.aov-occupation__work-card:nth-child(2) li::marker { color: hsl(var(--secondary)); }
.aov-occupation__risk-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; align-items: start; }
.aov-occupation__risk { min-width: 0; background: #fff; border: 1px solid hsl(var(--border)); border-radius: .85rem; }
.aov-occupation__risk summary, .aov-occupation__load summary { position: relative; cursor: pointer; list-style: none; padding: 1.15rem 3rem 1.15rem 1.1rem; font-weight: 600; font-size: .94rem; line-height: 1.5; }
.aov-occupation summary::-webkit-details-marker { display: none; }
.aov-occupation__risk summary::after, .aov-occupation__load summary::after { content: '+'; position: absolute; right: 1.1rem; top: 1rem; color: hsl(var(--primary)); font-size: 1.15rem; }
.aov-occupation details[open] > summary::after { content: '−'; }
.aov-occupation__risk summary:hover { color: hsl(var(--primary)); }
.aov-occupation__risk > div { padding: 0 1.1rem 1.1rem; font-size: .9rem; line-height: 1.7; }
.aov-occupation__risk p { color: hsl(var(--muted-foreground)); margin-bottom: 1rem; }
.aov-occupation__risk a { color: hsl(var(--primary)); text-decoration: underline; }
.aov-occupation .aov-occupation__risk-meta { font-size: .8rem; }
.aov-occupation__load { margin-top: 1.4rem; border-top: 1px solid hsl(var(--border)); }
.aov-occupation__load summary { padding-left: 0; color: hsl(var(--muted-foreground)); font-size: .85rem; }
.aov-occupation__load > div { padding-bottom: .5rem; max-width: 65rem; }
.aov-occupation__load p { font-size: .85rem; line-height: 1.7; color: hsl(var(--muted-foreground)); }
.aov-occupation__load dl { display: flex; flex-wrap: wrap; gap: .8rem 2rem; margin: 1rem 0 0; font-size: .85rem; }
.aov-occupation__load dl > div { display: flex; gap: .65rem; }
.aov-occupation__load dt { font-weight: 600; }
.aov-occupation__load dd { margin: 0; color: hsl(var(--muted-foreground)); }
.aov-occupation__reading-grid { max-width: 72rem; margin: 0 auto; }
.aov-occupation__reading-grid--aside { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); gap: clamp(2rem,4vw,4rem); max-width: none; align-items: start; }
.aov-occupation__prose { min-width: 0; font-size: 1rem; line-height: 1.8; }
.aov-occupation__prose h2 { font-size: clamp(1.4rem,1.8vw,1.8rem); }
.aov-occupation__prose :is(h2,h3,h4):not(:first-child) { margin-top: 1.8rem; }
.aov-occupation__prose p { color: hsl(var(--muted-foreground)); margin-bottom: 1rem; }
.aov-occupation__prose :is(ul,ol) { padding-left: 1.4rem; margin-bottom: 1rem; }
.aov-occupation__prose ul { list-style: disc; }
.aov-occupation__prose ol { list-style: decimal; }
.aov-occupation__prose :is(img,iframe,video) { max-width: 100%; }
.aov-occupation__prose img { height: auto; }
.aov-occupation__prose table { display: block; max-width: 100%; overflow-x: auto; }
.aov-occupation__prose a { overflow-wrap: anywhere; }
.aov-occupation__sources { margin-top: 1.75rem; border-top: 1px solid hsl(var(--border)); font-size: .85rem; }
.aov-occupation__sources summary { position: relative; padding: 1rem 2rem 1rem 0; cursor: pointer; list-style: none; font-weight: 600; }
.aov-occupation__sources summary::after { content: '+'; position: absolute; right: .5rem; color: hsl(var(--primary)); }
.aov-occupation__sources summary:hover { color: hsl(var(--primary)); }
/* Opt-in for the new editorial body only; legacy occupations keep their layout. */
.aov-occupation__reading-grid:has(.aov-occupation__editorial-grid) { grid-template-columns: minmax(0,1fr); }
.aov-occupation__editorial-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(2rem,4vw,4rem); }
.aov-occupation__editorial-grid > section { min-width: 0; }
.aov-occupation__editorial-grid > section > h2:first-child { margin-top: 0; }
.aov-occupation__editorial-grid li + li { margin-top: .65rem; }
.aov-occupation__reading-grid:has(.aov-occupation__editorial-grid) .aov-occupation__reading ul { grid-template-columns: repeat(4,minmax(0,1fr)); }
.aov-occupation__reading-grid:has(.aov-occupation__editorial-grid) .aov-occupation__reading li { display: flex; }
.aov-occupation__reading-grid:has(.aov-occupation__editorial-grid) .aov-occupation__reading a { width: 100%; }
.aov-occupation__reading { min-width: 0; padding: 1.6rem; background: hsl(var(--aov-blue-light)); border: 1px solid hsl(var(--primary) / .15); border-radius: 1rem; }
.aov-occupation__reading h2 { font-size: 1.15rem; line-height: 1.45; }
.aov-occupation__reading p { font-size: .88rem; line-height: 1.7; color: hsl(var(--muted-foreground)); margin-bottom: 1.1rem; }
.aov-occupation__reading ul { display: grid; gap: .65rem; list-style: none; margin: 0; padding: 0; }
.aov-occupation__reading a { display: block; padding: .8rem 1rem; border: 1px solid hsl(var(--border)); border-radius: .65rem; background: #fff; font-size: .9rem; font-weight: 600; line-height: 1.5; color: hsl(var(--foreground)); text-decoration: none; transition: transform 160ms ease, border-color 160ms ease; }
.aov-occupation__reading a:hover { transform: translateY(-2px); border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.aov-occupation__next { padding-top: 1rem; }
.aov-occupation__next-box { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2rem; padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid hsl(var(--primary) / .15); border-radius: 1.1rem; background: linear-gradient(135deg,hsl(var(--aov-blue-light)),#fff 55%,hsl(var(--aov-green-light))); }
.aov-occupation__next-box > div:first-child { max-width: 50rem; }
.aov-occupation__next-box p:last-child { margin-bottom: 0; color: hsl(var(--muted-foreground)); font-size: .95rem; line-height: 1.7; }
.aov-occupation__next-box .aov-occupation__actions { flex-direction: column; align-items: stretch; }
.aov-occupation__footnote { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 2rem; padding-top: 1.5rem; font-size: .75rem; color: hsl(var(--muted-foreground)); }
.aov-occupation__footnote p { margin-bottom: 0; }
.aov-occupation :focus-visible { outline: 3px solid hsl(var(--primary)); outline-offset: 3px; }
@media (max-width: 1099px) {
  .aov-occupation__editorial-grid { grid-template-columns: minmax(0,1fr); }
  .aov-occupation__reading-grid:has(.aov-occupation__editorial-grid) .aov-occupation__reading ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .aov-occupation__hero-grid--media { grid-template-columns: minmax(0,1fr) minmax(14rem,32%); }
  .aov-occupation__risk-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .aov-occupation__reading-grid--aside { grid-template-columns: minmax(0,1fr); }
  .aov-occupation__reading ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .aov-occupation__next-box { grid-template-columns: minmax(0,1fr); }
  .aov-occupation__next-box .aov-occupation__actions { flex-direction: row; }
}
@media (max-width: 759px) {
  .aov-occupation__reading-grid:has(.aov-occupation__editorial-grid) .aov-occupation__reading ul { grid-template-columns: minmax(0,1fr); }
  .aov-occupation__hero-grid--media, .aov-occupation__work-grid, .aov-occupation__risk-grid { grid-template-columns: minmax(0,1fr); }
  .aov-occupation__media { justify-self: start; max-width: 20rem; }
  .aov-occupation__hero-grid { gap: 1.75rem; }
  .aov-occupation .aov-occupation__lead { font-size: 1rem; }
  .aov-occupation__work-card, .aov-occupation__reading { padding: 1.25rem; }
  .aov-occupation__reading ul { grid-template-columns: minmax(0,1fr); }
  .aov-occupation__actions > a { white-space: normal; }
  .aov-occupation__jumps > div { gap: .1rem 1rem; }
}
@media (prefers-reduced-motion: reduce) { .aov-occupation__reading a { transition: none; } .aov-occupation__reading a:hover { transform: none; } }
