/**
 * GIMUR Child: pàgines de lectura i patrons de maquetació reutilitzables.
 *
 * Classes de <body> (functions.php, segons el contingut i no per ID ni idioma):
 *   gx-reading--prose  text llarg sense maquetació pròpia (benvinguda del director)
 *   gx-reading--doc    text llarg amb apartats (legals): índex .gx-toc al costat
 *   gx-page-{slug}     slug de la pàgina original, igual a EN i ES
 *
 * Patrons:
 *   1. Capçalera de pàgina sense buits (pàgines sense foto al principi)
 *   2. Text amb foto (grup amb una imatge alineada a l'esquerra o a la dreta)
 *   3. Document amb índex (legals)
 *   4. Notícia individual a amplada de lectura
 *   5. Arxius i cerca
 *   6. Paràgrafs buits
 */

/* ---------------------------------------------------------------------------
 * 1. Capçalera de pàgina sense buits
 * Les pàgines sense foto començaven amb un separador (wp:spacer) i un títol
 * amb marge superior: ~90px de blanc sota la capçalera. Ara el títol comença
 * al coixí de la plantilla (40px).
 * ------------------------------------------------------------------------- */
.entry-content > .wp-block-spacer:first-child,
.entry-content > .wp-block-group:first-child > .wp-block-spacer:first-child,
.entry-content > .wp-block-group:first-child > .wp-block-group:first-child > .wp-block-spacer:first-child {
	display: none !important;
}
.entry-content > .wp-block-spacer:first-child + :is(h1, h2),
.entry-content > .wp-block-group:first-child > .wp-block-spacer:first-child + :is(h1, h2),
.entry-content > .wp-block-group:first-child > .wp-block-group:first-child > .wp-block-spacer:first-child + :is(h1, h2),
.entry-content > :is(h1, h2):first-child {
	margin-top: 0 !important;
}
/* El títol visible d'una pàgina de lectura fa de títol de pàgina encara que siga h2 */
.gx-reading .entry-content > .wp-block-group:first-child > .wp-block-group:first-child > :is(h1, h2):first-of-type,
.gx-reading .entry-content > .wp-block-group:first-child > :is(h1, h2):first-child,
.gx-reading .entry-content > h1:first-child {
	color: var(--gx-brand) !important;
	font-size: var(--wp--preset--font-size--page-title, clamp(2rem, 1.35rem + 2.6vw, 3.25rem)) !important;
	line-height: 1.08 !important;
	letter-spacing: -0.02em;
	margin-bottom: clamp(1rem, 2.5vw, 1.75rem) !important;
}

/* ---------------------------------------------------------------------------
 * 2. Text amb foto
 * Un grup amb una imatge alineada (alignleft/alignright) com a fill directe:
 * la foto passa a una columna estreta (200 a 260px) i el text ocupa la resta
 * (~65 caràcters per línia dins dels 860px). A mòbil la foto va damunt, petita.
 * ------------------------------------------------------------------------- */
.entry-content .wp-block-group:has(> figure.wp-block-image:is(.alignleft, .alignright)) {
	--gx-photo-w: clamp(200px, 20vw, 260px);
	--gx-photo-gap: clamp(1.5rem, 3vw, 2.5rem);
	position: relative;
}
.entry-content .wp-block-group:has(> figure.wp-block-image.alignleft) {
	padding-left: calc(var(--gx-photo-w) + var(--gx-photo-gap)) !important;
}
.entry-content .wp-block-group:has(> figure.wp-block-image.alignright) {
	padding-right: calc(var(--gx-photo-w) + var(--gx-photo-gap)) !important;
}
.entry-content .wp-block-group > figure.wp-block-image:is(.alignleft, .alignright) {
	/* Sense "top": queda a l'altura on aniria (al costat del primer paràgraf) */
	position: absolute;
	width: var(--gx-photo-w) !important;
	max-width: none !important;
	margin: 0.35rem 0 0 !important;
	float: none !important;
}
.entry-content .wp-block-group > figure.wp-block-image.alignleft {
	left: 0;
}
.entry-content .wp-block-group > figure.wp-block-image.alignright {
	right: 0;
}
.entry-content .wp-block-group > figure.wp-block-image:is(.alignleft, .alignright) img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: 50% 25%;
	border-radius: var(--gx-radius, 8px);
}
.entry-content .wp-block-group:has(> figure.wp-block-image.alignleft) > :is(h1, h2):first-of-type {
	/* El títol, d'un costat a l'altre per damunt de la foto i del text */
	margin-left: calc(-1 * (var(--gx-photo-w) + var(--gx-photo-gap))) !important;
}
.entry-content .wp-block-group:has(> figure.wp-block-image.alignright) > :is(h1, h2):first-of-type {
	margin-right: calc(-1 * (var(--gx-photo-w) + var(--gx-photo-gap))) !important;
}
.entry-content .wp-block-group:has(> figure.wp-block-image:is(.alignleft, .alignright)) > p {
	margin-block: 0 1em !important;
}
/* Signatura que segueix el grup (nom i càrrec alineats a la dreta a l'original):
 * a la mateixa columna que el text, en mida de subsecció. */
.entry-content .wp-block-group:has(> .wp-block-group > figure.wp-block-image.alignleft) > .has-text-align-right {
	text-align: left !important;
	padding-left: calc(clamp(200px, 20vw, 260px) + clamp(1.5rem, 3vw, 2.5rem));
}
.entry-content .wp-block-group:has(> .wp-block-group > figure.wp-block-image.alignleft) > h2.has-text-align-right {
	font-size: var(--wp--preset--font-size--subsection, 1.375rem) !important;
	margin-top: 1.75rem !important;
	margin-bottom: 0.15rem !important;
}
.entry-content .wp-block-group:has(> .wp-block-group > figure.wp-block-image.alignleft) > p.has-text-align-right {
	margin-top: 0 !important;
	color: var(--gx-muted);
	font-size: 1rem;
}
.entry-content .wp-block-group:has(> figure.wp-block-image:is(.alignleft, .alignright)) > .wp-block-spacer:last-child {
	display: none !important;
}
@media (max-width: 781px) {
	.entry-content .wp-block-group:has(> figure.wp-block-image:is(.alignleft, .alignright)) {
		padding-inline: 0 !important;
	}
	.entry-content .wp-block-group:has(> figure.wp-block-image:is(.alignleft, .alignright)) > :is(h1, h2):first-of-type {
		margin-inline: 0 !important;
	}
	.entry-content .wp-block-group > figure.wp-block-image:is(.alignleft, .alignright) {
		position: static;
		width: 160px !important;
		margin: 0 0 1.25rem !important;
	}
	.entry-content .wp-block-group:has(> .wp-block-group > figure.wp-block-image.alignleft) > .has-text-align-right {
		padding-left: 0;
	}
}

/* ---------------------------------------------------------------------------
 * 3. Document amb índex (pàgines legals, gx-reading--doc)
 * ------------------------------------------------------------------------- */
.gx-doc {
	margin-top: clamp(1.25rem, 3vw, 2rem) !important;
}
.gx-doc__body > :first-child {
	margin-top: 0 !important;
}
.gx-doc__body p,
.gx-doc__body li {
	font-size: var(--wp--preset--font-size--body, 1.0625rem);
	line-height: 1.65;
}
.gx-doc__body :is(h2, h3) {
	font-size: var(--wp--preset--font-size--subsection, 1.375rem) !important;
	line-height: 1.25 !important;
	margin-top: 2rem !important;
	margin-bottom: 0.5rem !important;
}
.gx-doc .gx-toc {
	margin-bottom: 1.5rem;
}
@media (min-width: 1024px) {
	.gx-doc {
		display: grid;
		grid-template-columns: 14.5rem minmax(0, 1fr);
		column-gap: clamp(2rem, 4vw, 3rem);
		align-items: start;
	}
	.gx-doc .gx-toc {
		position: sticky;
		top: calc(var(--gx-header-offset) + 1.5rem);
		max-height: calc(100vh - var(--gx-header-offset) - 3rem);
		overflow-y: auto;
		margin: 0;
		/* El títol de la pàgina queda a dalt: l'índex comença a l'altura del text */
		padding-top: 0.15rem;
	}
	.gx-doc__body {
		max-width: 40rem;
	}
}

/* ---------------------------------------------------------------------------
 * 4. Notícia individual: text a amplada de lectura (~70 caràcters), alineat amb
 * el títol. Les notícies relacionades del final conserven l'amplada de 860px.
 * ------------------------------------------------------------------------- */
body:is(.single-post, .single-gimur_congress) .wp-site-blocks > .wp-block-group:not(.gx-related) {
	--wp--style--global--content-size: 42.5rem;
}
body:is(.single-post, .single-gimur_congress) .wp-site-blocks > .wp-block-group:not(.gx-related) .wp-block-columns {
	margin-block: 0 !important;
}
body:is(.single-post, .single-gimur_congress) .entry-content > .wp-block-group {
	padding-inline: 0 !important;
}
/* Fitxa d'event: l'estil heretat limitava els paràgrafs a 68ch i, centrats dins
 * del disseny restringit, quedaven desplaçats respecte als títols. */
body.single-gimur_congress .entry-content > :is(p, ul, ol) {
	max-width: var(--wp--style--global--content-size) !important;
}
body.single-post .entry-content figure.wp-block-image img {
	border-radius: var(--gx-radius, 8px);
	height: auto;
}
/* Categoria i data: separades per espai, sense el punt volat que posava el mu-plugin */
.post-meta {
	gap: 0.35rem 1.25rem !important;
	flex-wrap: wrap !important;
}
.gimur-congress-meta > p.wp-block-paragraph {
	display: none !important;
}
/* Entre el filet de la capçalera i el text, només un espai */
body:is(.single-post, .single-gimur_congress) .wp-site-blocks > .wp-block-group > .wp-block-separator + .wp-block-spacer {
	display: none !important;
}
body:is(.single-post, .single-gimur_congress) .wp-site-blocks > .wp-block-group > .wp-block-separator {
	margin-bottom: clamp(1.25rem, 3vw, 2rem) !important;
}
/* Comentaris: el formulari ocupava mitja pàgina. Compacte i a la mateixa columna. */
body.single-post .site-comments,
body.single-post .wp-block-comments {
	margin-top: var(--gx-section) !important;
}
body.single-post .comment-respond .comment-reply-title {
	font-size: var(--wp--preset--font-size--subsection, 1.375rem) !important;
	margin: 0 0 0.25rem !important;
}
body.single-post .comment-form textarea {
	min-height: 120px;
	height: 120px;
}
body.single-post .comment-form p {
	margin-block: 0 0.75rem !important;
}
@media (min-width: 782px) {
	body.single-post .comment-form {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 1rem;
	}
	body.single-post .comment-form > * {
		grid-column: 1 / -1;
	}
	body.single-post .comment-form > :is(.comment-form-author, .comment-form-email, .comment-form-url) {
		grid-column: auto;
	}
}

/* ---------------------------------------------------------------------------
 * 5. Arxius (categoria, data) i cerca: patró gimur-child/archive-list
 * ------------------------------------------------------------------------- */
.gx-listing.gx-listing {
	padding-top: clamp(1.25rem, 3vw, 2rem) !important;
}
.gx-listing > * {
	max-width: var(--wp--style--global--content-size, 860px) !important;
	margin-inline: auto !important;
}
.gx-listing h1.wp-block-query-title {
	margin-block: 0 0.5rem !important;
}
.gx-listing .wp-block-term-description {
	color: var(--gx-muted);
	margin-block: 0 1rem !important;
}
.gx-listing .wp-block-search {
	margin-block: 0.5rem 1.5rem !important;
}
.gx-listing .wp-block-search__inside-wrapper {
	gap: 0.5rem;
	max-width: 32rem;
}
.gx-listing .wp-block-search__input {
	min-height: 44px;
	border: 1px solid #8a8d99;
	border-radius: var(--gx-radius-control, 4px);
	padding: 0 0.75rem;
	font-size: 1rem;
}
.gx-listing .wp-block-search__button {
	min-height: 44px;
	margin: 0;
	border-radius: var(--gx-radius-control, 4px);
}
.gx-listing .wp-block-query {
	margin-top: 1rem !important;
}

/* ---------------------------------------------------------------------------
 * 6. Paràgrafs buits que deixa l'editor
 * ------------------------------------------------------------------------- */
.entry-content p:empty {
	display: none;
}

/* Notícies relacionades a mòbil: llista d'una columna (el carrusel de la portada
 * desbordava la pàgina en aquesta plantilla) */
@media (max-width: 781px) {
	.gx-related .wp-block-post-template {
		display: grid !important;
		grid-template-columns: 1fr !important;
		overflow: visible !important;
		margin-right: 0 !important;
		padding-right: 0 !important;
	}
	.gx-related .wp-block-post-template > li.wp-block-post {
		flex: none !important;
		width: auto !important;
	}
}

/* ---------------------------------------------------------------------------
 * 7. Notícia individual (templates/single.html)
 * Tornar a notícies, títol de lectura (pes 400), metadades amb filet, imatge
 * destacada si n'hi ha, text a ~70 caràcters i "Altres notícies" amb filets.
 * ------------------------------------------------------------------------- */
.gx-single.gx-single {
	padding-top: clamp(1rem, 2.5vw, 1.75rem) !important;
	padding-bottom: var(--gx-section) !important;
}
.gx-back {
	margin-block: 0 0.25rem !important;
	font-size: 1rem;
}
.gx-back a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--gx-muted) !important;
	text-decoration: none !important;
}
.gx-back a:hover {
	color: var(--gx-brand) !important;
	text-decoration: underline !important;
}
body.single .gx-single h1.gx-single__title {
	font-family: var(--gx-serif) !important;
	font-weight: 400 !important;
	font-size: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) !important;
	line-height: 1.15 !important;
	letter-spacing: -0.015em !important;
	text-wrap: balance;
	color: var(--gx-brand) !important;
	margin-block: 0 0.75rem !important;
}
.gx-single__meta {
	gap: 0.35rem 1.25rem !important;
	padding-bottom: 0.75rem;
	margin-block: 0 clamp(1.25rem, 3vw, 1.75rem) !important;
	border-bottom: 1px solid var(--gx-line);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gx-muted);
}
.gx-single__meta > * {
	margin: 0 !important;
	font-size: inherit !important;
}
.gx-single__meta a {
	color: var(--gx-brand) !important;
	text-decoration: none !important;
}
.gx-single__image {
	margin-block: 0 clamp(1.25rem, 3vw, 1.75rem) !important;
}
.gx-single__image img {
	border-radius: var(--wp--custom--radius--media, 8px);
	object-fit: cover;
}
.gx-single__body > :first-child {
	margin-top: 0 !important;
}
.gx-single__body p,
.gx-single__body li {
	font-size: var(--wp--preset--font-size--body, 1.0625rem);
	line-height: 1.65;
	color: var(--gx-ink);
}
.gx-single__body :is(h2, h3) {
	font-weight: 400 !important;
	margin-top: 2rem !important;
}
.gx-single__body h2 {
	font-size: var(--wp--preset--font-size--subsection, 1.375rem) !important;
}
.gx-single__body figure img {
	border-radius: var(--wp--custom--radius--media, 8px);
	height: auto;
}
aside.gx-related {
	margin-top: 0 !important;
	padding-top: var(--gx-section);
	padding-bottom: var(--gx-section);
	border-top: 1px solid var(--gx-line);
}
aside.gx-related .gx-h2 {
	font-size: var(--wp--preset--font-size--subsection, 1.375rem) !important;
	font-weight: 400;
	margin-bottom: 1rem !important;
}
@media (max-width: 781px) {
	body.single .gx-single h1.gx-single__title {
		font-size: 1.75rem !important;
	}
}

/* ---------------------------------------------------------------------------
 * 8. Fitxa d'event (templates/single-gimur_congress.html, inc/event.php)
 * Tipus, títol, caixa de dades clau amb el botó d'inscripció i el cartell en
 * miniatura, subnavegació local i seccions amb filets.
 * ------------------------------------------------------------------------- */
.gx-event .gx-event__type {
	margin-block: 0.25rem 0.5rem !important;
}
.gx-event__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2rem);
	align-items: start;
	margin-block: 0.5rem clamp(1.25rem, 3vw, 2rem) !important;
}
@media (min-width: 782px) {
	.gx-event__head.has-poster {
		grid-template-columns: minmax(0, 1fr) 200px;
	}
}
.gx-event__facts {
	border-top: 2px solid var(--gx-brand);
	border-bottom: 1px solid var(--gx-line);
	padding-block: 0.25rem 1.25rem;
}
.gx-facts {
	margin: 0 0 1.25rem;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(1rem, 3vw, 2rem);
}
.gx-facts__row {
	padding-block: 0.75rem;
	border-bottom: 1px solid var(--gx-line);
}
.gx-facts dt {
	margin: 0 0 0.2rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gx-muted);
}
.gx-facts dd {
	margin: 0;
	font-size: 1rem;
	line-height: 1.45;
	color: var(--gx-ink);
}
.gx-facts__cta,
.gx-facts__status {
	margin: 0 !important;
}
.gx-facts__status {
	display: inline-block;
	padding: 0.6rem 0.9rem;
	border-left: 3px solid var(--gx-muted);
	background: var(--gx-paper-alt);
	font-weight: 600;
	color: var(--gx-ink);
}
.gx-event__poster {
	margin: 0 !important;
}
.gx-event__poster a {
	display: block;
	text-decoration: none !important;
	color: var(--gx-brand) !important;
}
.gx-event__poster img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--wp--custom--radius--media, 8px);
	border: 1px solid var(--gx-line);
}
.gx-event__poster-label {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 1rem;
	text-decoration: underline;
	text-decoration-color: var(--gx-accent);
	text-underline-offset: 3px;
}
@media (max-width: 781px) {
	.gx-facts {
		grid-template-columns: minmax(0, 1fr);
	}
	/* A mòbil el cartell no cal a la primera pantalla: miniatura petita al final de la capçalera */
	.gx-event__poster {
		display: grid;
		grid-template-columns: 88px minmax(0, 1fr);
		gap: 0.75rem;
		align-items: center;
	}
	.gx-event__poster a {
		display: contents;
	}
}
.gx-event .gx-subnav {
	margin-bottom: clamp(1.25rem, 3vw, 2rem) !important;
}
/* Seccions del text: filet superior, títols en pes 400 a mida de sistema */
.gx-event__body > h2 {
	font-family: var(--gx-serif) !important;
	font-weight: 400 !important;
	font-size: clamp(1.375rem, 1.1rem + 0.8vw, 1.75rem) !important;
	line-height: 1.2 !important;
	color: var(--gx-brand) !important;
	margin-top: clamp(1.75rem, 4vw, 2.5rem) !important;
	margin-bottom: 0.75rem !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gx-line);
}
.gx-event__body > h2:first-child {
	margin-top: 0 !important;
	padding-top: 0;
	border-top: 0;
}
.gx-event__body > h3 {
	font-family: var(--gx-serif) !important;
	font-weight: 400 !important;
	font-size: var(--wp--preset--font-size--subsection, 1.375rem) !important;
	line-height: 1.25 !important;
	color: var(--gx-brand) !important;
	text-transform: none !important;
	margin-top: 1.5rem !important;
	margin-bottom: 0.5rem !important;
}
.gx-event__body > :is(p, ul, ol) {
	max-width: none !important;
}
.gx-event__body #gx-event-register {
	margin-top: clamp(2rem, 5vw, 3rem) !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gx-line);
}
