/**
 * RF footer: black ground, white type. Newsletter on the left and two link
 * columns (RAMSTI links, policies); then the copyright line. Colours come from
 * the global tokens, inverted locally, so the footer stays strictly black and
 * white. Mobile: newsletter first, then the two link columns side by side.
 */

.rf-footer {
	--footer-bg: var(--color-text);                  /* black */
	--footer-fg: var(--color-background);            /* white */
	--footer-fg-soft: rgb(255 255 255 / 0.7);        /* secondary text */
	--footer-rule: rgb(255 255 255 / 0.4);           /* field underline */
	--color-focus: var(--footer-fg);                 /* focus rings visible on black */

	margin-top: var(--space-section);
	padding: var(--space-2xl) var(--gutter) var(--space-m);
	background: var(--footer-bg);
	color: var(--footer-fg);
	font-size: var(--type-body-size);
	line-height: var(--type-body-leading);
}

.rf-footer ::selection {
	background: var(--footer-fg);
	color: var(--footer-bg);
}

/* ------------------------------------------------------------------ Columns */
.rf-footer__top {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-xl) var(--space-m);
	max-width: var(--layout-wide);
	margin-inline: auto;
}

.rf-footer__newsletter {
	grid-column: 1 / -1;
}

@media (min-width: 900px) {
	.rf-footer__top {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--space-2xl);
	}

	.rf-footer__newsletter {
		grid-column: auto;
		max-width: 26rem;
	}
}

.rf-footer__heading {
	margin-bottom: var(--space-xs);
	font-size: var(--type-nav-size);
	font-weight: var(--weight-regular);
	letter-spacing: 0.08em;
	line-height: 1.2;
}

.rf-footer__text,
.rf-footer__note {
	color: var(--footer-fg-soft);
}

.rf-footer__note {
	margin-top: var(--space-m);
	font-size: var(--type-caption-size);
}

.rf-footer__links {
	display: grid;
	gap: var(--space-3xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rf-footer__links a {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	color: inherit;
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
	transition: text-decoration-color var(--duration-standard) var(--ease-standard);
}

.rf-footer__links a:hover {
	text-decoration-color: currentColor;
}

/* --------------------------------------------------------------- Newsletter */
.rf-footer__form {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	margin-top: var(--space-m);
	border-bottom: 1px solid var(--footer-rule);
	transition: border-color var(--duration-fast) var(--ease-standard);
}

.rf-footer__form:focus-within {
	border-bottom-color: var(--footer-fg);
}

.rf-footer__input {
	min-height: 2.75rem;
	padding: 0 var(--space-2xs) 0 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--footer-fg);
	font-size: var(--type-body-size);
	appearance: none;
}

.rf-footer__input::placeholder {
	color: var(--footer-fg-soft);
}

.rf-footer__input:focus-visible {
	outline: none;                                    /* the underline brightens instead */
}

.rf-footer__submit {
	min-height: 2.75rem;
	padding-inline: var(--space-xs) 0;
	color: var(--footer-fg);
	font-weight: var(--weight-medium);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: var(--type-nav-size);
}

.rf-footer__submit:hover {
	text-decoration-line: underline;
	text-underline-offset: 0.35em;
}

.rf-footer__status {
	position: absolute;
	top: calc(100% + var(--space-2xs));
	left: 0;
	right: 0;
	color: var(--footer-fg-soft);
	font-size: var(--type-caption-size);
}

.rf-footer__status:empty {
	display: none;
}

/* Marketing consent under the email field. */
.rf-footer__consent {
	margin-top: var(--space-l);
	color: var(--footer-fg-soft);
	font-size: var(--type-caption-size);
	line-height: var(--type-caption-leading);
}

.rf-footer__consent a {
	color: var(--footer-fg);
	text-decoration-line: underline;
	text-underline-offset: 0.2em;
}

.rf-footer__consent a:hover {
	text-decoration-color: transparent;
}

/* ------------------------------------------------------------------ Bottom */
.rf-footer__bottom {
	display: flex;
	justify-content: flex-end;
	gap: var(--space-m);
	max-width: var(--layout-wide);
	margin: var(--space-2xl) auto 0;
	color: var(--footer-fg-soft);
	font-size: var(--type-caption-size);
	letter-spacing: var(--type-caption-tracking);
}
