/* Beehive Cult Core — forms.css. Uses theme tokens when present; safe defaults otherwise. Dark panel by default. */
.bmc-form { --f-ink: var(--bmc-ink, #0E1D38); --f-cream: var(--bmc-cream, #EDEBE0); --f-honey: var(--bmc-honey, #C8A24A); --f-brass: var(--bmc-brass, #C8A24A); --f-muted: var(--bmc-muted-text, #A9B4C7); --f-err: #F0A99B; font-family: var(--bmc-font-sans, system-ui, sans-serif); color: var(--f-cream); }
.bmc-form__grid { display: grid; grid-template-columns: 1fr; gap: 1.1rem 1.25rem; }
@media (min-width: 680px) { .bmc-form__grid { grid-template-columns: 1fr 1fr; } .bmc-field--wide { grid-column: 1 / -1; } }
.bmc-field label { display: block; font-weight: 600; font-size: .9375rem; margin-bottom: .35rem; color: var(--f-cream); }
.bmc-req { color: var(--f-honey); font-weight: 400; font-size: .8125rem; }
.bmc-opt { color: var(--f-muted); font-weight: 400; font-size: .8125rem; }
.bmc-form input[type="text"], .bmc-form input[type="email"], .bmc-form input[type="tel"], .bmc-form select, .bmc-form textarea {
	width: 100%; min-height: 48px; padding: .7rem .85rem; font: inherit; font-size: 1rem; color: var(--f-cream); background: var(--f-ink);
	border: 1px solid #A9B4C7; border-radius: 2px; transition: border-color .16s, box-shadow .16s;
}
.bmc-form textarea { min-height: 120px; resize: vertical; }
.bmc-form select { appearance: auto; }
.bmc-form input:focus, .bmc-form select:focus, .bmc-form textarea:focus { outline: 2px solid var(--f-cream); outline-offset: 1px; box-shadow: 0 0 0 4px var(--f-honey); border-color: var(--f-honey); }
.bmc-form [aria-invalid="true"] { border-color: var(--f-err); border-width: 2px; }
.bmc-error { color: var(--f-err); font-size: .9375rem; margin: .35rem 0 0; }
.bmc-error::before { content: "⚠ "; }          /* icon + text: meaning never relies on colour alone */
.bmc-form__summary { border: 1px solid var(--f-err); border-left-width: 4px; padding: .8rem 1rem; margin-bottom: 1.1rem; color: var(--f-cream); background: rgba(240,169,155,.08); }
.bmc-field--check { display: flex; gap: .65rem; align-items: flex-start; margin-top: 1rem; padding: .85rem 1rem; border: 1px dashed var(--f-brass); }
.bmc-field--check[hidden] { display: none; }
.bmc-field--check input { width: 22px; height: 22px; margin-top: .15rem; accent-color: var(--f-honey); flex: 0 0 22px; }
.bmc-field--check label { margin: 0; font-weight: 400; }
.bmc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bmc-form__privacy { font-size: .9375rem; color: var(--f-muted); margin: 1.25rem 0; max-width: 46rem; }
.bmc-form__privacy a { color: var(--f-honey); }
.bmc-form__submit { cursor: pointer; font-family: inherit; }
.bmc-form__submit[disabled] { opacity: .65; cursor: progress; }
.bmc-form__status { margin-top: .9rem; min-height: 1.5em; color: var(--f-cream); }
.bmc-form__done { padding: 1.5rem; border: 1px solid var(--bmc-honey, #C8A24A); color: var(--bmc-cream, #EDEBE0); }
.bmc-form__done h3 { font-family: var(--bmc-font-display, Georgia, serif); font-weight: 500; font-size: 1.8rem; margin: 0 0 .5rem; }
.bmc-form__done:focus { outline: 3px solid var(--bmc-honey, #C8A24A); outline-offset: 3px; }

.bmc-form__nojs { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid var(--bmc-brass, #C8A24A); color: var(--bmc-cream, #EDEBE0); background: rgba(200,162,74,.12); }
.bmc-form__nojs a { color: var(--bmc-honey, #C8A24A); }
