/* Legal pages (agent L, 2026-10-21): .fp-bilingual = the <style> of the bilingual legal files in
   docs/requirements/legal/, ported with tokens v3 (A_DONE.md). Layout kept exactly: desktop >= 761 px two equal
   columns, 48 px gap, 1 px hairline between them, sticky "ITALIANO | ENGLISH" header; <= 760 px each row stacks
   Italian then English (English with a left hairline, slightly lighter ink), header hidden; print = two columns,
   header not sticky. Loaded only on the page-legal template (functions.php). No colour values here: tokens only. */

.fp-legal { background: var(--fp-base); color: var(--fp-ink); }
/* the one H1 of the page (page title), visually hidden: the document titles below are p.fp-bi-title */
.fp-legal .fp-legal__h1 {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.fp-legal .fp-legal__content { margin: 0; padding: 0; max-width: none; }

.fp-legal .fp-bilingual {
	--fp-legal-top: 72px; /* below the sticky site header */
	box-sizing: border-box; max-width: 1180px; margin: 0 auto; padding: 32px 16px 64px;
	font-family: var(--fp-font); font-size: 15px; line-height: 1.6; color: var(--fp-ink); background: var(--fp-base);
}
.fp-legal .fp-bilingual *, .fp-legal .fp-bilingual *::before { box-sizing: border-box; }
.fp-legal .fp-bilingual .fp-bi-note {
	font-size: 13px; color: var(--fp-text); border-top: 1px solid var(--fp-line); border-bottom: 1px solid var(--fp-line);
	padding: 10px 0; margin: 0 0 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px;
}
.fp-legal .fp-bilingual .fp-bi-head {
	position: sticky; top: var(--fp-legal-top); z-index: 2; background: var(--fp-base);
	display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; padding: 10px 0; border-bottom: 1px solid var(--fp-line-strong);
	font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--fp-text);
}
.admin-bar .fp-legal .fp-bilingual .fp-bi-head { top: calc(var(--fp-legal-top) + var(--wp-admin--admin-bar--height, 0px)); }
.fp-legal .fp-bilingual .fp-bi-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; position: relative; }
.fp-legal .fp-bilingual .fp-bi-row::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px solid var(--fp-line); }
.fp-legal .fp-bilingual .fp-bi-row > div { min-width: 0; }

/* document titles (the source <h1>s) and section headings: Instrument Sans 500 */
.fp-legal .fp-bilingual .fp-bi-title {
	font-family: var(--fp-font-head); font-weight: 500; letter-spacing: var(--fp-track-head);
	font-size: 26px; line-height: 1.25; margin: 28px 0 8px; color: var(--fp-ink);
}
.fp-legal .fp-bilingual h2 {
	font-family: var(--fp-font-head); font-weight: 500; letter-spacing: var(--fp-track-head);
	font-size: 17px; line-height: 1.35; margin: 26px 0 6px; color: var(--fp-ink);
}
.fp-legal .fp-bilingual h3 { font-family: var(--fp-font-head); font-weight: 500; font-size: 15px; line-height: 1.4; margin: 18px 0 6px; }
.fp-legal .fp-bilingual p, .fp-legal .fp-bilingual li { margin: 0 0 10px; hyphens: auto; font-size: 15px; line-height: 1.6; max-width: none; }
.fp-legal .fp-bilingual ul, .fp-legal .fp-bilingual ol { padding-left: 18px; margin: 0 0 10px; }
.fp-legal .fp-bilingual strong { font-weight: 600; }
.fp-legal .fp-bilingual a { color: var(--fp-accent-text); text-decoration: underline; text-underline-offset: 2px; }
.fp-legal .fp-bilingual table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 0 0 12px; }
.fp-legal .fp-bilingual th, .fp-legal .fp-bilingual td {
	border-top: 1px solid var(--fp-line); padding: 6px 6px 6px 0; text-align: left; vertical-align: top; font-size: 13px;
}
.fp-legal .fp-bilingual th { font-weight: 600; }
.fp-legal .fp-bilingual .fp-bi-lab { display: none; }
/* Single-language legal page (agent S, 21 Oct: /fr/credits/, /de/credits/): same type and spacing, one column,
   the Cookie Policy's 860 px measure; the note keeps its hairlines on one column. */
.fp-legal .fp-bilingual.fp-bi-single { max-width: 860px; }
.fp-legal .fp-bilingual.fp-bi-single .fp-bi-note { grid-template-columns: 1fr; }
/* a brand name in an external link is never hyphenated ("Giulia Si-meone" at 375 px) */
.fp-legal .fp-bilingual a[href^="http"] { hyphens: manual; white-space: nowrap; }
/* Crediti pages only (17b_credits_page.py wraps the brand): "FiscalPulse" never hyphenates */
.fp-legal .fp-bilingual .fp-nohyph { hyphens: none; }

@media (max-width: 760px) {
	.fp-legal .fp-bilingual .fp-bi-head, .fp-legal .fp-bilingual .fp-bi-note { display: none; }
	.fp-legal .fp-bilingual .fp-bi-row { grid-template-columns: 1fr; }
	.fp-legal .fp-bilingual .fp-bi-row::before { display: none; }
	.fp-legal .fp-bilingual .fp-bi-en {
		border-left: 2px solid var(--fp-line-strong); padding-left: 12px;
		color: color-mix(in srgb, var(--fp-ink) 84%, var(--fp-base));
	}
	.fp-legal .fp-bilingual .fp-bi-lab { display: inline-block; font-size: 11px; font-weight: 600; letter-spacing: .06em; color: var(--fp-tertiary); margin-right: 6px; }
	.fp-legal .fp-bilingual table { display: block; overflow-x: auto; }
}

/* Complianz Cookie Policy pages also use page-legal (one visually hidden H1 = the page title; K audit 21 Oct).
   The Complianz document text is generated by Complianz and not touched: only the column is set here. */
.fp-legal .fp-legal__content > .cmplz-document,
.fp-legal .fp-legal__content > .wp-block-group > .cmplz-document {
	box-sizing: border-box; max-width: 860px; margin: 0 auto; padding: 40px 16px 64px;
	font-family: var(--fp-font); font-size: 15px; line-height: 1.6; color: var(--fp-ink);
}
.fp-legal .cmplz-document h2, .fp-legal .cmplz-document h3 { font-family: var(--fp-font-head); font-weight: 500; letter-spacing: var(--fp-track-head); color: var(--fp-ink); }
.fp-legal .cmplz-document h2 { font-size: 22px; margin: 32px 0 8px; }
.fp-legal .cmplz-document h3 { font-size: 17px; margin: 24px 0 6px; }
.fp-legal .cmplz-document p, .fp-legal .cmplz-document li { font-size: 15px; line-height: 1.6; }
.fp-legal .cmplz-document a { color: var(--fp-accent-text); }

@media print {
	.fp-legal .fp-bilingual .fp-bi-head { position: static; }
}
