/* Reservation form. Reads the theme's design tokens when present (kdm-theme), with neutral fallbacks for any theme. */
.kdm-leads { --f-ink: var(--kdm-ink, #0f2a3d); --f-text: var(--kdm-text, #3d4c58); --f-muted: var(--kdm-muted, #5a6873); --f-line: var(--kdm-line, #cfd8df); --f-primary: var(--kdm-primary, #155e9c); --f-primary-dark: var(--kdm-primary-dark, #0f4a7d); --f-soft: var(--kdm-primary-soft, #e6f1fa); --f-surface: var(--kdm-surface, #fff); --f-error: #b3261e; --f-radius: var(--kdm-radius, 10px); max-width: 52rem; color: var(--f-text); }
.kdm-leads *, .kdm-leads *::before, .kdm-leads *::after { box-sizing: border-box; }
.kdm-leads-form { display: grid; gap: 1.25rem; }
.kdm-leads-set { margin: 0; padding: 0; border: 0; min-width: 0; }
.kdm-leads-set legend { margin-bottom: .75rem; padding: 0; color: var(--f-ink); font-family: var(--kdm-font-display, inherit); font-size: 1.35rem; font-weight: 600; }
.kdm-leads-grid { display: grid; gap: .9rem 1rem; }
.kdm-leads-grid p, .kdm-leads-form > p { margin: 0; }
.kdm-leads label { display: inline-block; margin-bottom: .4rem; color: var(--f-ink); font-weight: 600; font-size: .95rem; }
.kdm-leads-req { color: var(--f-ink); font-weight: 600; }
.kdm-leads input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), .kdm-leads select, .kdm-leads textarea { display: block; width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid var(--f-line); border-radius: calc(var(--f-radius) * .7); background: var(--f-surface); color: var(--f-ink); font: inherit; font-size: 1rem; transition: border-color .2s ease, box-shadow .2s ease; }
.kdm-leads textarea { min-height: 7rem; resize: vertical; }
.kdm-leads input:focus-visible, .kdm-leads select:focus-visible, .kdm-leads textarea:focus-visible { border-color: var(--f-primary); outline: 3px solid color-mix(in srgb, var(--f-primary) 30%, transparent); outline-offset: 1px; }
.kdm-leads [aria-invalid="true"] { border-color: var(--f-error) !important; }
.kdm-leads-error { display: block; min-height: 0; margin-top: .3rem; color: var(--f-error); font-size: .875rem; font-weight: 600; }
.kdm-leads-error:empty { display: none; }
.kdm-leads-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1rem; }
.kdm-leads-pair > p { margin: 0; min-width: 0; }
.kdm-leads-visit { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.kdm-leads-pill { position: relative; margin: 0 !important; cursor: pointer; }
.kdm-leads-pill input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.kdm-leads-pill span { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1.1rem; border: 1px solid var(--f-line); border-radius: 999px; background: var(--f-surface); color: var(--f-ink); font-weight: 600; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.kdm-leads-pill input:checked + span { border-color: var(--f-primary); background: var(--f-primary); color: #fff; }
.kdm-leads-pill input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--f-primary) 35%, transparent); outline-offset: 2px; }
.kdm-leads-total { color: var(--f-ink); font-weight: 600; }
.kdm-leads-total:empty { display: none; }
.kdm-leads-consent label { display: flex; gap: .65rem; align-items: flex-start; font-weight: 400; font-size: .95rem; color: var(--f-text); }
.kdm-leads-consent input { flex: 0 0 auto; width: 22px; height: 22px; margin: .1rem 0 0; accent-color: var(--f-primary); }
.kdm-leads-consent a, .kdm-leads-help a { color: var(--f-primary-dark); text-decoration: underline; text-underline-offset: 2px; }
.kdm-leads-trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kdm-leads-required-note, .kdm-leads-help { color: var(--f-muted); font-size: .875rem; }
.kdm-leads-help { display: block; margin-top: .35rem; }
.kdm-leads-actions { display: grid; justify-items: start; gap: .5rem; }
.kdm-leads-actions p { margin: 0; }
.kdm-leads-submit { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .85rem 1.75rem; border: 0; border-radius: 999px; background: var(--f-primary); color: #fff; font: inherit; font-weight: 700; font-size: 1rem; letter-spacing: .01em; cursor: pointer; transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease, background-color .2s ease; }
.kdm-leads-submit:focus-visible { outline: 3px solid color-mix(in srgb, var(--f-primary) 40%, transparent); outline-offset: 3px; }
.kdm-leads-submit[aria-busy="true"] { opacity: .75; pointer-events: none; }
.kdm-leads-notice { margin: 0 0 1.25rem; padding: 1rem 1.15rem; border-left: 4px solid; border-radius: 6px; }
.kdm-leads-notice p { margin: 0; }
.kdm-leads-notice p + p { margin-top: .35rem; }
.kdm-leads-notice:focus { outline: none; }
.kdm-leads-notice--success { border-color: #1d7a55; background: #eaf6f0; color: #133f2d; }
.kdm-leads-notice--error { border-color: var(--f-error); background: #fdeeed; color: #5b1411; }
.kdm-leads-unavailable { padding: 1rem; border-radius: 8px; background: var(--f-soft); }
.kdm-leads-hidden, .kdm-leads-hidden[hidden], .kdm-leads [hidden] { display: none !important; }
.kdm-leads-form > br, .kdm-leads-form > p:empty, .kdm-leads-grid > br { display: none; }
@media (min-width: 40rem) { .kdm-leads-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kdm-leads-full { grid-column: 1 / -1; } }
@media (hover: hover) and (pointer: fine) { .kdm-leads-submit:hover { background: var(--f-primary-dark); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15, 42, 61, .2); } }
@media (prefers-reduced-motion: reduce) { .kdm-leads-submit, .kdm-leads-pill span, .kdm-leads input, .kdm-leads select { transition: none; } }

/* Thank-you page */
.kdm-ty { max-width: 46rem; }
.kdm-ty__eyebrow { margin: 0 0 .75rem; color: var(--kdm-primary, #155e9c); font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.kdm-ty__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0; padding: 0; list-style: none; }
.kdm-ty__chips li { padding: .4rem .85rem; border-radius: 999px; background: var(--kdm-primary-soft, #e6f1fa); color: var(--kdm-ink, #0f2a3d); font-weight: 600; font-size: .9rem; }
.kdm-ty__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.kdm-ty__btn { display: inline-flex; align-items: center; min-height: 48px; padding: .75rem 1.4rem; border: 1px solid var(--kdm-primary, #155e9c); border-radius: 999px; background: var(--kdm-primary, #155e9c); color: #fff; font-weight: 700; text-decoration: none; }
.kdm-ty__btn--ghost { background: transparent; color: var(--kdm-primary-dark, #0f4a7d); }
