/* Veteran Badge — @version 1.4.0
   Based on the original ZachWheat.com footer badge. */

@font-face {
	font-family: "PVB Bebas";
	src: url("fonts/bebas-neue-latin-400-normal.woff2") format("woff2");
	font-display: swap;
}
@font-face {
	font-family: "PVB Mono";
	src: url("fonts/dm-mono-latin-500-normal.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}

.pvb {
	--pvb-accent: #f59e0b;
	--pvb-size: 54px;
	/* Automatic text colors (used when no title/subtitle color is chosen) */
	--pvb-title-auto: #e8dcc8;
	--pvb-sub-auto: #9ca3af;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 14px 4px;
	text-decoration: none !important;
	border: 0 !important;
	box-shadow: none !important;
	line-height: 1.2;
	box-sizing: border-box;
	max-width: 100%;
}
.pvb * { box-sizing: border-box; }
.pvb.pvb-on-light { --pvb-title-auto: #1f2937; --pvb-sub-auto: #4b5563; }
a.pvb:focus { outline: none; }
a.pvb:focus-visible { outline: 1px dashed var(--pvb-accent); outline-offset: 4px; }

/* Accent line on the left (from the original) */
.pvb.has-line::before {
	content: "";
	flex: none;
	width: 2px;
	height: calc(var(--pvb-size) * .78);
	border-radius: 2px;
	background: var(--pvb-accent);
	opacity: .6;
}

/* Icon: always a square */
.pvb-icon {
	flex: none;
	display: grid;
	place-items: center;
	width: var(--pvb-size);
	height: var(--pvb-size);
	color: var(--pvb-accent);
}
.pvb-icon svg,
.pvb-icon img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}
.pvb-glow-soft   .pvb-icon > * { filter: drop-shadow(0 0 6px color-mix(in srgb, var(--pvb-accent) 30%, transparent)); }
.pvb-glow-strong .pvb-icon > * { filter: drop-shadow(0 0 2px var(--pvb-accent)) drop-shadow(0 0 8px color-mix(in srgb, var(--pvb-accent) 60%, transparent)); }

/* Text */
.pvb-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pvb-label,
.pvb-title { text-transform: uppercase; line-height: 1; }
.pvb-label { font-size: 11px; letter-spacing: .18em; color: var(--pvb-accent); }
.pvb-title { font-size: 19px; letter-spacing: .08em; color: var(--pvb-title, var(--pvb-title-auto)); line-height: 1.1; }
.pvb-sub {
	margin-top: 3px;
	font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase;
	color: var(--pvb-sub, var(--pvb-sub-auto));
}
.pvb-pill {
	align-self: flex-start;
	display: inline-flex; align-items: center; gap: 5px;
	margin-top: 6px;
	padding: 3px 8px 2px;
	border: 1px solid color-mix(in srgb, var(--pvb-accent) 55%, transparent);
	border-radius: 999px;
	font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase;
	color: var(--pvb-accent);
	white-space: nowrap;
	transition: background .2s, box-shadow .2s;
}
a.pvb:hover .pvb-pill {
	background: color-mix(in srgb, var(--pvb-accent) 12%, transparent);
	box-shadow: 0 0 10px color-mix(in srgb, var(--pvb-accent) 30%, transparent);
}

.pvb.has-fonts .pvb-label,
.pvb.has-fonts .pvb-title { font-family: "PVB Bebas", "Bebas Neue", Impact, sans-serif; font-weight: 400; }
.pvb.has-fonts .pvb-label { font-size: 12px; }
.pvb.has-fonts .pvb-title { font-size: 21px; }
.pvb.has-fonts .pvb-sub,
.pvb.has-fonts .pvb-pill { font-family: "PVB Mono", "DM Mono", ui-monospace, monospace; font-weight: 500; }

/* Stacked layout: icon on top, everything centered */
.pvb-stacked { flex-direction: column; text-align: center; gap: 10px; }
.pvb-stacked .pvb-text { align-items: center; }
.pvb-stacked .pvb-pill { align-self: center; }
.pvb-stacked.has-line::before { width: calc(var(--pvb-size) * .7); height: 2px; }

/* Placement wrapper for "add to the bottom of every page" */
.pvb-footer { padding: 8px 20px 16px; }
.pvb-align-left   { text-align: left; }
.pvb-align-center { text-align: center; }
.pvb-align-right  { text-align: right; }
