/* =========================================================================
   DFFB60 — main stylesheet
   Tokens below are taken from the DFFB design-system Figma page
   (colours, type scale, grid) and the home-page mockup (layout).
   ========================================================================= */

/* ---- ES Allianz / Allianz webfont --------------------------------------
   The DFFB house typeface is "Allianz" ("ES Allianz"); Figma uses Inter as a
   substitute. Per the design system ALL styles are weight 400 (Regular); only
   the uppercase label uses Medium (500). ES Allianz is licensed/commercial and
   is NOT bundled — drop the files into /assets/fonts/ (see fonts/README.txt).
   Inter is listed as the documented fallback.                               */
@font-face {
	font-family: "ES Allianz";
	src: url("../fonts/ESAllianz-Regular.woff2") format("woff2"),
	     url("../fonts/ESAllianz-Regular.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "ES Allianz";
	src: url("../fonts/ESAllianz-Medium.woff2") format("woff2"),
	     url("../fonts/ESAllianz-Medium.woff") format("woff");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

:root {
	--font-sans: "ES Allianz", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	/* Colours (DFFB design system) */
	--color-bg: #f7f6f5;       /* Brand / White — Hauptflaeche */
	--color-fg: #000000;       /* Brand / Black — Text, Logo, Nav */
	--color-accent: #f4516a;   /* Brand / Pink — Hero, Akzente, Hover */
	--color-muted: #505050;    /* Text / Muted — Sekundaertext, Meta */
	--color-line: #e5e5e5;     /* Border / Subtle — Trenner, Outlines */

	/* Type scale (px from design system, expressed responsively) */
	--fs-h1: clamp(2.75rem, 6vw, 4.75rem);   /* 76 */
	--fs-h2: clamp(2rem, 4.5vw, 3.125rem);   /* 50 */
	--fs-h3: clamp(1.5rem, 3vw, 2rem);       /* 32 */
	--fs-body-lg: 1.1875rem;                  /* 19 */
	--fs-body: 1rem;                          /* 16 */
	--fs-label: 0.75rem;                      /* 12 */

	/* Grid / spacing */
	--container-max: 1440px;
	--gutter: 30px;            /* design-system outer margin */
	--space-s: 0.75rem;
	--space-m: 1.5rem;
	--space-l: 3rem;
	--space-xl: 6rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: var(--fs-body);
	line-height: 1.375;          /* 22/16 */
	color: var(--color-fg);
	background: var(--color-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;          /* guard against full-bleed hero overflow */
	letter-spacing: -0.05em;
	line-height: 1;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

/* Generic headings stay black & Regular; pink is applied per design class. */
h1, h2, h3 { font-weight: 400; line-height: 1.1; margin: 0 0 var(--space-m); }

.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* Accessibility helpers */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: .5rem; left: .5rem; width: auto; height: auto; clip: auto;
	padding: .5rem 1rem; background: var(--color-fg); color: #fff; z-index: 1000;
}

/* ---- Header / footer --------------------------------------------------- */
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: var(--space-m); padding-block: var(--space-m);
}
.site-title { font-size: 1.25rem; text-decoration: none; }
.site-nav__menu { list-style: none; display: flex; gap: var(--space-m); margin: 0; padding: 0; }
.site-nav__menu a { text-decoration: none; }
.site-nav__menu a:hover { color: var(--color-accent); }

.site-footer { margin-top: var(--space-xl); } 
.site-footer__inner { padding-block: var(--space-l); }
.site-footer__menu { list-style: none; display: flex; gap: var(--space-m); margin: 0 0 var(--space-s); padding: 0; }
.site-footer__copy { color: var(--color-muted); margin: 0; }
.site-footer__site {
	font-size: 32px;line-height: 1;}
.site-footer__site a {
	white-space: nowrap;
}

.site-nav{
	position: fixed;
}

@media(max-width:768px){
	.site-nav{
	bottom: 20px;
	}
}

.site-header { position: relative; }

/* Featured-image band: only the lower 10% of the image, full-bleed. */
.site-header--media {
	display: flex;
	align-items: center;
	aspect-ratio: var(--header-ar);
	min-height: 64px;                 /* keeps the nav usable if the 10% slice is very short */
	background-image: var(--header-img);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% auto;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;       /* branding removed — nav alone */
}

.site-nav__menu {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: var(--space-l);
}

/* Nav links styled like the hero title. */
.site-nav__menu a {
	font-family: inherit;              /* ES Allianz / Allianz */
	font-weight: 400;                  /* Regular, per the design system */
	color: var(--color-pink);
	text-decoration: none;
	line-height: 1;
	font-size: clamp(1.75rem, 4vw, 3rem); /* ⚠ approximation — see note below */
}

/* ---- Hero (title split, full-bleed image, intro + logo) ---------------- */
.hero-title {
	position: fixed; top: 0; left: 50%; transform: translateX(-50%);
	width: 100%; max-width: var(--container-max);
	display: flex; justify-content: space-between; align-items: baseline;
	gap: var(--space-m); padding: var(--gutter); z-index: 100;
	pointer-events: none; /* clicks pass through to content beneath */
	letter-spacing: -0.2em; 
	transition: all 0.5s ease-in-out;
	
}
.hero-title::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;            /* wider than the title → full-bleed left & right */
	z-index: -1;             /* behind the title text */
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		#f7f6f5 50%,
		rgba(247, 246, 245, 0) 100%
	);
	opacity: 0;
	transition: opacity .3s ease;
}

.hero-title.scrolled::before {
	opacity: 1;
	z-index: -1
		
			transition: opacity .3s ease;


}

.hero-title__part { color: var(--color-accent); font-size: var(--fs-h1); line-height: 1; z-index: 1}
.hero-title--single { justify-content: flex-start; }

/* Full-viewport hero image. */
.hero__media { width: 100%; height: 100vh; height: 100svh; }
.hero__image { width: 100%; height: 100%; object-fit: fill; }

/* The fixed title is the front-page header, so hide the default site header there. */
.dffb60-front .site-header { display: none; }

.intro {
	margin-block: var(--space-xl);
}
.intro__text {
	width: 75%;        /* 9 of 12 columns */
	max-width: 75%;
	color: var(--color-accent);
	font-size: var(--fs-h3);
	line-height: 1.25;
}
.intro__text p { margin: 0 0 var(--space-m); line-height: 1.1}
.intro__text p:last-child { margin-bottom: 0; }

/* Logo: fixed, always visible, bottom-right. */
.site-logo-fixed {
	position: fixed; right: var(--gutter); bottom: var(--gutter);
	z-index: 100; pointer-events: none; /* clicks pass through to content */
}
.site-logo-fixed img { max-width: 200px; height: auto; display: block; }

/* ---- Programme (events grouped by category) ---------------------------- */
.programme-heading {
	text-align: center; color: var(--color-accent);
	font-size: var(--fs-h1); margin: var(--space-xl) 0 var(--space-l);
	position: sticky;
/* display: block; */
top: 25px;
z-index: 99999;
	letter-spacing: -0.05em;
}

.event-group__label {
	text-align: center; color: var(--color-accent);
	text-transform: uppercase; letter-spacing: .04em;
	font-size: var(--fs-h3); margin: var(--space-xl) 0 var(--space-l);
}

.event-list { list-style: none; margin: 0; padding: 0; }
.event-row { border-bottom: 0.01em solid var(--color-accent); }
.event-row__link {
	display: block; text-decoration: none; color: var(--color-accent);
	padding-block: var(--space-m); 
}
.event-row__title,
.event-row__meta { display: block; font-size: var(--fs-h3); line-height: 1.2; }
.event-row__meta { display: block; font-size: var(--fs-h4); line-height: 1.2; letter-spacing: -0.02em; }
.event-row__link:hover { opacity: .65; }

.programme__more { text-align: center; margin-block: var(--space-xl); }
.button--outline {
	display: inline-block; text-decoration: none;
	color: var(--color-accent); border: 1px solid var(--color-accent);
	border-radius: 3px; padding: 1rem 4.5rem; font-size: var(--fs-body-lg);
	background-color: #fff;
}
.button--outline:hover { border-color: var(--color-accent); text-decoration: none;}

/* ---- Single event ------------------------------------------------------ */
.event-single { padding-block: var(--space-l); }
.event-single__date { color: var(--color-accent); margin: 0 0 ; font-size: 32px; letter-spacing: -0.05em;}
.event-single__title { color: var(--color-accent); font-size: var(--fs-h1); margin-bottom: var(--space-s);  letter-spacing: -0.05em;}
.event-single__subtitle { color: var(--color-accent); font-size: var(--fs-h3); margin: 0 0 var(--space-m); }
.event-single__venue { margin: 0 0 var(--space-m); }
.event-single__venue-name, .event-single__address { color: var(--color-accent); letter-spacing: -0.03em;}
.event-single__hero { margin: var(--space-l) 0; }
.event-single__hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.event-single__content { max-width: 70ch; font-size: var(--fs-body-lg); }
.event-single__content p { margin-block: 0 var(--space-m); }

.event-gallery {
	display: grid; gap: var(--space-m); margin-block: var(--space-l);
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

/* ---- Cooperation partners --------------------------------------------- */
.partners { margin-top: var(--space-xl); border-top: 1px solid var(--color-line); padding-top: var(--space-l); }
.partners__title { font-size: var(--fs-label); text-transform: uppercase; letter-spacing: .08em; color: var(--color-muted); font-weight: 500; }
.partners__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-l); }
.partners__logo { max-height: 64px; width: auto; }

/* ---- Responsive -------------------------------------------------------- */
@media (max-width: 800px) {
	.intro__text { width: 100%; max-width: 100%; }
	.site-logo-fixed img { max-width: 140px; }
	.programme-heading{
		position: relative;
	}
}
@media (max-width: 768px) {
	.hero-title { gap:0; }
	.site-header__inner { flex-direction: column; align-items: flex-start; }
	.site-nav__menu { flex-wrap: wrap; }
	.site-logo-fixed img { max-width: 110px; }
	.category-card__title{
		font-size: 38px;
	}
	
	.hero__media{
		height: 75svh
	}
	
	.hero-title{
		padding: 10px;
	}
	
	.hero__image{
		    object-fit: fill;

	}
	.intro{
	margin-block:1rem;
	}

}




/* Front-page categories grid */

.category-card{
	border: 0.03em solid var(--color-accent);
	border-radius: 4px;
	padding:20px;	
}

.categories {
	margin-block: 60px;
}

.programme h4{
	text-align: center;
	margin: 20px auto;
	color: var(--color-accent);
	font-weight: 400;
	letter-spacing: -0.01em;
	margin-top: 80px;
}

.categories__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr); /* each card = 4 of 12 cols */
	gap: 50px;
}

/* Only break the equal-height grid once a card is open */
.categories__grid:has(.category-card.is-open) {
	align-items: start;
}

.category-card__title {
	font-size: 48px;
	font-weight: 400;
	color: var(--color-pink, #F4516A);
	margin: 0 0 .25em;
	line-height: 1;
	text-align: center;
	letter-spacing: -0.04em;
}

.category-card__subtitle {
	font-size: 24px;
	color: var(--color-pink, #F4516A);
	margin: 0 0 .75em;
	text-align: center;
}

.category-card__desc {
	font-size: 16px;
	color: var(--color-text, #000);
}

.category-card__desc p {
	margin: 0 0 1em;
		color: var(--color-pink, #F4516A);
		hyphens: auto;
	letter-spacing: -0.01em;
	line-height: 1.2;
}

.category-card__desc p:last-of-type {
	margin: 0 0 0;
	
}

/* Collapsible category descriptions — only collapse once JS marks the grid */
.categories__grid.is-enhanced .category-card { cursor: pointer; }

.categories__grid.is-enhanced .category-card__desc {
	height: 0;
	overflow: hidden;
	transition: height .35s ease;
}

/* Collapsible category descriptions — only collapse once JS marks the grid */
.categories__grid.is-enhanced .category-card { cursor: pointer; }
.categories__grid.is-enhanced .category-card__desc {
	height: 0;
	overflow: hidden;
	transition: height .35s ease;
}
/* Button link — hidden until the box is expanded */
.categories__grid.is-enhanced .category-card__link {
	display: none;
	text-align: center;
}

.categories__grid.is-enhanced .category-card__link .button--outline{
	padding: 0.5rem 2rem;
}

.categories__grid.is-enhanced .category-card.is-open .category-card__link {
	display: block;
}

/* Tablet: two up */
@media (max-width: 1024px) {
	.categories__grid {
		grid-template-columns: repeat(1, 1fr);
	}
}

/* Mobile: stacked */
@media (max-width: 680px) {
	.categories__grid {
		grid-template-columns: 1fr;
	}
}






/* Site footer */
.site-footer {
	margin-top: 60px;
	padding: 30px 0;
	font-size: 16px;
	line-height: 1.4;
	color: var(--color-text, #000);
	letter-spacing: -0.01em;
}

.site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 40px;
	padding-bottom: 0px;
}

.site-footer p { margin: 0; }

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.site-footer a:hover { text-decoration: none;  color: var(--color-accent);}

.site-footer__legal ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .button--outline {
	border: 1px solid #000;
	padding: 0.5rem 2rem;
	font-size: 75%;
}

.site-footer .button--outline:hover {
	border: 1px solid var(--color-accent);
}

.site-footer__legal  a {
	 font-size: 75%;
	line-height: 1;
}

.site-footer__legal  li {
	line-height: 1;
}

/* Social + logos pushed to the right edge, stacked */
.site-footer__end {
	margin-right: 0px;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 16px;
}

.social-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 18px;
}

.social-list a {
	display: inline-flex;
	color: var(--color-text, #000);
}

.social-list a:hover {
	background-color: transparent;   /* cancel the pink box from .site-footer a:hover */
	color: var(--color-accent);      /* currentColor -> SVG fill turns pink */
}
.site-footer__logos {
	display: flex;
	align-items: center;
	gap: 16px;
}

.site-footer__logos img {
	height: 44px;
	width: auto;
	display: block;
}




@media (max-width: 1440px) {

	.site-footer p{
		font-size: 75%;
	}
	
	.site-footer__logos img{
		height: 44px;
	}
	
	.site-footer__inner{
		gap:40px;
	}
	
	.site-footer .button--outline{
		padding: 0.25rem 1rem
	}
	
	.site-footer__inner.container{ 
		width:75%;
	 	margin-left: 0px;
		flex-wrap: wrap;
	
	}
	
	.site-footer__site{
	}
	
	.site-footer__end{
		flex-direction: row;
		gap:40px;
	}
	

}

/* Stack on mobile */
@media (max-width: 768px) {
	.site-footer__inner { flex-direction: column; }
	.site-footer__end {
		margin-left: 0;
		align-items: center;
		margin-right: 0px;
	}
		.site-footer__inner.container{ align-items: center;text-align: center; width: 100%;}
	.site-footer__end{flex-direction: column; gap:20px;}
	
	.site-footer__site{		margin-bottom: 75px;}
}


.event-date__time{
	display: none;
}


body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;   /* fill at least the viewport */
}

.site-main {
	flex: 1 0 auto;      /* grow to eat free space, never shrink */
}

.site-footer {
	flex-shrink: 0;      /* keep its natural height at the bottom */
}



.event-row__link.is-disabled {
	cursor: default;
	pointer-events: none;
}


.hero{
	position: sticky;
	top:calc(-100vh + 100px)	;
}

.hero::before{
    content: "";
    position: absolute;
    top: auto;
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(rgb(247, 246, 245) 0%, rgba(247, 246, 245, 0) 100%);
    transition: opacity 0.3s;
    height: 20px;
    bottom: -20px;
}

.hero-title:before{
	display: none;
}


/* Language switcher — fixed, right edge, vertically centred */
.lang_sw_wrapper {
	position: fixed;
	top: 50%;
	right: 15px;
	transform: translateY(-50%);
	z-index: 1000;
}

/* Strip WPML's default list/box styling */
.lang_sw_wrapper .wpml-ls,
.lang_sw_wrapper .wpml-ls ul,
.lang_sw_wrapper .wpml-ls li {
	margin: 0;
	padding: 0;
	list-style: none;
	background: none;
	border: 0;
}

.lang_sw_wrapper .wpml-ls ul{
	border: 1px solid #000;          /* black 1px border (footer override) */
	border-radius: 3px;
	padding: 0.2rem 0.2rem;
	background-color: #fff;
}

.wpml-ls-legacy-list-vertical a{
	border: 0;
	text-transform: uppercase;
	padding: 0;
}
.lang_sw_wrapper .wpml-ls li{
	margin-bottom: 5px;
margin-left: 5px;
margin-right: 5px;
}
/* Outline-button look, matching the footer CTA tokens */
/* Outline button — mirrors .site-footer .button--outline exactly */
.lang_sw_wrapper .wpml-ls-link {
	display: inline-block;
	color: var(--color-fg);      /* pink text */
	background-color: #fff;
	
	font-size: 12px;                 /* footer CTA = 75% of its 16px base */
	font-weight: 400;                /* Regular — not Medium, not uppercase */
	text-decoration: none;
	transition: border-color 0.2s ease;
}

.lang_sw_wrapper .wpml-ls-link:hover {
	border-color: var(--color-accent);  /* only the border turns pink */
	color:  var(--color-accent);
}

/* Aktive Sprache: rot, bei Hover schwarz */
.lang_sw_wrapper .wpml-ls-current-language .wpml-ls-link {
	color: var(--color-accent);          /* pink/rot */
	border-color: var(--color-accent);
}
.lang_sw_wrapper .wpml-ls-current-language .wpml-ls-link:hover {
	color: var(--color-fg);              /* schwarz */
	border-color: var(--color-fg);
}

/* Inaktive Sprache(n): schwarz, bei Hover rot */
.lang_sw_wrapper .wpml-ls-item:not(.wpml-ls-current-language) .wpml-ls-link {
	color: var(--color-fg);              /* schwarz */
	border-color: var(--color-fg);
}
.lang_sw_wrapper .wpml-ls-item:not(.wpml-ls-current-language) .wpml-ls-link:hover {
	color: var(--color-accent);          /* rot */
	border-color: var(--color-accent);
}



/* ---- Scroll-Reveal für Section-Inhalte -------------------------------- */
/* Startzustand wird NUR per JS (.reveal) gesetzt → ohne JS bleibt alles sichtbar. */
.reveal {
	opacity: 0;
	transform: translateY(28px);
	/* bewusst nur opacity + transform animieren, kein "all" */
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
}



.single-event .event-single__content{
	max-width: 100%;
}

.post-24  .event-single__content,
.post-51  .event-single__content,
.post-26  .event-single__content,
.post-53  .event-single__content,
.post-28  .event-single__content,
.post-55  .event-single__content,
.post-30  .event-single__content,
.post-58  .event-single__content{
	max-width: 800px;
	margin: 0 auto;
}

.single-event h2 {
	letter-spacing: -0.04em;
	font-weight: 100;
	font-size: 32px;
		color: #f4516a;   /* Brand / Pink — Hero, Akzente, Hover */

}



.single-event h3{
	letter-spacing: -0.03em;
	font-weight: 100;
	font-size: 28px;
	margin-bottom: 12px;
	margin-top: 56px;
	line-height: 1;	
	color: #f4516a;   /* Brand / Pink — Hero, Akzente, Hover */

}



.single-event h4{
	letter-spacing: -0.02em;
	font-weight: 100;
	margin-bottom: 0px;
	color: #000;   /* Brand / Pink — Hero, Akzente, Hover */

}

.single-event p{
		letter-spacing: -0.02em;
	line-height: 1.1;
		color: #f4516a;   /* Brand / Pink — Hero, Akzente, Hover */


}

.post-24  h3,
.post-51  h3{
	margin-top: 0px;
}


.post-24 p:has(+ h3),
.post-51 p:has(+ h3){
  margin-bottom: 0px;
}

.post-26 h3:has(+ p),
.post-25 h3:has(+ p),
.post-28 h3:has(+ p),
.post-55 h3:has(+ p),
.post-30 h3:has(+ p),
.post-58 h3:has(+ p){
  margin-bottom: 5px;
}



.postid-26 .event-single__header,
.postid-53 .event-single__header,
.postid-28 .event-single__header,
.postid-55 .event-single__header,
.postid-30 .event-single__header,
.postid-58 .event-single__header{
	text-align: center;
}

.postid-26 .has-small-font-size,
.postid-53 .has-small-font-size,
.postid-28 .has-small-font-size,
.postid-55 .has-small-font-size,
.postid-30 .has-small-font-size,
.postid-58 .has-small-font-size

{margin-bottom: 5px;
}
/* ---- Kategorie-Seiten-Header (template-category.php) ------------------- */
.category-header {
	text-align: left;
}
.category-header__title {
	color: var(--color-accent);
	font-size: var(--fs-h1);
	letter-spacing: -0.04em;
	margin: 0 0 var(--space-s);
	line-height: 1;
}
.category-header__subtitle {
	color: var(--color-accent);
	font-size: var(--fs-h3);
	margin: 0 0 var(--space-m);
}
.category-header__desc {
	max-width: 70ch;
	color: var(--color-text, #000);
}
.category-header__desc p {
	margin: 0 0 1em;
	line-height: 1.2;
}
.category-header__desc p:last-of-type {
	margin-bottom: 0;
}
.category-header__link {
	margin-top: var(--space-m);
}
.programme__empty {
	text-align: center;
	color: var(--color-muted);
}



/* ---- Kategorie-Seiten-Header (template-category.php) ------------------- */
/* Matcht .event-single__header: linksbündig, Accent-Pink, gleiche Skala. */
.category-header {
	padding-block: var(--space-l);
}
.category-header__title {
	color: var(--color-accent);
	font-size: var(--fs-h1);
	letter-spacing: -0.05em;
	margin: 0 0 var(--space-s);
}
.category-header__subtitle {
	color: var(--color-accent);
	font-size: var(--fs-h3);
	letter-spacing: -0.02em;
	margin: 0 0 var(--space-m);
}
.category-header__desc {
	color: var(--color-accent);
}
.category-header__desc p {
	margin: 0 0 1em;
	line-height: 1.2;
	letter-spacing: -0.02em;
}
.category-header__desc p:last-of-type {
	margin-bottom: 0;
}
.category-header__link {
	margin-top: var(--space-m);
}





.page-template-default {
	
}


.page-template-default .content-area{
	max-width: 800px;
	margin: 0 auto;
	color: #f4516a;
}



.page-template-default h1{
	
}

.page-template-default h2{
	
}

.page-template-default p{
	
	
}


/* =========================================================
   Standard page / Guests (templates/template-guests.php)
   Mirrors .event-single + .category-header
   ========================================================= */

.page-article__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--gutter);
	padding-block: var(--space-l);            /* = .event-single / .category-header */
}

.page-article__header,
.page-article__content {
	grid-column: 1 / span 9;                  /* 9/12, aligned with .intro__text */
}

.page-article__header {
	margin-bottom: var(--space-m);
}

.page-article__title {
	color: var(--color-accent);
	font-size: var(--fs-h1);
	letter-spacing: -0.05em;
	line-height: 1;
	margin: 0;
}

/* Featured image: same treatment as .event-single__hero */
.page-article__figure {
	grid-column: 1 / -1;
	margin: var(--space-l) 0;
}

.page-article__img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.page-article__caption {
	margin-top: var(--space-s);
	font-size: var(--fs-label);
	color: var(--color-muted);
	letter-spacing: -0.01em;
}

/* ---- Editor content — mirrors .single-event typography ---- */

.page-article .entry-content {
	font-size: var(--fs-body-lg);
	color: var(--color-accent);
}

.page-article .entry-content p {
	margin-block: 0 var(--space-m);
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.page-article .entry-content h2 {
	font-size: 32px;
	letter-spacing: -0.04em;
	color: var(--color-accent);
	margin: var(--space-l) 0 var(--space-s);
}

.page-article .entry-content h3 {
	font-size: 28px;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--color-accent);
	margin: 56px 0 12px;
}

.page-article .entry-content h4 {
	font-size: var(--fs-body-lg);
	letter-spacing: -0.02em;
	color: var(--color-fg);
	margin: var(--space-m) 0 0;
}

.page-article .entry-content h2:first-child,
.page-article .entry-content h3:first-child {
	margin-top: 0;
}

.page-article .entry-content h3 + p,
.page-article .entry-content h4 + p {
	margin-top: 5px;
}

.page-article .entry-content a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color 0.2s ease;
}

.page-article .entry-content a:hover {
	color: var(--color-fg);
}

.page-article .entry-content ul,
.page-article .entry-content ol {
	margin: 0 0 var(--space-m);
	padding-left: 1.2em;
	line-height: 1.1;
}

.page-article .entry-content li + li {
	margin-top: 0.4em;
}

.page-article .entry-content hr {
	border: 0;
	border-top: 0.03em solid var(--color-accent);   /* = .category-card border */
	margin-block: var(--space-l);
}

.page-article .entry-content blockquote {
	margin: var(--space-l) 0;
	padding: 0;
	font-size: var(--fs-h3);                         /* = .intro__text */
	line-height: 1.1;
	letter-spacing: -0.03em;
}

.page-article .entry-content figure {
	margin: var(--space-l) 0;
}

.page-article .entry-content figcaption {
	margin-top: var(--space-s);
	font-size: var(--fs-label);
	color: var(--color-muted);
}

.page-article .entry-content .alignwide {
	width: calc(100% / 9 * 12);
}

.page-article .entry-content .alignfull {
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

/* ---- Mobile ---- */
@media (max-width: 800px) {   /* same breakpoint as .intro__text → 100% */
	.page-article__header,
	.page-article__content {
		grid-column: 1 / -1;
	}

	.page-article .entry-content .alignwide {
		width: 100%;
	}
}


.page-template-template-guests .page-article .entry-content figure{
	margin-top: 0px;
}
/* Structured film programmes. */
.subprogramme { margin-block: 4rem; scroll-margin-top: 2rem; }
.subprogramme__title, .subprogramme__date { text-align: center; }
.subprogramme__entry { margin-block: 2rem; }
.subprogramme__details { font-size: 0.85em; }

.event-row__overview {
	color: var(--color-accent);
	max-width: 72ch;
	padding-bottom: var(--space-l);
	font-size: var(--fs-body);
	line-height: 1.45;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}
.event-row__intro { margin: 0.65em 0 1em; color: var(--color-accent); }
.event-row__programme-time { white-space: nowrap; }
.event-row__intro > :first-child { margin-top: 0; }
.event-row__intro > :last-child { margin-bottom: 0; }
.event-row__subprogrammes { margin: 0; padding-left: 1.25em; }
.event-row__subprogrammes > li + li { margin-top: 1.1em; }
.event-row__programme-title { margin: 0; font-size: var(--fs-body-lg); line-height: 1.3; }
.event-row__programme-title a { text-underline-offset: 0.15em; }
.event-row__films { margin: 0.4em 0 0; padding-left: 1.25em; }
.event-row__films > li + li { margin-top: 0.15em; }

/* Keep all overview text, links and list markers in the accent colour. */
.event-row__overview * { color: inherit; }
.event-row__overview li::marker { color: var(--color-accent); }

/* User-defined caption styling; preserve in future updates. */
figcaption{
	font-size: 50%;
	margin-top: 5px;
	color: #999999;
}

/* Film-series overview: one complete subprogramme per desktop column. */
@media (min-width: 1024px) {
	.event-row__overview { max-width: none; }
	.event-row__subprogrammes {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--space-l);
		padding-left: 0;
		list-style: none;
		align-items: start;
	}
	.event-row__subprogrammes > li { min-width: 0; }
	.event-row__subprogrammes > li + li { margin-top: 0; }
}
