/* ==========================================================================
   Läsfrämjarinstitutet – ”Institutet”
   Redaktionellt och förtroendeingivande. Varmt papper, serifrubriker,
   disciplinerat raster och sparsam accentfärg.

   1. Tokens och grund          8. Platser och kontaktkort
   2. Knappar                   9. Personer
   3. Sidhuvud och menyer      10. Publikationer och dokument
   4. Sektioner                11. Finansiärer och Giva
   5. Startsidan               12. Formulär
   6. Undersidor               13. Nyheter, arkiv och sök
   7. Innehåll och block       14. Sidfot
                               15. Anpassning till skärmstorlek
   ========================================================================== */

/* ---------- 1. Tokens och grund ---------- */

:root {
	--ink:       #1b1a17;
	--ink-2:     #514c45;
	--ink-3:     #736b61;
	--paper:     #fbf7f0;
	--paper-2:   #f3ece0;
	--paper-3:   #e8dfd0;
	--line:      #ddd2c0;
	--magenta:   #c8005f;
	--magenta-2: #a30a53;
	--teal:      #0e6a5e;
	--saffron:   #e2960c;
	--on-ink:    #cfc7ba;
	--on-ink-2:  #9a9287;

	--wrap:    1180px;
	--gutter:  clamp(1.25rem, 4vw, 3rem);
	--section: clamp(4rem, 9vw, 7.5rem);
	--prose:   44rem;

	--serif: "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;
	--sans:  Inter, "Segoe UI", system-ui, -apple-system, sans-serif;

	--shadow: 0 16px 36px rgba(27, 26, 23, .1);
	--veil:   linear-gradient(to right, rgba(27, 26, 23, .82) 0%, rgba(27, 26, 23, .55) 55%, rgba(27, 26, 23, .3) 100%);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	scroll-padding-top: 5.5rem;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font: 400 17px/1.65 var(--sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	/* Långa ord och adresser bryts hellre än att sidan blir bredare än skärmen. */
	overflow-wrap: break-word;
}

html.has-open-nav { overflow: hidden; }

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

h1, h2, h3, h4 {
	font-family: var(--serif);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -.015em;
	margin: 0;
	text-wrap: balance;
	overflow-wrap: break-word;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

:focus-visible {
	outline: 2px solid var(--magenta);
	outline-offset: 3px;
}
.section--ink :focus-visible,
.p-start-hero :focus-visible,
.p-hero--media :focus-visible,
.p-cta :focus-visible { outline-color: var(--saffron); }

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

.skip {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--ink);
	color: var(--paper);
	padding: .8rem 1.2rem;
	z-index: 100;
	text-decoration: none;
	font-weight: 600;
}
.skip:focus { left: .5rem; top: .5rem; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Nummer som inte ska brytas vid bindestrecket (org.nr, bankgiro). */
.nowrap { white-space: nowrap; }

.icon { width: 1em; height: 1em; flex: none; }
.arrow { display: inline-block; transition: transform .16s ease; }

/* ---------- 2. Knappar ---------- */

.btn,
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .85rem 1.5rem;
	border-radius: 2px;
	font: 600 .95rem/1.2 var(--sans);
	text-decoration: none;
	border: 1.5px solid transparent;
	background: var(--magenta);
	color: #fff;
	transition: background .16s ease, color .16s ease, border-color .16s ease;
	cursor: pointer;
}
.btn:hover,
.wp-block-button .wp-block-button__link:hover { background: var(--magenta-2); color: #fff; }
.btn:hover .arrow,
.link-arrow:hover .arrow { transform: translateX(3px); }

.btn--ghost,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--ink);
	color: var(--ink);
}
.btn--ghost:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--ink); color: var(--paper); }

.btn--light,
.wp-block-button.is-style-lfi-light .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, .45);
	color: var(--paper);
}
.btn--light:hover,
.wp-block-button.is-style-lfi-light .wp-block-button__link:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }

.btn--sm { padding: .6rem 1.05rem; font-size: .86rem; }

/* Textlänk med pil (mockupens .row-link). */
.link-arrow,
.wp-block-button.is-style-lfi-link .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: 0 0 .2rem;
	background: none;
	border: 0;
	border-bottom: 1.5px solid currentColor;
	border-radius: 0;
	font: 600 .92rem/1.2 var(--sans);
	color: var(--magenta);
	text-decoration: none;
}
.wp-block-button.is-style-lfi-link .wp-block-button__link::after { content: "→"; transition: transform .16s ease; }
/* Osynlig kant runt textlänken, så att den är lätt att träffa med fingret. */
.link-arrow,
.wp-block-button.is-style-lfi-link .wp-block-button__link { position: relative; }
.link-arrow::before,
.wp-block-button.is-style-lfi-link .wp-block-button__link::before { content: ""; position: absolute; inset: -.7rem -.3rem; }
.wp-block-button.is-style-lfi-link .wp-block-button__link:hover { background: none; color: var(--magenta-2); }
.wp-block-button.is-style-lfi-link .wp-block-button__link:hover::after { transform: translateX(3px); }

.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }

/* På mörk botten blir vanliga knappar kvar i magenta, konturknappar ljusa. */
.section--ink .wp-block-button.is-style-outline .wp-block-button__link { border-color: rgba(255, 255, 255, .45); color: var(--paper); }
.section--ink .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--paper); color: var(--ink); }
.section--ink .wp-block-button.is-style-lfi-link .wp-block-button__link,
.section--ink .link-arrow { color: var(--saffron); }

/* ---------- 3. Sidhuvud och menyer ---------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(251, 247, 240, .94);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--line);
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	height: 4.6rem;
}

/* Luften över och under gör länken lika hög som en tryckyta (44 px). */
.logo { flex: none; display: block; padding-block: .45rem; }
.logo img { height: 1.85rem; width: auto; max-width: none; }

.nav { display: flex; align-items: center; gap: .35rem; }
.nav-item { position: relative; }

.nav-link {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .55rem .8rem;
	font: 500 .95rem/1 var(--sans);
	color: var(--ink);
	text-decoration: none;
	border-radius: 2px;
}
.nav-link:hover,
.nav-link.is-active { color: var(--magenta); }

.nav-caret { width: .5rem; height: .5rem; opacity: .5; }

.nav-menu {
	position: absolute;
	top: calc(100% + .2rem);
	left: 0;
	min-width: 15rem;
	background: var(--paper);
	border: 1px solid var(--line);
	box-shadow: 0 20px 40px rgba(27, 26, 23, .13);
	padding: .5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-5px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
/* En osynlig brygga så att menyn inte stängs på väg ned med musen. */
.nav-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -.5rem; height: .5rem; }
.nav-item:hover .nav-menu,
.nav-item:focus-within .nav-menu { opacity: 1; visibility: visible; transform: none; }

.nav-menu a {
	display: block;
	padding: .5rem .7rem;
	font-size: .92rem;
	text-decoration: none;
	color: var(--ink-2);
}
.nav-menu a:hover { background: var(--paper-2); color: var(--ink); }
.nav-menu a.is-active { color: var(--magenta); font-weight: 600; }

.header-cta { display: flex; align-items: center; gap: .75rem; }

.nav-toggle {
	display: none;
	align-items: center;
	gap: .5rem;
	min-height: 2.75rem;
	background: none;
	border: 1.5px solid var(--ink);
	color: var(--ink);
	padding: .55rem 1rem;
	font: 600 .9rem/1 var(--sans);
	border-radius: 2px;
	cursor: pointer;
}
.nav-toggle .icon { width: .95rem; height: .95rem; }
.nav-toggle-close,
.nav-toggle[aria-expanded="true"] .nav-toggle-open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle-close { display: block; }

/* Panelen ligger ovanpå sidan och fyller skärmen under sidhuvudet (4.6rem)
   och rullar för sig själv. Den trycker inte ned sidan, så man står kvar på
   samma ställe när menyn stängs. */
.mobile-nav {
	--header-h: 4.6rem;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: calc(100vh - var(--header-h));
	height: calc(100dvh - var(--header-h));
	border-top: 1px solid var(--line);
	background: var(--paper);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.admin-bar .mobile-nav {
	height: calc(100vh - var(--header-h) - var(--wp-admin--admin-bar--height, 32px));
	height: calc(100dvh - var(--header-h) - var(--wp-admin--admin-bar--height, 32px));
}
.mobile-nav[hidden] { display: none; }
.mobile-nav .wrap { padding-block: .6rem 2rem; }
.mobile-nav-list, .mobile-nav-list ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav-list > li { border-bottom: 1px solid var(--line); padding: .3rem 0 .5rem; }
.mobile-nav-top {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	font: 600 1.25rem/1.2 var(--serif);
	text-decoration: none;
}
.mobile-nav-list ul { display: grid; }
.mobile-nav-list ul a { display: block; padding: .55rem 0; color: var(--ink-2); text-decoration: none; }
.mobile-nav a.is-active,
.mobile-nav-top.is-active { color: var(--magenta); }
.mobile-nav-cta { margin-top: 1.5rem; }

/* På surfplattor ligger avdelningarna i kolumner bredvid varandra. */
@media (min-width: 700px) {
	.mobile-nav-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); column-gap: 2.5rem; }
}
/* Knappen finns redan i sidhuvudet på breda skärmar. */
@media (min-width: 901px) {
	.mobile-nav-cta { display: none; }
}

/* ---------- 4. Sektioner ---------- */

.section { padding-block: var(--section); }
.section--tint { background: var(--paper-2); }
.section--ink  { background: var(--ink); color: var(--paper); }

.sec-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin-bottom: clamp(2rem, 4vw, 3.25rem);
	max-width: 46rem;
}

.eyebrow,
.entry p.is-style-lfi-eyebrow,
p.is-style-lfi-eyebrow {
	font: 600 .74rem/1.2 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--magenta);
	display: flex;
	align-items: center;
	gap: .7rem;
}
.eyebrow::before,
p.is-style-lfi-eyebrow::before {
	content: "";
	width: 1.9rem;
	height: 2px;
	background: currentColor;
	flex: none;
}
.section--ink .eyebrow,
.section--ink p.is-style-lfi-eyebrow { color: var(--saffron); }

.sec-title { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
.sec-lead  { color: var(--ink-2); font-size: 1.08rem; max-width: 40rem; margin: 0; }
.section--ink .sec-title { color: var(--paper); }
.section--ink .sec-lead { color: var(--on-ink); }

/* Blocken inuti en sektion. */
.section-body > * { margin-block: 0; }
.section-body > * + * { margin-block-start: 1.5rem; }
.section-body > :is(p, ul, ol) { max-width: var(--prose); color: var(--ink-2); }
.section-body > h3 { font-size: clamp(1.4rem, 2.4vw, 1.8rem); margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.section-body > h3 + * { margin-block-start: .9rem; }
.section-body > :is(.places, .news, .p-cards, .lfi-grid, .p-parts, .wp-block-gallery) + p { margin-block-start: 1.8rem; }
.section--ink .section-body > :is(p, ul, ol) { color: var(--on-ink); }
.section--ink .section-body > :is(h2, h3) { color: var(--paper); }
.section-body a:not([class]) { color: var(--magenta); text-underline-offset: .15em; }
.section--ink .section-body a:not([class]) { color: var(--paper); }
.section-body > .wp-block-buttons { margin-block-start: 2.2rem; }

/* ---------- 5. Startsidan ---------- */

.site-main--front > * { margin-block: 0; }

.p-start-hero { position: relative; overflow: hidden; background: var(--ink); }
.p-start-media { position: absolute; inset: 0; }
.p-start-media img { width: 100%; height: 100%; object-fit: cover; }
.p-start-media::after { content: ""; position: absolute; inset: 0; background: var(--veil); }

.p-start-inner {
	position: relative;
	z-index: 1;
	padding-block: clamp(4rem, 10vw, 8rem) clamp(3rem, 6vw, 5.5rem);
}
.p-start-hero .eyebrow { color: var(--saffron); }
.p-start-title {
	font-size: clamp(2.4rem, 6vw, 4.4rem);
	line-height: 1.05;
	letter-spacing: -.025em;
	margin: 1.3rem 0 0;
	max-width: 18ch;
	color: var(--paper);
}
.p-start-title em { font-style: normal; color: #ffc0dc; }
.p-start-lead {
	margin: 1.5rem 0 0;
	font-size: 1.13rem;
	max-width: 36rem;
	color: #d8d0c3;
}
.p-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }

/* Nyckeltal */
.p-facts-band {
	background: var(--paper-2);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.p-facts-grid { display: grid; grid-template-columns: repeat(var(--facts, 4), minmax(0, 1fr)); }
.p-fact { padding: 2.1rem 1.6rem 2.1rem 0; border-right: 1px solid var(--line); }
.p-fact:last-child { border-right: 0; }
.p-fact:not(:first-child) { padding-left: 1.6rem; }
.p-fact-num {
	font-family: var(--serif);
	font-size: clamp(2.1rem, 3.4vw, 2.9rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--magenta);
}
.p-fact-label { margin-top: .6rem; font-size: .9rem; line-height: 1.45; color: var(--ink-2); }

/* Bild och text */
.row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
.row + .row { margin-block-start: clamp(3rem, 6vw, 5.5rem) !important; }
.row:nth-of-type(even) .row-media { order: -1; }
.row--text { grid-template-columns: minmax(0, 1fr); }
.row-media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.row-body > * { margin-block: 0; }
.row-body > * + * { margin-block-start: .9rem; }
.row-body p.is-style-lfi-eyebrow {
	color: var(--teal);
	letter-spacing: .14em;
}
.row-body p.is-style-lfi-eyebrow::before { display: none; }
.row-body h2,
.row-body h3 { font-size: clamp(1.7rem, 2.7vw, 2.2rem); }
.row-body p { color: var(--ink-2); }
.row-body .wp-block-buttons { margin-block-start: 1.3rem; }
.section--ink .row-body p { color: var(--on-ink); }
.section--ink .row-body :is(h2, h3) { color: var(--paper); }

/* 4D-delarna – ljus variant på undersidor, mörk i en mörk sektion. */
.p-parts {
	display: grid;
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
	border-radius: 2px;
	overflow: hidden;
}
.p-part {
	background: var(--paper);
	padding: 1.7rem 1.8rem;
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 1.2rem;
}
.p-part-no {
	font-family: var(--serif);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.04em;
	color: var(--magenta);
}
.p-part h3 { font-size: 1.2rem; margin: 0 0 .5rem; letter-spacing: -.02em; }
.p-part p { margin: 0; font-size: .94rem; color: var(--ink-2); }

.section--ink .p-parts {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	background: rgba(255, 255, 255, .16);
	border-color: rgba(255, 255, 255, .16);
	border-radius: 0;
}
.section--ink .p-part { background: var(--ink); padding: 2rem 2rem 2.2rem; display: block; }
.section--ink .p-part-no { font-size: 2.6rem; font-weight: 600; color: var(--saffron); margin-bottom: .9rem; }
.section--ink .p-part h3 { font-size: 1.35rem; margin-bottom: .7rem; color: var(--paper); }
.section--ink .p-part p { font-size: .95rem; color: var(--on-ink); }

/* ---------- 6. Undersidor ---------- */

.p-hero {
	position: relative;
	background: var(--paper-2);
	border-bottom: 1px solid var(--line);
	overflow: hidden;
}
.p-hero--media { border-bottom: 0; background: var(--ink); }
.p-hero-media { position: absolute; inset: 0; }
.p-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.p-hero-media::after { content: ""; position: absolute; inset: 0; background: var(--veil); }

.p-hero-inner {
	position: relative;
	z-index: 1;
	padding-block: clamp(2.25rem, 5vw, 3.75rem) clamp(2.25rem, 5vw, 3.5rem);
}
.p-hero--media .p-hero-inner { padding-block: clamp(3.5rem, 8vw, 6rem) clamp(3rem, 6vw, 4.5rem); }

.p-trail {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	font-size: .85rem;
	color: var(--ink-3);
	margin-bottom: 1.2rem;
}
.p-trail a { text-decoration: none; color: inherit; padding-block: .45rem; margin-block: -.45rem; }
.p-trail a:hover { color: var(--magenta); }
.p-trail .is-current { color: var(--ink); font-weight: 600; }
.p-hero--media .p-trail { color: #d8d0c3; }
.p-hero--media .p-trail .is-current { color: var(--paper); }
.p-hero--media .p-trail a:hover { color: var(--paper); }

.p-title {
	font-size: clamp(2rem, 4.6vw, 3.4rem);
	line-height: 1.06;
	letter-spacing: -.025em;
	margin: 0;
	max-width: 24ch;
}
.p-lead {
	margin: 1.1rem 0 0;
	font-size: 1.12rem;
	color: var(--ink-2);
	max-width: 42rem;
}
.p-hero--media .p-title { color: var(--paper); }
.p-hero--media .p-lead  { color: #d8d0c3; }

/* Sidhuvud med ett block under ingressen (besöksadresserna på Kontakta oss).
   Blocket ligger på den tonade ytan och sticker ut en bit nedanför den. */
.p-hero--feature {
	--overhang: clamp(3rem, 7vw, 5rem);
	overflow: visible;
	border-bottom: 0;
	background: linear-gradient(
		var(--paper-2) calc(100% - var(--overhang)),
		var(--line) 0 calc(100% - var(--overhang) + 1px),
		var(--paper) 0
	);
}
.p-hero--feature .p-hero-inner { padding-bottom: 0; }
.p-hero-feature { margin-top: clamp(2.25rem, 5vw, 3.25rem); }
.p-hero--media.p-hero--feature { background: linear-gradient(var(--ink) calc(100% - var(--overhang)), var(--paper) 0); }
.p-hero--media.p-hero--feature .p-hero-media { bottom: var(--overhang); }
.p-hero--media .p-hero-feature .eyebrow { color: var(--saffron); }

.p-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1rem;
	margin: 0 0 1rem;
	font-size: .88rem;
	color: var(--ink-2);
}
.p-meta-kicker {
	font: 600 .72rem/1 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--teal);
}

.p-layout {
	display: grid;
	grid-template-columns: 15rem minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
	padding-block: clamp(2.75rem, 6vw, 4.5rem) clamp(3.5rem, 8vw, 6rem);
}
.p-layout--wide { grid-template-columns: minmax(0, 1fr); }

.p-sidenav { position: sticky; top: 6rem; }
.admin-bar .p-sidenav { top: calc(6rem + var(--wp-admin--admin-bar--height, 32px)); }
.p-sidenav h2 {
	font: 700 .74rem/1.3 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin: 0 0 1rem;
	padding-bottom: .8rem;
	border-bottom: 1px solid var(--line);
}
.p-sidenav ul { list-style: none; margin: 0; padding: 0; }
.p-sidenav li { border-bottom: 1px solid var(--line); }
.p-sidenav a {
	display: block;
	padding: .7rem 0;
	font-size: .94rem;
	text-decoration: none;
	color: var(--ink-2);
}
.p-sidenav a:hover { color: var(--ink); }
.p-sidenav a.is-active {
	color: var(--magenta);
	font-weight: 600;
	border-left: 2px solid var(--magenta);
	padding-left: .7rem;
	margin-left: -.72rem;
}

.p-content { min-width: 0; }

/* ---------- 7. Innehåll och block ---------- */

.entry > * { margin-block: 0; }
.entry > * + * { margin-block-start: 1.1rem; }
.entry > :is(p, ul, ol, h2, h3, h4, blockquote, .wp-block-quote, .wp-block-file) { max-width: var(--prose); }
.entry > p,
.entry > ul:not([class*="is-style"]),
.entry > ol:not([class*="is-style"]) { color: var(--ink-2); }
/* Länkar i löpande text (komponenternas länkar har egna klasser och färger). */
.entry a:not([class]) { color: var(--magenta); text-underline-offset: .15em; }
.entry a:not([class]):hover { color: var(--magenta-2); }
.entry strong { color: var(--ink); font-weight: 600; }

.entry > h2 {
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	letter-spacing: -.02em;
	margin-block-start: clamp(2.5rem, 5vw, 3.5rem);
}
.entry > h2 + * { margin-block-start: 1.3rem; }
.entry > h3 {
	font-size: clamp(1.3rem, 2.2vw, 1.7rem);
	letter-spacing: -.02em;
	margin-block-start: clamp(2rem, 4vw, 2.8rem);
}
.entry > h3 + * { margin-block-start: .7rem; }
.entry > h4 { font-size: 1.15rem; margin-block-start: 1.8rem; }
.entry > h4 + * { margin-block-start: .5rem; }
.entry > :first-child { margin-block-start: 0; }

/* Rubrik i små versaler, som gruppnamnen bland medarbetarna. */
h2.is-style-lfi-caps,
h3.is-style-lfi-caps,
.people-group-title {
	font: 600 .95rem/1.3 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ink-3);
	padding-bottom: .8rem;
	border-bottom: 1px solid var(--line);
	margin-bottom: 1.8rem;
	max-width: none;
}
.entry > .is-style-lfi-caps { margin-block-start: 3rem; }
.entry > .is-style-lfi-caps + * { margin-block-start: 0; }

/* Ingress */
.entry p.is-style-lfi-lead,
p.is-style-lfi-lead {
	font-size: 1.16rem;
	line-height: 1.6;
	color: var(--ink);
}

/* Notis */
p.is-style-lfi-note,
.p-note {
	padding: 1.1rem 1.4rem;
	background: var(--paper);
	border-left: 4px solid var(--magenta);
	border-radius: 2px;
	font-size: .96rem;
	color: var(--ink-2);
	max-width: 48rem;
}
.section--tint p.is-style-lfi-note,
.section--tint .p-note { background: var(--paper); }
.p-content p.is-style-lfi-note,
.p-content .p-note { background: var(--paper-2); }
p.is-style-lfi-note strong,
.p-note strong { color: var(--ink); }
.entry > p.is-style-lfi-note { margin-block-start: 1.6rem; }

/* Stort citat (visionen) */
p.is-style-lfi-quote {
	font-family: var(--serif);
	font-size: clamp(1.6rem, 3.4vw, 2.5rem);
	font-weight: 600;
	line-height: 1.14;
	letter-spacing: -.025em;
	color: var(--ink);
	max-width: 24ch;
}
.entry > p.is-style-lfi-quote { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.entry > p.is-style-lfi-eyebrow + p.is-style-lfi-quote { margin-block-start: 1rem; }
.entry > :is(.places, .p-contact, .p-parts, .lfi-grid, .p-cards, .people-group, .pubs) + :is(p, ul, ol) { margin-block-start: 1.8rem; }
.entry > p.is-style-lfi-quote + * { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.section--ink p.is-style-lfi-quote { color: var(--paper); }

/* Källhänvisning */
p.is-style-lfi-source { font-size: .87rem; color: var(--ink-3); font-style: italic; }
.section--ink p.is-style-lfi-source { color: var(--on-ink-2); }
.entry > .p-parts + p.is-style-lfi-source,
.section-body > .p-parts + p.is-style-lfi-source { margin-block-start: 1.4rem; }

/* Siffra med etikett: stycket blir en etikett och det fetstilta en stor
   siffra under den, t.ex. bankgirot. */
p.is-style-lfi-figure {
	font: 600 .72rem/1.3 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
}
p.is-style-lfi-figure strong {
	display: block;
	margin-top: .35rem;
	font: 600 clamp(1.9rem, 3.6vw, 2.5rem)/1.1 var(--serif);
	letter-spacing: -.02em;
	text-transform: none;
	color: var(--magenta);
}

/* Vanliga listor */
.entry > ul:not([class*="is-style"]),
.entry > ol:not([class*="is-style"]) { padding-left: 1.3rem; }
.entry > ul:not([class*="is-style"]) li + li,
.entry > ol:not([class*="is-style"]) li + li { margin-top: .35rem; }

/* Linjerad lista */
ul.is-style-lfi-facts,
.p-facts {
	list-style: none;
	margin-inline: 0;
	padding: 0;
	border-top: 1px solid var(--line);
	max-width: 48rem;
}
ul.is-style-lfi-facts li,
.p-facts li {
	position: relative;
	padding: .8rem 0 .8rem 1.5rem;
	border-bottom: 1px solid var(--line);
	font-size: .95rem;
	color: var(--ink-2);
}
ul.is-style-lfi-facts li::before,
.p-facts li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.3rem;
	width: .45rem;
	height: .45rem;
	border-radius: 50%;
	background: var(--magenta);
}
.section--ink ul.is-style-lfi-facts { border-color: rgba(255, 255, 255, .16); }
.section--ink ul.is-style-lfi-facts li { color: var(--on-ink); border-color: rgba(255, 255, 255, .16); }
.section--ink ul.is-style-lfi-facts li::before { background: var(--saffron); }

/* Manifestet */
ol.is-style-lfi-manifest { list-style: none; margin-inline: 0; padding: 0; counter-reset: manifest; max-width: 48rem; }
ol.is-style-lfi-manifest li {
	counter-increment: manifest;
	display: grid;
	grid-template-columns: 2.6rem minmax(0, 1fr);
	gap: 1rem;
	padding: 1.05rem 0;
	border-bottom: 1px solid var(--line);
	font-size: 1.02rem;
	line-height: 1.5;
	color: var(--ink);
}
ol.is-style-lfi-manifest li:first-child { border-top: 1px solid var(--line); }
ol.is-style-lfi-manifest li::before {
	content: counter(manifest, decimal-leading-zero);
	font: 700 .82rem/1.6 var(--sans);
	letter-spacing: .06em;
	color: var(--magenta);
}

/* Dokumentlänkar i en vanlig lista */
ul.is-style-lfi-docs { list-style: none; margin-inline: 0; padding: 0; }
ul.is-style-lfi-docs li { border-bottom: 1px solid var(--line); }
ul.is-style-lfi-docs a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .95rem 0;
	text-decoration: none;
	color: var(--ink) !important;
}
ul.is-style-lfi-docs a::after { content: "PDF"; font-size: .74rem; letter-spacing: .1em; color: var(--ink-3); }
ul.is-style-lfi-docs a:hover { color: var(--magenta) !important; }

/* Uppgifter: det fetstilta först i punkten blir en etikett ovanför värdet.
   Med tre uppgifter hamnar kolumnerna i linje med besöksadressernas kort
   (tomma spår faller bort med auto-fit). */
ul.is-style-lfi-details {
	list-style: none;
	margin-inline: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 1.6rem 1.4rem;
}
.entry > ul.is-style-lfi-details { max-width: none; }
ul.is-style-lfi-details li {
	padding-top: 1rem;
	border-top: 2px solid var(--ink);
	line-height: 1.5;
	color: var(--ink);
}
ul.is-style-lfi-details li > strong:first-child {
	display: block;
	margin-bottom: .35rem;
	font: 600 .72rem/1.3 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
}

/* Citat */
.wp-block-quote {
	margin-inline: 0;
	padding: .3rem 0 .3rem 1.6rem;
	border-left: 3px solid var(--saffron);
	font-family: var(--serif);
	font-size: 1.2rem;
	line-height: 1.5;
	color: var(--ink);
}
.wp-block-quote p { margin: 0 0 .8em; }
.wp-block-quote cite {
	display: block;
	margin-top: .6rem;
	font: 500 .88rem/1.4 var(--sans);
	font-style: normal;
	color: var(--ink-3);
}

/* Bilder */
.entry figure { margin-inline: 0; }
.wp-block-image img { height: auto; }
.wp-block-image figcaption,
.wp-element-caption { margin-top: .6rem; font-size: .85rem; color: var(--ink-3); }
.entry > .wp-block-image { margin-block-start: 2rem; }
.entry > .wp-block-image + * { margin-block-start: 2rem; }
.wp-block-image.is-style-lfi-poster { background: var(--paper-3); padding: 1rem; }
.wp-block-image.is-style-lfi-poster img { margin-inline: auto; max-height: 34rem; width: auto; }

/* Galleri (t.ex. bilderna på Läslandet): kvadratiska bilder, två i bredd om
   inget annat är valt. WordPress egen bildbredd räknar med ett annat
   mellanrum än temats – då hamnade bilderna en och en på mobilen – så
   rutnätet sätts här. */
.entry > .wp-block-gallery:not(.is-style-lfi-logos) { margin-block-start: 2rem; }
.wp-block-gallery.has-nested-images:not(.is-style-lfi-logos) {
	display: grid;
	grid-template-columns: repeat(var(--gallery-cols, 2), minmax(0, 1fr));
	gap: .8rem;
}
.wp-block-gallery.has-nested-images:not(.is-style-lfi-logos) figure.wp-block-image { width: auto !important; }
.wp-block-gallery.has-nested-images:not(.is-style-lfi-logos) figure.wp-block-image img { aspect-ratio: 1; object-fit: cover; }
.wp-block-gallery.columns-1 { --gallery-cols: 1; }
@media (min-width: 621px) {
	.wp-block-gallery.columns-3 { --gallery-cols: 3; }
	.wp-block-gallery.columns-4 { --gallery-cols: 4; }
	.wp-block-gallery.columns-5 { --gallery-cols: 5; }
	.wp-block-gallery:is(.columns-6, .columns-7, .columns-8) { --gallery-cols: 6; }
}

/* Uppmaning */
.p-cta {
	padding: 1.9rem 2rem;
	background: var(--ink);
	color: var(--paper);
	border-radius: 2px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.3rem;
	max-width: none;
}
.entry > .p-cta,
.section-body > .p-cta { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.p-cta-title { font-size: 1.4rem; margin: 0 0 .4rem; letter-spacing: -.02em; color: var(--paper); }
.p-cta p { margin: 0; font-size: .96rem; color: var(--on-ink); max-width: 36rem; }

/* Tonad ruta. Ligger Tryggt givande i rutan (gåvor på Kontakta oss) hamnar
   märket till höger på breda skärmar. */
.wp-block-group.is-style-lfi-panel {
	padding: clamp(1.6rem, 4vw, 2.5rem);
	background: var(--paper-2);
	border-top: 3px solid var(--magenta);
}
.entry > .is-style-lfi-panel { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.is-style-lfi-panel > * { margin-block: 0; }
.is-style-lfi-panel > * + * { margin-block-start: 1.2rem; }
.is-style-lfi-panel > :is(h2, h3) { font-size: clamp(1.45rem, 2.6vw, 1.9rem); letter-spacing: -.02em; }
.is-style-lfi-panel > p:not([class]) { color: var(--ink-2); }
.is-style-lfi-panel > .giva { margin-block-start: 1.8rem; padding-top: 1.6rem; border-top: 1px solid var(--line); }

/* Uppgifter i rutan blir ljusa kort (Läslandet Klubben). Ett andra fetstilt
   ord efter etiketten blir kortets rubrik, t.ex. dag och tid. */
.is-style-lfi-panel > ul.is-style-lfi-details { margin-block-start: 1.6rem; gap: 1rem; }
.is-style-lfi-panel > ul.is-style-lfi-details + * { margin-block-start: 1.6rem; }
.is-style-lfi-panel ul.is-style-lfi-details li {
	padding: 1.15rem 1.3rem 1.3rem;
	background: var(--paper);
	border-top-color: var(--magenta);
	font-size: .95rem;
	color: var(--ink-2);
}
.is-style-lfi-panel ul.is-style-lfi-details li > strong:first-child { color: var(--magenta); }
.is-style-lfi-panel ul.is-style-lfi-details li > strong:first-child + strong {
	display: block;
	margin-bottom: .45rem;
	font: 600 1.2rem/1.35 var(--serif);
	letter-spacing: -.01em;
	color: var(--ink);
}
/* Rubriken är redan en egen rad; radbrytningen efter den behövs bara utan CSS. */
.is-style-lfi-panel ul.is-style-lfi-details li > strong:first-child + strong + br { display: none; }

@media (min-width: 901px) {
	/* Andra raden tar upp det märket är högre, så att rubrik och siffra
	   håller ihop överst. */
	.is-style-lfi-panel:has(> .giva) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
		grid-template-rows: auto 1fr;
		column-gap: clamp(2rem, 4vw, 3.5rem);
	}
	.is-style-lfi-panel:has(> .giva) > * { grid-column: 1; }
	.is-style-lfi-panel > .giva {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: start;
		margin: 0;
		padding: 0 0 0 clamp(2rem, 4vw, 3.5rem);
		border-top: 0;
		border-left: 1px solid var(--line);
	}
}

/* Kort till undersidor */
.p-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1.2rem;
}
.entry > .p-cards { margin-block-start: clamp(2rem, 4vw, 3rem); }
.p-card {
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--line);
	border-top: 3px solid transparent;
	border-radius: 2px;
	text-decoration: none;
	color: inherit;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
/* Korten lyfts bara med muspekare – på pekskärmar fastnar hovringen efter ett tryck. */
@media (hover: hover) {
	.p-card:hover {
		transform: translateY(-3px);
		border-color: var(--line);
		border-top-color: var(--magenta);
		box-shadow: var(--shadow);
	}
	.p-card:hover .p-card-media img { transform: scale(1.04); }
}
.p-card:focus-visible { border-top-color: var(--magenta); }
.p-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.6rem 1.6rem 1.7rem; }
.p-card-title { display: block; font: 600 1.25rem/1.15 var(--serif); letter-spacing: -.02em; margin: 0 0 .55rem; }
.p-card-text { display: block; font-size: .93rem; color: var(--ink-2); }
.p-card-more { display: block; margin-top: auto; padding-top: 1.2rem; font: 600 .87rem/1 var(--sans); color: var(--magenta); }
.p-card-media { display: block; overflow: hidden; }
.p-card-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .5s ease; }
a.p-card:not(:has(.p-card-body)) { padding: 1.6rem; }

/* Rutnät med kort (Anlita oss) */
.lfi-grid { display: grid; gap: 1.6rem; }
.lfi-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lfi-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lfi-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.entry > .lfi-grid { margin-block-start: 2rem; }

.offer {
	background: var(--paper);
	border: 1px solid var(--line);
	border-top: 3px solid var(--magenta);
	overflow: hidden;
}
.p-content .offer { background: #fffdf9; }
.offer-media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.offer-body { padding: 2rem 1.9rem; }
.offer-body > * { margin-block: 0; }
.offer-body > * + * { margin-block-start: 1rem; }
.offer-body h2,
.offer-body h3 { font-size: 1.45rem; }
.offer-body > h3 + * { margin-block-start: .8rem; }
.offer-body > h4 { font: 600 .82rem/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--teal); margin-block-start: 1.6rem; }
.offer-body > h4 + * { margin-block-start: .4rem; }
.offer-body p { color: var(--ink-2); font-size: .97rem; }
.offer-body ul {
	margin-block-start: 1.2rem;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}
.offer-body li {
	padding: .85rem 0 .85rem 1.5rem;
	border-bottom: 1px solid var(--line);
	font-size: .92rem;
	color: var(--ink-2);
	position: relative;
}
.offer-body li:last-child { border-bottom: 0; padding-bottom: 0; }
.offer-body li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35rem;
	width: .45rem;
	height: .45rem;
	background: var(--saffron);
	border-radius: 50%;
}
.offer-body p.is-style-lfi-note { margin-block-start: 1.2rem; }

/* ---------- 8. Platser och kontaktkort ---------- */

/* Korten blir aldrig så smala att öppettiden bryts på två rader – hellre
   två kort i bredd än tre (t.ex. bredvid sidomenyn på en surfplatta). */
.places {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: 1.6rem;
}
.entry > .places { margin-block-start: 1.6rem; }
.place {
	background: var(--paper);
	border: 1px solid var(--line);
	padding: 1.9rem 1.7rem;
	display: flex;
	flex-direction: column;
}
.p-content .place { background: #fffdf9; }
.place-city {
	font: 600 .72rem/1 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.place h3 { font-size: 1.45rem; margin: .55rem 0 1.3rem; }
.place-hours { border-top: 2px solid var(--ink); padding-top: 1rem; margin-bottom: 1.2rem; }
.place-days { font-weight: 600; font-size: 1rem; }
.place-time {
	font-family: var(--serif);
	font-size: 2rem;
	font-weight: 600;
	letter-spacing: -.02em;
	color: var(--magenta);
	line-height: 1.1;
	margin-top: .15rem;
}
.place-addr {
	display: flex;
	gap: .5rem;
	font-size: .92rem;
	color: var(--ink-2);
	margin-bottom: .9rem;
}
.place-addr .icon { margin-top: .25rem; color: var(--ink-3); }
.place-note { font-size: .88rem; color: var(--ink-3); }
.place-note p { margin: 0 0 .6em; }
.place-actions {
	margin-top: auto;
	padding-top: 1.4rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .8rem 1.2rem;
}
.place-pdf {
	font: 600 .87rem/1.2 var(--sans);
	color: var(--teal);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding-block: .6rem;
}
.place-pdf:hover { text-decoration: underline; }

/* Besöksadresser. Korten delar rader (subgrid), så att skiljelinjen och
   öppettiderna ligger i höjd med varandra även när adresserna är olika
   långa. Radavståndet är noll – luften kommer från kortens marginaler. */
.entry > .p-contact { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.p-contact-title { margin: 0 0 1.3rem; }
.p-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 0 1.4rem;
	margin-bottom: -1.4rem;
}
.contact-card {
	grid-row: span 6;
	display: grid;
	grid-template-rows: subgrid;
	row-gap: 0;
	margin-bottom: 1.4rem;
	padding: 1.9rem 1.8rem 1.8rem;
	background: #fffdf9;
	border: 1px solid var(--line);
	border-top: 3px solid var(--magenta);
	box-shadow: 0 18px 40px -22px rgba(27, 26, 23, .28);
}
.contact-card-city {
	grid-row: 1;
	margin: 0;
	font: 600 .72rem/1.2 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.contact-card-name { grid-row: 2; margin: .6rem 0 1.1rem; font-size: clamp(1.45rem, 2.3vw, 1.75rem); }
.contact-card-addr {
	grid-row: 3;
	display: flex;
	gap: .55rem;
	margin: 0 0 1.4rem;
	line-height: 1.5;
	color: var(--ink);
}
.contact-card-addr .icon { margin-top: .25rem; color: var(--ink-3); }
.contact-card-hours {
	grid-row: 4 / span 2;
	display: grid;
	grid-template-rows: subgrid;
	margin: 0;
	padding-top: 1.1rem;
	border-top: 1px solid var(--line);
}
/* Tiden stor överst och dagarna som förklaring under, som nyckeltalen. */
.contact-card-time {
	grid-row: 1;
	font: 600 1.75rem/1.1 var(--serif);
	letter-spacing: -.02em;
	color: var(--magenta);
}
.contact-card-days { grid-row: 2; margin-top: .4rem; font-size: .9rem; line-height: 1.45; color: var(--ink-2); }
.contact-card-map { grid-row: 6; justify-self: start; align-self: end; margin-top: 1.6rem; }

/* ---------- 9. Personer ---------- */

.people-group + .people-group,
.entry > .people-group + * { margin-block-start: 3rem; }
.people {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
	gap: 1.8rem 1.4rem;
}
.person-photo {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	filter: saturate(.92);
}
.person-initials {
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--paper-3);
	color: var(--ink-3);
	font: 600 clamp(1.4rem, 3vw, 2rem)/1 var(--serif);
	letter-spacing: .02em;
}
.person-name { margin-top: .85rem; font-weight: 600; font-size: .97rem; line-height: 1.3; }
.person-role { font-size: .84rem; color: var(--ink-3); line-height: 1.4; margin-top: .2rem; }

.people-bios .p-h2,
.p-h2 {
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	letter-spacing: -.02em;
	margin: 0 0 1.4rem;
}
.entry > .people-bios + .people-bios { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); }
.p-blocks { display: flex; flex-direction: column; gap: clamp(2rem, 4vw, 3rem); }
.p-block { max-width: 46rem; }
.p-block-meta {
	font: 700 .72rem/1 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: .7rem;
}
.p-block h3 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); letter-spacing: -.02em; margin: 0 0 .7rem; }
.p-person { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1.3rem; align-items: start; }
.p-person-img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 2px; }
.p-person .person-initials { border-radius: 2px; font-size: 1.5rem; }
.p-person-bio p { margin: 0 0 .8em; color: var(--ink-2); }
.p-person-bio p:last-child { margin: 0; }

/* ---------- 10. Publikationer och dokument ---------- */

.pubs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
	gap: 1.6rem;
}
.pub-cover {
	display: grid;
	place-items: center;
	background: var(--paper-3);
	padding: 1.5rem;
	transition: background .18s ease;
}
.pub-cover:hover { background: #e2d7c4; }
.pub-cover img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: contain;
	filter: drop-shadow(0 10px 22px rgba(27, 26, 23, .18));
}
.pub-body { padding-top: 1.1rem; }
.pub-type {
	font: 600 .7rem/1 var(--sans);
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--teal);
}
.pub h3 { font-size: 1.15rem; margin: .55rem 0 .5rem; }
.pub h3 a { text-decoration: none; color: var(--ink) !important; }
.pub h3 a:hover { color: var(--magenta) !important; }
.pub p { font-size: .9rem; color: var(--ink-2); margin: 0; }
.pub-pdf {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin: .3rem 0 -.6rem;
	padding-block: .6rem;
	font: 600 .85rem/1.2 var(--sans);
	color: var(--teal) !important;
	text-decoration: none;
}
.pub-pdf:hover { text-decoration: underline; }

.doc-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 2.5rem;
	border-top: 1px solid var(--line);
}
.doc-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .95rem 0;
	border-bottom: 1px solid var(--line);
	text-decoration: none;
	font-size: .95rem;
	color: var(--ink) !important;
}
.doc-list a:hover { color: var(--magenta) !important; }
.doc-tag { font-size: .74rem; letter-spacing: .1em; color: var(--ink-3); flex: none; }

/* ---------- 11. Finansiärer och Giva ---------- */

.wp-block-gallery.is-style-lfi-logos.has-nested-images {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
	margin: 0;
}
.entry > .wp-block-gallery.is-style-lfi-logos { margin-block-start: 1.6rem; }
.wp-block-gallery.is-style-lfi-logos.has-nested-images figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
	background: var(--paper);
	min-height: 8.5rem;
	display: grid;
	place-items: center;
	padding: 1.4rem;
	flex-direction: column;
}
.wp-block-gallery.is-style-lfi-logos.has-nested-images figure.wp-block-image a { display: grid; place-items: center; width: 100%; height: 100%; }
/* Fast ruta: även SVG-loggor utan egen storlek får plats och skalas rätt. */
.wp-block-gallery.is-style-lfi-logos.has-nested-images figure.wp-block-image img {
	width: 100% !important;
	height: 4.4rem !important;
	max-width: 100%;
	object-fit: contain !important;
	filter: grayscale(1);
	opacity: .7;
	transition: filter .2s ease, opacity .2s ease;
}
.wp-block-gallery.is-style-lfi-logos.has-nested-images figure.wp-block-image:hover img { filter: none; opacity: 1; }
/* Bredvid sidomenyn är ytan smalare – färre och större logotyper. */
.p-content .wp-block-gallery.is-style-lfi-logos.has-nested-images { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wp-block-gallery.is-style-lfi-logos figcaption { display: none; }

.giva {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr);
	gap: 1.8rem;
	align-items: center;
	max-width: 46rem;
}
.entry > .giva,
.entry > .wp-block-group.giva,
.section-body > .giva { margin-block-start: 2.5rem; }
.giva > * { margin: 0 !important; }
.giva img { width: 100%; }
.giva p { font-size: .93rem; color: var(--ink-2); margin: 0; }
.giva p + p { margin-top: .3rem; }
.giva p:first-child strong { color: var(--ink); display: block; }

/* ---------- 12. Formulär ---------- */

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.field { display: flex; flex-direction: column; gap: .45rem; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field-label { font: 600 .8rem/1.3 var(--sans); letter-spacing: .04em; color: var(--ink); }
.field-hint { font-weight: 400; color: var(--ink-3); margin-left: .4rem; }

.field-input {
	width: 100%;
	padding: .8rem .9rem;
	background: #fffdf9;
	border: 1px solid var(--line);
	border-radius: 2px;
	color: var(--ink);
	font: 400 .97rem/1.5 var(--sans);
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.field-input:hover { border-color: var(--ink-3); }
.field-input:focus { outline: none; border-color: var(--magenta); box-shadow: 0 0 0 3px rgba(200, 0, 95, .12); background: #fff; }
.field-input::placeholder { color: var(--ink-3); }
select.field-input {
	appearance: none;
	cursor: pointer;
	padding-right: 2.4rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23514c45' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .9rem center;
	background-size: .65rem;
}
textarea.field-input { resize: vertical; min-height: 8rem; }

.is-invalid .field-input { border-color: #b3261e; }
.field-error { font-size: .84rem; color: #b3261e; }

.check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; align-items: start; cursor: pointer; }
.check input { margin-top: .25rem; accent-color: var(--magenta); width: 1rem; height: 1rem; flex: none; }
.check span { font-size: .9rem; color: var(--ink-2); line-height: 1.5; }

.form-alert {
	padding: .85rem 1.1rem;
	margin-bottom: 1.3rem;
	background: #fbeae8;
	border-left: 3px solid #b3261e;
	color: #7d1a15;
	font-size: .92rem;
}
.form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.6rem; }
.form-note { font-size: .84rem; color: var(--ink-3); margin: 0; }
.form-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.form-done { border-left: 3px solid var(--magenta); padding: 1.4rem 1.6rem; background: var(--paper-2); max-width: var(--prose); }
.form-done h3 { font-size: 1.4rem; margin-bottom: .6rem; }
.form-done p { color: var(--ink-2); font-size: .96rem; margin: 0; }

.entry > .contact-form { margin-block-start: 1.6rem; max-width: 46rem; }

/* Formuläret på mörk botten */
.section--ink .field-label { color: var(--paper); }
.section--ink .field-hint,
.section--ink .form-note { color: var(--on-ink-2); }
.section--ink .field-input { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .22); color: var(--paper); }
.section--ink .field-input:focus { border-color: var(--saffron); background: rgba(255, 255, 255, .1); box-shadow: none; }
.section--ink select.field-input option { background: var(--ink); color: var(--paper); }
.section--ink .check span { color: var(--on-ink); }
.section--ink .form-done { background: rgba(255, 255, 255, .05); border-color: var(--saffron); }
.section--ink .form-done h3 { color: var(--paper); }
.section--ink .form-done p { color: var(--on-ink); }

/* Sökformulär */
.search-form { display: flex; gap: .6rem; max-width: 34rem; }
.search-input {
	flex: 1;
	min-width: 0;
	padding: .8rem .9rem;
	background: #fffdf9;
	border: 1px solid var(--line);
	border-radius: 2px;
	font: 400 1rem/1.4 var(--sans);
	color: var(--ink);
}
.search-input:focus { outline: none; border-color: var(--magenta); box-shadow: 0 0 0 3px rgba(200, 0, 95, .12); }
.search-form .btn { justify-content: center; }
/* Sidan hittades inte: korten under sökrutan. */
.search-form + .p-cards { margin-top: clamp(2rem, 5vw, 3rem); }

/* ---------- 13. Nyheter, arkiv och sök ---------- */

.news-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.6rem;
}
.news-grid--archive { grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }

.card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--line);
	color: inherit;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
@media (hover: hover) {
	.card:hover {
		transform: translateY(-4px);
		box-shadow: var(--shadow);
		border-color: var(--ink-3);
	}
	.card:hover .card-media img { transform: scale(1.04); }
	.card:hover .card-media--poster img { transform: scale(1.02); }
	.card:hover .card-more .arrow { transform: translateX(3px); }
}
.card:has(.card-link:focus-visible) {
	transform: translateY(-4px);
	box-shadow: var(--shadow);
	border-color: var(--ink-3);
}
.card-media { overflow: hidden; background: var(--paper-3); }
.card-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.card-media--empty { aspect-ratio: 4 / 3; background: var(--paper-3) url("../img/logo.png") center / 50% auto no-repeat; opacity: .5; }

/* Affischer visas hela – de tål inte att beskäras. */
.card-media--poster img { object-fit: contain; padding: .9rem; }

.card-body { padding: 1.3rem 1.35rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.card-kicker {
	font: 600 .7rem/1.2 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--teal);
	margin-bottom: .7rem;
}
.card-title { font-size: 1.22rem; margin: 0 0 .5rem; overflow-wrap: anywhere; }
.card-link { text-decoration: none; color: var(--ink); }
.card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-link:focus-visible { outline: none; }
.card:has(.card-link:focus-visible) { outline: 2px solid var(--magenta); outline-offset: 3px; }
.card-when { font-size: .85rem; color: var(--ink); font-weight: 600; margin-bottom: .7rem; }
.card p { font-size: .93rem; color: var(--ink-2); margin: 0; }
.card-more {
	margin-top: auto;
	padding-top: 1.1rem;
	font: 600 .87rem/1 var(--sans);
	color: var(--magenta);
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.news-more { margin: 2rem 0 0; }
.section-body > .news + * { margin-block-start: 2rem; }

/* En enskild nyhet */
.post-layout {
	display: grid;
	grid-template-columns: minmax(0, 26rem) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
	padding-block: clamp(2.75rem, 6vw, 4.5rem) clamp(3.5rem, 8vw, 6rem);
}
.post-layout--text { grid-template-columns: minmax(0, 1fr); }
.post-figure { margin: 0; position: sticky; top: 6.5rem; }
.post-figure img { width: 100%; }
.post-figure.is-poster { background: var(--paper-3); padding: 1.2rem; }
.post-body { max-width: var(--prose); }
/* Första stycket blir ingress – utom när det redan har en stil, t.ex. en etikett. */
.post-body > p:first-child:not([class*="is-style-"]) { font-size: 1.12rem; color: var(--ink); }
.post-back { margin-top: 2.5rem !important; font-weight: 600; font-size: .92rem; }
.post-back a { display: inline-block; padding-block: .6rem; margin-block: -.6rem; text-decoration: none; }

/* Sidnumrering */
.pagination { margin-top: 3rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: .55rem .8rem;
	border: 1px solid var(--line);
	text-decoration: none;
	font-weight: 600;
	font-size: .9rem;
	color: var(--ink);
}
.pagination .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.pagination a.page-numbers:hover { border-color: var(--magenta); color: var(--magenta); }

/* Sökresultat. Bara listan – WordPress sätter samma klass på <body>. */
ol.search-results { list-style: none; margin: 2.5rem 0 0; padding: 0; max-width: var(--prose); border-top: 1px solid var(--line); }
.search-result { padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.search-result-type { font: 600 .7rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--teal); margin-bottom: .5rem; }
.search-result h2 { font-size: 1.3rem; margin-bottom: .4rem; }
.search-result h2 a { text-decoration: none; }
.search-result h2 a:hover { color: var(--magenta); }
.search-result p { margin: 0; color: var(--ink-2); font-size: .95rem; }

/* ---------- 14. Sidfot ---------- */

/* Tre våningar: logotyp och rörelsetext, kolumnerna, organisationsuppgifter.
   Texten börjar i linje med andra kolumnen. */
.site-footer {
	background: var(--paper-2);
	border-top: 1px solid var(--line);
	padding-block: clamp(3rem, 6vw, 4.5rem) 2.5rem;
}
.footer-brand,
.footer-cols {
	display: grid;
	grid-template-columns: repeat(var(--footer-cols, 4), minmax(0, 1fr));
	gap: 2.5rem;
	border-bottom: 1px solid var(--line);
}
.footer-brand { align-items: start; padding-bottom: clamp(2.25rem, 4vw, 3rem); }
.footer-brand img { height: 2.2rem; width: auto; }
.footer-brand p {
	grid-column: 2 / -1;
	max-width: 40rem;
	margin: 0;
	font: 400 1.12rem/1.55 var(--serif);
	color: var(--ink-2);
}
.footer-cols { padding-block: clamp(2.25rem, 4vw, 3rem); }
.footer-heading {
	font: 600 .74rem/1.3 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 1rem;
}
.footer-heading a { text-decoration: none; }
.footer-heading a:hover { color: var(--magenta); }
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: .55rem; font-size: .93rem; color: var(--ink-2); }
.footer-col a { font-size: .93rem; text-decoration: none; color: var(--ink-2); }
.footer-col a:hover { color: var(--magenta); }
.footer-social { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1rem; }
.footer-social a { display: inline-flex; align-items: center; gap: .4rem; }
.footer-social .icon { width: 1rem; height: 1rem; }

.footer-bottom {
	padding-top: 1.8rem;
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 2rem;
	justify-content: space-between;
	font-size: .85rem;
	color: var(--ink-3);
}
.footer-bottom a { color: inherit; }
.footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1rem; }

/* ---------- 15. Anpassning till skärmstorlek ---------- */

@media (max-width: 1080px) {
	.news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-block-gallery.is-style-lfi-logos.has-nested-images { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.footer-brand { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
	.footer-brand p { grid-column: auto; }
	.p-facts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.p-fact { border-bottom: 1px solid var(--line); }
	.p-fact:nth-child(2n) { border-right: 0; }
	.p-fact:nth-child(2n + 1) { padding-left: 0; }
	.p-fact:nth-last-child(-n + 2):nth-child(odd),
	.p-fact:nth-last-child(-n + 2):nth-child(odd) ~ .p-fact { border-bottom: 0; }
	.lfi-grid--3, .lfi-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1180px) and (min-width: 901px) {
	.nav-link { padding-inline: .55rem; font-size: .9rem; }
	.header-inner { gap: 1.2rem; }
}

/* Mobilmenyn används på smala skärmar och på pekskärmar utan muspekare
   (surfplattor, mobiler på tvären), där rullgardinsmenyerna inte går att
   öppna genom att hovra. */
@media (max-width: 900px), (hover: none) and (pointer: coarse) {
	.nav { display: none; }
	.nav-toggle { display: inline-flex; }
}

/* Fingervänliga tryckytor, minst 44 px höga. */
@media (max-width: 900px), (pointer: coarse) {
	.btn--sm { min-height: 2.75rem; }
	.footer-heading { margin-bottom: .4rem; }
	.footer-heading a { display: inline-block; padding-block: .5rem; margin-block: -.5rem; }
	.footer-col li { margin-bottom: 0; }
	.footer-col li > a,
	.footer-col .footer-address { display: block; padding-block: .625rem; }
	.footer-social { margin-top: .4rem; }
	.footer-social a { padding-block: .6rem; }
	.footer-links a { display: inline-block; padding-block: .6rem; margin-block: -.6rem; }
	/* Under 16 px zoomar iOS in sidan när fältet får fokus. */
	.field-input { font-size: 1rem; }

	/* Etiketter i versaler blir minst 12 px. */
	.eyebrow,
	.entry p.is-style-lfi-eyebrow,
	p.is-style-lfi-eyebrow,
	p.is-style-lfi-figure,
	ul.is-style-lfi-details li > strong:first-child,
	ul.is-style-lfi-docs a::after,
	.p-sidenav h2,
	.footer-heading,
	.place-city,
	.contact-card-city,
	.p-meta-kicker,
	.p-block-meta,
	.card-kicker,
	.pub-type,
	.doc-tag,
	.search-result-type { font-size: .75rem; }
}

@media (max-width: 900px) {
	.header-cta .btn { display: none; }
	.header-inner { height: 4rem; gap: 1rem; }
	.mobile-nav { --header-h: 4rem; }

	.row, .p-layout, .post-layout, .lfi-grid--2, .lfi-grid--3, .lfi-grid--4 { grid-template-columns: minmax(0, 1fr); }
	.row:nth-of-type(even) .row-media { order: 0; }
	.places, .doc-list, .section--ink .p-parts { grid-template-columns: minmax(0, 1fr); }
	.p-contact-grid { grid-template-columns: minmax(0, 1fr); row-gap: 1.2rem; margin-bottom: 0; }
	.contact-card { grid-row: auto; grid-template-rows: none; margin-bottom: 0; }
	.contact-card-hours { grid-template-rows: none; }
	.p-layout { gap: 2rem; }
	.post-figure { position: static; max-width: 30rem; }

	/* Sidomenyn blir en rad med knappar som rullar i sidled, så att sidans
	   text börjar direkt under. Den aktuella sidan rullas fram i site.js. */
	.p-sidenav { position: static; }
	.p-sidenav h2 { margin-bottom: .9rem; }
	.p-sidenav ul {
		display: flex;
		gap: .5rem;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		margin-inline: calc(var(--gutter) * -1);
		padding-inline: var(--gutter);
		scroll-padding-inline: var(--gutter);
		-webkit-mask-image: linear-gradient(to right, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);
		mask-image: linear-gradient(to right, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);
	}
	.p-sidenav ul::-webkit-scrollbar { display: none; }
	.p-sidenav li { flex: none; border-bottom: 0; }
	.p-sidenav a {
		display: flex;
		align-items: center;
		min-height: 2.75rem;
		padding: .4rem 1rem;
		border: 1px solid var(--line);
		border-radius: 999px;
		font-size: .88rem;
		white-space: nowrap;
	}
	.p-sidenav a.is-active { border: 1px solid var(--magenta); padding-left: 1rem; margin-left: 0; }
}

/* Mobiler på tvären: lägre sidhuvud, så att mer av sidan syns. */
@media (max-height: 500px) and (orientation: landscape) {
	.header-inner { height: 3.5rem; }
	.mobile-nav { --header-h: 3.5rem; }
}

@media (max-width: 620px) {
	body { font-size: 16px; }
	.news-grid { grid-template-columns: minmax(0, 1fr); }
	.wp-block-gallery.is-style-lfi-logos.has-nested-images,
	.p-content .wp-block-gallery.is-style-lfi-logos.has-nested-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.footer-cols { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.footer-brand p { font-size: 1.02rem; }
	.p-facts-grid { grid-template-columns: minmax(0, 1fr); }
	.p-fact { border-right: 0; padding-block: 1.6rem; padding-left: 0 !important; border-bottom: 1px solid var(--line) !important; }
	.p-fact:last-child { border-bottom: 0 !important; }
	.p-part { grid-template-columns: minmax(0, 1fr); gap: .4rem; }
	.section--ink .p-part { padding: 1.6rem 1.4rem 1.8rem; }
	.form-grid { grid-template-columns: minmax(0, 1fr); }
	.search-form { flex-direction: column; }
	.p-cta { padding: 1.6rem 1.4rem; }
	.contact-card { padding: 1.6rem 1.4rem 1.5rem; }
	.place,
	.offer-body { padding: 1.6rem 1.4rem; }
	.people { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	/* Märket ovanför texten, så att texten får hela bredden. */
	.giva { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
	.giva > .wp-block-image { width: 6.5rem; }

	/* Styrelsen: porträtt och namn på en rad, presentationen i full bredd
	   under. */
	.p-person { grid-template-columns: 4rem minmax(0, 1fr); column-gap: 1rem; row-gap: 0; align-items: center; }
	.p-person > div { display: contents; }
	.p-person > :is(.p-person-img, .person-initials) { grid-row: 1 / span 2; align-self: start; }
	.p-person .p-block-meta { grid-column: 2; grid-row: 1; align-self: end; margin-bottom: .35rem; }
	.p-person h3 { grid-column: 2; grid-row: 2; align-self: start; margin: 0; }
	.p-person-bio { grid-column: 1 / -1; margin-top: 1rem; }

	/* Två knappar bredvid varandra blir lika breda och fyller raden – på
	   smala skärmar hamnar de under varandra i full bredd. */
	.p-actions .btn,
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button:not(.is-style-lfi-link) { flex: 1 1 12rem; }
	.p-actions .btn,
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button:not(.is-style-lfi-link) .wp-block-button__link { width: 100%; justify-content: center; }

	/* Långa sammansatta ord i sidrubriken (Verksamhetsberättelse) ska få
	   plats på de minsta skärmarna, och avstavas hellre än bryts mitt i. */
	.p-title { font-size: clamp(1.75rem, 8.9vw, 2rem); }
	.p-title,
	.p-start-title {
		-webkit-hyphens: auto;
		hyphens: auto;
		hyphenate-limit-chars: 14 6 6;
		-webkit-hyphenate-limit-before: 6;
		-webkit-hyphenate-limit-after: 6;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

@media print {
	.site-header, .site-footer, .p-sidenav, .nav-toggle, .mobile-nav { display: none !important; }
	.p-layout { display: block; }
	body { background: #fff; }
}
