/* Free-consultation page extras: the signup popup (before the calendar) and the locked-calendar button. */
.cd-dialog[hidden] { display: none; }
.cd-dialog { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 16px; }
.cd-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, .8); }
.cd-card { position: relative; width: 100%; max-width: 512px; max-height: calc(100dvh - 32px); overflow-y: auto; background: #fff; color: #000;
  border-top: 6px solid var(--gold-8, #c9a227); border-radius: 8px; padding: 32px; box-shadow: 0 10px 40px rgba(0, 0, 0, .4); display: grid; gap: 16px; }
.cd-title { font-family: var(--font-headline, "Poppins", sans-serif); font-size: 28px; line-height: 1.3; text-align: center; margin: 0; font-weight: 700; }
.cd-desc { text-align: center; font-size: 18px; margin: 0; color: #4b5563; }
.cd-form { display: grid; gap: 16px; }
.cd-field { display: grid; gap: 8px; }
.cd-field label { font-size: 16px; font-weight: 600; }
.cd-input { height: 48px; font-size: 16px; border: 1px solid #cbd5e1; border-radius: 6px; padding: 0 12px; background: #fff; color: #000; width: 100%; box-sizing: border-box; }
.cd-input:focus-visible { outline: 2px solid var(--gold-8, #c9a227); outline-offset: 1px; }
.cd-err { color: #dc2626; margin: 0; font-size: 14px; line-height: 1.5; }
.cd-x { position: absolute; right: 14px; top: 10px; background: none; border: 0; font-size: 28px; line-height: 1; cursor: pointer; opacity: .7; color: #000; }
.cd-x:hover { opacity: 1; }
.cd-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.45; color: #6b7280; cursor: pointer; }
.cd-consent input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: #c9a227; }
.cd-consent a { text-decoration: underline; color: inherit; }
.cd-form button[type=submit] { width: 100%; }
.consult-lock { padding: 8px 0 24px; }
/* no video for now: keep the dark hero backdrop (it is drawn by .vsl-wrap:before) with a short fade into the page */
.vsl-none { height: 150px; }
.vsl-none:before { bottom: 0 !important; background: linear-gradient(to bottom, var(--opening-backdrop) 0, var(--opening-backdrop) calc(100% - 110px), var(--background) 100%) !important; }
@media (max-width: 640px) { .cd-card { padding: 28px 20px; } .cd-title { font-size: 24px; } .cd-desc { font-size: 16px; } }
