/* ─────────────────────────────────────────────────────────────────────
   Form W-9 styles (ported from LNS becomePartner.css).
   Used by step 4 of the Sedona Equity Group broker application.
   ───────────────────────────────────────────────────────────────────── */

.TaxPayerBox {
    margin-top: 40px;
    width: 100%;
    background: #fff;
    color: #000;
}
.TaxPayerBox * { color: #000; }
.TaxPayerBox .TaxPayerBoxCard {
    width: 100%;
    border: 1px solid #000;
    padding: 0 0 20px 0;
}
.TaxPayerBox .TaxPayerBoxCardHead { width: 100%; }
.TaxPayerBox .TaxPayerBoxCardHeadInner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    border-bottom: 2px solid #000;
}
.TaxPayerBox .TaxPayerBoxCardHeadInnerCol {
    width: 100%;
    flex-grow: 1;
    padding: 10px 5px 0 5px;
}
.TaxPayerBox .TaxPayerBoxCardHeadInnerCol:nth-child(1) {
    max-width: 15%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
}
.TaxPayerBox .TaxPayerBoxCardHeadInnerCol:nth-child(2) {
    border-left: 2px solid #000;
    border-right: 2px solid #000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    max-width: 70%;
}
.TaxPayerBox .TaxPayerBoxCardHeadInnerCol:nth-child(3) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    max-width: 15%;
}
.TaxPayerBox .TaxPayerBoxCardHead h4 {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 1px;
    line-height: 1.2em;
}
.TaxPayerBox .TaxPayerBoxCardHead h4 strong {
    font-size: 40px;
    font-weight: 700;
}
.TaxPayerBox .TaxPayerBoxCardHead h3 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 0;
    text-align: center;
    line-height: 1.1em;
}
.TaxPayerBox .TaxPayerBoxCardHead h5 {
    font-size: 15px;
    font-weight: 600;
    margin: 5px 0 10px;
    text-align: center;
}
.TaxPayerBox .TaxPayerBoxCardHead h5 a {
    color: #000;
    text-decoration: none;
    font-style: italic;
}
.TaxPayerBox .TaxPayerBoxCardHead h6 {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.1em;
    padding: 0 0 15px 10px;
    margin: 0;
}
.TaxPayerBox .TaxPayerBoxCardHead p {
    font-size: 14px;
    font-weight: 500;
    border-bottom: 1px solid #000;
    padding: 4px 6px;
    margin: 0;
}
.TaxPayerBox .TaxPayerBoxCardBody {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
    width: 100%;
    margin: 0 auto;
}

.TaxPayerBoxCardBodyFixedOuter {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    width: 100%;
}
.TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterCol:first-child {
    width: 5%;
    position: relative;
}
.TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterCol:last-child { flex: 1; }
.TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterColFixedDiv {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(270deg);
    width: 400px;
    text-align: center;
    height: 62px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding-bottom: 5px;
}
.TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterColFixedDiv h4 {
    font-size: 14px;
    font-weight: 600;
    margin: 0;
}
.TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterColFixedDiv p {
    font-size: 14px;
    font-weight: 500;
    margin: 0;
}

.TaxPayerBox .TaxPayerBoxCardContent {
    display: flex;
    flex-direction: column;
    width: 100%;
    border-left: 1px solid #000;
}
.TaxPayerBox .TaxPayerBoxCardContent .TaxPayerBoxCardContentInner {
    border-bottom: 1px solid #000;
}
.TaxPayerBox .TaxPayerBoxCardContent .TaxPayerBoxCardContentInner h4 {
    font-size: 14px;
    font-weight: 500;
    padding: 5px;
    margin: 0;
    width: 100%;
}
.TaxPayerBox .TaxPayerBoxCardContent .TaxPayerBoxCardContentInner h4 strong { margin-right: 5px; }
.TaxPayerBox .TaxPayerBoxCardContentInput {
    height: 30px;
    border: none;
    background: #f1f4ff;
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    color: #000;
    padding: 6px 10px;
    outline: none;
    box-sizing: border-box;
}

.TaxPayerBoxCardBodyInnerOuter {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
}
.TaxPayerBoxCardBodyInnerOuterCol:first-child { width: 77%; }
.TaxPayerBoxCardBodyInnerOuterCol:last-child { flex: 1; }

.TaxPayerBox .TaxPayerBoxCardBodyInner {
    padding: 0 0 5px;
    border: 1px solid #000;
    border-top: none;
    display: flex;
    flex-direction: column;
    width: 100%;
}
.TaxPayerBox .TaxPayerBoxCardBodyInner h4 {
    font-size: 13px;
    font-weight: 500;
    padding: 5px;
    margin: 0;
}
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadiosOuter {
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    margin-top: 5px;
    margin-left: 25px;
}
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadios { flex-grow: 1; }
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadios label {
    background: transparent;
    border-radius: 10px;
    padding: 0;
    font-size: 13px;
    font-weight: 500;
    color: #000;
    width: 100%;
    display: flex;
    align-items: flex-start;
    flex-direction: row-reverse;
    gap: 10px;
    cursor: pointer;
    margin: 0;
}
.TaxPayerBox .TaxPayerBoxCardContentRadioInput { display: none; }
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadios label span {
    height: 20px;
    width: 20px;
    border: 1px solid #898989;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: #f1f4ff;
    flex-shrink: 0;
}
.TaxPayerBox .TaxPayerBoxCardContentRadioInput:checked + label span:before { background-color: #000; }
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadios label span::before {
    width: 10px;
    height: 10px;
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background-color: transparent;
    border-radius: 50%;
}
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadiosInputGroup {
    width: 100%;
    display: flex;
    align-items: center;
    margin-top: 5px;
}
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadiosInputGroup .TaxPayerBoxCardBodyInnerRadios {
    flex-grow: unset;
    max-width: 18%;
}
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadiosOuter p {
    font-size: 13px;
    margin: 0 0 0 30px;
    line-height: 1.2em;
}
.TaxPayerBox .TaxPayerBoxCardBodyInnerRadiosInputGroup input[type='text'] {
    height: 25px;
    border: none;
    background: #f1f4ff;
    width: 83%;
    font-size: 16px;
    font-weight: 500;
    padding: 6px 10px;
    outline: none;
    border-bottom: 1px solid #000;
    margin-left: auto;
    margin-right: 10px;
    box-sizing: border-box;
}
.TaxPayerBox .TaxPayerBoxCardBodyInner.secondBox { padding-bottom: 8px; position: relative; }
.TaxPayerBox .TaxPayerBoxCardBodyInner.secondBox > span {
    position: absolute;
    right: 10px;
    bottom: 10px;
}
.TaxPayerBoxCardBodyInner.secondBox .TaxPayerBoxCardBodyInnerRadios { max-width: 100%; }
.TaxPayerBoxCardBodyInner.secondBox .TaxPayerBoxCardBodyInnerRadios label {
    flex-direction: row;
    align-items: flex-start;
    padding: 0 60px 0 5px;
}

.taxPayerBox4 {
    padding: 5px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    height: 100%;
    border-bottom: 1px solid #000;
}
.taxPayerBox4 h4 { font-size: 13px; font-weight: 500; margin: 0; }
.taxPayerBox4 .taxPayerBox4Inner:nth-child(1) .taxPayerBox4Input,
.taxPayerBox4 .taxPayerBox4Inner:nth-child(2) .taxPayerBox4Input {
    border: none;
    border-bottom: 1px solid #000;
    background: #f1f4ff;
    padding: 1px 10px;
    font-size: 16px;
    font-weight: 500;
    outline: none;
    box-sizing: border-box;
}
.taxPayerBox4 .taxPayerBox4Inner:nth-child(1) .taxPayerBox4Input { width: 28%; }
.taxPayerBox4 .taxPayerBox4Inner:nth-child(2) .taxPayerBox4Input { width: 77%; margin-left: 10px; }
.taxPayerBox4 p {
    font-style: italic;
    font-size: 12px;
    font-weight: 500;
    margin: 0;
    text-align: center;
    width: 100%;
}

.taxPayerCommonBoxesOuter {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
}
.taxPayerCommonBoxesOuterCol:first-child { width: 65%; }
.taxPayerCommonBoxesOuterCol:last-child { flex: 1; display: flex; }
.taxPayerCommonBoxes {
    padding: 5px 0 0;
    border-bottom: 1px solid #000;
    border-left: 1px solid #000;
    display: flex;
    flex-direction: column;
    width: 100%;
}
.taxPayerCommonBoxes h4 {
    margin: 0;
    padding: 0 5px;
    font-size: 13px;
    font-weight: 500;
}
.taxPayerCommonBoxes .taxPayerCommonBoxInput {
    background: #f1f4ff;
    padding: 4px 10px;
    font-size: 16px;
    font-weight: 500;
    color: #000;
    outline: none;
    width: 100%;
    border: none;
    flex: 1;
    box-sizing: border-box;
    resize: vertical;
}

.taxPayerIdentification {
    padding: 0 0 5px;
    display: flex;
    flex-direction: column;
    width: 100%;
}
.taxPayerIdentificationContentOuter {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
}
.taxPayerIdentificationContent {
    width: 70%;
    padding: 5px 15px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.taxPayerIdentificationInnerContent {
    padding: 5px 15px;
    display: flex;
    flex-direction: column;
}
.taxPayerIdentification h2 {
    font-size: 18px;
    font-weight: 700;
    color: #000;
    margin: 0;
    width: 100%;
    border-bottom: 1px solid #000;
    border-top: 1px solid #000;
    padding: 0;
    display: flex;
    gap: 5px;
}
.taxPayerIdentification h2 span {
    background-color: #000;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 0 15px;
    line-height: 1.4em;
}
.taxPayerIdentification h4 {
    font-size: 14px;
    font-weight: 500;
    margin: 0;
    width: 100%;
}
.taxPayerIdentificationOuter h4 {
    font-weight: 700;
    border: 1px solid #000;
    border-right: none;
    font-size: 13px;
    padding: 2px 5px;
}
.taxPayerIdentification p span {
    font-size: 14px;
    font-weight: 700;
    color: #000;
    margin: 0;
}
.taxPayerIdentification .taxPayerIdentificationOuter {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0;
}
.taxPayerIdentification .taxPayerIdentificationInner {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}
.taxPayerIdentification .taxPayerIdentificationInputGroup {
    display: flex;
    gap: 20px;
    padding: 0 10px 0 0;
}
.taxPayerIdentification .taxPayerIdentificationInputGroupInner {
    display: flex;
    align-items: stretch;
    gap: 0;
}
.taxPayerIdentification .taxPayerIdentificationInputGroupInner span {
    font-size: 20px;
    font-weight: 700;
    width: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.taxPayerIdentification input {
    border: 1px solid #000;
    border-right: none;
    background: #f1f4ff;
    padding: 1px 2px;
    font-size: 18px;
    font-weight: 500;
    color: #000;
    outline: none;
    width: 28px;
    height: 44px;
    text-align: center;
    box-sizing: border-box;
}
.taxPayerIdentification p {
    font-size: 14px;
    font-weight: 500;
    margin: 0;
    line-height: 1.2em;
}

.lastPageSignature {
    padding: 0;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    margin-top: 30px;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width: 100%;
}
.lastPageSignatureInner {
    width: 50%;
    display: flex;
    align-items: center;
}
.lastPageSignatureInner:first-child { align-items: stretch; }
.lastPageSignature .lastPageSignatureCol { max-width: 50%; padding: 5px 10px; }
.lastPageSignature .lastPageSignatureCol h4 {
    font-size: 13px;
    font-weight: 600;
    margin: 0;
}
.lastPageSignatureInner:first-child .lastPageSignatureCol:last-child {
    border-left: 1px solid #000;
    display: flex;
    align-items: center;
    padding-left: 10px;
    flex: 1;
}
.lastSignatureBox { max-width: 50%; margin-left: 10px; }

/* Generic Bootstrap-style validation feedback for W-9 form */
.bf-w9-wrap .invalid-feedback {
    display: none;
    color: #e25c5c;
    font-size: 12px;
    margin-top: 4px;
}
.bf-w9-wrap .is-invalid + .invalid-feedback,
.bf-w9-wrap .invalid-feedback.show {
    display: block;
}
.bf-w9-wrap input.is-invalid,
.bf-w9-wrap select.is-invalid,
.bf-w9-wrap textarea.is-invalid {
    border-color: #e25c5c !important;
    box-shadow: 0 0 0 2px rgba(226, 92, 92, 0.15);
}
.bf-w9-wrap input.is-valid,
.bf-w9-wrap select.is-valid,
.bf-w9-wrap textarea.is-valid {
    border-color: #4CAF50 !important;
    box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.18);
    transition: box-shadow .2s ease, border-color .2s ease;
}
/* SSN/EIN box-row coloring when the chosen TIN type is filled */
.taxPayerIdentification input.ssn.is-valid,
.taxPayerIdentification input.ein.is-valid {
    border-color: #4CAF50 !important;
    background: rgba(76, 175, 80, 0.06);
}
/* When the other TIN type is locked (mutually exclusive), dim it out */
.taxPayerIdentification input.is-locked {
    background: #e9e9e9 !important;
    color: #b0b0b0 !important;
    cursor: not-allowed;
    opacity: .55;
}
.bf-w9-wrap .form-group { width: 100%; }

/* Responsive */
@media (max-width: 900px) {
    .TaxPayerBox .TaxPayerBoxCardHead h3 { font-size: 18px; }
    .TaxPayerBox .TaxPayerBoxCardHead h5 { font-size: 13px; }
    .TaxPayerBox .TaxPayerBoxCardHead h6 { font-size: 13px; }
    .TaxPayerBox .TaxPayerBoxCardContentInput { height: 28px; font-size: 14px; }
    .TaxPayerBox .TaxPayerBoxCardBodyInnerRadios label { font-size: 12px; }
    .TaxPayerBox .TaxPayerBoxCardBodyInnerRadiosOuter p { font-size: 12px; }
    .taxPayerBox4 h4 { font-size: 12px; }
    .taxPayerBox4 p { font-size: 10px; }
    .taxPayerCommonBoxes h4 { font-size: 12px; }
    .taxPayerIdentification h2 { font-size: 14px; }
    .taxPayerIdentification h4 { font-size: 12px; }
    .taxPayerIdentification p { font-size: 12px; }
    .TaxPayerBoxCardBodyInnerOuter { flex-direction: column; }
    .TaxPayerBoxCardBodyInnerOuterCol { width: 100% !important; }
    .TaxPayerBoxCardBodyInnerOuterCol:last-child { border-left: 1px solid #000; }
}

@media (max-width: 768px) {
    .TaxPayerBox .TaxPayerBoxCardContentInput { height: 26px !important; font-size: 13px !important; }
    .TaxPayerBox .TaxPayerBoxCardBodyInnerRadios label span { height: 16px; width: 16px; }
    .TaxPayerBox .TaxPayerBoxCardBodyInnerRadios label { font-size: 12px !important; }
    .taxPayerBox4 .taxPayerBox4Inner .taxPayerBox4Input { font-size: 13px !important; height: 26px !important; }
    .taxPayerIdentificationContentOuter { flex-direction: column; }
    .taxPayerIdentificationContent { width: 100%; }
    .taxPayerIdentification .taxPayerIdentificationOuter { border-top: 1px solid #000; }
    .taxPayerCommonBoxesOuter { flex-direction: column; }
    .taxPayerCommonBoxesOuterCol { width: 100% !important; }
    .taxPayerIdentification .taxPayerIdentificationInputGroupInner { padding-left: 5px; }
    .TaxPayerBoxCardBodyFixedOuter { flex-direction: column; }
    .TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterCol { width: 100% !important; }
    .TaxPayerBoxCardBodyFixedOuter .TaxPayerBoxCardBodyFixedOuterCol .TaxPayerBoxCardBodyFixedOuterColFixedDiv {
        position: static !important;
        transform: none !important;
        width: auto !important;
        height: auto !important;
        padding: 0 !important;
    }
    .TaxPayerBox .TaxPayerBoxCardHeadInner { flex-direction: column; }
    .TaxPayerBox .TaxPayerBoxCardHeadInnerCol { max-width: 100% !important; align-items: center !important; }
    .TaxPayerBox .TaxPayerBoxCardHeadInnerCol:nth-child(2) {
        border-top: 1px solid #000;
        border-bottom: 1px solid #000;
        border-left: none;
        border-right: none;
    }
    .lastPageSignatureInner { flex-direction: column; width: 100%; }
    .lastPageSignature { flex-direction: column; }
    .lastPageSignature .lastPageSignatureCol { max-width: 100%; width: 100%; }
}

@media (max-width: 455px) {
    .taxPayerIdentification input { width: 22px !important; height: 36px !important; font-size: 14px; }
    .taxPayerIdentification h2 { font-size: 12px; }
    .TaxPayerBox .TaxPayerBoxCardHead h4 strong { font-size: 18px; }
}
