.kfa-join{--ink:#16251d;--forest:#173b2b;--gold:#c99b57;--paper:#fbf8f1;max-width:1040px;margin:2rem auto;color:var(--ink)}
.kfa-join [hidden]{display:none!important}
.kfa-seq-path{margin:1rem 0;padding:1.1rem;border:1px solid #c9c3b6;border-radius:12px;background:#fff}.kfa-seq-path .kfa-chain-button{margin:.4rem .4rem .4rem 0}.kfa-seq-path fieldset{margin:1rem 0}.kfa-sequential-selection{display:block}
.kfa-join label:has(> input[required]:not(:disabled))::before,.kfa-join label:has(> select[required]:not(:disabled))::before,.kfa-join label:has(> textarea[required]:not(:disabled))::before,.kfa-application label:has(> input[name="application_type"])::before{content:"* ";color:#8f2d38;font-weight:800}
.kfa-join label>small{display:block;font-size:.82rem;font-weight:400;line-height:1.5;margin-top:.35rem;color:#5b655f}
.kfa-parent-autofill-warning{padding:.8rem;border:1px solid #c99b57;border-radius:8px;background:#fff4de}
.kfa-join *{box-sizing:border-box}.kfa-join-header{padding:clamp(1.5rem,4vw,3.2rem);border-radius:26px;background:linear-gradient(135deg,#102a20,#365236);color:#fff;margin-bottom:1.5rem}.kfa-join-header h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.05;margin:.25rem 0 .75rem}.kfa-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.18em;color:#f0d2a2;font-weight:700;font-size:.8rem}.kfa-join-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:1rem}.kfa-join-card,.kfa-application{background:var(--paper);border:1px solid #ded8ca;border-radius:22px;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 14px 35px rgba(18,42,31,.08)}
.kfa-join label{display:block;font-weight:650;margin:.8rem 0}.kfa-join input,.kfa-join select,.kfa-join textarea{display:block;width:100%;margin-top:.35rem;padding:.78rem .85rem;border:1px solid #c9c3b6;border-radius:10px;background:#fff;color:#17221c;font:inherit}.kfa-join input[type=checkbox],.kfa-join input[type=radio]{display:inline-block;width:auto;margin:0 .5rem 0 0}.kfa-join button,.kfa-button{display:inline-block;border:0;border-radius:999px;padding:.78rem 1.25rem;background:var(--forest);color:#fff;font-weight:750;text-decoration:none;cursor:pointer}.kfa-join button:hover,.kfa-button:hover{background:#24543d;color:#fff}.kfa-small{font-size:.88rem;color:#5b655f}.kfa-honeypot{position:absolute!important;left:-10000px!important}.kfa-join-notice{padding:1rem 1.2rem;border-radius:12px;background:#e7f4e9;border:1px solid #a9cfb0;margin-bottom:1rem}
.kfa-lineage-error{padding:.8rem 1rem;border:1px solid #b74a55;border-radius:10px;background:#fff0f1;color:#7d2029;font-weight:700}
.kfa-progress{height:7px;background:#e1ddd2;border-radius:999px;overflow:hidden;margin-bottom:1.5rem}.kfa-progress span{display:block;height:100%;background:var(--gold);transition:width .2s ease}.kfa-step{display:none;border:0;padding:0;margin:0}.kfa-step.is-active{display:block}.kfa-step legend{font-size:1.5rem;font-weight:780;margin-bottom:1rem}.kfa-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.kfa-step-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.5rem}.kfa-prev{background:#ded8ca!important;color:#24342c!important}.kfa-submit{background:#8f2d38!important}.kfa-gen2-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;max-height:380px;overflow:auto;padding:.5rem;border:1px solid #ded8ca;border-radius:12px;background:#fff}.kfa-gen2-option{display:flex!important;align-items:flex-start;padding:.65rem;border-radius:8px;margin:0!important}.kfa-gen2-option:hover{background:#f1ede4}.kfa-gen2-option small{display:block;color:#6a746e}.kfa-claim-fields label{padding:1rem;border-left:4px solid var(--gold);background:#fff;border-radius:8px}.kfa-policy{padding:1rem;background:#fff;border:1px solid #ded8ca;border-radius:12px}.kfa-spouse-fields{display:none;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;padding:1rem;border:1px solid #ded8ca;border-radius:12px;background:#fff}.kfa-application.is-spouse .kfa-spouse-fields{display:grid}.kfa-spouse-route,.kfa-wide{grid-column:1/-1}.kfa-spouse-existing,.kfa-spouse-unregistered,.kfa-existing-member-note{display:none}.kfa-application.is-existing-spouse .kfa-spouse-existing{display:block}.kfa-application.is-unregistered-spouse .kfa-spouse-unregistered{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.kfa-application.is-existing-spouse .kfa-existing-member-note{display:block}.kfa-application.is-existing-spouse .kfa-lineage-selection,.kfa-application.is-existing-spouse .kfa-lineage-explanation{display:none}.kfa-application.is-spouse .kfa-descendant-family{display:none}.kfa-family-details{margin-top:1rem;padding:1rem;border:1px solid #ded8ca;border-radius:12px;background:#fff}.kfa-family-details h3{grid-column:1/-1;margin-top:0}
@media(max-width:720px){.kfa-join-grid,.kfa-fields,.kfa-gen2-list,.kfa-spouse-fields{grid-template-columns:1fr}.kfa-join{margin:1rem}.kfa-join-header{border-radius:18px}}
@media(prefers-reduced-motion:reduce){.kfa-progress span{transition:none}}
.kfa-application-errors,.kfa-chain-error{padding:1rem;border:1px solid #b74a55;border-radius:10px;background:#fff0f1;color:#7d2029;font-weight:700;margin:1rem 0}
.kfa-chain-builder{margin:1.5rem 0 2rem;padding:1.25rem;border:1px solid #c9c3b6;border-radius:16px;background:#f6f2e8}
.kfa-chain-builder h3{margin-top:0}.kfa-chain-builder label{padding:0!important;border:0!important;background:transparent!important}
.kfa-chain-card{display:flex;flex-direction:column;gap:.65rem;min-width:0;margin:0;padding:1.1rem;border:1px solid #cbc6b9;border-radius:12px;background:#fff}
.kfa-chain-card legend{font-size:1rem;font-weight:700}.kfa-chain-root{border-left:5px solid #c99b57}.kfa-chain-card small{font-size:.85rem;color:#5b655f}.kfa-chain-card strong{font-size:1.05rem}
.kfa-chain-card input,.kfa-chain-card select{max-width:100%}.kfa-chain-arrow{text-align:center;font-size:1.8rem;line-height:1.4;color:#365236}
.kfa-chain-choice .kfa-chain-button{text-align:left;white-space:normal;border-radius:10px}.kfa-chain-step .kfa-chain-button{align-self:flex-start;background:#e9e4d9;color:#24342c}
.kfa-chain-complete{border:2px solid #2d714b;background:#edf7ef}
.kfa-chain-builder .kfa-chain-button{max-width:100%;white-space:normal}.kfa-chain-card strong{overflow-wrap:anywhere}
@media(max-width:720px){.kfa-chain-builder{padding:.8rem}.kfa-chain-card{padding:.9rem}}
