/* Portal light pages — polish layer (additive, no selector/ID changes) */
body { line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { letter-spacing: -0.015em; line-height: 1.2; }
::selection { background: rgba(26, 77, 62, .18); }
.btn { transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .05s ease; min-height: 44px; line-height: 1.2; }
.btn:not(:disabled):active { transform: translateY(1px); }
.btn-ghost:hover { background: rgba(255,255,255,.75); border-color: #a9bbb0; }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.btn:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--forest); outline-offset: 2px;
}
input:focus, select:focus, textarea:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(26,77,62,.12); }
input::placeholder, textarea::placeholder { color: #8a9a90; }
img { max-width: 100%; }

/* Header action rows: compact pills instead of stretched blocks */
.page-header .btn-row, .catalog-top .btn-row { margin-top: 0; gap: 8px; }
.page-header .btn-row .btn, .catalog-top .btn-row .btn { flex: 0 0 auto; padding: 8px 14px; min-height: 40px; font-size: .9rem; white-space: nowrap; border-radius: 999px; }

/* Onboarding split form: header aligned with the wizard column */
.onboard-shell .page-header { max-width: 720px; margin-left: auto; margin-right: auto; align-items: flex-end; }
.onboard-shell .page-header > div:first-child { flex: 1 1 320px; }
.step-pill { white-space: nowrap; transition: background-color .2s ease, color .2s ease; }
.wizard .panel { padding: clamp(18px, 3vw, 28px); }
.wizard .panel h2 { margin-top: 0; }
.wizard .field { margin-bottom: 14px; }

@media (max-width: 640px) {
  .onboard-shell { padding: 20px 14px 40px; }
  .page-header h1 { font-size: 1.6rem; }
  .page-header .btn-row { width: 100% !important; }
  .steps { overflow-x: auto; scrollbar-width: none; gap: 6px; padding-bottom: 2px; }
  .steps::-webkit-scrollbar { display: none; }
  .step-pill { flex: 1 0 auto; padding: 8px 12px; font-size: .75rem; }
  .catalog-top { padding: 12px 14px; gap: 10px; }
  .catalog-top .btn-row { width: 100% !important; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .catalog-top .btn-row::-webkit-scrollbar { display: none; }
  .catalog-stats { flex-wrap: wrap; }
  .pricing-top { padding: 12px 14px; gap: 10px; flex-wrap: wrap; }
  .pricing-nav { gap: 10px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation-duration: .01ms !important; } }
