﻿/**
 * 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(182 154 90 / 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(182 154 90 / 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 variant. CF7 wraps each control in a span and adds its own
   response/spinner elements; keep the same single compact row as the native form. */
.pl-newsletter--cf7 .wpcf7 { width: 100%; }
.pl-newsletter--cf7 .wpcf7 form { display: flex; flex-direction: column; gap: 0.5rem; }
.pl-newsletter--cf7 .wpcf7 .pl-newsletter__row { margin: 0; }
.pl-newsletter--cf7 .wpcf7 .wpcf7-form-control-wrap { flex: 1; min-width: 0; display: block; }

.pl-newsletter--cf7 .wpcf7 .pl-input {
	width: 100%;
	padding: 0.5rem 0.875rem;
	font-size: var(--pl-fs-sm);
}

.pl-newsletter--cf7 .wpcf7 .wpcf7-submit { flex: none; margin: 0; cursor: pointer; }
.pl-newsletter--cf7 .wpcf7 .wpcf7-submit:disabled { opacity: 0.6; cursor: not-allowed; }

/* Spinner would push the button out of the row; sit it under the field instead. */
.pl-newsletter--cf7 .wpcf7 .wpcf7-spinner { position: absolute; margin: 0.375rem 0 0; }
.pl-newsletter--cf7 .wpcf7 .pl-newsletter__row { position: relative; }

.pl-newsletter--cf7 .wpcf7 .wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.25rem;
	font-size: var(--pl-fs-xs);
	font-weight: 600;
	color: var(--pl-sale);
}

.pl-newsletter--cf7 .wpcf7 .wpcf7-not-valid { border-color: var(--pl-sale); }

.pl-newsletter--cf7 .wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--pl-border-light);
	border-radius: var(--pl-radius-sm);
	font-size: var(--pl-fs-xs);
	line-height: 1.4;
	max-width: 22rem;
}

.pl-newsletter--cf7 .wpcf7 form.sent .wpcf7-response-output {
	border-color: #86efac;
	background: #f0fdf4;
	color: #166534;
}

.pl-newsletter--cf7 .wpcf7 form.invalid .wpcf7-response-output,
.pl-newsletter--cf7 .wpcf7 form.failed .wpcf7-response-output,
.pl-newsletter--cf7 .wpcf7 form.aborted .wpcf7-response-output {
	border-color: #fecaca;
	background: #fef2f2;
	color: #991b1b;
}

/* CF7 is dequeued on pages without a form; the footer is on every page. */
.pl-newsletter--cf7 .wpcf7 form.init .wpcf7-response-output { 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;
	}
}
