div#newsletter * {
	font-family: system-ui;
	box-sizing: border-box;
}

div#newsletter {
	min-width: 300px;
	padding: 2% 4%;
	background-color: rgb(240 240 240);
}
div#newsletter h1#newsletter-title {
	letter-spacing: 3px;
	color: rgb(1, 64, 159);
}
div#newsletter p.newsletter-text-content {
	letter-spacing: 1px;
	font-size: 1.1rem;
	color: rgb(51 51 51);
	font-weight: 400;
}

form#newsletter-form {
	width: 70%;
	margin-inline: auto;
	
	display: grid;
	grid-template-columns: 3fr 1fr;
	grid-template-areas: "email-label label-field"
					     "email-field submit-field";
	grid-column-gap: 2%;
	grid-row-gap: 5px;
}
form#newsletter-form:not(.sending) svg.sending-icon,
form#newsletter-form.sending svg.submit-icon {
	display: none;
	visibility: hidden;
}
form#newsletter-form.sending * {
	pointer-events: none;
}

@media (max-width: 1024px) {
	form#newsletter-form {
		width: 70%;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-areas: "email-label"
							 "email-field"
							 "submit-field";
		grid-row-gap: 10px;
	}
	
	form#newsletter-form .email-wrapper {
		position: default;
	}

	form#newsletter-form .email-wrapper[error-message]::after {
		content: attr(error-message);
		color: red;
		letter-spacing: 1px;
		font-family: system-ui;
		font-weight: 700;
		font-size: 1rem;
	}

	form#newsletter-form .email-wrapper[success-message]::after {

		content: attr(success-message);
		color: limegreen;
		letter-spacing: 1px;
		font-family: system-ui;
		font-weight: 700;
		font-size: 1rem;
	}
}
@media (max-width: 600px) {
	form#newsletter-form {
		width: 100%;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-areas: "email-label"
							 "email-field"
							 "submit-field";
		grid-row-gap: 10px;
	}

	form#newsletter-form .email-wrapper {
		position: default;
	}

	form#newsletter-form .email-wrapper[error-message]::after {
		content: attr(error-message);
		color: red;
		letter-spacing: 1px;
		font-family: system-ui;
		font-weight: 700;
		font-size: 1rem;
	}

	form#newsletter-form .email-wrapper[success-message]::after {

		content: attr(success-message);
		color: limegreen;
		letter-spacing: 1px;
		font-family: system-ui;
		font-weight: 700;
		font-size: 1rem;
	}
}
form#newsletter-form label[for="newsletter-email"] {
	grid-area: email-label;
	letter-spacing: 1px;
	font-weight: 700;
}
form#newsletter-form label[for="newsletter-email"] > .is-mandatory {
	color: red;
}

@media (min-width: 1024px) {
	form#newsletter-form .email-wrapper {
		grid-area: email-field;
		position: relative;
	}
	form#newsletter-form .email-wrapper[error-message]::after {
		width: 100%;
		position: absolute;
		top: calc(100% + 5px);
		left: 0;

		content: attr(error-message);
		color: red;
		letter-spacing: 1px;
		font-family: system-ui;
		font-weight: 700;
		font-size: 1rem;
	}

	form#newsletter-form .email-wrapper[success-message]::after {
		position: absolute;
		top: calc(100% + 5px);
		left: 0;

		content: attr(success-message);
		color: limegreen;
		letter-spacing: 1px;
		font-family: system-ui;
		font-weight: 700;
		font-size: 1rem;
	}
}
form#newsletter-form input#newsletter-email {
	width: 100%;
	padding: 2% 3%;
	font-size: 1rem;
	letter-spacing: 1px;
	border-radius: 3px;
	border: none;
	outline: 1px solid rgb(1 64 159);
}
form#newsletter-form input#newsletter-email:focus,
form#newsletter-form input#newsletter-email:active {
	outline-width: 2px;
}

form#newsletter-form button#newsletter-form-submit {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	gap: 3%;

	grid-area: submit-field;
	color: rgb(1 64 159);

	border: none;
	outline: 1px solid rgb(1 64 159);
	background-color: white;

	border-radius: 3px;
	font-size: 1.2rem;
	cursor: pointer;
	transition: background-color .5s, color .5s;
}
form#newsletter-form button#newsletter-form-submit:hover {
	background-color: rgb(1 64 159);
	color: white;
	transition: background-color .25s, color .25s;
}

form#newsletter-form button#newsletter-form-submit svg {
	width: 20px;
	height: 20px;
	font-size: 1.2rem;
}
form#newsletter-form button#newsletter-form-submit path {
	transition: fill .5s;
	fill: rgb(1 64 159);
}
form#newsletter-form button#newsletter-form-submit:hover path {
	fill: white;
	transition: fill .25s;
}