/* Public welcome and registration pages. */
.auth-page { background:#f7f8f4; color:#203c33; }
.auth-page .topbar { padding:22px max(5%, calc((100vw - 1240px) / 2)); background:#f7f8f4; border-bottom:1px solid #e0e6dd; }
.auth-header-link { display:inline-flex; gap:16px; align-items:center; font-size:13px; font-weight:600; text-decoration:none; color:#285a46; }
.auth-header-link:hover { text-decoration:underline; text-underline-offset:4px; }
.auth-main.auth-landing { display:block; max-width:1380px; padding:52px 5% 40px; min-height:0; }
.auth-hero-grid { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(340px,1fr); gap:64px; align-items:start; }
.auth-page .eyebrow { color:#577263; letter-spacing:1.7px; line-height:1.6; }
.auth-intro>.eyebrow { display:flex; align-items:center; gap:10px; }
.auth-eyebrow-line { width:25px; height:2px; background:#ce8a4d; flex-shrink:0; }
.auth-landing .auth-intro h1 { font-size:clamp(36px,3.7vw,54px); line-height:1.12; letter-spacing:-2px; margin:16px 0 18px; font-weight:750; }
.auth-intro h1>span { color:#61836b; }
.auth-landing .intro-lead { max-width:570px; font-size:15px; line-height:1.8; color:#5c6f64; }
.auth-photo { position:relative; margin:28px 0 18px; border-radius:18px; overflow:hidden; background:#d8dace; aspect-ratio:1.67; }
.auth-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 38%; }
.auth-photo::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#142d24d9); pointer-events:none; }
.auth-photo figcaption { position:absolute; z-index:1; left:24px; right:20px; bottom:22px; display:flex; align-items:center; gap:13px; color:white; }
.auth-photo-mark { display:grid; place-items:center; flex-shrink:0; width:42px; height:42px; background:#ffffff21; border:1px solid #ffffff55; border-radius:11px; font-size:27px; font-weight:700; }
.auth-photo figcaption strong { display:block; font-size:16px; letter-spacing:-.3px; }
.auth-photo figcaption span>span { display:block; margin-top:5px; font-size:11px; color:#edf1e9; line-height:1.5; }
.auth-landing .intro-benefits { gap:10px 20px; color:#496654; font-size:11px; line-height:1.5; }
.intro-benefits>span { display:inline-flex; align-items:center; gap:7px; }
.intro-benefits>span>span { color:#277a59; font-size:14px; }
.auth-landing .auth-panel { width:100%; max-width:none; margin:0; padding:32px; border:1px solid #e0e6dd; border-radius:20px; box-shadow:0 12px 40px #243e2e08; }
.auth-form-mark { width:38px; height:38px; border-radius:11px; background:#edf3e9; color:#426d50; display:grid; place-items:center; font-size:24px; margin-bottom:22px; }
.auth-panel h2 { font-size:27px; letter-spacing:-1px; line-height:1.2; margin:10px 0 12px; font-weight:700; }
.auth-landing .auth-panel>p { font-size:13px; color:#637368; line-height:1.7; }
.auth-landing .auth-panel form { margin-top:24px; }
.auth-landing .auth-panel label { display:block; color:#344c3e; font-size:12px; font-weight:600; margin-bottom:16px; }
.auth-panel input { min-height:46px; background:#fbfcf9; border:1px solid #dce4d9; border-radius:8px; padding:12px 13px; margin-top:7px; font-size:13px; color:#203c33; }
.auth-panel input::placeholder { color:#7b857c; font-weight:400; }
.auth-panel input:focus-visible { outline:2px solid #568569; outline-offset:2px; }
.auth-landing .auth-panel .auth-hint { font-size:11px; color:#637368; margin:-6px 0 16px; }
.auth-landing .auth-panel .primary { min-height:48px; background:#254f3d; justify-content:space-between; font-size:13px; border-radius:9px; padding:13px 17px; margin-top:2px; }
.auth-landing .auth-panel .primary:hover { background:#193d2d; }
.auth-landing .auth-panel .auth-shared-note { font-size:11px; background:#f4f7f0; padding:12px 14px; border-radius:8px; margin-top:18px; color:#586b5c; }
.auth-shared-note strong { color:#3b5745; }
.auth-landing .auth-panel .auth-switch { font-size:12px; border-top:1px solid #e5eade; padding-top:20px; margin-top:20px; }
.auth-switch a { font-weight:600; text-underline-offset:3px; }
.auth-how-it-works { margin-top:48px; padding-top:32px; border-top:1px solid #dfe5d9; }
.auth-steps-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.auth-steps-heading h2 { font-size:24px; letter-spacing:-.7px; margin-top:8px; }
.auth-steps-heading>p { font-size:12px; color:#637368; line-height:1.6; }
.auth-landing .intro-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:24px 0 0; }
.auth-landing .intro-steps li { gap:13px; }
.auth-landing .intro-steps li>span { background:#eaf0e4; color:#597250; padding:10px; border-radius:9px; }
.intro-steps h3 { font-size:14px; line-height:1.4; margin-bottom:8px; }
.auth-landing .intro-steps p { font-size:12px; line-height:1.75; color:#637368; }
.auth-page .legal-footer { max-width:1240px; padding:24px 0; margin:0 auto; font-size:11px; }
@media(min-width:1500px) { .auth-main.auth-landing { padding-left:70px; padding-right:70px; } }
@media(max-width:1050px) { .auth-hero-grid { gap:30px; grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr); } .auth-landing .auth-panel { padding:25px; } .auth-photo { aspect-ratio:1.3; } .auth-page .legal-footer { margin:0 5%; } }
@media(max-width:760px) { .auth-page .topbar { padding:17px 5%; flex-wrap:nowrap; gap:16px; } .auth-header-link { font-size:12px; gap:8px; } .auth-main.auth-landing { padding:32px 5%; } .auth-hero-grid { grid-template-columns:1fr; gap:28px; } .auth-landing .auth-intro h1 { font-size:clamp(34px,7vw,48px); letter-spacing:-1.5px; } .auth-landing .intro-lead { font-size:14px; } .auth-photo { aspect-ratio:1.65; margin-top:22px; } .auth-landing .auth-panel { padding:26px; } .auth-how-it-works { margin-top:32px; padding-top:26px; } .auth-steps-heading { align-items:start; flex-direction:column; gap:10px; } .auth-landing .intro-steps { grid-template-columns:1fr; gap:22px; } .auth-steps-heading h2 { font-size:22px; } .auth-page .legal-footer { align-items:start; gap:18px; } }
@media(max-width:380px) { .auth-landing .auth-panel { padding:22px; } .auth-photo figcaption { left:16px; bottom:16px; gap:10px; } .auth-photo figcaption strong { font-size:13px; } .auth-photo figcaption span>span { font-size:10px; } .auth-photo-mark { width:34px; height:34px; font-size:22px; } .auth-panel h2 { font-size:25px; } }
