/* Shared library homepage layouts and comparison previews. */
:is(.library-home-preview, .library-home) { --lp-lift: 0 28px 56px -34px rgb(0 33 71 / 55%); }
:is(.library-home-preview, .library-home) .library-skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px 20px; background: white; color: var(--color-navy-900); transition: none; }
:is(.library-home-preview, .library-home) .library-skip-link:focus { top: 8px; outline: 3px solid var(--color-cyan-500) !important; }
:is(.library-home-preview, .library-home) .lp-previewbar { position: relative; z-index: 45; background: white; border-bottom: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-previewbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 54px; }
:is(.library-home-preview, .library-home) .lp-previewbar p { margin: 0; font-size: 13px; color: var(--color-muted); }
:is(.library-home-preview, .library-home) .lp-previewbar nav { display: flex; gap: 6px; flex-wrap: wrap; }
:is(.library-home-preview, .library-home) .lp-previewbar a { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 14px; border-radius: 3px; font-size: 13px; color: var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-previewbar a[aria-current] { color: white; background: var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-previewbar a:not([aria-current]):hover { background: var(--color-cyan-100); color: var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-previewbar a:focus-visible { outline: 3px solid var(--color-cyan-500) !important; outline-offset: 2px; }

/* Shell */
:is(.library-home-preview, .library-home) .lp-container { width: min(100% - 64px, 1240px); margin-inline: auto; }
:is(.library-home-preview, .library-home) .lp-section { padding: 80px 0; }
:is(.library-home-preview, .library-home) .lp-section--flush { padding-top: 64px; }
:is(.library-home-preview, .library-home) .lp-surface { background: var(--color-surface); }
:is(.library-home-preview, .library-home) .lp-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
:is(.library-home-preview, .library-home) .lp-heading h2 { margin: 0; font-size: clamp(28px, 2.6vw, 40px); line-height: 1.1; letter-spacing: -.03em; text-wrap: balance; }
:is(.library-home-preview, .library-home) .lp-heading p { margin: 10px 0 0; max-width: 60ch; }
:is(.library-home-preview, .library-home) .lp-heading > a { flex-shrink: 0; }
:is(.library-home-preview main, .library-home) p { text-wrap: pretty; }
:is(.library-home-preview, .library-home) .lp-text-link { display: inline-flex; align-items: center; gap: 4px; color: var(--color-navy-900); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
:is(.library-home-preview, .library-home) .lp-text-link i { font-size: 20px; transition: transform 180ms cubic-bezier(.16, 1, .3, 1); }
:is(.library-home-preview, .library-home) .lp-text-link:hover { color: var(--color-cyan-700); }
:is(.library-home-preview, .library-home) .lp-text-link:hover i { transform: translateX(3px); }
:is(.library-home-preview, .library-home) .lp-note { max-width: 68ch; margin: 18px 0 0; font-size: 13px; line-height: 1.7; }
:is(.library-home-preview, .library-home) .lp-note strong { color: var(--color-navy-900); }
:is(.library-home-preview main, .library-home) :is(a, button, summary):focus-visible { outline: 3px solid var(--color-cyan-500) !important; outline-offset: 4px; }
:is(.library-home-preview main, .library-home) a { transition: color 160ms ease-out, background-color 160ms ease-out; }

/* Hero, shared by all three layouts */
:is(.library-home-preview, .library-home) .lp-hero h1 { font-size: clamp(36px, 4vw, 56px); font-weight: 700; line-height: 1.06; letter-spacing: -.03em; text-transform: none; text-wrap: balance; }
:is(.library-home-preview, .library-home) .lp-hero .library-discovery__welcome { margin: 14px 0 40px; color: rgb(255 255 255 / 88%); font-size: 18px; }

/* Live opening status */
:is(.library-home-preview, .library-home) .lp-status { display: inline-flex; align-items: center; gap: 7px; width: fit-content; padding: 4px 10px 4px 9px; border-radius: 999px; background: white; color: var(--color-navy-900); font-size: 12px; font-weight: 700; line-height: 1.4; white-space: nowrap; box-shadow: inset 0 0 0 1px var(--color-border); }
:is(.library-home-preview, .library-home) .lp-status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--color-muted); }
:is(.library-home-preview, .library-home) .lp-status[data-open="true"] { background: var(--color-cyan-100); box-shadow: none; }
:is(.library-home-preview, .library-home) .lp-status[data-open="true"]::before { background: var(--color-cyan-700); box-shadow: 0 0 0 3px rgb(0 174 239 / 28%); }
:is(.library-home-preview, .library-home) [data-hours] { font-variant-numeric: tabular-nums; }
:is(.library-home-preview, .library-home) .lp-now { padding: 18px 0; border-top: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-now__name { margin: 0; font-size: 19px; letter-spacing: -.01em; }
:is(.library-home-preview, .library-home) .lp-now__name a { color: var(--color-navy-900); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
:is(.library-home-preview, .library-home) .lp-now__name a:hover { text-decoration-color: currentColor; }
:is(.library-home-preview, .library-home) .lp-now__library { margin: 2px 0 12px; font-size: 14px; }
:is(.library-home-preview, .library-home) .lp-now__state { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; }
:is(.library-home-preview, .library-home) .lp-now [data-hours] { color: var(--color-navy-900); font-size: 18px; }
:is(.library-home-preview, .library-home) .lp-now__next { margin: 6px 0 0; font-size: 14px; }
:is(.library-home-preview, .library-home) .lp-now__next:empty { display: none; }

/* Weekly hours lists with today highlighted */
:is(.library-home-preview, .library-home) .lp-week { margin: 0; }
:is(.library-home-preview, .library-home) .lp-week > div { display: grid; grid-template-columns: minmax(96px, 120px) 1fr; gap: 12px; padding: 9px 12px; border-top: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-week dt { display: flex; align-items: center; gap: 8px; color: var(--color-navy-900); font-size: 14px; font-weight: 600; }
:is(.library-home-preview, .library-home) .lp-week dd { display: flex; flex-wrap: wrap; column-gap: 16px; margin: 0; color: var(--color-navy-900); font-size: 14px; }
:is(.library-home-preview, .library-home) .lp-week > .is-today, :is(.library-home-preview, .library-home) .lp-week > .is-today + div { border-top-color: transparent; }
:is(.library-home-preview, .library-home) .lp-week > .is-today, :is(.library-home-preview, .library-home) .lp-table tbody tr.is-today { background: var(--color-cyan-100); }
:is(.library-home-preview, .library-home) .lp-week > .is-today dt::after, :is(.library-home-preview, .library-home) .lp-table tr.is-today th::after { content: 'Today'; padding: 1px 7px; border-radius: 3px; background: var(--color-navy-900); color: white; font-size: 11px; font-weight: 700; }
:is(.library-home-preview, .library-home) .lp-interval { display: block; white-space: nowrap; line-height: 1.7; font-variant-numeric: tabular-nums; }
:is(.library-home-preview, .library-home) .lp-closed { font-weight: 600; }

/* 1. Search first: the catalogue sits inside the reading room */
:is(.library-home-preview, .library-home) .lp-hero--photo { position: relative; isolation: isolate; overflow: hidden; padding: 84px 0 0; }
:is(.library-home-preview, .library-home) .lp-hero__media { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
:is(.library-home-preview, .library-home) .lp-hero--photo::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgb(0 33 71 / 94%) 0%, rgb(0 33 71 / 84%) 46%, rgb(0 33 71 / 66%) 100%); }
:is(.library-home-preview, .library-home) .lp-hero--photo h1 { text-align: center; }
:is(.library-home-preview, .library-home) .lp-hero--photo .library-discovery__welcome { text-align: center; }
:is(.library-home-preview, .library-home) .lp-hero--photo .library-search__panel { background: rgb(0 33 71 / 62%); }
:is(.library-home-preview, .library-home) .lp-hero-today { display: grid; grid-template-columns: minmax(180px, auto) 1fr 1fr auto; align-items: center; gap: 16px 0; margin-top: 64px; padding: 24px 0 28px; border-top: 1px solid rgb(255 255 255 / 24%); color: white; }
:is(.library-home-preview, .library-home) .lp-hero-today__title { margin: 0; padding-right: 28px; color: white; font-weight: 700; }
:is(.library-home-preview, .library-home) .lp-hero-today__title time { display: block; margin-top: 2px; color: rgb(255 255 255 / 80%); font-size: 13px; font-weight: 400; }
:is(.library-home-preview, .library-home) .lp-hero-today__campus { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding-inline: 28px; border-left: 1px solid rgb(255 255 255 / 24%); }
:is(.library-home-preview, .library-home) .lp-hero-today__campus a { color: white; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
:is(.library-home-preview, .library-home) .lp-hero-today [data-hours] { color: white; font-weight: 600; }
:is(.library-home-preview, .library-home) .lp-hero-today__next { flex-basis: 100%; color: rgb(255 255 255 / 80%); font-size: 13px; }
:is(.library-home-preview, .library-home) .lp-hero-today__next:empty { display: none; }
:is(.library-home-preview, .library-home) .lp-hero-today .lp-status { background: rgb(255 255 255 / 12%); color: white; box-shadow: none; }
:is(.library-home-preview, .library-home) .lp-hero-today .lp-status::before { background: rgb(255 255 255 / 75%); }
:is(.library-home-preview, .library-home) .lp-hero-today .lp-status[data-open="true"] { background: rgb(0 174 239 / 24%); }
:is(.library-home-preview, .library-home) .lp-hero-today .lp-status[data-open="true"]::before { background: var(--color-cyan-500); box-shadow: none; }
:is(.library-home-preview, .library-home) .lp-hero-today__more { display: inline-flex; align-items: center; gap: 4px; color: white; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
:is(.library-home-preview, .library-home) .lp-hero-today__more i { font-size: 20px; }
:is(.library-home-preview, .library-home) .lp-collection-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-collection-list li { position: relative; padding: 28px 28px 8px 0; }
:is(.library-home-preview, .library-home) .lp-collection-list li + li { padding-left: 28px; border-left: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-collection-list h3 { margin: 0 0 10px; font-size: 22px; letter-spacing: -.02em; }
:is(.library-home-preview, .library-home) .lp-collection-list h3 a { display: inline-flex; align-items: center; gap: 6px; color: var(--color-navy-900); text-underline-offset: 5px; }
:is(.library-home-preview, .library-home) .lp-collection-list h3 a::after, :is(.library-home-preview, .library-home) .lp-resource h3 a::after, :is(.library-home-preview, .library-home) .lp-feature h3 a::after, :is(.library-home-preview, .library-home) .lp-campus h3 a::after { content: ''; position: absolute; inset: 0; }
:is(.library-home-preview, .library-home) .lp-collection-list h3 i { color: var(--color-cyan-700); font-size: 24px; transition: transform 180ms cubic-bezier(.16, 1, .3, 1); }
:is(.library-home-preview, .library-home) .lp-collection-list li:hover h3 a { text-decoration: underline; }
:is(.library-home-preview, .library-home) .lp-collection-list li:hover h3 i { transform: translateX(4px); }
:is(.library-home-preview, .library-home) .lp-collection-list p { margin: 0; font-size: 15px; }
:is(.library-home-preview, .library-home) .lp-campus-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
:is(.library-home-preview, .library-home) .lp-campus-panel { display: flex; flex-direction: column; background: white; border: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-campus-panel > img { width: 100%; height: auto; aspect-ratio: 16 / 7; object-fit: cover; }
:is(.library-home-preview, .library-home) .lp-campus-panel__body { display: flex; flex-direction: column; flex: 1; padding: 28px 32px 30px; }
:is(.library-home-preview, .library-home) .lp-campus-panel h3 { margin: 0; font-size: 26px; letter-spacing: -.02em; }
:is(.library-home-preview, .library-home) .lp-campus-panel h3 a { display: inline-flex; align-items: center; gap: 6px; color: var(--color-navy-900); text-underline-offset: 5px; }
:is(.library-home-preview, .library-home) .lp-campus-panel h3 a:hover { text-decoration: underline; }
:is(.library-home-preview, .library-home) .lp-campus-panel h3 i { color: var(--color-cyan-700); }
:is(.library-home-preview, .library-home) .lp-campus-panel__where { margin: 2px 0 18px; }
:is(.library-home-preview, .library-home) .lp-campus-panel__now { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 16px; }
:is(.library-home-preview, .library-home) .lp-campus-panel__now [data-hours] { color: var(--color-navy-900); font-size: 17px; }
:is(.library-home-preview, .library-home) .lp-campus-panel__now [data-next] { color: var(--color-muted); font-size: 14px; }
:is(.library-home-preview, .library-home) .lp-campus-panel .lp-week { margin-inline: -12px; }
:is(.library-home-preview, .library-home) .lp-campus-panel__address { margin: auto 0 0; padding-top: 14px; font-size: 13px; }

/* 2. Daily dashboard: today and the common tasks are one panel */
:is(.library-home-preview, .library-home) .lp-hero--dashboard { padding-bottom: 148px; }
:is(.library-home-preview, .library-home) .lp-dash-wrap { position: relative; z-index: 2; margin-top: -104px; }
:is(.library-home-preview, .library-home) .lp-dash-wrap .lp-container { width: min(100% - 64px, 1156px); }
:is(.library-home-preview, .library-home) .lp-dash { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); background: white; box-shadow: var(--lp-lift); }
:is(.library-home-preview, .library-home) .lp-dash__today { padding: 36px 36px 30px; background: var(--color-surface); border-right: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-dash h2 { margin: 0; font-size: 24px; letter-spacing: -.02em; }
:is(.library-home-preview, .library-home) .lp-dash__date { margin: 6px 0 20px; }
:is(.library-home-preview, .library-home) .lp-dash__foot { margin: 6px 0 0; padding-top: 18px; border-top: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-dash__tasks { padding: 36px 40px 28px; }
:is(.library-home-preview, .library-home) .lp-dash__tasks-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; }
:is(.library-home-preview, .library-home) .lp-task-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 24px; margin: 22px 0 0; padding: 0; list-style: none; }
:is(.library-home-preview, .library-home) .lp-task-list a { display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start; margin-inline: -12px; padding: 14px 12px; border-radius: 4px; color: var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-task-list a:hover { background: var(--color-surface); }
:is(.library-home-preview, .library-home) .lp-task-list i { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 4px; background: var(--color-cyan-100); color: var(--color-navy-900); font-size: 24px; transition: background-color 160ms ease-out, color 160ms ease-out; }
:is(.library-home-preview, .library-home) .lp-task-list a:hover i { background: var(--color-navy-900); color: white; }
:is(.library-home-preview, .library-home) .lp-task-list strong { display: block; font-size: 17px; line-height: 1.3; }
:is(.library-home-preview, .library-home) .lp-task-list a:hover strong { text-decoration: underline; text-underline-offset: 4px; }
:is(.library-home-preview, .library-home) .lp-task-list strong + span { display: block; margin-top: 3px; color: var(--color-muted); font-size: 14px; line-height: 1.5; }
:is(.library-home-preview, .library-home) .lp-spotlight { display: grid; grid-template-columns: 1fr 1fr; min-height: 400px; background: var(--color-navy-900); color: white; }
:is(.library-home-preview, .library-home) .lp-spotlight img { width: 100%; height: 100%; object-fit: cover; }
:is(.library-home-preview, .library-home) .lp-spotlight > div { align-self: center; padding: 56px 64px; }
:is(.library-home-preview, .library-home) .lp-spotlight h2 { margin: 0 0 16px; color: white; font-size: clamp(30px, 3vw, 44px); line-height: 1.08; letter-spacing: -.03em; }
:is(.library-home-preview, .library-home) .lp-spotlight p { max-width: 42ch; color: rgb(255 255 255 / 88%); }
:is(.library-home-preview, .library-home) .lp-spotlight .default-btn { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; }
:is(.library-home-preview, .library-home) .lp-schedules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
:is(.library-home-preview, .library-home) .lp-schedule { background: white; border: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-schedule summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; cursor: pointer; list-style: none; color: var(--color-navy-900); font-size: 20px; font-weight: 700; }
:is(.library-home-preview, .library-home) .lp-schedule summary small { display: block; margin-top: 2px; color: var(--color-muted); font-size: 14px; font-weight: 400; }
:is(.library-home-preview, .library-home) .lp-schedule summary::-webkit-details-marker { display: none; }
:is(.library-home-preview, .library-home) .lp-schedule summary i { font-size: 24px; transition: transform 160ms ease-out; }
:is(.library-home-preview, .library-home) .lp-schedule[open] summary i { transform: rotate(180deg); }
:is(.library-home-preview, .library-home) .lp-schedule .lp-week { padding: 0 12px; }
:is(.library-home-preview, .library-home) .lp-schedule > .lp-note { margin: 0; padding: 14px 24px 20px; border-top: 1px solid var(--color-border); }

/* 3. Balanced: the place, with today pinned to it */
:is(.library-home-preview, .library-home) .lp-place .library-campus-image { height: clamp(300px, 32vw, 460px); }
:is(.library-home-preview, .library-home) .lp-place .library-campus-image img { height: 100%; object-position: 50% 55%; }
:is(.library-home-preview, .library-home) .lp-today-bar { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(220px, 1fr) 1fr 1fr; gap: 0; margin-top: -88px; background: white; box-shadow: var(--lp-lift); }
:is(.library-home-preview, .library-home) .lp-today-bar__title { padding: 28px 32px; background: var(--color-navy-900); color: white; }
:is(.library-home-preview, .library-home) .lp-today-bar__title h2 { margin: 0; color: white; font-size: 24px; letter-spacing: -.02em; }
:is(.library-home-preview, .library-home) .lp-today-bar__title p { margin: 4px 0 16px; color: rgb(255 255 255 / 82%); font-size: 14px; }
:is(.library-home-preview, .library-home) .lp-today-bar__title .lp-text-link { color: white; }
:is(.library-home-preview, .library-home) .lp-today-bar .lp-now { padding: 28px 32px; border-top: 0; }
:is(.library-home-preview, .library-home) .lp-today-bar .lp-now + .lp-now { border-left: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-resource-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
:is(.library-home-preview, .library-home) .lp-resource { position: relative; display: flex; flex-direction: column; background: white; border: 1px solid var(--color-border); transition: border-color 160ms ease-out; }
:is(.library-home-preview, .library-home) .lp-resource > img { width: 100%; height: 180px; object-fit: cover; }
:is(.library-home-preview, .library-home) .lp-resource__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 26px; }
:is(.library-home-preview, .library-home) .lp-resource h3 { margin: 0 0 10px; font-size: 21px; letter-spacing: -.015em; }
:is(.library-home-preview, .library-home) .lp-resource h3 a, :is(.library-home-preview, .library-home) .lp-feature h3 a, :is(.library-home-preview, .library-home) .lp-campus h3 a { color: var(--color-navy-900); text-underline-offset: 5px; }
:is(.library-home-preview, .library-home) .lp-resource h3 i, :is(.library-home-preview, .library-home) .lp-feature h3 i, :is(.library-home-preview, .library-home) .lp-campus h3 i { color: var(--color-cyan-700); vertical-align: -3px; transition: transform 180ms cubic-bezier(.16, 1, .3, 1); }
:is(.library-home-preview, .library-home) .lp-resource p { margin: 0; font-size: 14px; }
:is(.library-home-preview, .library-home) :is(.lp-resource, .lp-feature, .lp-campus):hover { border-color: var(--color-navy-900); }
:is(.library-home-preview, .library-home) :is(.lp-resource, .lp-feature, .lp-campus):hover h3 a { text-decoration: underline; }
:is(.library-home-preview, .library-home) :is(.lp-resource, .lp-feature, .lp-campus):hover h3 i { transform: translateX(4px); }
:is(.library-home-preview, .library-home) :is(.lp-resource, .lp-feature, .lp-campus, .lp-collection-list li):has(a:focus-visible) { outline: 3px solid var(--color-cyan-500); outline-offset: 3px; }
:is(.library-home-preview, .library-home) :is(.lp-resource, .lp-feature, .lp-campus, .lp-collection-list li) a:focus-visible { outline: 0 !important; }
:is(.library-home-preview, .library-home) .lp-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
:is(.library-home-preview, .library-home) .lp-feature { position: relative; display: flex; flex-direction: column; background: white; border: 1px solid var(--color-border); transition: border-color 160ms ease-out; }
:is(.library-home-preview, .library-home) .lp-feature > img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; }
:is(.library-home-preview, .library-home) .lp-feature > div { padding: 30px 36px 34px; }
:is(.library-home-preview, .library-home) .lp-feature h3 { margin: 0 0 12px; font-size: clamp(24px, 2.1vw, 30px); line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
:is(.library-home-preview, .library-home) .lp-feature p { margin: 0; max-width: 52ch; }
:is(.library-home-preview, .library-home) .lp-table-wrap { overflow-x: auto; background: white; border: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-table { width: 100%; border-collapse: collapse; font-size: 14px; }
:is(.library-home-preview, .library-home) .lp-table th, :is(.library-home-preview, .library-home) .lp-table td { padding: 14px 24px; border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: top; }
:is(.library-home-preview, .library-home) .lp-table thead { background: var(--color-surface); color: var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-table thead th { padding-block: 18px; }
:is(.library-home-preview, .library-home) .lp-table th { color: var(--color-navy-900); font-weight: 700; }
:is(.library-home-preview, .library-home) .lp-table tbody th { display: flex; align-items: center; gap: 10px; }
:is(.library-home-preview, .library-home) .lp-table th small { display: block; margin-top: 4px; color: var(--color-muted); font-weight: 400; }
:is(.library-home-preview, .library-home) .lp-table td { color: var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-table tbody tr:last-child > * { border-bottom: 0; }
:is(.library-home-preview, .library-home) .lp-table--week th:first-child { width: 22%; }

/* Campus cards (layouts 2 and 3) */
:is(.library-home-preview, .library-home) .lp-visit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
:is(.library-home-preview, .library-home) .lp-campus { position: relative; display: grid; grid-template-columns: 40% 1fr; background: white; border: 1px solid var(--color-border); transition: border-color 160ms ease-out; }
:is(.library-home-preview, .library-home) .lp-campus img { width: 100%; height: 100%; min-height: 230px; object-fit: cover; }
:is(.library-home-preview, .library-home) .lp-campus > div { padding: 28px; }
:is(.library-home-preview, .library-home) .lp-campus h3 { margin: 0; font-size: 23px; letter-spacing: -.02em; }
:is(.library-home-preview, .library-home) .lp-campus__where { margin: 2px 0 14px; color: var(--color-navy-900); font-weight: 600; }
:is(.library-home-preview, .library-home) .lp-campus p:last-child { margin: 0; font-size: 14px; }

/* Service feature (layout 1) */
:is(.library-home-preview, .library-home) .lp-service-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; }
:is(.library-home-preview, .library-home) .lp-service-feature img { width: 100%; height: 400px; object-fit: cover; }
:is(.library-home-preview, .library-home) .lp-service-feature h2 { margin-bottom: 18px; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.08; letter-spacing: -.03em; text-wrap: balance; }
:is(.library-home-preview, .library-home) .lp-service-links { display: grid; margin-top: 28px; }
:is(.library-home-preview, .library-home) .lp-service-links a { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 0; border-top: 1px solid var(--color-border); color: var(--color-navy-900); font-weight: 600; }
:is(.library-home-preview, .library-home) .lp-service-links a:last-child { border-bottom: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-service-links a i { color: var(--color-cyan-700); font-size: 22px; transition: transform 180ms cubic-bezier(.16, 1, .3, 1); }
:is(.library-home-preview, .library-home) .lp-service-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
:is(.library-home-preview, .library-home) .lp-service-links a:hover i { transform: translateX(4px); }

/* Library photos beside the services text */
:is(.library-home-preview, .library-home) .library-photo-slider { min-width: 0; border: 1px solid var(--color-border); background: white; }
:is(.library-home-preview, .library-home) .library-photo-slider:focus-visible { outline: 3px solid var(--color-cyan-500) !important; outline-offset: 4px; }
:is(.library-home-preview, .library-home) .library-photo-slider__track { touch-action: pan-y; }
:is(.library-home-preview, .library-home) .library-photo-slider__slide { margin: 0; }
:is(.library-home-preview, .library-home) .library-photo-slider__slide[hidden] { display: none; }
:is(.library-home-preview, .library-home) .library-photo-slider .library-photo-slider__slide img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
:is(.library-home-preview, .library-home) .library-photo-slider figcaption { padding: 16px 20px 0; color: var(--color-navy-900); font-weight: 600; }
:is(.library-home-preview, .library-home) .library-photo-slider__controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; }
:is(.library-home-preview, .library-home) .library-photo-slider__controls[hidden] { display: none; }
:is(.library-home-preview, .library-home) .library-photo-slider button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--color-border); border-radius: 3px; background: white; color: var(--color-navy-900); cursor: pointer; }
:is(.library-home-preview, .library-home) .library-photo-slider button:hover { background: var(--color-cyan-100); }
:is(.library-home-preview, .library-home) .library-photo-slider button i { font-size: 28px; }
:is(.library-home-preview, .library-home) .library-photo-slider__dots { display: flex; flex: 1; min-width: 0; justify-content: center; }
:is(.library-home-preview, .library-home) .library-photo-slider__dots button { border: 0; flex: 1; width: auto; max-width: 44px; min-width: 0; }
:is(.library-home-preview, .library-home) .library-photo-slider__dots span { width: 9px; height: 9px; border-radius: 50%; background: var(--color-border); }
:is(.library-home-preview, .library-home) .library-photo-slider__dots [aria-pressed="true"] span { background: var(--color-navy-900); }

/* Closing: news and training, shortcuts, call to action */
:is(.library-home-preview, .library-home) .lp-updates { padding: 64px 0; }
:is(.library-home-preview, .library-home) .lp-updates__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; }
:is(.library-home-preview, .library-home) .lp-update { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 24px; padding-top: 22px; border-top: 2px solid var(--color-navy-900); }
:is(.library-home-preview, .library-home) .lp-update h2 { margin: 0; font-size: 26px; letter-spacing: -.02em; }
:is(.library-home-preview, .library-home) .lp-update p { flex-basis: 100%; margin: 0; }
:is(.library-home-preview, .library-home) .lp-shortcuts { background: white; border-top: 1px solid var(--color-border); }
:is(.library-home-preview, .library-home) .lp-shortcuts nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
:is(.library-home-preview, .library-home) .lp-shortcuts a { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 28px 12px; border-right: 1px solid var(--color-border); color: var(--color-navy-900); font-size: 13px; font-weight: 600; }
:is(.library-home-preview, .library-home) .lp-shortcuts a:last-child { border-right: 0; }
:is(.library-home-preview, .library-home) .lp-shortcuts i { color: var(--color-cyan-700); font-size: 26px; }
:is(.library-home-preview, .library-home) .lp-shortcuts a:hover { background: var(--color-surface); text-decoration: underline; text-underline-offset: 4px; }
:is(.library-home-preview, .library-home) .lp-cta p { max-width: 62ch; }
:is(.library-home-preview, .library-home) .lp-cta .default-btn { display: inline-flex; align-items: center; gap: 8px; }
:is(.library-home-preview, .library-home) .lp-cta .default-btn i { font-size: 20px; }

@media (min-width: 1200px) {
    :is(.library-home-preview, .library-home) .lp-hero-today { position: relative; isolation: isolate; }
    :is(.library-home-preview, .library-home) .lp-hero-today::before { content: ''; position: absolute; inset: 0 calc(50% - 50vw); z-index: -1; background: rgb(0 33 71 / 55%); }
}
@media (max-width: 1199px) {
    :is(.library-home-preview, .library-home) .lp-hero-today { grid-template-columns: 1fr 1fr; }
    :is(.library-home-preview, .library-home) .lp-hero-today__title { grid-column: 1 / -1; }
    :is(.library-home-preview, .library-home) .lp-hero-today__title + .lp-hero-today__campus { padding-left: 0; border-left: 0; }
    :is(.library-home-preview, .library-home) .lp-hero-today__more { grid-column: 1 / -1; }
    :is(.library-home-preview, .library-home) .lp-collection-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(.library-home-preview, .library-home) .lp-collection-list li:nth-child(odd) { padding-left: 0; border-left: 0; }
    :is(.library-home-preview, .library-home) .lp-collection-list li:nth-child(n + 3) { border-top: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-collection-list li:last-child:nth-child(odd) { grid-column: 1 / -1; }
    :is(.library-home-preview, .library-home) .lp-collection-list li { padding-bottom: 28px; }
    :is(.library-home-preview, .library-home) .lp-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(.library-home-preview, .library-home) .lp-today-bar { grid-template-columns: 1fr 1fr; }
    :is(.library-home-preview, .library-home) .lp-today-bar__title { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 24px; }
    :is(.library-home-preview, .library-home) .lp-today-bar__title p { margin: 0; flex-basis: 100%; order: 2; }
    :is(.library-home-preview, .library-home) .lp-today-bar__title .lp-text-link { order: 1; }
    :is(.library-home-preview, .library-home) .lp-campus { grid-template-columns: 1fr; }
    :is(.library-home-preview, .library-home) .lp-campus img { height: 200px; min-height: 0; }
    :is(.library-home-preview, .library-home) .lp-service-feature { gap: 36px; }
    :is(.library-home-preview, .library-home) .lp-shortcuts nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    :is(.library-home-preview, .library-home) .lp-shortcuts a { border-bottom: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-shortcuts a:nth-child(3n) { border-right: 0; }
    :is(.library-home-preview, .library-home) .lp-shortcuts a:nth-child(n + 4) { border-bottom: 0; }
}
@media (max-width: 991px) {
    :is(.library-home-preview, .library-home) .lp-updates__grid { grid-template-columns: 1fr; }
    :is(.library-home-preview, .library-home) .lp-dash { grid-template-columns: 1fr; }
    :is(.library-home-preview, .library-home) .lp-dash__today { border-right: 0; border-bottom: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-dash__today .lp-now { display: inline-block; width: calc(50% - 14px); vertical-align: top; }
    :is(.library-home-preview, .library-home) .lp-dash__today .lp-now + .lp-now { margin-left: 24px; }
    :is(.library-home-preview, .library-home) .lp-spotlight { grid-template-columns: 1fr; }
    :is(.library-home-preview, .library-home) .lp-spotlight img { height: 260px; }
    :is(.library-home-preview, .library-home) .lp-spotlight > div { padding: 40px; }
}
@media (max-width: 767px) {
    :is(.library-home-preview, .library-home) .lp-container { width: calc(100% - 32px); }
    :is(.library-home-preview, .library-home) .lp-previewbar__inner { min-height: 50px; justify-content: center; }
    :is(.library-home-preview, .library-home) .lp-previewbar p { display: none; }
    :is(.library-home-preview, .library-home) .lp-previewbar a { padding-inline: 10px; font-size: 12px; }
    :is(.library-home-preview, .library-home) .lp-section { padding: 52px 0; }
    :is(.library-home-preview, .library-home) .lp-section--flush { padding-top: 40px; }
    :is(.library-home-preview, .library-home) .lp-dash-wrap .lp-container { width: calc(100% - 32px); }
    :is(.library-home-preview, .library-home) .lp-heading { flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
    :is(.library-home-preview, .library-home) .lp-heading > a { font-size: 14px; }
    :is(.library-home-preview, .library-home) .lp-hero .library-discovery__welcome { margin-bottom: 28px; font-size: 16px; }
    :is(.library-home-preview, .library-home) .lp-hero--photo { padding-top: 48px; }
    :is(.library-home-preview, .library-home) .lp-hero-today { grid-template-columns: 1fr; gap: 0; margin-top: 36px; padding-top: 20px; }
    :is(.library-home-preview, .library-home) .lp-hero-today__title { padding: 0 0 14px; }
    :is(.library-home-preview, .library-home) .lp-hero-today__campus, :is(.library-home-preview, .library-home) .lp-hero-today__title + .lp-hero-today__campus { padding: 14px 0; border-left: 0; border-top: 1px solid rgb(255 255 255 / 18%); }
    :is(.library-home-preview, .library-home) .lp-hero-today__more { padding-top: 14px; border-top: 1px solid rgb(255 255 255 / 18%); }
    :is(.library-home-preview, .library-home) .lp-collection-list { grid-template-columns: 1fr; }
    :is(.library-home-preview, .library-home) .lp-collection-list li, :is(.library-home-preview, .library-home) .lp-collection-list li + li { padding: 20px 0; border-left: 0; }
    :is(.library-home-preview, .library-home) .lp-collection-list li + li { border-top: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-collection-list h3 { font-size: 20px; margin-bottom: 6px; }
    :is(.library-home-preview, .library-home) .lp-campus-panels, :is(.library-home-preview, .library-home) .lp-visit, :is(.library-home-preview, .library-home) .lp-schedules,
    :is(.library-home-preview, .library-home) .lp-features, :is(.library-home-preview, .library-home) .lp-service-feature, :is(.library-home-preview, .library-home) .lp-updates__grid { grid-template-columns: 1fr; }
    :is(.library-home-preview, .library-home) .lp-campus-panel__body { padding: 22px 20px 24px; }
    :is(.library-home-preview, .library-home) .lp-campus-panel h3 { font-size: 23px; }
    :is(.library-home-preview, .library-home) .lp-week > div { grid-template-columns: 104px 1fr; }
    :is(.library-home-preview, .library-home) .lp-hero--dashboard { padding-bottom: 104px; }
    :is(.library-home-preview, .library-home) .lp-dash-wrap { margin-top: -72px; }
    :is(.library-home-preview, .library-home) .lp-dash__today, :is(.library-home-preview, .library-home) .lp-dash__tasks { padding: 24px 20px; }
    :is(.library-home-preview, .library-home) .lp-dash__today .lp-now { display: block; width: auto; }
    :is(.library-home-preview, .library-home) .lp-dash__today .lp-now + .lp-now { margin-left: 0; }
    :is(.library-home-preview, .library-home) .lp-task-list { grid-template-columns: 1fr; margin-top: 14px; }
    :is(.library-home-preview, .library-home) .lp-task-list a { grid-template-columns: 40px 1fr; gap: 14px; padding-block: 12px; }
    :is(.library-home-preview, .library-home) .lp-task-list i { width: 40px; height: 40px; font-size: 21px; }
    :is(.library-home-preview, .library-home) .lp-task-list strong { font-size: 16px; }
    :is(.library-home-preview, .library-home) .lp-spotlight img { height: 200px; }
    :is(.library-home-preview, .library-home) .lp-spotlight > div { padding: 28px 20px 32px; }
    :is(.library-home-preview, .library-home) .lp-schedule summary { padding: 18px 20px; font-size: 18px; }
    :is(.library-home-preview, .library-home) .lp-schedule .lp-week { padding-inline: 8px; }
    :is(.library-home-preview, .library-home) .lp-schedule > .lp-note { padding-inline: 20px; }
    :is(.library-home-preview, .library-home) .lp-place .library-campus-image { height: 220px; }
    :is(.library-home-preview, .library-home) .lp-today-bar { grid-template-columns: 1fr; margin-top: -48px; }
    :is(.library-home-preview, .library-home) .lp-today-bar__title, :is(.library-home-preview, .library-home) .lp-today-bar .lp-now { padding: 20px; }
    :is(.library-home-preview, .library-home) .lp-today-bar .lp-now + .lp-now { border-left: 0; border-top: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-feature > div { padding: 22px 20px 26px; }
    :is(.library-home-preview, .library-home) .lp-feature h3 { font-size: 23px; }
    :is(.library-home-preview, .library-home) .lp-table th, :is(.library-home-preview, .library-home) .lp-table td { padding: 12px; }
    :is(.library-home-preview, .library-home) .lp-table--week th:first-child { width: auto; }
    :is(.library-home-preview, .library-home) .lp-table tbody th { flex-direction: column; align-items: start; gap: 4px; }
    :is(.library-home-preview, .library-home) .lp-service-feature { gap: 28px; }
    :is(.library-home-preview, .library-home) .lp-service-feature img { height: 240px; }
    :is(.library-home-preview, .library-home) .lp-updates { padding: 44px 0; }
    :is(.library-home-preview, .library-home) .lp-shortcuts nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(.library-home-preview, .library-home) .lp-shortcuts a { flex-direction: column; gap: 8px; padding: 20px 12px; text-align: center; }
    :is(.library-home-preview, .library-home) .lp-shortcuts a:nth-child(3n) { border-right: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-shortcuts a:nth-child(2n) { border-right: 0; }
    :is(.library-home-preview, .library-home) .lp-shortcuts a:nth-child(n + 4) { border-bottom: 1px solid var(--color-border); }
    :is(.library-home-preview, .library-home) .lp-shortcuts a:nth-child(n + 5) { border-bottom: 0; }
}
@media (max-width: 479px) {
    :is(.library-home-preview, .library-home) .lp-resource-grid { grid-template-columns: 1fr; gap: 14px; }
    :is(.library-home-preview, .library-home) .lp-resource { display: grid; grid-template-columns: 112px 1fr; }
    :is(.library-home-preview, .library-home) .lp-resource > img { height: 100%; min-height: 120px; }
    :is(.library-home-preview, .library-home) .lp-resource__body { padding: 16px 18px; }
    :is(.library-home-preview, .library-home) .lp-resource h3 { font-size: 18px; margin-bottom: 6px; }
}
@media (prefers-reduced-motion: reduce) {
    :is(.library-home-preview main, .library-home) a, :is(.library-home-preview main, .library-home) i, :is(.library-home-preview, .library-home) :is(.lp-resource, .lp-feature, .lp-campus) { transition: none; }
}

/* Resource shortcuts in the photo hero (replaces the tabbed search) */
.library-home .lp-hero-links { --lp-hero-rule: rgb(255 255 255 / 20%); max-width: 1180px; margin-inline: auto; border: 1px solid var(--lp-hero-rule); border-top: 3px solid var(--color-cyan-500); background: rgb(0 33 71 / 62%); }
.library-home .lp-hero-links li { padding: 28px 24px; }
.library-home .lp-hero-links li + li { padding-left: 24px; border-left-color: var(--lp-hero-rule); }
.library-home .lp-hero-links li:hover { background: rgb(255 255 255 / 6%); }
.library-home .lp-hero-links h2 { margin: 0 0 10px; color: white; font-size: 21px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
.library-home .lp-hero-links h2 a { color: white; text-underline-offset: 5px; }
.library-home .lp-hero-links h2 a::after { content: ''; position: absolute; inset: 0; }
.library-home .lp-hero-links h2 i { margin-left: 2px; color: var(--color-cyan-500); font-size: 24px; vertical-align: -5px; transition: transform 180ms cubic-bezier(.16, 1, .3, 1); }
.library-home .lp-hero-links li:hover h2 a { color: white; text-decoration: underline; }
.library-home .lp-hero-links li:hover h2 i { transform: translateX(4px); }
.library-home .lp-hero-links p { color: rgb(255 255 255 / 82%); line-height: 1.6; }
@media (max-width: 1199px) {
    .library-home .lp-hero-links li:nth-child(odd) { padding-left: 24px; }
    .library-home .lp-hero-links li:nth-child(n + 3) { border-top-color: var(--lp-hero-rule); }
}
@media (max-width: 767px) {
    .library-home .lp-hero-links li, .library-home .lp-hero-links li:nth-child(odd), .library-home .lp-hero-links li + li { padding: 16px 18px; }
    .library-home .lp-hero-links li + li { border-top-color: var(--lp-hero-rule); }
    .library-home .lp-hero-links h2 { margin-bottom: 4px; font-size: 18px; }
    .library-home .lp-hero-links p { font-size: 14px; line-height: 1.5; }
}
@media (prefers-reduced-motion: reduce) {
    .library-home .lp-hero-links h2 i { transition: none; }
}
