/* A cover-led library using the company's original brochures. */
.library .library-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.3fr); gap: 36px; align-items: start; }
.library .featured-brochure { --book-accent: #356ac3; --book-wash: #e7f0ff; --book-glow: #c8e4ff; position: sticky; top: 110px; display: block; min-height: 0; border: 1px solid #dbe6f5; border-radius: 26px; overflow: hidden; background: #f5f8ff; box-shadow: 0 14px 35px #3865a10b; scroll-margin-top: 115px; }
.library .featured-brochure[data-category=health] { --book-accent: #197d87; --book-wash: #e4f5f4; --book-glow: #bfe8e6; }
.library .featured-brochure[data-category=mobile] { --book-accent: #7c55b6; --book-wash: #f0e8fb; --book-glow: #e2cef7; }
.preview-topline { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 22px 26px 0; color: var(--book-accent); font-size: 11px; }
.preview-topline > span:first-child { display: flex; align-items: center; gap: 8px; }
.preview-topline i { width: 5px; height: 5px; border-radius: 50%; background: var(--book-accent); box-shadow: 0 0 0 4px var(--book-wash); }
#preview-position { font: 12px Arial,sans-serif; letter-spacing: 1px; }
#preview-position b { font-weight: 400; color: #8b9eba; }
.preview-stage { height: 354px; position: relative; display: grid; place-items: center; perspective: 1200px; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 45% 50%,var(--book-glow),transparent 63%); transition: background .3s; }
.preview-stage::after { content: ''; position: absolute; width: 205px; height: 18px; bottom: 20px; left: 50%; transform: translateX(-50%); border-radius: 50%; background: #577ba51a; filter: blur(8px); z-index: -1; }
.preview-watermark { position: absolute; bottom: 15px; left: 18px; font: 700 12px Arial,sans-serif; letter-spacing: 3px; color: #7c95b444; writing-mode: vertical-rl; transform: rotate(180deg); }
.library .book-halo { top: 50%; left: 50%; transform: translate(-50%,-50%); width: 240px; height: 240px; border-color: #7998c421; pointer-events: none; }
.library .book-halo::before, .library .book-halo::after { border-color: #7998c416; }
.library .book-object { display: block; width: 194px; height: 275px; transform: rotateY(-20deg) rotateZ(-5deg); border-radius: 3px 6px 6px 3px; box-shadow: -15px 21px 24px #3d629e25; }
.library .book-object img { object-fit: contain; border-radius: inherit; background: #fff; }
.library .book-object:hover, .library .book-object:focus-visible { transform: rotateY(-4deg) rotateZ(-1deg) translateY(-7px); }
.library .book-spine { background: repeating-linear-gradient(0deg,#dce5ef 0 1px,#f8faff 1px 3px); right: -7px; width: 7px; border-radius: 0 3px 3px 0; }
.preview-details { padding: 23px 26px 22px; border-top: 1px solid #fff; background: #ffffffbd; }
#preview-category { color: var(--book-accent); font-size: 11px; }
#preview-title { margin: 6px 0 9px; color: #284870; font-size: 25px; font-weight: 700; line-height: 1.6; outline: none; }
#preview-description { color: #637c9c; font-size: 13px; line-height: 1.95; min-height: 76px; }
.preview-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 22px; }
#preview-open { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 46px; flex: 1; padding: 10px 16px; background: var(--book-accent); color: #fff; border-radius: 12px; font-size: 13px; font-weight: 600; transition: box-shadow .2s; }
#preview-open > span { font: 10px Arial,sans-serif; opacity: .9; letter-spacing: .5px; }
#preview-open:hover { box-shadow: 0 5px 18px color-mix(in srgb,var(--book-accent) 25%,transparent); }
.preview-paging { display: flex; gap: 6px; }
.preview-paging button { width: 38px; height: 44px; display: grid; place-items: center; border: 1px solid #dbe6f4; border-radius: 11px; background: #fff; font: 21px Arial,sans-serif; color: #6f8cb2; transition: color .2s, border-color .2s; }
.preview-paging button:hover { color: var(--book-accent); border-color: var(--book-accent); }
.preview-note { display: block; font-size: 9px; color: #8397b3; margin-top: 12px; }
.brochure-collection { min-width: 0; }
.collection-intro { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.collection-eyebrow { display: block; margin-bottom: 5px; font-size: 11px; color: #8193ae; }
.collection-intro h3 { font-size: 23px; font-weight: 700; color: #30537f; }
.collection-total { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #e1e9f7; border-radius: 10px; padding: 7px 11px; background: #f7faff; font-size: 10px; white-space: nowrap; color: #7c93b4; }
.collection-total b { font: 15px Arial,sans-serif; color: #507dc7; }
.collection-help { font-size: 11px; color: #8394ad; margin-top: 11px; margin-bottom: 22px; }
.library .library-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.brochure-tile { --shelf-color: #356ac3; --shelf-wash: #edf4ff; min-width: 0; padding: 5px; border: 1px solid #dfe8f5; border-radius: 17px; background: #fff; transition: background .2s, border-color .2s, box-shadow .2s; }
.brochure-tile[data-category=health] { --shelf-color: #247c86; --shelf-wash: #edf8f6; }
.brochure-tile[data-category=mobile] { --shelf-color: #7c55b6; --shelf-wash: #f5effc; }
.brochure-tile.selected { background: var(--shelf-wash); border-color: var(--shelf-color); box-shadow: 0 5px 16px color-mix(in srgb,var(--shelf-color) 9%,transparent); }
.library-choice { position: relative; display: flex; flex-direction: column; align-items: center; width: 100%; padding: 15px 10px 10px; border-radius: 12px; }
.shelf-index { position: absolute; top: 8px; right: 8px; font: 9px Arial,sans-serif; color: #8c9fba; }
.shelf-selected { position: absolute; top: 5px; left: 5px; width: 19px; height: 19px; display: grid; place-items: center; color: #fff; background: var(--shelf-color); border-radius: 50%; font: 10px Arial,sans-serif; opacity: 0; }
.brochure-tile.selected .shelf-selected { opacity: 1; }
.shelf-cover { position: relative; display: grid; place-items: center; width: 100%; height: 119px; margin-bottom: 11px; }
.shelf-cover::before { content: ''; position: absolute; inset: 7px 7px 0; background: linear-gradient(145deg,var(--shelf-wash),#fff); border-radius: 12px; }
.shelf-cover img { position: relative; width: 72px; height: 102px; object-fit: contain; object-position: center; background: #fff; box-shadow: -4px 8px 10px #45628e23; border-radius: 2px; transform: rotate(-5deg); transition: transform .3s; }
.brochure-tile:nth-child(even) .shelf-cover img { transform: rotate(5deg); }
.brochure-tile.selected .shelf-cover img, .library-choice:hover .shelf-cover img, .library-choice:focus-visible .shelf-cover img { transform: rotate(0) translateY(-4px); }
.shelf-name { display: flex; align-items: center; justify-content: center; min-height: 41px; font-size: 12px; font-weight: 600; line-height: 1.7; color: #385b87; text-align: center; }
.shelf-pdf { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 35px; margin: 0 6px; padding: 8px 3px 6px; border-top: 1px solid #e4edf7; font-size: 9px; color: #8196b2; }
.shelf-pdf > span:last-child { font: 9px Arial,sans-serif; color: var(--shelf-color); }
.shelf-pdf:hover { color: var(--shelf-color); }
.library-shelf-note { display: flex; align-items: center; gap: 8px; margin-top: 20px; color: #91a0b7; font-size: 10px; }
.library-shelf-note > span { font-size: 16px; color: #829bc4; }
.library :is(button,a):focus-visible { outline: 2px solid #3673d6; outline-offset: 4px; }
@media (min-width:901px) and (max-width:1100px) {
  .library .library-layout { grid-template-columns: minmax(0,.95fr) minmax(0,1.25fr); gap: 22px; }
  .preview-details { padding: 22px; }
  .preview-topline { padding-inline: 22px; }
  .library .library-list { gap: 10px; }
  .shelf-name { font-size: 11px; }
  .library-choice { padding-inline: 5px; }
  .preview-actions { gap: 9px; }
  #preview-open { padding-inline: 12px; gap: 12px; }
  .preview-paging { gap: 4px; }
  .preview-paging button { width: 32px; }
}
@media (max-width:900px) {
  .library .library-layout { grid-template-columns: 1fr; gap: 35px; }
  .library .featured-brochure { position: relative; top: auto; display: grid; grid-template-columns: .9fr 1.1fr; }
  .preview-topline { grid-column: 1/-1; padding: 22px 24px 0; }
  .preview-stage { height: 330px; }
  .library .book-object { width: 168px; height: 238px; }
  .preview-details { align-self: center; background: none; border: 0; padding: 25px 10px 25px 24px; }
  #preview-title { font-size: 23px; }
  #preview-description { min-height: 0; font-size: 12px; }
  .library .library-list { gap: 15px; }
  .shelf-cover { height: 135px; }
  .shelf-cover img { width: 82px; height: 116px; }
  .shelf-name { font-size: 13px; }
}
@media (max-width:640px) {
  .library .featured-brochure { display: block; border-radius: 23px; }
  .preview-topline { padding: 20px 22px 0; }
  .preview-stage { height: 297px; }
  .library .book-object { width: 168px; height: 238px; }
  .preview-details { padding: 21px 22px; background: #ffffffbd; border-top: 1px solid #fff; }
  #preview-title { font-size: 24px; }
  #preview-description { min-height: 0; font-size: 13px; }
  .preview-actions { gap: 10px; margin-top: 20px; }
  #preview-open { font-size: 12px; gap: 13px; padding-inline: 13px; }
  .preview-paging { gap: 5px; }
  .preview-paging button { width: 34px; }
  .collection-intro h3 { font-size: 21px; }
  .collection-help { font-size: 11px; line-height: 1.9; }
  .library .library-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .shelf-cover { height: 125px; }
  .shelf-cover img { width: 78px; height: 110px; }
  .shelf-name { font-size: 12px; }
  .shelf-pdf { min-height: 40px; }
}
@media (prefers-reduced-motion:reduce) {
  .library *, .library *::before, .library *::after { transition: none !important; }
}
