/* TeamSpirit registration (page 346): sidebar layout + compact CF7 form.
   Loaded only on the registration page after the existing theme stylesheet. */
.page-id-346 #content > .ts-registration-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(26rem, 31rem);
    align-items: start;
    column-gap: 3.2rem;
    width: calc(100% - 3rem);
    max-width: 117rem;
    margin: 3.6rem auto 5rem;
}
.page-id-346 .ts-registration-main,
.page-id-346 .ts-registration-side { min-width: 0; }
.page-id-346 .ts-registration-sticky { position: sticky; top: 12rem; }
body.admin-bar.page-id-346 .ts-registration-sticky { top: 15.2rem; }
.page-id-346 .ts-registration-help {
    margin: 0 0 1.1rem;
    color: #536783;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .015em;
}
/* Narrow, purpose-built version of the existing organiser card. */
.page-id-346 .ts-registration-side .ts-person-card {
    display: block;
    position: relative;
    overflow: hidden;
    width: 100%;
    margin: 0;
    padding: 1.6rem;
    background: #f1f5fa;
    border: 1px solid #dce5f0;
    border-radius: var(--ts-corner, 4px 28px 4px 28px);
    box-shadow: none;
}
.page-id-346 .ts-registration-side .ts-person-photo {
    height: 17rem;
    margin-bottom: 1.7rem;
    border-radius: 3px 20px 3px 20px;
}
.page-id-346 .ts-registration-side .ts-person-photo > img { object-position: center 22%; }
.page-id-346 .ts-registration-side .ts-person-info { position: relative; z-index: 1; }
.page-id-346 .ts-registration-side .ts-person-role { margin-bottom: .6rem; }
.page-id-346 .ts-registration-side .ts-person-info h2 {
    font-size: 2.45rem;
    letter-spacing: -.03em;
    line-height: 1.13;
    margin: 0 0 .65rem;
    overflow-wrap: anywhere;
}
.page-id-346 .ts-registration-side .ts-person-links {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 1.1rem;
    margin: 1.6rem 0 1.1rem;
}
.page-id-346 .ts-registration-side .ts-person-links a {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: 1.4rem;
    line-height: 1.4;
    padding: .2rem 0;
}
.page-id-346 .ts-registration-side .ts-person-links a svg { width: 1.8rem; height: 1.8rem; }
.page-id-346 .ts-registration-side .ts-person-profile { margin: .5rem 0 0; }
.page-id-346 .ts-registration-side .ts-person-profile svg { width: 2.1rem; height: 2.1rem; }
/* Compact form. Keep all CF7 controls and messages intact. */
.page-id-346 .ts-registration-main .wpcf7 {
    width: 100%;
    margin: 0;
    padding: 3rem !important;
    border-radius: var(--ts-corner, 4px 28px 4px 28px);
    box-shadow: 7px 7px 0 #f1f4fa;
}
.page-id-346 .ts-registration-main .wpcf7 h2,
.page-id-346 .ts-registration-main .wpcf7 h3 {
    margin: 0 0 1.6rem;
    padding: 0;
    border: 0;
    font-size: 1.65rem;
    line-height: 1.35;
    font-weight: 800;
    letter-spacing: -.01em;
    text-transform: none;
    color: #142038;
}
.page-id-346 .ts-registration-main .wpcf7 .row { margin-left: -.8rem; margin-right: -.8rem; }
.page-id-346 .ts-registration-main .wpcf7 .row + .row { margin-top: 1.4rem; }
.page-id-346 .ts-registration-main .wpcf7 .row > [class*="col-"] { padding-left: .8rem; padding-right: .8rem; min-width: 0; }
.page-id-346 .ts-registration-main .wpcf7 h2:not(:first-child),
.page-id-346 .ts-registration-main .wpcf7 h3:not(:first-child) { margin-top: 2.5rem; }
.page-id-346 .ts-registration-main .wpcf7 .form-group {
    font-size: 1.35rem;
    line-height: 1.4;
    font-weight: 700;
}
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form-control-wrap { margin-top: .55rem; }
.page-id-346 .ts-registration-main .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.page-id-346 .ts-registration-main .wpcf7 select,
.page-id-346 .ts-registration-main .wpcf7 textarea {
    min-height: 4.8rem;
    font-size: 1.55rem;
    line-height: 2rem;
    padding: 1.2rem 1.3rem;
}
.page-id-346 .ts-registration-main .wpcf7 select { padding-right: 4rem; background-position: right 1.4rem center; }
.page-id-346 .ts-registration-main .wpcf7 textarea { min-height: 9rem; resize: vertical; }
/* Contact person across both columns, email and phone side-by-side. */
.page-id-346 .ts-registration-main .wpcf7 .ts-contact-fields.row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.6rem;
    row-gap: 1.4rem;
    margin-left: 0;
    margin-right: 0;
}
.page-id-346 .ts-registration-main .wpcf7 .ts-contact-fields.row > [class*="col-"] {
    width: auto;
    max-width: none;
    flex: none;
    padding: 0;
}
.page-id-346 .ts-registration-main .wpcf7 .ts-contact-fields.row > :first-child { grid-column: 1 / -1; }
/* The optional fields collapse only after JS has successfully prepared them. */
.page-id-346 .ts-registration-main .ts-registration-optional {
    margin: 2rem 0 .8rem;
    padding: 0;
    border: 1px solid #dce5f0;
    background: #f7f9fd;
    border-radius: 3px 16px 3px 16px;
}
.page-id-346 .ts-registration-main .ts-registration-optional summary {
    display: list-item;
    padding: 1.35rem 1.6rem;
    cursor: pointer;
    color: #00299f;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.45;
}
.page-id-346 .ts-registration-main .ts-registration-optional summary:hover { color: #0072cd; }
.page-id-346 .ts-registration-main .ts-registration-optional summary:focus-visible { outline: 2px solid #0072cd; outline-offset: 3px; }
.page-id-346 .ts-registration-main .ts-registration-optional[open] { padding-bottom: 1.5rem; }
.page-id-346 .ts-registration-main .ts-registration-optional > .row {
    margin: 0 1.5rem 1.4rem;
}
.page-id-346 .ts-registration-main .ts-registration-optional > .row + .row { margin-top: 0; }
.page-id-346 .ts-registration-main .wpcf7 .text-center:has(.wpcf7-submit) { margin: 2.2rem 0 0; }
.page-id-346 .ts-registration-main .wpcf7-submit { min-height: 5rem; padding: 1.25rem 3.2rem; }
.page-id-346 .ts-registration-main .wpcf7-not-valid-tip { font-size: 1.25rem; }
.page-id-346 .ts-registration-main .wpcf7-response-output { overflow-wrap: anywhere; }
/* CF7 status notifications (1.3.9).
   The form controls, submission behaviour and response text remain CF7-owned.
   Keep all notification variants aligned with the form's content edges. */
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output {
    --ts-notice-bg: #eef5ff;
    --ts-notice-accent: #2471c8;
    --ts-notice-ink: #1c3858;
    position: relative;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 1.9rem !important;
    padding: 1.5rem 1.8rem 1.5rem 5.7rem !important;
    border: 0 !important;
    border-left: 4px solid var(--ts-notice-accent) !important;
    border-radius: 3px 15px 3px 15px;
    background: var(--ts-notice-bg) !important;
    color: var(--ts-notice-ink) !important;
    box-shadow: none;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.5;
    text-align: left;
    overflow-wrap: anywhere;
}
/* A compact circular glyph adds a recognizable status indicator without
   relying on icon fonts, external assets, or JavaScript. */
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output::before {
    content: "i";
    position: absolute;
    left: 1.55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.7rem;
    height: 2.7rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--ts-notice-accent);
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1;
}
/* Validation / blocked submission: warning rather than a hard failure. */
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form:is(.invalid, .unaccepted, .spam) .wpcf7-response-output,
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output:is(.wpcf7-validation-errors, .wpcf7-spam-blocked) {
    --ts-notice-bg: #fff6e9;
    --ts-notice-accent: #bf7b21;
    --ts-notice-ink: #69451c;
}
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form:is(.invalid, .unaccepted, .spam) .wpcf7-response-output::before,
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output:is(.wpcf7-validation-errors, .wpcf7-spam-blocked)::before {
    content: "!";
}
/* Delivery / server failure: error. */
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form:is(.failed, .aborted, .payment-required) .wpcf7-response-output,
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng {
    --ts-notice-bg: #fff0f1;
    --ts-notice-accent: #c94758;
    --ts-notice-ink: #792d3b;
}
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form:is(.failed, .aborted, .payment-required) .wpcf7-response-output::before,
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng::before {
    content: "×";
    font-size: 2rem;
}
/* Mail sent successfully: success. */
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form.sent .wpcf7-response-output,
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok {
    --ts-notice-bg: #ebf8f2;
    --ts-notice-accent: #16885e;
    --ts-notice-ink: #17583f;
}
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-form.sent .wpcf7-response-output::before,
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok::before {
    content: "✓";
    font-size: 1.7rem;
}
/* Inline field validation: understated, consistent with the global message. */
.page-id-346 .ts-registration-main .wpcf7 .wpcf7-not-valid-tip {
    display: block;
    margin-top: .55rem;
    color: #b63c4d;
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.35;
}
.page-id-346 .ts-registration-main .wpcf7 :is(input, select, textarea).wpcf7-not-valid {
    border-color: #d58a96;
    background-color: #fffafb;
}
@media (max-width: 480px) {
    .page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output {
        padding: 1.25rem 1.25rem 1.25rem 4.9rem !important;
        font-size: 1.35rem;
    }
    .page-id-346 .ts-registration-main .wpcf7 .wpcf7-response-output::before {
        left: 1.25rem;
        width: 2.45rem;
        height: 2.45rem;
    }
}

@media (max-width: 991px) {
    .page-id-346 #content > .ts-registration-layout {
        grid-template-columns: minmax(0, 1fr);
        max-width: 69rem;
        gap: 3rem;
        margin-top: 2.6rem;
    }
    .page-id-346 .ts-registration-sticky { position: static; }
    .page-id-346 .ts-registration-side .ts-person-card {
        display: grid;
        grid-template-columns: 12rem minmax(0, 1fr);
        gap: 1.6rem;
        padding: 1.5rem;
    }
    .page-id-346 .ts-registration-side .ts-person-photo { height: 15rem; margin-bottom: 0; }
    .page-id-346 .ts-registration-side .ts-person-links { flex-direction: row; gap: .8rem 1.6rem; }
}
@media (max-width: 767px) {
    .page-id-346 #content > .ts-registration-layout {
        width: calc(100% - 3rem);
        max-width: 51rem;
        margin: 2.4rem auto 3.8rem;
    }
    .page-id-346 .ts-registration-main .wpcf7 { padding: 2rem !important; box-shadow: 5px 5px 0 #f1f4fa; }
    .page-id-346 .ts-registration-main .wpcf7 .row > [class*="col-"] + [class*="col-"] { margin-top: 1.4rem; }
    .page-id-346 .ts-registration-main .wpcf7 .ts-contact-fields.row { grid-template-columns: minmax(0, 1fr); }
    .page-id-346 .ts-registration-main .wpcf7 .ts-contact-fields.row > :first-child { grid-column: 1; }
    .page-id-346 .ts-registration-main .wpcf7 .ts-contact-fields.row > [class*="col-"] + [class*="col-"] { margin-top: 0; }
    .page-id-346 .ts-registration-side .ts-person-card { grid-template-columns: 10rem minmax(0, 1fr); }
    .page-id-346 .ts-registration-side .ts-person-photo { height: 13rem; }
    .page-id-346 .ts-registration-side .ts-person-links { flex-direction: column; }
}
@media (max-width: 400px) {
    .page-id-346 .ts-registration-side .ts-person-card { grid-template-columns: 8.5rem minmax(0, 1fr); gap: 1rem; }
    .page-id-346 .ts-registration-side .ts-person-photo { height: 11rem; }
    .page-id-346 .ts-registration-side .ts-person-info h2 { font-size: 2rem; }
    .page-id-346 .ts-registration-side .ts-person-links a { font-size: 1.25rem; }
}
