/**
 * Design System — Buttons
 * Primary (rose gradient) · Secondary (sage outline) · Outline · Ghost · WhatsApp
 */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 28px;
	min-height: 48px;
	border-radius: var(--tolin-radius-pill);
	font-family: var(--tolin-font-sans);
	font-size: var(--tolin-text-sm);
	font-weight: 600;
	letter-spacing: 0.03em;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition:
		background var(--tolin-duration) var(--tolin-ease),
		color var(--tolin-duration) var(--tolin-ease),
		border-color var(--tolin-duration) var(--tolin-ease),
		box-shadow var(--tolin-duration) var(--tolin-ease),
		transform var(--tolin-duration) var(--tolin-ease),
		filter var(--tolin-duration) var(--tolin-ease);
}

.btn:focus-visible {
	outline: 2px solid var(--tolin-rose);
	outline-offset: 3px;
}

.btn:hover {
	transform: translateY(-1px);
}

.btn:active {
	transform: translateY(0);
}

/* Primary — rose gradient */
.btn--primary {
	background: linear-gradient(135deg, #D86F8E 0%, #A85F72 55%, #F28C9F 100%);
	color: #FFFDFC;
	box-shadow: 0 12px 32px rgba(216, 111, 142, 0.32);
}

.btn--primary:hover,
.btn--primary:focus-visible {
	background: linear-gradient(135deg, #A85F72 0%, #874A5D 100%);
	color: #FFFDFC;
	box-shadow: 0 16px 40px rgba(168, 95, 114, 0.38);
	transform: translateY(-2px);
}

/* Secondary — white + warm sage outline (never a green primary CTA) */
.btn--secondary {
	background: #FFFFFF;
	color: #5D7360;
	border-color: #5D7360;
	box-shadow: 0 8px 24px rgba(93, 115, 96, 0.08);
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
	background: #5D7360;
	border-color: #5D7360;
	color: #FFFFFF;
	box-shadow: 0 14px 34px rgba(93, 115, 96, 0.22);
	transform: translateY(-2px);
	filter: none;
	outline-color: #5D7360;
}

/* Outline — sage luxury stroke (pairs with secondary system) */
.btn--outline {
	background: #FFFFFF;
	border-color: #5D7360;
	color: #5D7360;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.btn--outline:hover,
.btn--outline:focus-visible {
	background: #5D7360;
	border-color: #5D7360;
	color: #FFFFFF;
	box-shadow: 0 12px 30px rgba(93, 115, 96, 0.2);
	outline-color: #5D7360;
}

/* Ghost */
.btn--ghost {
	background: var(--tolin-rose-soft);
	color: var(--tolin-rose);
	border-color: transparent;
}

.btn--ghost:hover {
	background: #ead5d8;
}

/* Ghost on light photography / pearl hero */
.btn--ghost-light {
	background: rgba(255, 253, 252, 0.92);
	border-color: rgba(168, 95, 114, 0.45);
	color: #874A5D;
}

.btn--ghost-light:hover,
.btn--ghost-light:focus-visible {
	background: #FFFFFF;
	border-color: #A85F72;
	color: #A85F72;
	box-shadow: 0 10px 28px rgba(216, 111, 142, 0.16);
}

/* Link */
.btn--link {
	background: none;
	border: none;
	color: var(--tolin-rose);
	padding: 8px 0;
	min-height: 0;
	box-shadow: none;
	border-radius: 0;
}

.btn--link:hover {
	transform: none;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.btn--danger {
	background: transparent;
	color: var(--tolin-danger);
	border: none;
	padding: 8px 12px;
	min-height: 0;
}

.btn--sm {
	padding: 10px 20px;
	min-height: 40px;
	font-size: 13px;
}

.btn--lg {
	padding: 17px 34px;
	min-height: 54px;
	font-size: 15px;
}

.btn--block {
	width: 100%;
}

.btn--icon {
	width: 48px;
	height: 48px;
	min-height: 48px;
	padding: 0;
	border-radius: 50%;
}

.btn:disabled,
.btn.is-disabled {
	opacity: 0.5;
	pointer-events: none;
}

.btn--whatsapp {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 26px;
	min-height: 48px;
	border-radius: var(--tolin-radius-pill);
	background: var(--tolin-whatsapp);
	color: #fff !important;
	font-weight: 600;
	border: none;
	box-shadow: 0 10px 28px rgba(47, 158, 91, 0.22);
}

.btn--whatsapp:hover {
	filter: brightness(1.05);
	color: #fff;
}
