@font-face { font-family: 'DM Sans'; src: url('/assets/fonts/dmsans-latin.woff2') format('woff2'); font-style: normal; font-weight: 400 700; font-display: swap; }
:root { color-scheme: light; --book-blue: #2563eb; --book-navy: #172033; --book-muted: #475569; --book-line: #d7e2f0; }
* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--book-navy); font: 400 1rem/1.65 'DM Sans', sans-serif; font-synthesis: none; }
[hidden] { display: none !important; }
a { color: #174fb4; text-underline-offset: 0.2em; overflow-wrap: anywhere; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #172033; outline-offset: 4px; }
h1, h2 { font-weight: 700; line-height: 1.15; letter-spacing: -0.035em; margin: 0 0 1rem; }
h1 { font-size: clamp(2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
p { margin: 0 0 1rem; }
img { max-width: 100%; height: auto; display: block; }
.skip-link { position: absolute; top: -100px; left: 1rem; background: #fff; z-index: 5; padding: 0.7rem 1rem; }
.skip-link:focus { top: 0.5rem; }
.book-header { max-width: 1160px; margin: auto; padding: 1rem 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.book-header nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.book-header a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.book-brand { color: var(--book-navy); text-decoration: none; gap: 0.6rem; }
.book-brand img { width: 32px; height: 32px; }
.book-shell { max-width: 1100px; margin-inline: auto; padding-inline: 1.5rem; }
.book-band { background: #eaf2ff; }
.book-section { padding-block: 4rem; }
.book-hero { display: grid; grid-template-columns: 1.3fr 0.7fr; align-items: center; gap: 4rem; padding-block: 3.5rem; }
.book-hero p { max-width: 38rem; }
.book-cover { width: 270px; max-height: 460px; object-fit: contain; justify-self: center; border-radius: 8px; box-shadow: 0 12px 25px #17203318; }
.book-kicker { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.03em; color: #284d83; margin-bottom: 0.8rem; }
.book-lead { font-size: 1.25rem; line-height: 1.55; }
.book-small, .book-credit { color: var(--book-muted); font-size: 0.9rem; }
.book-credit { margin-top: 2.5rem; }
.book-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 0.75rem 1.2rem; border: 1px solid var(--book-blue); border-radius: 10px; background: var(--book-blue); color: #fff; font-weight: 600; line-height: 1.4; text-decoration: none; cursor: pointer; margin: 0.3rem 0 1rem; max-width: 100%; text-align: center; }
.book-button:hover:not(:disabled) { background: #174fb4; }
.book-button:disabled { cursor: not-allowed; background: #e2e8f0; border-color: #cbd5e1; color: #475569; }
.book-button-secondary { background: #fff; color: #174fb4; border-color: #a8bfdf; }
.book-button-secondary:hover:not(:disabled) { background: #edf4ff; }
.book-link-button { min-height: 44px; border: 0; padding: 0.6rem 0; background: none; text-decoration: underline; text-underline-offset: 0.2em; color: #174fb4; cursor: pointer; }
.book-previews { display: grid; gap: 1.5rem; margin-top: 2rem; }
.book-previews a { display: block; border: 1px solid var(--book-line); border-radius: 12px; overflow: hidden; color: #174fb4; background: #f8fafc; }
.book-previews img { width: 100%; }
.book-previews span { display: block; min-height: 44px; padding: 0.8rem 1rem; }
.book-details { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.book-details ul { padding-left: 1.3rem; }
.book-details li { margin-bottom: 0.75rem; }
.book-card { background: #fff; border: 1px solid var(--book-line); border-radius: 18px; padding: 1.75rem; margin-bottom: 1.5rem; min-width: 0; }
.book-price { font-size: 2.15rem; font-weight: 700; }
.book-price span { font-size: 1rem; font-weight: 400; display: block; color: var(--book-muted); }
.book-check { display: flex; align-items: flex-start; gap: 0.7rem; margin: 1.5rem 0; min-height: 44px; cursor: pointer; }
.book-check input { width: 24px; height: 24px; margin: 0.15rem 0; flex: 0 0 24px; accent-color: var(--book-blue); }
.book-status { overflow-wrap: anywhere; }
.book-status:empty { display: none; }
.book-access { max-width: 760px; }
.book-access h2 { margin-top: 1.8rem; }
.book-card h2 { margin-top: 0; }
.book-access form { display: grid; gap: 0.75rem; }
.book-access label { font-weight: 600; }
.book-access input { width: 100%; min-height: 48px; border: 1px solid #94a3b8; border-radius: 8px; padding: 0.6rem 0.8rem; color: var(--book-navy); background: #fff; }
.book-download-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.book-footer { max-width: 1100px; margin: auto; padding: 2rem 1.5rem; border-top: 1px solid var(--book-line); display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; font-size: 0.9rem; }
.book-footer p { width: 100%; margin: 0; }
.book-footer a { min-height: 44px; display: inline-flex; align-items: center; }
address { font-style: normal; }
address a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 700px) { .book-header { padding-inline: 1.2rem; gap: 0.3rem; } .book-header nav { gap: 1.2rem; } .book-shell { padding-inline: 1.2rem; } .book-hero { grid-template-columns: 1fr; gap: 1.5rem; padding-block: 2.5rem; } .book-cover { width: 200px; } .book-details { grid-template-columns: 1fr; gap: 1.5rem; } .book-section { padding-block: 2.5rem; } .book-card { padding: 1.2rem; } .book-download-actions { display: grid; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
