/*
 * Button component system.
 *
 * NEW as of Sprint 7 — this was a documented gap (PROJECT_SPEC.md §7.2:
 * "Not yet formalized as a component"). Existing hand-styled buttons
 * (.search-form button, .newsletter-form button, .share-buttons__btn,
 * .back-to-top, .menu-toggle) are DELIBERATELY NOT retrofitted to these
 * classes this sprint — each already has a shipped, approved visual
 * treatment, and swapping their markup to use .btn* classes would touch
 * six already-approved template files for a purely internal naming
 * change, which is exactly the kind of risk "maintain current
 * appearance / no visual regression" rules out. This component is
 * available for new buttons Sprint 8+ introduces (Theme Options screens,
 * future CTAs) without carrying that retrofit risk.
 *
 * @package TFGadgets
 */

.btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-2);
	font-family:var(--font-mono);
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.06em;
	padding:11px 20px;
	border:1px solid var(--accent);
	background:var(--accent);
	color:var(--bg);
	cursor:pointer;
	transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
}
.btn:hover{ background:var(--accent-soft); border-color:var(--accent-soft); }

.btn--outline{
	background:transparent;
	border-color:var(--line-strong);
	color:var(--text-muted);
}
.btn--outline:hover{ border-color:var(--accent); color:var(--accent); background:transparent; }

.btn--ghost{
	background:transparent;
	border-color:transparent;
	color:var(--text-muted);
	padding-left:var(--space-2);
	padding-right:var(--space-2);
}
.btn--ghost:hover{ color:var(--accent); background:transparent; }

.btn--icon{
	padding:0;
	width:38px;
	height:38px;
	flex:none;
}

.btn--small{ padding:8px 14px; font-size:11px; }
.btn--full{ width:100%; }

.btn:disabled,
.btn[aria-disabled="true"]{
	opacity:.5;
	cursor:not-allowed;
	pointer-events:none;
}
