/* Editorial layout scoped to the library, without changing the approved menu. */
.library-page { background: #fafbf8; font-family: var(--font-text); -webkit-font-smoothing: antialiased; }
.library-page main { overflow: clip; }
.library-page h1, .library-page h2, .library-page h3 { font-family: var(--font-display); }
.library-page .library-button { border-radius: 8px; gap: 18px; transition: background .18s ease; }
.library-page .library-button:hover { background: #0e4c42; }
.library-page .library-kicker { font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: .14em; }
.library-editorial-hero { background: linear-gradient(145deg, #b4e1e3, #e7f3ed); }
.library-editorial-hero__inner { width: min(100%, 1352px); margin: 0 auto; padding: 38px 2.35rem 76px; }
.library-editorial-hero__copy { max-width: 900px; margin-inline: auto; padding: 12px 0; text-align: center; }
.library-editorial-hero h1 { max-width: 760px; margin: 22px auto; font-size: clamp(40px, 4.4vw, 64px); font-weight: 600; line-height: 1.04; letter-spacing: -.055em; }
.library-editorial-hero h1 span { display: block; color: #146052; }
.library-editorial-hero__copy > p { max-width: 540px; margin: 24px auto; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.65; color: #32595e; }
.library-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px; margin-top: 32px; font-size: 14px; }
.library-text-link { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; text-decoration: none; }
.library-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.library-editorial-note { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin-top: 34px; color: #32595e; font-size: 12px; }
.library-editorial-note a { text-underline-offset: 3px; }
.library-catalog--editorial { position: relative; max-width: 1352px; padding: 0 2.35rem 60px; scroll-margin-top: 30px; }
.library-search--editorial { position: relative; margin-top: -28px; padding: 26px 30px 30px; border: 1px solid #d7e3de; border-radius: 14px; box-shadow: 0 12px 32px #163f4908; }
.library-search--editorial label { font-size: 16px; margin-bottom: 14px; }
.library-search--editorial > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 210px) auto; align-items: stretch; gap: 12px; }
.library-search-field { position: relative; min-width: 0; display: flex; }
.library-search-field svg { position: absolute; top: 50%; left: 16px; transform: translateY(-50%); width: 20px; height: 20px; color: #5b7b76; pointer-events: none; }
.library-search-field input { width: 100%; padding-left: 48px !important; background: #fafcfb !important; font-size: 14px !important; }
.library-search--editorial select { font-size: 14px; padding-right: 28px; }
.library-search--editorial button { font-size: 14px; padding: 13px 24px; }
.library-topics { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; }
.library-topics a { padding: 7px 15px; border: 1px solid #ceded8; border-radius: 30px; font-size: 13px; text-decoration: none; }
.library-topics a:hover { background: #edf6f1; }
.library-topics a[aria-current] { background: #163f49; color: white; border-color: #163f49; }
.library-results--editorial { margin: 52px 0 28px; align-items: end; }
.library-results--editorial h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.15; font-weight: 600; letter-spacing: -.035em; margin: 10px 0; }
.library-results--editorial p { font-size: 14px; margin: 0; color: #586e6c; }
.library-result-count { flex: none; padding: 6px 12px; background: #e9f2ed; border-radius: 30px; color: #42655c; font-size: 12px; white-space: nowrap; }
.library-page .library-card { border-radius: 14px; border-color: #dbe5df; transition: border-color .18s ease, box-shadow .18s ease; }
.library-page .library-card:hover { border-color: #98bcb0; box-shadow: 0 14px 32px #163f490a; }
.library-page .library-card__body { padding: 24px; }
.library-page .library-card h2 { font-weight: 600; font-size: 24px; letter-spacing: -.025em; }
.library-page .library-card__body > p { font-size: 15px; line-height: 1.65; margin-bottom: 28px; }
.library-page .library-card__bottom { flex-wrap: wrap; gap: 12px; }
.library-page .library-card__bottom a { text-underline-offset: 4px; }
.library-page .library-card__cover { background: linear-gradient(135deg, #b4e1e3, #e7f3ed); }
.library-page .library-cover-placeholder { font-size: 22px; color: #146052; opacity: 1; }
.library-empty--editorial { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 28px; padding: 38px; text-align: left; background: #f0f6f1; border: 1px solid #d4e2d7; border-radius: 14px; }
.library-empty__icon { display: grid; place-items: center; width: 80px; height: 80px; border-radius: 50%; background: #dfece1; color: #146052; }
.library-empty__icon svg { width: 34px; height: 34px; }
.library-empty--editorial h3 { font-size: clamp(22px, 2.4vw, 29px); font-weight: 600; letter-spacing: -.035em; line-height: 1.2; margin: 10px 0 12px; }
.library-empty--editorial p { max-width: 650px; font-size: 15px; color: #586e6c; margin: 0 0 22px; }
.library-access-guide { max-width: 1352px; padding: 8px 2.35rem 64px; margin: auto; scroll-margin-top: 30px; }
.library-access-guide__heading { padding-top: 36px; border-top: 1px solid #dbe5df; }
.library-access-guide h2 { margin: 10px 0 16px; font-size: clamp(28px, 3vw, 38px); line-height: 1.15; font-weight: 600; letter-spacing: -.035em; }
.library-access-guide__heading > p { color: #586e6c; font-size: 15px; max-width: 580px; }
.library-access-guide ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; padding: 0; margin: 38px 0 0; list-style: none; }
.library-access-guide li { border-top: 1px solid #c9dcd1; padding-top: 18px; }
.library-access-guide li > span { font-size: 13px; font-weight: 600; color: #146052; }
.library-access-guide h3 { margin: 16px 0 10px; font-size: 21px; font-weight: 600; letter-spacing: -.025em; line-height: 1.25; }
.library-access-guide li p { margin: 0; color: #586e6c; font-size: 14px; line-height: 1.7; }
.library-page .library-footer { margin-top: 0; padding: 36px max(2.35rem, calc((100vw - 1277px) / 2)); }
.library-page .library-footer a { text-underline-offset: 4px; }
.library-page .library-article-head h1 { font-weight: 600; }
.library-page .library-article-aside h2 { font-weight: 600; }
.library-page .library-prose { line-height: 1.8; }
@media (max-width: 900px) {
  .library-editorial-hero h1 { font-size: 44px; }
  .library-hero-actions { gap: 16px; }
  .library-search--editorial > div { grid-template-columns: minmax(0, 1fr) auto; }
  .library-search-field { grid-column: 1 / -1; }
  .library-access-guide ol { gap: 24px; }
}
@media (max-width: 639px) {
  .library-editorial-hero__inner { padding: 18px 22px 58px; }
  .library-editorial-hero h1 { font-size: clamp(36px, 10.5vw, 52px); margin: 16px auto; }
  .library-editorial-hero__copy > p { margin: 18px auto; font-size: 16px; }
  .library-hero-actions { margin-top: 24px; gap: 18px; }
  .library-editorial-note { margin-top: 24px; font-size: 11px; }
  .library-catalog--editorial { padding: 0 22px 40px; scroll-margin-top: 24px; }
  .library-search--editorial { padding: 22px 18px; margin-top: -24px; }
  .library-search--editorial label { font-size: 15px; }
  .library-search--editorial > div { gap: 10px; }
  .library-search--editorial select { width: 100%; font-size: 16px; }
  .library-search--editorial button { padding: 13px 16px; gap: 10px; }
  .library-search-field input { font-size: 16px !important; padding-left: 40px !important; }
  .library-search-field svg { left: 12px; width: 18px; height: 18px; }
  .library-results--editorial { margin-top: 36px; flex-wrap: wrap; gap: 14px; }
  .library-results--editorial .library-kicker { font-size: 10px; }
  .library-empty--editorial { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 26px 24px; }
  .library-empty__icon { width: 56px; height: 56px; }
  .library-empty__icon svg { width: 26px; height: 26px; }
  .library-empty--editorial p { font-size: 14px; }
  .library-access-guide { padding: 0 22px 48px; }
  .library-access-guide ol { grid-template-columns: minmax(0, 1fr); gap: 26px; margin-top: 28px; }
  .library-access-guide__heading { padding-top: 30px; }
  .library-access-guide h3 { margin-top: 10px; }
  .library-page .library-footer { padding: 30px 22px; align-items: start; gap: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .library-page .library-button, .library-page .library-card { transition: none; }
}
