/* =========================================================
   PECIFA — XXXIII Congreso General Ordinario
   Paleta: navy institucional + anillo dorado/ámbar del escudo
   ========================================================= */

.pc-wrap {
	--pc-navy-deep:   #071422;
	--pc-navy:        #0c2438;
	--pc-navy-panel:  #102c44;
	--pc-line:        rgba(245, 179, 60, 0.22);
	--pc-gold:        #f0a93a;
	--pc-gold-bright: #ffce6b;
	--pc-amber-deep:  #e0662a;
	--pc-text:        #eef2f6;
	--pc-text-muted:  #9db2c7;
	--pc-blue-seal:   #1f6fb2;

	position: relative;
	width: 100%;
	min-height: 100vh;
	background: var(--pc-navy-deep);
	color: var(--pc-text);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	line-height: 1.5;
	overflow-x: hidden;
	isolation: isolate;
}

/* Ancho de lectura: cada sección se centra en su propia franja de fondo
   completo (edge-to-edge), así en pantallas grandes el contenido usa el
   ancho real disponible en vez de quedar como una columna angosta. */
.pc-stats,
.pc-roster,
.pc-footer {
	max-width: 1160px;
	margin-left: auto;
	margin-right: auto;
}

.pc-wrap * { box-sizing: border-box; }

/* ---------- fondo institucional: resplandores sutiles + dos líneas guía
   a los costados, en toda la altura de la página (estilo doc app /
   panel corporativo moderno, no una grilla de puntos). ---------- */
.pc-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(circle at 50% 0%,   rgba(240, 169, 58, 0.18), transparent 34%),
		radial-gradient(circle at 100% 18%, rgba(31, 111, 178, 0.16), transparent 30%),
		radial-gradient(circle at 0% 46%,   rgba(31, 111, 178, 0.10), transparent 28%),
		radial-gradient(circle at 100% 62%, rgba(240, 169, 58, 0.10), transparent 28%),
		radial-gradient(circle at 8% 84%,   rgba(240, 169, 58, 0.09), transparent 30%),
		radial-gradient(circle at 96% 96%,  rgba(31, 111, 178, 0.12), transparent 30%),
		repeating-linear-gradient(115deg, rgba(240, 169, 58, 0.035) 0px, rgba(240, 169, 58, 0.035) 1px, transparent 1px, transparent 64px);
	background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat;
	background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, auto;
}

/* Las líneas guía de los costados solo suman en pantallas anchas: en
   mobile quedaban pegadas al contenido y ensuciaban la lectura. Cada
   una lleva, además de su trazo fijo tenue, una luz que la recorre
   de punta a punta en loop (mismo espíritu que el borde de los tabs). */
.pc-bg::before,
.pc-bg::after {
	content: "";
	display: none;
	position: absolute;
	top: 0;
	bottom: 0;
	width: 2px;
	background:
		linear-gradient(to bottom, transparent, rgba(245, 179, 60, 0.38) 12%, rgba(245, 179, 60, 0.38) 88%, transparent),
		linear-gradient(to bottom, transparent 0%, rgba(255, 244, 214, 0.95) 8%, transparent 18%);
	background-repeat: no-repeat, no-repeat;
	background-size: 100% 100%, 100% 55%;
	background-position: 0 0, 0 -60%;
	animation: pc-line-travel 5.5s linear infinite;
}
.pc-bg::before { left: 56px; }
.pc-bg::after  { right: 56px; }

@keyframes pc-line-travel {
	0%   { background-position: 0 0, 0 -60%; }
	100% { background-position: 0 0, 0 160%; }
}

@media (min-width: 720px) {
	.pc-bg::before,
	.pc-bg::after {
		display: block;
	}
}

/* ---------- hero ---------- */
.pc-hero {
	position: relative;
	z-index: 1;
	padding: 48px 28px 32px;
	text-align: center;
	border-bottom: 1px solid var(--pc-line);
}

.pc-hero-inner { max-width: 700px; margin: 0 auto; }

.pc-logo-wrap {
	position: relative;
	width: clamp(190px, 30vw, 320px);
	height: clamp(190px, 30vw, 320px);
	margin: 0 auto;
}

/* Perspectiva: va en un contenedor propio (no en pc-logo-wrap) para que
   no interfiera con el scale/opacity de la animación de entrada de GSAP. */
.pc-logo-stage {
	position: absolute;
	inset: 0;
	perspective: 1100px;
}

/* ---------- la moneda: dos caras + canto con espesor real ---------- */
.pc-coin {
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
	animation: pc-coin-spin 7s cubic-bezier(.65, .05, .36, 1) infinite;
	filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.45));
}

@keyframes pc-coin-spin {
	0%   { transform: rotateX(8deg) rotateY(0deg); }
	10%  { transform: rotateX(8deg) rotateY(0deg); }
	48%  { transform: rotateX(8deg) rotateY(180deg); }
	58%  { transform: rotateX(8deg) rotateY(180deg); }
	96%  { transform: rotateX(8deg) rotateY(360deg); }
	100% { transform: rotateX(8deg) rotateY(360deg); }
}

.pc-coin-face {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	overflow: hidden;
}

.pc-coin-face-front {
	transform: translateZ(9px);
	background: transparent;
}

.pc-coin-face-back {
	transform: rotateY(180deg) translateZ(9px);
	background: transparent;
	filter: brightness(0.82) saturate(0.85);
}

/* Canto de la moneda: capas macizas apiladas en Z, un poco más chicas que
   el escudo para que jamás asomen como anillo cuando se lo ve de frente
   (solo se proyectan como franja sólida al girar de perfil). */
.pc-coin-edge {
	position: absolute;
	inset: 6%;
	transform-style: preserve-3d;
	pointer-events: none;
}

.pc-coin-edge span {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	transform: translateZ(var(--pc-edge-z, 0px));
}

.pc-coin-edge span:nth-child(odd)  { background: var(--pc-gold); }
.pc-coin-edge span:nth-child(even) { background: var(--pc-amber-deep); }

.pc-logo-emblem {
	position: relative;
	width: 100%;
	height: 100%;
}

.pc-logo-emblem .pc-logo {
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35));
}

.pc-logo-emblem-back .pc-logo-back-img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 0.85;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35)) brightness(0.85) saturate(0.85);
}

/* Brillo de "sol pasando" sobre el escudo: un reflejo diagonal que recorre
   el logo y desaparece, usando el propio PNG como máscara (mask-image) para
   que el brillo respete exactamente el contorno del escudo, no un cuadrado. */
.pc-logo-shine {
	position: absolute;
	inset: 0;
	pointer-events: none;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	background: linear-gradient(115deg,
		transparent 38%,
		rgba(255, 255, 255, 0.95) 49%,
		rgba(255, 214, 140, 0.9) 53%,
		transparent 64%);
	background-size: 320% 320%;
	background-repeat: no-repeat;
	mix-blend-mode: screen;
	animation: pc-shine-sweep 6.5s ease-in-out infinite;
}

@keyframes pc-shine-sweep {
	0%, 52%   { background-position: -130% -130%; }
	72%       { background-position: 230% 230%; }
	100%      { background-position: 230% 230%; }
}

.pc-eyebrow {
	margin: 26px 0 8px;
	font-family: 'Inter', sans-serif;
	font-size: clamp(13.5px, 2.6vw, 16.5px);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.02em;
	color: var(--pc-text-muted);
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

.pc-title {
	margin: 6px 0 0;
	font-family: 'Spectral', Georgia, serif;
	font-weight: 600;
}

/* Estado inicial SOLO cuando JS confirma que puede animar (ver pecifa-congreso.js).
   Sin esta clase, todo se ve normal desde el primer render — así un bloqueador
   de scripts o un conflicto con otro plugin nunca deja el contenido invisible. */
.pc-anim-ready .pc-logo-wrap,
.pc-anim-ready .pc-eyebrow,
.pc-anim-ready .pc-title,
.pc-anim-ready .pc-fechas {
	opacity: 0;
}
.pc-anim-ready .pc-logo-wrap { transform: scale(0.85); }

.pc-numero {
	display: block !important;
	font-size: clamp(48px, 10vw, 88px);
	line-height: 1;
	letter-spacing: 0.06em;
	background: linear-gradient(180deg, var(--pc-gold-bright), var(--pc-gold) 65%, var(--pc-amber-deep));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.pc-tipo {
	display: block !important;
	margin-top: 8px;
	font-size: clamp(19px, 3.6vw, 30px);
	line-height: 1.3;
	font-weight: 500;
	color: var(--pc-text);
}

.pc-fechas {
	margin: 26px 0 0;
	text-align: center;
	font-family: 'Spectral', Georgia, serif;
	font-weight: 700;
	font-size: clamp(34px, 7.5vw, 56px);
	letter-spacing: 0.08em;
	background: linear-gradient(180deg, var(--pc-gold-bright), var(--pc-gold) 65%, var(--pc-amber-deep));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

#pc-title-numero,
#pc-title-tipo,
#pc-title-fecha {
	transition: opacity 0.22s ease;
}

/* ---------- stats ---------- */
.pc-stats {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-bottom: 1px solid var(--pc-line);
}

.pc-stat {
	padding: 18px 8px;
	text-align: center;
	border-left: 1px solid var(--pc-line);
}
.pc-stat:first-child { border-left: none; }

.pc-stat-num {
	display: block;
	font-family: 'Spectral', Georgia, serif;
	font-size: 26px;
	font-weight: 600;
	color: var(--pc-gold-bright);
}

.pc-stat-label {
	display: block;
	margin-top: 3px;
	font-size: 11.5px;
	color: var(--pc-text-muted);
}

/* ---------- tabs ---------- */
.pc-tabs {
	position: relative;
	z-index: 1;
	display: flex;
	max-width: 560px;
	margin: 0 auto;
	padding: 18px 20px 6px;
	gap: 14px;
	perspective: 900px;
}

@property --pc-border-angle {
	syntax: '<angle>';
	inherits: false;
	initial-value: 0deg;
}

.pc-tab {
	flex: 1;
	appearance: none !important;
	border: 1px solid var(--pc-line) !important;
	border-radius: 14px !important;
	color: var(--pc-text-muted) !important;
	font-family: 'Inter', sans-serif !important;
	cursor: pointer;

	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 4px !important;
	padding: 18px 10px !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: normal !important;

	position: relative;
	isolation: isolate;
	transform-style: preserve-3d;
	will-change: transform;
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(240, 169, 58, 0.05) 55%, rgba(0, 0, 0, 0.18)) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.07),
		inset 0 -12px 16px rgba(0, 0, 0, 0.32),
		0 10px 18px -6px rgba(0, 0, 0, 0.5),
		0 3px 0 rgba(0, 0, 0, 0.55) !important;
	transition: box-shadow 0.25s ease, background 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.35s ease;
}

/* Luz que recorre el borde en loop, como un contorno "vivo" (efecto
   típico de apps de IA). El truco: un pseudo-elemento con un
   conic-gradient que gira, recortado para que solo se vea el marco. */
.pc-tab::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
	padding: 1.5px;
	background: conic-gradient(from var(--pc-border-angle),
		transparent 0%,
		transparent 55%,
		var(--pc-gold) 66%,
		#fff3d6 72%,
		var(--pc-gold-bright) 78%,
		transparent 90%,
		transparent 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	pointer-events: none;
	animation: pc-border-spin 3.4s linear infinite;
}

.pc-tab.is-active::before {
	padding: 2px;
	animation-duration: 2.4s;
}

@keyframes pc-border-spin {
	to { --pc-border-angle: 360deg; }
}

.pc-tab:hover {
	border-color: rgba(245, 179, 60, 0.3) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.1),
		inset 0 -12px 16px rgba(0, 0, 0, 0.28),
		0 14px 22px -6px rgba(0, 0, 0, 0.55),
		0 3px 0 rgba(0, 0, 0, 0.55) !important;
}

.pc-tab:active {
	transition: box-shadow 0.1s ease, transform 0.1s ease;
	box-shadow:
		inset 0 2px 6px rgba(0, 0, 0, 0.45),
		inset 0 1px 0 rgba(255, 255, 255, 0.05),
		0 1px 0 rgba(0, 0, 0, 0.5) !important;
}

.pc-tab-day,
.pc-tab-meta {
	transform: translateZ(18px);
}

.pc-tab-day {
	display: block;
	font-size: 16px;
	font-weight: 700;
}

.pc-tab-meta {
	display: block;
	font-size: 13px;
	font-weight: 500;
	opacity: 0.8;
}

.pc-tab.is-active {
	color: var(--pc-gold-bright) !important;
	border-color: rgba(245, 179, 60, 0.55) !important;
	background: linear-gradient(160deg, rgba(255, 226, 161, 0.22), rgba(240, 169, 58, 0.16) 55%, rgba(138, 69, 20, 0.14)) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.2),
		inset 0 -10px 14px rgba(0, 0, 0, 0.22),
		0 0 0 1px rgba(245, 179, 60, 0.4),
		0 14px 26px -6px rgba(240, 169, 58, 0.35),
		0 4px 0 rgba(138, 69, 20, 0.65) !important;
}

.pc-tab-indicator { display: none; }
.pc-tab[data-target="pc-panel-dia2"].is-active ~ .pc-tab-indicator,
.pc-tabs.pc-on-dia2 .pc-tab-indicator {
	transform: translateX(calc(100% + 6px));
}

/* ---------- roster (estilo acta / nómina oficial) ---------- */
.pc-roster {
	position: relative;
	z-index: 1;
	padding: 8px 20px 12px;
}

.pc-panel { display: none; }
.pc-panel.is-active { display: block; animation: pc-fade 0.35s ease; }

@keyframes pc-fade {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: translateY(0); }
}

.pc-panel-type {
	margin: 14px 2px 2px;
	font-size: clamp(14px, 2.8vw, 16.5px);
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.4;
	color: var(--pc-gold);
}

.pc-panel-date {
	margin: 2px 2px 20px;
	font-size: clamp(14.5px, 2.8vw, 17px);
	color: var(--pc-text-muted);
	font-style: italic;
	font-family: 'Spectral', Georgia, serif;
}

/* ---------- cronograma del día ---------- */
.pc-cronograma {
	margin: 12px 0 36px;
	padding: 34px 32px 30px;
	background: rgba(240, 169, 58, 0.06);
	border: 1px solid var(--pc-line);
	border-radius: 20px;
}

.pc-cronograma-eyebrow {
	margin: 0 0 20px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--pc-gold) !important;
}

.pc-cronograma-list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	position: relative;
}

.pc-cronograma-list li.pc-cronograma-item { list-style: none !important; }

/* línea vertical de la línea de tiempo, atravesando los puntos */
.pc-cronograma-list::before {
	content: "";
	position: absolute;
	left: calc(clamp(96px, 24vw, 140px) + 4px);
	top: 8px;
	bottom: 8px;
	width: 2px;
	background: linear-gradient(180deg, transparent, var(--pc-line) 8%, var(--pc-line) 92%, transparent);
}

.pc-cronograma-item {
	position: relative;
	display: flex !important;
	align-items: flex-start !important;
	gap: 20px !important;
	padding: 20px 0 !important;
	margin: 0 !important;
}
.pc-cronograma-item:first-child { padding-top: 6px !important; }
.pc-cronograma-item:last-child { padding-bottom: 6px !important; }

.pc-cronograma-hora {
	flex: none;
	width: clamp(96px, 24vw, 140px);
	padding-top: 3px;
	font-family: 'Spectral', Georgia, serif;
	font-size: clamp(19px, 4vw, 24px);
	font-weight: 700;
	color: var(--pc-gold-bright);
	text-align: right;
	line-height: 1.25;
}
.pc-cronograma-hora-vacia { width: clamp(96px, 24vw, 140px); }

.pc-cronograma-punto {
	flex: none;
	position: relative;
	z-index: 1;
	width: 13px;
	height: 13px;
	margin-top: 8px;
	border-radius: 50%;
	background: var(--pc-gold-bright);
	box-shadow: 0 0 0 5px rgba(240, 169, 58, 0.18);
}

.pc-cronograma-cuerpo {
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
	padding-top: 2px;
}

.pc-cronograma-actividad {
	display: block;
	font-size: clamp(17px, 3.8vw, 21px);
	font-weight: 700;
	color: var(--pc-text);
	line-height: 1.35;
}

.pc-cronograma-nota {
	display: block;
	max-width: 46ch;
	font-size: clamp(14px, 3vw, 16px);
	line-height: 1.5;
	color: var(--pc-text-muted);
	font-style: italic;
}

.pc-cronograma-sede {
	margin: 22px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--pc-line);
	font-size: clamp(14.5px, 3vw, 17px);
	line-height: 1.55;
	color: var(--pc-text-muted);
}
.pc-cronograma-sede strong { color: var(--pc-text); }
.pc-cronograma-sede-icono { margin-right: 5px; }

@media (max-width: 420px) {
	.pc-cronograma { padding: 22px 18px 18px; }
	.pc-cronograma-list::before { left: 62px; }
	.pc-cronograma-hora,
	.pc-cronograma-hora-vacia { width: 58px; font-size: 15px; text-align: left; }
	.pc-cronograma-item { gap: 12px !important; }
}

/* ---------- nómina de congresales: tarjetas prolijas, acordeón
   por seccional. Todo el reset del <button> nativo lleva !important
   porque el tema (WoodMart) le pisaba el estilo con fondo blanco. ---------- */
.pc-seccional-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pc-seccional {
	border: 1px solid var(--pc-line);
	border-radius: 12px;
	background: rgba(240, 169, 58, 0.035);
	overflow: hidden;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.pc-seccional:has(.pc-congresal-names.is-open) {
	border-color: rgba(245, 179, 60, 0.4);
	background: rgba(240, 169, 58, 0.07);
}

.pc-seccional-head {
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 15px 16px !important;
	background: transparent !important;
	background-image: none !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	outline: none;
	cursor: pointer;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: inherit !important;
	font: inherit !important;
	line-height: 1.3 !important;
	transition: background 0.2s ease;
}

.pc-seccional-head:hover,
.pc-seccional-head:focus-visible {
	background: rgba(240, 169, 58, 0.06) !important;
}

.pc-seccional-name {
	margin: 0;
	font-family: 'Spectral', Georgia, serif;
	font-size: 17px;
	font-weight: 600;
	color: var(--pc-text);
}

.pc-seccional-head-right {
	flex: none;
	display: flex;
	align-items: center;
	gap: 12px;
}

.pc-seccional-count {
	flex: none;
	font-family: 'Inter', sans-serif;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--pc-gold-bright);
	white-space: nowrap;
	background: rgba(240, 169, 58, 0.14);
	border: 1px solid rgba(245, 179, 60, 0.3);
	border-radius: 999px;
	padding: 4px 11px;
}

.pc-seccional-chevron {
	flex: none;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--pc-gold);
	border-bottom: 2px solid var(--pc-gold);
	transform: rotate(45deg);
	transition: transform 0.25s ease;
}

.pc-seccional-head[aria-expanded="true"] .pc-seccional-chevron {
	transform: rotate(-135deg);
}

.pc-congresal-names {
	list-style: none;
	margin: 0;
	padding: 0 16px;
	display: grid;
	gap: 7px;
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height 0.3s ease, opacity 0.2s ease, padding 0.3s ease;
}

.pc-congresal-names.is-open {
	max-height: 600px;
	opacity: 1;
	padding: 2px 16px 16px;
	border-top: 1px solid var(--pc-line);
	padding-top: 12px;
}

.pc-congresal-names li {
	font-size: 14.5px;
	color: var(--pc-text-muted);
	padding-left: 14px;
	position: relative;
}

.pc-congresal-names li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--pc-gold);
	opacity: 0.7;
}

.pc-invitados-nota {
	margin: 22px 0 4px;
	padding: 16px 18px;
	background: rgba(240, 169, 58, 0.05);
	border: 1px dashed rgba(245, 179, 60, 0.35);
	border-radius: 12px;
	text-align: center;
	font-size: clamp(13.5px, 2.8vw, 15.5px);
	font-style: italic;
	line-height: 1.5;
	color: var(--pc-text-muted);
}

/* ---------- footer ---------- */
.pc-footer {
	position: relative;
	z-index: 1;
	margin-top: 12px;
	padding: 32px 24px 46px;
	text-align: center;
	border-top: 1px solid var(--pc-line);
}

.pc-footer-slogan {
	margin: 0 0 14px;
	font-family: 'Spectral', Georgia, serif;
	font-style: italic;
	font-weight: 600;
	font-size: clamp(18px, 3.4vw, 26px);
	line-height: 1.35;
	color: var(--pc-gold-bright);
}

.pc-footer-org {
	margin: 0 0 8px;
	font-size: clamp(14px, 2vw, 17px);
	line-height: 1.5;
	color: var(--pc-text);
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

.pc-footer-contact {
	margin: 0;
	font-size: clamp(12.5px, 1.7vw, 15px);
	line-height: 1.6;
	color: var(--pc-text-muted);
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
	word-break: break-word;
}

.pc-footer-contact a {
	color: var(--pc-text-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (max-width: 480px) {
	.pc-footer-org,
	.pc-footer-contact {
		padding: 0 4px;
	}
}

/* ---------- cierre final: frase institucional en cursiva ---------- */
.pc-closing-section {
	position: relative;
	z-index: 1;
	padding: 40px 20px 46px;
	text-align: center;
	background:
		radial-gradient(circle at 50% 20%, rgba(240, 169, 58, 0.16), transparent 62%),
		repeating-linear-gradient(115deg, rgba(240, 169, 58, 0.035) 0px, rgba(240, 169, 58, 0.035) 1px, transparent 1px, transparent 64px);
	border-top: 1px solid var(--pc-line);
}

.pc-closing-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 0 0 14px;
}

.pc-closing-line {
	width: 64px;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--pc-gold));
}

.pc-closing-ornament .pc-closing-line:last-child {
	background: linear-gradient(90deg, var(--pc-gold), transparent);
}

.pc-closing-diamond {
	width: 8px;
	height: 8px;
	border: 1px solid var(--pc-gold);
	transform: rotate(45deg);
	flex: none;
}

.pc-closing {
	position: relative;
	margin: 0;
	padding: 0;
	font-family: 'Allura', 'Spectral', cursive;
	font-weight: 400;
	font-size: clamp(38px, 8vw, 62px);
	line-height: 1.25;
	letter-spacing: 0.01em;
	background: linear-gradient(180deg, var(--pc-gold-bright), var(--pc-gold) 60%, var(--pc-amber-deep));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.25));
}

/* ---------- accesibilidad: respeta "reducir movimiento" ---------- */
@media (prefers-reduced-motion: reduce) {
	.pc-logo-wrap, .pc-eyebrow, .pc-title, .pc-fechas { opacity: 1 !important; transform: none !important; }
	.pc-logo-shine { animation: none !important; }
	.pc-coin { animation: none !important; transform: rotateX(0deg) rotateY(0deg) !important; filter: none !important; }
	.pc-tab::before { animation: none !important; }
	.pc-bg::before, .pc-bg::after { animation: none !important; }
}

/* ---------- pantallas medianas / grandes: la nómina pasa a grilla,
   cada seccional queda como un panel con borde fino (estilo acta/certificado,
   sin sombras ni radios grandes) para aprovechar el ancho completo ---------- */
@media (min-width: 680px) {
	.pc-seccional-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		align-items: start;
		gap: 14px 20px;
	}
	.pc-seccional { padding: 0; }
}

@media (min-width: 1040px) {
	.pc-seccional-list { grid-template-columns: repeat(3, 1fr); }
	.pc-roster { padding: 8px 40px 12px; }
	.pc-stats, .pc-footer { padding-left: 20px; padding-right: 20px; }
}

/* ---------- responsive fino: celulares chicos ---------- */
@media (max-width: 380px) {
	.pc-hero { padding: 38px 18px 26px; }
}

