.bookwrap{padding-bottom:var(--sec)}
.bookform{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:start}

/* ------------------------------ Rail ------------------------------ */
.rail{position:sticky;top:100px;display:flex;flex-direction:column;gap:2px}
.rail__item{display:flex;align-items:center;gap:12px;padding:13px 4px;font-size:14px;font-weight:600;
  color:var(--muted);border-left:2px solid var(--line);padding-left:16px;transition:all .35s var(--ease)}
.rail__item .mono{font-size:11px;color:var(--muted)}
.rail__item.is-active{color:var(--ink);border-color:var(--red)}
.rail__item.is-active .mono{color:var(--red)}
.rail__item.is-complete{color:var(--ink-2)}
.rail__item.is-complete .mono{color:var(--ink)}

.rail__quote{margin-top:22px;padding:20px;display:flex;flex-direction:column;gap:6px}
.rail__quote .mono{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rail__quote b{font-size:26px;font-weight:600;letter-spacing:-.02em}
.rail__quote-note{font-size:11.5px;color:var(--muted)}
@media (max-width:980px){.rail{position:static;flex-direction:row;flex-wrap:wrap;gap:8px}
  .rail__item{border-left:0;border-bottom:2px solid var(--line);padding:10px 2px}
  .rail__quote{width:100%;order:99}}

/* --------------------------- Step form --------------------------- */
.steps-form{min-width:0}
.fstep{border:0;padding:0;margin:0;display:none;animation:stepIn .5s var(--ease-out)}
.fstep.is-active{display:block}
@keyframes stepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.fstep legend{display:flex;align-items:center;gap:12px;font-family:var(--f-display);font-weight:800;
  font-size:clamp(21px,2.4vw,28px);letter-spacing:-.01em;margin-bottom:28px;padding:0}
.fstep legend .mono{font-size:12px;color:var(--red);letter-spacing:.1em}

.field{display:flex;flex-direction:column;gap:9px;margin-bottom:20px}
.field>span:first-child{font-size:13px;font-weight:600;color:var(--ink-2)}
.field input,.field select,.field textarea{
  padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--line-2);
  background:var(--paper);font:inherit;font-size:15px;color:var(--ink);
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(var(--glow),.12)}
.field textarea{resize:vertical;min-height:110px;font-family:inherit}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:620px){.field-row{grid-template-columns:1fr}}

.field--radio{border:0;padding:0;margin-bottom:20px}
.field--radio>span{font-size:13px;font-weight:600;color:var(--ink-2);display:block;margin-bottom:10px}
.radiorow{display:flex;gap:12px;flex-wrap:wrap}
.radiorow label{display:flex;align-items:center;gap:9px;padding:12px 16px;border-radius:var(--r-sm);
  border:1px solid var(--line-2);font-size:14px;cursor:pointer;transition:all .3s var(--ease)}
.radiorow input:checked + *{color:var(--red)}
.radiorow label:has(input:checked){border-color:var(--red);background:var(--red-wash)}

/* Uploads */
.uploads{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}
.upload{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  padding:26px 14px;border-radius:var(--r-md);border:1.5px dashed var(--line-2);cursor:pointer;
  transition:all .3s var(--ease)}
.upload:hover{border-color:var(--red);background:var(--red-wash)}
.upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload__ico{font-size:22px;color:var(--red)}
.upload b{font-size:13.5px}
.upload span:last-child{font-size:11.5px;color:var(--muted)}
@media (max-width:620px){.uploads{grid-template-columns:1fr}}

.check{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);line-height:1.5;margin-top:8px}
.check input{margin-top:3px}
.check a{color:var(--red);font-weight:600}

.review{padding:20px 22px;border-radius:var(--r-md);background:var(--cream-2);margin-bottom:20px}
.review__hint{font-size:14px;color:var(--ink-2)}
.review__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}
.review__grid div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line-2);font-size:13.5px}
.review__grid span{color:var(--muted)}
.review__grid b{font-weight:600;text-align:right}
@media (max-width:620px){.review__grid{grid-template-columns:1fr}}

.fnav{display:flex;justify-content:space-between;align-items:center;margin-top:36px;gap:14px}
.fnav .btn{margin-left:auto}
.fnav #prevStep{margin-left:0;margin-right:auto}
