/* Components: buttons, cards, icons, links, menu toggle, notes, empty states */

/* ---------- Buttons ---------- */
.baa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .7rem 1.4rem;
	border: 2px solid transparent;
	border-radius: var(--baa-radius-sm);
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s var(--baa-ease), color .2s var(--baa-ease), border-color .2s var(--baa-ease);
}
.baa-btn .baa-i { width: 1.15em; height: 1.15em; flex: none; }
.baa-btn--lg { padding: .85rem 1.75rem; font-size: var(--baa-fs-lg); }
.baa-btn--sm { padding: .5rem 1rem; font-size: var(--baa-fs-sm); }

.baa-btn--primary { background: var(--baa-red); color: #fff; }
.baa-btn--primary:hover { background: var(--baa-red-700); color: #fff; }

.baa-btn--gold { background: var(--baa-gold); color: var(--baa-green); }
.baa-btn--gold:hover { background: #fff; color: var(--baa-green); }

.baa-btn--outline-light { border-color: rgba(255, 255, 255, .7); color: #fff; }
.baa-btn--outline-light:hover { background: #fff; color: var(--baa-green); border-color: #fff; }

.baa-btn--solid { background: var(--baa-green); color: #fff; }
.baa-btn--solid:hover { background: var(--baa-green-700); color: #fff; }

.baa-btn--outline { border-color: var(--baa-green); color: var(--baa-green); background: transparent; }
.baa-btn--outline:hover { background: var(--baa-green); color: #fff; }

.baa-btn-row { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.75rem; }
.baa-btn-row .baa-btn { width: 100%; }   /* full width on mobile */

/* ---------- Mobile menu toggle ---------- */
.baa-nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	background: var(--baa-white);
	border: 1px solid var(--baa-line);
	border-radius: var(--baa-radius-sm);
	color: var(--baa-green);
	cursor: pointer;
	flex: none;
}
.baa-nav-toggle__bars { position: relative; display: block; width: 1.25rem; height: 1rem; }
.baa-nav-toggle__bars span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .25s var(--baa-ease), opacity .2s;
}
.baa-nav-toggle__bars span:nth-child(1) { top: 0; }
.baa-nav-toggle__bars span:nth-child(2) { top: 7px; }
.baa-nav-toggle__bars span:nth-child(3) { top: 14px; }
.baa-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.baa-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.baa-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Icons ---------- */
.baa-i { display: inline-block; width: 1.25rem; height: 1.25rem; flex: none; vertical-align: middle; }

.baa-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 12px;
	background: var(--baa-green);
	color: var(--baa-gold);
}
.baa-icon .baa-i { width: 1.5rem; height: 1.5rem; }

/* ---------- Cards ---------- */
.baa-card {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: var(--baa-white);
	border: 1px solid var(--baa-line);
	border-radius: var(--baa-radius);
	box-shadow: var(--baa-shadow);
	transition: border-color .2s var(--baa-ease);
}
.baa-card:hover, .baa-card:focus-within { border-color: var(--baa-gold); }
.baa-card__title { font-size: var(--baa-fs-h3); margin: .35rem 0 0; }
.baa-card__title a { color: inherit; text-decoration: none; }
.baa-card__title a:hover { color: var(--baa-red); }
.baa-card__text { margin: 0; color: var(--baa-muted); }
.baa-card__meta { margin: 0; font-size: var(--baa-fs-sm); color: var(--baa-muted); display: flex; align-items: center; gap: .4rem; }
.baa-card__meta--soft { font-style: normal; }
.baa-card__meta .baa-i { width: 1rem; height: 1rem; }
.baa-card__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; padding-top: .75rem; }

/* ---------- Section headings ---------- */
.baa-section-head { max-width: 44rem; margin-bottom: clamp(1.5rem, 4vw, 2.5rem); }
.baa-section-head__title {
	position: relative;
	margin: 0 0 .5rem;
	padding-top: 1rem;
	font-size: var(--baa-fs-h2);
}
.baa-section-head__title::before {   /* gold rule: the single brand accent for headings */
	content: "";
	position: absolute;
	top: 0;
	inset-inline-start: 0;
	width: 3rem;
	height: 3px;
	background: var(--baa-gold);
	border-radius: 3px;
}
.baa-section-head__title--sm { font-size: 1.375rem; margin: 0; }
.baa-section-head__text { margin: 0; color: var(--baa-muted); font-size: var(--baa-fs-lg); }

/* ---------- Misc ---------- */
.baa-link { display: inline-flex; align-items: center; gap: .15rem; font-weight: 600; text-decoration: none; }
.baa-link:hover { text-decoration: underline; }
.baa-link .baa-i { width: 1.1rem; height: 1.1rem; }

.baa-note {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	margin: 0;
	padding: 1rem 1.15rem;
	background: var(--baa-gold-50);
	border-inline-start: 4px solid var(--baa-gold);
	border-radius: var(--baa-radius-sm);
	color: var(--baa-dark);
}
.baa-note .baa-i { margin-top: .35rem; color: var(--baa-green); }

.baa-empty {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin: 0;
	padding: 1.25rem;
	background: var(--baa-bg);
	border: 1px dashed var(--baa-line);
	border-radius: var(--baa-radius);
	color: var(--baa-muted);
}

/* Pagination (WordPress core markup) */
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: 2rem; }
.pagination .page-numbers { padding: .45rem .9rem; border: 1px solid var(--baa-line); border-radius: var(--baa-radius-sm); background: #fff; text-decoration: none; }
.pagination .page-numbers.current { background: var(--baa-green); color: #fff; border-color: var(--baa-green); }
