/* Footer, as in the mockup: ink field, white logo, brand + four link columns, legal row. */
.site-footer {
	background: var(--ink);
	color: var(--white);
	padding-block: 3.75rem 1.75rem;
}

.site-footer__inner {
	display: flex;
	flex-direction: column;
	gap: 2.75rem;
}

.site-footer__grid {
	display: grid;
	gap: 2.25rem;
	grid-template-columns: 1.8fr repeat(4, minmax(0, 1fr));
}

.site-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-inline-size: 0;
}

.site-footer__logo {
	align-self: flex-start;
	line-height: 0;
}

.site-footer__logo img {
	inline-size: auto;
	block-size: 3.25rem;
}

.site-footer__brand p {
	max-inline-size: 20rem;
	color: var(--on-dark-muted);
	font-size: 0.90625rem;
}

.site-footer__col {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-inline-size: 0;
}

.site-footer__title {
	margin-block-end: 0.625rem;
	font-family: var(--font-display);
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--white);
}

.site-footer a {
	display: inline-flex;
	align-items: center;
	min-block-size: 2.75rem;
	color: var(--on-dark-muted);
	font-size: 0.9375rem;
	text-decoration: none;
	overflow-wrap: anywhere;
}

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

.site-footer__address {
	padding-block-start: 0.25rem;
	color: var(--on-dark-muted);
	font-size: 0.9375rem;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	padding-block-start: 1.375rem;
	border-block-start: 1px solid rgba(255, 255, 255, 0.12);
	color: #9C919F;
	font-size: 0.875rem;
}

.site-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.5rem;
}

.site-footer__legal a {
	color: var(--on-dark-muted);
	font-size: 0.875rem;
}

@media (max-width: 959px) {
	.site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 639px) {
	.site-footer__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- Footer newsletter (every page): compact title + merged email/button bar ---------- */
.footer-news {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 29rem);
	align-items: center;
	gap: 1.25rem 3rem;
	padding-block-end: 2.75rem;
	border-block-end: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-news__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--white);
}

.footer-news__text {
	margin: 0.375rem 0 0;
	font-size: 0.9375rem;
	color: var(--on-dark-muted);
}

.footer-news__form {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
}

.footer-news__row {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.375rem;
	background: var(--white);
	border-radius: calc(var(--r-btn) + 0.375rem);
}

.footer-news__row:focus-within {
	outline: 3px solid var(--accent-tint);
	outline-offset: 3px;
}

.footer-news__input {
	flex: 1 1 auto;
	min-inline-size: 0;
	min-block-size: 2.875rem;
	padding-inline: 0.875rem 0.5rem;
	font: inherit;
	font-size: 0.9375rem;
	color: var(--ink);
	background: transparent;
	border: 0;
	border-radius: var(--r-btn);
}

.footer-news__input:focus,
.footer-news__input:focus-visible {
	outline: none;
}

.footer-news .footer-news__btn {
	flex: none;
	min-block-size: 2.875rem;
	padding-inline: 1.25rem;
}

.footer-news__note {
	margin: 0;
	font-size: 0.8125rem;
	color: #9C919F;
}

.footer-news__note.is-ok {
	color: var(--white);
}

.footer-news__note.is-err {
	color: #F6B9C8;
}

@media (max-width: 767px) {
	.footer-news {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Phones: proportional like the rest of the phone layout (designed at 375px). */
@media (max-width: 639px) {
	.footer-news {
		gap: clamp(14px, 4.267vw, 20px);
		padding-block-end: clamp(28px, 8.533vw, 41px);
	}

	.footer-news__title {
		font-size: clamp(1.125rem, 5.333vw, 1.6rem);
	}

	.footer-news__text {
		font-size: clamp(0.8125rem, 3.733vw, 1.12rem);
	}

	.footer-news__row {
		gap: clamp(4px, 1.333vw, 6.4px);
		padding: clamp(4px, 1.333vw, 6.4px);
	}

	.footer-news__input,
	.footer-news .footer-news__btn {
		min-block-size: clamp(42px, 12.267vw, 58px);
		font-size: clamp(0.875rem, 4vw, 1.2rem);
	}

	.footer-news .footer-news__btn {
		padding-inline: clamp(12px, 4.267vw, 20px);
	}

	.footer-news__note {
		font-size: clamp(0.75rem, 3.467vw, 1.04rem);
	}
}

.footer-news__title { text-wrap: balance; }

/* ---------- Footer on phones: 2 x 2 link grid instead of one long column (proportional, designed at 375px) ---------- */
@media (max-width: 639px) {
	.site-footer {
		padding-block: clamp(40px, 12.8vw, 62px) clamp(20px, 6.4vw, 31px);
	}

	.site-footer__inner {
		gap: clamp(28px, 8.533vw, 41px);
	}

	.site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(24px, 7.467vw, 36px) clamp(16px, 5.333vw, 26px);
	}

	.site-footer__brand {
		grid-column: 1 / -1;
		gap: clamp(10px, 3.2vw, 15px);
	}

	.site-footer__logo img {
		block-size: clamp(40px, 11.733vw, 56px);
	}

	.site-footer__brand p {
		font-size: clamp(0.8125rem, 3.733vw, 1.12rem);
	}

	.site-footer__col {
		gap: 0;
	}

	.site-footer__title {
		margin-block-end: clamp(4px, 1.6vw, 8px);
		font-size: clamp(0.875rem, 4vw, 1.2rem);
	}

	.site-footer__col a {
		min-block-size: clamp(36px, 10.667vw, 51px);
		font-size: clamp(0.8125rem, 3.733vw, 1.12rem);
	}

	.site-footer__address {
		font-size: clamp(0.8125rem, 3.733vw, 1.12rem);
	}

	.site-footer__legal {
		flex-direction: column;
		gap: clamp(4px, 1.6vw, 8px);
		padding-block-start: clamp(16px, 4.8vw, 23px);
		font-size: clamp(0.75rem, 3.467vw, 1.04rem);
	}

	.site-footer__legal ul {
		gap: 0 clamp(16px, 5.333vw, 26px);
	}

	.site-footer__legal a {
		min-block-size: clamp(36px, 10.667vw, 51px);
		font-size: clamp(0.75rem, 3.467vw, 1.04rem);
	}
}
/* ---------- Footer on small laptops (960-1199px): brand gets its own row so the four link columns have room ---------- */
@media (min-width: 960px) and (max-width: 1199px) {
	.site-footer__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 2rem 2.25rem;
	}

	.site-footer__brand {
		grid-column: 1 / -1;
		flex-direction: row;
		align-items: center;
		gap: 1.75rem;
	}

	.site-footer__brand p {
		max-inline-size: 30rem;
	}
}

/* Keep the email address whole where the column is wide enough. */
.site-footer__col a[href^="mailto:"] {
	overflow-wrap: normal;
	word-break: normal;
}

@media (max-width: 359px) {
	.site-footer__col a[href^="mailto:"] {
		overflow-wrap: anywhere;
	}
}