:root {

	--bg-black: #222121;
	--bg-black-light: #353535;
	--black: #0C0C0C;
	--white: #FCFCFC;
	--gold: #AE8A38;

	--font-family: "Montserrat", sans-serif;

	--transition: all 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);

}

/* GENERAL */

* {
	box-sizing: border-box;
}

html,
body {
	color: var(--white);
	background-color: var(--bg-black-light);
	font-family: var(--font-family);
	font-weight: 300;
	font-size: 14px;
	margin: 0;
}

a,
a:hover,
a:visited {
	color: inherit;
}

/* BUTTONS */

.button {
	font-family: var(--font-family);
	font-weight: 300;
	color: var(--white);
	padding: 6px 20px;
	background-color: var(--black);
	border: 1px solid var(--white);
	transition: var(--transition);
	text-transform: uppercase;
	text-decoration: none;
	width: fit-content;
}

.button:hover {
	background-color: var(--gold);
}

/* HEADER */

#header {
	position: fixed;
	left: 0;
	width: 100%;
	height: 120px;
	z-index: 100;
}

#logo {
	position: fixed;
	left: 50%;
	top: 40px;
	transform: translateX(-50%);
	z-index: 101;
	height: 40px;
}

#logo path {
	transition: fill .35s cubic-bezier(0.4, 0, 0.2, 1);
	fill: var(--white);
	/* colore di default: modifica se serve */
}

/* quando la sezione è in viewport aggiungiamo la classe 'in-view' al logo */
#logo.in-view path {
	fill: var(--black);
}

/* FONT */

b {
	font-weight: 700 !important;
}

h1,
.h1 {
	font-size: 2em;
	text-align: center;
	font-weight: 300;
	margin: 0;
}

h2,
.h2 {
	font-size: 1.5em;
	text-align: center;
	font-weight: 300;
	margin: 0;
}

h3,
.h3 {
	font-size: 1em;
	text-align: center;
	font-weight: 300;
	margin: 0;
}

p,
.p {
	margin: 0;
	font-weight: 300;
	text-align: center;
}

/* CONTENT */

.horizontal-container {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: fit-content;
}

.content {
	padding: 120px 0 40px;
	width: 100%;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	gap: 40px;
	justify-content: center;
	align-items: center;
}

section.planner-step {
	display: none;
}

section.planner-step.active {
	display: flex;
}

.text-container {
	position: relative;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 20px;
	align-content: center;
}

.elements-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	align-items: center;
	flex-grow: 1;
	align-content: center;
	width: 100%;
}

.element-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 30px;
	gap: 20px;
	border: 1px solid var(--white);
	background-color: var(--bg-black-light);
	opacity: 0.8;
	transition: var(--transition);
	cursor: default;
	color: var(--white);
	aspect-ratio: 1/1;
	flex: 0 1 250px;
	height: 250px;
}

.element-wrapper.is-filtered-out {
	display: none !important;
}

.element-wrapper:hover {
	opacity: 1;
	cursor: pointer;
	background-color: var(--black);
}

.element-wrapper.selected {
	opacity: 1;
	background-color: var(--black);
	border: 1px solid var(--gold);
}

.elements-container img {
	max-width: 90%;
	max-height: 90%;
	object-fit: contain;
	display: block;
}

.container-btn {
	display: flex;
	flex-direction: row;
	gap: 20px;
}

/* SEZIONE BIANCA */

.white {
	background-color: var(--white);
	color: var(--black);
}

.white .element-wrapper {
	border: 1px solid var(--bg-black);
	background-color: var(--white);
	color: var(--bg-black);
	aspect-ratio: unset;
	height: 300px;
}

.white .element-wrapper:hover {
	border: 1px solid var(--black);
	color: var(--black);
}
