/* =============================================================================
   Buttons — Primary / Secondary / Amber CTA
   Applied via .wt-btn to native buttons, links, and Elementor button widgets.
   ========================================================================== */

.wt-btn,
.elementor-button.wt-btn-primary,
.elementor-button.wt-btn-secondary,
.elementor-button.wt-btn-amber {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wt-stack-sm);
	padding: 16px 32px;
	font-family: var(--wt-font-body);
	font-size: var(--wt-fs-body-md);
	font-weight: var(--wt-fw-bold);
	line-height: 1;
	border-radius: var(--wt-radius-xl);
	border: 0;
	cursor: pointer;
	text-decoration: none;
	transition: all var(--wt-transition-base);
	white-space: nowrap;
	-webkit-appearance: none;
	appearance: none;
}

/* Primary — Royal Blue solid */
.wt-btn-primary,
.elementor-button.wt-btn-primary {
	background: var(--wt-primary);
	color: var(--wt-on-primary);
}
.wt-btn-primary:hover,
.elementor-button.wt-btn-primary:hover {
	background: var(--wt-primary-container);
	color: var(--wt-on-primary);
	transform: translateY(-2px);
	box-shadow: var(--wt-shadow-primary);
}
.wt-btn-primary:active,
.elementor-button.wt-btn-primary:active {
	transform: translateY(0);
}

/* Secondary — Ghost with Royal Blue border */
.wt-btn-secondary,
.elementor-button.wt-btn-secondary {
	background: transparent;
	color: var(--wt-primary);
	box-shadow: inset 0 0 0 1.5px var(--wt-primary);
}
.wt-btn-secondary:hover,
.elementor-button.wt-btn-secondary:hover {
	background: rgba(0, 40, 142, 0.05);
	color: var(--wt-primary);
}

/* Amber CTA — high-conversion */
.wt-btn-amber,
.elementor-button.wt-btn-amber {
	background: var(--wt-amber);
	color: #0F172A;
}
.wt-btn-amber:hover,
.elementor-button.wt-btn-amber:hover {
	background: var(--wt-tertiary-fixed-dim);
	color: #0F172A;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(255, 169, 41, 0.28);
}

/* Ghost on dark bg — clean outline that fills on hover */
.wt-btn-ghost-light {
	background: transparent;
	color: #ffffff;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.65);
}
.wt-btn-ghost-light:hover {
	background: #ffffff;
	color: #00288e;
	box-shadow: inset 0 0 0 1.5px #ffffff;
	transform: translateY(-2px);
}

/* Pill — rounded-full for header CTAs */
.wt-btn-pill,
.elementor-button.wt-btn-pill {
	border-radius: var(--wt-radius-full);
	padding: 12px 28px;
}

/* Small */
.wt-btn-sm {
	padding: 10px 20px;
	font-size: 14px;
}

/* Icon-in-button */
.wt-btn .material-symbols-outlined,
.wt-btn .wt-icon {
	font-size: 20px;
}

/* Focus ring — WCAG 2.2 AA */
.wt-btn:focus-visible,
.elementor-button:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: var(--wt-focus-ring-width) solid var(--wt-focus-ring-color);
	outline-offset: var(--wt-focus-ring-offset);
	border-radius: var(--wt-radius-md);
}

/* Disabled */
.wt-btn:disabled,
.wt-btn[aria-disabled="true"] {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none !important;
	box-shadow: none !important;
}
