/* Nantucket Events — 7-step submission form
   Colors and fonts inherit from the active theme.
   --e-global-color-primary resolves to Elementor's primary color when set. */

.ne-submission {
	max-width: 640px;
}

.ne-stepper {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.ne-stepper li {
	font-size: 0.85rem;
	color: inherit;
	opacity: 0.55;
	padding: 0.3rem 0.6rem;
	border-radius: 999px;
	background: rgba(0,0,0,.06);
}

.ne-stepper li.is-active {
	background: var(--e-global-color-primary, #1b3a5a);
	color: #fff;
	opacity: 1;
	font-weight: 600;
}

.ne-step h2 {
	margin-top: 0;
}

.ne-step p,
.ne-step .ne-field-group {
	margin-bottom: 1rem;
}

.ne-step label {
	display: block;
	font-size: 0.9rem;
	margin-bottom: 0.25rem;
}

.ne-step input[type="text"],
.ne-step input[type="email"],
.ne-step input[type="date"],
.ne-step input[type="time"],
.ne-step input[type="url"],
.ne-step input[type="number"],
.ne-step textarea,
.ne-step select {
	width: 100%;
	padding: 0.5rem;
	border: 1px solid rgba(0,0,0,.18);
	border-radius: 4px;
	box-sizing: border-box;
	font-family: inherit;
}

.ne-inline-check {
	display: inline-block;
	margin-right: 0.75rem;
}

.ne-conditional {
	border-left: 3px solid rgba(0,0,0,.10);
	padding-left: 1rem;
	margin: 1rem 0;
}

.ne-callout {
	background: rgba(0,0,0,.03);
	border-radius: 6px;
	padding: 0.75rem 1rem;
	font-size: 0.9rem;
	margin: 1rem 0;
}

.ne-step-nav {
	display: flex;
	gap: 0.75rem;
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(0,0,0,.10);
}

.ne-step-nav button {
	padding: 0.6rem 1.2rem;
	border-radius: 4px;
	border: 1px solid rgba(0,0,0,.18);
	background: transparent;
	cursor: pointer;
	font-family: inherit;
}

.ne-step-nav .ne-next,
.ne-step-nav .ne-submit {
	background: var(--e-global-color-primary, #1b3a5a);
	color: #fff;
	border-color: transparent;
	margin-left: auto;
}

/* Category picker */
.ne-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 0.75rem;
}

.ne-pill {
	background: rgba(0,0,0,.06);
	border-radius: 999px;
	padding: 0.25rem 0.6rem;
	font-size: 0.85rem;
}

.ne-pill-remove {
	color: #a11c1c;
	text-decoration: none;
	margin-left: 0.25rem;
}

/* Category 3-column pill grid */
.ne-cat-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.4rem;
	margin-bottom: 0.5rem;
}

@media (max-width: 480px) {
	.ne-cat-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.ne-cat-pill {
	padding: 0.35rem 0.6rem;
	border: 1px solid rgba(0,0,0,.18);
	border-radius: 999px;
	background: transparent;
	cursor: pointer;
	font-size: 0.82rem;
	font-family: inherit;
	text-align: center;
	transition: background 0.12s, border-color 0.12s, color 0.12s;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ne-cat-pill--parent {
	font-weight: 600;
}

.ne-cat-pill--child {
	font-weight: 400;
	font-size: 0.78rem;
	opacity: 0.85;
}

.ne-cat-pill:hover:not(:disabled) {
	border-color: var(--e-global-color-primary, #1b3a5a);
	color: var(--e-global-color-primary, #1b3a5a);
}

.ne-cat-pill.is-selected {
	background: var(--e-global-color-primary, #1b3a5a);
	border-color: transparent;
	color: #fff;
	opacity: 1;
}

.ne-cat-pill.is-parent-active {
	border-color: var(--e-global-color-primary, #1b3a5a);
	color: var(--e-global-color-primary, #1b3a5a);
}

.ne-cat-pill:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.ne-cat-limit-note {
	font-size: 0.82rem;
	opacity: 0.6;
	margin: 0.25rem 0 0;
}

/* Repeaters */
.ne-repeater-row {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 0.5rem;
}

.ne-repeater-row input {
	flex: 1;
}

.ne-remove-row {
	background: none;
	border: none;
	color: #a11c1c;
	cursor: pointer;
	font-size: 1rem;
}

.ne-add-row {
	background: transparent;
	border: 1px dashed rgba(0,0,0,.30);
	border-radius: 4px;
	padding: 0.4rem 0.8rem;
	cursor: pointer;
	margin-bottom: 1rem;
	font-family: inherit;
}

/* Autocomplete */
.ne-autocomplete-results {
	border: 1px solid rgba(0,0,0,.10);
	border-radius: 4px;
	margin-top: -0.5rem;
}

.ne-result {
	padding: 0.5rem;
	cursor: pointer;
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.ne-result:hover {
	background: rgba(0,0,0,.04);
}

.ne-selected-card {
	background: rgba(0,0,0,.04);
	border-radius: 6px;
	padding: 0.6rem 0.8rem;
	margin-bottom: 1rem;
}

details {
	margin-bottom: 1rem;
}

details summary {
	cursor: pointer;
}

/* Image upload */
.ne-image-upload {
	border: 1px solid rgba(0,0,0,.12);
	border-radius: 8px;
	padding: 1rem;
	margin-bottom: 1.5rem;
}

#ne-image-preview img {
	max-width: 200px;
	border-radius: 6px;
	margin-top: 0.5rem;
}

/* Review */
.ne-review-summary {
	background: rgba(0,0,0,.03);
	border-radius: 6px;
	padding: 1rem;
	margin-bottom: 1.5rem;
}

.ne-review-row {
	padding: 0.3rem 0;
	border-bottom: 1px solid rgba(0,0,0,.08);
	font-size: 0.9rem;
}

/* Payment preview box (Step 6) */
.ne-payment-preview {
	background: rgba(0,0,0,.03);
	border: 1px solid rgba(0,0,0,.10);
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}

.ne-payment-preview h3 {
	font-size: 1rem;
	margin: 0 0 0.5rem;
}

.ne-payment-amount {
	font-size: 1.2rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
}

.ne-payment-note {
	font-size: 0.85rem;
	opacity: 0.7;
	margin: 0 0 0.5rem;
}

.ne-payment-card {
	font-size: 0.85rem;
	opacity: 0.65;
	margin: 0;
}

/* Confirm checks fieldset */
.ne-confirm-checks {
	border: none;
	padding: 0;
	margin: 0 0 1.5rem;
}

.ne-confirm-checks legend {
	font-weight: 600;
	margin-bottom: 0.75rem;
	font-size: 0.9rem;
}

.ne-confirm-checks label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.6rem;
	font-size: 0.9rem;
	cursor: pointer;
}

.ne-confirm-checks input[type="checkbox"] {
	margin-top: 2px;
	flex-shrink: 0;
}

/* Submit & Pay button */
.ne-submit {
	background: var(--e-global-color-primary, #1b3a5a);
	color: #fff;
	border: none;
	padding: 0.75rem 1.5rem;
	border-radius: 6px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: opacity 0.2s;
	font-family: inherit;
}

.ne-submit:hover { opacity: 0.88; }

/* Live-edit: optional reason for the update */
.ne-update-reason-field {
	border: none;
	padding: 0;
	margin: 0 0 1.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ne-update-reason-field legend {
	font-weight: 600;
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
}

.ne-update-reason-field .ne-field-help {
	flex-basis: 100%;
	margin: 0 0 0.25rem;
	font-size: 0.85rem;
	opacity: 0.7;
}

.ne-update-reason-field select {
	flex: 0 1 220px;
}

.ne-update-reason-field input[type="text"] {
	flex: 1 1 260px;
	min-width: 0 !important;
}

/* 1.8.0 — extra dates for accounts without recurrence (billed per date) */
.ne-date-fee {
	margin-top: 8px;
	font-weight: 600;
}
.ne-date-fee:empty {
	display: none;
}
.ne-listed-dates {
	margin: 4px 0 8px 1.2em;
}
.ne-extra-dates .description a {
	margin-right: 10px;
}
.ne-payment-preview .ne-pricing-link {
	margin: 0 0 6px;
	font-size: 0.9em;
}

/* 1.10.0 — acronyms / short names in organizer & location lookups */
.ne-result__aka {
	opacity: 0.7;
	font-size: 0.9em;
}

/* ==========================================================================
   1.10.2 — Button colors that survive the theme's hover styles.

   Hello Elementor / the Elementor kit style every `button:hover` and
   `button:focus` with their accent background. Most buttons here never set
   their own hover colors, so on hover the theme background matched the text
   and the label disappeared. Every button below sets text + background for
   its normal, hover, focus and active states, with enough specificity
   (.ne-submission button.class = 0,2,1; with :hover 0,3,1) to win over
   `button:hover` (0,1,1) and `.elementor-kit-N button:hover` (0,2,1).
   ========================================================================== */

.ne-submission {
	--ne-btn-primary: var(--e-global-color-primary, #1b3a5a);
	--ne-btn-primary-text: #ffffff;
	--ne-btn-ink: #1f2933;          /* text on light buttons */
	--ne-btn-tint: rgba(0, 0, 0, 0.06);
	--ne-btn-danger: #a11c1c;
}

/* Primary: Next, Submit, Add Location / Add Organizer */
.ne-submission button.ne-next,
.ne-submission button.ne-submit,
.ne-submission button#ne-add-location-btn,
.ne-submission button#ne-add-organizer-btn {
	background: var(--ne-btn-primary);
	color: var(--ne-btn-primary-text);
	border: 1px solid transparent;
	text-decoration: none;
	box-shadow: none;
	opacity: 1;
	transition: filter 0.15s ease;
}
.ne-submission button.ne-next:hover,
.ne-submission button.ne-next:focus,
.ne-submission button.ne-next:active,
.ne-submission button.ne-submit:hover,
.ne-submission button.ne-submit:focus,
.ne-submission button.ne-submit:active,
.ne-submission button#ne-add-location-btn:hover,
.ne-submission button#ne-add-location-btn:focus,
.ne-submission button#ne-add-organizer-btn:hover,
.ne-submission button#ne-add-organizer-btn:focus {
	background: var(--ne-btn-primary);
	color: var(--ne-btn-primary-text);
	filter: brightness(0.88);      /* darker, text stays white */
	opacity: 1;
}

/* Secondary: Back, Save & Exit, + Add rows, Change */
.ne-submission button.ne-prev,
.ne-submission button.ne-save-draft,
.ne-submission button.ne-add-row,
.ne-submission button#ne-location-clear {
	background: transparent;
	color: var(--ne-btn-ink);
	text-decoration: none;
	box-shadow: none;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.ne-submission button.ne-prev,
.ne-submission button.ne-save-draft,
.ne-submission button#ne-location-clear {
	border: 1px solid rgba(0, 0, 0, 0.18);
}
.ne-submission button.ne-prev:hover,
.ne-submission button.ne-prev:focus,
.ne-submission button.ne-prev:active,
.ne-submission button.ne-save-draft:hover,
.ne-submission button.ne-save-draft:focus,
.ne-submission button.ne-save-draft:active,
.ne-submission button.ne-add-row:hover,
.ne-submission button.ne-add-row:focus,
.ne-submission button.ne-add-row:active,
.ne-submission button#ne-location-clear:hover,
.ne-submission button#ne-location-clear:focus {
	background: var(--ne-btn-tint);
	color: var(--ne-btn-ink);
	border-color: rgba(0, 0, 0, 0.35);
}

/* Remove (✕) */
.ne-submission button.ne-remove-row {
	background: transparent;
	color: var(--ne-btn-danger);
	border: none;
	box-shadow: none;
	border-radius: 4px;
	padding: 0.2rem 0.45rem;
}
.ne-submission button.ne-remove-row:hover,
.ne-submission button.ne-remove-row:focus,
.ne-submission button.ne-remove-row:active {
	background: rgba(161, 28, 28, 0.1);
	color: var(--ne-btn-danger);
}

/* Category pills */
.ne-submission button.ne-cat-pill {
	background: transparent;
	color: var(--ne-btn-ink);
	box-shadow: none;
}
.ne-submission button.ne-cat-pill:hover:not(:disabled),
.ne-submission button.ne-cat-pill:focus:not(:disabled) {
	background: var(--ne-btn-tint);
	color: var(--ne-btn-ink);
	border-color: var(--ne-btn-primary);
}
.ne-submission button.ne-cat-pill.is-parent-active {
	background: transparent;
	color: var(--ne-btn-primary);
	border-color: var(--ne-btn-primary);
}
.ne-submission button.ne-cat-pill.is-selected,
.ne-submission button.ne-cat-pill.is-selected:hover,
.ne-submission button.ne-cat-pill.is-selected:focus {
	background: var(--ne-btn-primary);
	color: var(--ne-btn-primary-text);
	border-color: transparent;
}
.ne-submission button.ne-cat-pill:disabled,
.ne-submission button.ne-cat-pill:disabled:hover {
	background: transparent;
	color: var(--ne-btn-ink);
}

/* Disabled buttons look disabled, not invisible */
.ne-submission button:disabled {
	cursor: not-allowed;
	filter: none;
}
.ne-submission button.ne-next:disabled,
.ne-submission button.ne-submit:disabled {
	opacity: 0.6;
}

/* Keyboard focus ring (the theme's background swap was the only cue) */
.ne-submission button:focus-visible {
	outline: 2px solid var(--ne-btn-primary);
	outline-offset: 2px;
}
.ne-submission button.ne-next:focus-visible,
.ne-submission button.ne-submit:focus-visible {
	outline-color: var(--ne-btn-ink);
}

/* Organizer pill "✕" is a link; keep it readable on theme link hover */
.ne-submission .ne-pill-remove,
.ne-submission .ne-pill-remove:hover,
.ne-submission .ne-pill-remove:focus {
	color: var(--ne-btn-danger);
	background: transparent;
	text-decoration: none;
}

/* 1.10.5 — image upload feedback */
#ne-image-preview .ne-image-error {
	color: #a11c1c;
	font-weight: 600;
	margin: 0.4rem 0;
}
#ne-image-preview .ne-image-ok {
	color: #1d6b2f;
	margin: 0.3rem 0 0;
	font-size: 0.9em;
}

/* 1.11.5 — image size guidance */
.ne-image-guidance {
	font-size: 0.9em;
	opacity: 0.85;
	margin: 0 0 0.5rem;
}
#ne-image-preview .ne-image-tip {
	font-size: 0.9em;
	margin: 0.4rem 0 0;
	padding: 0.5rem 0.75rem;
	border-left: 3px solid #b7791f;
	background: rgba(183, 121, 31, 0.08);
}

/* 1.12.1 — positive note for flyers */
#ne-image-preview .ne-image-note {
	font-size: 0.9em;
	margin: 0.4rem 0 0;
	color: #1d6b2f;
}

/* 1.12.2 — inline multi-date note under the tickets URL */
span.ne-callout.ne-multi-date-note {
	display: block;
	margin-top: 0.4rem;
}
span.ne-callout.ne-multi-date-note[hidden] {
	display: none;
}

/* "Did you mean…?" under + Add a new location / organizer */
.ne-submission .ne-similar {
	margin: 0.5rem 0 1rem;
	padding: 0.75rem 1rem;
	border: 1px solid #e3c766;
	border-left-width: 4px;
	border-radius: 6px;
	background: #fffaeb;
	color: var(--ne-btn-ink);
}
.ne-submission .ne-similar[hidden] { display: none; }
.ne-submission .ne-similar__title { margin: 0 0 0.4rem; }
.ne-submission .ne-similar__list { list-style: none; margin: 0; padding: 0; }
.ne-submission .ne-similar__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.4rem 0.75rem;
	padding: 0.4rem 0;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.ne-submission .ne-similar__item:first-child { border-top: none; }
.ne-submission .ne-similar__name small { color: #5f6b76; }
.ne-submission .ne-similar__why { color: #5f6b76; font-size: 0.85em; }
.ne-submission .ne-similar__hint { margin: 0.5rem 0 0; font-size: 0.85em; color: #5f6b76; }
.ne-submission button.ne-similar__use,
.ne-submission button.ne-similar__use:hover,
.ne-submission button.ne-similar__use:focus,
.ne-submission button.ne-similar__use:active {
	background: var(--ne-btn-primary);
	color: var(--ne-btn-primary-text);
	border: none;
	border-radius: 4px;
	padding: 0.3rem 0.8rem;
	font-size: 0.9em;
	white-space: nowrap;
}
.ne-submission button.ne-similar__use:hover,
.ne-submission button.ne-similar__use:focus { filter: brightness(0.88); }
.ne-submission button.ne-similar__new,
.ne-submission button.ne-similar__new:hover,
.ne-submission button.ne-similar__new:focus,
.ne-submission button.ne-similar__new:active {
	margin-top: 0.6rem;
	background: transparent;
	color: var(--ne-btn-ink);
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-radius: 4px;
	padding: 0.3rem 0.8rem;
	font-size: 0.9em;
}
.ne-submission button.ne-similar__new:hover,
.ne-submission button.ne-similar__new:focus { background: var(--ne-btn-tint); }
