/* psyflo.com — Request access (invite request + onboarding-style wizard). */

.reqpage .req { min-height: 100vh; display: grid; grid-template-columns: 0.9fr 1.1fr; }

/* ── Left rail ─────────────────────────────────────────────────── */
.reqpage .req__rail { background: var(--navy-950, #141C4A); color: #fff; padding: clamp(32px, 4.5vw, 56px) clamp(28px, 4vw, 52px); display: flex; flex-direction: column; justify-content: space-between; gap: 44px; }
.reqpage .req__wordmark { color: #fff; font-size: 24px; }
.reqpage .req__title { font-family: var(--headline-font); font-weight: var(--headline-weight); letter-spacing: -0.015em; line-height: 1.12; font-size: clamp(30px, 3.4vw, 38px); color: #fff; margin: 0; text-wrap: balance; }
.reqpage .req__lede { font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.74); margin: 18px 0 0; max-width: 400px; text-wrap: pretty; }
.reqpage .req__list { margin: 34px 0 0; padding: 0; list-style: none; display: grid; gap: 16px; }
.reqpage .req__list li { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; color: rgba(255,255,255,.8); line-height: 1.5; }
.reqpage .req__check { flex: 0 0 auto; color: var(--gold-400, #C9A35E); margin-top: 1px; }
.reqpage .req__foot { font-size: 13px; color: rgba(255,255,255,.6); margin: 0; }
.reqpage .req__foot a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* ── Right column ──────────────────────────────────────────────── */
.reqpage .req__main { padding: clamp(32px, 4.5vw, 56px) clamp(24px, 4vw, 56px); display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; }
.reqpage .rw__shell { width: 100%; max-width: 560px; }

/* Step chips + progress */
.reqpage .rw__stepsbar { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
.reqpage .rw__stepchip { display: flex; align-items: center; gap: 8px; }
.reqpage .rw__dot { width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--ink-400, #A3A3A3); border: 1.5px solid var(--cream-300, #DFD3B7); font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.reqpage .rw__steplabel { display: none; font-size: 13px; font-weight: 600; color: var(--ink-400, #A3A3A3); }
.reqpage .rw__stepchip.is-active .rw__steplabel { display: inline; }
.reqpage .rw__stepchip.is-active .rw__dot { background: var(--navy-50, #EEF1F8); color: var(--navy-700, #303F87); border-color: var(--navy-700, #303F87); }
.reqpage .rw__stepchip.is-active .rw__steplabel { color: #0A0A0A; }
.reqpage .rw__stepchip.is-done .rw__dot { background: var(--navy-900, #1E2A6B); color: #fff; border-color: var(--navy-900, #1E2A6B); }
.reqpage .rw__stepchip.is-done .rw__steplabel { color: var(--ink-700, #404040); }
.reqpage .rw__track { height: 3px; background: var(--cream-200, #ECE4D2); border-radius: 2px; margin-top: 18px; overflow: hidden; }
.reqpage .rw__progress { display: block; height: 100%; width: 33%; background: var(--navy-900, #1E2A6B); transition: width 0.4s ease; }

/* Steps */
.reqpage .rw { margin-top: clamp(24px, 3.5vw, 36px); }
.reqpage .rw__step { border: none; margin: 0; padding: 0; min-width: 0; animation: rw-fade 0.3s ease; }
.reqpage .rw__step[hidden] { display: none; }
.reqpage .rw__steptitle { font-family: var(--headline-font); font-weight: var(--headline-weight); font-size: clamp(24px, 2.6vw, 28px); color: #0A0A0A; margin: 0; }
.reqpage .rw__stepsub { font-size: 14px; color: var(--ink-500, #737373); margin: 8px 0 0; }
.reqpage .rw__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 26px; }
.reqpage .rw__field { display: block; min-width: 0; }
.reqpage .rw__field--wide { grid-column: span 2; }
.reqpage .rw__label { font-size: 13px; font-weight: 600; color: var(--ink-700, #404040); }
.reqpage .rw__optional { color: var(--ink-500, #737373); font-weight: 400; }
.reqpage .rw__input { width: 100%; box-sizing: border-box; margin-top: 7px; border: 1px solid var(--cream-300, #DFD3B7); border-radius: 10px; padding: 12px 14px; font-size: 14.5px; font-family: var(--body-font); color: #0A0A0A; background: var(--cream-50, #FBF8F2); outline: none; transition: border-color 140ms ease, box-shadow 140ms ease; }
.reqpage .rw__input:hover { border-color: var(--cream-500, #B8A580); }
.reqpage .rw__input:focus { border-color: var(--navy-500, #5870A8); box-shadow: 0 0 0 3px rgba(88,112,168,.18); }
.reqpage select.rw__input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' stroke='%23737373' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 34px; cursor: pointer; }
.reqpage .rw__textarea { resize: vertical; min-height: 72px; line-height: 1.5; }
.reqpage .rw__checkfield { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.reqpage .rw__checkbox { margin: 3px 0 0; width: 15px; height: 15px; flex: 0 0 auto; accent-color: var(--navy-700, #303F87); }
.reqpage .rw__checktext { font-size: 14px; color: var(--ink-700, #404040); line-height: 1.5; }

/* Review */
.reqpage .rw__review { margin: 26px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; background: #fff; border: 1px solid var(--cream-300, #DFD3B7); border-radius: 14px; padding: 22px 24px; }
.reqpage .rw__reviewrow { min-width: 0; }
.reqpage .rw__reviewrow[hidden] { display: none; }
.reqpage .rw__reviewrow dt { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-500, #737373); margin: 0; }
.reqpage .rw__reviewrow dd { font-size: 14.5px; color: #0A0A0A; margin: 4px 0 0; overflow-wrap: break-word; }
.reqpage .rw__fine { font-size: 12.5px; color: var(--ink-500, #737373); margin: 16px 0 0; line-height: 1.5; }
.reqpage .rw__fine a { color: var(--navy-700, #303F87); font-weight: 500; }

/* Footer nav + states */
.reqpage .rw__error { font-size: 13.5px; color: var(--danger, #C45050); background: #F8ECEC; border-radius: 10px; padding: 11px 14px; margin: 18px 0 0; }
.reqpage .rw__error[hidden] { display: none; }
.reqpage .rw__nav { display: flex; align-items: center; justify-content: space-between; margin-top: 30px; }
.reqpage .rw__back { border: none; background: none; cursor: pointer; font-family: var(--body-font); font-size: 14.5px; font-weight: 600; color: var(--ink-700, #404040); padding: 10px 4px; }
.reqpage .rw__next { min-width: 160px; }
.reqpage .rw__next:disabled { opacity: .6; cursor: default; transform: none; }

/* Success */
.reqpage .rw__done { text-align: center; padding-top: clamp(32px, 8vh, 96px); animation: rw-pop 0.4s ease; }
.reqpage .rw__done[hidden] { display: none; }
.reqpage .rw__doneico { width: 60px; height: 60px; border-radius: 50%; background: var(--navy-50, #EEF1F8); border: 1px solid var(--navy-200, #C5CDDF); color: var(--navy-700, #303F87); display: inline-flex; align-items: center; justify-content: center; }
.reqpage .rw__doneico svg { width: 26px; height: 26px; }
.reqpage .rw__donetitle { font-family: var(--headline-font); font-weight: var(--headline-weight); font-size: clamp(26px, 2.8vw, 30px); color: #0A0A0A; margin: 22px 0 0; }
.reqpage .rw__donecopy { font-size: 15.5px; line-height: 1.6; color: var(--ink-600, #525252); margin: 14px auto 0; max-width: 380px; }
.reqpage .rw__donecopy strong { color: #0A0A0A; }
.reqpage .rw__donehome { display: inline-block; margin-top: 18px; font-size: 13.5px; font-weight: 600; color: var(--navy-700, #303F87); }

@keyframes rw-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes rw-pop { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: none; } }

/* ── Responsive ────────────────────────────────────────────────── */
@media (max-width: 880px) {
  .reqpage .req { grid-template-columns: 1fr; }
  .reqpage .req__rail { gap: 28px; }
  .reqpage .req__list { margin-top: 24px; }
}
@media (max-width: 560px) {
  .reqpage .rw__grid { grid-template-columns: 1fr; }
  .reqpage .rw__field--wide { grid-column: auto; }
  .reqpage .rw__review { grid-template-columns: 1fr; }
}
