/* BPDA Speaker Application — scoped to .bpda-sa so Divi styles don't leak in or out. */

/* Reveal: Divi section tagged `bpda-speaker-section` is hidden until a
   `bpda-speaker-trigger` button is clicked (JS adds .bpda-speaker-open). */
.bpda-speaker-section:not(.bpda-speaker-open) { display: none !important; }
.bpda-speaker-section { scroll-margin-top: 120px; } /* clear Divi's fixed header when scrolling to it */

/* A Divi button gets a pointer cursor for free; a plain row/section/module
   given this class (no longer a button) doesn't, so it's set explicitly. */
.bpda-speaker-trigger { cursor: pointer; }

.bpda-sa {
	--bpda-sa-blue: #1F2B8E;
	--bpda-sa-navy: #001C4C;
	--bpda-sa-light: #79A2E6;
	--bpda-sa-orange: #FA9B1C;
	--bpda-sa-cream: #F3EFEC;
	--bpda-sa-border: #c9c9d3;
	--bpda-sa-error: #b3261e;
	max-width: 760px;
	margin: 0 auto;
	color: #222;
	font-size: 17px;
	line-height: 1.5;
}

.bpda-sa [hidden] { display: none !important; }

.bpda-sa-section {
	border: 0;
	margin: 0 0 2em;
	padding: 0;
	min-width: 0;
}
.bpda-sa-section > legend {
	display: block;
	width: 100%;
	margin-bottom: 0.75em;
	padding-bottom: 0.35em;
	border-bottom: 2px solid var(--bpda-sa-cream);
	color: var(--bpda-sa-navy);
	font-size: 1.35em;
	font-weight: 700;
}

.bpda-sa-field {
	margin: 0 0 1.4em;
	padding: 0;
	border: 0;
	min-width: 0;
}
.bpda-sa-field > label,
.bpda-sa-field > legend {
	display: block;
	margin-bottom: 0.4em;
	padding: 0;
	font-weight: 600;
	color: var(--bpda-sa-navy);
}
.bpda-sa-field > label.bpda-sa-choice { display: flex; font-weight: 400; color: #222; }
.bpda-sa-req { color: var(--bpda-sa-error); }

.bpda-sa input[type="text"],
.bpda-sa input[type="email"],
.bpda-sa input[type="tel"],
.bpda-sa select,
.bpda-sa textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 0.65em 0.8em;
	border: 1px solid var(--bpda-sa-border);
	border-radius: 6px;
	background: #fff;
	color: #222;
	font: inherit;
}
.bpda-sa textarea { min-height: 9em; resize: vertical; }
.bpda-sa input:focus,
.bpda-sa select:focus,
.bpda-sa textarea:focus {
	outline: 3px solid var(--bpda-sa-light);
	outline-offset: 1px;
	border-color: var(--bpda-sa-blue);
}

.bpda-sa-choices { display: grid; gap: 0.45em; }
.bpda-sa-choice {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	font-weight: 400;
	cursor: pointer;
}
.bpda-sa-choice input { margin-top: 0.3em; flex: 0 0 auto; width: 1.1em; height: 1.1em; accent-color: var(--bpda-sa-blue); }

.bpda-sa-help { margin: -0.2em 0 0.5em; color: #555; font-size: 0.92em; }

.bpda-sa-wordcount { margin: 0.35em 0 0; color: #555; font-size: 0.9em; }
.bpda-sa-wordcount-warn { color: #8a4f00; }
.bpda-sa-wordcount-warn::before { content: "● "; color: var(--bpda-sa-orange); }

.bpda-sa-error { margin: 0.35em 0 0; color: var(--bpda-sa-error); font-size: 0.92em; font-weight: 600; }
.bpda-sa-error:empty { display: none; }
.bpda-sa-has-error input[type="text"],
.bpda-sa-has-error input[type="email"],
.bpda-sa-has-error input[type="tel"],
.bpda-sa-has-error select,
.bpda-sa-has-error textarea { border-color: var(--bpda-sa-error); }

.bpda-sa-button {
	display: inline-block;
	padding: 0.75em 1.8em;
	border: 0;
	border-radius: 6px;
	background: var(--bpda-sa-blue);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.bpda-sa-button:hover,
.bpda-sa-button:focus { background: var(--bpda-sa-navy); }
.bpda-sa-button[disabled] { opacity: 0.6; cursor: wait; }

.bpda-sa-link {
	margin-left: 0.5em;
	padding: 0;
	border: 0;
	background: none;
	color: var(--bpda-sa-blue);
	font: inherit;
	font-size: 0.92em;
	text-decoration: underline;
	cursor: pointer;
}

.bpda-sa-email-line { margin-bottom: 0.3em; }
.bpda-sa-required-note { margin: 0 0 1.5em; color: #555; font-size: 0.9em; }
.bpda-sa-intro { margin-bottom: 1em; }

.bpda-sa-status { margin: 0.75em 0; }
.bpda-sa-status:empty { display: none; }
.bpda-sa-status-error { color: var(--bpda-sa-error); font-weight: 600; }

.bpda-sa-done {
	padding: 1.25em 1.5em;
	border-left: 5px solid var(--bpda-sa-orange);
	background: var(--bpda-sa-cream);
	color: var(--bpda-sa-navy);
	font-size: 1.1em;
	font-weight: 600;
	outline: none;
}
.bpda-sa-done p { margin: 0; }

.bpda-sa-unavailable { padding: 1em; background: var(--bpda-sa-cream); }

/* Honeypot: off-screen, not display:none (some bots skip hidden fields). */
.bpda-sa-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
