.public-registration-page { background:#f7f6f1; }
.registration { padding:60px 24px 80px; color:#21362d; font-family:'Be Vietnam Pro',system-ui,sans-serif; }
.registration [hidden] { display:none!important; }
.registration-layout { display:grid; grid-template-columns:.85fr 1.25fr; max-width:1160px; margin:auto; border:1px solid #e4e8e1; border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 18px 65px #1d40240d; }
.registration-intro { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; padding:48px 40px; color:#fff; background:linear-gradient(145deg,#183f2d,#315c45); }
.registration-intro::after { content:""; position:absolute; right:-120px; bottom:65px; width:310px; height:310px; border:1px solid #c5b56c36; border-radius:50%; box-shadow:0 0 0 50px #c5b56c09,0 0 0 100px #c5b56c06; pointer-events:none; }
.registration-brand { display:flex; gap:12px; align-items:center; color:#fff!important; text-decoration:none!important; font-size:12px; letter-spacing:1px; margin-bottom:65px; }
.registration-brand img { width:46px; height:46px; }
.registration-brand strong { font-size:24px; letter-spacing:0; }
.registration-eyebrow { font-size:11px; font-weight:700; letter-spacing:2px; margin:0 0 14px; }
.registration-intro .registration-eyebrow { color:#e0ce8d; }
.registration-intro h1 { margin:0 0 22px; font-family:'Cormorant Garamond',Georgia,serif; font-size:50px; line-height:1.12; color:#fff; font-weight:500; }
.registration-intro h1 em { color:#ead9a5; }
.registration-intro>p { color:#e0e9e1; font-size:14px; line-height:1.85; max-width:290px; }
.registration-benefits { display:grid; gap:15px; margin:25px 0 50px; font-size:12px; color:#f0f3ed; }
.registration-benefits i { width:22px; color:#e0ce8d; }
.registration-back { margin-top:auto; color:#f1e8ca!important; font-size:12px; text-decoration:none; z-index:1; }
.registration-panel { padding:42px 44px; min-width:0; }
.registration-steps { display:flex; list-style:none; padding:0; margin:0 0 40px; gap:20px; font-size:11px; color:#849188; }
.registration-steps li { display:flex; gap:7px; align-items:center; }
.registration-steps li>span { display:grid; place-items:center; width:26px; height:26px; border:1px solid #dbe2db; border-radius:50%; font-size:10px; }
.registration-steps .current { color:#29503a; font-weight:700; }
.registration-steps .current>span,.registration-steps .done>span { color:white; background:#2c573f; border-color:#2c573f; }
.registration-heading h2 { color:#213e2c; font-size:30px; font-weight:600; margin:0 0 9px; }
.registration-heading .registration-eyebrow { color:#8b292a; }
.registration-heading>p:last-child { font-size:13px; color:#728077; margin-bottom:28px; }
.registration-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; }
.registration-field label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
.registration-field label>span { color:#973e3d; }
.registration-field input { width:100%; height:45px; padding:10px 12px; border:1px solid #d9dfd7; border-radius:8px; color:#24372c; font:inherit; font-size:13px; box-sizing:border-box; background:#fff; transition:border-color .15s; }
.registration-field input:focus { outline:2px solid #305d4226; outline-offset:1px; border-color:#416d51; }
.registration-field input[aria-invalid=true] { border-color:#b43131; }
.registration-field small { display:block; font-size:10px; color:#79867c; line-height:1.6; margin-top:5px; }
.registration-field .registration-error { color:#a62b2b; font-size:11px; }
.registration-error:empty { display:none; }
.registration-password { position:relative; }
.registration-password input { padding-right:42px; }
.registration-password button { position:absolute; right:3px; top:3px; height:39px; width:36px; border:0; border-radius:6px; background:transparent; color:#718074; cursor:pointer; }
.registration-password-hint { display:flex; gap:8px; align-items:flex-start; font-size:11px; line-height:1.7; color:#6d7c70; margin:19px 0 24px; }
.registration-password-hint i { padding-top:3px; }
.registration-primary { display:flex; justify-content:center; align-items:center; gap:20px; width:100%; box-sizing:border-box; min-height:47px; padding:12px 20px; border:0; border-radius:9px; color:white!important; background:#29553c; font:inherit; font-size:13px; font-weight:600; cursor:pointer; text-decoration:none!important; transition:background .15s; }
.registration-primary:hover { background:#183e29; }
.registration button:focus-visible,.registration a:focus-visible { outline:3px solid #bc9e5d; outline-offset:3px; }
.registration button:disabled { opacity:.6; cursor:wait; }
.registration-signin { margin:22px 0 0; text-align:center; font-size:12px; color:#7a827a; }
.registration-signin a { color:#8b292a; font-weight:600; }
.registration-message { font-size:12px; padding:12px; background:#fff0ed; color:#9d3025; border:1px solid #f0d3ce; border-radius:8px; margin-bottom:18px; }
.registration-email-icon,.registration-success-icon { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:#edf3e9; color:#2d6542; font-size:25px; margin:18px auto 22px; }
#registration-verification>p,#registration-success>p { text-align:center; font-size:13px; line-height:1.8; }
.registration .registration-muted { font-size:11px; color:#78857c; }
.registration-otp { max-width:300px; display:block; margin:12px auto 20px; height:62px!important; text-align:center; font-size:27px!important; letter-spacing:12px; padding-left:24px!important; }
#registration-verification .registration-field { text-align:center; margin:24px 0; }
.registration-otp-actions { display:flex; justify-content:space-between; gap:14px; margin-top:22px; }
.registration-otp-actions button { background:none; border:0; padding:8px 0; font:inherit; font-size:12px; color:#2b5c3e; cursor:pointer; }
.registration-otp-actions button:disabled { cursor:default; }
#registration-success h3 { font-size:23px; color:#28533b; text-align:center; font-weight:600; }
#registration-success .registration-primary { margin-top:26px; }
.registration-home { display:block; text-align:center; margin:20px 0; font-size:12px; color:#56725c; }
@media(max-width:900px) { .registration-intro { padding:36px 28px; } .registration-panel { padding:36px 28px; } .registration-intro h1 { font-size:42px; } .registration-steps { gap:12px; } }
@media(max-width:680px) { .registration { padding:22px 14px 45px; } .registration-layout { grid-template-columns:1fr; border-radius:16px; } .registration-intro { padding:26px; } .registration-brand { margin-bottom:26px; } .registration-intro h1 { font-size:34px; } .registration-intro h1 br { display:none; } .registration-intro h1 br::after { content:' '; } .registration-intro>p { max-width:none; margin:0; } .registration-benefits,.registration-back { display:none; } .registration-panel { padding:28px 22px; } .registration-steps { gap:12px; font-size:10px; margin-bottom:28px; justify-content:space-between; } .registration-steps li { gap:5px; } .registration-fields { grid-template-columns:1fr; gap:15px; } .registration-field input { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .registration * { transition:none!important; } }
