/* ── LAYOUT: sidebar + blog ─────────────────────────────────────── */
.lib-left-menu {
  width: 280px;
  float: left;
  margin: 0;
  padding: 1.5rem 1.25rem 1.5rem 0;
  border-right: 2px solid #e8ecf0;
  overflow-wrap: break-word;
  word-break: break-word;
  box-sizing: border-box;
}
#blog-holder {
  overflow: hidden;
  padding: 1.5rem 0 1.5rem 1.5rem;
}
/* The empty spacer div after blog-holder also has .lib-right-menu —
   hide it without touching #blog-holder which shares the class */
.lib-right-menu:not(#blog-holder) {
  display: none;
}
.search-background,
.home_promo {
  clear: both;
  width: 100%;
}

/* ── SEARCH BACKGROUND ──────────────────────────────────────────── */
.search-background {
  background: url("../../images/banner-2-expand.jpg") no-repeat center center / cover;
  width: 100%;
  padding: 2rem 1.5rem 2.5rem;
  margin-bottom: 0;
  box-sizing: border-box;
  overflow: hidden;
  position: relative;
}
.lib-label p {
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  letter-spacing: -0.02em;
  color: #fff;
  font-weight: 700;
  padding: 0 0 1rem 0;
  margin: 0;
  text-shadow: 0 2px 12px rgba(0,0,0,0.55);
  line-height: 1;
}

/* ── TABS ───────────────────────────────────────────────────────── */
#maintabs ul {
  display: flex;
  flex-wrap: nowrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
}
#maintabs ul li {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 0.9375rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  height: 44px;
  line-height: 44px;
  padding: 0 1.5rem;
  border: 1px solid rgba(0,0,0,0.18);
  border-bottom: none;
  border-right: none;
  background: #dce4eb;
  color: #1a2e44;
  user-select: none;
  transition: background 0.15s, color 0.15s;
  letter-spacing: 0.01em;
}
#maintabs ul li:last-child {
  border-right: 1px solid rgba(0,0,0,0.18);
}
#maintabs ul li:hover {
  background: #c8d4de;
}
li#tabl1 {
  background: #003366;
  color: #fff;
  border-color: #003366;
}
li#tabl2,
li#tabl3,
li#tabl4 {
  background: #dce4eb;
  color: #1a2e44;
}
li#tabl1[aria-selected="true"],
li#tabl2[aria-selected="true"],
li#tabl3[aria-selected="true"] {
  background: #003366;
  color: #fff;
  border-color: #003366;
}
li#tabl1[aria-selected="false"],
li#tabl2[aria-selected="false"],
li#tabl3[aria-selected="false"] {
  background: #dce4eb;
  color: #1a2e44;
  border-color: rgba(0,0,0,0.18);
}
#maintabs ul li:focus-visible {
  outline: 3px solid #4d9fff;
  outline-offset: -3px;
  z-index: 1;
}
#maintabs ul li a {
  color: inherit;
  text-decoration: none;
}
.newitems ul li:not(#tabl1):not(#tabl2):not(#tabl3):not(#tabl4) {
  font-size: 0.875rem;
  padding-bottom: 0.3125rem;
}

/* ── SEARCH BOX ─────────────────────────────────────────────────── */
.mainsearchbox {
  clear: both;
  float: left;
  padding: 1rem;
  margin: 0;
  position: relative;
  overflow: hidden;
  background: rgba(255,255,255,0.97);
  width: 100%;
  min-height: 100px;
  max-width: 680px;
  border: 1px solid rgba(0,0,0,0.12);
  border-top: none;
  box-shadow: 0 8px 32px rgba(0,51,102,0.13);
}
#tab2,
#tab3,
#tab4 {
  top: 10px;
  width: calc(100% - 11px);
  color: #000;
  padding: 6px;
  left: -9999px;
  float: none;
  position: absolute;
  box-sizing: border-box;
}
#tab1 {
  left: 11px;
  width: calc(100% - 11px);
  top: 10px;
  color: #000;
  padding: 6px;
  float: left;
  box-sizing: border-box;
}
.mainsearchbox input[type="text"],
.mainsearchbox input[type="search"],
.s-lg-form-control {
  height: 2.75rem;
  padding: 0 0.75rem;
  font-size: 1rem;
  border: 1.5px solid #a0b0c0;
  border-radius: 4px 0 0 4px;
  vertical-align: middle;
  background: #f7f9fb;
  color: #111;
  transition: border-color 0.15s, box-shadow 0.15s;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
}
.mainsearchbox input[type="text"]:focus,
.mainsearchbox input[type="search"]:focus,
.s-lg-form-control:focus {
  outline: none;
  border-color: #003366;
  box-shadow: 0 0 0 3px rgba(0,51,102,0.15);
  background: #fff;
}
.mainsearchbox input[type="button"],
.mainsearchbox input[type="submit"] {
  height: 2.75rem;
  padding: 0 1.25rem;
  font-size: 0.9375rem;
  font-weight: 700;
  background: #003366;
  color: #fff;
  border: 1.5px solid #003366;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  vertical-align: middle;
  letter-spacing: 0.02em;
  transition: background 0.15s;
  margin: 0;
}
.mainsearchbox input[type="button"]:hover,
.mainsearchbox input[type="submit"]:hover {
  background: #004488;
  border-color: #004488;
}
.mainsearchbox input[type="button"]:focus-visible,
.mainsearchbox input[type="submit"]:focus-visible {
  outline: 3px solid #4d9fff;
  outline-offset: 2px;
}
.s-lg-btn-api-drop {
  height: 2.75rem;
  padding: 0 1.25rem;
  font-size: 0.9375rem;
  font-weight: 700;
  background: #003366;
  color: #fff;
  border: 1.5px solid #003366;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  vertical-align: middle;
  letter-spacing: 0.02em;
  transition: background 0.15s;
}
.s-lg-btn-api-drop:hover { background: #004488; }
.s-lg-btn-api-drop:focus-visible {
  outline: 3px solid #4d9fff;
  outline-offset: 2px;
}
.s-lg-widget-search {
  display: inline-block;
  vertical-align: middle;
}

/* ── SIDEBAR ────────────────────────────────────────────────────── */
.lib-left-menu h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #003366;
  margin: 24px 0 0.75rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #003366;
  letter-spacing: -0.01em;
}
.lib-left-menu h3 {
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #5a7a99;
  margin: 1.25rem 0 0.4rem 0;
}
.lib-left-menu-first-header2 {
  margin: 0 0 0.75rem 0 !important;
}
.home-sidebar-wrapper {
  padding-left: 0;
  margin: 0;
  line-height: 1.5;
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
}
.lib-left-menu p,
.lib-left-menu strong {
  margin: 0;
  line-height: 1.8;
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
  font-size: 1em;
}
.home-sidebar-wrapper a {
  color: #003366;
  text-decoration: none;
  font-weight: 500;
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s, color 0.15s;
}
.home-sidebar-wrapper a:hover {
  color: #0055aa;
  border-bottom-color: #0055aa;
}
.home-sidebar-wrapper a:focus-visible {
  outline: 3px solid #4d9fff;
  outline-offset: 2px;
  border-radius: 2px;
}
.home-sidebar-wrapper .fa,
.home-sidebar-wrapper .fas,
.home-sidebar-wrapper .far {
  width: 1.25rem;
  color: #5a7a99;
}
.lib-left-menu ul {
  font-size: 1em;
  list-style: disc;
  padding-left: 1.25rem;
  margin: 0.25rem 0 0.75rem 0;
}
.lib-left-menu ul li {
  font-size: 1em;
  border-bottom: none !important;
  margin-bottom: 0.2rem;
  padding-bottom: 0;
  display: list-item !important;
}
.lib-left-menu ul li a {
  display: inline !important;
  grid-template-columns: none !important;
  padding: 0 !important;
  font-weight: 500;
  color: #003366;
}
hr {
  border: 0;
  border-top: 1px solid #e4e8ec;
  margin: 0.75rem 0;
}

/* ── BLOG / NEWS ────────────────────────────────────────────────── */
/* Post cards, pagination handled by feed-Lib.css */
#blog-holder h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #003366;
  margin: 0 0 0.75rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #003366;
  letter-spacing: -0.01em;
}
#blog-holder > p {
  display: none;
}

/* ── PROMO BOXES ────────────────────────────────────────────────── */
.home_promo {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1.5rem 0;
  background: #fff;
  box-sizing: border-box;
}
.home_promo > div {
  flex: 0 0 calc(25% - 0.75rem);
  min-width: 0;
  padding: 0;
}
.lib-home-bluebox {
  background: #003366;
  border-radius: 6px;
  overflow: hidden;
  color: #fff;
  margin-bottom: 0;
  transition: transform 0.18s, box-shadow 0.18s;
  box-shadow: 0 2px 8px rgba(0,51,102,0.12);
}
.lib-home-bluebox:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,51,102,0.22);
}
.lib-home-bluebox a:first-child {
  display: block;
  overflow: hidden;
}
.lib-home-bluebox a:first-child img {
  display: block;
  width: 100%;
  height: 160px;
  object-fit: cover;
  transition: transform 0.25s;
}
.lib-home-bluebox:hover a:first-child img {
  transform: scale(1.04);
}
.lib-home-bluebox-text {
  padding: 0.75rem 0.875rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.01em;
}
.lib-home-bluebox-text a { color: #fff; text-decoration: none; }
.lib-home-bluebox a:focus-visible {
  outline: 3px solid #4d9fff;
  outline-offset: 2px;
}
img.img-responsive { width: 100%; height: auto; display: block; }

/* ── ACCESSIBILITY ──────────────────────────────────────────────── */
.hideaccessibility,
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.hideaccessibility:focus,
.sr-only:focus,
.sr-only:focus-within {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.Lib-Header {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}
.harper-logo {
  background: #003366 url("https://www.harpercollege.edu/images/librarylogotype.png") center center no-repeat;
}
nav#main-navigation.sub-nav { z-index: 2; }

/* ── 992px ──────────────────────────────────────────────────────── */
@media (max-width: 992px) {
  .lib-left-menu {
    width: 100%;
    float: none;
    padding: 1.25rem 0;
    border-right: none;
    border-bottom: 2px solid #e8ecf0;
  }
  #blog-holder {
    overflow: visible;
    padding: 1.25rem 0;
  }
  .home_promo > div {
    flex: 0 0 calc(50% - 0.5rem);
  }
}

/* ── 767px ──────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .search-background {
    background: #003366;
    padding: 1rem;
    margin-bottom: 0;
  }
  .lib-label { display: none; }
  #maintabs ul li {
    font-size: 0.8125rem;
    padding: 0 0.75rem;
    height: 40px;
    line-height: 40px;
  }
  .mainsearchbox {
    margin: 0;
    max-width: 100%;
    box-shadow: none;
    border-left: none;
    border-right: none;
    min-height: 80px;
    padding: 0.75rem;
  }
  .home_promo {
    padding: 1rem 0;
    gap: 0.75rem;
  }
  .home_promo > div {
    flex: 0 0 calc(50% - 0.375rem);
  }
}

/* ── 480px ──────────────────────────────────────────────────────── */
@media (max-width: 480px) {
  #maintabs ul li {
    font-size: 0.75rem;
    padding: 0 0.5rem;
    height: 40px;
    line-height: 40px;
  }
  .home_promo > div { flex: 0 0 100%; }
  .col-sm-12.col-sm-push.col-md-12.col-md-push {
    max-width: calc(100% - 16px);
    margin-left: 8px;
    margin-right: 8px;
  }
  .news-slide .blog-landing-page {
    display: block;
  }
}