/**
 * Site-wide primary buttons — match Join the Fleet CTA (#007aff pill + hover lift).
 */

:root,
html.onduty-theme-light,
html.onduty-theme-dark {
	--od-btn-primary-bg: #007aff;
	--od-btn-primary-bg-hover: #0066d6;
	--od-btn-primary-text: #ffffff;
	--od-btn-primary-radius: 35px;
	--od-btn-primary-fw: 600;
	--od-btn-primary-transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

/* ── Shared primary surface ───────────────────────────────────── */

.onduty-btn--primary,
a.next-btn.onduty-header-cta,
a.next-btn.onduty-nav-join,
.main-menu .menu-item--cta > a,
.main-menu .onduty-nav-join,
a.next-btn:not(.back-btn):not(.header-login-bttn):not(.header-profile-bttn):not(.onduty-nav-login),
button.next-btn:not(.back-btn),
.login-btn:not(.onduty-send-login-otp-btn),
.register-btn,
.wizard-btn-wrapper a.next-btn,
.wizard-btn-wrapper button.next-btn,
.field-btn-wrapper .next-btn,
.field-btn-wrapper .login-btn,
.field-btn-wrapper .register-btn,
.onduty-auth-card .login-btn.next-btn,
.onduty-auth-card .register-btn.next-btn,
.onduty-auth-card .wpforms-submit,
.onduty-verify-otp-btn,
.onduty-hp-btn--primary,
.onduty-hp-btn.onduty-btn--primary,
body.onduty-hp-active .onduty-hp a.next-btn.onduty-hp-btn--primary,
.onduty-hr-btn--approve,
#onduty-hr-save-details,
.onduty-hr-expiry__save,
#onduty-hr-confirm-ok,
.onduty-hr-confirm__actions .onduty-hr-btn:not(.onduty-hr-btn--ghost),
button.wpforms-submit,
.wpforms-container button[type="submit"],
.wpforms-container .wpforms-page-next,
.wpforms-container .wpforms-page-button.wpforms-page-next,
body form#wpforms-form-112 button#wpforms-submit-112,
body.page-id-500 form#wpforms-form-496 .wpforms-submit,
body.page-id-500 form#wpforms-form-496 button#wpforms-submit-496,
.page-template-profile-php .od-profile-stammblatt-form button.wpforms-submit,
.page-template-profile-php .od-profile-stammblatt-form .wpforms-page-button.wpforms-page-next,
body .site-header-primary-section-right .ast-builder-layout-element.ast-flex.site-header-focus-item.ast-header-html-2 a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 4px;
	background: var(--od-btn-primary-bg) !important;
	color: var(--od-btn-primary-text) !important;
	border: none !important;
	border-radius: var(--od-btn-primary-radius) !important;
	box-shadow: none !important;
	font-weight: var(--od-btn-primary-fw) !important;
	font-size: 15px;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: var(--od-btn-primary-transition);
	letter-spacing: normal;
	vertical-align: middle;
}

/* ── Hover / focus ────────────────────────────────────────────── */

.onduty-btn--primary:hover:not(:disabled),
a.next-btn.onduty-header-cta:hover,
a.next-btn.onduty-nav-join:hover,
.main-menu .menu-item--cta > a:hover,
.main-menu .onduty-nav-join:hover,
a.next-btn:not(.back-btn):not(.header-login-bttn):not(.header-profile-bttn):not(.onduty-nav-login):hover,
button.next-btn:not(.back-btn):hover:not(:disabled),
.login-btn:not(.onduty-send-login-otp-btn):hover:not(:disabled),
.register-btn:hover:not(:disabled),
.wizard-btn-wrapper a.next-btn:hover,
.wizard-btn-wrapper button.next-btn:hover:not(:disabled),
.field-btn-wrapper .next-btn:hover:not(:disabled),
.onduty-auth-card .login-btn.next-btn:hover:not(:disabled),
.onduty-auth-card .register-btn.next-btn:hover:not(:disabled),
.onduty-auth-card .wpforms-submit:hover,
.onduty-verify-otp-btn:hover:not(:disabled),
.onduty-hp-btn--primary:hover,
body.onduty-hp-active .onduty-hp a.next-btn.onduty-hp-btn--primary:hover,
.onduty-hr-btn--approve:hover:not(:disabled),
#onduty-hr-save-details:hover:not(:disabled),
.onduty-hr-expiry__save:hover:not(:disabled),
#onduty-hr-confirm-ok:hover:not(:disabled),
.onduty-hr-confirm__actions .onduty-hr-btn:not(.onduty-hr-btn--ghost):hover:not(:disabled),
button.wpforms-submit:hover,
.wpforms-container button[type="submit"]:hover,
.wpforms-container .wpforms-page-next:hover,
.page-template-profile-php .od-profile-stammblatt-form button.wpforms-submit:hover,
body form#wpforms-form-112 button#wpforms-submit-112:hover,
body.page-id-500 form#wpforms-form-496 .wpforms-submit:hover,
body .site-header-primary-section-right .ast-builder-layout-element.ast-flex.site-header-focus-item.ast-header-html-2 a:hover {
	background: var(--od-btn-primary-bg-hover) !important;
	color: var(--od-btn-primary-text) !important;
	transform: translateY(-1px);
	box-shadow: none !important;
}

.onduty-btn--primary:focus-visible,
a.next-btn:focus-visible,
button.next-btn:focus-visible,
.login-btn:focus-visible,
.register-btn:focus-visible,
.onduty-verify-otp-btn:focus-visible,
.onduty-hr-btn--approve:focus-visible,
#onduty-hr-save-details:focus-visible,
.onduty-hr-expiry__save:focus-visible,
button.wpforms-submit:focus-visible {
	outline: 2px solid rgba(0, 122, 255, 0.45);
	outline-offset: 2px;
}

/* ── Label colors inside primary buttons ─────────────────────── */

.onduty-btn--primary span,
a.next-btn:not(.back-btn):not(.header-login-bttn):not(.header-profile-bttn) span,
button.next-btn:not(.back-btn) span,
.login-btn span,
.register-btn span,
.wizard-btn-wrapper a span,
.onduty-hp-btn--primary span,
.onduty-hr-btn--approve,
#onduty-hr-save-details,
.onduty-hr-expiry__save,
#onduty-hr-confirm-ok,
button.wpforms-submit,
.page-template-profile-php .od-profile-stammblatt-form button.wpforms-submit {
	color: var(--od-btn-primary-text) !important;
}

/* ── Disabled ─────────────────────────────────────────────────── */

button.next-btn:disabled,
.login-btn:disabled,
.register-btn:disabled,
.onduty-verify-otp-btn:disabled,
.onduty-hr-btn:disabled,
button.wpforms-submit:disabled,
.onduty-hr-expiry__save:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none !important;
}

/* ── Loading spinner (same as auth login/register) ─────────────── */

button.next-btn.is-loading,
.login-btn.is-loading,
.register-btn.is-loading,
.onduty-verify-otp-btn.is-loading,
.onduty-hr-btn.is-loading,
button.wpforms-submit.is-loading,
.onduty-hr-expiry__save.is-loading {
	position: relative;
	color: transparent !important;
	pointer-events: none;
}

button.next-btn.is-loading::after,
.login-btn.is-loading::after,
.register-btn.is-loading::after,
.onduty-verify-otp-btn.is-loading::after,
.onduty-hr-btn.is-loading::after,
button.wpforms-submit.is-loading::after,
.onduty-hr-expiry__save.is-loading::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: ondutyPrimaryBtnSpin 0.65s linear infinite;
}

@keyframes ondutyPrimaryBtnSpin {
	to {
		transform: rotate(360deg);
	}
}

/* ── Layout tweaks for full-width auth / form submits ─────────── */

.onduty-auth-card .login-btn.next-btn,
.onduty-auth-card .register-btn.next-btn,
.onduty-auth-card .wpforms-submit {
	width: 100%;
	max-width: 320px;
	min-height: 50px;
	margin: 8px auto 0;
	display: flex !important;
	font-size: 16px;
}

.page-template-profile-php .od-profile-stammblatt-form button.wpforms-submit,
.page-template-profile-php .od-profile-stammblatt-form .wpforms-page-button.wpforms-page-next {
	min-width: 220px;
	padding: 14px 2.5rem !important;
	font-size: 1rem !important;
}

.onduty-hr-btn--approve,
#onduty-hr-save-details,
.onduty-hr-expiry__save,
#onduty-hr-confirm-ok {
	border-radius: var(--od-btn-primary-radius) !important;
}

.onduty-hr-btn--approve {
	box-shadow: none !important;
}

@media (max-width: 900px) {
	a.next-btn.onduty-header-cta {
		padding: 8px 14px !important;
		font-size: 13px !important;
	}
}
