/* FT contact page only. Shared type sizes and document navigation are retained. */
.ft-contact-layout {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 2rem;
    color: #e1eaf3;
    font-size: 1rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
}
.ft-contact-panel {
    flex: 2 1 32rem;
    min-inline-size: 0;
    padding: 1.5rem;
    border: 1px solid #34485f;
    border-radius: 1.25rem;
    background: #111e30;
    box-shadow: 0 16px 48px #050c171f;
}
.ft-contact-aside {
    flex: 1 1 18rem;
    min-inline-size: 0;
    display: grid;
    gap: 1.5rem;
}
.ft-contact-layout h2,
.ft-contact-layout h3 {
    margin: 0 0 .75rem;
    color: #f7fbff;
    line-height: 1.6;
}
.ft-contact-layout h2 { font-size: 1.5rem; }
.ft-contact-layout h3 { font-size: 1.125rem; }
.ft-contact-layout p { margin: .75rem 0; }
.ft-contact-layout a {
    color: #85ede2;
}
.ft-contact-layout .ft-document-icon { flex: none; }
.ft-contact-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.ft-contact-heading > .ft-document-icon {
    inline-size: 2.5rem;
    block-size: 2.5rem;
    padding: .5rem;
    box-sizing: border-box;
    border: 1px solid #74f0e347;
    border-radius: .75rem;
    color: #85ede2;
    background: #173b43;
}
.ft-contact-heading h2,
.ft-contact-heading h3 { margin: 0; }
.ft-contact-panel__intro { color: #c7d4e1; }
.ft-contact-form {
    display: grid;
    gap: 1.5rem;
    margin-block-start: 1.75rem;
}
.ft-contact-form label {
    display: block;
    margin-block-end: .5rem;
    color: #f7fbff;
    font-weight: 700;
}
.ft-contact-form label span {
    margin-inline-start: .5rem;
    color: #b9cadc;
    font-weight: 400;
    font-size: 1rem;
}
.ft-contact-form input:not([type="hidden"]),
.ft-contact-form select,
.ft-contact-form textarea {
    box-sizing: border-box;
    inline-size: 100%;
    max-inline-size: 100%;
    min-inline-size: 0;
    min-block-size: 3.25rem;
    margin: 0;
    padding: .75rem 1rem;
    border: 1px solid #60758e;
    border-radius: .625rem;
    background: #0a1423;
    color: #f7fbff;
    font: inherit;
    box-shadow: none;
    color-scheme: dark;
}
.ft-contact-form textarea { min-block-size: 14rem; resize: vertical; }
.ft-contact-form input[type="file"] { padding: .5rem; }
.ft-contact-form input[type="file"]::file-selector-button {
    margin-inline-end: .75rem;
    padding: .5rem .75rem;
    border: 1px solid #60758e;
    border-radius: .375rem;
    background: #173b43;
    color: #85ede2;
    font: inherit;
    cursor: pointer;
}
.ft-contact-form input:focus-visible,
.ft-contact-form select:focus-visible,
.ft-contact-form textarea:focus-visible,
.ft-contact-layout a:focus-visible,
.ft-contact-submit:focus-visible {
    outline: 3px solid #85ede2;
    outline-offset: 3px;
}
.ft-contact-form :is(input, select, textarea)[aria-invalid="true"] { border-color: #ffb6b6; }
.ft-contact-form :is(input:not([type="hidden"]), select, textarea):focus:not([aria-invalid="true"]) {
    border-color: #85ede2;
    background: #0e1e2d;
}
.ft-contact-panel:focus-within { border-color: #85ede280; }
.ft-contact-form p { margin: .5rem 0 0; color: #b9cadc; }
.ft-contact-form .ft-contact-privacy { margin: 0; }
.ft-contact-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    inline-size: 100%;
    min-block-size: 3.5rem;
    padding: .875rem 1.25rem;
    border: 1px solid transparent;
    border-radius: .75rem;
    background: #85ede2;
    color: #09202b;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
@media (hover: hover) and (pointer: fine) {
    .ft-contact-submit:hover { background: #acf8ef; }
}
.ft-contact-panel { transition: border-color .25s ease; }
.ft-contact-form :is(input:not([type="hidden"]), select, textarea) {
    transition: border-color .2s ease, background-color .2s ease;
}
.ft-contact-submit {
    transition: background-color .2s ease, scale .16s ease;
}
.ft-contact-submit:active { scale: .985; }
.ft-contact-trap {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.ft-contact-error-summary {
    margin-block-start: 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid #ffb6b680;
    border-radius: .75rem;
    background: #402736;
    color: #ffe2e2;
}
.ft-contact-error-summary p:first-child { font-weight: 700; }
.ft-contact-error-summary p { margin: .25rem 0; }
.ft-contact-form .ft-contact-error { color: #ffb6b6; }
.ft-contact-result {
    margin-block-start: 1.5rem;
    padding: 1.5rem;
    border: 1px solid #85ede273;
    border-radius: 1rem;
    background: #123339;
}
.ft-contact-result .ft-contact-result__title {
    margin-block-start: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: #c8fff6;
}
.ft-contact-card {
    padding: 1.5rem;
    border: 1px solid #34485f;
    border-radius: 1rem;
    background: #ffffff04;
}
.ft-contact-card__kicker {
    color: #aba4ff;
    letter-spacing: .1em;
    font-size: 1rem;
    font-weight: 700;
}
.ft-contact-card .ft-contact-card__kicker { margin-block-start: 0; }
.ft-contact-steps {
    display: grid;
    gap: 1.25rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
    counter-reset: ft-contact-step;
}
.ft-contact-steps li {
    counter-increment: ft-contact-step;
    display: grid;
    grid-template-columns: 2rem minmax(0,1fr);
    column-gap: .75rem;
}
.ft-contact-steps li::before {
    content: counter(ft-contact-step, decimal-leading-zero);
    color: #85ede2;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
.ft-contact-steps strong { color: #f7fbff; }
.ft-contact-steps p { margin: .25rem 0 0; color: #b9cadc; }
.ft-contact-card__links { display: grid; gap: .75rem; }
.ft-contact-card__links a { padding-block: .5rem; }
#ft-contact-form { scroll-margin-block-start: 1.5rem; }
