/* Read4Max Books mobile catalog layer v1.
   Loaded last so it resolves legacy responsive conflicts without touching generated book assets. */

@media (max-width: 760px) {
  :root {
    --mobile-gutter: clamp(0.875rem, 4vw, 1.25rem);
  }

  html {
    scroll-padding-top: 4.5rem;
    -webkit-text-size-adjust: 100%;
  }

  body {
    min-width: 0;
    overflow-x: hidden;
    background:
      radial-gradient(circle at 100% 0, rgba(166, 97, 61, .08), transparent 22rem),
      var(--paper);
  }

  .site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    height: calc(4rem + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) var(--mobile-gutter) 0;
    border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--paper) 93%, transparent);
    backdrop-filter: blur(16px);
  }

  .brand {
    gap: .65rem;
  }

  .brand-mark {
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 auto;
    font-size: .72rem;
  }

  .brand strong {
    font-size: 1.05rem;
  }

  .brand small {
    margin-top: .2rem;
    font-size: .54rem;
    letter-spacing: .2em;
  }

  main {
    width: 100%;
    padding: 0 var(--mobile-gutter) 3.5rem;
  }

  .library {
    width: 100%;
    padding-top: clamp(2rem, 7vw, 3rem) !important;
  }

  .library-heading {
    display: block;
  }

  .library-heading .eyebrow {
    margin-bottom: .7rem;
    font-size: .64rem;
    letter-spacing: .2em;
  }

  .library-heading h1 {
    max-width: 10ch;
    font-size: clamp(2.45rem, 11.5vw, 3.65rem) !important;
    line-height: .96 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance;
  }

  .search-box {
    width: 100%;
    height: 3.25rem;
    margin-top: 1.55rem;
    padding: 0 .9rem;
    gap: .7rem;
    border: 1px solid var(--line);
    border-radius: .9rem;
    background: color-mix(in srgb, var(--paper-strong) 56%, transparent);
  }

  .search-box:focus-within {
    border-color: color-mix(in srgb, var(--accent) 65%, var(--ink));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
  }

  .search-box svg {
    width: 1.15rem;
    flex: 0 0 auto;
  }

  .search-box input {
    min-width: 0;
    font-size: 1rem;
  }

  .results-summary {
    min-height: 1.2rem;
    margin: 1.2rem 0 1rem;
    font-size: .75rem;
  }

  .book-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: clamp(1.9rem, 7vw, 2.6rem) clamp(.65rem, 3vw, .9rem) !important;
  }

  .book-card {
    width: 100%;
    max-width: none;
    min-width: 0;
    display: flex;
    flex-direction: column;
  }

  .cover-button {
    width: 100%;
    aspect-ratio: 5 / 8;
    border-radius: .18rem;
    overflow: hidden;
    box-shadow: 0 .75rem 1.7rem rgba(29, 28, 23, .14);
  }

  .cover-button:hover {
    transform: none;
  }

  .cover-button:active {
    transform: scale(.985);
  }

  .book-cover {
    width: 100%;
    height: 100%;
    max-width: none !important;
    margin: 0 !important;
    object-fit: cover;
  }

  .book-meta {
    min-width: 0;
    padding-top: .8rem;
  }

  .book-category {
    display: block;
    margin-bottom: .38rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .57rem !important;
    letter-spacing: .14em !important;
  }

  .book-title {
    margin: 0;
    min-height: 0;
    font-size: clamp(1.08rem, 4.7vw, 1.28rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.018em !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  .book-subtitle {
    margin-top: .32rem;
    font-size: .78rem !important;
    line-height: 1.32 !important;
    overflow-wrap: anywhere;
  }

  .book-author {
    margin-top: .52rem;
    font-size: .88rem !important;
    line-height: 1.3 !important;
    font-weight: 500;
    overflow-wrap: anywhere;
  }

  .book-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, .8fr);
    gap: .38rem !important;
    margin-top: .8rem !important;
  }

  .book-actions .button {
    width: auto !important;
    min-width: 0;
    min-height: 2.55rem;
    padding: .58rem .45rem !important;
    border-radius: .45rem;
    font-size: .69rem !important;
    white-space: nowrap;
  }

  footer {
    padding: 1.5rem var(--mobile-gutter) calc(1.8rem + env(safe-area-inset-bottom));
    flex-direction: column;
    gap: .55rem;
    line-height: 1.5;
  }

  .book-dialog {
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: auto;
    border-radius: 0;
    overscroll-behavior: contain;
  }

  .book-dialog[open] {
    display: block;
  }

  body:has(.book-dialog[open]) {
    overflow: hidden;
  }

  .dialog-close {
    position: fixed;
    top: calc(.7rem + env(safe-area-inset-top));
    right: .75rem;
    z-index: 5;
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(23, 33, 31, .12);
    background: rgba(255, 253, 248, .92);
    box-shadow: 0 .35rem 1.25rem rgba(20, 25, 22, .14);
  }

  .dialog-layout {
    min-height: 100%;
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
  }

  .dialog-layout > img {
    width: min(44vw, 11.5rem) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 5 / 8;
    margin: calc(2.9rem + env(safe-area-inset-top)) auto 0;
    object-fit: cover !important;
    box-shadow: 0 1rem 2.7rem rgba(20, 25, 22, .17);
  }

  .dialog-copy {
    width: 100%;
    min-width: 0;
    padding: 1.45rem var(--mobile-gutter) calc(2.25rem + env(safe-area-inset-bottom)) !important;
  }

  .dialog-copy .eyebrow {
    margin-bottom: .75rem;
  }

  .dialog-copy h2 {
    max-width: none;
    font-size: clamp(2rem, 9vw, 3rem) !important;
    line-height: 1 !important;
    letter-spacing: -.035em !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  .dialog-copy .book-subtitle {
    font-size: .95rem !important;
  }

  .dialog-copy .dialog-author {
    margin-top: .75rem;
    font-size: 1rem;
  }

  .dialog-copy .dialog-description {
    margin: 1.35rem 0;
    font-size: .96rem;
    line-height: 1.62 !important;
  }

  .dialog-copy .book-actions {
    grid-template-columns: 1fr 1fr;
    margin-top: 0 !important;
  }

  .dialog-copy .book-actions .button {
    min-height: 3rem;
    font-size: .78rem !important;
  }

  .dialog-details {
    margin-top: 1.2rem;
    padding-top: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .65rem 1rem !important;
    line-height: 1.4;
  }
}

@media (max-width: 360px) {
  .book-grid {
    gap-inline: .55rem !important;
  }

  .book-title {
    font-size: 1.02rem !important;
  }

  .book-author {
    font-size: .82rem !important;
  }

  .book-actions .button {
    font-size: .64rem !important;
  }
}

@media (min-width: 761px) and (max-width: 1024px) {
  .book-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .book-card {
    max-width: none;
  }
}
