/**
 * Dawnsol — unified button system (.btn, .btn-primary, .btn-secondary).
 */

.btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--dawnsol-btn-padding-y, 0.9rem) var(--dawnsol-btn-padding-x, 1.75rem);
	border: 1px solid transparent;
	border-radius: var(--dawnsol-btn-radius, 999px);
	font-family: inherit;
	font-size: var(--dawnsol-btn-font-size, 0.98rem);
	font-weight: var(--dawnsol-btn-font-weight, 700);
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.3s ease 0.08s,
		border-color 0.35s ease,
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.btn:focus-visible {
	outline: 2px solid var(--dawnsol-color-green-light, #3ecf9a);
	outline-offset: 3px;
}

/* Base + hover layers (white base must sit above z-index:-1 fill) */
.btn-primary::after,
.site .btn-secondary::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	border-radius: inherit;
	transition: opacity 0.35s ease;
}

.btn-primary::before,
.site .btn-secondary::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	clip-path: circle(0% at 0% 100%);
	transition: clip-path 0.55s cubic-bezier(0.33, 1, 0.68, 1);
}

.btn-primary::before {
	background: var(
		--dawnsol-btn-primary-hover-fill,
		linear-gradient(135deg, #2f8364 0%, #06140f 100%)
	);
}

.btn-primary::after {
	background-color: #fff;
	opacity: 1;
}

.site .btn-secondary::before {
	background: linear-gradient(
		135deg,
		rgba(62, 207, 154, 0.95) 0%,
		rgba(47, 131, 100, 0.92) 100%
	);
}

.site .btn-secondary::after {
	background-color: rgba(255, 255, 255, 0.92);
}

/* Primary wrap — label pill flush against arrow circle */
.dawnsol-btn-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0;
	text-decoration: none;
	color: inherit;
}

.dawnsol-btn-wrap--static {
	cursor: default;
}

/* CF7 submit — one button so label + arrow are both clickable */
button.dawnsol-btn-wrap {
	padding: 0;
	border: none;
	background: transparent;
	font: inherit;
	color: inherit;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	text-align: inherit;
}

button.dawnsol-btn-wrap .dawnsol-btn-wrap__label,
button.dawnsol-btn-wrap .dawnsol-btn-wrap__icon {
	pointer-events: none;
}

button.dawnsol-btn-wrap:focus-visible {
	outline: 2px solid var(--dawnsol-color-green-light, #3ecf9a);
	outline-offset: 4px;
	border-radius: 999px;
}

.dawnsol-btn-wrap__icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-left: -1px;
	border-radius: 50%;
	background: var(--dawnsol-color-green, #2f8364);
	color: #fff;
	box-shadow: 0 8px 22px rgba(47, 131, 100, 0.28);
	transition:
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		background-color 0.35s ease,
		color 0.35s ease,
		box-shadow 0.35s ease;
}

.dawnsol-btn-wrap__icon svg {
	display: block;
}

.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__icon,
.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__icon {
	background: var(--dawnsol-color-green-dark, #06140f);
	color: #fff;
	box-shadow: 0 12px 28px rgba(6, 20, 15, 0.28);
	transform: translate(3px, -3px);
}

/* Primary label — corner ripple on hover */
.btn-primary,
.dawnsol-btn-wrap__label.btn-primary {
	color: var(--dawnsol-btn-primary-color, #06140f);
	border-color: rgba(47, 131, 100, 0.22);
	box-shadow:
		0 8px 24px rgba(47, 131, 100, 0.12),
		inset 0 0 0 1px rgba(255, 255, 255, 0.85);
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.2s ease,
		border-color 0.35s ease,
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__label.btn-primary,
.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__label.btn-primary,
.btn-primary:hover,
.btn-primary:focus-visible {
	color: #fff;
	border-color: var(--dawnsol-color-green-dark, #06140f);
	box-shadow:
		0 14px 36px rgba(6, 20, 15, 0.22),
		inset 0 1px 0 rgba(255, 255, 255, 0.12);
	transform: translateY(-2px);
	transition:
		transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.2s ease 0.22s,
		border-color 0.35s ease,
		box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__label.btn-primary::after,
.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__label.btn-primary::after,
.btn-primary:hover::after,
.btn-primary:focus-visible::after {
	opacity: 0;
}

.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__label.btn-primary::before,
.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__label.btn-primary::before,
.btn-primary:hover::before,
.btn-primary:focus-visible::before {
	clip-path: circle(150% at 0% 100%);
}

/* Secondary — glass + corner ripple */
.site .btn-secondary {
	color: var(--dawnsol-color-green-dark, #06140f);
	border-color: rgba(47, 131, 100, 0.2);
	box-shadow: 0 6px 18px rgba(6, 20, 15, 0.06);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.site .btn-secondary:hover,
.site .btn-secondary:focus-visible {
	color: #fff;
	border-color: var(--dawnsol-color-green, #2f8364);
	box-shadow: 0 12px 30px rgba(47, 131, 100, 0.22);
	transform: translateY(-2px);
}

.site .btn-secondary:hover::before,
.site .btn-secondary:focus-visible::before {
	clip-path: circle(150% at 0% 100%);
}

/* Dark sections — secondary on hero/CTA */
.dawnsol-main-hero .btn-secondary,
.dawnsol-final-cta .btn-secondary {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.24);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.dawnsol-main-hero .btn-secondary::after,
.dawnsol-final-cta .btn-secondary::after {
	background-color: rgba(255, 255, 255, 0.08);
}

.dawnsol-main-hero .btn-secondary::before,
.dawnsol-final-cta .btn-secondary::before {
	background: linear-gradient(
		135deg,
		rgba(62, 207, 154, 0.95) 0%,
		rgba(47, 131, 100, 0.9) 100%
	);
}

@media (max-width: 640px) {
	.btn {
		min-height: 44px;
	}

	.dawnsol-btn-wrap__icon {
		width: 2.75rem;
		height: 2.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.btn,
	.btn-primary::before,
	.site .btn-secondary::before,
	.dawnsol-btn-wrap__icon {
		transition: none;
	}

	.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__label.btn-primary,
	.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__label.btn-primary,
	.btn-primary:hover,
	.btn-primary:focus-visible,
	.site .btn-secondary:hover,
	.site .btn-secondary:focus-visible {
		transform: none;
	}

	.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__icon,
	.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__icon {
		transform: none;
	}

	.dawnsol-btn-wrap:hover .dawnsol-btn-wrap__label.btn-primary::before,
	.dawnsol-btn-wrap:focus-visible .dawnsol-btn-wrap__label.btn-primary::before,
	.btn-primary:hover::before,
	.btn-primary:focus-visible::before,
	.site .btn-secondary:hover::before,
	.site .btn-secondary:focus-visible::before {
		clip-path: circle(150% at 0% 100%);
	}
}
