.book-view {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 4.375vw, 56px);
  color: var(--ink, #152535);
}

.book-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.885fr);
  align-items: start;
  min-height: 667px;
  padding-top: 59px;
  padding-bottom: 128px;
}

.book-intro { padding: 6px 32px 0 0; }

.book-view h1 {
  max-width: 530px;
  margin: 0;
  font: inherit;
  font-size: 52px;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.book-lead {
  max-width: 489px;
  margin: 18px 0 0;
  color: var(--secondary, #576779);
  font-size: 18px;
  line-height: 1.4;
}

.book-byline {
  max-width: 491px;
  margin: 115px 0 0;
  border-top: 1px solid var(--line, #d9e1e9);
  padding-top: 21px;
  color: var(--secondary, #576779);
  font-size: 14px;
  font-weight: 500;
}

.book-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 546px;
  min-height: 480px;
  margin: 0;
  padding: 19px;
  border: 1px solid var(--line, #d9e1e9);
  border-radius: 10px;
  background: #f7f9fb;
}

.book-card h2 {
  margin: 0 0 25px;
  font: inherit;
  font-size: 21px;
  font-weight: 600;
  line-height: 1.24;
  letter-spacing: -0.02em;
}

.book-field {
  display: grid;
  gap: 7px;
  margin: 0 0 22px;
  color: var(--secondary, #576779);
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
}

.book-field input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 11px;
  border: 1px solid var(--line, #d9e1e9);
  border-radius: 5px;
  background: white;
  color: var(--ink, #152535);
  font: inherit;
  font-size: 14px;
}

.book-field input::placeholder { color: var(--secondary, #576779); opacity: 1; }
.book-field input:focus-visible, .book-action:focus-visible {
  outline: 2px solid var(--blue, #075d95);
  outline-offset: 2px;
}

.book-consent, .book-error {
  margin: 0 0 19px;
  color: var(--secondary, #576779);
  font-size: 14px;
  line-height: 1.5;
}

.book-consent a { color: var(--blue, #075d95); text-decoration: underline; }
.book-error { color: #a12722; }
.book-view [hidden] { display: none !important; }
.book-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 41px;
  padding: 12px 16px;
  border: 0;
  border-radius: 8px;
  background: var(--blue, #075d95);
  color: white;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 17px;
  text-decoration: none;
  cursor: pointer;
}

.book-action:hover { background: #064e7d; color: white; }
.book-action:disabled { opacity: 0.65; cursor: progress; }
.book-card .book-action { align-self: flex-start; margin-top: auto; }
.book-confirm {
  min-height: 722px;
  padding-block: 47px 154px;
}
.book-confirm h1, .book-confirm .book-lead { max-width: 920px; }
.book-confirm h1:focus { outline: none; }
.book-summary { margin: 112px 0 16px; }
.book-summary > div {
  display: grid;
  grid-template-columns: 21.2% 34.9% 1fr;
  min-height: 82px;
  align-content: start;
  padding-block: 15px;
  border-top: 1px solid var(--line, #d9e1e9);
}

.book-summary dt, .book-summary dd { min-width: 0; margin: 0; padding-right: 16px; overflow-wrap: anywhere; }
.book-summary dt { color: var(--secondary, #576779); font: 500 12px/1.4 'IBM Plex Mono', monospace; }
.book-value { color: var(--ink, #152535); font-size: 22px; font-weight: 600; line-height: 1.3; letter-spacing: -0.02em; }
.book-detail { color: var(--secondary, #576779); font-size: 15px; line-height: 1.5; }

@media (max-width: 700px) {
  .book-view { padding-inline: 20px; }
  .book-layout { display: block; min-height: 0; padding-block: 32px 130px; }
  .book-view h1 { font-size: 36px; }
  .book-intro { padding: 0; }
  .book-lead { margin-top: 16px; font-size: 16px; }
  .book-byline { display: none; }
  .book-card { margin-top: 42px; max-width: none; }
  .book-confirm { min-height: 0; padding-block: 32px 190px; }
  .book-summary { margin: 105px 0 20px; }
  .book-summary > div { display: block; min-height: 106px; padding: 15px 0 19px; }
  .book-summary dd { padding: 0; }
  .book-summary .book-value { margin-top: 3px; font-size: 19px; }
  .book-summary .book-detail { margin-top: 5px; font-size: 13px; }
}
.book-view h1 { font-family: 'DM Serif Text', Georgia, serif; font-weight: 400; }
.book-card { padding: clamp(20px, 2.6vw, 36px); border-top: 4px solid #64bffa; background: #edf7fd; }
