/* Shared styling for the first-party access pages (app/pages/access/*). */
body { font-family: 'Lato', Helvetica, Arial, sans-serif; }
.auth-split { min-height: 100vh; }
.auth-panel { padding: 40px 32px; max-width: 560px; margin: 0 auto; width: 100%; }
.auth-art {
  background: #16283f url('/access/assets/images/auth-bg.jpg') center/cover no-repeat;
  position: relative;
}
.auth-art::after { content: ''; position: absolute; inset: 0; background: rgba(13,27,42,.55); }
.auth-art .testi-contain { position: relative; z-index: 1; max-width: 460px; margin: auto; padding: 40px; }
.auth-art .testi-contain h4 { font-size: 22px; line-height: 1.5; }

.brand-lockup { display: inline-block; line-height: 1.25; text-align: center; }
.brand-lockup .l1 { display:block; font-size:22px; font-weight:700; letter-spacing:3.9px; margin-right:-3.9px; color:#16283f; }
.brand-lockup .l2 { display:block; font-size:12px; font-weight:400; letter-spacing:4.9px; margin-right:-4.9px; color:#a97a50; }

.btn-brand { background:#a97a50; border-color:#a97a50; color:#fff; font-weight:600; letter-spacing:.5px; }
.btn-brand:hover, .btn-brand:focus { background:#96693f; border-color:#96693f; color:#fff; }
.btn-brand:disabled { background:#c3a684; border-color:#c3a684; }

.form-label { font-weight:600; font-size:13px; color:#243b53; }
.req { color:#c0392b; }

/* Field-level errors: shown only once the field is marked invalid. */
.field-error { color:#c0392b; font-size:12.5px; margin-top:4px; display:none; }
.is-invalid ~ .field-error { display:block; }
.form-control.is-invalid, .form-select.is-invalid { border-color:#c0392b; }

.hp { position:absolute; left:-5000px; width:1px; height:1px; overflow:hidden; }
.form-alert { display:none; }
.form-alert.show { display:block; }
