:root {
	--primary-color: hsl(0, 37%, 29%);
	--primary-color-bright: hsl(360, 100%, 75%);
	--primary-color-brighter: rgb(250, 161, 161);
	--secondary-color: hsl(180, 100%, 25%);
	--secondary-color-bright: hsl(180, 72%, 45%);
	--off-white: hsl(0, 0%, 96%);
	--body-text: hsl(0, 0%, 24%);
	--dark-gray: hsl(0, 0%, 24%);
	--light-gray: hsl(0, 0%, 70%);

	--fs-400: 1rem;
	--fs-500: 1.125rem;
	--fs-600: 1.375rem;
	--fs-700: 2rem;

	--bg-img-1: url("/!assets/img/pattern-navy.png");
	--bg-img-2: url("/!assets/img/pattern-dark-stripes-light.png");

	--primary-font: "Jost", sans-serif;
	--secondary-font: "Bank Gothic Medium", sans-serif;
	--secondary-font-light: "Bank Gothic Light", sans-serif;
}

/* Box sizing rules */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role="list"],
ol[role="list"] {
	list-style: none;
}

/* Set core root defaults */
html:focus-within {
	scroll-behavior: smooth;
}

/* Set core body defaults */
body {
	min-height: 100vh;
	text-rendering: optimizeSpeed;
	line-height: 1.5;
	color: var(--body-text);
	font-size: 1.2em;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
	max-width: 100%;
	display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
	font: inherit;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* :::::::::: >>>>> END RESET*/

.lead-text {
	font-size: size 1.4rem;
}

@font-face {
	font-family: "Bank Gothic Light";
	font-style: normal;
	font-weight: normal;
	src: local("Bank Gothic Light"), url("/!assets/fonts/ufonts.com_bank-gothic-light.woff") format("woff");
	font-display: swap;
}

@font-face {
	font-family: "Bank Gothic Medium";
	font-style: normal;
	font-weight: medium;
	src: local("Bank Gothic Medium"), url("/!assets/fonts/ufonts.com_bank-gothic-medium.woff") format("woff");
	font-display: swap;
}

body {
	font-family: var(--primary-font);
	background-color: var(--off-white);
}

.lead-text {
	font-size: clamp(1.1rem, -0.0714rem + 4.7619vw, 1.5rem);
}

a {
	transition: color 0.25s linear;
	color: var(--secondary-color);
}

a:visited {
	color: var(--secondary-color);
}

a:hover {
	color: var(--secondary-color-bright);
}

.intro {
	align-items: center;
	display: grid;
	margin: 0 auto;
	padding: 20px;
	min-height: 10px;
}

a.intro-link {
	text-decoration: none;
	color: var(--primary-color);
}

.logo {
	margin: 10px 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--secondary-font-light);
	line-height: 1em;
	color: var(--dark-gray);
}

h1 {
	font-size: clamp(2.3rem, -0.0714rem + 4.7619vw, 3.1rem);
}

h1.product-title  {
	margin-top: 0em;
}

h2 {
	font-size: clamp(1.7rem, -0.0714rem + 4.7619vw, 2.5rem);
}

.product-home h2 {
	margin-top: 0.5em;
}

h3 {
	font-size: clamp(1.2rem, -0.0714rem + 4.7619vw, 1.4rem);
}

p {
	font-size: clamp(1.1rem, -0.0714rem + 4.7619vw, 1.3rem);
	hyphens: none;
	margin: 1em 0;
}

ol, ul {
	padding-left: 1rem;
}

address,
.phone p {
	font-size: clamp(1.4rem, 3vw, 1.5rem);
	margin: 0;
}

hr {
	color: hsl(0, 0%, 58%);
}

.navigation {
	background-color: var(--primary-color);
	color: var(--off-white);
	background-image: var(--bg-img-1);
	margin-bottom: 50px;
}

@media (max-width: 575px) {
	header {
		background-color: var(--dark-gray);
		margin-bottom: 0px;
	}

	.navbar-toggler {
		padding: 0.25rem 0.75rem;
		font-size: 1.25rem;
		line-height: 1;
		background-color: #772d2df7;
		border: 1px solid transparent;
		border-radius: 0.25rem;
		transition: box-shadow 0.15s ease-in-out;
		border-color: rgb(255, 255, 255);
	}

	.navbar-toggler:focus {
		text-decoration: none;
		outline: 0;
		box-shadow: 0 0 0 0.25rem;
	}
}

#home .navigation,
#product-home .navigation {
	margin-bottom: 0;
}

#home .pn {
	margin-top: 0;
}

.moto {
	background-color: var(--off-white);
	padding: 25px 15px;
}

.mobile {
	background-color: var(--primary-color);
	color: var(--off-white);
	background-image: var(--bg-img-1);
}

.mobile a {
	color: #fff;
	font-size: 0.7em;
}

.shadow-dreamy,
.MagicZoom {
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.07), 0 4px 8px rgba(0, 0, 0, 0.07), 0 8px 16px rgba(0, 0, 0, 0.07), 0 16px 32px rgba(0, 0, 0, 0.07), 0 32px 64px rgba(0, 0, 0, 0.07);
}

.navbar-dark .navbar-nav .nav-link {
	color: var(--off-white);
}

.navbar-dark .navbar-nav .nav-link:hover {
	color: var(--primary-color-bright);
}

ul.sub .nav-link {
	color: var(--off-white);
	font-size: 0.9em;
}

ul.sub {
	background-color: var(--primary-color);
	background-image: var(--bg-img-1);
	margin: 20px 0;
	border-radius: 0px;
	outline: 2px solid var(--primary-color);
	outline-offset: 3px;
}

.sub a.nav-link {
	color: var(--off-white);
}

.sub a.nav-link:hover {
	color: var(--primary-color-bright);
}

.navbar {
	font-family: var(--primary-font);
	font-size: 1.4rem;
}

.nav-item {
	margin-right: 2em;
}

.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .show > .nav-link {
	text-decoration: none;
	text-decoration-color: hsl(0, 100%, 89%);
	color: hsl(0, 100%, 89%);
}

.dropdown-menu {
	position: absolute;
	z-index: 1000;
	display: none;
	min-width: 10rem;
	padding: 0.5rem 0;
	margin: 0;
	font-size: 1.3rem;
	color: var(--off-white);
	text-align: left;
	list-style: none;
	background-color: var(--primary-color);
	background-clip: padding-box;
	border: 0px solid hsla(0, 0%, 0%, 0.15);
	border-radius: 0 0 0.5rem 0.5rem;
	background-image: var(--bg-img-1);
}

.dropdown-menu a {
	color: var(--off-white);
}

.dropdown-item {
	font-size: 0.9em;
	border-radius: 0;
}

.dropdown-item:focus,
.dropdown-item:hover {
	color: var(--primary-color);
	background-color: var(--primary-color-brighter);
}

.dropdown-item.active,
.dropdown-item:active {
	background-color: var(--primary-color-bright);
	color: var(--primary-color);
	text-decoration: none;
}

.dropdown-menu[data-bs-popper] {
	margin-top: 0.26rem;
}

.bg-image-home,
.bg-image {
	min-height: 100px;
	background-size: cover;
	background-position: 50%;
}

.bg-image {
	margin-bottom: 25px;
}

@media (min-width: 768px) {
	.bg-image-home {
		min-height: 200px;
	}
}

footer {
	align-items: stretch;
	background-color: var(--dark-gray);
	background-image: var(--bg-img-1);
	color: var(--off-white);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding-top: 50px;
}

footer h3 {
	font-family: var(--secondary-font);
	color: var(--off-white);
	margin-top: 20px;
}

footer address {
	margin-top: 20px;
}

footer .nav-link {
	padding: 0;
}

footer .nav-link.active {
	color: hsl(180, 100%, 67%);
}

footer .nav-link,
footer .nav-link:focus,
footer .nav-link:visited {
	color: var(--secondary-color-bright);
}

footer .nav-link:hover {
	color: var(--primary-color-bright);
}

main ::marker {
	color: var(--primary-color);
}

footer ::marker {
	color: var(--secondary-color);
}

footer hr {
	border-top: 1px dashed var(--off-white);
}

footer ul {
	padding-left: 0;
}

footer li {
	font-size: 1rem;
	list-style: none;
	line-height: 1.5em;
	margin-bottom: 0.5em;
}

footer a,
footer a:visited {
	text-decoration: none;
	color: var(--secondary-color-bright);
}

footer a:hover {
	color: var(--off-white);
}

footer h3 {
	margin-bottom: 0.5em;
}

footer a.tel  {
	color: var(--off-white);
}

.company-name {
	font-family: var(--secondary-font);
	font-size: 1.9em;
	line-height: 0.8em;
}

.sub-footer {
	font-size: 0.8em;
	height: 100%;
	padding-top: 25px;
	padding-bottom: 25px;
	margin-bottom: 25px;
}

.product-nav {
	font-family: var(--primary-font);
	padding: 20px 0;
	display: block;
}

.pn {
	align-items: stretch;
	background-color: var(--off-white);
	background-image: var(--bg-img-2);
	display: flex;
	flex-direction: column;
	margin-top: 50px;
	padding-bottom: 30px;
	padding-top: 15px;
}

.product-title {
	font-family: var(--secondary-font-light);
	position: relative;
	left: -5px;
}

.product-sku {
	color: hsl(0, 0%, 43%);
	padding-top: 25px;
	display: block;
	font-size: 0.9em;
	letter-spacing: 1px;
}

.product-text {
	padding-top: 5px;
	padding-right: 15px;
}

.product-description {
	margin-top: 20px;
}

/* :::::::::: >>>>> FLEXIBLE IFRAME */
.flexible-container {
	height: 0;
	overflow: hidden;
	padding-bottom: 30.25%;
	padding-bottom: 56.25%;
	padding-top: 30px;
	position: relative;
	background-color: hsl(0, 0%, 100%);
	border: 1px solid hsl(0, 0%, 74%);
}

.flexible-container iframe,
.flexible-container object,
.flexible-container embed {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.map {
	background-color: hsl(0, 0%, 100%);
	border: 1px solid hsl(0, 0%, 74%);
	padding: 10px;
}

/* :::::::::: >>>>> BEGIN GRID CARDS */

.grid-card-container {
	width: 100%;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto;
	grid-gap: 5px;
}

@media only screen and (min-width: 500px) {
	.grid-card-container {
		grid-template-columns: 1fr 1fr;
		grid-gap: 20px;
	}

	.item-1 {
		grid-column: 1 / span 1;
	}
}

@media only screen and (min-width: 850px) {
	.grid-card-container {
		grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
	}

	main .grid-card-container {
		grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
	}
}

.grid-card {
	min-height: 100%;
	background: hsl(0, 0%, 100%);
	box-shadow: 0 2px 5px hsla(0, 0%, 0%, 0.1);
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: hsl(0, 0%, 27%);
	position: relative;
	top: 0;
	transition: all 0.1s ease-in;
}

.grid-card:hover {
	top: -2px;
	box-shadow: 0 4px 5px hsla(0, 0%, 0%, 0.2);
}

h3 .grid-card:hover {
	color: var(--secondary-color-bright);
}

.grid-card article {
	padding: 10px;
	display: flex;
	flex: 1;
	flex-direction: column;
}

@media (min-width: 768px) {
	.grid-card article {
		padding: 20px;
	}
}

.grid-card .thumb {
	padding-bottom: 60%;
	background-size: cover;
	background-position: center center;
}

.grid-card p {
	flex: 1;
	/* make p grow to fill available space*/
	line-height: 1.4;
}

/* typography */
.grid-card .grid-card-header h3 {
	font-size: clamp(1rem, 5vw, 1.3rem);
	margin: 0;
	padding: 0;
	background-color: hsla(0, 0%, 0%, 0);
	border-bottom: none;
	font-family: var(--secondary-font);
	line-height: 1em;
	letter-spacing: -1px;
}

.grid-card:hover .grid-card-header h3 {
	color: var(--secondary-color-bright);
}

.grid-card:hover {
	color: var(--secondary-color);
}

.grid-card span {
	font-size: 12px;
	font-weight: bold;
	color: hsl(0, 0%, 60%);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 2em 0 0 0;
}

.mz-figure img:focus {
	border: 1px dotted #ccc;
}

/* :::::::::: >>>>> END GRID CARDS */

/* :::::::::: >>>>> VERTICAL OFFSETS */
.voffset {
	margin-top: 2px;
}

.voffset1 {
	margin-top: 5px;
}

.voffset2 {
	margin-top: 10px;
}

.voffset3 {
	margin-top: 15px;
}

.voffset4 {
	margin-top: 30px;
}

.voffset5 {
	margin-top: 40px;
}

.voffset6 {
	margin-top: 60px;
}

.voffset7 {
	margin-top: 80px;
}

.voffset8 {
	margin-top: 100px;
}

.voffset9 {
	margin-top: 150px;
}

@media (min-width: 768px) {
	.row.equal {
		display: flex;
	}
}

.v-equal {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.v-center {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
}
