/* /join — the family intake page. Builds on styles.css (same palette, fonts, header, footer). */
.j-hero{background:linear-gradient(180deg,var(--sky2),var(--skyDeep));color:#fff;text-align:center;padding:34px 0 64px}
.j-logo{width:76px;height:auto;margin:0 auto 12px;display:block}
.j-hero .eyebrow{color:#9fd3f2;margin-bottom:.5em}
.j-hero h1{font-size:clamp(2rem,8.4vw,3rem);margin:0 0 .3em;color:#fff}
.j-hero .sub{color:#d6e4f0;max-width:34rem;margin:0 auto;font-size:1.04rem}
.j-body{background:var(--sandL);padding:0 0 56px}
.j-wrap{max-width:680px;padding:0 14px}
.j-form,.j-thanks{position:relative;margin-top:-36px;background:#fff;border-radius:20px;box-shadow:0 14px 40px rgba(11,42,74,.16);border:1px solid rgba(28,101,175,.12);padding:22px 18px 26px}
.j-note{margin:0 0 4px;font-size:.85rem;color:var(--ink2)}
.req{color:#c0392b;font-weight:700}
.opt{font-weight:500;font-size:.8rem;color:#7a7f87;margin-left:4px}
.sect{border:0;margin:0;padding:18px 0 4px;min-width:0}
.sect + .sect{border-top:1px solid #e7ebf0;margin-top:14px}
.sect > legend{display:flex;align-items:center;gap:10px;font-family:var(--western);font-size:1.28rem;color:var(--sky);padding:0;margin:0 0 12px;float:left;width:100%}
.sect > legend + *{clear:both}
.sect .n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--tan);color:#fff;font-family:var(--sans);font-size:.9rem;font-weight:800;flex:none}
.fld{margin:0 0 16px;border:0;padding:0;min-width:0}
.fld > label,.fld > legend{display:block;font-weight:700;font-size:1rem;margin:0 0 6px;padding:0;color:var(--ink)}
.hint{margin:-2px 0 7px;font-size:.88rem;color:#6b7078}
.joinpage .j-form input:not([type=radio]),.joinpage textarea,.joinpage select{display:block;min-height:50px;width:100%;font:inherit;font-size:16px;padding:12px 14px;border-radius:10px;border:1.5px solid #cdd6df;background:#fff;color:var(--ink);box-sizing:border-box}
.joinpage input{box-sizing:border-box}
.joinpage textarea{resize:vertical;min-height:110px}
.joinpage .j-form input:not([type=radio]):focus,.joinpage textarea:focus,.joinpage select:focus{border-color:var(--sky);outline:none;box-shadow:0 0 0 3px rgba(44,148,210,.35)}
.sel{position:relative}
.sel::after{content:"";position:absolute;right:16px;top:50%;width:9px;height:9px;border-right:2px solid var(--ink2);border-bottom:2px solid var(--ink2);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.joinpage select{appearance:none;-webkit-appearance:none;padding-right:40px;min-height:50px}
.opts{display:grid;gap:8px}
.opt-c{display:flex;align-items:center;gap:12px;min-height:50px;padding:10px 14px;border:1.5px solid #cdd6df;border-radius:12px;cursor:pointer;font-weight:500;line-height:1.3;background:#fff;transition:border-color .12s,background .12s}
.opt-c input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border:2px solid #9aa6b2;border-radius:50%;display:grid;place-items:center;background:#fff;padding:0!important}
.opt-c input::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--sky);transform:scale(0);transition:transform .12s}
.opt-c input:checked{border-color:var(--sky)}
.opt-c input:checked::before{transform:scale(1)}
.opt-c:has(input:checked){border-color:var(--sky);background:var(--skyPale)}
.opt-c input:focus-visible{outline:3px solid rgba(44,148,210,.45);outline-offset:2px}
.other-in{margin-top:8px}
.kids{display:grid;grid-template-columns:1fr;gap:0 12px}
.fld-n{max-width:none}
.err{display:none;margin:6px 0 0;color:#c0392b;font-size:.88rem;font-weight:600}
.fld.bad .err{display:block}
.fld.bad input:not([type=radio]),.fld.bad select,.fld.bad textarea{border-color:#c0392b!important}
.fld.bad .opt-c{border-color:#e3a59d}
.j-submit{margin-top:10px;text-align:center}
.j-btn{width:100%;min-height:56px;font-size:1.08rem;border:0;cursor:pointer;font-family:inherit}
.j-btn[disabled]{opacity:.75;cursor:progress}
.j-btn.busy .j-btn-t::after{content:"";display:inline-block;width:16px;height:16px;margin-left:10px;vertical-align:-3px;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:jspin .8s linear infinite}
@keyframes jspin{to{transform:rotate(360deg)}}
.j-fine{font-size:.84rem;color:#6b7078;margin:12px 0 0}
.j-fail{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:#fdecea;color:#8e2a1f;font-size:.92rem;font-weight:600}
.j-fail a{color:inherit}
.j-thanks{text-align:center;padding:30px 20px 28px}
.j-thanks img{width:76px;height:auto;margin:0 auto 10px;display:block}
.j-thanks h2{color:var(--sky);font-size:clamp(1.8rem,7vw,2.4rem);margin:0 0 .35em}
.j-thanks p{color:var(--ink2);margin:0 auto 1.2em;max-width:30rem}
.j-thanks-ctas{display:grid;gap:10px;max-width:380px;margin:0 auto}
.j-thanks .btn{width:100%}
.j-btn-line{border:1.5px solid var(--sky);color:var(--sky);background:#fff}
.j-thanks .tag{color:var(--sky);font-weight:700;margin:16px 0 0}
.j-thanks:focus{outline:none}
[hidden]{display:none!important}
@media (min-width:560px){
  .j-form{padding:28px 30px 32px}
  .opts{grid-template-columns:1fr 1fr}
  .kids{grid-template-columns:1fr 1.4fr}
  .kids .fld-a{grid-column:auto}
  .j-btn{width:auto;min-width:300px;padding-left:40px;padding-right:40px}
}
@media (min-width:900px){.j-hero{padding:48px 0 80px}}
@media (prefers-reduced-motion:reduce){.j-btn.busy .j-btn-t::after{animation:none}}
