/* ============================================================
 * Gravity Forms — Dark / Brand Blue Theme
 *
 * Apply by adding the class "gform-dark-theme" to the parent
 * container (e.g. an Elementor section or container).
 *
 * Works with Gravity Forms 2.5+ Orbital theme.
 * Uses high-specificity selectors to override GF's inline
 * CSS custom properties (which use ID + attribute selectors).
 * ============================================================ */

/* ── Override GF Orbital CSS Custom Properties ── */

.gform-dark-theme .gform_wrapper.gform-theme,
.gform-dark-theme .gform_wrapper[data-form-theme] {
	--gf-color-primary: #ffffff !important;
	--gf-color-primary-rgb: 255, 255, 255 !important;
	--gf-color-out-ctrl-dark: #ffffff !important;
	--gf-color-out-ctrl-dark-rgb: 255, 255, 255 !important;
	--gf-color-out-ctrl-dark-darker: #ffffff !important;
	--gf-color-out-ctrl-dark-lighter: rgba(255, 255, 255, 0.7) !important;
	--gf-color-out-ctrl-light: rgba(255, 255, 255, 0.4) !important;
	--gf-color-out-ctrl-light-rgb: 255, 255, 255 !important;
	--gf-color-out-ctrl-light-darker: rgba(255, 255, 255, 0.5) !important;
	--gf-ctrl-label-color-primary: #ffffff !important;
	--gf-ctrl-label-color-secondary: #ffffff !important;
	--gf-ctrl-border-color: rgba(255, 255, 255, 0.5) !important;
	--gf-color-in-ctrl: transparent !important;
	--gf-color-in-ctrl-rgb: 255, 255, 255 !important;
	--gf-color-in-ctrl-contrast: #ffffff !important;
	--gf-color-in-ctrl-contrast-rgb: 255, 255, 255 !important;
	--gf-color-in-ctrl-primary: #ffffff !important;
	--gf-color-in-ctrl-primary-rgb: 255, 255, 255 !important;
	--gf-color-in-ctrl-dark: rgba(255, 255, 255, 0.7) !important;
	--gf-color-in-ctrl-dark-darker: #ffffff !important;
	--gf-color-in-ctrl-dark-lighter: rgba(255, 255, 255, 0.5) !important;
	--gf-color-in-ctrl-light: rgba(255, 255, 255, 0.3) !important;
	--gf-color-in-ctrl-light-darker: rgba(255, 255, 255, 0.5) !important;
	--gf-color-secondary: transparent !important;
	--gf-color-secondary-contrast: #ffffff !important;
	--gf-ctrl-btn-border-color-secondary: #ffffff !important;
	--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='white'/%3E%3C/svg%3E") !important;
}

/* ── Base reset ── */

.gform-dark-theme .gform_wrapper,
.gform-dark-theme .gform_wrapper input,
.gform-dark-theme .gform_wrapper select,
.gform-dark-theme .gform_wrapper textarea,
.gform-dark-theme .gform_wrapper button,
.gform-dark-theme .gform_wrapper label,
.gform-dark-theme .gform_wrapper legend {
	font-family: inherit !important;
}

.gform-dark-theme .gform_wrapper {
	color: #ffffff;
}

.gform-dark-theme .gform_wrapper *,
.gform-dark-theme .gform_wrapper *::before,
.gform-dark-theme .gform_wrapper *::after {
	border-color: rgba(255, 255, 255, 0.4);
}

/* ── Title ── */

.gform-dark-theme .gform_wrapper .gform_title {
	color: #ffffff !important;
	font-size: 2rem;
	font-weight: 300;
	margin-bottom: 1.5rem;
}

.gform-dark-theme .gform_wrapper .gform_description {
	color: rgba(255, 255, 255, 0.8) !important;
}

/* ── Labels ── */

.gform-dark-theme .gform_wrapper .gfield_label,
.gform-dark-theme .gform_wrapper .gfield_label_before_complex,
.gform-dark-theme .gform_wrapper .gform-field-label:not(.gfield_consent_label) {
	color: #ffffff !important;
	font-weight: 400 !important;
	font-size: 1.1875rem !important;
	opacity: 1 !important;
}

/* Hide labels when using placeholders (add "hidden_label" in GF field settings) */
.gform-dark-theme .gform_wrapper .hidden_label .gfield_label,
.gform-dark-theme .gform_wrapper .hidden_label > .gform-field-label {
	display: none !important;
}

/* ── Text inputs, email, phone, etc. ── */

.gform-dark-theme .gform_wrapper input[type="text"],
.gform-dark-theme .gform_wrapper input[type="email"],
.gform-dark-theme .gform_wrapper input[type="tel"],
.gform-dark-theme .gform_wrapper input[type="url"],
.gform-dark-theme .gform_wrapper input[type="number"],
.gform-dark-theme .gform_wrapper input[type="password"],
.gform-dark-theme .gform_wrapper select {
	background: transparent !important;
	border: none !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.5) !important;
	border-radius: 0 !important;
	color: #ffffff !important;
	font-size: 1.1875rem !important;
	font-weight: 300 !important;
	padding: 0.75rem 0 !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.3s ease;
}

.gform-dark-theme .gform_wrapper input[type="text"]:focus,
.gform-dark-theme .gform_wrapper input[type="email"]:focus,
.gform-dark-theme .gform_wrapper input[type="tel"]:focus,
.gform-dark-theme .gform_wrapper input[type="url"]:focus,
.gform-dark-theme .gform_wrapper input[type="number"]:focus,
.gform-dark-theme .gform_wrapper input[type="password"]:focus,
.gform-dark-theme .gform_wrapper select:focus {
	border-bottom-color: #ffffff !important;
}

/* ── Placeholders ── */

.gform-dark-theme .gform_wrapper ::placeholder {
	color: #ffffff !important;
	opacity: 1 !important;
	font-weight: 300 !important;
	font-size: 1.1875rem !important;
}

.gform-dark-theme .gform_wrapper ::-webkit-input-placeholder {
	color: rgba(255, 255, 255, 0.85) !important;
}

/* ── Textarea ── */

.gform-dark-theme .gform_wrapper textarea {
	background: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.5) !important;
	border-radius: 6px !important;
	color: #ffffff !important;
	font-size: 1.1875rem !important;
	font-weight: 300 !important;
	padding: 0.875rem 1rem !important;
	outline: none !important;
	box-shadow: none !important;
	min-height: 180px;
	resize: vertical;
	transition: border-color 0.3s ease;
}

.gform-dark-theme .gform_wrapper textarea:focus {
	border-color: #ffffff !important;
}

/* ── Radio buttons ── */

.gform-dark-theme .gform_wrapper .gfield_radio {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem 2rem;
}

.gform-dark-theme .gform_wrapper .gfield_radio .gchoice {
	display: flex !important;
	align-items: center;
	gap: 0.75rem;
}

.gform-dark-theme .gform_wrapper .gfield_radio input[type="radio"] {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	border: 1.5px solid rgba(255, 255, 255, 0.6) !important;
	border-radius: 50% !important;
	background: transparent !important;
	cursor: pointer;
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	transition: border-color 0.2s ease;
}

.gform-dark-theme .gform_wrapper .gfield_radio input[type="radio"]:checked {
	border-color: #ffffff !important;
}

.gform-dark-theme .gform_wrapper .gfield_radio input[type="radio"]:checked::after {
	content: '' !important;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #ffffff !important;
}

.gform-dark-theme .gform_wrapper .gfield_radio label {
	color: #ffffff !important;
	font-size: 1.1875rem !important;
	font-weight: 300 !important;
	cursor: pointer;
	margin: 0;
	padding: 0;
}

/* ── Checkboxes ── */

.gform-dark-theme .gform_wrapper .gfield_checkbox {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem 2rem;
}

.gform-dark-theme .gform_wrapper .gfield_checkbox .gchoice {
	display: flex !important;
	align-items: flex-start;
	gap: 0.75rem;
}

.gform-dark-theme .gform_wrapper input[type="checkbox"] {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	border: 1.5px solid rgba(255, 255, 255, 0.6) !important;
	border-radius: 4px !important;
	background: transparent !important;
	cursor: pointer;
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.gform-dark-theme .gform_wrapper input[type="checkbox"]:checked {
	border-color: #ffffff !important;
	background: rgba(255, 255, 255, 0.15) !important;
}

.gform-dark-theme .gform_wrapper input[type="checkbox"]:checked::after {
	content: '' !important;
	position: absolute;
	top: 3px;
	left: 7px;
	width: 6px;
	height: 11px;
	border: solid #ffffff !important;
	border-width: 0 2px 2px 0 !important;
	transform: rotate(45deg);
	background: transparent !important;
}

.gform-dark-theme .gform_wrapper .gfield_checkbox label,
.gform-dark-theme .gform_wrapper .gfield_checkbox .gform-field-label {
	color: #ffffff !important;
	font-size: 1.1875rem !important;
	font-weight: 300 !important;
	line-height: 1.5;
	margin: 0;
}

/* ── Consent field ── */

.gform-dark-theme .gform_wrapper .gfield_consent > legend.gfield_label {
	display: none !important;
}

.gform-dark-theme .gform_wrapper .gfield_consent .ginput_container_consent {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	gap: 1rem !important;
}

.gform-dark-theme .gform_wrapper .gfield_consent .ginput_container_consent input[type="hidden"] {
	display: none !important;
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
}

.gform-dark-theme .gform_wrapper .gfield_consent .ginput_container_consent > input[type="checkbox"] {
	flex-shrink: 0 !important;
	margin-top: -1px !important;
}

.gform-dark-theme .gform_wrapper .gfield_consent .gfield_consent_label,
.gform-dark-theme .gform_wrapper .gfield_consent label.gform-field-label,
.gform-dark-theme .gform_wrapper .gfield_consent .gform-field-label--type-inline,
.gform-dark-theme .gform_wrapper .gfield--type-consent label.gform-field-label.gform-field-label--type-inline.gfield_consent_label {
	flex: 1 !important;
	color: #ffffff !important;
	font-size: 16px !important;
	font-weight: 300 !important;
	line-height: 1.5 !important;
}

.gform-dark-theme .gform_wrapper .gfield_consent_label a {
	color: #ffffff !important;
	text-decoration: none !important;
	border-bottom: 1px solid #ffffff !important;
	padding-bottom: 1px;
}

/* ── Consent description / Privacy box ── */

.gform-dark-theme .gform_wrapper .gfield_consent_description {
	border: 1px solid rgba(255, 255, 255, 0.4) !important;
	border-radius: 8px !important;
	background: transparent !important;
	color: rgba(255, 255, 255, 0.75) !important;
	font-size: 0.8125rem !important;
	font-weight: 300 !important;
	line-height: 1.6;
	padding: 1rem 1.25rem;
	max-height: 200px;
	overflow-y: auto;
	margin-top: 0.75rem;
}

.gform-dark-theme .gform_wrapper .gfield_consent_description::-webkit-scrollbar {
	width: 6px;
}

.gform-dark-theme .gform_wrapper .gfield_consent_description::-webkit-scrollbar-track {
	background: transparent;
}

.gform-dark-theme .gform_wrapper .gfield_consent_description::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.3);
	border-radius: 3px;
}

/* ── Section headings ── */

.gform-dark-theme .gform_wrapper .gsection {
	border-bottom-color: rgba(255, 255, 255, 0.2) !important;
}

.gform-dark-theme .gform_wrapper .gsection_title {
	color: #ffffff !important;
}

.gform-dark-theme .gform_wrapper .gsection_description {
	color: rgba(255, 255, 255, 0.7) !important;
}

/* ── Required indicator ── */

.gform-dark-theme .gform_wrapper .gfield_required,
.gform-dark-theme .gform_wrapper .gfield_required_text {
	display: none !important;
}

/* ── Field descriptions & character count ── */

.gform-dark-theme .gform_wrapper .gfield_description:not(.validation_message),
.gform-dark-theme .gform_wrapper .charleft,
.gform-dark-theme .gform_wrapper .ginput_counter {
	color: rgba(255, 255, 255, 0.5) !important;
	font-size: 0.8125rem !important;
}

/* ── Select dropdown ── */

.gform-dark-theme .gform_wrapper select {
	padding-right: 24px !important;
}

/* ── Submit button ── */

.gform-dark-theme .gform_wrapper .gform_button,
.gform-dark-theme .gform_wrapper input[type="submit"],
.gform-dark-theme .gform_wrapper button[type="submit"],
.gform-dark-theme .gform_wrapper .gform_next_button {
	background: #ffffff !important;
	color: #2F31FC !important;
	border: 2px solid #ffffff !important;
	border-radius: 50px !important;
	padding: 0.75rem 3rem !important;
	font-size: 1.25rem !important;
	font-weight: var(--e-global-typography-text-font-weight) !important;
	font-family: var(--e-global-typography-text-font-family), Sans-serif !important;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
	box-shadow: none !important;
	text-transform: none;
	line-height: 1;
}

.gform-dark-theme .gform_wrapper .gform_button:hover,
.gform-dark-theme .gform_wrapper input[type="submit"]:hover,
.gform-dark-theme .gform_wrapper button[type="submit"]:hover {
	background: transparent !important;
	color: #ffffff !important;
}

.gform-dark-theme .gform_wrapper .gform_button:active,
.gform-dark-theme .gform_wrapper input[type="submit"]:active,
.gform-dark-theme .gform_wrapper button[type="submit"]:active {
	transform: scale(0.98);
}

/* ── Validation / errors — field level ── */

.gform-dark-theme .gform_wrapper .gfield_error input,
.gform-dark-theme .gform_wrapper .gfield_error textarea {
	border-color: #ffb3b3 !important;
}

.gform-dark-theme .gform_wrapper .gfield_error .gfield_label,
.gform-dark-theme .gform_wrapper .gfield_error .gform-field-label {
	color: #ffb3b3 !important;
}

.gform-dark-theme .gform_wrapper .validation_message,
.gform-dark-theme .gform_wrapper .gfield_description.validation_message,
.gform-dark-theme .gform_wrapper .gfield_validation_message {
	color: #ffb3b3 !important;
	font-size: 0.8125rem !important;
	padding-top: 0.25rem;
}

/* ── Validation / errors — top-level error box ── */

.gform-dark-theme .gform_validation_errors {
	background: rgba(255, 255, 255, 0.08) !important;
	border: 1.5px solid rgba(255, 255, 255, 0.35) !important;
	border-radius: 8px !important;
	color: #ffffff !important;
	padding: 1.25rem 1.5rem !important;
	box-shadow: none !important;
}

.gform-dark-theme .gform_validation_errors h2,
.gform-dark-theme .gform_validation_errors h2.gform_submission_error {
	color: #ffffff !important;
	font-weight: 400 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 0 0.75rem 0 !important;
}

.gform-dark-theme .gform_validation_errors .gform-icon,
.gform-dark-theme .gform_validation_errors .gform-icon--circle-error {
	color: #ffffff !important;
	fill: #ffffff !important;
}

.gform-dark-theme .gform_validation_errors ol,
.gform-dark-theme .gform_validation_errors ul {
	margin: 0 !important;
	padding-left: 1.25rem !important;
}

.gform-dark-theme .gform_validation_errors li {
	color: rgba(255, 255, 255, 0.85) !important;
}

.gform-dark-theme .gform_validation_errors li::marker {
	color: rgba(255, 255, 255, 0.5) !important;
}

.gform-dark-theme .gform_validation_errors a,
.gform-dark-theme .gform_validation_errors a.gform_validation_error_link {
	color: rgba(255, 255, 255, 0.85) !important;
	text-decoration: underline !important;
	text-underline-offset: 0.15em;
}

/* ── Confirmation message ── */

.gform-dark-theme .gform_confirmation_message {
	color: #ffffff !important;
	font-family: inherit !important;
	font-size: 1.375rem !important;
	font-weight: 300 !important;
	line-height: 1.6 !important;
	background: rgba(255, 255, 255, 0.08) !important;
	border: 1.5px solid rgba(255, 255, 255, 0.25) !important;
	border-radius: 10px !important;
	padding: 2rem 2.5rem !important;
	text-align: center;
}

.gform-dark-theme .gform_confirmation_message a {
	color: #ffffff !important;
	text-decoration: underline !important;
	text-underline-offset: 0.15em;
}

/* ── Spacing overrides ── */

.gform-dark-theme .gform_wrapper .gform_fields {
	gap: 1.5rem 2rem !important;
}

.gform-dark-theme .gform_wrapper .gfield {
	margin-bottom: 0 !important;
	padding: 0 !important;
}

/* ── File upload ── */

.gform-dark-theme .gform_wrapper .gform_fileupload_rules,
.gform-dark-theme .gform_wrapper .gform_drop_area {
	color: rgba(255, 255, 255, 0.6) !important;
	border-color: rgba(255, 255, 255, 0.3) !important;
}

/* ── Hide Gravity Forms defaults we don't need ── */

.gform-dark-theme .gform_wrapper .gform_required_legend {
	display: none !important;
}

/* ── Responsive: single column radios & checkboxes on mobile ── */

@media (max-width: 767px) {
	.gform-dark-theme .gform_wrapper .gfield_radio,
	.gform-dark-theme .gform_wrapper .gfield_checkbox {
		grid-template-columns: 1fr !important;
	}
}
