/**
 * Trust strip, footer columns, newsletter, legal bar.
 */

/* ---- trust strip ---- */

.pl-trust {
	border-top: 1px solid var(--pl-border-light);
	background: var(--pl-bg-white);
	padding-block: var(--pl-space-8);
}

.pl-trust__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--pl-space-6) var(--pl-space-4);
}

@media (min-width: 64rem) {
	.pl-trust__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.pl-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
}

/* The title and note are spans, so without this they run together on one line
   and the note wraps mid-phrase. They are meant to be stacked lines. */
.pl-trust__item > span:not(.pl-trust__icon) {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	min-width: 0;
}

.pl-trust__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: var(--pl-radius-full);
	background: rgb(216 27 96 / 0.20);
	color: var(--pl-primary-ink);
}

.pl-trust__title {
	display: block;
	font-size: var(--pl-fs-sm);
	font-weight: 700;
	line-height: 1.3;
	color: var(--pl-text-primary);
}

.pl-trust__note {
	display: block;
	font-size: var(--pl-fs-xs);
	color: var(--pl-text-muted);
	line-height: 1.4;
	text-wrap: pretty;
}

/* ---- footer ---- */

.pl-footer {
	background: var(--pl-bg-alt);
	border-top: 1px solid var(--pl-border-light);
	color: var(--pl-text-secondary);
	margin-top: var(--pl-space-16);
}

.pl-footer__main {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pl-space-8);
	padding-block: var(--pl-space-12);
}

@media (min-width: 48rem) {
	.pl-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 64rem) {
	/* Brand column is wider, then three link columns. */
	.pl-footer__main { grid-template-columns: 1.6fr 1fr 1fr 1.4fr; gap: var(--pl-space-10); }
}

.pl-footer__brand { display: flex; flex-direction: column; gap: 0.875rem; }

.pl-footer__about {
	font-size: var(--pl-fs-sm);
	line-height: 1.6;
	color: var(--pl-text-muted);
	max-width: 34ch;
}

.pl-footer__coltitle {
	margin-bottom: 0.875rem;
	font-size: var(--pl-fs-xs);
	font-weight: 800;
	letter-spacing: var(--pl-track-eyebrow);
	text-transform: uppercase;
	color: var(--pl-text-primary);
}

.pl-footer__links { display: flex; flex-direction: column; gap: 0.5rem; }

.pl-footer__links a {
	font-size: var(--pl-fs-sm);
	color: var(--pl-text-muted);
}

.pl-footer__links a:hover { color: var(--pl-primary-ink); }

/* ---- company / contact block ---- */

.pl-company {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.pl-company__name {
	font-size: var(--pl-fs-sm);
	font-weight: 800;
	letter-spacing: 0.02em;
	color: var(--pl-text-primary);
	line-height: 1.3;
}

.pl-company__list {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.pl-company__row {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: var(--pl-fs-xs);
	line-height: 1.55;
	color: var(--pl-text-muted);
}

.pl-company__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: -0.0625rem;
	border-radius: var(--pl-radius-full);
	background: rgb(216 27 96 / 0.18);
	color: var(--pl-primary-ink);
}

.pl-company__text { max-width: 32ch; }

.pl-company__link {
	color: var(--pl-text-secondary);
	font-weight: 600;
	/* Long addresses and emails must not push the column wide. */
	overflow-wrap: anywhere;
}

.pl-company__link:hover {
	color: var(--pl-primary-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Registration identifiers, shown as compact chips. */
.pl-company__ids {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.pl-company__id {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--pl-border-light);
	border-radius: var(--pl-radius-sm);
	background: var(--pl-bg-white);
	font-size: 0.6875rem;
	line-height: 1.4;
}

.pl-company__idlabel {
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pl-text-muted);
}

.pl-company__idvalue {
	font-weight: 700;
	color: var(--pl-text-primary);
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}

/* ---- newsletter ---- */

.pl-newsletter { display: flex; flex-direction: column; gap: 0.5rem; }

.pl-newsletter__label {
	font-size: var(--pl-fs-xs);
	font-weight: 700;
	color: var(--pl-text-secondary);
}

.pl-newsletter__row {
	display: flex;
	gap: 0.5rem;
	max-width: 22rem;
}

.pl-newsletter__row .pl-input {
	flex: 1;
	min-width: 0;
	padding-block: 0.5rem;
	font-size: var(--pl-fs-sm);
}

/* Contact Form 7 renders the form: its control wrapper takes the input's
   flex slot, the submit loses forms.css's top margin so it stays level with
   the input, and the response output sits under the row. The inline
   validation tip is dropped: with one field it only duplicates the response
   (and CF7 marks it aria-hidden, announcing the error elsewhere). Selectors
   are one class deeper than forms.css's so they win despite loading first. */
.pl-newsletter .pl-newsletter__row .wpcf7-form-control-wrap {
	flex: 1;
	min-width: 0;
	width: auto;
}

.pl-newsletter .pl-newsletter__row .wpcf7-submit { margin-top: 0; white-space: nowrap; }

.pl-newsletter .pl-newsletter__row .wpcf7-not-valid-tip { display: none; }

.wpcf7 form.pl-newsletter .wpcf7-response-output {
	margin: 0.25rem 0 0;
	max-width: 22rem;
	padding: 0.5rem 0.75rem;
	font-size: var(--pl-fs-xs);
}

.wpcf7 form.pl-newsletter .wpcf7-spinner { display: none; }

/* ---- legal bar ---- */

.pl-footer__bar {
	border-top: 1px solid var(--pl-border-light);
	padding-block: var(--pl-space-4);
}

.pl-footer__barinner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem var(--pl-space-4);
	font-size: var(--pl-fs-xs);
	color: var(--pl-text-muted);
}

.pl-footer__pay {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

/* ---- mobile: single column, everything centred ---- */

@media (max-width: 47.98rem) {
	.pl-footer__main {
		text-align: center;
		justify-items: center;
	}

	.pl-footer__brand,
	.pl-company,
	.pl-company__list,
	.pl-newsletter {
		align-items: center;
	}

	.pl-footer__brand .pl-logo { align-self: center; }

	.pl-footer__about { margin-inline: auto; }

	.pl-footer__links { align-items: center; }

	.pl-newsletter__row { width: 100%; margin-inline: auto; }

	.pl-company__row { justify-content: center; text-align: left; }

	.pl-company__ids { justify-content: center; }

	.pl-footer__barinner {
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}
}
