/* Jesse Boehm home contact section (1d). Shares --jb-* tokens with header/footer; fallbacks included. */
.jb-contact{
  --c-bg:var(--jb-bg,#0a0a0b); --c-line:var(--jb-line,#1a1a1e); --c-border:var(--jb-border,#26262a);
  --c-surface:#131316; --c-field:#0d0d0f; --c-dash:#33333a;
  --c-text:var(--jb-text,#ececef); --c-text-2:var(--jb-text-2,#b9b9bf); --c-muted:var(--jb-muted,#85858d); --c-faint:#6c6c74;
  --c-cyan:var(--jb-cyan,#3fb8f0); --c-pink:var(--jb-pink,#e0457b); --c-blue:#2f7de1; --c-star:#f5b83d;
  /* Use the site's existing display/mono fonts if defined; Anton / JetBrains Mono are fallbacks */
  --c-display:var(--jb-font-display,'Anton',Impact,sans-serif); --c-mono:var(--jb-font-mono,'JetBrains Mono',ui-monospace,monospace);
  background:var(--c-bg);color:var(--c-text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
html[data-theme="light"] .jb-contact, body.light-mode .jb-contact{
  --c-surface:#f4f5f7; --c-field:#ffffff; --c-dash:#c9cad1; --c-faint:#8a8a93}
.jb-contact *{box-sizing:border-box}
.jb-contact a{text-decoration:none}
.jb-contact :focus-visible{outline:2px solid var(--c-cyan);outline-offset:2px;border-radius:6px}
.jb-ct-wrap{max-width:1280px;margin:0 auto;padding:96px 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:64px;align-items:start}

/* Left column */
.jb-ct-intro{display:flex;flex-direction:column;gap:24px}
.jb-ct-eyebrow{font-family:var(--c-mono);font-size:14px;letter-spacing:.3em;color:var(--c-cyan);text-transform:uppercase;margin:0}
.jb-ct-title{margin:0;font-family:var(--c-display);font-weight:400;font-size:clamp(44px,5.4vw,68px);line-height:1.08;text-transform:uppercase}
.jb-ct-title .jb-ct-hl{color:var(--c-cyan)}
.jb-ct-lede{margin:0;font-size:17px;line-height:1.75;color:var(--c-text-2);max-width:480px;text-wrap:pretty}
.jb-ct-direct{display:flex;flex-direction:column;gap:28px;margin-top:28px}
.jb-ct-rule{height:1px;width:120px;background:linear-gradient(90deg,var(--c-cyan),var(--c-pink))}
.jb-ct-big{display:flex;flex-direction:column;gap:6px;color:var(--c-text);transition:color .15s}
.jb-ct-big-label{display:flex;align-items:center;gap:8px;font-family:var(--c-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.jb-ct-big-value{font-family:var(--c-display);font-size:clamp(30px,3.4vw,44px);letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}
.jb-ct-big-value .ph{font-size:.64em}
.jb-ct-big.is-phone .jb-ct-big-label{color:var(--c-cyan)} .jb-ct-big.is-phone:hover{color:var(--c-cyan)}
.jb-ct-big.is-email .jb-ct-big-label{color:var(--c-pink)} .jb-ct-big.is-email:hover{color:var(--c-pink)}
.jb-ct-facts{display:flex;flex-wrap:wrap;gap:20px 48px;padding-top:20px;border-top:1px solid var(--c-line);max-width:520px;margin:0}
.jb-ct-fact{display:flex;flex-direction:column;gap:6px;margin:0}
.jb-ct-fact dt{display:flex;align-items:center;gap:8px;font-family:var(--c-mono);font-size:12px;letter-spacing:.2em;color:var(--c-muted);text-transform:uppercase}
.jb-ct-fact dt .ph{font-size:15px}
.jb-ct-fact dd{margin:0;font-size:17px;color:var(--c-text-2)}
.jb-ct-c{color:var(--c-cyan)} .jb-ct-p{color:var(--c-pink)}

/* Right column */
.jb-ct-stack{display:flex;flex-direction:column;gap:28px}
.jb-ct-form{background:var(--c-surface);border:1px solid var(--c-border);border-radius:20px;padding:40px;display:flex;flex-direction:column;gap:22px}
.jb-ct-trust{display:flex;gap:12px;font-size:15px;line-height:1.65;color:var(--c-text-2);margin:0}
.jb-ct-trust .ph-fill{color:var(--c-star);font-size:18px;margin-top:3px;flex:none}
.jb-ct-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.jb-ct-field{display:flex;flex-direction:column;gap:8px}
.jb-ct-label{font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--c-text-2);text-transform:uppercase}
.jb-ct-req{color:var(--c-pink)}
.jb-ct-input{width:100%;background:var(--c-field);border:1px solid var(--c-border);border-radius:10px;padding:15px 16px;color:var(--c-text);font:16px/1.55 Inter,system-ui,sans-serif;transition:border-color .15s,box-shadow .15s}
.jb-ct-input::placeholder{color:var(--c-faint)}
.jb-ct-input:focus{outline:none;border-color:var(--c-cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-cyan) 18%,transparent)}
textarea.jb-ct-input{resize:vertical;min-height:132px}
.jb-ct-turnstile{min-height:65px}
.jb-ct-submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}
.jb-ct-submit{display:inline-flex;align-items:center;gap:10px;padding:17px 30px;border:0;border-radius:10px;background:linear-gradient(90deg,var(--c-cyan),var(--c-blue));color:#06121c;font:600 17px Inter,system-ui,sans-serif;cursor:pointer;box-shadow:0 8px 24px color-mix(in srgb,var(--c-cyan) 22%,transparent);transition:filter .15s,transform .1s}
.jb-ct-submit:hover{filter:brightness(1.08)} .jb-ct-submit:active{transform:translateY(1px)}
.jb-ct-nospam{font-size:14px;color:var(--c-muted)}
.jb-ct-book{border:1px solid color-mix(in srgb,var(--c-cyan) 35%,transparent);border-radius:20px;padding:32px 40px;display:flex;flex-direction:column;gap:12px}
.jb-ct-book-title{margin:0;font-family:var(--c-display);font-weight:400;font-size:24px;text-transform:uppercase}
.jb-ct-book-text{margin:0;font-size:16px;color:var(--c-text-2)}
.jb-ct-book-btn{align-self:flex-start;margin-top:8px;display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border:1px solid var(--c-cyan);border-radius:10px;color:var(--c-cyan);font-weight:600;font-size:17px;transition:background .15s}
.jb-ct-book-btn:hover{background:color-mix(in srgb,var(--c-cyan) 10%,transparent)}

@media (max-width:1000px){.jb-ct-wrap{grid-template-columns:1fr;gap:48px;padding:72px 24px}}
@media (max-width:600px){
  .jb-ct-wrap{padding:56px 18px}
  .jb-ct-row{grid-template-columns:1fr}
  .jb-ct-form{padding:24px 18px}
  .jb-ct-book{padding:24px 18px}
  .jb-ct-submit,.jb-ct-book-btn{width:100%;justify-content:center;align-self:stretch}
  .jb-ct-direct{margin-top:12px;gap:22px}
}
@media (prefers-reduced-motion:reduce){.jb-contact *{transition:none!important}}

/* Site integration for the home page (index_contact.html). Rules above are the handoff, unchanged. */
.jb-contact{--jb-font-display:var(--font-display);--jb-font-mono:var(--font-mono)}
/* The section keeps .section (its own vertical padding) and the page's #contact background; .jb-ct-wrap pads instead */
#contact.jb-contact{padding:0;background:color-mix(in srgb,var(--c-bg) 82%,transparent)}
.jb-ct-title{letter-spacing:.02em}
.jb-ct-trust .jb-ct-star{width:18px;height:18px;margin-top:3px;flex:none}
.jb-ct-input.invalid{border-color:var(--c-pink)}
.jb-ct-field .form-error-msg{margin-top:0}
.jb-ct-form #form-status,.jb-ct-form .form-escalation{margin-top:0}
.jb-ct-submit:disabled{opacity:.6;cursor:wait}
.jb-contact .jb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
