/* Kinship Beats Registration – scoped to .kbr */
.kbr{--g:#173E2B;--g2:#1F3A2B;--o:#E8712B;--o2:#cf5f1d;--cr:#F5EEE2;--ink:#1d2a22;--mut:#5d6b62;--line:#d5dbd3;--bad:#b42318;max-width:860px;margin:0 auto;padding:0 16px 70px;color:var(--ink);font-size:16px;line-height:1.55}
.kbr *{box-sizing:border-box}
.kbr [hidden]{display:none!important}
.kbr-card{background:#fff;border:1px solid #e6e9e3;border-radius:22px;box-shadow:0 18px 50px rgba(23,62,43,.10);padding:34px 40px 30px;margin-top:-70px;position:relative;z-index:2}

/* Stepper */
.kbr-stepper{list-style:none;margin:0 0 26px;padding:0;display:flex;justify-content:space-between;counter-reset:none}
.kbr-dot{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;margin:0;padding:0}
.kbr-dot:before{content:'';position:absolute;top:18px;right:50%;width:100%;height:3px;background:var(--line);z-index:0}
.kbr-dot:first-child:before{display:none}
.kbr-dot.is-done:before,.kbr-dot.is-current:before{background:var(--g2)}
.kbr .kbr-dot-btn{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;border:2px solid var(--line);background:#fff;color:var(--mut);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;padding:0;margin:0;cursor:default;line-height:1;box-shadow:none;transition:all .2s}
.kbr-dot-btn svg{width:18px;height:18px;display:none}
.kbr-dot.is-current .kbr-dot-btn{background:var(--o);border-color:var(--o);color:#fff;box-shadow:0 0 0 5px rgba(232,113,43,.18)}
.kbr-dot.is-done .kbr-dot-btn{background:var(--g2);border-color:var(--g2);color:#fff;cursor:pointer}
.kbr-dot.is-done .kbr-dot-btn:hover{background:var(--g)}
.kbr-dot.is-done .kbr-num{display:none}
.kbr-dot.is-done svg{display:block}
.kbr-dot-label{font-size:12px;line-height:1.3;color:var(--mut);margin-top:8px;max-width:110px}
.kbr-dot.is-current .kbr-dot-label{color:var(--g2);font-weight:700}

/* Step heading */
.kbr-count{margin:0 0 4px;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--o)}
.kbr .kbr-step h2,.kbr .kbr-done h2{font-size:clamp(24px,3vw,30px);line-height:1.2;color:var(--g2);margin:0 0 6px;outline:none}
.kbr-intro{color:var(--mut);margin:0 0 22px}

/* Fields */
.kbr-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.kbr-field{grid-column:1/-1;min-width:0}
.kbr-field.kbr-half{grid-column:auto}
.kbr .kbr-field>label,.kbr legend{display:block;font-weight:600;font-size:15px;color:var(--g2);margin:0 0 6px;padding:0}
.kbr-req{color:var(--o)}
.kbr-opt{font-weight:400;color:var(--mut);font-size:13px}
.kbr .kbr-form input[type=text],.kbr .kbr-form input[type=email],.kbr .kbr-form input[type=tel],.kbr .kbr-form input[type=date],.kbr .kbr-form select,.kbr .kbr-form textarea,.kbr .kbr-save input{width:100%;min-height:48px;padding:11px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fbfcfa;color:var(--ink);font-size:16px;font-family:inherit;line-height:1.4;margin:0;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.kbr .kbr-form textarea{min-height:96px;resize:vertical}
.kbr .kbr-form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%231F3A2B' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.kbr .kbr-form input:focus,.kbr .kbr-form select:focus,.kbr .kbr-form textarea:focus,.kbr .kbr-save input:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 3px rgba(31,58,43,.15);background:#fff}
.kbr .kbr-form input[type=file]{width:100%;padding:12px;border:1.5px dashed var(--line);border-radius:10px;background:#fbfcfa;font-size:15px}
.kbr-hint{font-size:13px;color:var(--mut);margin:6px 0 0}
.kbr-error{font-size:14px;color:var(--bad);margin:6px 0 0;font-weight:600}
.kbr-error:empty{display:none}
.kbr-field.is-invalid input,.kbr-field.is-invalid select,.kbr-field.is-invalid textarea{border-color:var(--bad)!important}
.kbr-field.is-invalid .kbr-radio-row,.kbr-field.is-invalid .kbr-check{border-color:var(--bad)}

/* Yes/No rows */
.kbr .kbr-radio-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 20px;border:1.5px solid #e6e9e3;border-radius:12px;padding:12px 16px;margin:0;background:#fbfcfa;min-width:0}
.kbr .kbr-radio-row legend{float:left;width:100%;margin:0;padding:0;font-size:15px}
.kbr-choices{display:flex;gap:10px}
.kbr .kbr-choice{display:flex;align-items:center;gap:7px;margin:0;padding:6px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font-size:15px;font-weight:600;color:var(--g2);user-select:none}
.kbr .kbr-choice input{width:18px;height:18px;margin:0;accent-color:var(--o)}
.kbr .kbr-choice:has(input:checked){border-color:var(--o);background:#fff4ec}
.kbr .kbr-choice:has(input:focus-visible){box-shadow:0 0 0 3px rgba(232,113,43,.3)}

/* Checkboxes */
.kbr .kbr-check{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1.5px solid #e6e9e3;border-radius:12px;background:#fbfcfa;cursor:pointer;margin:0;font-size:15px;color:var(--ink);font-weight:400}
.kbr .kbr-check input{width:22px;height:22px;flex:0 0 22px;margin:1px 0 0;accent-color:var(--g2)}
.kbr .kbr-check:has(input:checked){border-color:var(--g2);background:#eef2ea}
.kbr .kbr-check a{color:var(--o);font-weight:600}

/* Review */
.kbr-review{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.kbr-review details{border:1.5px solid #e6e9e3;border-radius:12px;background:#fbfcfa;overflow:hidden}
.kbr-review summary{list-style:none;cursor:pointer;padding:13px 16px;font-weight:700;color:var(--g2);display:flex;align-items:center;justify-content:space-between;gap:10px}
.kbr-review summary::-webkit-details-marker{display:none}
.kbr-review summary:after{content:'';width:9px;height:9px;border-right:2.5px solid var(--g2);border-bottom:2.5px solid var(--g2);transform:rotate(-45deg);transition:transform .2s;flex:0 0 auto}
.kbr-review details[open] summary:after{transform:rotate(45deg)}
.kbr-review dl{margin:0;padding:4px 16px 12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:8px 18px;border-top:1px solid #e6e9e3}
.kbr-review dt{font-size:14px;color:var(--mut);margin:0;padding-top:8px}
.kbr-review dd{margin:0;font-size:15px;padding-top:8px;overflow-wrap:anywhere;white-space:pre-line}
.kbr .kbr-edit{grid-column:1/-1;justify-self:start;margin:6px 0 2px;background:none;border:0;padding:0;color:var(--o);font-weight:700;cursor:pointer;font-size:14px;text-decoration:underline}
.kbr-note{font-size:14px;color:var(--mut);margin:18px 0 0}
.kbr-turnstile{margin:22px 0 0;min-height:65px}

/* Buttons */
.kbr-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid #eef0ec}
.kbr-nav [data-next],.kbr-nav [data-submit]{margin-left:auto}
.kbr .kbr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 26px;border-radius:10px;font-weight:700;font-size:16px;font-family:inherit;cursor:pointer;text-decoration:none;line-height:1.2;border:2px solid transparent;transition:background .15s,transform .1s}
.kbr .kbr-btn-primary{background:var(--o);color:#fff;border-color:var(--o)}
.kbr .kbr-btn-primary:hover{background:var(--o2);border-color:var(--o2);color:#fff}
.kbr .kbr-btn-ghost{background:#fff;color:var(--g2);border-color:var(--g2)}
.kbr .kbr-btn-ghost:hover{background:#eef2ea;color:var(--g2)}
.kbr .kbr-btn:active{transform:translateY(1px)}
.kbr .kbr-btn[disabled]{opacity:.6;cursor:wait}
.kbr .kbr-btn:focus-visible,.kbr .kbr-dot-btn:focus-visible,.kbr .kbr-link:focus-visible{outline:3px solid rgba(232,113,43,.5);outline-offset:2px}

/* Save for later */
.kbr-save{margin-top:18px;text-align:center}
.kbr .kbr-link{background:none;border:0;padding:4px;color:var(--g2);font-weight:700;text-decoration:underline;cursor:pointer;font-size:15px;font-family:inherit}
.kbr-save-box{margin-top:12px;padding:18px;border-radius:14px;background:var(--cr);text-align:left}
.kbr-save-box p{margin:0 0 12px;font-size:14px;color:var(--ink)}
.kbr-save-row{display:flex;gap:10px}
.kbr-save-row input{flex:1}
.kbr-save-msg{margin:10px 0 0!important;font-weight:600}
.kbr-save-msg:empty{display:none}

/* Messages */
.kbr-alert{background:#fdecea;color:var(--bad);border-radius:10px;padding:12px 16px;font-weight:600;margin:18px 0 0}
.kbr-info{background:#eef2ea;color:var(--g2);border-radius:10px;padding:12px 16px;font-weight:600;margin:0 0 20px}
.kbr-done{text-align:center;padding:20px 0 10px;outline:none}
.kbr-done-icon{width:72px;height:72px;border-radius:50%;background:var(--g2);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.kbr-done-icon svg{width:36px;height:36px}
.kbr-done p{max-width:520px;margin:0 auto 14px;color:var(--mut)}
.kbr-ref{color:var(--g2);font-size:18px}
.kbr-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.kbr-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kbr-step{animation:kbrIn .3s ease}
@keyframes kbrIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.kbr-step{animation:none}}

/* Mobile */
@media (max-width:700px){
	.kbr{padding:0 12px 50px}
	.kbr-card{padding:24px 18px 22px;border-radius:18px;margin-top:-40px}
	.kbr-grid{grid-template-columns:1fr;gap:16px}
	.kbr-field.kbr-half{grid-column:1/-1}
	.kbr-dot-label{display:none}
	.kbr .kbr-dot-btn{width:32px;height:32px;font-size:14px}
	.kbr-dot:before{top:15px}
	.kbr .kbr-radio-row{grid-template-columns:1fr}
	.kbr-review dl{grid-template-columns:1fr;gap:0}
	.kbr-review dt{padding-top:10px}
	.kbr-review dd{padding-top:2px}
	.kbr-nav{flex-wrap:wrap}
	.kbr .kbr-btn{padding:12px 20px}
	.kbr-save-row{flex-direction:column}
}
