/*
 * Paganini Congressi — site footer / colophon (Carta Tecnica §3.2)
 * Full ink block, three stacked zones inside a 90rem content frame:
 *   1. Meta    — CARTELLINO — COLOPHON | coordinates (hairline below)
 *   2. Main    — brand zone (mark + wordmark + italic claim + address) | MENU/SEGUICI cols
 *   3. Legal   — P.IVA | Privacy · Cookie (hairline above)
 * No ghost wordmark, no exposed-grid backdrop, no glow (Carta Tecnica §5).
 * Tokens from theme.json presets + base.css :root; brand link colour flips to
 * primary (#f09000, 7.1:1 on ink) because primary-strong (#a06000) fails AA on ink.
 */

.pc-footer {
	position: relative;
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}

/* Constrain each zone to the content frame with the same inline gutter as the
 * page; the zones own their inline padding so the slab is full-bleed but the
 * content aligns to the drawing-sheet column. */
.pc-footer__meta,
.pc-footer__main,
.pc-footer__legal {
	width: 100%;
	max-width: 90rem;
	margin-inline: auto;
	padding-left: clamp(1.25rem, 4vw, 2.5rem);
	padding-right: clamp(1.25rem, 4vw, 2.5rem);
}

/* --- Zone 1: Meta rule ----------------------------------------------------- */
.pc-footer__meta {
	gap: var(--wp--preset--spacing--40);
	padding-top: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--pc-rule-ink);
}

.pc-footer__meta p {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--pc-fs-mono-sm);
	letter-spacing: var(--pc-ls-mono-wide);
	line-height: 1;
}

.pc-footer__meta-left {
	color: var(--wp--preset--color--primary);
}

.pc-footer__meta-right {
	color: var(--pc-mute);
}

/* --- Zone 2: Main ---------------------------------------------------------- */
.pc-footer__main {
	gap: var(--wp--preset--spacing--60);
	padding-top: clamp(4rem, 8vw, 6.875rem);
	padding-bottom: clamp(3rem, 5vw, 4rem);
	align-items: flex-start;
}

/* Brand zone: mark+wordmark lock, italic claim, address rows. */
.pc-footer__brand {
	flex: 1 1 28rem;
	max-width: 460px;
	gap: 26px;
}

.pc-footer__lock {
	gap: 0.875rem;
	align-items: center;
}

/* Brand skyline mark (same as header): light buildings on the ink ground, the
 * accent building in orange. Width follows the icon's intrinsic 94:75 aspect. */
.pc-footer__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	height: 24px;
	/* drives the building strokes (currentColor); accent set below */
	color: var(--wp--preset--color--base);
}

.pc-footer__mark svg {
	display: block;
	width: auto;
	height: 24px;
}

.pc-footer__mark .pc-mark-acc {
	stroke: var(--wp--preset--color--primary);
}

.pc-footer__lockup {
	gap: 2px;
}

.pc-footer__wordmark {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem; /* 20px serif (Monumentale board) */
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.05;
	color: var(--wp--preset--color--base);
}

.pc-footer__descriptor {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--pc-fs-mono-micro); /* 9px */
	font-weight: 400;
	letter-spacing: var(--pc-ls-mono-xwide);
	line-height: 1;
	color: var(--wp--preset--color--primary);
}

/* Monumentale serif claim — large, roman (the i18n-matched ">Una fabbrica di
 * eventi<" text node is left byte-for-byte untouched; this only sets the register). */
.pc-footer__claim {
	margin: 0.5rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-style: normal;
	font-weight: 400;
	font-size: clamp(2rem, 4vw, 2.625rem); /* ~42px */
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--base);
}

/* Address rows: a fixed-width mono KEY + a mono value. */
.pc-footer__address {
	gap: 8px;
}

.pc-footer__addr-row {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--pc-fs-mono-md); /* 12px */
	color: var(--pc-mute-light);
	line-height: 1.4;
}

.pc-footer__addr-key {
	flex: 0 0 44px;
	font-size: var(--pc-fs-mono-xs); /* 10px */
	letter-spacing: var(--pc-ls-mono);
	color: var(--pc-mute);
	text-transform: uppercase;
}

.pc-footer__addr-row a {
	color: var(--pc-mute-light);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 1px;
}

.pc-footer__addr-row a:hover,
.pc-footer__addr-row a:focus-visible {
	color: var(--wp--preset--color--primary);
	background-size: 100% 1px;
}

@media (prefers-reduced-motion: no-preference) {
	.pc-footer__addr-row a {
		transition: color var(--pc-dur-fast) var(--pc-ease),
			background-size var(--pc-dur-fast) var(--pc-ease);
	}
}

/* Cols: MENU + SEGUICI. */
/* Top-align the two columns (Carta Tecnica §3.2): the MENU and SEGUICI/FOLLOW US
 * headings must share one top baseline. The columns have unequal row counts
 * (MENU=5, SEGUICI=3) so WP's global `.is-layout-flex { align-items:center }`
 * default (0,1,0, injected in the page <head>) vertically centres the shorter
 * column and drops its title down a row. Double the class (0,2,0) to beat that
 * inlined rule regardless of source order and pin both column tops together. */
.pc-footer__cols.pc-footer__cols {
	gap: 64px;
	flex: 0 1 auto;
	align-items: flex-start;
}

.pc-footer__col {
	min-width: 0;
}

.pc-footer__col-title {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--pc-fs-mono-sm); /* 11px */
	font-weight: 400;
	letter-spacing: var(--pc-ls-mono-wide);
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.pc-footer__menu {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 11px;
}

.pc-footer__menu li {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small); /* 14px — plain contact lines */
	color: var(--pc-mute-light);
	line-height: 1.4;
}

.pc-footer__menu a {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small); /* 14px */
	color: var(--pc-mute-light);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 1px;
}

.pc-footer__menu a:hover,
.pc-footer__menu a:focus-visible {
	color: var(--wp--preset--color--primary);
	background-size: 100% 1px;
}

@media (prefers-reduced-motion: no-preference) {
	.pc-footer__menu a {
		transition: color var(--pc-dur-fast) var(--pc-ease),
			background-size var(--pc-dur-fast) var(--pc-ease);
	}
}

/* --- Zone 3: Legal strip --------------------------------------------------- */
.pc-footer__legal {
	gap: var(--wp--preset--spacing--40);
	padding-top: 20px;
	padding-bottom: 20px;
	border-top: 1px solid var(--pc-rule-ink);
}

.pc-footer__legal-text,
.pc-footer__legal-links {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--pc-fs-mono-sm); /* 11px */
	letter-spacing: var(--pc-ls-mono);
	line-height: 1.4;
}

.pc-footer__legal-text {
	color: var(--pc-mute);
}

.pc-footer__legal-links {
	color: var(--pc-mute-light);
}

.pc-footer__legal-dot {
	color: var(--pc-rule-ink);
	margin-inline: 0.4em;
}

.pc-footer__legal-links a {
	color: var(--pc-mute-light);
	text-decoration: none;
}

.pc-footer__legal-links a:hover,
.pc-footer__legal-links a:focus-visible {
	color: var(--wp--preset--color--primary);
}

/* --- Responsive: stack the main zone on narrow viewports ------------------- */
@media (max-width: 781px) {
	.pc-footer__main {
		flex-direction: column;
		gap: var(--wp--preset--spacing--60);
	}

	.pc-footer__brand {
		max-width: none;
	}

	.pc-footer__cols {
		gap: 48px;
	}
}

@media (max-width: 600px) {
	.pc-footer__meta {
		gap: 0.5rem;
	}
}
