/* Book a demo page. No inline styles anywhere: public pages run with style-src 'self'. */
.bd-form { display: grid; gap: 22px; max-width: 860px; margin: 0 auto; }
.bd-step { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; margin-right: 8px;
  background: var(--blue, #2F6FED); color: #fff; font-size: .9rem; vertical-align: 3px; }
.bd-row { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .bd-row { grid-template-columns: 1fr; } }
.bd-field { display: grid; gap: 6px; margin-bottom: 14px; }
.bd-field label { font-weight: 600; font-size: .92rem; color: var(--navy, #0B1F44); }
.bd-optional { font-weight: 400; opacity: .7; }
.bd-field input, .bd-field textarea {
  font: inherit; font-size: .98rem; width: 100%; padding: 12px 14px; border-radius: 12px;
  border: 1px solid var(--line, #DCE6F7); background: #fff; color: var(--navy, #0B1F44);
}
.bd-field textarea { resize: vertical; min-height: 84px; }
.bd-field input:focus, .bd-field textarea:focus { outline: none; border-color: var(--blue-bright, #5B93FF); box-shadow: 0 0 0 3px rgba(91, 147, 255, .18); }

/* what to book */
.bd-kinds { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin-top: 14px; }
@media (max-width: 720px) { .bd-kinds { grid-template-columns: 1fr; } }
.bd-kind { position: relative; display: block; cursor: pointer; }
.bd-kind input { position: absolute; opacity: 0; }
.bd-kind__body { display: grid; gap: 8px; height: 100%; padding: 18px; border: 2px solid var(--line, #DCE6F7);
  border-radius: 16px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.bd-kind__title { font-weight: 700; color: var(--navy, #0B1F44); font-size: 1.02rem; }
.bd-kind__title i { color: var(--blue, #2F6FED); margin-right: 6px; }
.bd-kind__text { font-size: .9rem; line-height: 1.5; color: #4A5875; }
.bd-kind__text a { color: var(--blue, #2F6FED); font-weight: 600; }
.bd-kind input:checked + .bd-kind__body { border-color: var(--blue, #2F6FED); box-shadow: 0 0 0 4px rgba(47, 111, 237, .14); }
.bd-kind input:focus-visible + .bd-kind__body { outline: 3px solid var(--blue-bright, #5B93FF); outline-offset: 2px; }

/* calendar and times */
.bd-pick { display: grid; gap: 22px; grid-template-columns: minmax(260px, 340px) 1fr; margin-top: 10px; }
@media (max-width: 720px) { .bd-pick { grid-template-columns: 1fr; } }
.bd-cal { border: 1px solid var(--line, #DCE6F7); border-radius: 16px; padding: 14px; background: #fff; }
.bd-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; color: var(--navy, #0B1F44); }
.bd-cal__nav { width: 34px; height: 34px; border-radius: 10px; border: 1px solid var(--line, #DCE6F7); background: #fff; cursor: pointer; color: var(--navy, #0B1F44); }
.bd-cal__nav[disabled] { opacity: .35; cursor: default; }
.bd-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.bd-cal__dow span { text-align: center; font-size: .72rem; font-weight: 600; color: #7A88A6; padding: 4px 0; }
.bd-cal__day { aspect-ratio: 1; border-radius: 10px; border: 1px solid transparent; background: #EEF4FF; color: var(--navy, #0B1F44);
  font: inherit; font-weight: 600; font-size: .9rem; cursor: pointer; }
.bd-cal__day:hover { border-color: var(--blue, #2F6FED); }
.bd-cal__day[disabled] { background: transparent; color: #B5C0D3; font-weight: 400; cursor: default; }
.bd-cal__day.is-selected { background: var(--blue, #2F6FED); color: #fff; }
.bd-times__label { font-weight: 600; color: var(--navy, #0B1F44); margin: 0 0 10px; }
.bd-times__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.bd-time { padding: 10px 8px; border-radius: 10px; border: 1px solid var(--line, #DCE6F7); background: #fff; font: inherit;
  font-weight: 600; color: var(--navy, #0B1F44); cursor: pointer; }
.bd-time:hover { border-color: var(--blue, #2F6FED); }
.bd-time.is-selected { background: var(--blue, #2F6FED); border-color: var(--blue, #2F6FED); color: #fff; }
.bd-chosen { margin: 12px 0 0; font-weight: 600; color: #067647; min-height: 1.3em; }

.bd-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.45; margin-bottom: 16px; }
.bd-consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.bd-consent a { color: var(--blue, #2F6FED); font-weight: 600; }
.bd-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.bd-status { min-height: 1.4em; margin: 12px 0 0; font-size: .95rem; }
.bd-status.is-error { color: #B42318; }
.bd-status.is-ok { color: #067647; font-weight: 600; }
#bdSubmit[disabled] { opacity: .6; cursor: progress; transform: none; }
