/* Contact modal (see contact.js). Self-contained so the demo can load it without the site stylesheet. */
.cbox { --cb-ink: #171717; --cb-body: #4d4d4d; --cb-mute: #646464; --cb-line: #e3ddd2; --cb-field: #cfc8bc; --cb-focus: #0761D1; --cb-bad: #c50000;
  width: 100%; text-align: left; font-family: Geist, Arial, sans-serif; color: var(--cb-body); font-size: 15px; line-height: 1.5; }
.cbox *, .cbox-overlay * { box-sizing: border-box; }
.cbox-label { display: block; font-size: 13px; font-weight: 500; color: var(--cb-ink); margin: 0 0 6px; }
.cbox-row { display: flex; gap: 8px; align-items: stretch; }
.cbox-input { font: 400 15px/20px Geist, Arial, sans-serif; color: var(--cb-ink); background: #fff; border: 1px solid var(--cb-field); border-radius: 6px; padding: 11px 12px; min-height: 44px; width: 100%; min-width: 0; }
.cbox-row .cbox-input { flex: 1 1 200px; }
.cbox textarea.cbox-input { min-height: 104px; resize: vertical; }
.cbox-input:focus { outline: 2px solid var(--cb-focus); outline-offset: 0; border-color: var(--cb-focus); }
.cbox-input[aria-invalid=true] { border-color: var(--cb-bad); }
/* the black pill: modal buttons and the demo footer strip's "Get in touch" */
.cbox-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: 100px; font: 500 15px/20px Geist, Arial, sans-serif; cursor: pointer; white-space: nowrap; text-decoration: none; }
.cbox-primary { background: var(--cb-ink, #171717); color: #fff; border: 1px solid var(--cb-ink, #171717); }
.cbox-primary:hover { background: #383838; }
.cbox-secondary { background: #fff; color: var(--cb-ink); border: 1px solid var(--cb-line); }
.cbox-secondary:hover { border-color: #c9c2b5; }
.cbox-btn[disabled] { opacity: .6; cursor: progress; }
.cbox-btn:focus-visible, .cbox-close:focus-visible, .cbox-back:focus-visible, .cbox input[type=radio]:focus-visible, .cbox-h:focus-visible, .cbox-lead:focus-visible { outline: 2px solid var(--cb-focus, #0761D1); outline-offset: 2px; }
.cbox-h:focus, .cbox-lead:focus { outline: none; }
.cbox-note { margin: 8px 0 0; font-size: 13px; color: var(--cb-mute); }
.cbox-err { margin: 10px 0 0; font-size: 14px; color: var(--cb-bad); }
.cbox-err:empty { display: none; }
.cbox-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
/* step 2 */
.cbox-h { margin: 0 0 14px; font-size: 18px; line-height: 1.3; font-weight: 600; letter-spacing: -0.02em; color: var(--cb-ink); }
.cbox-lead { margin: 0 0 18px; color: var(--cb-ink); }
.cbox-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.cbox-back { display: inline-flex; align-items: center; min-height: 32px; margin: -4px 0 12px; padding: 0; border: 0; background: none; font: 500 14px/20px Geist, Arial, sans-serif; color: var(--cb-body); cursor: pointer; }
.cbox-back span { margin-right: 6px; }
.cbox-back:hover { color: var(--cb-ink); text-decoration: underline; }
.cbox-q { display: grid; gap: 14px; }
.cbox-f { display: flex; flex-direction: column; gap: 6px; border: 0; padding: 0; margin: 0; min-width: 0; }
.cbox-f label, .cbox-f legend { font-size: 13px; font-weight: 500; color: var(--cb-ink); padding: 0; }
.cbox-req { color: var(--cb-mute); font-weight: 400; }
.cbox-radios { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 6px; }
.cbox-radios label { font-weight: 400; font-size: 15px; display: inline-flex; gap: 6px; align-items: center; min-height: 32px; cursor: pointer; }
.cbox-ferr { color: var(--cb-bad); font-size: 13px; }
.cbox-ferr:empty { display: none; }
.cbox-q .cbox-btn { justify-self: start; }
.cbox-done p { margin: 0; }
.cbox-done .cbox-h { margin-bottom: 6px; }
.cbox-book .meetings-iframe-container { width: 100%; min-height: 200px; overflow: hidden; }
.cbox-book iframe { width: 100% !important; max-width: 100%; border: 0; }
.cbox-meet-fallback { height: 700px; }
/* modal */
.cbox-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(23, 23, 23, .45); display: none; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto; font-family: Geist, Arial, sans-serif; }
.cbox-overlay.open { display: flex; }
.cbox-dialog { position: relative; width: 100%; max-width: 600px; background: #F3EFE8; border: 1px solid #e3ddd2; border-radius: 16px; padding: 32px; box-shadow: 0 2px 2px rgba(0,0,0,.04), 0 8px 16px -4px rgba(0,0,0,.06); }
.cbox-dialog.is-wide { max-width: 960px; }
.cbox-title { margin: 0 0 18px; padding-right: 44px; font-size: 26px; line-height: 1.15; font-weight: 600; letter-spacing: -0.03em; color: #171717; }
.cbox-close { position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; border-radius: 6px; border: 1px solid #e3ddd2; background: #fff; cursor: pointer; font-size: 20px; line-height: 1; color: #171717; }
/* phones: a full-screen sheet */
@media (max-width: 560px) {
  .cbox-overlay { padding: 0; }
  .cbox-dialog, .cbox-dialog.is-wide { max-width: none; min-height: 100%; border: 0; border-radius: 0; padding: 20px 16px 32px; box-shadow: none; }
  .cbox-row { flex-direction: column; }
  .cbox-row .cbox-input { flex: none; }
  .cbox-row .cbox-btn, .cbox-choices .cbox-btn { width: 100%; }
}
