/* ---- Base (self-contained; matches the live Tipton Media look: black, cyan, Space Grotesk) ---- */
@font-face{font-family:"Space Grotesk";src:url(SpaceGrotesk.woff2) format("woff2");font-weight:300 700;font-display:swap}
*{box-sizing:border-box;margin:0}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
body.intake{--bg:#050609;--text:#f5f5f7;--muted:#a1a1a6;--muted2:#8e8e93;--accent:#5CCFE6;--on-accent:#04222a;--panel:#0d0f14;--panel2:#0a0c10;--border:#1c1f27;--border2:#2a2e3a;--disabled:#3a4258;
  background:var(--bg);color:var(--text);font-family:"Space Grotesk",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;line-height:1.5;min-height:100vh;overflow-x:hidden;font-size:17px}
.intake a{color:inherit;text-decoration:none}
.intake :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.intake .banner{background:#0d0f14;color:var(--muted);font-size:12px;text-align:center;padding:8px 12px;border-bottom:1px solid var(--border)}
.intake .demand{background:#ffd58a1c;color:#ffe3b0;font-size:14px;text-align:center;padding:10px 14px;border-bottom:1px solid #ffd58a55}
.intake header.top{display:flex;justify-content:center;align-items:center;height:56px;border-bottom:1px solid var(--border)}
.intake .brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:17px;letter-spacing:-.015em}
.intake .brand .mark{height:24px;width:auto}.intake .brand em{font-style:normal;color:var(--accent)}
.intake .tag{color:var(--accent);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.intake .btn{display:inline-block;padding:12px 26px;border-radius:99px;font-weight:600;font-size:15px;border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:none;font-family:inherit}
.intake .btn.solid{background:var(--accent);color:var(--on-accent)}
.intake footer{padding:36px 24px;border-top:1px solid var(--border);color:var(--muted2);font-size:12px;text-align:center}
.intake main{position:relative;z-index:2}
/* Custom church background intake (TM-015, hidden draft). Builds on ../../style.css variables. */
body.intake{--r:16px;--line:#2a2e3a;--focus:#5CCFE6}
.intake .wrap{max-width:720px;margin:0 auto;padding:36px 22px 120px}
.intake .progress{position:sticky;top:0;z-index:6;background:linear-gradient(var(--bg) 78%,transparent);padding:14px 0 18px;margin-bottom:10px}
.progress-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.stepname{color:var(--muted);font-size:13px}
.bar{height:3px;border-radius:99px;background:var(--border2);overflow:hidden}
.bar i{display:block;height:100%;width:8.33%;background:var(--accent);border-radius:99px;transition:width .35s cubic-bezier(.2,.7,.2,1)}
section[data-step]{padding:18px 0 8px;animation:in .35s cubic-bezier(.2,.7,.2,1)}
@keyframes in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
section[hidden],.reveal[hidden],[hidden]{display:none!important}
.intake h1,.intake h2{font-size:clamp(28px,5vw,40px);line-height:1.1;letter-spacing:-.02em;font-weight:700;outline:none;margin-bottom:12px}
.lede{color:var(--muted);font-size:17px;max-width:52ch;margin-bottom:28px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.field{margin:0 0 22px;border:0;padding:0;min-width:0}
.field>label,.field>legend,.reveal>label,.sub{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--text);padding:0}
.sub{margin:6px 0 10px}
.opt{font-weight:400;color:var(--muted2);font-size:12px;margin-left:6px}
.hint{display:block;color:var(--muted2);font-size:12px;margin-top:6px}
input[type=text],input[type=email],input[type=url],input[type=number],input[type=date],select,textarea{width:100%;font:inherit;font-size:16px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 14px;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:38px}
textarea{resize:vertical;line-height:1.5}
input::placeholder,textarea::placeholder{color:#6b7592}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #5CCFE633}
input[type=date]{color-scheme:dark}
[aria-invalid=true]{border-color:#ff8b8b!important}
.err{color:#ff9d9d;font-size:13px;margin-top:8px}
.err::before{content:"";display:inline-block}
/* choice cards */
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.choices.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice{position:relative;display:block;cursor:pointer}
.choice input,.place input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.choice>span{display:flex;flex-direction:column;gap:2px;padding:15px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);transition:border-color .2s,background .2s,transform .15s;min-height:56px;justify-content:center}
.choice b{font-size:15px;font-weight:600}.choice small{color:var(--muted2);font-size:12.5px}
.choice:hover>span{border-color:#3d4456}
.choice input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--panel))}
.choice input:focus-visible+span,.place input:focus-visible+.mini{outline:2px solid var(--accent);outline-offset:2px}
.choice input[type=checkbox]:checked+span b::after{content:" ✓";color:var(--accent)}
.reveal{margin:14px 0 4px;animation:in .3s}
/* placements */
.placements{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.place{position:relative;display:flex;flex-direction:column;gap:8px;cursor:pointer;font-size:13px}
.place b{font-weight:600}
.mini{position:relative;aspect-ratio:16/9;border-radius:10px;border:1px solid var(--line);background:linear-gradient(160deg,#141a2c,#0b0e18);transition:border-color .2s}
.place input:checked+.mini{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.m{position:absolute;width:18%;height:11%;border-radius:2px;background:#cfd6ee}
.m.tl{left:6%;top:9%}.m.tr{right:6%;top:9%}.m.bl{left:6%;bottom:9%}.m.br{right:6%;bottom:9%}
.m.lc{left:50%;bottom:9%;transform:translateX(-50%)}
.m.wm{right:6%;bottom:9%;opacity:.28}
.m.none{display:none}
.mini:has(.none)::after{content:"–";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted2);font-size:22px}
/* colors */
.colors{display:grid;gap:10px;margin-bottom:10px}
.crow{display:flex;gap:10px;align-items:center}
.crow input[type=color]{appearance:none;-webkit-appearance:none;width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;flex:none}
.crow input[type=color]::-webkit-color-swatch-wrapper{padding:5px}.crow input[type=color]::-webkit-color-swatch{border:0;border-radius:8px}
.crow input[type=color]::-moz-color-swatch{border:0;border-radius:8px}
.crow input[type=text]{max-width:160px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.crow .rm{background:none;border:0;color:var(--muted2);font:inherit;font-size:13px;cursor:pointer;padding:8px;border-radius:8px}
.crow .rm:hover{color:var(--text)}
.link{background:none;border:0;color:var(--accent);font:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:6px 2px;border-radius:6px}
.link:hover{text-decoration:underline}
.link[disabled]{opacity:.4;cursor:default;text-decoration:none}
/* screen custom */
.wh{display:flex;gap:12px;align-items:flex-end}.wh .field{margin:0;flex:1}.wh .x{padding-bottom:14px;color:var(--muted2)}
/* uploads */
.upload{margin-bottom:12px}
.drop{position:relative;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;text-align:center;padding:26px 18px;border:1.5px dashed #3a4050;border-radius:var(--r);background:var(--panel2);cursor:pointer;transition:border-color .2s,background .2s}
.drop:hover,.drop.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel2))}
.drop:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.drop-t{font-weight:600;font-size:15px}.drop-s{color:var(--muted2);font-size:12.5px;max-width:46ch}
.files{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.files li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);font-size:13px}
.files .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.files .fm{color:var(--muted2);flex:none}
.files .chip{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;border-radius:99px;padding:1px 8px;flex:none}
.files button{background:none;border:0;color:var(--muted2);cursor:pointer;font:inherit;padding:4px 8px;border-radius:8px}
.files button:hover{color:var(--text)}
.upmsg{color:#ff9d9d;font-size:13px;margin-top:8px}
.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:14px;color:var(--muted);margin-top:10px}
.check input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;border:1.5px solid #4a5163;border-radius:7px;background:var(--panel);display:grid;place-content:center;margin-top:1px;cursor:pointer;transition:background .15s,border-color .15s}
.check input::before{content:"";width:10px;height:6px;border-left:2px solid var(--on-accent);border-bottom:2px solid var(--on-accent);transform:rotate(-45deg) scale(0);margin-top:-2px;transition:transform .12s}
.check input:checked{background:var(--accent);border-color:var(--accent)}.check input:checked::before{transform:rotate(-45deg) scale(1)}
.check input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.check.big{font-size:15px;color:var(--text);padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
/* facts, notes, placeholders */
.facts{list-style:none;padding:0;display:grid;gap:0;margin:0 0 30px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts li{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 18px;font-size:14px}
.facts li+li{border-top:1px solid var(--line)}
.facts b{font-weight:600}.facts span{color:var(--muted)}
.ph{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffd58a;background:#ffd58a1c;border:1px dashed #ffd58a88;border-radius:6px;padding:1px 7px;margin-left:2px;white-space:nowrap}
.note{color:var(--muted);font-size:13.5px;margin-top:12px}.note.small{font-size:12.5px;color:var(--muted2)}
.stub-note{margin-top:22px;padding:12px 14px;border-radius:12px;border:1px dashed #ffd58a66;background:#ffd58a10;color:#e9d6ae;font-size:13px}
.quote-box{margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);font-size:14px;color:var(--muted)}
.quote-box b{color:var(--text);display:block;margin-bottom:6px}.quote-box p+p{margin-top:8px}
/* review */
.review{display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.review .row{display:grid;grid-template-columns:150px 1fr auto;gap:14px;padding:14px 18px;align-items:start;font-size:14px}
.review .row+.row{border-top:1px solid var(--line)}
.review dt{color:var(--muted2)}.review dd{margin:0;word-break:break-word;white-space:pre-wrap}
.review .edit{background:none;border:0;color:var(--accent);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:2px 6px;border-radius:6px}
.review .sw{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:6px;border:1px solid #fff3}
/* nav buttons */
.nav-row{display:flex;justify-content:space-between;gap:12px;margin-top:34px;padding-top:22px;border-top:1px solid var(--border)}
.nav-row .btn{padding:13px 28px;border-radius:99px;font-size:15px;min-width:110px}
.nav-row .btn.back{border-color:var(--line);color:var(--muted)}
.nav-row .btn.back:hover{color:var(--text);border-color:#4a5163}
.nav-row .btn[disabled]{visibility:hidden}
.nav-row .btn.solid{margin-left:auto}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* done */
.done{text-align:center;padding:40px 0}
.done .lede{margin-left:auto;margin-right:auto}
.done .facts{text-align:left}.done h2{outline:none}
.check-ring{width:64px;height:64px;border-radius:50%;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--on-accent);background:var(--accent);animation:pop .5s cubic-bezier(.2,.9,.3,1.3)}
@keyframes pop{from{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}
@media (max-width:560px){
  .choices,.choices.two{grid-template-columns:1fr}
  .choices.two{grid-template-columns:1fr 1fr}
  .facts li,.review .row{grid-template-columns:1fr;gap:4px}
  .review .row .edit{justify-self:start;padding-left:0}
  .intake .wrap{padding:22px 18px 100px}
  .lede{font-size:16px}
  .placements{grid-template-columns:repeat(2,1fr)}
  .nav-row .btn{flex:1;min-width:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.thirty{margin-top:22px;padding:20px;border-radius:var(--r);border:1px solid #ffd58a99;background:#ffd58a12}
.thirty>b{display:block;font-size:17px;margin-bottom:6px;color:#ffe3b0}
.thirty p{color:#e6dcc6;font-size:14px}.thirty p.small{color:var(--muted);font-size:13px;margin-top:6px}
.thirty .field{margin:16px 0 0}.thirty .check.big{background:var(--panel2);border-color:#ffd58a66}
.money{display:flex;align-items:center;gap:8px}
.money>span{color:var(--muted2,#8a93a3);font-weight:600}
select:invalid{color:var(--muted2,#8a93a3)}
select option{color:#e9edf3;background:#10131a}
select option[disabled]{color:#6b7385}
legend.sub{float:none;width:100%}

/* QA fix: checkbox rows sit inline, box to the left of the text, aligned with the first line.
   (.field>label{display:block} was overriding .check{display:flex} for labels directly inside a fieldset.) */
.field>label.check,label.check{display:flex;flex-direction:row;align-items:flex-start;gap:14px;font-weight:400;margin-bottom:0}
.check>span{flex:1 1 auto;min-width:0;line-height:1.45}
.check input{width:24px;height:24px;margin:0;margin-top:calc((1.45em - 24px)/2);border-width:2px;border-radius:8px}
.check.big input{margin-top:calc((15px*1.45 - 24px)/2)}
.check input::before{width:12px;height:7px;border-left-width:3px;border-bottom-width:3px;margin-top:-3px}
.check input:checked{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
.check input[aria-invalid=true]:not(:checked){border-color:#ff8b8b}
.check input:checked[aria-invalid=true]{border-color:var(--accent)!important}
.check.big:has(input:checked){border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 9%,var(--panel2))}
.thirty .check.big:has(input:checked){border-color:var(--accent)!important}
