/* Public welcome only. Shared header, navigation and footer stay in the shell. */
#jp-welcome { box-sizing:border-box; --jpw-ink:#162c43; --jpw-muted:#526578; --jpw-line:#dce4ec; --jpw-surface:#fff; color:var(--jpw-ink); width:min(1120px,100%); margin:0 auto; padding:42px 20px 64px; font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; text-align:left; }
#jp-welcome *, #jp-welcome *::before, #jp-welcome *::after { box-sizing:border-box; }
#jp-welcome h1, #jp-welcome h2, #jp-welcome h3, #jp-welcome p, #jp-welcome label, #jp-welcome fieldset, #jp-welcome legend { float:none; clear:none; width:auto; padding:0; border:0; background:none; color:inherit; text-shadow:none; }
#jp-welcome h1, #jp-welcome h2, #jp-welcome h3 { font-family:inherit; font-weight:750; letter-spacing:-.025em; }
#jp-welcome p { margin:0 0 16px; }
#jp-welcome a { color:#184f82; text-decoration:underline; text-underline-offset:3px; }
#jp-welcome img { max-width:100%; float:none; border:0; }
#jp-welcome .jpw-eyebrow { font-size:12px; font-weight:750; letter-spacing:.13em; text-transform:uppercase; color:#536b80; margin:0 0 13px; }
#jp-welcome .jpw-hero { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(260px,.82fr); gap:40px; align-items:center; padding:30px 0 40px; }
#jp-welcome h1 { font-size:clamp(36px,4.6vw,60px); line-height:1.08; margin:0 0 24px; }
#jp-welcome h1 span { color:var(--fp-accent,#ad4516); }
#jp-welcome .jpw-intro { max-width:590px; font-size:18px; line-height:1.7; color:var(--jpw-muted); }
#jp-welcome .jpw-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:28px 0 18px; }
#jp-welcome .jpw-button { display:inline-flex; justify-content:center; align-items:center; gap:12px; flex:none; width:auto; min-height:48px; margin:0; padding:12px 19px; border:1px solid #162c43; border-radius:9px; background:#162c43; color:#fff; text-align:center; text-decoration:none; line-height:1.5; font-family:inherit; font-size:14px; font-weight:650; cursor:pointer; box-shadow:0 2px 3px #162c4308; transition:background-color .15s,box-shadow .15s; }
#jp-welcome .jpw-button:hover { background:#284962; color:#fff; box-shadow:0 3px 8px #162c4317; }
#jp-welcome .jpw-button-secondary { background:#fff; border-color:#cbd7e1; color:#243e54; }
#jp-welcome .jpw-button-secondary:hover { background:#f2f6fa; color:#162c43; }
#jp-welcome .jpw-hero-note { font-size:13px; color:var(--jpw-muted); }
#jp-welcome .jpw-profile { border:1px solid var(--jpw-line); border-radius:22px; background:var(--jpw-surface); padding:30px; box-shadow:0 15px 40px #17334909; text-align:center; }
#jp-welcome .jpw-profile img { display:block; width:164px; height:164px; object-fit:cover; border-radius:50%; margin:0 auto 24px; outline:7px solid #f0f4f7; }
#jp-welcome .jpw-profile .jpw-eyebrow { margin-bottom:9px; }
#jp-welcome .jpw-profile h2 { font-size:24px; line-height:1.25; margin:0 0 12px; }
#jp-welcome .jpw-profile p:last-child { font-size:14px; color:var(--jpw-muted); margin:0; }
#jp-welcome .jpw-features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; border-top:1px solid var(--jpw-line); border-bottom:1px solid var(--jpw-line); padding:28px 0; }
#jp-welcome .jpw-features article { display:block; margin:0; padding:0 4px; }
#jp-welcome .jpw-features h2 { font-size:17px; margin:0 0 8px; line-height:1.35; }
#jp-welcome .jpw-features p { font-size:14px; color:var(--jpw-muted); margin:0; }
#jp-welcome .jpw-announcement { background:#fff8e8; border:1px solid #eddfbc; border-radius:12px; margin:0 0 25px; padding:20px 24px; color:#4b412d; }
#jp-welcome .jpw-announcement p:last-child { margin:0; }
#jp-welcome .jpw-signup { padding-top:54px; scroll-margin-top:110px; }
#jp-welcome .jpw-section-heading { margin-bottom:26px; }
#jp-welcome .jpw-section-heading h2 { font-size:34px; line-height:1.25; margin:0 0 12px; }
#jp-welcome .jpw-section-heading p:last-child { color:var(--jpw-muted); margin-bottom:0; }
#jp-welcome form { margin:0; }
#jp-welcome .jpw-plans { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; min-width:0; margin:0 0 28px; }
#jp-welcome legend { display:block; font-size:14px; font-weight:700; margin:0 0 12px; }
#jp-welcome label.jpw-plan { display:flex; gap:14px; align-items:flex-start; padding:23px; margin:0; border:1px solid #ccd8e3; border-radius:13px; background:#fff; cursor:pointer; }
#jp-welcome .jpw-plan:has(input:checked) { border-color:#315e83; box-shadow:0 0 0 1px #315e83; background:#f5f9fc; }
#jp-welcome .jpw-plan strong { display:block; font-size:30px; line-height:1.2; margin-bottom:12px; letter-spacing:-.03em; }
#jp-welcome .jpw-plan small { font-size:16px; font-weight:500; color:var(--jpw-muted); letter-spacing:0; }
#jp-welcome .jpw-plan span span { display:block; font-size:14px; color:var(--jpw-muted); }
#jp-welcome .jpw-form-card { margin:0 0 20px; padding:30px; background:#fff; border:1px solid var(--jpw-line); border-radius:14px; box-shadow:0 2px 5px #162c4303; }
#jp-welcome .jpw-step-heading { display:flex; align-items:flex-start; gap:16px; margin-bottom:25px; }
#jp-welcome .jpw-step-heading > span { display:flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; height:32px; border:1px solid #ccdae4; border-radius:50%; color:#36546c; font-size:14px; font-weight:700; }
#jp-welcome .jpw-step-heading h3 { font-size:21px; margin:0 0 5px; line-height:1.4; }
#jp-welcome .jpw-step-heading p { color:var(--jpw-muted); font-size:14px; margin:0; }
#jp-welcome .jpw-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 22px; }
#jp-welcome .jpw-field { min-width:0; }
#jp-welcome .jpw-field-wide { grid-column:1/-1; }
#jp-welcome .jpw-field label { display:block; margin:0 0 7px; font-size:14px; font-weight:650; line-height:1.5; text-align:left; }
#jp-welcome input:not([type=radio]), #jp-welcome select { display:block; float:none; box-sizing:border-box; width:100%; min-width:0; max-width:100%; height:46px; min-height:46px; border:1px solid #afbfcd; border-radius:7px; padding:10px 12px; margin:0; font-family:inherit; font-size:16px; line-height:1.5; color:#162c43; background:#fff; box-shadow:0 1px 2px #162c4303 inset; -webkit-appearance:auto; appearance:auto; }
#jp-welcome input[type=radio] { display:inline-block; float:none; flex:0 0 18px; width:18px; min-width:18px; max-width:18px; height:18px; min-height:18px; margin:4px 0 0; padding:0; accent-color:#244f71; }
#jp-welcome input[type=image] { width:auto; height:auto; min-height:0; }
#jp-welcome input[type=hidden] { display:none; }
#jp-welcome :is(a,button,input,select):focus-visible { outline:3px solid #488abd; outline-offset:3px; }
#jp-welcome .jpw-field-help { margin:9px 0 0; color:var(--jpw-muted); font-size:12px; line-height:1.55; }
#jp-welcome .form_msg { display:flex; align-items:center; gap:7px; min-height:0; height:auto; margin:6px 0 0; padding:0; font-size:13px; line-height:1.5; }
#jp-welcome .form_msg:empty { display:none; }
#jp-welcome .form_msg object { width:23px !important; height:23px !important; }
#jp-welcome .jpw-renewal { display:flex; flex-wrap:wrap; gap:14px 30px; margin:0 0 18px; min-width:0; }
#jp-welcome .jpw-renewal label { display:flex; align-items:center; gap:9px; margin:0; font-size:14px; cursor:pointer; }
#jp-welcome .jpw-renewal input { margin-top:0; }
#jp-welcome .jpw-billing-summary { padding:14px 17px; background:#f1f5f8; border-radius:8px; margin-bottom:24px; font-size:14px; line-height:1.6; color:#36546c; }
#jp-welcome .jpw-checkout { margin-top:28px; }
#jp-welcome .jpw-checkout p { font-size:12px; color:var(--jpw-muted); margin:13px 0 0; }
#jp-welcome .jpw-alternative-payment { display:flex; flex-wrap:wrap; align-items:center; gap:12px; border-top:1px solid var(--jpw-line); margin-top:26px; padding-top:22px; }
#jp-welcome .jpw-alternative-payment > span { flex:1 1 180px; font-size:13px; color:var(--jpw-muted); }
#jp-welcome .jpw-notice { background:#f4f7fa; border:1px solid #ccdae4; border-radius:9px; padding:20px; margin:22px 0 0; overflow-wrap:anywhere; }
#jp-welcome .jpw-notice p:last-child { margin-bottom:0; }
#jp-welcome .jpw-signup-help { text-align:center; color:var(--jpw-muted); font-size:14px; margin:26px 0 0; }
@media (max-width:760px) {
 #jp-welcome { padding:22px 16px 40px; }
 #jp-welcome .jpw-hero { grid-template-columns:1fr; gap:24px; padding:15px 0 28px; }
 #jp-welcome h1 { font-size:42px; }
 #jp-welcome .jpw-intro { font-size:16px; }
 #jp-welcome .jpw-profile { display:flex; align-items:center; gap:21px; padding:22px; text-align:left; }
 #jp-welcome .jpw-profile img { flex:0 0 90px; width:90px; height:90px; margin:0; outline-width:4px; }
 #jp-welcome .jpw-profile h2 { font-size:21px; }
 #jp-welcome .jpw-profile .jpw-eyebrow { font-size:10px; }
 #jp-welcome .jpw-features { grid-template-columns:1fr; gap:23px; }
 #jp-welcome .jpw-features article { display:block; }
 #jp-welcome .jpw-signup { padding-top:35px; }
 #jp-welcome .jpw-section-heading h2 { font-size:29px; }
 #jp-welcome .jpw-form-card { padding:21px 17px; }
 #jp-welcome .jpw-field-grid { grid-template-columns:1fr; gap:17px; }
 #jp-welcome .jpw-plans { gap:12px; }
 #jp-welcome label.jpw-plan { padding:18px 13px; gap:9px; }
 #jp-welcome .jpw-plan strong { font-size:26px; }
 #jp-welcome .jpw-plan small { display:block; font-size:13px; margin-top:4px; }
 #jp-welcome .jpw-plan span span { font-size:12px; }
 #jp-welcome .jpw-checkout .jpw-button { width:100%; }
}
@media (max-width:380px) {
 #jp-welcome h1 { font-size:36px; }
 #jp-welcome .jpw-actions { display:grid; }
 #jp-welcome .jpw-profile { padding:18px; gap:17px; }
 #jp-welcome .jpw-profile img { flex-basis:70px; width:70px; height:70px; }
 #jp-welcome .jpw-profile h2 { font-size:18px; }
 #jp-welcome .jpw-profile p:last-child { font-size:13px; }
}
@media (prefers-reduced-motion:reduce) { #jp-welcome .jpw-button { transition:none; } }
