/* Registration styles are scoped to this page to preserve other client layouts. */
body.hexa-signup-page { background: #f5f7fb; }
/* Keep the complete registration flow centred regardless of the shared page grid. */
.hexa-signup-page #main-body { display: flex; justify-content: center; padding: 32px 24px 48px; }
.hexa-signup-page #main-body > .container { width: 100%; max-width: 900px; margin: 0 auto; padding: 0; }
.hexa-signup-page #main-body > .container > .row { justify-content: center; }
.hexa-signup-page .primary-content { width: 100%; max-width: 100%; flex: 0 0 100%; }
.hexa-signup-page .primary-content > .header-lined { display: none; }
.hexa-signup-page #registration { max-width: 800px; margin: 0 auto; padding: 0; }
/* Account introduction and connected registration progress. */
.hexa-signup-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; text-align: left; margin-bottom: 24px; padding: 24px; border: 1px solid #e2e8f1; border-radius: 12px; background: #fff; }
.hexa-signup-heading { min-width: 0; }
.hexa-signup-intro h1 { margin: 0 0 6px; color: #23324b; font-size: 28px; line-height: 1.3; font-weight: 600; letter-spacing: -.5px; }
.hexa-signup-intro p { margin: 0; color: #65748b; font-size: 14px; line-height: 1.6; }
.hexa-signup-login { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; gap: 8px; color: #65748b; font-size: 12px; line-height: 1.5; }
.hexa-signup-login > a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 100px; padding: 10px 20px; border: 1px solid #c4d5ef; border-radius: 6px; background: #fff; color: #1458c7; font-size: 14px; font-weight: 600; line-height: 1.5; text-decoration: none; box-shadow: none; }
.hexa-signup-login > a:hover { border-color: #1769ef; background: #f0f5ff; color: #1458c7; text-decoration: none; }
.hexa-signup-login > a:focus-visible { outline: 2px solid #1769ef; outline-offset: 3px; }
.hexa-signup-steps { display: flex; justify-content: center; gap: 0; padding: 16px; margin: 0 0 26px; border: 1px solid #e2e8f1; border-radius: 16px; background: rgba(255,255,255,.85); box-shadow: 0 4px 20px rgba(20,39,76,.03); list-style: none; }
.hexa-signup-steps li { position: relative; display: flex; flex: 1; align-items: center; justify-content: center; gap: 9px; padding: 8px 10px; border-radius: 10px; color: #7b8aa1; font-size: 12px; font-weight: 600; white-space: nowrap; }
.hexa-signup-steps li + li::before { content: ''; position: absolute; inset-inline-start: -6px; top: 50%; width: 12px; height: 1px; background: #dbe3ee; }
.hexa-signup-steps li span { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex-shrink: 0; border: 1px solid #d5deeb; border-radius: 50%; background: #fff; color: #7b8aa1; }
.hexa-signup-steps li.is-active { color: #1769ef; background: #edf4ff; }
.hexa-signup-steps li.is-active span { border-color: #1769ef; background: #1769ef; color: #fff; box-shadow: 0 3px 8px rgba(23,105,239,.2); }
.hexa-signup-steps li.is-complete { color: #16806b; }
.hexa-signup-steps li.is-complete span { border-color: #b8e5d9; background: #e8f7f1; color: #16806b; }
.hexa-signup-step-panel { animation: hexa-signup-enter .3s ease both; }
.hexa-signup-step-panel[hidden] { display: none !important; }
.hexa-signup-actions { display: flex; justify-content: space-between; gap: 12px; margin: 24px 0 0; }
.hexa-signup-actions .btn { min-width: 120px; min-height: 46px; border-radius: 9px; font-weight: 600; }
.hexa-signup-actions .hexa-signup-next { margin-left: auto; }
.hexa-signup-actions .hexa-signup-back[hidden], .hexa-signup-actions .hexa-signup-next[hidden] { display: none; }
@keyframes hexa-signup-enter { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }
.hexa-signup-page #registration .card { border: 1px solid #e2e8f1; border-radius: 16px; overflow: visible; background: #fff; box-shadow: 0 6px 24px rgba(20,39,76,.04); margin-bottom: 22px !important; }
.hexa-signup-page #registration .card-body { padding: 28px 30px !important; }
.hexa-signup-page #registration .card-title { margin: 0 0 22px; padding-bottom: 16px; border-bottom: 1px solid #edf1f7; color: #14274c; font-size: 18px; font-weight: 600; line-height: 1.5; }
.hexa-signup-page #registration .card-title small { font-size: 12px; color: #65748b; font-weight: 400; }
.hexa-signup-page #registration .form-group { margin-bottom: 18px; }
.hexa-signup-page #registration .field,
.hexa-signup-page #registration .form-control { min-height: 48px; height: 48px; border: 1px solid #dbe3ee; border-radius: 9px; background: #fff; color: #23365c; padding: 11px 14px; font-size: 14px; transition: border-color .15s, box-shadow .15s; }
.hexa-signup-page #registration textarea.form-control { height: auto; }
.hexa-signup-page #registration .prepend-icon .field { padding-left: 44px; }
.hexa-signup-page #registration .prepend-icon .field-icon { height: 48px; line-height: 48px; width: 44px; margin: 0; }
.hexa-signup-page #registration .field-icon i { color: #8796ad; }
.hexa-signup-page #registration .field::placeholder { color: #7a879b; opacity: 1; }
.hexa-signup-page #registration .field:focus,
.hexa-signup-page #registration .form-control:focus { border-color: #6ea3fa; box-shadow: 0 0 0 3px rgba(13,110,253,.12); outline: none; }
.hexa-signup-page #registration select.field { padding-right: 30px; appearance: auto; }
/* Support the installed phone widget and its newer class names. */
.hexa-signup-page #registration .intl-tel-input,
.hexa-signup-page #registration .iti { display: block; width: 100%; }
.hexa-signup-page #registration .intl-tel-input input[type=tel],
.hexa-signup-page #registration .iti input[type=tel] { width: 100%; padding-left: 120px !important; }
.hexa-signup-page #registration .intl-tel-input .selected-flag,
.hexa-signup-page #registration .iti .iti__selected-flag { width: 104px !important; padding: 0 12px; border-right: 1px solid #dbe3ee; border-radius: 8px 0 0 8px; background: #f5f7fb; }
.hexa-signup-page #registration .intl-tel-input .flag-container,
.hexa-signup-page #registration .iti .iti__flag-container { padding: 1px; }
.hexa-signup-page #registration .intl-tel-input .country-list,
.hexa-signup-page #registration .iti .iti__country-list,
.hexa-signup-page .intl-tel-input.iti-container .country-list { width: 360px; max-width: calc(100vw - 64px); white-space: nowrap; overflow-x: hidden; border-color: #dbe3ee; border-radius: 9px; box-shadow: 0 8px 24px rgba(20,39,76,.12); z-index: 20; }
.hexa-signup-page .country-list .country,
.hexa-signup-page .iti__country-list .iti__country { display: flex; align-items: center; gap: 10px; min-height: 38px; padding: 8px 12px; font-size: 14px; line-height: 1.4; white-space: nowrap; }
.hexa-signup-page .country-list .flag-box,
.hexa-signup-page .iti__country-list .iti__flag-box { flex: 0 0 20px; width: 20px; margin: 0; }
.hexa-signup-page .country-list .country-name,
.hexa-signup-page .iti__country-list .iti__country-name { flex: 1; min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; }
.hexa-signup-page .country-list .dial-code,
.hexa-signup-page .iti__country-list .iti__dial-code { flex: 0 0 auto; margin: 0; color: #65748b; }
.hexa-signup-page #registration .hexa-phone-field > .field-icon { pointer-events: none; }
.hexa-signup-page #registration .hexa-phone-field:has(.intl-tel-input) > .field-icon,
.hexa-signup-page #registration .hexa-phone-field:has(.iti) > .field-icon { display: none; }
.hexa-signup-page #registration .hexa-field-label { display: block; margin: 0 0 8px; color: #23365c; font-size: 13px; font-weight: 600; }
.hexa-signup-page #registration .field { width: 100%; }
.hexa-signup-page #registration .hexa-signup-actions .btn:focus-visible { outline: 3px solid #6ea3fa; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    .hexa-signup-step-panel { animation: none; }
    .hexa-signup-page #registration .field { transition: none; }
}
.hexa-signup-page #registration .btn.generate-password { min-height: 40px; padding: 9px 14px; border-radius: 8px; }
.hexa-signup-page #registration .password-strength-meter .progress { height: 6px; border-radius: 6px; margin: 8px 0; }
.hexa-signup-page #registration label { color: #52647f; font-weight: 400; font-size: 14px; }
.hexa-signup-page #registration .form-check { display: inline-block; text-align: start; padding-left: 24px; line-height: 1.7; }
.hexa-signup-page #registration .hexa-signup-submit { margin: 24px 0 0; }
.hexa-signup-page #registration .hexa-signup-submit .btn { width: 100%; max-width: 360px; min-height: 50px; border-radius: 9px; font-size: 16px; font-weight: 600; box-shadow: 0 4px 12px rgba(13,110,253,.15); }
.hexa-signup-page #registration .hexa-signup-submit .btn:focus-visible { outline: 3px solid #6ea3fa; outline-offset: 3px; }
@media (max-width: 575px) {
    .hexa-signup-page #main-body { padding: 28px 16px 36px; }
    .hexa-signup-page #main-body > .container { padding-left: 0; padding-right: 0; }
    .hexa-signup-intro { flex-direction: column; align-items: flex-start; gap: 18px; padding: 20px 18px; }
    .hexa-signup-intro h1 { font-size: 25px; }
    .hexa-signup-intro p { font-size: 14px; }
    .hexa-signup-login { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 12px; width: 100%; }
    .hexa-signup-login > a { margin-left: auto; }
    .hexa-signup-page #registration .card-body { padding: 22px 18px !important; }
    .hexa-signup-page #registration .field,
    .hexa-signup-page #registration .form-control { font-size: 16px; }
    .hexa-signup-page #registration .hexa-signup-submit .btn { max-width: none; }
    .hexa-signup-steps { align-items: stretch; gap: 6px; padding: 8px; }
    .hexa-signup-steps li { flex: 1; flex-direction: column; gap: 7px; padding: 10px 3px; font-size: 10px; text-align: center; white-space: normal; }
    .hexa-signup-steps li + li::before { display: none; }
    .hexa-signup-actions .btn { width: 50%; min-width: 0; }
}

/* Privacy and terms immediately above the registration submit button. */
.hexa-signup-consent { margin: 24px 0; padding: 20px; border-radius: 12px; background: #fff; color: #3c3c3c; font-size: 15px; line-height: 1.6; text-align: left; }
.hexa-signup-privacy, .hexa-signup-terms { display: flex; align-items: flex-start; gap: 12px; }
.hexa-signup-page .hexa-signup-privacy { margin: 0; }
.hexa-signup-info { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%; background: #dedede; color: #454545; font-size: 10px; }
.hexa-signup-terms { margin: 16px 0 0; font-weight: 400; cursor: pointer; }
.hexa-signup-terms input { appearance: none; -webkit-appearance: none; flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; border: 1px solid #e60028; border-radius: 4px; background: #fff; cursor: pointer; }
.hexa-signup-terms input:checked { background: #e60028 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10l3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px 18px no-repeat; }
.hexa-signup-consent a, .hexa-signup-policy-label { color: #e60028; }
.hexa-signup-consent a:hover { text-decoration: underline; }
.hexa-signup-consent a:focus-visible, .hexa-signup-terms input:focus-visible { outline: 3px solid #6ea3fa; outline-offset: 3px; }
@media (forced-colors: active) { .hexa-signup-terms input { appearance: auto; -webkit-appearance: auto; } }
@media (max-width: 575px) { .hexa-signup-consent { padding: 16px; font-size: 14px; } }
