/* ==========================================================================
   Library Theme - Responsive Breakpoints
   ========================================================================== */

/* ---------- Tablet (max-width: 1024px) ---------- */
@media (max-width: 1024px) {
  .lib-hero-title { font-size: 2.4rem; }
  .lib-hero { min-height: 440px; padding: 100px 0 60px; }

  .lib-results-grid { grid-template-columns: 220px 1fr; gap: 20px; }
  .lib-detail-layout { gap: 24px; }
  .lib-detail-cover-section { width: 200px; }
  .lib-detail-info-grid { grid-template-columns: 1fr; }
  .lib-map-grid { grid-template-columns: 1fr; gap: 24px; }
  .lib-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .lib-grid-item { width: calc(33.333% - 11px); }
}

/* ---------- Mobile landscape / Small tablet (max-width: 768px) ---------- */
@media (max-width: 768px) {
  .lib-container { padding: 0 16px; }
  
  /* Navbar mobile */
  .lib-navbar-toggle { display: flex; }
  .lib-navbar-menu {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    background: var(--lib-surface); border-bottom: 1px solid var(--lib-glass-border);
    flex-direction: column; padding: 16px; gap: 4px;
    box-shadow: var(--lib-shadow-lg);
  }
  .lib-navbar-menu-open { display: flex; }
  .lib-nav-link { width: 100%; padding: 12px 16px; border-radius: var(--lib-radius-sm); }
  .lib-btn-login { margin-top: 8px; text-align: center; justify-content: center; }
  .lib-navbar-title { max-width: 200px; font-size: 1rem; }
  .lib-nav-dropdown { width: 100%; }
  .lib-dropdown-menu { position: static; box-shadow: none; background: var(--lib-bg); border-radius: var(--lib-radius-sm); margin-top: 4px; }

  /* Hero */
  .lib-hero { min-height: 380px; padding: 90px 0 50px; }
  .lib-hero-title { font-size: 1.8rem; }
  .lib-hero-subtitle { font-size: 1rem; margin-bottom: 24px; }
  .lib-search-wrapper { flex-direction: column; border-radius: var(--lib-radius); padding: 10px; gap: 8px; }
  .lib-search-icon { display: none; }
  .lib-search-input { text-align: center; }
  .lib-search-btn { width: 100%; border-radius: var(--lib-radius-sm); }
  .lib-search-wrapper-sm { flex-direction: row; border-radius: var(--lib-radius-full); padding: 4px 4px 4px 16px; }
  .lib-search-wrapper-sm .lib-search-icon { display: block; }
  .lib-search-wrapper-sm .lib-search-input { text-align: left; }
  .lib-search-wrapper-sm .lib-search-btn { width: auto; border-radius: var(--lib-radius-full); }

  /* Results */
  .lib-results-grid { grid-template-columns: 1fr; }
  .lib-filter-sidebar { position: static; }
  .lib-results-info-bar { flex-direction: column; align-items: flex-start; }

  /* Biblio card */
  .lib-biblio-card-inner { flex-direction: column; }
  .lib-biblio-cover { width: 100%; max-width: 160px; margin: 0 auto; }
  .lib-biblio-sidebar { width: 100%; flex-direction: row; justify-content: space-between; }
  .lib-availability { width: auto; flex: 1; }
  .lib-sidebar-btn { width: auto; padding: 8px 16px; }

  /* Grid */
  .lib-grid-item { width: calc(50% - 8px); }

  /* Detail */
  .lib-detail-layout { flex-direction: column; }
  .lib-detail-cover-section { width: 100%; max-width: 240px; margin: 0 auto; }
  .lib-detail-title { font-size: 1.4rem; }

  /* Page headers */
  .lib-page-header { padding: 80px 0 24px; }
  .lib-page-title { font-size: 1.5rem; }
  .lib-results-header { padding: 80px 0 20px; }

  /* Sections */
  .lib-section { padding: 40px 0; }
  .lib-section-title { font-size: 1.3rem; }

  /* Footer */
  .lib-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .lib-footer-bottom { flex-direction: column; text-align: center; gap: 4px; }

  /* Map */
  .lib-map-grid { grid-template-columns: 1fr; }

  /* Visitor */
  .lib-visitor-page { flex-direction: column; }
  .lib-visitor-form-panel { width: 100%; }
  .lib-visitor-info-panel { min-height: 300px; }
  .lib-visitor-info-content { flex-direction: column; text-align: center; }
  .lib-visible-mobile { display: block; }

  /* Modal */
  .lib-modal { border-radius: var(--lib-radius); }
  .lib-form-row { flex-direction: column; gap: 0; }

  /* Content card */
  .lib-content-card { padding: 20px; }

  /* Share */
  .lib-share-buttons { grid-template-columns: 1fr; }
}

/* ---------- Small mobile (max-width: 480px) ---------- */
@media (max-width: 480px) {
  .lib-hero-title { font-size: 1.5rem; }
  .lib-hero-subtitle { font-size: 0.9rem; }
  .lib-hero { min-height: 340px; padding: 80px 0 40px; }

  .lib-grid-item { width: 100%; }
  .lib-grid-cover { min-height: 160px; }

  .lib-biblio-cover { max-width: 120px; }
  .lib-biblio-actions { flex-wrap: wrap; }
  
  .lib-detail-cover-section { max-width: 180px; }
  .lib-detail-title { font-size: 1.2rem; }
  .lib-detail-info-grid { grid-template-columns: 1fr; }

  .lib-visitor-form-panel { padding: 24px; }
  .lib-visitor-welcome { font-size: 1.2rem; }
  .lib-visitor-avatar { width: 80px; height: 80px; }
  .lib-visitor-quote p { font-size: 1rem; }

  .lib-section-title { font-size: 1.15rem; }
  .lib-navbar-title { max-width: 160px; font-size: 0.9rem; }
}

/* ---------- Print ---------- */
@media print {
  .lib-navbar, .lib-hero-bg, .lib-footer, .lib-chat-fab,
  .lib-modal-overlay, .lib-search-form, .lib-navbar-toggle,
  .lib-biblio-sidebar, .lib-detail-actions { display: none !important; }
  
  body { background: #fff; color: #000; }
  a { color: #333; }
  .lib-content-card, .lib-biblio-card, .lib-detail-cover-card {
    background: #fff; border: 1px solid #ddd; box-shadow: none;
  }
}
