/**
 * Newsletter band — Forminator form (boarding-pass ticket styling).
 * Scoped to .cfd-newsletter-band .cfd-forminator-newsletter
 * Uses !important where Forminator injects inline defaults.
 *
 * @package Cleared_For_Departure_Kadence
 */

/* ─── Form column (grid third cell — matches .newsletter-band__inner) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter,
.cfd-newsletter-band .newsletter-band__form.cfd-forminator-newsletter {
	min-width: 0;
	width: 100%;
	max-width: 420px;
	justify-self: end;
	align-self: center;
}

.cfd-newsletter-band .cfd-forminator-newsletter--unavailable {
	border: 1px dashed var(--cfd-border, #d8d2c5);
	padding: 16px;
	background: var(--cfd-cream, #f9f8f4);
}

.cfd-newsletter-band .cfd-forminator-newsletter__notice {
	margin: 0;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif);
	font-size: 13px;
	line-height: 1.5;
	color: var(--cfd-muted, #6b6558);
}

/* ─── Hide "Edit form" on front end for visitors ─── */

body:not(.logged-in) .cfd-newsletter-band .cfd-forminator-newsletter .forminator-edit-link {
	display: none !important;
}

body.logged-in .cfd-newsletter-band .cfd-forminator-newsletter .forminator-edit-link {
	display: block;
	margin: 8px 0 0;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	text-decoration: none;
	color: var(--cfd-muted, #6b6558);
	opacity: 0.75;
}

body.logged-in .cfd-newsletter-band .cfd-forminator-newsletter .forminator-edit-link:hover {
	color: var(--cfd-accent, #a8322d);
	opacity: 1;
}

/* ─── Forminator UI shell (no white cards / shadows) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-ui,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-custom-form,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-poll,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-pagination-steps {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-row,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-col {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* ─── Ticket kicker label (above field in email column) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-label {
	display: block !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	font-style: normal !important;
	line-height: 1.3 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--cfd-accent, #a8322d) !important;
	background: transparent !important;
	border: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-label .forminator-required {
	color: var(--cfd-muted, #6b6558) !important;
	font-weight: 600 !important;
}

/* Visually hide label when Forminator duplicates placeholder (opt-in class on wrapper) */
.cfd-newsletter-band .cfd-forminator-newsletter--label-hidden .forminator-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-description {
	grid-column: 1 / -1 !important;
	padding: 0 12px 4px !important;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-error-message {
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field .forminator-error-message:not([style*="display: none"]) {
	color: var(--cfd-accent, #a8322d) !important;
}

/* ─── Ticket row: CSS grid — label / input+submit / error (submit aligns to input only) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter {
	--cfd-form-input-min-height: 44px;
}

.cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-custom-form--default,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-custom-form--load {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	grid-template-areas:
		"label label"
		"email submit"
		"error error" !important;
	align-items: start !important;
	gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	border: 1px solid var(--cfd-border, #d8d2c5) !important;
	border-radius: 0 !important;
	background: var(--cfd-cream-alt, #f5f2eb) !important;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	box-shadow: none !important;
	overflow: visible !important;
}

.cfd-ticket-notches-on .cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form {
	position: relative;
}

.cfd-ticket-notches-on .cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form::before,
.cfd-ticket-notches-on .cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 8px;
	height: 16px;
	margin-top: -8px;
	background: var(--cfd-page-bg, #f5f2ed);
	border: 1px solid var(--cfd-border, #d8d2c5);
	border-radius: 50%;
	pointer-events: none;
	z-index: 1;
}

.cfd-ticket-notches-on .cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form::before {
	left: -5px;
	border-right-color: transparent;
}

.cfd-ticket-notches-on .cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form::after {
	right: -5px;
	border-left-color: transparent;
}

/* Flatten row/col/field wrappers so label, input, error, submit are grid children */
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-row,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-row-last,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-col,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text {
	display: contents !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-label {
	grid-area: label !important;
	padding: 8px 12px 4px !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email .forminator-input--wrap,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email .forminator-field-wrap,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email .forminator-input--wrap,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email .forminator-field-wrap,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text .forminator-input--wrap,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text .forminator-field-wrap {
	grid-area: email !important;
	min-width: 0 !important;
	padding: 0 0 8px 12px !important;
	align-self: stretch !important;
	display: flex !important;
	align-items: stretch !important;
}

/* Direct input when Forminator omits a wrap element */
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email > .forminator-input,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email > input[type="email"],
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email > .forminator-input,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email > input[type="email"],
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text > .forminator-input,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text > input[type="email"] {
	grid-area: email !important;
	padding: 0 0 8px 12px !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email .forminator-error-message,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email .forminator-error-message,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text .forminator-error-message {
	grid-area: error !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 8px 12px !important;
	border-top: 1px solid var(--cfd-border, #d8d2c5) !important;
	background: rgba(168, 50, 45, 0.06) !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-submit,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--submit {
	grid-area: submit !important;
	display: flex !important;
	align-items: stretch !important;
	align-self: stretch !important;
	min-height: var(--cfd-form-input-min-height) !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* ─── Inputs (cream ticket field — override plugin borders) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-input,
.cfd-newsletter-band .cfd-forminator-newsletter input[type="email"],
.cfd-newsletter-band .cfd-forminator-newsletter input[type="text"],
.cfd-newsletter-band .cfd-forminator-newsletter input[type="tel"],
.cfd-newsletter-band .cfd-forminator-newsletter textarea {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	width: 100% !important;
	min-height: var(--cfd-form-input-min-height) !important;
	margin: 0 !important;
	padding: 10px 14px !important;
	box-sizing: border-box !important;
	border: none !important;
	border-radius: 0 !important;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	color: var(--cfd-text, #1a1a1a) !important;
	background: transparent !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-input::placeholder,
.cfd-newsletter-band .cfd-forminator-newsletter input::placeholder,
.cfd-newsletter-band .cfd-forminator-newsletter textarea::placeholder {
	font-family: var(--cfd-serif, "Playfair Display", Georgia, serif) !important;
	font-size: 15px !important;
	font-style: italic !important;
	font-weight: 400 !important;
	color: var(--cfd-muted, #6b6558) !important;
	opacity: 1 !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-input:focus,
.cfd-newsletter-band .cfd-forminator-newsletter input:focus,
.cfd-newsletter-band .cfd-forminator-newsletter textarea:focus {
	outline: none !important;
	border: none !important;
	box-shadow: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-input:focus-visible,
.cfd-newsletter-band .cfd-forminator-newsletter input[type="email"]:focus-visible,
.cfd-newsletter-band .cfd-forminator-newsletter input[type="text"]:focus-visible {
	outline: 2px solid var(--cfd-accent, #a8322d) !important;
	outline-offset: -2px !important;
}

/* ─── Stamp-style submit (matches .search-form__submit) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button-submit,
.cfd-newsletter-band .cfd-forminator-newsletter button[type="submit"],
.cfd-newsletter-band .cfd-forminator-newsletter input[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 0 18px !important;
	min-height: var(--cfd-form-input-min-height) !important;
	height: auto !important;
	align-self: stretch !important;
	width: auto !important;
	border: none !important;
	border-left: 1px solid var(--cfd-border, #d8d2c5) !important;
	border-radius: 0 !important;
	background: var(--cfd-cream-alt, #f5f2eb) !important;
	color: var(--cfd-accent, #a8322d) !important;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	font-style: normal !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	line-height: 1.2 !important;
	cursor: pointer !important;
	box-shadow: inset 0 0 0 2px var(--cfd-accent, #a8322d) !important;
	transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button:hover,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button-submit:hover,
.cfd-newsletter-band .cfd-forminator-newsletter button[type="submit"]:hover,
.cfd-newsletter-band .cfd-forminator-newsletter input[type="submit"]:hover {
	background: var(--cfd-accent, #a8322d) !important;
	color: #fff !important;
	border-color: var(--cfd-border, #d8d2c5) !important;
	box-shadow: inset 0 0 0 2px var(--cfd-accent, #a8322d) !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button:focus-visible,
.cfd-newsletter-band .cfd-forminator-newsletter button[type="submit"]:focus-visible,
.cfd-newsletter-band .cfd-forminator-newsletter input[type="submit"]:focus-visible {
	outline: 2px solid var(--cfd-accent, #a8322d) !important;
	outline-offset: 2px !important;
}

/* Checkbox / consent (full width below ticket row) */

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-checkbox,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--checkbox,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-consent {
	grid-column: 1 / -1 !important;
	width: 100% !important;
	display: block !important;
	margin-top: 10px !important;
	padding: 0 12px 8px !important;
}

/* Ajax / server response — full width below ticket grid, not in input+submit row */
.cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form > .forminator-response-message,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-custom-form--default > .forminator-response-message,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-custom-form--load > .forminator-response-message {
	grid-column: 1 / -1 !important;
	width: 100% !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-checkbox-box {
	border-color: var(--cfd-border, #d8d2c5) !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-checkbox-box.forminator-is_checked {
	background: var(--cfd-accent, #a8322d) !important;
	border-color: var(--cfd-accent, #a8322d) !important;
}

/* ─── Success / error response messages (ticket border) ─── */

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-response-message,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-response-message.forminator-success,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-response-message.forminator-error,
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-response-message.forminator-loading {
	margin: 12px 0 0 !important;
	padding: 12px 14px !important;
	border: 1px solid var(--cfd-border, #d8d2c5) !important;
	border-radius: 0 !important;
	background: var(--cfd-cream, #f9f8f4) !important;
	font-family: var(--cfd-sans, "DM Sans", system-ui, sans-serif) !important;
	font-size: 13px !important;
	line-height: 1.45 !important;
	color: var(--cfd-text, #1a1a1a) !important;
	box-shadow: none !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-response-message.forminator-success {
	border-left: 3px solid var(--cfd-accent, #a8322d) !important;
}

.cfd-newsletter-band .cfd-forminator-newsletter .forminator-response-message.forminator-error {
	border-left: 3px solid var(--cfd-accent, #a8322d) !important;
	color: var(--cfd-accent, #a8322d) !important;
}

/* Loading spinner — tone down default Forminator chrome */
.cfd-newsletter-band .cfd-forminator-newsletter .forminator-loading {
	border: none !important;
	background: transparent !important;
}

/* ─── Tablet: full-width form column ─── */

@media (max-width: 1023px) {
	.cfd-newsletter-band .cfd-forminator-newsletter,
	.cfd-newsletter-band .newsletter-band__form.cfd-forminator-newsletter {
		max-width: 100% !important;
		justify-self: stretch !important;
	}
}

/* ─── Mobile: stacked full-width ticket ─── */

@media (max-width: 767px) {
	.cfd-newsletter-band .cfd-forminator-newsletter form.forminator-custom-form,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-custom-form--default {
		grid-template-columns: 1fr !important;
		grid-template-areas:
			"label"
			"email"
			"submit"
			"error" !important;
	}

	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-label {
		padding: 8px 12px 4px !important;
	}

	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email .forminator-input--wrap,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email .forminator-field-wrap,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email .forminator-input--wrap,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email .forminator-field-wrap,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text .forminator-input--wrap,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-text .forminator-field-wrap {
		padding: 0 12px 0 !important;
	}

	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email > .forminator-input,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-email > input[type="email"],
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email > .forminator-input,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--email > input[type="email"] {
		padding: 0 12px 0 !important;
	}

	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field-submit,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-field--submit {
		min-height: 0 !important;
	}

	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-input,
	.cfd-newsletter-band .cfd-forminator-newsletter input[type="email"],
	.cfd-newsletter-band .cfd-forminator-newsletter input[type="text"] {
		width: 100% !important;
	}

	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button,
	.cfd-newsletter-band .cfd-forminator-newsletter .forminator-button-submit,
	.cfd-newsletter-band .cfd-forminator-newsletter button[type="submit"],
	.cfd-newsletter-band .cfd-forminator-newsletter input[type="submit"] {
		width: 100% !important;
		border-left: none !important;
		border-top: 1px solid var(--cfd-border, #d8d2c5) !important;
		min-height: 48px !important;
		align-self: auto !important;
	}
}
