.ibm {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial;
  max-width: 960px;
  margin: 40px auto;
  padding: 0 20px;
  text-align: center;
}

.ibm-head {
  display: inline-grid;
  grid-template-columns: 56px auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 28px;
  text-align: left;
}
.ibm-pin {
  width: 56px; height: 56px;
  display:flex; align-items:center; justify-content:center;
  font-size:28px; background:#fee2e2; color:#dc2626; border-radius:50%;
}
.ibm-eyebrow { color:#5e5e5e; font-size:14px; }
.ibm-title { font-weight:800; font-size:22px; color:#000000; }
.ibm-sub   { color:#5e5e5e; }

.ibm-steps h2 {
  font-size:22px; margin: 20px 0 12px; font-weight:800; color:#111827;
}
.ibm-step { display:none; }
.ibm-step.active { display:block; }

.ibm-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  margin: 18px auto 10px;
  text-align: left;
}

.ibm-card-radio {
  position: relative;
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-items: start;
  gap: 8px;
  width: 100%;
  padding: 18px;
  background: #ffffff;
  color: #0f172a;
  border: 2px solid #e5e7eb;
  border-radius: 14px;
  box-shadow: 0 6px 14px rgba(0,0,0,.06);
  cursor: pointer;
  transition: transform .08s ease, border-color .12s ease, box-shadow .12s ease, background .12s ease;
}

.ibm-card-radio:hover {
  border-color: #2563eb;
  background: transparent;
  box-shadow: none;
}

.ibm-card-radio .ibm-card-title { color: #111827; }
.ibm-card-radio .ibm-card-desc { color: #475569; }

.ibm-card-radio:focus-visible {
  outline: 3px solid #60a5fa;
  outline-offset: 2px;
}

.ibm-card-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 12px;
  background: #eef2ff; color: #1e3a8a;
}
.ibm-card-title { font-weight: 800; font-size: 18px; line-height: 1.2; }
.ibm-card-desc  { font-size: 14px; }

.ibm-card-radio.selected,
.ibm-card-radio[aria-checked="true"] {
  background: #ffffff !important;
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37,99,235,.15), 0 6px 14px rgba(0,0,0,.06);
}
.ibm-card-radio.selected .ibm-card-icon,
.ibm-card-radio[aria-checked="true"] .ibm-card-icon {
  background: #dbeafe;
  color: #1d4ed8;
}
.ibm-card-radio.selected::after,
.ibm-card-radio[aria-checked="true"]::after {
  content: "✓";
  position: absolute; top: 10px; right: 10px;
  width: 22px; height: 22px; border-radius: 50%;
  background: #16a34a; color: #fff; font-weight:800;
  display:flex; align-items:center; justify-content:center; font-size:13px;
}

.ibm-fields { display:grid; gap:12px; margin:16px auto; max-width: 960px; }
.ibm-fields.two { grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); }
.ibm-fields label { display:grid; gap:6px; font-weight:600; text-align:left; }
.ibm-fields input {
  padding:12px 10px; border-radius:10px; border:1px solid #d1d5db; font-size:16px; width:100%;
}

.ibm-note { font-size:14px; color:#374151; margin: 10px auto 0; max-width: 760px; }
.ibm-summary { margin-top:12px; padding:12px; background:#f9fafb; border:1px solid #e5e7eb; border-radius:10px; display:none; text-align:left; }

.ibm-nav { display:flex; gap:12px; justify-content:center; margin: 18px 0 6px; }
.ibm-prev, .ibm-next, .ibm-submit, .ibm-btn {
  appearance:none; border:0; padding:12px 18px; border-radius:10px; font-weight:700; cursor:pointer;
}
.ibm-prev { background:#e5e7eb; color:#111827; }
.ibm-next { background:#2563eb; color:#fff; }
.ibm-next[disabled] { opacity:.5; cursor:not-allowed; }
.ibm-submit { background:#10b981; color:#fff; }
.ibm-btn { background:#e5e7eb; color:#111827; text-decoration:none; display:inline-flex; align-items:center; }
.ibm-btn.ibm-primary { background:#2563eb; color:#fff; }

@media (max-width: 480px){
  .ibm-head { grid-template-columns: 40px auto; }
  .ibm-pin { width:40px; height:40px; font-size:20px; }
  .ibm-title { font-size:20px; }
}

.ibm-req { color:#dc2626; font-weight:700; }
.ibm-error { color:#dc2626; font-size:13px; margin-top:6px; display:none; }
.ibm-input-error { border-color:#ef4444 !important; box-shadow: 0 0 0 1px rgba(239,68,68,.25); }
.ibm-consent-wrap { margin: 10px 0 6px; text-align: left; }

.ibm-fields label .ibm-label-text {
  display: inline-block;
  margin-bottom: 4px;
}

.ibm-fields .ibm-req,
.ibm-fields .ibm-optional {
  font-weight: normal;
  font-size: 0.9em;
  margin-left: 3px;
}

