/*
 * Paganini Congressi — "Monumentale" layer (Concept B).
 *
 * The Pencil board "Concept B — Monumentale" (design/paganini.pen) takes the same
 * brand palette + the same self-hosted type families the site already ships
 * (Newsreader display, Inter body, IBM Plex Mono data labels — NO new fonts) and
 * pushes them to a monumental register: giant thin Newsreader display set against
 * deep ink bands, primary-strong section numerals, hairline rules, and a strong
 * light/dark rhythm. Where the board draws its display serif in Fraunces, we keep
 * the site's Newsreader family (per brief: keep the current font style).
 *
 * This file is ADDITIVE and fully namespaced `.pc-m*`, mirroring the v6 layer: a
 * section only adopts Monumentale once its block markup carries the classes. Brand
 * hex stays in theme.json presets / base.css :root; only the Monumentale-specific
 * on-ink tints are enumerated here (board literals).
 *
 * Vocabulary is shared between the home set-pieces and the inner-page archetypes
 * so every page reads as one concept and the markup stays DRY.
 * ------------------------------------------------------------------------- */

:root {
	/* Brand (via presets) */
	--m-ink: var(--wp--preset--color--ink);                    /* #1e1b18 */
	--m-base: var(--wp--preset--color--base);                  /* #ffffff */
	--m-surface: var(--wp--preset--color--surface);            /* #f5f3f0 */
	--m-soft: var(--wp--preset--color--ink-soft);              /* #6b6258 */
	--m-border: var(--wp--preset--color--border);              /* #e3ded7 */
	--m-orange: var(--wp--preset--color--primary);             /* #f09000 decoration / on-ink */
	--m-orange-ink: var(--wp--preset--color--primary-strong);  /* #a06000 text on light */

	/* Drawing greys (board literals) */
	--m-hair: #d8d2c9;          /* warm hairline on light */
	--m-hair-strong: #bdb2a0;   /* deeper warm rule — visible on both base (2.1:1) and surface (1.9:1), so the closing CTA tray reads even when the band above it is also surface. Keep >=~1.9:1 vs surface or the tray can merge upward. */
	--m-rule-strong: var(--m-ink);

	/* On-ink tints (board literals) */
	--m-on-ink: #ffffff;
	--m-on-ink-soft: #cfc8bf;   /* body on ink */
	--m-on-ink-mute: #a39a8f;   /* mono labels / captions on ink */
	--m-on-ink-aside: #ece7e0;  /* hero aside serif */
	--m-rule-ink: #3a352f;      /* rule within ink */

	/* Families (via presets) */
	--m-serif: var(--wp--preset--font-family--display);
	--m-body: var(--wp--preset--font-family--body);
	--m-mono: var(--wp--preset--font-family--mono);

	/* Sheet geometry — board 1440 frame, 96px gutters. */
	--m-max: 1440px;
	--m-gutter: clamp(1.25rem, 5.2vw, 6rem);
	--m-pad-y: clamp(4.5rem, 9vw, 8.75rem);     /* section band rhythm (~140px) */
	--m-pad-y-lg: clamp(5.5rem, 11vw, 10.625rem);/* the big CTA finale (~170px) */
}

/* ===========================================================================
 * SCAFFOLD — full-bleed bands with a capped, gutter-padded inner.
 * ======================================================================== */
.pc-m { color: var(--m-ink); }

/* Sections are alignfull + self-padded; kill the inherited constrained blockGap
 * so adjacent bands butt cleanly (matches the v6 approach). */
.pc-m-sec {
	margin-block: 0 !important;
	padding-block: var(--m-pad-y);
	color: var(--m-ink);
}

.pc-m-wrap {
	max-width: var(--m-max);
	margin-inline: auto;
	padding-inline: var(--m-gutter);
}

.pc-m-wrap--flush { padding-inline: 0; }

/* Band grounds. */
.pc-m-sec--base { background: var(--m-base); }
.pc-m-sec--surface { background: var(--m-surface); }
.pc-m-sec--ink { background: var(--m-ink); color: var(--m-on-ink); }

/* Padding modifiers. */
.pc-m-sec--pad-lg { padding-block: var(--m-pad-y-lg); }
.pc-m-sec--pad-tight { padding-block: clamp(3rem, 6vw, 5.5rem); }
.pc-m-sec--flush-b { padding-bottom: 0; }
.pc-m-sec--flush-t { padding-top: 0; }

/* ===========================================================================
 * TYPE — display ramp (Newsreader), eyebrows + numerals (mono), accents.
 * ======================================================================== */
.pc-m-d1, .pc-m-d2, .pc-m-d3, .pc-m-d4, .pc-m-d5 {
	font-family: var(--m-serif);
	font-weight: 400;
	color: inherit;
	margin: 0;
	text-wrap: balance;
}

.pc-m-d1 { font-size: clamp(3.5rem, 11.5vw, 9.5rem); line-height: 0.9; letter-spacing: -0.04em; }
.pc-m-d2 { font-size: clamp(2.75rem, 7.4vw, 6.25rem); line-height: 0.98; letter-spacing: -0.035em; }
.pc-m-d3 { font-size: clamp(2.25rem, 4.8vw, 4.25rem); line-height: 1.02; letter-spacing: -0.025em; }
.pc-m-d4 { font-size: clamp(1.875rem, 3.1vw, 2.875rem); line-height: 1.06; letter-spacing: -0.02em; }
.pc-m-d5 { font-size: clamp(1.5rem, 2.4vw, 2.125rem); line-height: 1.12; letter-spacing: -0.015em; }

/* Italic accent / orange accent words inside a display headline. */
.pc-m-accent {
	font-style: italic;
	color: var(--m-orange-ink);
}
.pc-m-orange { color: var(--m-orange-ink); }

/* On ink, accents/orange words flip to luminous #f09000 (AA on ink). */
.pc-m-sec--ink .pc-m-accent,
.pc-m-sec--ink .pc-m-orange,
.pc-on-dark .pc-m-accent,
.pc-on-dark .pc-m-orange { color: var(--m-orange); }

/* Eyebrow — mono caps section label ("01 — UNA FABBRICA DI EVENTI"). */
.pc-m-eyebrow {
	margin: 0;
	font-family: var(--m-mono);
	font-weight: 400;
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--m-soft);
	font-variant-numeric: tabular-nums;
}
.pc-m-sec--ink .pc-m-eyebrow { color: var(--m-on-ink-mute); }

/* Section numeral / folio in primary-strong (01, I, 01/04, 01 — ). */
.pc-m-num {
	font-family: var(--m-mono);
	font-weight: 400;
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	color: var(--m-orange-ink);
	font-variant-numeric: tabular-nums;
}
.pc-m-sec--ink .pc-m-num { color: var(--m-orange); }

/* Body copy. */
.pc-m-body {
	margin: 0;
	font-family: var(--m-body);
	font-size: 1.125rem;
	line-height: 1.6;
	color: #3a352f;
}
.pc-m-sec--ink .pc-m-body { color: var(--m-on-ink-soft); }
.pc-m-body--soft { color: var(--m-soft); }
.pc-m-serif-sub {
	margin: 0;
	font-family: var(--m-serif);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.4;
	color: var(--m-soft);
}

/* Mono caption (plate captions, fig tags). */
.pc-m-cap {
	margin: 0;
	font-family: var(--m-mono);
	font-weight: 400;
	font-size: 0.6875rem;
	letter-spacing: 0.075em;
	text-transform: uppercase;
	color: var(--m-soft);
	font-variant-numeric: tabular-nums;
}
.pc-m-sec--ink .pc-m-cap { color: var(--m-on-ink-mute); }

/* ===========================================================================
 * RULES — hairlines + strong ink rules (inset to the band gutter).
 * ======================================================================== */
.pc-m-rule { border: 0; border-top: 1px solid var(--m-hair); margin: 0; }
.pc-m-rule--ink { border-top-color: var(--m-ink); }
.pc-m-sec--ink .pc-m-rule { border-top-color: var(--m-rule-ink); }
.pc-m-sec--ink .pc-m-rule--ink { border-top-color: var(--m-on-ink-mute); }

/* ===========================================================================
 * LINKS + CTAs.
 * ======================================================================== */
/* Inline arrow link ("Scopri lo spazio →"). */
.pc-m-link {
	display: inline-flex;
	align-items: baseline;
	gap: 0.5rem;
	font-family: var(--m-body);
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--m-ink);
	text-decoration: none;
	letter-spacing: 0.01em;
}
.pc-m-link__t {
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 1px;
}
.pc-m-link__a {
	color: var(--m-ink);
	transition: transform var(--pc-dur-fast, 0.28s) var(--pc-ease, ease);
}
.pc-m-sec--ink .pc-m-link { color: var(--m-on-ink); }
.pc-m-sec--ink .pc-m-link__a { color: var(--m-orange); }
@media (prefers-reduced-motion: no-preference) {
	.pc-m-link__t { transition: background-size var(--pc-dur-fast, 0.28s) var(--pc-ease, ease); }
}
.pc-m-link:hover .pc-m-link__t,
.pc-m-link:focus-visible .pc-m-link__t { background-size: 100% 1px; }
.pc-m-link:hover .pc-m-link__a,
.pc-m-link:focus-visible .pc-m-link__a { transform: translateX(0.3rem); }

/* Solid button — Inter 600 label + arrow. Orange (on ink/hero) or ink (on light). */
.pc-m-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.5rem;
	font-family: var(--m-body);
	font-weight: 600;
	font-size: 0.9375rem;
	letter-spacing: 0.02em;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background-color 0.25s var(--pc-ease, ease), color 0.25s var(--pc-ease, ease);
}
.pc-m-btn__a { transition: transform var(--pc-dur-fast, 0.28s) var(--pc-ease, ease); }
.pc-m-btn:hover .pc-m-btn__a,
.pc-m-btn:focus-visible .pc-m-btn__a { transform: translateX(0.25rem); }

.pc-m-btn--orange { background: var(--m-orange); color: var(--m-ink); }
.pc-m-btn--orange .pc-m-btn__a { color: var(--m-ink); }
.pc-m-btn--orange:hover, .pc-m-btn--orange:focus-visible { background: #d97f00; }

.pc-m-btn--ink { background: var(--m-ink); color: var(--m-base); }
.pc-m-btn--ink .pc-m-btn__a { color: var(--m-orange); }
.pc-m-btn--ink:hover, .pc-m-btn--ink:focus-visible { background: var(--m-orange-ink); }
.pc-m-btn--ink:hover .pc-m-btn__a, .pc-m-btn--ink:focus-visible .pc-m-btn__a { color: var(--m-base); }

/* ===========================================================================
 * FIGURE / PLATE — full-width image with a mono caption row.
 * ======================================================================== */
.pc-m-figure { margin: 0; display: flex; flex-direction: column; }
.pc-m-figure__img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.pc-m-figure__cap {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	padding-top: 0.875rem;
}
.pc-m-figure__cap--over { padding: 0 0 0.875rem; }

/* Fixed-ratio image helpers (apply on the figure). */
.pc-m-figure--wide .pc-m-figure__img { aspect-ratio: 16 / 9; }
.pc-m-figure--landscape .pc-m-figure__img { aspect-ratio: 7 / 5; }
.pc-m-figure--banner .pc-m-figure__img { aspect-ratio: 21 / 9; }
.pc-m-figure--square .pc-m-figure__img { aspect-ratio: 1 / 1; }
.pc-m-figure--portrait .pc-m-figure__img { aspect-ratio: 4 / 5; }

/* Narrow centred column (pull-quote bands, focused CTA copy). */
.pc-m-wrap--narrow { max-width: 1060px; }
.pc-m-wrap--mid { max-width: 1240px; }

/* ===========================================================================
 * SECTION HEAD — eyebrow + giant title (+ optional right meta count).
 * ======================================================================== */
.pc-m-head { display: flex; flex-direction: column; gap: 1.5rem; }
.pc-m-head__row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}

/* ===========================================================================
 * HOME — HERO (ink band: coords / giant stacked wordmark + aside / plate).
 * ======================================================================== */
.pc-m-hero {
	padding-top: clamp(2rem, 3.5vw, 2.5rem);
	padding-bottom: clamp(2.5rem, 4vw, 2.5rem);
}
.pc-m-hero__top {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}
.pc-m-hero__coord { color: var(--m-orange); margin: 0; }
.pc-m-hero__body {
	display: flex;
	align-items: flex-end;
	gap: clamp(2rem, 4vw, 3.25rem);
	margin-top: clamp(2.5rem, 4.5vw, 4rem);
}
.pc-m-hero__title { flex: 1 1 auto; }
.pc-m-hero__title .pc-m-d1 { display: block; color: var(--m-on-ink); }
.pc-m-hero__title .pc-m-d1--accent { color: var(--m-orange); }
.pc-m-hero__aside {
	flex: 0 0 19rem;
	max-width: 19rem;
	display: flex;
	flex-direction: column;
	gap: 1.625rem;
	padding-bottom: 0.75rem;
}
.pc-m-hero__aside-sub {
	margin: 0;
	font-family: var(--m-serif);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.32;
	color: var(--m-on-ink-aside);
}
.pc-m-hero__plate { margin-top: clamp(2.5rem, 4.5vw, 3.5rem); }
.pc-m-hero__plate .pc-m-figure__img {
	height: clamp(20rem, 42vw, 35rem);
}

/* ===========================================================================
 * HOME — INTRO (numeral+label column / giant title + two-column body).
 * ======================================================================== */
.pc-m-intro__grid {
	display: grid;
	grid-template-columns: 9rem minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}
.pc-m-intro__aside { display: flex; flex-direction: column; gap: 1.5rem; }
.pc-m-intro__main { display: flex; flex-direction: column; gap: clamp(2rem, 3.5vw, 3rem); }
.pc-m-intro__cols {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: clamp(2.5rem, 5vw, 4rem);
	align-items: start;
}

/* ===========================================================================
 * INDEX — numbered editorial rows (numeral / serif title / desc / arrow link).
 * Home "Index Links" + every inner space index reuse this.
 * ======================================================================== */
.pc-m-index { display: flex; flex-direction: column; }
.pc-m-index__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	flex-wrap: wrap;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--m-ink);
}
.pc-m-sec--ink .pc-m-index__head { border-bottom-color: var(--m-on-ink-mute); }

.pc-m-index__row {
	display: grid;
	grid-template-columns: 2.5rem minmax(10rem, 22rem) minmax(0, 1fr) auto;
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: center;
	padding-block: clamp(1.5rem, 2.6vw, 2.25rem);
	border-bottom: 1px solid var(--m-border);
	text-decoration: none;
	color: inherit;
}
.pc-m-sec--ink .pc-m-index__row { border-bottom-color: var(--m-rule-ink); }
.pc-m-index__title { color: inherit; }
.pc-m-index__desc {
	margin: 0;
	font-family: var(--m-body);
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--m-soft);
}
.pc-m-sec--ink .pc-m-index__desc { color: var(--m-on-ink-soft); }
.pc-m-index__row .pc-m-link__a { transition: transform var(--pc-dur-fast, 0.28s) var(--pc-ease, ease); }
.pc-m-index__row:hover .pc-m-link__t,
.pc-m-index__row:focus-visible .pc-m-link__t { background-size: 100% 1px; }
.pc-m-index__row:hover .pc-m-link__a,
.pc-m-index__row:focus-visible .pc-m-link__a { transform: translateX(0.3rem); }

/* ===========================================================================
 * QUOTE — ink pull-quote band (giant orange mark + serif quote + attribution).
 * ======================================================================== */
.pc-m-quote { display: flex; flex-direction: column; gap: clamp(1.5rem, 3vw, 2.5rem); }
.pc-m-quote__mark {
	display: block;
	font-family: var(--m-serif);
	font-size: clamp(5rem, 10vw, 8.5rem);
	line-height: 0.6;
	color: var(--m-orange);
	margin-bottom: -0.4rem;
}
.pc-m-quote__q {
	margin: 0;
	font-family: var(--m-serif);
	font-weight: 400;
	font-size: clamp(1.75rem, 3.6vw, 3.25rem);
	line-height: 1.22;
	letter-spacing: -0.015em;
	color: inherit;
}
.pc-m-quote__attr { display: flex; align-items: center; gap: 1.25rem; }
.pc-m-quote__attr::before {
	content: "";
	width: 2.5rem;
	height: 1px;
	background: var(--m-orange);
	flex: 0 0 auto;
}
.pc-m-quote__name {
	font-family: var(--m-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--m-on-ink-mute);
}
/* On light grounds (inner pages may pull-quote on paper). */
.pc-m-sec--surface .pc-m-quote__name,
.pc-m-sec--base .pc-m-quote__name { color: var(--m-soft); }
.pc-m-sec--surface .pc-m-quote__attr::before,
.pc-m-sec--base .pc-m-quote__attr::before { background: var(--m-ink); }

/* ===========================================================================
 * VENUES — lead plate + meta row, 2-up cells, full-width parco.
 * ======================================================================== */
.pc-m-venues { display: flex; flex-direction: column; gap: clamp(3rem, 6vw, 5rem); }

/* Lead venue: large plate beside a meta column. */
.pc-m-vlead {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: start;
}
.pc-m-vlead__info { display: flex; flex-direction: column; }
.pc-m-vmeta__top { padding-bottom: 1.5rem; }
.pc-m-vmeta__name-wrap { padding-block: clamp(1.25rem, 2.4vw, 1.75rem); display: flex; flex-direction: column; gap: 0.875rem; }
.pc-m-vmeta__foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	padding-top: clamp(1.25rem, 2.4vw, 1.5rem);
}
.pc-m-vstat { display: flex; flex-direction: column; gap: 0.375rem; }
.pc-m-vstat__n { font-family: var(--m-serif); font-weight: 400; font-size: 1.875rem; line-height: 1; color: inherit; }
.pc-m-vstat__l {
	font-family: var(--m-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--m-soft);
}
.pc-m-sec--ink .pc-m-vstat__l { color: var(--m-on-ink-mute); }

/* 2-up + full-width cells. */
.pc-m-vgrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 4vw, 3.5rem);
}
.pc-m-vcell { display: flex; flex-direction: column; }
.pc-m-vcell__meta { padding-top: clamp(1.25rem, 2.4vw, 1.5rem); }
.pc-m-vcell__row {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 1.25rem 1.125rem;
}
.pc-m-vcell__txt { display: flex; flex-direction: column; gap: 0.625rem; }

/* ===========================================================================
 * STATS — surface band: giant serif numerals in a ruled 4-up grid.
 * ======================================================================== */
.pc-m-stats { display: flex; flex-direction: column; }
.pc-m-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--m-ink);
}
.pc-m-stat {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: clamp(2rem, 3.4vw, 2.75rem) clamp(1rem, 2vw, 1.75rem) clamp(2rem, 3.4vw, 2.75rem) 0;
}
.pc-m-stat + .pc-m-stat { padding-left: clamp(1rem, 2vw, 1.75rem); border-left: 1px solid var(--m-hair); }
.pc-m-stat__n {
	font-family: var(--m-serif); font-weight: 400;
	font-size: clamp(3.25rem, 6vw, 5.25rem); line-height: 0.9; letter-spacing: -0.04em;
	color: var(--m-ink);
}
.pc-m-stat__l { margin: 0; font-family: var(--m-body); font-size: 0.9375rem; color: var(--m-soft); }

/* ===========================================================================
 * SPECS — clean label/value rows (Inter label · serif value, top rules).
 * Home tech-sheet specs + inner cartouche reuse this.
 * ======================================================================== */
.pc-m-specs { display: flex; flex-direction: column; }
.pc-m-spec {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: clamp(0.875rem, 1.6vw, 1.125rem);
	border-top: 1px solid var(--m-border);
}
.pc-m-spec__l { font-family: var(--m-body); font-size: 0.9375rem; color: var(--m-soft); }
.pc-m-spec__v {
	font-family: var(--m-serif); font-weight: 400; font-size: 1.25rem; color: var(--m-ink);
	text-align: right; font-variant-numeric: tabular-nums;
}
.pc-m-sec--ink .pc-m-spec { border-top-color: var(--m-rule-ink); }
.pc-m-sec--ink .pc-m-spec__l { color: var(--m-on-ink-soft); }
.pc-m-sec--ink .pc-m-spec__v { color: var(--m-on-ink); }

/* ===========================================================================
 * DOWNLOADS — serif name + PDF↓ rows.
 * ======================================================================== */
.pc-m-downloads { display: flex; flex-direction: column; }
.pc-m-dl {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: clamp(1rem, 1.8vw, 1.25rem);
	border-top: 1px solid var(--m-border);
	text-decoration: none;
	color: inherit;
}
.pc-m-dl__name { font-family: var(--m-serif); font-weight: 400; font-size: 1.375rem; color: var(--m-ink); letter-spacing: -0.01em; }
.pc-m-dl__act { display: inline-flex; align-items: center; gap: 0.625rem; }
.pc-m-dl__pdf { font-family: var(--m-mono); font-size: 0.6875rem; letter-spacing: 0.1em; color: var(--m-orange-ink); }
.pc-m-dl__ico { color: var(--m-ink); transition: transform var(--pc-dur-fast, 0.28s) var(--pc-ease, ease); }
.pc-m-dl:hover .pc-m-dl__ico,
.pc-m-dl:focus-visible .pc-m-dl__ico { transform: translateY(0.2rem); }

/* ===========================================================================
 * TECH SHEETS / PLAN — drawing column + spec column (home + info-tecniche).
 * ======================================================================== */
.pc-m-tech {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 26rem);
	gap: clamp(2.5rem, 5vw, 5rem);
	align-items: start;
}
.pc-m-plan__img { display: block; width: 100%; height: auto; object-fit: contain; background: var(--m-surface); }
.pc-m-sec--ink .pc-m-plan__img { background: #161411; }

/* Plan markers (A–D) overlaid on the axonometry, keyed to the legend beside it.
 * Positioned in % of the figure so they track the responsive image. */
.pc-m-plan { position: relative; }
.pc-m-plan__pt {
	position: absolute;
	transform: translate(-50%, -50%);
	width: clamp(1.5rem, 2.4vw, 1.875rem);
	height: clamp(1.5rem, 2.4vw, 1.875rem);
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--m-ink);
	border-radius: 50%;
	background: var(--m-base, #fff);
	font-family: var(--m-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1;
	color: var(--m-ink);
	box-shadow: 0 1px 3px rgba(30, 27, 24, 0.18);
}

/* Plan key: one row per space — lettered badge → name (+ capacity) → PDF CTA.
 * The legend and the download list are the same four spaces, so they are merged
 * into a single list; the trailing CTA links the technical sheet where one
 * exists (Parco della Musica has none, shown as an em dash). */
.pc-m-plan-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pc-m-plan-legend__row {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding-block: clamp(0.75rem, 1.4vw, 1.1rem);
	border-top: 1px solid var(--m-border);
}
.pc-m-plan-legend__badge {
	flex: 0 0 auto;
	width: 1.5rem;
	height: 1.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--m-ink);
	border-radius: 50%;
	font-family: var(--m-mono);
	font-size: 0.6875rem;
	font-weight: 500;
	color: var(--m-ink);
}
.pc-m-plan-legend__name { flex: 1 1 auto; font-family: var(--m-serif); font-weight: 400; font-size: 1.25rem; letter-spacing: -0.01em; color: var(--m-ink); }
.pc-m-plan-legend__meta { flex: 0 0 auto; font-family: var(--m-mono); font-size: 0.6875rem; letter-spacing: 0.08em; color: var(--m-orange-ink); }

/* Trailing PDF CTA inside a legend row. */
.pc-m-plan-legend__dl {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	color: inherit;
}
.pc-m-plan-legend__dl .pc-m-dl__pdf { font-family: var(--m-mono); font-size: 0.6875rem; letter-spacing: 0.1em; color: var(--m-orange-ink); }
.pc-m-plan-legend__dl .pc-m-dl__ico { color: var(--m-ink); transition: transform var(--pc-dur-fast, 0.28s) var(--pc-ease, ease); }
.pc-m-plan-legend__dl:hover .pc-m-dl__ico,
.pc-m-plan-legend__dl:focus-visible .pc-m-dl__ico { transform: translateY(0.2rem); }
.pc-m-plan-legend__dl--none { color: var(--m-hair-strong, #bdb2a0); }

/* ===========================================================================
 * SPLIT BAND — image half + text half on ink (home "Parma" band).
 * ======================================================================== */
.pc-m-split { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); align-items: stretch; }
.pc-m-split__img { width: 100%; height: 100%; min-height: 22rem; object-fit: cover; display: block; }
.pc-m-split__txt {
	display: flex;
	flex-direction: column;
	gap: clamp(1.5rem, 2.6vw, 2.25rem);
	padding: clamp(3rem, 7vw, 6.875rem) clamp(1.5rem, 5.2vw, 5.625rem);
}
.pc-m-split__links { display: flex; gap: clamp(1.5rem, 3vw, 2.25rem); flex-wrap: wrap; padding-top: 0.5rem; }
.pc-m-split__link { display: inline-flex; align-items: baseline; gap: 0.5rem; font-family: var(--m-body); font-weight: 600; font-size: 0.875rem; color: var(--m-on-ink); text-decoration: none; }
.pc-m-split__link .pc-m-link__a { color: var(--m-orange); }

/* ===========================================================================
 * CTA BAND — mono label + GIANT serif headline + body + button.
 * ======================================================================== */
.pc-m-cta-band { display: flex; flex-direction: column; gap: clamp(1.75rem, 3vw, 2.5rem); align-items: flex-start; }
.pc-m-cta-band__title { max-width: 18ch; }
.pc-m-cta-band__body { max-width: 46ch; }

/* Closing CTA band sits on a warm light "tray" (surface) before the dark footer,
 * so the page ends bright rather than stacking CTA-ink + footer-ink. The surface
 * ground steps tonally off the white body above; a slightly deeper warm rule
 * delineates the tray even when the preceding band is also light. */
.pc-m-sec--cta-foot { border-top: 1px solid var(--m-hair-strong); }

/* ===========================================================================
 * INNER PAGE HERO — compact dark monumental opening for every inner page.
 * Sheet/coord mono row → giant serif title (+accent) → lede → full-width plate.
 * ======================================================================== */
.pc-m-phero { padding-top: clamp(2.5rem, 4vw, 3.25rem); padding-bottom: 0; }
.pc-m-phero__top {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem 2rem;
	flex-wrap: wrap;
	padding-bottom: clamp(1.5rem, 3vw, 2.25rem);
	border-bottom: 1px solid var(--m-rule-ink);
}
.pc-m-phero__sheet { color: var(--m-orange); }
.pc-m-phero__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 22rem);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: end;
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
}
.pc-m-phero__title { color: var(--m-on-ink); }
.pc-m-phero__title .pc-m-accent { display: inline; }
.pc-m-phero__lede {
	margin: 0;
	font-family: var(--m-serif);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.36;
	color: var(--m-on-ink-aside);
	padding-bottom: 0.5rem;
}
.pc-m-phero__plate .pc-m-figure__img { height: clamp(18rem, 38vw, 32rem); }
.pc-m-phero__plate .pc-m-figure__cap { padding-bottom: clamp(2rem, 4vw, 3rem); }

/* ===========================================================================
 * PROSE — measured editorial column (thematic + venue intros).
 * ======================================================================== */
.pc-m-prose { max-width: 44rem; }
.pc-m-prose__p { margin: 0; font-family: var(--m-body); font-size: 1.0625rem; line-height: 1.62; color: #3a352f; }
.pc-m-prose__p + .pc-m-prose__p { margin-top: 1.5rem; }
.pc-m-prosegrid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 24rem);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

/* ===========================================================================
 * GALLERY — hairline image grid with mono captions.
 * ======================================================================== */
.pc-m-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.6vw, 1.25rem);
}
.pc-m-gallery--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pc-m-gallery figure { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.pc-m-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.pc-m-gallery--tall img { aspect-ratio: 3 / 4; }
.pc-m-gallery figcaption {
	font-family: var(--m-mono); font-size: 0.65rem; letter-spacing: 0.07em;
	text-transform: uppercase; color: var(--m-soft);
}

/* ===========================================================================
 * RELATED — 3-up plates with serif name links (sibling spaces).
 * ======================================================================== */
.pc-m-related {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}
.pc-m-related__card { display: flex; flex-direction: column; gap: 1rem; text-decoration: none; color: inherit; }
.pc-m-related__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.pc-m-related__name {
	display: inline-flex; align-items: baseline; gap: 0.5rem;
	font-family: var(--m-serif); font-weight: 400; font-size: 1.5rem; color: var(--m-ink); letter-spacing: -0.01em;
}
.pc-m-related__name .pc-m-link__a { transition: transform var(--pc-dur-fast, 0.28s) var(--pc-ease, ease); }
.pc-m-related__card:hover .pc-m-related__name .pc-m-link__a,
.pc-m-related__card:focus-visible .pc-m-related__name .pc-m-link__a { transform: translateX(0.3rem); }
.pc-m-related__desc { margin: 0; font-family: var(--m-body); font-size: 0.875rem; line-height: 1.45; color: var(--m-soft); }

/* ===========================================================================
 * CONTACT — form column + sede block (contatti).
 * ======================================================================== */
.pc-m-contact { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(2.5rem, 5vw, 4.5rem); align-items: start; }
.pc-m-sede { display: flex; flex-direction: column; gap: 1.25rem; }
.pc-m-sede__h { margin: 0; }

/* WPCF7 / form fields styled to the Monumentale register. */
.pc-m-form .wpcf7-form p { margin: 0 0 1.125rem; }
.pc-m-form label { display: block; font-family: var(--m-mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m-soft); margin-bottom: 0.5rem; }
.pc-m-form input:not([type="checkbox"]):not([type="submit"]),
.pc-m-form textarea {
	width: 100%;
	font-family: var(--m-body);
	font-size: 1rem;
	color: var(--m-ink);
	background: var(--m-base);
	border: 1px solid var(--m-border);
	border-radius: 0;
	padding: 0.875rem 1rem;
}
.pc-m-form textarea { min-height: 9rem; resize: vertical; }
.pc-m-form input:focus, .pc-m-form textarea:focus { outline: 2px solid var(--m-orange-ink); outline-offset: 1px; border-color: var(--m-orange-ink); }
.pc-m-form .wpcf7-submit {
	font-family: var(--m-body); font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.02em;
	background: var(--m-ink); color: var(--m-base); border: 0; padding: 1rem 1.75rem; cursor: pointer;
}
.pc-m-form .wpcf7-submit:hover { background: var(--m-orange-ink); }

/* Flat inner hero (no photo plate) — restore bottom padding. */
.pc-m-phero--flat { padding-bottom: clamp(3rem, 6vw, 5rem); }
.pc-m-phero--flat .pc-m-phero__body { padding-bottom: 0; }

/* ===========================================================================
 * SCHEDULE TABLE (info-tecniche capienze e dimensioni).
 * ======================================================================== */
.pc-m-table-wrap { overflow-x: auto; }
.pc-m-table { width: 100%; border-collapse: collapse; }
.pc-m-table th, .pc-m-table td {
	padding: clamp(0.75rem, 1.4vw, 1rem) 1rem;
	text-align: right;
	border-bottom: 1px solid var(--m-border);
	font-family: var(--m-mono);
	font-size: 0.8125rem;
	color: var(--m-ink);
	font-variant-numeric: tabular-nums;
}
.pc-m-table thead th {
	border-bottom: 1px solid var(--m-ink);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--m-soft);
	font-weight: 400;
}
.pc-m-table .is-name { text-align: left; font-family: var(--m-serif); font-size: 1.25rem; }
.pc-m-table .is-txt { text-align: left; }   /* left-aligned text columns (venue / type) */
.pc-m-table .is-tag { text-align: center; color: var(--m-orange-ink); width: 3.5rem; }
.pc-m-table .is-na { color: var(--m-soft); }

/* ===========================================================================
 * PLAN LEGEND (keyed A/B/C/D rows beside an axonometric/plan drawing).
 * ======================================================================== */
.pc-m-legend { display: flex; flex-direction: column; }
.pc-m-legend__item { display: flex; gap: 1.125rem; padding-block: 1.125rem; border-top: 1px solid var(--m-border); }
.pc-m-legend__item:first-child { border-top: 0; }
.pc-m-legend__key { flex: 0 0 1.75rem; font-family: var(--m-mono); font-size: 0.8125rem; color: var(--m-orange-ink); }
.pc-m-legend__name { display: block; font-family: var(--m-serif); font-size: 1.25rem; color: var(--m-ink); line-height: 1.1; }
.pc-m-legend__sub { display: block; margin-top: 0.25rem; font-family: var(--m-body); font-size: 0.875rem; color: var(--m-soft); }

/* ===========================================================================
 * REFERENTI grid (contatti) + wide spec rows (come raggiungerci).
 * ======================================================================== */
.pc-m-refgrid { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(2rem, 4vw, 4rem); }
.pc-m-ref { padding-block: 1.25rem; border-top: 1px solid var(--m-border); }
.pc-m-ref__role { margin: 0; font-family: var(--m-mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m-soft); }
.pc-m-ref__name { margin: 0.4rem 0 0; font-family: var(--m-serif); font-weight: 400; font-size: 1.375rem; color: var(--m-ink); }
.pc-m-ref__meta { margin: 0.3rem 0 0; font-family: var(--m-body); font-size: 0.9375rem; line-height: 1.5; color: var(--m-soft); overflow-wrap: anywhere; }

.pc-m-spec--wide { gap: clamp(1rem, 3vw, 2.5rem); }
.pc-m-spec--wide .pc-m-spec__l { flex: 0 0 7rem; }
.pc-m-spec--wide .pc-m-spec__v { flex: 1 1 auto; text-align: left; font-family: var(--m-body); font-size: 1rem; max-width: 36rem; }

/* ===========================================================================
 * RESPONSIVE — stack grids, fold the index, restack the hero/split bands.
 * ======================================================================== */
@media (max-width: 60rem) {
	.pc-m-hero__body { flex-direction: column; align-items: stretch; gap: 2rem; }
	.pc-m-hero__aside { flex-basis: auto; max-width: none; }
	.pc-m-intro__grid,
	.pc-m-intro__cols,
	.pc-m-vlead,
	.pc-m-tech,
	.pc-m-prosegrid,
	.pc-m-contact,
	.pc-m-refgrid,
	.pc-m-phero__body { grid-template-columns: 1fr; }
	.pc-m-vgrid { grid-template-columns: 1fr; }
	.pc-m-table { min-width: 40rem; }
	.pc-m-split { grid-template-columns: 1fr; }
	.pc-m-split__img { min-height: 16rem; aspect-ratio: 16 / 10; height: auto; }
	.pc-m-stats__grid { grid-template-columns: 1fr 1fr; }
	.pc-m-stat:nth-child(3) { border-left: 0; }
	.pc-m-related { grid-template-columns: 1fr 1fr; }
	.pc-m-gallery { grid-template-columns: 1fr 1fr; }
	.pc-m-phero__lede { padding-bottom: 0; }
}

@media (max-width: 37.5rem) {
	.pc-m-index__row {
		grid-template-columns: 1.75rem minmax(0, 1fr);
		gap: 0.5rem 1rem;
		align-items: baseline;
	}
	.pc-m-index__desc { grid-column: 2 / -1; }
	.pc-m-index__row .pc-m-link { grid-column: 2 / -1; }
	.pc-m-stats__grid { grid-template-columns: 1fr; }
	.pc-m-stat + .pc-m-stat { border-left: 0; padding-left: 0; border-top: 1px solid var(--m-hair); }
	.pc-m-related { grid-template-columns: 1fr; }
	.pc-m-gallery { grid-template-columns: 1fr; }
	.pc-m-vcell__row { flex-direction: column; gap: 0.75rem; }
}
