/* Define CSS Variables */
:root {
	--secondary-color: #0052cc;
	--brand-logo-width: 75px;
	--brand-logo-height: 75px;
	--tile-brightness: 1.0;
	--tile-color: white;
}

/* Dark mode variables */
@media (prefers-color-scheme: dark) {
	:root {
		--secondary-color: #0c6dfb;
		--tile-brightness: 0.9;
	}
}

@media (prefers-reduced-motion:no-preference) {
	:root {
		scroll-behavior: smooth
	}
}

@media (prefers-reduced-motion:reduce) {
	.collapsing {
		transition: none
	}

	.nav-link {
		transition: none
	}

	.navbar-toggler {
		transition: none
	}
}

/* Global Styles */
a {
	color: var(--secondary-color);
	text-decoration: none;
}

	a:hover {
		text-decoration: underline;
	}

/* Buttons */
button {
	background-color: var(--primary-color);
	color: white;
	padding: 0.75rem 1.5rem;
	border: none;
	border-radius: var(--border-radius-base);
	box-shadow: var(--shadow-base);
	cursor: pointer;
	transition: background-color 0.3s ease;
}

	button:hover {
		background-color: darken(var(--primary-color), 10%);
	}

.h2, h2 {
	font-size: calc(1.325rem + .9vw)
}

@media (min-width: 1200px) {
	.h2, h2 {
		font-size: 2rem
	}
}

[role=button] {
	cursor: pointer
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
	box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.fade {
	transition: opacity .15s linear
}

@media (prefers-reduced-motion:reduce) {
	.fade {
		transition: none
	}
}

.fade:not(.show) {
	opacity: 0
}

.invert-colors {
	filter: invert(0);
}

.lazy-background {
	background-size: cover;
	background-position: center;
}

.tile {
	color: var(--tile-color);
	cursor: pointer;
	filter: var(--tile-brightness);
	margin: calc((var(--brand-logo-height) / 2)) calc(var(--spacing-base) / 2);
}

/* Dark Mode Styles */
@media (prefers-color-scheme: dark) {
	body {
		background-color: var(--background-color);
	}

	.section {
		background-color: #37474f;
		box-shadow: none;
	}

	button {
		background-color: var(--secondary-color);
	}

	.invert-colors {
		filter: invert(1);
	}
}

	.home-page-container .content h1 {
		color: var(--primary-color);
	}

	.home-page-container .our-mission,
	.home-page-container .data-protection,
	.home-page-container .our-brands,
	.home-page-container .contact-us,
	.home-page-container .about-us {
		background-color: unset;
	}

		.home-page-container .our-mission::before {
			background: url('/img/our-mission-background.webp') no-repeat center center/cover;
			border-radius: var(--border-radius-base);
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			z-index: -1;
		}

		.home-page-container .data-protection::before {
			background: url('/img/data-protection-background.webp') no-repeat center center/cover;
			border-radius: var(--border-radius-base);
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			z-index: -1;
		}

	.home-page-container .our-brands {
		display: flex;
		flex-direction: column;
	}

		.home-page-container .our-brands::before {
			background: url('/img/our-brands-background.webp') no-repeat center center/cover;
			border-radius: var(--border-radius-base);
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			z-index: -1;
		}

		.home-page-container .our-brands h1:first-of-type {
			float: left;
			margin-right: var(--spacing-base);
		}

	.home-page-container .contact-us::before {
		background: url('/img/contact-us-background-right.webp') no-repeat center center/cover;
		border-radius: var(--border-radius-base);
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: -1;
	}

	.home-page-container .about-us::before {
		background: url('/img/about-us-background.webp') no-repeat center center/cover;
		border-radius: var(--border-radius-base);
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: -1;
	}

	.home-page-container .section.our-brands .content {
		max-width: 80%;
	}

.brand-container {
	background-color: var(--background-color);
	border-radius: var(--border-radius-base);
	padding: calc(var(--spacing-base) * 2);
	width: 100%;
	clear: both; /* Ensures no floating elements are beside this container */
	margin-bottom: 20px;
}

.brand-logo.tile {
	border-radius: var(--spacing-base);
}

.brand-logo img {
	border-radius: var(--border-radius-base);
	height: auto;
	width: var(--brand-logo-width);
}

.brand-container .brand-logo img {
	float: left; /* Logo floats to the left */
	margin-right: calc(var(--spacing-base) * 2);
	width: calc(var(--brand-logo-width) * 2);
}

.home-page-container .our-brands .brand-name {
	margin-top: 0; /* Aligns with the top of the logo */
	font-size: 2em;
	color: var(--secondary-color);
	font-weight: bold;
	clear: right; /* Ensures the name appears beside the logo */
	overflow-wrap: break-word;
}

.home-page-container .our-brands .brand-description {
	font-size: 1.5em; /* Smaller size for descriptions */
	color: var(--text-color);
	/*	margin-bottom: 1rem;
	margin-right: 20px;
*/

	text-align: left;
}

	.home-page-container .our-brands .brand-description div {
		margin-bottom: calc(var(--spacing-base) * 2);
		text-align: justify;
	}

		.home-page-container .our-brands .brand-description div:last-of-type {
			margin-bottom: var(--spacing-base);
		}

/* Specific media queries for responsiveness */
@media (max-width: 768px) {
	.brand-name, .brand-description {
		float: none;
		padding-left: 0;
		text-align: center;
	}

	.home-page-container .our-brands .brand-name {
		font-size: 1.5em;
	}

	.home-page-container .our-brands .brand-description {
		font-size: 0.9em;
	}
}

@media (max-width: 480px) {
	.brand-container {
		margin: 0 calc(var(--spacing-base) / 2);
	}

	.home-page-container .section.our-brands .content {
		max-width: 100%;
	}

	.home-page-container .our-brands h1:first-of-type {
		float: none;
	}

	.home-page-container .our-brands .brand-name {
		font-size: 1em;
	}

		.home-page-container .our-brands .brand-name a {
			margin-left: calc(var(--brand-logo-width) * -1);
		}

	.brand-logo img {
		float: left;
		display: block;
		margin: auto calc(var(--spacing-base) / 2);
	}

	.brand-container .brand-logo img {
		margin: calc(var(--spacing-base) * 3) var(--spacing-base) 0 0;
		width: var(--brand-logo-width);
	}

	.tile {
		margin-bottom: var(--spacing-base);
		margin-top: var(--spacing-base);
	}

		.tile:first-child {
			margin-top: calc(var(--spacing-base) * 2.5);
		}
}

@media (max-width: 245px) {
	a.navbar-brand {
		font-size: 1em;
	}

	.home-page-container .our-brands .brand-name {
		clear: both;
		font-size: 1.2em;
		margin-top: calc(var(--spacing-base) * 2);
		word-break: break-word;
	}

		.home-page-container .our-brands .brand-name a {
			margin-left: unset;
		}

	.brand-container {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-wrap: balance;
		padding: var(--spacing-base);
	}

	.home-page-container .our-brands .brand-description div {
		text-align: center;
	}
}

@media (max-width: 180px) {
}

@media (prefers-color-scheme: dark) {
	.home-page-container .our-mission::before,
	.home-page-container .data-protection::before,
	.home-page-container .our-brands::before,
	.home-page-container .contact-us::before,
	.home-page-container .about-us::before {
		filter: brightness(0.35) contrast(1.5);
	}
}
