/*
 * Carta ás familias — [mga_carta] y la vista de impresión (B16, 1.0.0; B18, 1.1.0: resumo por liñas, xustificado só desde 600 px)
 *
 * Encolada en el frontend desde inc/carta.php (MGA_CARTA_VER) y enlazada
 * directamente por el documento de ?mga_carta_imprimir=ID, que no carga el
 * tema: por eso define sus propias variables y sus fuentes (las mismas de
 * style.css; en el frontend el navegador ya las tiene).
 *
 * Formato de carta fiel al papel: logo centrado arriba, saúdo, corpo
 * justificado, despedida, lugar e data centrados, firmantes en columnas
 * (nome y, debajo, cargo), logos centrados al pie. Ancho de lectura de ~70
 * caracteres.
 */

@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Nunito:wght@400;600;700;800&display=swap');

.mga-carta {
	--mga-carta-verde:  #44b8af;
	--mga-carta-verde-oscuro: #2f9990;
	--mga-carta-azul:   #152034;
	--mga-carta-texto:  #2d2d2d;
	--mga-carta-suave:  #6b7280;
	--mga-carta-borde:  #e5e7eb;
	--mga-carta-titulos: 'Fredoka', 'Nunito', system-ui, sans-serif;
	--mga-carta-corpo:  'Nunito', system-ui, -apple-system, sans-serif;

	box-sizing: border-box;
	max-width: 70ch;
	margin: 0 auto;
	padding: 0 16px;
	font-family: var(--mga-carta-corpo);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--mga-carta-texto);
}
.mga-carta *, .mga-carta *::before, .mga-carta *::after { box-sizing: inherit; }

/* Logo centrado arriba (el [mga_logo] quieto). */
.mga-carta-cabeceira {
	text-align: center;
	margin: 0 0 2rem;
}
.mga-carta-cabeceira .mga-logo {
	display: inline-block;
	max-width: 100%;
	line-height: 0;
}
.mga-carta-cabeceira .mga-logo svg { width: 100%; height: auto; }

.mga-carta-saudo {
	font-family: var(--mga-carta-titulos);
	font-weight: 600;
	font-size: 1.25em;
	color: var(--mga-carta-azul);
	margin: 0 0 1.25rem;
}

.mga-carta-corpo p {
	text-align: justify;
	hyphens: auto;
	-webkit-hyphens: auto;
	margin: 0 0 1rem;
}
.mga-carta-corpo a {
	color: var(--mga-carta-verde-oscuro);
	text-decoration: underline;
	overflow-wrap: anywhere;
}
.mga-carta-corpo a:hover, .mga-carta-corpo a:focus-visible { color: var(--mga-carta-azul); }
.mga-carta-corpo strong { font-weight: 800; }

.mga-carta-despedida {
	margin: 1.5rem 0 0.5rem;
	font-weight: 600;
}
.mga-carta-lugar-data {
	text-align: center;
	margin: 1.5rem 0 2rem;
	color: var(--mga-carta-suave);
}

/* Firmantes en columnas: nome y, debajo, cargo. */
.mga-carta-firmantes {
	list-style: none;
	margin: 0 0 2.5rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1.5rem 2rem;
	text-align: center;
}
.mga-carta-firmante-nome {
	display: block;
	font-family: var(--mga-carta-titulos);
	font-weight: 600;
	color: var(--mga-carta-azul);
}
.mga-carta-firmante-cargo {
	display: block;
	font-size: 0.9em;
	color: var(--mga-carta-suave);
}

/* Logos centrados al pie. */
.mga-carta-logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.5rem 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--mga-carta-borde);
}
.mga-carta-logos img.mga-carta-logo {
	max-height: 72px;
	width: auto;
	height: auto;
	max-width: 180px;
	object-fit: contain;
}

/* Botones: "Imprimir / Gardar PDF" y "Ler a carta completa". */
.mga-carta-accions {
	text-align: center;
	margin: 2rem 0 0;
}
.mga-carta-accions a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.6rem 1.4rem;
	border-radius: 999px;
	background: var(--mga-carta-verde-oscuro);
	color: #fff;
	font-family: var(--mga-carta-titulos);
	font-weight: 600;
	text-decoration: none;
}
.mga-carta-accions a:hover, .mga-carta-accions a:focus-visible {
	background: var(--mga-carta-azul);
	color: #fff;
}
.mga-carta-accions a:focus-visible { outline: 3px solid #f59b27; outline-offset: 3px; }

/* Resumen (Home): saúdo + N liñas do corpo (B18) + enlace. */
.mga-carta-resumo .mga-carta-cabeceira { margin-bottom: 1.25rem; }
.mga-carta-corpo-recorte {
	--mga-carta-lh: 1.65em;
	position: relative;
	max-height: calc(var(--mga-carta-linas, 4) * var(--mga-carta-lh));
	line-height: var(--mga-carta-lh);
	overflow: hidden;
	/* La última liña difuminada cara ao fondo: indica que segue. */
	-webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.4 * var(--mga-carta-lh)), rgba(0, 0, 0, 0.35) calc(100% - 0.5 * var(--mga-carta-lh)), transparent 100%);
	mask-image: linear-gradient(to bottom, #000 calc(100% - 1.4 * var(--mga-carta-lh)), rgba(0, 0, 0, 0.35) calc(100% - 0.5 * var(--mga-carta-lh)), transparent 100%);
}
.mga-carta-corpo-recorte p { margin: 0; }
.mga-carta-corpo-recorte p + p { margin-top: 0; }

/* Móvil: firmantes uno bajo otro; o corpo á esquerda (B18: xustificado só desde 600 px). */
@media (max-width: 599px) {
	.mga-carta { font-size: 1rem; }
	.mga-carta-corpo p { text-align: left; hyphens: manual; -webkit-hyphens: manual; }
	.mga-carta-firmantes { grid-template-columns: 1fr; gap: 1.25rem; }
	.mga-carta-logos { gap: 1rem 1.5rem; }
}

/* Vista de impresión (?mga_carta_imprimir=ID): el documento sin cabecera ni pie. */
body.mga-carta-imprimir {
	font-family: var(--mga-carta-corpo, 'Nunito', system-ui, sans-serif);
}
.mga-carta-imprimir-barra {
	max-width: 70ch;
	margin: 0 auto 1.5rem;
	padding: 0 16px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	justify-content: flex-end;
}
.mga-carta-imprimir-banda {
	margin-right: auto;
	padding: 0.35rem 0.9rem;
	border-radius: 999px;
	background: #fff3e3;
	color: #d9841a;
	font-family: 'Nunito', system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.9rem;
}
.mga-carta-imprimir-boton, .mga-carta-imprimir-pechar {
	min-height: 44px;
	padding: 0.5rem 1.2rem;
	border: 2px solid #2f9990;
	border-radius: 999px;
	background: #2f9990;
	color: #fff;
	font: 600 1rem 'Fredoka', 'Nunito', system-ui, sans-serif;
	cursor: pointer;
}
.mga-carta-imprimir-pechar { background: #fff; color: #2f9990; }
.mga-carta-imprimir-boton:focus-visible, .mga-carta-imprimir-pechar:focus-visible { outline: 3px solid #f59b27; outline-offset: 3px; }

@media print {
	.mga-carta-imprimir-barra, .mga-carta-accions { display: none !important; }
	body.mga-carta-imprimir { padding: 0 !important; }
	.mga-carta {
		max-width: none;
		padding: 0;
		font-size: 11.5pt;
		line-height: 1.5;
		color: #000;
	}
	.mga-carta-cabeceira { margin-bottom: 10mm; }
	.mga-carta-corpo a { color: #000; text-decoration: none; }
	.mga-carta-firmantes { grid-template-columns: repeat(3, 1fr); page-break-inside: avoid; break-inside: avoid; }
	.mga-carta-firmantes-1 { grid-template-columns: 1fr; }
	.mga-carta-firmantes-2 { grid-template-columns: repeat(2, 1fr); }
	.mga-carta-logos { page-break-inside: avoid; break-inside: avoid; border-top-color: #999; }
	.mga-carta-logos img.mga-carta-logo { max-height: 22mm; }
}
