:root {
	/* system defaults */
	--color-scheme: system-ui;
	--font-family: system-ui;

	/* tartan colorscheme */
	--cavalryblue: #0e1f33;
	--cavalryyellow: #fdb813;
	--cavalrylavender: #6678ff;
	--actionred: #c8102e;
	--aspirationgreen: #40523c;
	--honorwhite: #fff;

	/* original colorscheme */
	--bgcolor: #fff0f0;
	--link: #0000ff; 
	--vlink: #551a8b; 
	--alink: #0000ff;

	--ink: #111;
	--content-bg: #fed;
	--navbar-bg: #333;

	--alert: #991111;

	--base-font-size: clamp(0.9rem, 2vw, 1.05rem);
}

html,
body {
	font-family: var(--font-family), helvetica, sans-serif;
	color: var(--ink);
	/*background: var(--color-scheme);*/
}

h1, h2, h3 {
	font-family: "Cinzel", "Trajan Pro", "Times New Roman", serif;
	font-optical-sizing: auto;
	/*font-size: 250%;*/
	font-style: normal;
	font-weight: 700 !important; /* <weight>: Use a value from 400 to 900 */
	line-height: 1.4;
	/*text-align: center;*/
	text-wrap: balance;	
}

p {
	/*font-size: var(--base-font-size);*/
	font-weight: normal;
	color: var(--ink);
	line-height: 1.4;
	text-align: justify;
	text-align-last: left;
	text-wrap: balanced;
}

p, dl, table, .auto-grid {
	margin-bottom: 1rem !important;
}

p:last-child, dl:last-child, table:last-child {
	margin-bottom: 0;
} 

a {
	text-decoration: none !important;
	color: var(--cavalryblue);

	&:hover,
	&:focus-visible {
		color: var(--cavalryyellow);
	}
}

blockquote {
	font-family: "Tangerine", helvetica, sans-serif;
	font-size: 240% !important;
	letter-spacing: 0.02em;
}

dl {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 100px, auto;
}

dt {
	grid-column: 1;
	/*white-space: nowrap;*/
	font-weight: bold;
}

dd {
	grid-column: 2;
	margin: 0;
	clear: both;
}

figure img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	font-style: italic;
	background-repeat: no-repeat;
	background-size: cover;
	shape-margin: 0.75rem;
}

/*hr {
	height: 1px;
	width: 100%;
	margin: 0 auto 1rem auto;
}*/

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.2vw;
	left: 0.05em;
}

/* tables */
table {
	border-collapse: collapse;
}

th, td {
	font-size: var(--base-font-size);
	font-family: helvetica, sans-serif;
	line-height: 1.25;
	padding: 0.25em;
}

th {
	font-weight: bold;
	/*color: #fff;*/
	vertical-align: bottom;
}

td {
	/*text-align: justify;
	text-align-last: left;*/
	text-wrap: pretty;
}

/*
tr:nth-child(even) {
	background-color: var(--transparent);
}

tr:nth-child(odd) {
	background-color: var(--cavalrylavender);
}
*/

/*figure {
	border: 1px solid #999;
	padding: 0.5em;
	width: min-content;
}*/

figure img + figcaption {
	font-size: 80%;
	text-align: left;
	text-align-last: left;
	text-wrap: pretty;
	max-width: 200px;
}

aside figure img + figcaption {
	margin-bottom: 1rem;
}

figure.float-start, img.float-start {
	margin: 0.3rem 0.6rem 0.9rem 0;
}

figure.float-end, img.float-end {
	margin: 0.3rem 0 0.9rem 0.6rem;
}

/*.alert {
	color: var(--alert);
}*/

.hero-banner {
	background-image: url('../img/assets/masthead.webp');
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	color: transparent;
	width: 100%;
	aspect-ratio: 2 / 1;
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.carousel-caption * {
	padding: 0.5rem;
	border-radius: 0.5rem;
	color: #fff;
	background-color: rgba(0, 0, 0, 0.5);
}

ul.tartan {
	list-style-position: inside;
	list-style: none;
	padding: 0;
	margin: 0;
	/* Removes default bullets */

	li {
		display: flex;
  		align-items: center; /* Vertically centers the bullet and text perfectly */
  		gap: 10px;           /* Sets the exact spacing between bullet and text */
 		margin-bottom: 0.5rem;
	}

	li::before {
		content: "\25A0 ";	/* Unicode for bullet point */
		font-size: 1.5rem;   /* Adjusts the bullet size independently */
  		line-height: 0;      /* Prevents the bullet size from throwing off the text line-height */
	}
}

li.darkblue::before {
	color: var(--cavalryblue);
}

li.yellow::before {
	color: var(--cavalryyellow);
}

li.lavender::before {
	color: var(--cavalrylavender);
}

li.red::before {
	color: var(--actionred);
}

li.darkgreen::before {
	color: var(--aspirationgreen);
}

li.white::before {
	color: var(--honorwhite);
}

/* Remove default numbers and dots */
ol.outline,
.outline ol {
	list-style: none;
	padding-left: 0;
	margin: 0;
}

/* Setup the Article counter */
ol.outline {
	counter-reset: article-counter;
}

/* Style Article items */
ol.outline>li {
	counter-increment: article-counter;
	margin-top: 2rem;
	font-weight: bold;
	text-transform: uppercase;
}

ol.outline>li::before {
	content: "Article " counter(article-counter, upper-roman) ". ";
}

/* Setup and style Section (§ A) items */
ol.outline>li>ol {
	counter-reset: section-counter;
	padding-left: 1rem;
	text-transform: none;
}

ol.outline>li>ol>li {
	counter-increment: section-counter;
	margin-top: 1rem;
	font-weight: bold;
}

ol.outline>li>ol>li::before {
	content: "§ " counter(section-counter, decimal) ". ";
	font-weight: bold;
}

/* Setup and style Subsection (1.) items */
ol.outline>li>ol>li>ol {
	counter-reset: sub-counter;
	padding-left: 2rem;
}

ol.outline>li>ol>li>ol>li {
	counter-increment: sub-counter;
	margin-top: 1rem;
}

ol.outline>li>ol>li>ol>li::before {
	content: counter(sub-counter, lower-alpha) ". ";
	font-weight: bold;
}

/* Style the text paragraphs under titles */
ol.outline p {
	margin: 0.5rem 0 1rem 0;
	padding-left: 1.8em;
	font-weight: normal;
}

/*
		list-style-type: upper-roman;
		list-style-type: upper-alpha;
		list-style-type: decimal;
		list-style-type: lower-alpha;
		list-style-type: lower-roman;
*/

.officers table {
	width: 90%;
	border-collapse: collapse;
	margin: auto;
}

.officers table tr:first-of-type td {
	width: 30%;
	vertical-align: top;
}

.officers table td:nth-of-type(1) {
	font-weight: bold;
	width: 30%;
}

.officers dt {
	width: 100px;
}

.officers h3 {
	font-size: 120%;
}

.officers h4 {
	background-color: #0863ec;
	border-radius: 1.25rem;
	padding: 0.25rem;
	text-align: center;
	color: #fff;
}
/*
.gallery {
	outline: 1px solid #999;
	padding: 1rem;
	margin-inline: auto;
}

.gallery-slideshow {
	--gap: 1rem;
	display: grid;
	gap: var(--gap);
	grid-auto-flow: column;
	grid-auto-columns: calc(50% - (var(--gap) / 2));
	overflow-x: scroll;
	scroll-snap-type: x mandatory;
	scroll-padding: var(--gap);
}

.gallery-slideshow > * {
	scroll-snap-align: start;
}
*/

.gallery {
	display: grid;
	gap: 0.5rem;	
	grid-auto-flow: column;
}

.gallery-scroller {
	grid-auto-columns: 100%;
	overflow-x: hidden;
	scroll-behavior: smooth;
	padding: 0 3rem;
	scroll-padding-inline: 3rem;
}

.gallery img {
	max-width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0.5rem;
}

.coins td img {
	width: 120px;
}

.buckles td img {
	width: 240px;
}

.flags {
	--img-height: 144px;
	--img-width: 189px;
}

.wallpaper {
	--img-height: 164px;
	--img-width: 250px;
}

.auto-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fill, var(--img-width, 190px));
	justify-content: center;

	img {
		height: var(--img-height);
		width: var(--img-width);
	}
}

.error-border { border: 1px solid #911 !important; }

.hint { color: #911; margin-left: 0.75rem; font-weight: normal; }

button[type="submit"]:disabled { cursor: not-allowed; }

.success-msg { font-weight: bold; text-align: center; }

.error-msg { color: #911; font-weight: bold; }

aside {
	background-color: #f5fbef; 
	border-radius: 0.5rem;
}

#subscribe * {
	text-align: center;	
}

#socialmedia {
	display: flex; 
	gap: 8px; 
	flex-wrap: wrap; 
	justify-content: center;

	a {
		display: inline-flex; 
		align-items: center; 
		justify-content: center; 
		width: 32px; 
		height: 32px; 
		padding: 5px; 
		background: #0863ec; 
		border-radius: 50%; 
		color: #e5e5e5; 
		text-decoration: none;
	}
}

.socialmedia_icon {
	width: 29px; 
	height: 29px; 
	display: block; 
	fill: #e5e5e5;
}

footer, footer p, #footermenu * {
	height: auto-fill;
	color: #fff;

	a, .btn {
		color: #fff;
		text-decoration: none;

		&:hover,
		&:focus-visible {
			color: #999;
		}
	}
}

footer {
	background-color: #004dc0;
}

#footermenu {
	background-color: #0863ec;

	ul li {
		color: #000;
		border-bottom: 1px solid #999;

		&:last-child {
			border-bottom: none;
		}

		a {
			font-weight: bold;
			color: #000;
		}
	}
}
.bg-light-gradient { background: linear-gradient(145deg, #f8f9fa, #e9ecef); }
.bg-danger-soft { background-color: rgba(220, 53, 69, 0.08); }
.fs-xs { font-size: 0.75rem; }
.tracking-wide { letter-spacing: 0.05em; }
.animate-pulse { animation: pulse 2s 3; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

.criteria-list li.met { color: #198754; }
.criteria-list li.unmet { color: #6c757d; }