:root {
    --public-blue: #004871;
    --public-blue-dark: #00283e;
    --public-purple: #8b1b59;
    --public-green: #81b92f;
    --public-background: #f4f3f5;
    --public-text: #26333a;
    --public-border: #ded9e0;
}

html { font-size: 16px; }

*, *::before, *::after { box-sizing: border-box; }

.public-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.public-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 1000;
    padding: 12px 18px;
    color: #fff;
    background: var(--public-blue-dark);
    transform: translateY(-180%);
}

.public-skip-link:focus { transform: translateY(0); }

body.public-site {
    min-height: 100vh;
    margin: 0;
    color: var(--public-text);
    background: var(--public-background);
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

.public-container {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.public-header {
    min-height: 118px;
    background: #fff;
    border-bottom: 1px solid var(--public-border);
    display: flex;
    align-items: center;
}

.public-logo {
    display: inline-flex;
    width: min(330px, 75vw);
}

.public-logo img { width: 100%; height: auto; }

.public-layout {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 112px;
    align-items: start;
}

.public-main {
    min-width: 0;
    padding: 72px 24px;
}

.public-content {
    width: min(900px, 100%);
    min-width: 0;
    max-width: 100%;
    margin: 0 auto;
}

.public-intro {
    max-width: 850px;
    margin: 0 0 38px;
    padding: 23px 27px;
    color: #33434c;
    background: #fff;
    border-left: 5px solid var(--public-green);
    box-shadow: 0 8px 24px rgba(0, 72, 113, .07);
    font-size: 1.12rem;
    line-height: 1.65;
}

.public-page-title {
    margin: 0 0 30px;
    color: var(--public-blue-dark);
    font-size: clamp(1.8rem, 3vw, 2.3rem);
    line-height: 1.15;
}

.home-services {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    align-items: stretch;
}

.home-service {
    min-width: 0;
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
    display: flex;
}

.home-service__content {
    width: 100%;
    padding: clamp(28px, 4vw, 42px);
}

.home-service__content--directory {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.home-service--account .home-service__content {
    display: flex;
    flex-direction: column;
}

.home-service__description {
    max-width: 680px;
}

.home-service__description--account {
    margin-bottom: 28px;
}

.home-service__label {
    margin: 0 0 9px;
    color: var(--public-purple);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.home-service h2 {
    margin: 0 0 16px;
    color: var(--public-blue-dark);
    font-size: clamp(1.55rem, 2.6vw, 2rem);
    line-height: 1.2;
}

.home-service__description p:not(.home-service__label) {
    margin: 0;
    color: #43535c;
    font-size: 1.06rem;
    line-height: 1.65;
}

.home-service__description p:not(.home-service__label) + p {
    margin-top: 8px;
}

.home-service__primary-action {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    white-space: nowrap;
}

.home-service__primary-action svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.account-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: auto;
}

.account-action {
    min-width: 0;
    min-height: 96px;
    padding: 18px 20px;
    color: var(--public-blue-dark);
    background: #fff;
    border: 1px solid #cbc5cc;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.account-action:hover,
.account-action:focus {
    color: var(--public-blue-dark);
    border-color: var(--public-purple);
    box-shadow: 0 8px 22px rgba(56, 19, 43, .12);
    text-decoration: none;
    transform: translateY(-2px);
}

.account-action--primary {
    color: #fff;
    background: var(--public-purple);
    border-color: var(--public-purple);
}

.account-action--primary:hover,
.account-action--primary:focus {
    color: #fff;
    background: #741549;
}

.account-action__icon {
    flex: 0 0 45px;
    width: 45px;
    height: 45px;
    color: var(--public-purple);
    background: #f6edf2;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.account-action--primary .account-action__icon {
    color: #fff;
    background: rgba(255, 255, 255, .16);
}

.account-action__icon svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.account-action__text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.account-action__text strong {
    font-size: 1rem;
    line-height: 1.25;
}

.account-action__text span {
    color: #59666d;
    font-size: .88rem;
    line-height: 1.4;
}

.account-action--primary .account-action__text span {
    color: rgba(255, 255, 255, .88);
}

.help-header {
    max-width: 760px;
    margin-bottom: 28px;
}

.help-header .public-page-title {
    margin-bottom: 14px;
}

.help-intro {
    margin: 0;
    color: #43535c;
    font-size: 1.08rem;
    line-height: 1.65;
}

.help-nav {
    margin: 0 0 28px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--public-border);
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.help-nav__item {
    padding: 9px 12px;
    color: var(--public-blue-dark);
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
}

.help-nav__item:hover,
.help-nav__item:focus,
.help-nav__item.is-active {
    color: #fff;
    background: var(--public-blue);
    text-decoration: none;
}

.help-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.help-card {
    min-width: 0;
    min-height: 150px;
    padding: 25px;
    color: var(--public-blue-dark);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 5px solid var(--public-purple);
    box-shadow: 0 8px 24px rgba(0, 72, 113, .07);
    display: flex;
    align-items: flex-start;
    gap: 18px;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.help-card:hover,
.help-card:focus {
    color: var(--public-blue-dark);
    border-color: var(--public-purple);
    box-shadow: 0 12px 28px rgba(56, 19, 43, .12);
    text-decoration: none;
    transform: translateY(-2px);
}

.help-card__icon {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    color: var(--public-purple);
    background: #f6edf2;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.help-card__icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.help-card > span:last-child {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.help-card strong {
    font-size: 1.08rem;
    line-height: 1.3;
}

.help-card > span:last-child > span {
    color: #526169;
    font-size: .95rem;
    line-height: 1.5;
}

.help-article {
    padding: clamp(26px, 4vw, 42px);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
    font-size: 1rem;
    line-height: 1.65;
}

.help-article > :first-child { margin-top: 0; }
.help-article > :last-child { margin-bottom: 0; }

.help-section + .help-section {
    margin-top: 36px;
    padding-top: 32px;
    border-top: 1px solid var(--public-border);
}

.help-section h2 {
    margin: 0 0 18px;
    color: var(--public-blue-dark);
    font-size: 1.35rem;
    line-height: 1.3;
}

.help-section h3 {
    margin: 24px 0 12px;
    color: var(--public-blue-dark);
    font-size: 1.08rem;
}

.help-link-list {
    margin: 0;
    padding-left: 22px;
}

.help-link-list li + li { margin-top: 10px; }

.help-callout {
    margin: 22px 0 0;
    padding: 18px 20px;
    background: #f4f8fa;
    border-left: 5px solid var(--public-blue);
}

.help-accordion {
    display: grid;
    gap: 12px;
}

.help-accordion details {
    background: #fff;
    border: 1px solid var(--public-border);
}

.help-accordion summary {
    padding: 18px 52px 18px 20px;
    color: var(--public-blue-dark);
    cursor: pointer;
    font-weight: 700;
    line-height: 1.45;
    list-style: none;
    position: relative;
}

.help-accordion summary::-webkit-details-marker { display: none; }

.help-accordion summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--public-purple);
    font-size: 1.6rem;
    font-weight: 400;
    transform: translateY(-52%);
}

.help-accordion details[open] summary::after { content: "−"; }

.help-accordion details[open] summary {
    border-bottom: 1px solid var(--public-border);
}

.help-accordion__answer {
    padding: 18px 20px;
    color: #43535c;
}

.help-accordion__answer > :first-child { margin-top: 0; }
.help-accordion__answer > :last-child { margin-bottom: 0; }

.help-table-wrap {
    max-width: 100%;
    overflow-x: auto;
}

.help-table {
    width: 100%;
    border-collapse: collapse;
}

.help-table th,
.help-table td {
    padding: 12px 14px;
    border: 1px solid var(--public-border);
    text-align: left;
    vertical-align: top;
}

.help-table th {
    color: #fff;
    background: var(--public-blue-dark);
}

.help-media {
    max-width: 100%;
    height: auto;
}

.help-document-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.help-document-block {
    min-width: 0;
    padding: 20px;
    background: #faf9fa;
    border: 1px solid var(--public-border);
}

.help-document-block h3 { margin-top: 0; }

.help-video {
    width: 100%;
    max-width: 360px;
    height: auto;
    margin-top: 8px;
}

.activation-header {
    max-width: 760px;
    margin-bottom: 30px;
}

.activation-header .public-page-title {
    margin-bottom: 14px;
}

.activation-intro {
    margin: 0;
    color: #43535c;
    font-size: 1.08rem;
    line-height: 1.65;
}

.activation-profile-prompt {
    margin: 0 0 24px;
    color: var(--public-blue-dark);
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    display: flex;
    align-items: center;
    gap: 18px;
}

.activation-profile-prompt::before,
.activation-profile-prompt::after {
    content: "";
    height: 1px;
    background: var(--public-border);
    flex: 1 1 auto;
}

.activation-profile-prompt span {
    flex: 0 1 auto;
}

.activation-profile-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.activation-profile {
    min-width: 0;
    min-height: 320px;
    padding: 28px 25px;
    color: var(--public-blue-dark);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 7px solid var(--public-purple);
    box-shadow: 0 10px 28px rgba(0, 72, 113, .08);
    display: flex;
    flex-direction: column;
    gap: 22px;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.activation-profile:hover,
.activation-profile:focus {
    color: var(--public-blue-dark);
    border-color: var(--public-purple);
    box-shadow: 0 14px 32px rgba(56, 19, 43, .13);
    text-decoration: none;
    transform: translateY(-3px);
}

.activation-profile__icon {
    width: 58px;
    height: 58px;
    color: var(--public-purple);
    background: #f6edf2;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.activation-profile__icon svg,
.activation-introduction__icon svg {
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.activation-profile__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.activation-profile__content strong {
    font-size: 1.3rem;
    line-height: 1.25;
}

.activation-profile__content > span:not(.activation-profile__link) {
    color: #526169;
    font-size: .96rem;
    line-height: 1.55;
}

.activation-profile__link {
    padding-top: 16px;
    margin-top: auto;
    color: var(--public-purple);
    border-top: 1px solid var(--public-border);
    font-size: .94rem;
    font-weight: 800;
}

.activation-profile:hover .activation-profile__link,
.activation-profile:focus .activation-profile__link {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.activation-help {
    margin: 26px 0 0;
    padding: 18px 20px;
    color: #43535c;
    background: #fff;
    border-left: 5px solid var(--public-blue);
    line-height: 1.6;
}

.activation-flow {
    display: grid;
    gap: 24px;
}

.activation-introduction,
.activation-step,
.activation-result {
    padding: clamp(26px, 4vw, 40px);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
}

.activation-step {
    --activation-step-padding-x: clamp(26px, 4vw, 40px);
    --activation-step-padding-y: clamp(26px, 4vw, 40px);
    padding: var(--activation-step-padding-y) var(--activation-step-padding-x);
}

.activation-step--progress {
    border-top: 0;
}

.activation-introduction {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

.activation-introduction__icon {
    width: 54px;
    height: 54px;
    color: var(--public-purple);
    background: #f6edf2;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.activation-introduction h2,
.activation-result h2 {
    margin: 0 0 14px;
    color: var(--public-blue-dark);
    font-size: 1.45rem;
    line-height: 1.3;
}

.activation-introduction p,
.activation-step p,
.activation-result p {
    line-height: 1.65;
}

.activation-actions {
    margin-top: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.activation-actions .public-button,
.activation-step .public-button {
    margin-top: 0;
}

.activation-step__heading {
    margin-bottom: 28px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.activation-progress {
    margin: calc(var(--activation-step-padding-y) * -1)
            calc(var(--activation-step-padding-x) * -1)
            28px;
}

.activation-progress__label {
    min-height: 48px;
    padding: 12px 17px;
    color: #fff;
    background: var(--public-purple);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    font-size: .92rem;
}

.activation-progress__action {
    font-size: 1.05rem;
    font-weight: 800;
}

.activation-progress__step {
    font-size: .94rem;
    font-weight: 700;
    opacity: .92;
    white-space: nowrap;
}

.activation-progress__track {
    height: 7px;
    background: #e7dbe2;
    overflow: hidden;
}

.activation-progress__track span {
    height: 100%;
    background: var(--public-green);
    display: block;
    transition: width .25s ease;
}

.activation-step__heading p {
    margin: 0 0 4px;
    color: var(--public-purple);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1.2;
    text-transform: uppercase;
}

.activation-step__heading h2 {
    margin: 0;
    color: var(--public-blue-dark);
    font-size: 1.4rem;
    line-height: 1.3;
}

.activation-step__number {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    color: #fff;
    background: var(--public-purple);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    font-weight: 800;
}

.activation-input,
.public-site .activation-step .dijitTextBox {
    width: 100%;
    min-height: 44px;
    color: var(--public-text);
    background: #fff;
    border: 2px solid #69777e;
    border-radius: 0;
    font: inherit;
}

.activation-input {
    padding: 8px 11px;
}

.public-site .activation-step .dijitTextBox {
    height: auto;
    font-size: .94rem;
}

.public-site .activation-step .dijitInputInner {
    min-height: 40px;
    padding: 8px 11px !important;
    font: inherit;
}

.activation-input:focus-visible,
.public-site .activation-step .dijitTextBoxFocused {
    border-color: var(--public-blue);
    outline: 3px solid rgba(129, 185, 47, .55);
    outline-offset: 2px;
}

.activation-error {
    margin: 9px 0 0;
    color: #9f1c15;
    font-weight: 700;
}

.activation-validation-ok {
    margin: 0 0 22px;
    padding: 13px 16px;
    color: #31520d;
    background: #f2f8e8;
    border-left: 5px solid #4f7c14;
    font-weight: 700;
}

.activation-date {
    margin: 0;
    padding: 0;
    border: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.activation-date legend {
    width: 100%;
    margin: 0 0 10px;
    color: var(--public-blue-dark);
    font-size: 1rem;
    font-weight: 700;
}

.activation-date label,
.activation-step .public-form__field label {
    display: block;
    margin-bottom: 7px;
    color: var(--public-blue-dark);
    font-size: .92rem;
    font-weight: 700;
}

.public-site .activation-step .activation-date select.activation-input,
.public-site .activation-step .activation-date input.activation-input {
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    padding-top: 7px;
    padding-bottom: 7px;
    line-height: 1.2;
}

.activation-charter {
    max-height: 360px;
    margin-top: 20px;
    padding: 22px;
    background: #faf9fa;
    border: 1px solid var(--public-border);
    overflow-y: auto;
    font-size: .9rem;
    line-height: 1.55;
}

.activation-charter h2 {
    margin: 0 0 16px;
    font-size: 1.14rem;
    line-height: 1.3;
}

.activation-charter h4 {
    margin: 18px 0 8px;
    font-size: .98rem;
    line-height: 1.35;
}

.activation-checkbox {
    margin-top: 22px;
    padding: 16px 18px;
    background: #f4f8fa;
    border: 1px solid #cbd9e1;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.45;
}

.activation-checkbox input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.activation-contact-list {
    margin-top: 22px;
    padding: 18px;
    background: #faf9fa;
    border: 1px solid var(--public-border);
}

.activation-password-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(310px, .95fr);
    gap: 24px;
    align-items: start;
}

.activation-step__heading .activation-step__description {
    margin: 8px 0 0;
    color: #526169;
    font-size: .95rem;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1.55;
    text-transform: none;
}

.activation-password-panel,
.activation-password-rules {
    padding: clamp(22px, 3vw, 30px);
    font-size: .92rem;
    line-height: 1.55;
    border: 1px solid var(--public-border);
    box-shadow: 0 5px 18px rgba(0, 72, 113, .05);
}

.activation-password-panel {
    background: #fff;
    display: flex;
    flex-direction: column;
}

.activation-password-panel .dijitTextBox,
.activation-password-panel .activation-input {
    border: 1px solid #cbd4da;
    border-radius: 4px;
}

.public-site .activation-step .activation-password-panel.has-password-error .dijitTextBox,
.public-site .activation-step .activation-password-panel.has-password-error .activation-input {
    border-color: #b42318 !important;
    box-shadow: 0 0 0 1px rgba(180, 35, 24, .18);
}

.public-site .activation-step .activation-password-panel .dijitTextBox {
    height: 44px;
    min-height: 44px;
    padding: 0;
}

.public-site .activation-step .activation-password-panel .dijitInputField {
    height: 42px;
    padding: 0 !important;
}

.public-site .activation-step .activation-password-panel .dijitInputInner {
    height: 42px;
    min-height: 0;
    padding: 0 12px !important;
    color: var(--public-text);
    font-size: .9rem;
    font-style: normal;
}

.activation-password-strength {
    margin: 5px 0 26px;
}

.activation-password-strength__heading {
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    color: var(--public-blue-dark);
    font-size: .92rem;
}

.activation-password-strength__heading span {
    color: #68757c;
    font-size: .85rem;
}

.activation-password-generator {
    margin-top: 24px;
    padding: 18px;
    background: #f8f3f7;
    border: 1px solid #decbd7;
}

.activation-password-generator strong {
    color: var(--public-blue-dark);
    font-size: .94rem;
    font-weight: 700;
}

.activation-password-generator p {
    margin: 5px 0 0;
    color: #59666d;
    font-size: .88rem;
    line-height: 1.5;
}

.activation-password-generator .public-button {
    width: 100%;
    margin-top: 15px;
    padding: 10px 16px;
    justify-content: center;
}

.activation-password-generator__result {
    min-height: 42px;
    margin-top: 10px;
    font-size: .88rem;
}

.activation-password-submit {
    width: 100%;
    min-height: 52px;
    margin-top: 24px !important;
    padding: 14px 20px;
    justify-content: center;
    text-align: center;
    font-size: 1.05rem;
    font-weight: 800;
}

.activation-password-submit:disabled {
    cursor: wait;
    opacity: .72;
}

.activation-password-submit-error {
    margin: 20px 0 0;
    padding: 12px 14px;
    color: #8b1717;
    background: #fff1f1;
    border-left: 4px solid #b42318;
    font-size: .9rem;
    line-height: 1.5;
}

.activation-password-field-error {
    margin: -5px 0 20px;
    padding: 10px 12px;
    color: #8b1717;
    background: #fff1f1;
    border-left: 4px solid #b42318;
    font-size: .9rem;
    line-height: 1.5;
}

.activation-security-tip {
    margin-top: 22px;
    padding: 16px 18px;
    background: #faf9fa;
    border-left: 4px solid var(--public-purple);
}

.activation-security-tip p {
    margin: 0;
    color: #526169;
    font-size: .9rem;
    line-height: 1.5;
}

.activation-password-rules {
    color: #3f4c53;
    background: #fcfbfc;
}

.activation-password-rules h3 {
    margin: 0 0 20px;
    color: var(--public-purple);
    font-size: 1.03rem;
    font-weight: 800;
    line-height: 1.4;
}

.activation-password-rules > p {
    margin: 0 0 16px;
}

.activation-password-rules__list,
.activation-password-rules__list ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.activation-password-rules__list > li {
    margin-top: 13px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: .92rem;
    line-height: 1.5;
}

.activation-password-rules__list strong { font-weight: 700; }

.activation-password-rules__list > li > span {
    flex: 0 0 21px;
    width: 21px;
    height: 21px;
    color: #69777e;
    border: 1px solid #9ba6ac;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 800;
}

.activation-password-rules__list > li.is-valid > span {
    color: #2d7e20;
    background: #f2f8e8;
    border-color: #2d7e20;
}

.activation-password-rules__list > li.is-invalid > span {
    color: #a61b1b;
    background: #fff1f1;
    border-color: #b42318;
}

.activation-password-rules__list ul {
    margin-top: 9px;
}

.activation-password-rules__list ul li {
    margin-top: 5px;
    padding-left: 16px;
    position: relative;
    font-size: .9rem;
}

.activation-password-rules__list ul li::before {
    content: "•";
    position: absolute;
    left: 2px;
    color: var(--public-purple);
}

.activation-password-warning {
    margin-top: 26px;
    padding: 16px 17px;
    background: #fbf6f7;
    border-left: 4px solid #bd1f34;
}

.activation-password-warning h4 {
    margin: 0 0 12px;
    color: var(--public-blue-dark);
    font-size: .94rem;
    font-weight: 800;
    line-height: 1.45;
}

.activation-password-warning p {
    margin: 10px 0 0;
    font-size: .88rem;
    line-height: 1.5;
}

.activation-password-example {
    padding: 10px 12px;
    background: #f0edef;
    font-size: .82rem !important;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    overflow-wrap: anywhere;
}

.activation-password-characters {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--public-border);
}

.activation-password-characters strong {
    display: block;
    margin-bottom: 10px;
    font-size: .92rem;
    font-weight: 700;
}

.activation-password-characters code {
    padding: 13px;
    color: #26343b;
    background: #f0edef;
    display: block;
    font-size: .84rem;
    line-height: 1.6;
    white-space: normal;
    overflow-wrap: anywhere;
}

.activation-password-meter {
    height: 10px;
    background: repeating-linear-gradient(to right, #ddd5da 0, #ddd5da calc(20% - 4px), transparent calc(20% - 4px), transparent 20%);
    overflow: hidden;
}

#mypassword_bar {
    min-height: 10px;
    border: 0 !important;
    transition: width .2s ease, background-color .2s ease;
}

.public-password-submission-form { display: none; }

.password-reset-header {
    margin-bottom: 30px;
}

.password-reset-header .public-page-title {
    margin-bottom: 12px;
}

.password-reset-intro {
    max-width: 760px;
    margin: 0;
    color: #4c5a61;
    font-size: 1.08rem;
    line-height: 1.65;
}

.password-reset-state__header {
    margin-bottom: 24px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    align-items: center;
}

.password-reset-state__header > div > p {
    margin: 0 0 4px;
    color: var(--public-purple);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1.2;
    text-transform: uppercase;
}

.password-reset-state__header h2 {
    margin: 0;
    color: var(--public-blue-dark);
    font-size: 1.5rem;
    line-height: 1.3;
}

.password-reset-state__icon {
    width: 54px;
    height: 54px;
    color: #fff;
    background: var(--public-purple);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.45rem;
    font-weight: 800;
}

.password-reset-state__icon svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.password-reset-state__header--success .password-reset-state__icon {
    background: #4f7c14;
}

.password-reset-state__header--success > div > p {
    color: #4f7c14;
}

.password-reset-state__header--warning .password-reset-state__icon {
    background: #b55c00;
}

.password-reset-state__header--warning > div > p {
    color: #8b4700;
}

.password-reset-state__lead {
    margin: 0 0 24px;
    color: #43535c;
    font-size: 1.04rem;
}

.password-reset-next-steps {
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
    counter-reset: password-reset-step;
    display: grid;
    gap: 12px;
}

.password-reset-next-steps li {
    min-height: 40px;
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    line-height: 1.5;
    counter-increment: password-reset-step;
}

.password-reset-next-steps li::before {
    width: 34px;
    height: 34px;
    content: counter(password-reset-step);
    color: #fff;
    background: var(--public-blue);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
}

.password-reset-request__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
    gap: 28px;
    align-items: start;
}

.password-reset-form,
.password-reset-help {
    min-width: 0;
    padding: 25px;
    border: 1px solid var(--public-border);
}

.password-reset-form {
    background: #fff;
}

.password-reset-form label {
    color: var(--public-blue-dark);
    font-size: 1rem;
}

.password-reset-form .activation-input {
    min-height: 46px;
    border: 2px solid #69777e;
}

.password-reset-form__hint {
    margin: 7px 0 0 !important;
    color: #59676e;
    font-size: .9rem;
}

.password-reset-help {
    background: #f7f1f5;
    border-left: 5px solid var(--public-purple);
}

.password-reset-help h3 {
    margin: 0 0 15px;
    color: var(--public-blue-dark);
    font-size: 1.18rem;
}

.password-reset-help ul {
    margin: 0;
    padding-left: 20px;
}

.password-reset-help li,
.password-reset-help p {
    font-size: .96rem;
    line-height: 1.55;
}

.password-reset-help li + li {
    margin-top: 9px;
}

.password-reset-help p {
    margin: 18px 0 0;
}

.password-reset-contacts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.password-reset-contact {
    min-width: 0;
    padding: 20px;
    background: #f8f7f8;
    border: 1px solid var(--public-border);
    border-top: 5px solid var(--public-purple);
}

.password-reset-contact h3 {
    margin: 0 0 14px;
    color: var(--public-blue-dark);
    font-size: 1.08rem;
}

.password-reset-contact p {
    margin: 10px 0 0;
    overflow-wrap: anywhere;
}

.activation-result__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    align-items: center;
}

.activation-result__header > div > p {
    margin: 0 0 4px;
    color: #4f7c14;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.activation-result__header h2 { margin: 0; }

.activation-result__icon {
    width: 52px;
    height: 52px;
    color: #fff;
    background: #4f7c14;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 800;
}

.activation-result__notice {
    margin: 26px 0;
    padding: 17px 19px;
    background: #f2f8e8;
    border-left: 5px solid #4f7c14;
}

.activation-summary,
.activation-services {
    margin: 0;
    border-top: 1px solid var(--public-border);
}

.activation-summary > div,
.activation-services > div {
    padding: 13px 0;
    border-bottom: 1px solid var(--public-border);
    display: grid;
    grid-template-columns: minmax(160px, .7fr) minmax(0, 1.3fr);
    gap: 18px;
}

.activation-summary dt,
.activation-services dt {
    color: var(--public-blue-dark);
    font-weight: 800;
}

.activation-summary dd,
.activation-services dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.activation-result__section {
    margin-top: 32px;
}

.activation-result__section h3 {
    margin: 0 0 14px;
    color: var(--public-blue-dark);
    font-size: 1.2rem;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    min-width: 0;
}

.service-card {
    min-width: 0;
    max-width: 100%;
    min-height: 250px;
    padding: 30px;
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
    display: flex;
    flex-direction: column;
}

.service-card h2 {
    margin: 0 0 15px;
    color: var(--public-blue-dark);
    font-size: 1.4rem;
}

.service-card p {
    margin: 0 0 30px;
    color: #4c5a61;
    font-size: 1.03rem;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.public-action,
.public-button {
    margin-top: auto;
    align-self: flex-start;
    padding: 13px 25px;
    color: #fff;
    background: var(--public-purple);
    border: 2px solid var(--public-purple);
    font-size: .95rem;
    font-weight: 700;
    text-decoration: none;
    max-width: 100%;
    overflow-wrap: anywhere;
    transition: background-color .2s ease, color .2s ease;
}

.public-action:hover,
.public-action:focus,
.public-button:hover,
.public-button:focus {
    color: var(--public-purple);
    background: #fff;
    text-decoration: none;
}

.public-action:focus-visible,
.public-button:focus-visible,
.account-action:focus-visible,
.help-nav__item:focus-visible,
.help-card:focus-visible,
.help-accordion summary:focus-visible,
.activation-profile:focus-visible,
.activation-checkbox input:focus-visible,
.public-sidebar__item:focus-visible,
.public-header a:focus-visible,
.public-footer a:focus-visible {
    outline: 4px solid var(--public-green);
    outline-offset: 3px;
}

.public-button--secondary {
    color: var(--public-blue-dark);
    background: #fff;
    border-color: var(--public-blue-dark);
}

.public-button--secondary:hover,
.public-button--secondary:focus {
    color: #fff;
    background: var(--public-blue-dark);
}

.public-sidebar {
    display: flex;
    flex-direction: column;
    align-self: start;
}

.public-sidebar__item {
    min-height: 116px;
    padding: 16px 8px;
    color: #fff;
    background: var(--public-blue-dark);
    border-bottom: 1px solid #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 11px;
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

.public-sidebar__item:hover,
.public-sidebar__item:focus,
.public-sidebar__item.is-active {
    color: #fff;
    background: var(--public-blue);
    text-decoration: none;
}

.public-sidebar__item--directory {
    background: var(--public-purple);
}

.public-sidebar__item--directory:hover,
.public-sidebar__item--directory:focus {
    background: #711648;
}

.public-sidebar__item svg {
    width: 37px;
    height: 37px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.public-panel {
    padding: 28px;
    background: #fff;
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
}

.public-card {
    padding: 28px;
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
}

.plan-transition {
    margin-bottom: 28px;
}

.plan-transition h2 {
    margin: 0 0 14px;
    color: var(--public-blue-dark);
    font-size: 1.35rem;
    line-height: 1.3;
}

.plan-transition p {
    margin: 0 0 22px;
    color: #43535c;
    font-size: 1.03rem;
    line-height: 1.65;
}

.plan-transition .public-button {
    display: inline-flex;
    margin-top: 0;
}

.public-message {
    margin: 0 0 24px;
    padding: 18px 20px;
    color: var(--public-text);
    background: #fff;
    border-left: 5px solid var(--public-blue);
    font-size: 1rem;
    line-height: 1.6;
}

.public-message--success { border-left-color: #4f7c14; }
.public-message--warning { border-left-color: #b55c00; }
.public-message--error { border-left-color: #b42318; }

.public-form { width: 100%; }
.public-form__field { margin-bottom: 22px; }
.public-form label { display: block; margin-bottom: 8px; font-weight: 700; }
.public-form input,
.public-form select,
.public-form textarea {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    color: var(--public-text);
    background: #fff;
    border: 2px solid #69777e;
    border-radius: 0;
    font: inherit;
}

.public-form textarea { min-height: 130px; resize: vertical; }
.public-form input:focus-visible,
.public-form select:focus-visible,
.public-form textarea:focus-visible {
    border-color: var(--public-blue);
    outline: 3px solid rgba(129, 185, 47, .55);
    outline-offset: 2px;
}

.public-map {
    width: 100%;
    height: min(62vh, 600px);
    min-height: 450px;
    background: #e7e7e7;
}

.public-footer {
    color: #fff;
    background: var(--public-blue-dark);
    padding: 46px 0 24px;
}

.public-footer__grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    gap: 42px;
}

.public-footer__grid > * { min-width: 0; }

.public-footer__logo { width: min(220px, 100%); }
.public-footer h2 { margin: 0 0 14px; color: #fff; font-size: 1.25rem; }
.public-footer p { line-height: 1.6; }
.public-footer ul { margin: 0; padding: 0; list-style: none; }
.public-footer li + li { margin-top: 10px; }
.public-footer a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.public-footer a:hover, .public-footer a:focus { color: #fff; text-decoration-thickness: 2px; }

.public-footer .public-footer__button {
    display: inline-flex;
    margin-top: 6px;
    padding: 11px 18px;
    color: var(--public-blue-dark);
    background: #fff;
    border: 2px solid #fff;
    font-weight: 700;
    text-decoration: none;
}

.public-footer .public-footer__button:hover,
.public-footer .public-footer__button:focus {
    color: #fff;
    background: transparent;
    text-decoration: none;
}

.public-footer__bottom {
    margin-top: 38px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.2);
    font-size: .9rem;
}

@media (max-width: 1050px) {
    .home-services { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .public-layout { grid-template-columns: 1fr; }
    .public-main { padding: 48px 20px; }
    .service-grid { grid-template-columns: 1fr; }
    .home-service__content--directory { gap: 26px; }
    .account-actions { grid-template-columns: 1fr; }
    .account-action { min-height: 96px; }
    .help-grid { grid-template-columns: 1fr; }
    .help-document-grid { grid-template-columns: 1fr; }
    .activation-profile-grid { grid-template-columns: 1fr; }
    .activation-profile { min-height: 0; }
    .activation-password-layout { grid-template-columns: 1fr; }
    .password-reset-request__layout { grid-template-columns: 1fr; }
    .public-sidebar { flex-direction: row; flex-wrap: wrap; width: 100%; }
    .public-sidebar__item { min-height: 104px; flex: 1 1 25%; border-right: 1px solid #fff; }
    .public-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
    .public-container { width: min(100% - 32px, 1180px); }
    .public-header { min-height: 92px; }
    .public-main { padding: 36px 16px; }
    .public-intro { padding: 21px; font-size: 1.05rem; }
    .home-services { gap: 22px; }
    .home-service__content { padding: 27px 23px; }
    .home-service__description p:not(.home-service__label) { font-size: 1rem; }
    .home-service__primary-action { justify-content: center; width: 100%; white-space: normal; }
    .account-action { padding: 18px; }
    .help-nav { display: grid; grid-template-columns: 1fr 1fr; }
    .help-nav__item { display: flex; align-items: center; }
    .help-card { min-height: 0; padding: 21px; }
    .help-article { padding: 25px 21px; }
    .activation-introduction { grid-template-columns: 1fr; }
    .activation-step, .activation-result, .activation-introduction { padding: 25px 21px; }
    .activation-step { --activation-step-padding-x: 21px; --activation-step-padding-y: 25px; }
    .activation-date { grid-template-columns: 1fr; }
    .activation-date > div:last-child { grid-column: auto; }
    .activation-progress__label { align-items: flex-start; flex-direction: column; gap: 2px; }
    .activation-password-generator .public-button,
    .activation-password-generator__result { width: 100%; }
    .activation-actions { align-items: stretch; flex-direction: column; }
    .activation-actions .public-button { width: 100%; justify-content: center; text-align: center; }
    .activation-summary > div, .activation-services > div { grid-template-columns: 1fr; gap: 4px; }
    .password-reset-state__header { grid-template-columns: 1fr; }
    .password-reset-contacts { grid-template-columns: 1fr; }
    .password-reset-form, .password-reset-help { padding: 21px; }
    .service-card { min-height: 0; padding: 27px; }
    .service-card p { font-size: 1rem; }
    .public-sidebar__item { flex-basis: 50%; font-size: .9rem; }
    .public-sidebar__item svg { width: 33px; height: 33px; }
    .public-footer__grid { grid-template-columns: 1fr; }
    .public-map { height: 480px; min-height: 0; }
}

/* Assistance publique */
.assistance-page {
    display: grid;
    gap: 34px;
}

.assistance-page h1,
.assistance-page h2,
.assistance-page h3,
.assistance-page h4,
.assistance-page p {
    padding: 0;
}

.assistance-header {
    max-width: 790px;
}

.assistance-header .public-page-title {
    margin-bottom: 14px;
}

.assistance-intro {
    margin: 0;
    color: #43535c;
    font-size: 1rem;
    line-height: 1.65;
}

.assistance-result-header .public-button,
.assistance-verification-header .public-button {
    display: inline-flex;
    margin-top: 22px;
}

.assistance-progress {
    padding: 18px 22px;
    background: #fff;
    border: 1px solid var(--public-border);
    box-shadow: 0 8px 24px rgba(0, 72, 113, .06);
}

.assistance-progress ol {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.assistance-progress li {
    position: relative;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.assistance-progress li:not(:last-child)::after {
    position: absolute;
    z-index: 0;
    top: 20px;
    left: 45px;
    right: 12px;
    height: 2px;
    background: #d7dee2;
    content: '';
}

.assistance-progress__number {
    position: relative;
    z-index: 1;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    color: #65747c;
    background: #f1f4f5;
    border: 2px solid #cbd4d8;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    font-weight: 900;
}

.assistance-progress__text {
    position: relative;
    z-index: 1;
    min-width: 0;
    padding-right: 12px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.assistance-progress__text strong {
    color: #68777e;
    font-size: .72rem;
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.assistance-progress__text span {
    color: #4e5c63;
    font-size: .93rem;
    font-weight: 700;
    line-height: 1.3;
}

.assistance-progress__text small {
    color: #68777e;
    font-size: .75rem;
}

.assistance-progress li.is-active .assistance-progress__number {
    color: #fff;
    background: var(--public-purple);
    border-color: var(--public-purple);
}

.assistance-progress li.is-active .assistance-progress__text strong,
.assistance-progress li.is-active .assistance-progress__text span {
    color: var(--public-purple);
}

.assistance-progress li.is-complete .assistance-progress__number {
    color: #fff;
    background: #4f7c14;
    border-color: #4f7c14;
}

.assistance-progress li.is-complete:not(:last-child)::after { background: #9ab76e; }
.assistance-progress li.is-skipped .assistance-progress__number {
    color: #68777e;
    background: #fff;
    border-style: dashed;
}

.assistance-section {
    min-width: 0;
}

.assistance-section__heading {
    max-width: 760px;
    margin-bottom: 22px;
}

.assistance-section__heading h2 {
    margin: 0 0 10px;
    color: var(--public-blue-dark);
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    line-height: 1.25;
}

.assistance-section__heading > p:not(.home-service__label) {
    margin: 0;
    color: #4b5960;
    font-size: .94rem;
    line-height: 1.6;
}

.assistance-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.assistance-choice {
    min-width: 0;
    min-height: 200px;
    padding: 24px;
    color: var(--public-text);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 7px solid var(--public-purple);
    box-shadow: 0 10px 28px rgba(0, 72, 113, .08);
    display: flex;
    align-items: flex-start;
    gap: 17px;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.assistance-choice:hover,
.assistance-choice:focus {
    color: var(--public-text);
    border-color: var(--public-purple);
    box-shadow: 0 14px 34px rgba(56, 19, 43, .13);
    text-decoration: none;
    transform: translateY(-2px);
}

.assistance-choice:focus-visible,
.assistance-partner-card a:focus-visible,
.assistance-profile-options input:focus-visible {
    outline: 4px solid var(--public-green);
    outline-offset: 3px;
}

.assistance-choice__icon,
.assistance-action-card__icon {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    color: var(--public-purple);
    background: #f6edf2;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.assistance-choice__icon svg,
.assistance-action-card__icon svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.assistance-choice__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.assistance-choice__content strong {
    color: var(--public-blue-dark);
    font-size: 1.08rem;
    line-height: 1.3;
}

.assistance-choice__content > span:not(.assistance-choice__link) {
    color: #526068;
    font-size: .94rem;
    line-height: 1.55;
}

.assistance-choice__link {
    margin-top: auto;
    padding-top: 13px;
    color: var(--public-purple);
    border-top: 1px solid var(--public-border);
    font-size: .88rem;
    font-weight: 800;
}

.assistance-diagnostic {
    scroll-margin-top: 24px;
    padding: clamp(24px, 3.5vw, 34px);
    background: #fff;
    border-top: 8px solid var(--public-purple);
    box-shadow: 0 12px 35px rgba(0, 72, 113, .09);
}

.assistance-profile-fieldset {
    margin: 0 0 22px;
    padding: 0;
    border: 0;
}

.assistance-form__error-summary {
    margin-bottom: 24px;
    align-items: center;
}

.assistance-form__error-summary[hidden],
.assistance-field-error[hidden] {
    display: none;
}

.assistance-profile-fieldset legend {
    margin-bottom: 8px;
    color: var(--public-blue-dark);
    font-size: .92rem;
    font-weight: 800;
}

.assistance-profile-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.assistance-profile-options label {
    min-height: 44px;
    margin: 0;
    padding: 9px 12px;
    border: 2px solid var(--public-border);
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: .92rem;
    cursor: pointer;
}

.assistance-profile-options label:has(input:checked) {
    color: var(--public-purple);
    background: #fbf5f8;
    border-color: var(--public-purple);
}

.assistance-profile-options input {
    width: 17px;
    height: 17px;
    min-height: 17px;
    margin: 0;
    padding: 0;
    border: 0;
    accent-color: var(--public-purple);
}

.assistance-field-error {
    margin: 8px 0 0 !important;
    color: #a52018 !important;
    font-size: .88rem !important;
    font-weight: 750;
    line-height: 1.4 !important;
}

.assistance-form [data-assistance-field].has-error input:not([type="radio"]) {
    background: #fff8f7;
    border-color: #b42318;
    box-shadow: 0 0 0 1px #b42318;
}

.assistance-form .assistance-profile-fieldset.has-error .assistance-profile-options label {
    background: #fff8f7;
    border-color: #b42318;
}

.assistance-form [aria-invalid="true"]:focus-visible {
    outline-color: #b42318;
}

.assistance-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
}

.assistance-form .public-form__field {
    margin-bottom: 18px;
}

.assistance-form .public-form__field label {
    margin-bottom: 7px;
    color: var(--public-blue-dark);
    font-size: .92rem;
}

.assistance-form input:not([type="radio"]),
.assistance-form select,
.assistance-form textarea {
    min-height: 44px;
    padding: 8px 11px;
    font-size: .94rem;
}

.assistance-form__date {
    grid-column: 1 / -1;
    max-width: calc(50% - 10px);
}

.assistance-form__footer {
    padding-top: 4px;
    border-top: 1px solid var(--public-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.assistance-form__footer p {
    max-width: 520px;
    margin: 0;
    color: #59666d;
    font-size: .9rem;
    line-height: 1.5;
}

.assistance-form__footer .public-button,
.assistance-action-card .public-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    font-family: inherit;
    cursor: pointer;
}

.assistance-message {
    margin-bottom: 0;
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.assistance-message__icon {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    color: #fff;
    background: var(--public-blue);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 900;
}

.public-message--success .assistance-message__icon { background: #4f7c14; }
.public-message--warning .assistance-message__icon { background: #b55c00; }
.public-message--error .assistance-message__icon { background: #b42318; }
.assistance-message p { margin: 1px 0 0; }

.assistance-partners {
    scroll-margin-top: 24px;
}

.assistance-partner-group + .assistance-partner-group {
    margin-top: 30px;
}

.assistance-partner-group > h3 {
    margin: 0 0 15px;
    color: var(--public-blue-dark);
    font-size: 1.14rem;
}

.assistance-partner-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.assistance-partner-card {
    min-width: 0;
    min-height: 150px;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 6px solid var(--public-purple);
    box-shadow: 0 10px 28px rgba(0, 72, 113, .08);
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: stretch;
    gap: 17px;
}

.assistance-partner-card__logo {
    height: 78px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.assistance-partner-card__logo img {
    display: block;
    max-width: 100%;
    max-height: 72px;
    object-fit: contain;
}

.assistance-partner-card__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.assistance-partner-card h4 {
    margin: 4px 0 12px;
    color: var(--public-blue-dark);
    font-size: .96rem;
    line-height: 1.35;
}

.assistance-partner-card h4 span { font-weight: 500; }

.assistance-partner-card a {
    margin-top: auto;
    padding-top: 12px;
    color: var(--public-purple);
    border-top: 1px solid var(--public-border);
    font-size: .88rem;
    font-weight: 800;
    overflow-wrap: anywhere;
    text-underline-offset: 3px;
}

.assistance-result-summary {
    padding: 22px 24px;
    background: #fff;
    border-left: 6px solid var(--public-purple);
    box-shadow: 0 8px 24px rgba(0, 72, 113, .07);
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr);
    align-items: center;
    gap: 24px;
}

.assistance-result-summary h2 { margin: 0; color: var(--public-blue-dark); font-size: 1.45rem; }
.assistance-result-summary__status { margin: 0; padding: 14px 16px; line-height: 1.55; }
.assistance-result-summary__status.is-confirmed { background: #f2f7e9; border-left: 4px solid #4f7c14; }
.assistance-result-summary__status.is-warning { background: #fff4e8; border-left: 4px solid #b55c00; }

.assistance-orientation-summary {
    padding: 20px 24px;
    background: #fff;
    border-left: 6px solid var(--public-purple);
    box-shadow: 0 8px 24px rgba(0, 72, 113, .07);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.assistance-orientation-summary__item {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.assistance-orientation-summary__item + .assistance-orientation-summary__item {
    padding-left: 20px;
    border-left: 1px solid var(--public-border);
}

.assistance-orientation-summary__item span {
    color: #68777e;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.assistance-orientation-summary__item strong {
    color: var(--public-blue-dark);
    font-size: 1.08rem;
    line-height: 1.35;
}

.assistance-situation {
    padding: clamp(24px, 4vw, 34px);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 7px solid var(--public-blue);
    box-shadow: 0 10px 28px rgba(0, 72, 113, .07);
}

.assistance-situation__groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.assistance-situation-group {
    min-width: 0;
    padding: 22px;
    background: #fafbfb;
    border: 1px solid var(--public-border);
}

.assistance-situation-group:only-child {
    grid-column: 1 / -1;
}

.assistance-situation-group h3 {
    margin: 0 0 16px;
    color: var(--public-blue-dark);
    font-size: 1.12rem;
    line-height: 1.35;
}

.assistance-status-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.assistance-status-list li {
    padding: 12px 14px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
}

.assistance-status-list li > span {
    width: 26px;
    height: 26px;
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    font-weight: 900;
}

.assistance-status-list li.is-positive {
    background: #f2f7e9;
    border-left: 4px solid #4f7c14;
}

.assistance-status-list li.is-positive > span { background: #4f7c14; }

.assistance-status-list li.is-warning {
    background: #fff4e8;
    border-left: 4px solid #b55c00;
}

.assistance-status-list li.is-warning > span { background: #b55c00; }

.assistance-status-list p {
    margin: 1px 0 0;
    color: #34464f;
    line-height: 1.5;
}

.assistance-situation-notices {
    margin-top: 14px;
    display: grid;
    gap: 10px;
}

.assistance-situation-notice {
    padding: 14px 16px;
    background: #fff;
    border-left: 4px solid var(--public-blue);
}

.assistance-situation-notice--warning { border-left-color: #b55c00; }

.assistance-situation-notice strong {
    color: var(--public-blue-dark);
    line-height: 1.35;
}

.assistance-situation-notice p {
    margin: 5px 0 0;
    color: #526068;
    line-height: 1.5;
}

.assistance-primary-orientation {
    padding: clamp(24px, 4vw, 34px);
    background: #f8f5f7;
    border-top: 8px solid var(--public-purple);
}

.assistance-primary-orientation .assistance-action-card {
    margin: 0;
    padding: clamp(22px, 4vw, 30px);
    background: #fff;
    border-color: #ded4da;
    box-shadow: 0 10px 28px rgba(56, 19, 43, .08);
}

.assistance-primary-orientation .assistance-action-card h4 {
    font-size: clamp(1.15rem, 2.3vw, 1.4rem);
}

.assistance-contact-resources {
    padding: clamp(24px, 4vw, 34px);
    background: #fff;
    border: 1px solid var(--public-border);
}

.assistance-contact-directory {
    padding: 20px;
    background: #f8f7f8;
    border-left: 5px solid var(--public-purple);
}

.assistance-contact-directory + .assistance-contact-directory {
    margin-top: 16px;
}

.assistance-contact-directory summary,
.assistance-contact-directory h3 {
    color: var(--public-blue-dark);
    font-size: .98rem;
    font-weight: 800;
    line-height: 1.4;
}

.assistance-contact-directory summary {
    cursor: pointer;
}

.assistance-contact-directory summary:focus-visible {
    outline: 4px solid var(--public-green);
    outline-offset: 4px;
}

.assistance-contact-directory h3 { margin: 0 0 14px; }
.assistance-contact-directory > p {
    margin: 12px 0;
    color: #526068;
    font-size: .9rem;
}

.assistance-contact-directory ul {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.assistance-contact-directory li {
    min-width: 0;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--public-border);
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: .9rem;
    line-height: 1.4;
}

.assistance-contact-directory a {
    color: var(--public-purple);
    font-size: .88rem;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.assistance-result-navigation {
    padding-top: 2px;
    border-top: 1px solid var(--public-border);
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
}

.assistance-result-navigation a {
    color: var(--public-purple);
    font-size: .9rem;
    font-weight: 750;
    text-underline-offset: 3px;
}

.assistance-result-sections {
    display: grid;
    gap: 24px;
}

.assistance-result-section {
    min-width: 0;
    padding: clamp(24px, 4vw, 34px);
    background: #fff;
    border: 1px solid var(--public-border);
    border-top: 7px solid var(--public-blue);
    box-shadow: 0 10px 28px rgba(0, 72, 113, .07);
}

.assistance-result-section > h3 {
    margin: 0 0 20px;
    color: var(--public-blue-dark);
    font-size: 1.35rem;
    line-height: 1.3;
}

.assistance-result-messages {
    display: grid;
    gap: 10px;
}

.assistance-action-grid {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.assistance-action-card {
    min-width: 0;
    padding: 21px;
    background: #faf9fa;
    border: 1px solid var(--public-border);
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: start;
    gap: 15px;
}

.assistance-action-card--warning { border-left: 5px solid #b55c00; }

.assistance-action-card__icon {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
}

.assistance-action-card__icon svg { width: 24px; height: 24px; }

.assistance-action-card__content {
    min-width: 0;
}

.assistance-action-card h4 {
    margin: 0 0 8px;
    color: var(--public-blue-dark);
    font-size: 1.06rem;
    line-height: 1.35;
}

.assistance-action-card p {
    margin: 0 0 15px;
    color: #526068;
    line-height: 1.55;
}

.assistance-action-card .public-button {
    padding: 10px 15px;
    font-size: .88rem;
    text-align: center;
}

.assistance-contact-list {
    margin: 15px 0;
    padding: 0;
    list-style: none;
}

.assistance-contact-list li {
    padding: 10px 0;
    border-top: 1px solid var(--public-border);
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: .9rem;
}

.assistance-contact-list a {
    font-size: .88rem;
    overflow-wrap: anywhere;
}
.assistance-action-card__note { color: #6a3a00 !important; }
.assistance-final-action .assistance-action-grid,
.assistance-final-action .assistance-action-card { margin-top: 0; }

@media (max-width: 820px) {
    .assistance-choice-grid,
    .assistance-partner-grid,
    .assistance-action-grid { grid-template-columns: 1fr; }
    .assistance-result-summary { grid-template-columns: 1fr; gap: 14px; }
    .assistance-progress__text span { font-size: .86rem; }
    .assistance-situation__groups,
    .assistance-contact-directory ul { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .assistance-page { gap: 28px; }
    .assistance-choice { min-height: 0; padding: 23px 20px; }
    .assistance-choice__icon { flex-basis: 44px; width: 44px; height: 44px; }
    .assistance-choice__icon svg { width: 24px; height: 24px; }
    .assistance-diagnostic { padding: 25px 21px; }
    .assistance-profile-options,
    .assistance-form__grid { grid-template-columns: 1fr; }
    .assistance-form__date { grid-column: auto; max-width: none; }
    .assistance-form__footer { align-items: stretch; flex-direction: column; }
    .assistance-form__footer .public-button { width: 100%; }
    .assistance-partner-card { grid-template-columns: 78px minmax(0, 1fr); padding: 16px; }
    .assistance-partner-card__logo { height: 64px; }
    .assistance-action-card { grid-template-columns: 1fr; }
    .assistance-progress { padding: 16px; }
    .assistance-progress ol { grid-template-columns: 1fr; gap: 12px; }
    .assistance-progress li:not(:last-child)::after {
        top: 36px;
        bottom: -14px;
        left: 17px;
        right: auto;
        width: 2px;
        height: auto;
    }
    .assistance-progress__number {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
    }
    .assistance-progress__text { padding-right: 0; }
    .assistance-orientation-summary { grid-template-columns: 1fr; gap: 15px; }
    .assistance-orientation-summary__item + .assistance-orientation-summary__item {
        padding-top: 15px;
        padding-left: 0;
        border-top: 1px solid var(--public-border);
        border-left: 0;
    }
    .assistance-result-navigation { flex-direction: column; }
    .assistance-situation,
    .assistance-contact-resources { padding: 22px 18px; }
    .assistance-situation-group { padding: 18px; }
}
