  body{display:flex;flex-direction:column;min-height:100vh}

  main{flex:1}
  .book{padding:var(--s7) 0;
    background:radial-gradient(820px 460px at 90% 0%,rgba(105,196,205,.18),transparent 62%),
    linear-gradient(rgba(52,164,221,.045) 1px,transparent 1px) 0 0/34px 34px,
    linear-gradient(90deg,rgba(52,164,221,.045) 1px,transparent 1px) 0 0/34px 34px,var(--offwhite)}
  .book h1{font-size:clamp(2rem,5vw,3.1rem);color:var(--ink);max-width:18ch;margin-bottom:var(--s3)}
  .book-lead{font-size:1.1rem;color:var(--muted);max-width:48ch;margin-bottom:var(--s4)}
  .reassure{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:var(--s4)}
  .reassure li{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:1rem}
  .reassure svg{flex:none;margin-top:3px}

  .form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--depth);padding:var(--s5)}
  @media(max-width:575px){.form-card{padding:var(--s4)}}
  .form-prog{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4);font-size:.8rem;color:var(--muted);font-weight:700;letter-spacing:.04em}
  .form-prog .bar{flex:1;height:6px;border-radius:3px;background:rgba(132,145,165,.25);overflow:hidden}
  .form-prog .bar i{display:block;height:100%;width:50%;background:var(--blue);transition:width .3s ease}
  .step{display:none}
  .step.active{display:block;animation:fade .3s ease}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .field{margin-bottom:var(--s3)}
  .field label{display:block;font-size:.9rem;font-weight:700;color:var(--ink);margin-bottom:6px}
  .field input,.field textarea{width:100%;min-height:52px;padding:12px var(--s3);font-family:inherit;font-size:1rem;color:var(--ink);background:var(--offwhite);border:1.5px solid var(--slate);border-radius:var(--radius-sm);transition:border-color .18s,box-shadow .18s}
  .field textarea{min-height:110px;resize:vertical;padding-top:14px}
  .field input:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(52,164,221,.22)}
  .field .err{display:none;color:var(--orange-deep);font-size:.85rem;margin-top:6px}
  .field.invalid input,.field.invalid textarea{border-color:var(--orange)}
  .field.invalid .err{display:block}
  .consent{display:flex;gap:12px;align-items:flex-start;margin:var(--s2) 0 var(--s4);font-size:.9rem;color:var(--muted)}
  .consent input{width:24px;height:24px;flex:none;margin-top:1px;accent-color:var(--blue);cursor:pointer}
  .consent a{color:var(--blue)}
  .consent.invalid{color:var(--orange-deep)}
  .consent.invalid input{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}
  .form-actions{display:flex;gap:var(--s2);flex-wrap:wrap}
  .form-done{display:none;text-align:center;padding:var(--s4) 0}
  .form-done h2{font-size:1.5rem;margin:var(--s2) 0 8px}
  .form-done p{color:var(--muted)}
  .is-done .step,.is-done .form-prog{display:none}
  .is-done .form-done{display:block}

  .alt{margin-top:var(--s7);padding-top:var(--s6);border-top:1px solid var(--line);text-align:center}
  .alt h2{font-size:1.5rem;margin-bottom:var(--s1)}
  .alt p{color:var(--muted);max-width:44ch;margin:0 auto var(--s4)}
  .cal-inline{width:100%;border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--depth)}
  .cal-inline > div{width:100%;min-height:680px;overflow:auto}
  .cal-note{font-size:.82rem;color:var(--muted);margin-top:var(--s2)}

  .book .row{align-items:flex-start}

  .book .step{position:static;padding-top:0;height:auto}
