/* Public materials library (/resources/library) — inside the public site shell. Content track. No inline styles. */
.lib-main { display:block; background:#f4f7fc; color:#14213d; padding-bottom:40px; }
.lib-wrap { max-width:1260px; margin:0 auto; padding:0 28px; }
.lib-main a { color:#02216d; }
.lib-main h2 { color:#02216d; font-size:clamp(1.45rem,2.2vw,1.9rem); letter-spacing:-.02em; margin:0 0 14px; }
.lib-main h3 { color:#02216d; }
.lib-hero { background-color:var(--navy,#02216d); background-image:var(--hex-tex),linear-gradient(115deg,var(--navy,#02216d),var(--navy-abyss,#000e30)); color:#fff; padding:48px 0 52px; }
.lib-hero .home-eyebrow { color:var(--gold,#f8a71b); }
.lib-hero h1 { color:#fff; font-size:clamp(2rem,3.3vw,3.1rem); font-weight:800; letter-spacing:-.03em; line-height:1.1; margin:12px 0 16px; max-width:760px; }
.lib-hero .site-lede { color:#d8e3f6; }
.lib-hero a { color:#fff; }
.lib-hero-slim { padding:40px 0 42px; }
.lib-hero-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:44px; align-items:center; }
.lib-hero-art img { display:block; width:100%; height:auto; border-radius:16px; box-shadow:0 18px 40px #01174755; }
.lib-stats { list-style:none; display:flex; flex-wrap:wrap; gap:12px 28px; margin:22px 0 0; padding:18px 0 0; border-top:1px solid #ffffff2a; color:#cbd9f3; font-size:.9rem; }
.lib-stats b { font-family:var(--font-display,"Goldman",sans-serif); font-size:1.5rem; color:#fff; margin-right:6px; }
.lib-section { padding:34px 0 6px; }
.lib-count { display:inline-block; min-width:2em; text-align:center; font-size:.8rem; vertical-align:middle; background:#02216d; color:#fff; border-radius:999px; padding:3px 10px; margin-left:8px; }
/* start-here bundles */
.lib-bundles { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.lib-bundle { display:grid; grid-template-columns:44px 1fr; gap:4px 14px; height:100%; padding:18px; background:#fff; border:1px solid #d6dfef; border-radius:14px; text-decoration:none; color:#14213d; box-shadow:0 2px 0 #02216d0d; }
.lib-bundle:hover, .lib-bundle:focus-visible { border-color:#02216d; box-shadow:0 8px 22px #01174717; }
.lib-bundle-ic { grid-row:span 3; width:44px; height:44px; border-radius:12px; background:#02216d; color:#f8a71b; display:flex; align-items:center; justify-content:center; }
.lib-bundle-ic svg { width:24px; height:24px; }
.lib-bundle strong { color:#02216d; font-family:var(--font-heading,"Raleway",sans-serif); font-size:1.02rem; line-height:1.25; }
.lib-bundle span:not(.lib-bundle-ic) { font-size:.86rem; line-height:1.5; color:#34435b; }
.lib-bundle em { font-style:normal; font-size:.75rem; font-weight:700; color:#7a4a00; text-transform:uppercase; letter-spacing:.08em; }
/* browse chips */
.lib-browse-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.lib-browse-grid h3 { font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; color:#34435b; margin:0 0 10px; }
.lib-chips { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; }
.lib-chips a, .lib-chips-static li { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 14px; border-radius:999px; background:#fff; border:1px solid #c9d5ea; text-decoration:none; font-size:.84rem; font-weight:600; color:#02216d; }
.lib-chips a span { font-size:.72rem; background:#e8eef9; border-radius:999px; padding:2px 7px; color:#14213d; }
.lib-chips a:hover, .lib-chips a:focus-visible { border-color:#02216d; background:#eef3fc; }
.lib-chips-static li { min-height:0; padding:6px 12px; }
/* filters */
.lib-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; background:#fff; border:1px solid #d6dfef; border-radius:14px; padding:16px; margin-bottom:18px; }
.lib-filters label { display:flex; flex-direction:column; gap:5px; font-size:.78rem; font-weight:700; color:#34435b; }
.lib-filters .lib-q { flex:1 1 260px; }
.lib-filters input, .lib-filters select { min-height:44px; border:1px solid #9fb0cc; border-radius:8px; padding:8px 12px; font:inherit; font-size:.92rem; font-weight:400; color:#14213d; background:#fff; }
.lib-filters .home-button { min-height:44px; background:#02216d; color:#fff; border:0; cursor:pointer; font:inherit; font-weight:700; }
.lib-filters .home-text-link, .lib-actions .home-text-link, .lib-link { color:#02216d; border-bottom:1px solid #19a8dd; padding-bottom:3px; text-decoration:none; font-weight:700; font-size:.88rem; align-self:center; }
/* cards */
.lib-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.lib-grid-compact { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
.lib-card { display:flex; flex-direction:column; background:#fff; border:1px solid #d6dfef; border-radius:14px; overflow:hidden; }
.lib-card-media { display:block; background:#e9eef7; padding:14px 14px 0; border-bottom:1px solid #d6dfef; height:230px; overflow:hidden; }
.lib-thumb { display:block; width:100%; height:auto; border-radius:6px 6px 0 0; box-shadow:0 2px 10px #01174722; }
.lib-thumb-empty { display:flex; align-items:center; justify-content:center; height:100%; color:#02216d; }
.lib-thumb-empty svg { width:48px; height:48px; }
.lib-card-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.lib-kicker { margin:0; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#7a4a00; }
.lib-card h3 { margin:0; font-size:1.05rem; line-height:1.3; }
.lib-card h3 a { text-decoration:none; }
.lib-card h3 a:hover, .lib-card h3 a:focus-visible { text-decoration:underline; }
.lib-card p { margin:0; font-size:.86rem; line-height:1.55; color:#34435b; }
.lib-meta { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:auto 0 0; padding:0; }
.lib-meta li { font-size:.72rem; background:#eef3fc; color:#14213d; border-radius:6px; padding:3px 8px; }
.lib-pick { display:flex; align-items:center; gap:8px; min-height:44px; font-size:.85rem; font-weight:700; color:#02216d; border-top:1px dashed #d6dfef; padding-top:8px; cursor:pointer; }
.lib-pick input { width:20px; height:20px; accent-color:#02216d; }
.lib-empty { background:#fff; border:1px dashed #9fb0cc; border-radius:12px; padding:22px; }
/* pack form */
.lib-pack { position:sticky; bottom:12px; z-index:5; display:flex; flex-wrap:wrap; gap:14px 20px; align-items:center; justify-content:space-between; margin:26px 0 0; padding:16px 20px; border-radius:14px; background:#011747; color:#e4edfc; box-shadow:0 10px 30px #01174740; }
.lib-pack h2 { color:#fff; font-size:1.15rem; margin:0 0 4px; }
.lib-pack p { margin:0; font-size:.84rem; max-width:620px; color:#d8e3f6; }
.lib-pack b { color:#fff; }
.lib-pack label { display:flex; flex-direction:column; gap:4px; font-size:.75rem; font-weight:700; color:#d8e3f6; }
.lib-pack select { min-height:44px; border-radius:8px; border:0; padding:8px 10px; font:inherit; color:#14213d; }
.lib-pack .home-button { border:0; cursor:pointer; font:inherit; font-weight:700; min-height:44px; }
.lib-pack svg, .lib-actions svg, .lib-hero .home-button svg { width:18px; height:18px; }
.lib-print ul, .lib-inside, .lib-sources { padding-left:20px; line-height:1.7; }
.lib-print { background:#fff; border:1px solid #d6dfef; border-radius:14px; padding:22px 24px; margin-top:28px; }
/* item page */
.lib-item-hero { background:#fff; border-bottom:1px solid #d6dfef; padding:36px 0 40px; }
.lib-item-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:48px; align-items:start; }
.lib-item-copy h1 { color:#02216d; font-size:clamp(1.8rem,3vw,2.7rem); letter-spacing:-.025em; line-height:1.12; margin:10px 0 14px; }
.lib-item-copy .site-lede { color:#24324a; }
.lib-item-copy .home-eyebrow { color:#7a4a00; }
.lib-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0; margin:22px 0; border:1px solid #d6dfef; border-radius:12px; overflow:hidden; }
.lib-facts div { padding:10px 14px; border-right:1px solid #d6dfef; border-bottom:1px solid #d6dfef; }
.lib-facts dt { font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; font-weight:700; color:#34435b; }
.lib-facts dd { margin:3px 0 0; font-weight:700; color:#02216d; font-size:.92rem; }
.lib-actions { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; }
.lib-actions .home-button:not(.home-button-gold) { background:#02216d; color:#fff; }
.lib-cover { display:block; width:100%; height:auto; border-radius:8px; box-shadow:0 14px 34px #01174730; border:1px solid #d6dfef; }
.lib-gallery { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }
.lib-gallery img { width:100%; height:auto; border:1px solid #d6dfef; border-radius:6px; background:#fff; }
.lib-table-wrap { overflow-x:auto; background:#fff; border:1px solid #d6dfef; border-radius:12px; }
.lib-files { width:100%; border-collapse:collapse; font-size:.88rem; }
.lib-files th { text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:#34435b; padding:10px 14px; border-bottom:2px solid #02216d; }
.lib-files td { padding:10px 14px; border-bottom:1px solid #e3e9f4; }
.lib-files a { font-weight:700; display:inline-block; min-height:24px; }
@media (max-width:980px) { .lib-bundles { grid-template-columns:repeat(2,minmax(0,1fr)); } .lib-browse-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) {
  .lib-wrap { padding:0 16px; }
  .lib-hero-grid, .lib-item-grid { grid-template-columns:1fr; gap:24px; }
  .lib-bundles, .lib-browse-grid { grid-template-columns:1fr; }
  .lib-item-cover { max-width:320px; }
  .lib-pack { position:static; }
}
.lib-hero a.home-button-gold { color:#011747; }
.lib-files { min-width:560px; }
