html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  background: #f5f7f3;
  color: #243127;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.hero { background: linear-gradient(125deg,#153f2e,#287555); color:white; padding:4.5rem 3rem; border-radius:1.5rem; margin:1rem 0 3rem; box-shadow:0 20px 50px rgba(21,63,46,.18); }
.hero h1 { font-size:clamp(2.2rem,5vw,4.2rem); max-width:760px; letter-spacing:-.04em; }
.hero p { font-size:1.15rem; max-width:620px; opacity:.88; }
.eyebrow { color:#d19b35; font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; }
.book-section { margin:3.5rem 0; }
.section-heading,.page-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:1.25rem; gap:1rem; }
.section-heading p,.page-heading p { color:#69766d; margin:0; }
.book-card { height:100%; background:white; border-radius:1rem; overflow:hidden; box-shadow:0 8px 28px rgba(20,50,35,.09); position:relative; transition:.2s ease; }
.book-card:hover { transform:translateY(-4px); box-shadow:0 14px 35px rgba(20,50,35,.14); }
.book-card img { width:100%; height:245px; object-fit:cover; background:#e4e9e3; }
.book-card-body { padding:1.1rem; }
.book-card h3 { font-size:1.1rem; margin:.7rem 0; }
.status-pill { display:inline-block; background:#e2f1e8; color:#17603e; padding:.25rem .65rem; border-radius:999px; font-size:.78rem; font-weight:700; }
.stars { color:#a66c00; font-weight:700; }
.card-panel,.review-card { background:white; border:1px solid #e2e8e2; border-radius:1rem; padding:1.4rem; box-shadow:0 7px 24px rgba(20,50,35,.06); }
.review-card { margin-bottom:1rem; }
.review-card p { margin:.65rem 0; }
.review-card small { color:#77827a; }
.empty-state { text-align:center; color:#77827a; padding:2rem !important; }
.book-detail { display:grid; grid-template-columns:minmax(220px,320px) 1fr; gap:3rem; align-items:start; }
.book-cover { width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:1rem; box-shadow:0 18px 45px rgba(20,50,35,.18); background:#e4e9e3; }
.metadata dt { color:#69766d; }
@media(max-width:767px){.hero{padding:3rem 1.5rem}.book-detail{grid-template-columns:1fr}.book-cover-wrap{max-width:280px}.section-heading,.page-heading{align-items:start;flex-direction:column}}
