/* The referral partner profiles. Loaded only on /lender-profile, /ma-partner-profile and /professional-partner-profile. */
.lp-hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 48px; align-items: end; max-width: 1200px; margin: 0 auto; }
.lp-wrap { background: #F5F6F8; padding: 56px clamp(20px, 5vw, 80px) 96px; }
.lp-app { max-width: 1200px; margin: 0 auto; }
.lp-main { display: flex; gap: 48px; align-items: flex-start; flex-wrap: wrap; }

/* the side panel */
.lp-aside { flex: 1 1 240px; max-width: 300px; display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 900px) { .lp-aside { position: sticky; top: calc(var(--lep-head, 76px) + 24px); } }
@media (max-width: 899px) { .lp-aside { max-width: none; } }
.lp-saved { font-size: 13px; color: #5B6470; }
.lp-progress { display: flex; flex-direction: column; gap: 10px; }
.lp-progresshead { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; color: #0B2545; }
.lp-track { height: 6px; background: #E4E8EE; overflow: hidden; }
.lp-track i { display: block; height: 100%; background: #D89A2B; transition: width .3s ease; }
.lp-nav { display: flex; flex-direction: column; border-top: 2px solid #0B2545; }
.lp-navitem { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: 28px 1fr auto; gap: 8px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid #D9DEE5; font-size: 14px; color: #16202A; }
.lp-navitem:hover .lp-navtitle { color: #9B3A23; }
.lp-navitem:focus-visible { outline: 2px solid #D89A2B; outline-offset: 2px; }
.lp-navitem.is-on .lp-navtitle { font-weight: 700; color: #0B2545; }
.lp-num { font-size: 12px; font-weight: 700; letter-spacing: .1em; color: #9B6A12; }
.lp-flag { font-size: 12px; color: #5B6470; }
.lp-flag.ok { font-weight: 700; color: #5F7A61; }
.lp-flag.bad { font-weight: 700; color: #9B3A23; }
@media (max-width: 899px) { .lp-nav { display: none; } }
.lp-fine { margin: 0; font-size: 13px; line-height: 1.6; color: #5B6470; }

/* the form */
.lp-form { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.lp-banner { padding: 14px 18px; background: #FBEDE8; border-left: 4px solid #9B3A23; font-size: 15px; color: #16202A; }
.lp-section { background: #FFFFFF; border: 1px solid #D9DEE5; border-top: 2px solid #0B2545; padding: clamp(22px, 4vw, 32px); display: flex; flex-direction: column; gap: 28px; }
.lp-sechead { display: flex; flex-direction: column; gap: 8px; }
.lp-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #9B6A12; }
.lp-sechead h2 { margin: 0; font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 28px; line-height: 1.2; color: #0B2545; }
.lp-sechead p { margin: 0; font-size: 15px; line-height: 1.6; color: #5B6470; max-width: 640px; }
.lp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 24px; }
.lp-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.lp-full { grid-column: 1 / -1; }
.lp-label, .lp-choice legend { font-size: 14px; font-weight: 700; color: #0B2545; }
.lp-field input, .lp-field select, .lp-field textarea { width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 12px; border: 1px solid #B8C0CC; border-radius: 0; background: #FFFFFF; font: inherit; font-size: 16px; color: #16202A; }
.lp-field textarea { line-height: 1.55; resize: vertical; }
.lp-field input:focus, .lp-field select:focus, .lp-field textarea:focus { outline: 2px solid #D89A2B; outline-offset: 0; border-color: #0B2545; }
.lp-field.is-bad input, .lp-field.is-bad select, .lp-field.is-bad textarea { border-color: #9B3A23; }
.lp-help { font-size: 13px; color: #5B6470; }
.lp-err { font-size: 14px; font-weight: 600; color: #9B3A23; }
.lp-choice { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.lp-choice legend { padding: 0 0 10px; }
.lp-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px 20px; padding: 16px; background: #F5F6F8; }
.lp-field.is-bad .lp-chips { box-shadow: inset 3px 0 0 #9B3A23; }
.lp-check { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.45; color: #16202A; cursor: pointer; }
.lp-check input { flex: none; width: 18px; height: 18px; min-height: 0; margin: 2px 0 0; accent-color: #0B2545; }
.lp-radios { display: flex; flex-wrap: wrap; gap: 8px; }
.lp-pill { cursor: pointer; min-height: 44px; padding: 10px 18px; font: inherit; font-size: 14px; font-weight: 600; background: #FFFFFF; color: #0B2545; border: 1.5px solid #B8C0CC; border-radius: 0; }
.lp-pill:hover { border-color: #0B2545; }
.lp-pill.is-on { font-weight: 700; background: #0B2545; color: #FFFFFF; border-color: #0B2545; }
.lp-pill:focus-visible { outline: 2px solid #D89A2B; outline-offset: 2px; }
.lp-consent { display: flex; flex-direction: column; gap: 8px; padding: 20px; background: #F5F6F8; border-left: 4px solid #D89A2B; }
.lp-field.is-bad .lp-consent { border-left-color: #9B3A23; }
.lp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
.lp-foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 2px solid #0B2545; padding-top: 24px; }
.lp-foot p { margin: 0; font-size: 13px; line-height: 1.6; color: #5B6470; max-width: 460px; }
.lp-buttons { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.lp-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 28px; background: #0B2545; color: #FFFFFF; border: 1.5px solid #0B2545; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.lp-btn:hover { background: #071A33; }
.lp-btn.secondary { background: #FFFFFF; color: #0B2545; }
.lp-btn.secondary:hover { background: #F0F2F5; }
.lp-btn.gold { background: #D89A2B; border-color: #D89A2B; color: #071A33; }
.lp-btn.gold:hover { background: #C88A1F; border-color: #C88A1F; }
.lp-btn:disabled { opacity: .55; cursor: default; }
.lp-btn:focus-visible { outline: 2px solid #D89A2B; outline-offset: 2px; }

.lp-points { list-style: none; margin: 0; padding: 0; border-top: 2px solid #0B2545; }
.lp-points li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 20px 0; border-bottom: 1px solid #D9DEE5; }
.lp-points .lp-num { padding-top: 4px; }
.lp-points div { display: flex; flex-direction: column; gap: 6px; }
.lp-points strong { font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 19px; line-height: 1.3; color: #0B2545; }
.lp-points div span { font-size: 15px; line-height: 1.6; color: #16202A; }

/* the professional profile: the practice-area picker */
.lp-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 8px; }
.lp-group { cursor: pointer; min-height: 56px; padding: 10px 14px; display: flex; justify-content: space-between; align-items: center; gap: 8px; font: inherit; text-align: left; background: #FFFFFF; color: #0B2545; border: 1.5px solid #B8C0CC; border-radius: 0; }
.lp-group:hover { border-color: #0B2545; }
.lp-group:focus-visible, .lp-toggle:focus-visible { outline: 2px solid #D89A2B; outline-offset: 2px; }
.lp-group > span:first-child { display: flex; flex-direction: column; gap: 2px; }
.lp-group strong { font-size: 14px; }
.lp-group small { font-size: 12px; color: #5B6470; }
.lp-group.has-picks small { color: #3F7A52; font-weight: 700; }
.lp-group .lp-caret { font-size: 12px; color: #9B6A12; transition: transform .2s; }
.lp-group.is-open { background: #0B2545; color: #FFFFFF; border-color: #0B2545; }
.lp-group.is-open small { color: #C9D3E0; }
.lp-group.is-open .lp-caret { transform: rotate(180deg); color: #FFFFFF; }
.lp-grouppanel { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; padding: 20px; background: #F5F6F8; border-top: 2px solid #0B2545; }
.lp-grouphead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.lp-grouphead strong { font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 19px; color: #0B2545; }
.lp-grouphead span { font-size: 12px; color: #5B6470; }
.lp-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
.lp-toggle { cursor: pointer; min-height: 40px; padding: 8px 14px; font: inherit; font-size: 13px; font-weight: 600; text-align: left; background: #FFFFFF; color: #0B2545; border: 1.5px solid #B8C0CC; border-radius: 0; }
.lp-toggle:hover { border-color: #0B2545; }
.lp-toggle.is-on { font-weight: 700; background: #0B2545; color: #FFFFFF; border-color: #0B2545; }
.lp-subhead { display: flex; flex-direction: column; gap: 4px; padding-top: 20px; border-top: 1px solid #D9DEE5; }
.lp-subhead strong { font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 22px; line-height: 1.25; color: #0B2545; }
.lp-notebox { padding: 20px; background: #F5F6F8; border-left: 4px solid #D89A2B; font-size: 15px; line-height: 1.6; }
.lp-more { align-self: flex-start; font-size: 14px; font-weight: 700; color: #0B2545; text-decoration: none; border-bottom: 2px solid #D89A2B; padding-bottom: 2px; }
.lp-picked { display: flex; flex-direction: column; gap: 8px; font-size: 13px; line-height: 1.6; }
.lp-picked .lp-eyebrow { font-size: 11px; }
.lp-file { position: relative; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 20px; background: #F5F6F8; border: 1px solid #B8C0CC; font-size: 15px; }
.lp-file:hover { border-color: #0B2545; }
.lp-file:focus-within { outline: 2px solid #D89A2B; outline-offset: 2px; }
.lp-filebtn { min-height: 44px; padding: 10px 20px; font-size: 14px; }
.lp-fileinput { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.lp-file.has-file { cursor: default; background: #FFFFFF; border-color: #D9DEE5; border-left: 4px solid #5F7A61; }
.lp-logo { width: 160px; height: 72px; display: flex; align-items: center; justify-content: center; background: #F5F6F8; }
.lp-logo img { max-width: 140px; max-height: 56px; object-fit: contain; }
.lp-filename { flex: 1 1 160px; min-width: 0; font-size: 14px; overflow-wrap: anywhere; }
.lp-linkbtn { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: 14px; font-weight: 700; color: #0B2545; border-bottom: 2px solid #D89A2B; }
.lp-summary dt.lp-dlhead, .lp-summary dd.lp-dlhead { padding-top: 18px; font-family: "Fraunces", Georgia, serif; font-size: 18px; color: #0B2545; }

/* after submitting */
.lp-done { display: flex; flex-direction: column; gap: 32px; max-width: 760px; }
.lp-thanks { background: #FFFFFF; border: 1px solid #D9DEE5; border-top: 4px solid #5F7A61; padding: clamp(24px, 4vw, 40px); display: flex; flex-direction: column; gap: 20px; }
.lp-thanks h2 { margin: 0; font-family: "Fraunces", Georgia, serif; font-weight: 500; font-size: 34px; line-height: 1.15; color: #0B2545; }
.lp-thanks p { margin: 0; font-size: 17px; line-height: 1.65; }
.lp-summary { background: #FFFFFF; border: 1px solid #D9DEE5; padding: clamp(24px, 4vw, 40px); }
.lp-summary h3 { margin: 24px 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #9B6A12; }
.lp-summary h3:first-child { margin-top: 0; }
.lp-summary dl { margin: 0; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); border-top: 2px solid #0B2545; }
.lp-summary dt, .lp-summary dd { margin: 0; padding: 8px 0; border-bottom: 1px solid #D9DEE5; font-size: 15px; }
.lp-summary dt { color: #5B6470; padding-right: 16px; }
@media (max-width: 560px) { .lp-summary dl { grid-template-columns: 1fr; } .lp-summary dt { border-bottom: 0; padding-bottom: 0; } }

@media print {
  header, footer, .lp-noprint, [aria-label="Utility"], .lp-wrap ~ *, .lp-herosec { display: none !important; }
  .lp-wrap { background: none; padding: 0; }
  .lp-thanks, .lp-summary { border: 0; padding: 0; }
}
