/* VA Horizon onboarding forms: shared styles.
   Light redesign tokens only. Navy #082541, gold #C39A26 / #D4A02F, warm #F6F1E8 / #FAF7F0,
   divider #E2E8F0. Reuses cards.css .btn* and Montserrat from fonts.css. No new brand colors. */

.ob-hero { background:#FAF7F0; position:relative; overflow:hidden; border-bottom:1px solid #e8e4dc; }
.ob-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 800px 500px at 100% 0%, rgba(212,160,47,0.10) 0%, transparent 60%); pointer-events:none; }
.ob-hero::after { content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(8,37,65,0.05) 1px, transparent 1px); background-size:26px 26px; pointer-events:none; }
.ob-hero-inner { position:relative; z-index:2; }

/* Section label pill */
.ob-pill { display:inline-flex; align-items:center; gap:0.5rem; padding:0.35rem 0.9rem; background:rgba(212,160,47,0.1); border:1px solid rgba(212,160,47,0.3); border-radius:999px; font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:#C39A26; }
.ob-pill-dot { width:6px; height:6px; border-radius:50%; background:#D4A02F; flex-shrink:0; }

/* Pre-flight block */
.ob-preflight { background:#fff; border:1px solid #e8e4dc; border-left:4px solid #D4A02F; border-radius:1rem; padding:1.5rem 1.75rem; }
.ob-preflight h2 { font-weight:800; color:#082541; letter-spacing:-0.01em; margin-bottom:0.5rem; }
.ob-preflight p { color:rgba(8,37,65,0.78); line-height:1.65; font-size:0.95rem; }
.ob-preflight p + p { margin-top:0.75rem; }

/* Progress bar */
.ob-progress-wrap { background:#fff; border:1px solid #E2E8F0; border-radius:0.75rem; padding:1rem 1.25rem; }
.ob-progress-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:0.85rem; font-weight:700; color:#082541; }
.ob-progress-track { margin-top:0.75rem; height:0.5rem; overflow:hidden; border-radius:999px; background:#F8F9FA; }
.ob-progress-bar { height:100%; background:#D4A02F; border-radius:999px; transition:width 0.3s ease; }

/* Resume banner */
.ob-resume { display:none; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; background:#F6F1E8; border:1px solid rgba(212,160,47,0.4); border-radius:0.75rem; padding:1rem 1.25rem; }
.ob-resume.is-visible { display:flex; }
.ob-resume p { color:#082541; font-size:0.9rem; font-weight:600; margin:0; }
.ob-resume-actions { display:flex; gap:0.5rem; flex-wrap:wrap; }

/* Step card */
.ob-step { background:#fff; padding:2rem; border-radius:1rem; border:1px solid #E2E8F0; box-shadow:0 1px 2px 0 rgba(0,0,0,0.05); }
.ob-step[hidden] { display:none; }
.ob-step-title { font-size:1.5rem; font-weight:800; color:#082541; letter-spacing:-0.01em; border-bottom:1px solid #E2E8F0; padding-bottom:1rem; margin-bottom:1.5rem; }
.ob-step-intro { color:rgba(8,37,65,0.7); font-size:0.95rem; line-height:1.6; margin:-0.75rem 0 1.5rem; }

/* Fields */
.ob-field { display:flex; flex-direction:column; gap:0.5rem; margin-bottom:1.25rem; }
.ob-field:last-child { margin-bottom:0; }
.ob-grid2 { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media (min-width:768px) { .ob-grid2 { grid-template-columns:repeat(2, minmax(0,1fr)); } }
.ob-label { font-size:0.875rem; font-weight:600; color:#082541; }
.ob-req { color:#C39A26; }
.ob-help { font-size:0.8rem; color:rgba(8,37,65,0.6); line-height:1.5; }
.ob-input { width:100%; padding:0.75rem; border-radius:0.5rem; border:1px solid #E2E8F0; background:rgba(248,249,250,0.4); color:#1A1A1A; outline:none; font-family:inherit; font-size:1rem; }
.ob-input:focus { border-color:#C39A26; box-shadow:0 0 0 3px rgba(199,155,36,0.35); }
textarea.ob-input { min-height:6.5rem; resize:vertical; }

/* Choice tiles (radio + checkbox) */
.ob-choices { display:grid; grid-template-columns:1fr; gap:0.75rem; margin-top:0.25rem; }
@media (min-width:768px) { .ob-choices.ob-choices-2 { grid-template-columns:repeat(2, minmax(0,1fr)); } }
.ob-choice { display:flex; align-items:flex-start; gap:0.75rem; padding:0.75rem; border-radius:0.5rem; border:1px solid #E2E8F0; cursor:pointer; transition:background-color 0.15s, border-color 0.15s; }
.ob-choice:hover { background:#F8F9FA; }
.ob-choice input { margin-top:0.2rem; accent-color:#C39A26; flex-shrink:0; }
.ob-choice span { font-size:0.9rem; color:#082541; line-height:1.45; }

/* Inline field error */
.ob-error { font-size:0.85rem; font-weight:600; color:#082541; margin-top:0.15rem; }
.ob-input[aria-invalid="true"] { border-color:#C39A26; box-shadow:0 0 0 3px rgba(199,155,36,0.35); }

/* Error summary */
.ob-error-summary { border:1px solid #D4A02F; background:#F6F1E8; color:#082541; padding:1.25rem; border-radius:0.75rem; }
.ob-error-summary[hidden] { display:none; }
.ob-error-summary h2 { font-weight:800; font-size:1rem; margin-bottom:0.5rem; }
.ob-error-summary ul { list-style:disc; padding-left:1.25rem; margin-top:0.5rem; display:flex; flex-direction:column; gap:0.4rem; font-size:0.9rem; }
.ob-error-summary a { text-decoration:underline; font-weight:700; color:#082541; }

/* Non-blocking inline notice (warnings, info) */
.ob-notice { border:1px solid rgba(212,160,47,0.5); background:#F6F1E8; color:#082541; padding:0.9rem 1.1rem; border-radius:0.5rem; font-size:0.88rem; line-height:1.55; margin-top:0.5rem; }
.ob-notice[hidden] { display:none; }
.ob-notice strong { font-weight:800; }

/* Conditional wrapper */
[data-show-if][hidden] { display:none; }

/* Step navigation */
.ob-nav { display:flex; gap:0.75rem; flex-wrap:wrap; margin-top:1.75rem; }
.ob-nav .btn { flex:1 1 auto; }
.ob-nav-back { flex:0 0 auto; }

/* Review list (final step) */
.ob-review { display:flex; flex-direction:column; gap:0.75rem; }
.ob-review-row { border:1px solid #E2E8F0; border-radius:0.5rem; padding:1rem; }
.ob-review-row dt { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:#C39A26; font-weight:800; }
.ob-review-row dd { color:#082541; font-size:0.95rem; margin-top:0.25rem; word-break:break-word; }

/* Honeypot */
.ob-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Success / status */
.ob-status[hidden] { display:none; }
.ob-status { border-radius:0.5rem; padding:0.9rem 1.1rem; font-size:0.9rem; font-weight:600; }
.ob-status-error { background:#F6F1E8; border:1px solid #D4A02F; color:#082541; }
