.book-wrap {
      max-width: 680px;
      margin: 0 auto;
      padding: 5rem 3rem 5rem;
    }

    .book-header { margin-bottom: 3rem; }
    .book-header p { color: var(--gray); margin-top: 0.75rem; font-size: 15px; }

    .form-section { margin-bottom: 2.5rem; }

    .section-rule {
      display: flex;
      align-items: center;
      gap: 1rem;
      margin-bottom: 1.25rem;
    }

    .section-rule span {
      font-size: 11px;
      font-weight: 400;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gray);
      white-space: nowrap;
    }

    .section-rule::after {
      content: '';
      flex: 1;
      height: 1px;
      background: var(--light);
    }

    .field-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 12px;
    }

    .field-row.full { grid-template-columns: 1fr; }

    .field {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .field label {
      font-size: 12px;
      letter-spacing: 0.04em;
      color: var(--gray);
      text-transform: uppercase;
    }

    .field input,
    .field select,
    .field textarea {
      font-family: var(--sans);
      font-size: 14px;
      font-weight: 300;
      color: var(--black);
      background: var(--white);
      border: 1px solid var(--light);
      border-radius: 2px;
      padding: 10px 12px;
      outline: none;
      transition: border-color 0.2s;
      width: 100%;
      -webkit-appearance: none;
      appearance: none;
    }

    .field select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a0a09a' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 12px center;
      padding-right: 32px;
    }

    .field input:focus,
    .field select:focus,
    .field textarea:focus { border-color: var(--black); }

    .field input.error { border-color: #c0392b; }
    .field-error-msg { font-size: 11px; color: #c0392b; margin-top: 3px; display: none; }
    .field-error-msg.visible { display: block; }

    .field textarea { resize: vertical; min-height: 90px; line-height: 1.6; }
    input[type="search"]::-webkit-search-cancel-button { display: none; }
    input[type="search"]::-webkit-search-decoration { display: none; }

    /* SERVICES */
    .services-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .service-card {
      border: 1px solid var(--light);
      border-radius: 2px;
      padding: 1rem;
      cursor: pointer;
      transition: border-color 0.2s, background 0.15s;
      display: flex;
      align-items: flex-start;
      gap: 10px;
      user-select: none;
    }

    .service-card:hover { border-color: #bbb; }

    .service-card.selected {
      border-color: var(--black);
      background: #f5f4f1;
    }

    .service-card input[type="checkbox"] {
      margin-top: 2px;
      flex-shrink: 0;
      accent-color: var(--black);
      width: 14px;
      height: 14px;
      cursor: pointer;
    }

    .service-info { flex: 1; }
    .service-name { font-size: 13px; font-weight: 400; color: var(--black); }
    .service-desc { font-size: 12px; color: var(--gray); margin-top: 2px; line-height: 1.4; }
    .service-price { font-size: 13px; color: #555; margin-top: 6px; font-family: var(--serif); }

    /* ESTIMATE */
    .estimate-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 1rem 0;
      border-top: 1px solid var(--light);
      border-bottom: 1px solid var(--light);
      margin: 1.5rem 0 0.75rem;
    }

    .estimate-label { font-size: 13px; color: var(--gray); letter-spacing: 0.05em; text-transform: uppercase; }

    .estimate-val {
      font-family: var(--serif);
      font-size: 2rem;
      font-weight: 300;
    }

    .estimate-note { font-size: 12px; color: var(--gray); line-height: 1.6; }

    /* SUBMIT */
    .submit-btn {
      width: 100%;
      margin-top: 2rem;
      padding: 1rem;
      background: var(--black);
      color: var(--white);
      border: none;
      border-radius: 2px;
      font-family: var(--sans);
      font-size: 13px;
      font-weight: 400;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      cursor: pointer;
      transition: opacity 0.2s;
    }

    .submit-btn:hover { opacity: 0.78; }
    .submit-btn:disabled { opacity: 0.35; cursor: not-allowed; }

    .legal-note {
      font-size: 12px;
      color: var(--gray);
      text-align: center;
      margin-top: 0.75rem;
    }

    /* REVIEW MODAL */
    .modal-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.45);
      z-index: 1000;
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
    }
    .modal-overlay.open { display: flex; }

    .modal {
      background: var(--white);
      border-radius: 2px;
      max-width: 480px;
      width: 100%;
      padding: 2rem;
    }

    .modal h2 { font-size: 1.25rem; margin-bottom: 0.25rem; }
    .modal .modal-sub { font-size: 13px; color: var(--gray); margin-bottom: 1.5rem; }

    .review-row {
      display: flex;
      justify-content: space-between;
      gap: 1rem;
      padding: 0.5rem 0;
      border-bottom: 1px solid var(--light);
      font-size: 13px;
    }
    .review-row:last-of-type { border-bottom: none; }
    .review-label { color: var(--gray); flex-shrink: 0; }
    .review-val { text-align: right; }

    .modal-deposit {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin: 1.25rem 0 1.5rem;
      padding: 0.85rem 1rem;
      background: #f5f4f1;
      border-radius: 2px;
    }
    .modal-deposit-label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gray); }
    .modal-deposit-val { font-family: var(--serif); font-size: 1.5rem; font-weight: 300; }

    .modal-actions { display: flex; gap: 10px; }
    .modal-actions .submit-btn { margin-top: 0; flex: 1; }
    .modal-cancel {
      flex: 0 0 auto;
      padding: 1rem 1.25rem;
      background: none;
      border: 1px solid var(--light);
      border-radius: 2px;
      font-family: var(--sans);
      font-size: 13px;
      cursor: pointer;
      color: var(--gray);
      transition: border-color 0.2s;
    }
    .modal-cancel:hover { border-color: #bbb; }

    /* SUCCESS */
    .success-state {
      display: none;
      text-align: center;
      padding: 4rem 0;
    }

    .success-check {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      background: var(--black);
      color: var(--white);
      font-size: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 1.5rem;
    }

    .success-state h2 { margin-bottom: 0.5rem; }
    .success-state p { color: var(--gray); font-size: 15px; }

    @media (max-width: 600px) {
      .book-wrap { padding: 4rem 1.5rem 4rem; }
      .field-row { grid-template-columns: 1fr; }
      .services-grid { grid-template-columns: 1fr; }
    }
