/* Programs & Services extends the shared site without another component system. */
.services-hero { padding-block: 72px 60px; }
.services-intro { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 100px; }
.services-intro h1 { font-size: clamp(52px, 5.8vw, 84px); line-height: 1.06; letter-spacing: -.03em; }
.services-intro p { max-width: 45ch; color: var(--muted); font-size: 18px; line-height: 1.8; }
.services-page-links { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 24px; }
.featured-offers { padding-bottom: 100px; }
.offer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.offer { display: flex; flex-direction: column; min-width: 0; }
.offer > img { width: 100%; height: auto; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.offer h2 { margin-top: 26px; font-size: 28px; line-height: 1.25; letter-spacing: -.02em; }
.offer p { margin-top: 18px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.offer-action { margin-top: auto; padding-top: 26px; }
.offer-action .button { justify-content: space-between; width: 100%; gap: 16px; }
.current-programs { background: var(--surface); }
.programs-heading { display: grid; grid-template-columns: 1fr .7fr; gap: 80px; align-items: center; margin-bottom: 44px; }
.programs-heading h2 { font-size: clamp(38px, 3.8vw, 54px); }
.programs-heading p { margin-top: 20px; color: var(--muted); font-size: 16px; max-width: 46ch; }
.programs-heading img { width: 100%; height: 190px; object-fit: cover; object-position: center 46%; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.program-directory { border-top: 1px solid var(--line); }
.program-link { display: grid; grid-template-columns: 156px 1fr auto; align-items: center; gap: 32px; padding-block: 24px; border-bottom: 1px solid var(--line); }
.program-link img { width: 100%; height: auto; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.program-name { font: 500 25px/1.3 var(--display); letter-spacing: -.015em; }
.program-link > span:last-child { display: inline-flex; align-items: center; gap: 24px; font-size: 14px; font-weight: 500; }
.program-link:hover, .program-link:focus-visible { background: #edf2f9; }
.program-link:hover .program-name, .program-link:focus-visible .program-name { text-decoration: underline; text-underline-offset: 6px; }
.publishing-intro { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 100px; }
.publishing-copy h2 { font-size: clamp(40px, 4vw, 58px); line-height: 1.1; }
.publishing-copy > p { margin-top: 24px; color: var(--muted); font-size: 16px; line-height: 1.85; }
.publishing-copy > .publishing-lead { font-size: 20px; color: var(--ink); line-height: 1.6; }
.publishing-copy .text-link { margin-top: 24px; }
.publishing-photo { min-width: 0; }
.publishing-photo img { width: 100%; height: auto; aspect-ratio: 1.28; object-fit: cover; object-position: right; }
.publishing-photo figcaption { margin-top: 18px; font-size: 13px; color: var(--muted); }
.publishing-path { padding-top: 0; }
.publishing-path-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; padding-top: 70px; border-top: 1px solid var(--line); }
.publishing-path-heading h2 { font-size: clamp(36px, 3.3vw, 48px); line-height: 1.15; }
.publishing-path-heading img { width: 100%; height: auto; aspect-ratio: 1.5; object-fit: cover; object-position: left; margin-top: 32px; }
.publishing-path-copy p { color: var(--muted); font-size: 16px; line-height: 1.85; max-width: 68ch; }
.publishing-path-copy p + p { margin-top: 22px; }
.publishing-path-copy .button { margin-top: 32px; }
@media (max-width: 1100px) {
  .services-intro, .publishing-intro, .publishing-path-layout { gap: 60px; }
  .offer-grid { gap: 24px; }
  .programs-heading { gap: 60px; }
  .offer h2 { font-size: 25px; }
}
@media (max-width: 900px) {
  .services-hero { padding-block: 44px; }
  .services-intro, .publishing-intro, .publishing-path-layout { gap: 36px; }
  .services-intro p { font-size: 16px; }
  .featured-offers { padding-bottom: 70px; }
  .offer-grid { grid-template-columns: 1fr; gap: 40px; }
  .offer { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; align-items: start; }
  .offer > img { grid-column: 1; grid-row: 1 / 4; }
  .offer h2 { grid-column: 2; margin-top: 0; }
  .offer p, .offer-action { grid-column: 2; }
  .programs-heading { gap: 36px; }
  .program-link { grid-template-columns: 128px 1fr auto; gap: 24px; }
  .program-name { font-size: 22px; }
  .publishing-copy > .publishing-lead { font-size: 18px; }
}
@media (max-width: 680px) {
  .services-intro, .publishing-intro, .publishing-path-layout { grid-template-columns: 1fr; gap: 28px; }
  .services-intro h1 { font-size: clamp(48px, 10.5vw, 68px); }
  .services-page-links { gap: 8px 24px; margin-top: 18px; }
  .offer { display: flex; }
  .offer h2 { margin-top: 24px; font-size: 28px; }
  .offer-grid { gap: 48px; }
  .featured-offers { padding-bottom: 60px; }
  .programs-heading { grid-template-columns: 1fr; gap: 28px; margin-bottom: 32px; }
  .programs-heading img { height: 180px; }
  .program-link { grid-template-columns: 96px 1fr; gap: 12px 20px; padding-block: 22px; }
  .program-link img { grid-row: 1 / 3; }
  .program-name { font-size: 21px; }
  .program-link > span:last-child { grid-column: 2; gap: 16px; }
  .publishing-photo { max-width: 520px; width: 100%; margin-top: 12px; }
  .publishing-path-layout { padding-top: 44px; }
  .publishing-path-heading img { max-width: 420px; }
  .publishing-path-copy .button { width: 100%; gap: 18px; }
}
