/* ==========================================================================
   Bergen Pride – Regnbuedagene i Bergen
   Idea: rain and rainbow. Bergen's rain (sky blue, soap bubbles, the umbrella
   figure in the logo) meets the parade (animated stickers, wide banner type).
   Tokens (colours, fonts, spacing) live in theme.json; this file uses them.

   Colour has a meaning per arena, everywhere on the site:
     Parade = korall, Pride House = rosa, Pride Park = mynte, Mini Pride = sol,
     program = himmel/blekk.
   ========================================================================== */

:root {
	--bp-blekk: var(--wp--preset--color--blekk);
	--bp-natt: var(--wp--preset--color--natt);
	--bp-plomme: var(--wp--preset--color--plomme);
	--bp-himmel: var(--wp--preset--color--himmel);
	--bp-regn: var(--wp--preset--color--regn);
	--bp-rosa: var(--wp--preset--color--rosa);
	--bp-mynte: var(--wp--preset--color--mynte);
	--bp-sol: var(--wp--preset--color--sol);
	--bp-korall: var(--wp--preset--color--korall);
	--bp-papir: var(--wp--preset--color--papir);
	--bp-paraply: var(--wp--preset--gradient--paraply);
	--bp-display: var(--wp--preset--font-family--display);
	--bp-radius: 28px;
	--bp-kant: 2px solid var(--bp-blekk);
	--bp-skygge: 6px 6px 0 var(--bp-blekk);
	--bp-tema: var(--bp-himmel); /* per-arena colour, set by .bp-tema--* */
}

.bp-tema--parade { --bp-tema: var(--bp-korall); }
.bp-tema--house { --bp-tema: var(--bp-rosa); }
.bp-tema--park { --bp-tema: var(--bp-mynte); }
.bp-tema--mini { --bp-tema: var(--bp-sol); }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

::selection { background: var(--bp-rosa); color: var(--bp-blekk); }

:where(a, button, summary, input):focus-visible {
	outline: 3px solid var(--bp-korall);
	outline-offset: 3px;
	border-radius: 4px;
}

img { height: auto; }

/* Headings: Anybody is variable in width. Big headings go wide like parade banners. */
h1, h2, .bp-sidetittel { font-stretch: 118%; text-wrap: balance; }
h3, h4 { font-stretch: 100%; text-wrap: balance; }
:where(h1, h2, h3) { overflow-wrap: break-word; }
/* Long Norwegian compounds ("Regnbuedagene") must fit a phone: drop the extra width there. */
@media (max-width: 600px) {
	h1, h2 { font-stretch: 100% !important; }
}
p { text-wrap: pretty; }

/* Page titles scale with the box they sit in, so one long word (VOLUNTEERS, REGNBUEDAGENE) never breaks. */
.bp-hero, .bp-hero__tekst, .bp-programtopp, .bp-sidetopp { container-type: inline-size; }
.bp-sidetittel {
	font-size: min(var(--wp--preset--font-size--huge), 11.5cqi) !important;
	font-weight: 900;
	font-stretch: 125%;
	line-height: 0.92;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	margin: 0;
	hyphens: manual;
}

.is-style-bred { font-stretch: 150% !important; font-weight: 900 !important; text-transform: uppercase; line-height: 0.95 !important; }
.is-style-smal { font-stretch: 55% !important; font-weight: 900 !important; text-transform: uppercase; line-height: 0.9 !important; letter-spacing: 0 !important; }
@media (max-width: 600px) { .is-style-bred { font-stretch: 110% !important; } }

.is-style-etikett, .bp-smule {
	font-family: var(--bp-display);
	font-weight: 700;
	font-stretch: 110%;
	font-size: 0.8125rem !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.25rem !important;
}
.bp-smule a { text-decoration: none; border-bottom: 2px solid currentColor; }

.is-style-ingress, .bp-ingress {
	font-size: var(--wp--preset--font-size--large) !important;
	line-height: 1.45;
	max-width: 44ch;
}

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.wp-block-button__link:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--bp-rosa); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: currentColor;
	border: 2px solid currentColor;
	padding: calc(0.85em - 2px) calc(1.5em - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--bp-blekk); color: var(--bp-papir); box-shadow: 4px 4px 0 var(--bp-tema); border-color: var(--bp-blekk); }
.bp-knapp-rosa .wp-block-button__link, .wp-block-button.bp-knapp-rosa > .wp-block-button__link { background: var(--bp-rosa); color: var(--bp-blekk); }
.bp-knapp-rosa .wp-block-button__link:hover { background: var(--bp-papir); box-shadow: 4px 4px 0 var(--bp-blekk); }
@media (prefers-reduced-motion: reduce) { .wp-block-button__link:hover { transform: none; } }

/* ==========================================================================
   Header
   ========================================================================== */
.bp-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--bp-papir) 88%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	padding-block: 0.75rem;
	border-bottom: 1px solid color-mix(in srgb, var(--bp-blekk) 12%, transparent);
}
.bp-header::before {
	/* the umbrella's rainbow as a thin stripe along the top */
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--bp-paraply);
}
.admin-bar .bp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .bp-header { top: 46px; } }
.bp-header__rad { gap: 1.5rem; }
.bp-logo { margin: 0 !important; flex-shrink: 0; }
.bp-logo img { display: block; width: clamp(84px, 9vw, 112px) !important; }
.bp-nav { font-stretch: 105%; gap: clamp(0.75rem, 1.6vw, 1.6rem) !important; }
.bp-nav .wp-block-navigation-item__content { text-decoration: none; padding-block: 0.35rem; position: relative; }
.bp-nav .wp-block-navigation-item:not(.bp-nav__knapp) > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 3px;
	border-radius: 3px;
	background: var(--bp-paraply);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.bp-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.bp-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.bp-nav .bp-nav__knapp > .wp-block-navigation-item__content {
	background: var(--bp-blekk);
	color: var(--bp-papir);
	border-radius: 999px;
	padding: 0.55rem 1.1rem;
}
.bp-nav .bp-nav__knapp > .wp-block-navigation-item__content:hover { background: var(--bp-plomme); }
.bp-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--bp-natt) !important;
	color: var(--bp-papir) !important;
	padding: 2rem clamp(1rem, 5vw, 3rem);
}
.bp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	font-size: clamp(1.75rem, 8vw, 2.5rem);
	font-weight: 850;
	font-stretch: 120%;
	gap: 0.75rem;
	padding-top: 3rem;
}
.bp-nav .is-menu-open .bp-nav__knapp > .wp-block-navigation-item__content { background: var(--bp-rosa); color: var(--bp-blekk); margin-top: 1rem; }
.bp-nav .wp-block-navigation__responsive-container-open svg,
.bp-nav .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.wp-site-blocks > main, .wp-site-blocks > footer, .wp-site-blocks > .bp-main { margin-block-start: 0; }
.bp-main { padding-bottom: var(--wp--preset--spacing--70); }
.bp-main--wide { padding-bottom: 0; }
.bp-main > .wp-block-post-content > *:last-child { margin-bottom: 0; }
.wp-block-post-content > .alignfull:first-child { margin-top: 0; }

.bp-seksjon { padding-block: var(--wp--preset--spacing--60); }
/* Two plain sections in a row share one gap; sections with their own background keep their padding. */
.bp-seksjon:not(.has-background):not(.is-style-natt) + .bp-seksjon:not(.has-background):not(.is-style-natt) { padding-top: 0; }

/* Page top for plain pages (page.html) */
.bp-sidetopp {
	background: var(--bp-himmel);
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--50);
	position: relative;
	overflow: hidden;
}

/* ==========================================================================
   Group styles
   ========================================================================== */

/* Bobler: sky blue with drifting holographic soap bubbles (the old site's signature) */
.is-style-bobler {
	--bp-tema: var(--bp-himmel);
	background-color: var(--bp-himmel);
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.is-style-bobler::before,
.is-style-bobler::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
	background: center / contain no-repeat;
	animation: bp-sveve 14s ease-in-out infinite alternate;
}
.is-style-bobler::before {
	background-image: url(../images/boble-2.webp);
	width: clamp(180px, 30vw, 420px);
	aspect-ratio: 1044 / 988;
	top: -8%;
	right: -6%;
}
.is-style-bobler::after {
	background-image: url(../images/boble-1.webp);
	width: clamp(110px, 16vw, 240px);
	aspect-ratio: 918 / 988;
	bottom: -6%;
	left: -3%;
	animation-duration: 18s;
	animation-delay: -6s;
}
@keyframes bp-sveve {
	0% { transform: translate(0, 0) rotate(0deg); }
	50% { transform: translate(-14px, 18px) rotate(6deg); }
	100% { transform: translate(10px, -12px) rotate(-4deg); }
}

/* Faint Bergen rain across bubble sections */
.is-style-bobler > .bp-regn {
	position: absolute; inset: 0; z-index: -2; pointer-events: none;
}
.bp-hero.is-style-bobler {
	background-image: repeating-linear-gradient(105deg, transparent 0 22px, color-mix(in srgb, var(--bp-blekk) 5%, transparent) 22px 23px);
}

/* Natt: dark plum, pink headings */
.is-style-natt {
	background: var(--wp--preset--gradient--kveld);
	color: var(--bp-papir);
	--bp-tema: var(--bp-rosa);
}
.is-style-natt :where(h1, h2, h3, h4) { color: var(--bp-rosa); }
.is-style-natt .wp-block-button__link { background: var(--bp-rosa); color: var(--bp-blekk); }
.is-style-natt .wp-block-button__link:hover { background: var(--bp-papir); box-shadow: 4px 4px 0 var(--bp-mynte); }
.is-style-natt .is-style-outline > .wp-block-button__link { background: transparent; color: var(--bp-papir); }
.is-style-natt .is-style-outline > .wp-block-button__link:hover { background: var(--bp-papir); color: var(--bp-blekk); }
.is-style-natt .is-style-kort :where(h1, h2, h3, h4) { color: var(--bp-blekk); }
.is-style-natt .is-style-kort .wp-block-button__link { background: var(--bp-blekk); color: var(--bp-papir); }

/* Kort: white card with ink border and offset shadow (like a printed flyer) */
.is-style-kort {
	background: #fff;
	color: var(--bp-blekk);
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	box-shadow: var(--bp-skygge);
	padding: clamp(1.25rem, 3vw, 2rem);
}

/* Kunngjøring: a ticket-like notice in mint */
.is-style-kunngjoring {
	background: var(--bp-mynte);
	color: var(--bp-blekk);
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	box-shadow: var(--bp-skygge);
	padding: clamp(1.5rem, 4vw, 2.75rem);
	position: relative;
}

.is-style-kunngjoring h2 { font-size: clamp(1.6rem, 6.8vw, 4.5rem) !important; }

/* A sticker in the empty right side of a notice */
.is-style-kunngjoring > .bp-kunngjoring-merke {
	position: absolute !important;
	right: clamp(1rem, 6vw, 6rem);
	top: 50%;
	width: clamp(150px, 18vw, 250px);
	margin: 0 !important;
	translate: 0 -50%;
}
@media (max-width: 1000px) { .is-style-kunngjoring > .bp-kunngjoring-merke { display: none; } }

/* Regnbuekant: rainbow top border */
.is-style-regnbuekant { position: relative; padding-top: 1.5rem; }
.is-style-regnbuekant::before {
	content: ""; position: absolute; top: 0; left: 0; width: min(180px, 40%); height: 8px; border-radius: 8px; background: var(--bp-paraply);
}

/* ==========================================================================
   Image styles
   ========================================================================== */
.is-style-klistremerke { margin: 0; }
.is-style-klistremerke img {
	transform: rotate(-7deg);
	filter: drop-shadow(0 8px 14px rgb(19 50 96 / .18));
	transition: transform .3s cubic-bezier(.3, 1.6, .5, 1);
}
.is-style-klistremerke:hover img, .is-style-klistremerke:focus-within img { transform: rotate(4deg) scale(1.06); }
.is-style-klistremerke.bp-vri-hoyre img { transform: rotate(8deg); }

.is-style-boble img {
	border-radius: 58% 42% 46% 54% / 52% 44% 56% 48%;
	aspect-ratio: 1;
	object-fit: cover;
	width: 100%;
}
.wp-block-post-featured-image.is-style-boble img { aspect-ratio: 16/9; border-radius: 48% 52% 40% 60% / 30% 26% 74% 70%; }

/* ==========================================================================
   Hero (front page and designed pages)
   ========================================================================== */
.bp-hero {
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.bp-hero--kort { padding-block: var(--wp--preset--spacing--60); }
.bp-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 5vw, 4rem);
	align-items: center;
}
.bp-hero__grid > * { margin-block: 0 !important; }
.bp-hero__tekst > * + * { margin-top: 1.25rem; }
.bp-hero__bilde { position: relative; }
.bp-hero__bilde .is-style-klistremerke {
	position: absolute;
	width: clamp(96px, 13vw, 170px);
	z-index: 2;
}
.bp-hero__bilde .is-style-klistremerke:nth-of-type(2) { left: -6%; bottom: 2%; }
.bp-hero__bilde .is-style-klistremerke:nth-of-type(3) { right: -4%; top: -4%; }
@media (max-width: 800px) {
	.bp-hero__grid { grid-template-columns: 1fr; }
	.bp-hero__bilde { max-width: 460px; margin-inline: auto !important; width: 100%; }
}

/* Front page title: "BERGEN PRIDE" set extra wide over two lines */
.bp-hero__tekst { container-type: inline-size; }
.bp-forside-tittel {
	/* "BERGEN" is 6.25em wide at this weight/width, so 16cqi fills the text column exactly */
	font-size: min(15.8cqi, 10rem) !important;
	font-weight: 900 !important;
	font-stretch: 150% !important;
	line-height: 0.84 !important;
	letter-spacing: -0.035em !important;
	text-transform: uppercase;
	margin: 0 !important;
}
.bp-forside-tittel .bp-linje { display: table; }
.bp-forside-tittel .bp-linje--rosa {
	color: transparent;
	-webkit-text-stroke: clamp(1.5px, 0.35vw, 3.5px) var(--bp-blekk);
	background: var(--bp-paraply);
	-webkit-background-clip: text;
	background-clip: text;
}


.bp-aar {
	display: inline-flex;
	align-items: baseline;
	gap: 0.75rem;
	font-family: var(--bp-display);
	font-weight: 900;
	font-stretch: 130%;
	font-size: clamp(1.5rem, 3.4vw, 2.5rem) !important;
	line-height: 1;
}
.bp-aar mark {
	background: var(--bp-blekk);
	color: var(--bp-papir);
	padding: 0.15em 0.4em 0.1em;
	border-radius: 999px;
	font-size: 0.55em;
	font-stretch: 110%;
	letter-spacing: 0.06em;
	transform: rotate(-4deg);
	display: inline-block;
}

/* Fact row: 9 days · 90+ events · 50 000 participants */
.bp-fakta {
	margin-top: 1.5rem !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	list-style: none;
	padding: 0 !important;
	margin: 0;
	font-family: var(--bp-display);
	font-stretch: 110%;
	font-weight: 700;
}
.bp-fakta li { display: flex; align-items: baseline; gap: 0.4rem; }
.bp-fakta strong { font-size: 1.75em; font-weight: 900; font-stretch: 130%; line-height: 1; }

/* ==========================================================================
   Arena cards (Parade, Pride House, Pride Park, Mini Pride)
   ========================================================================== */
.bp-arenaer {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
	gap: clamp(1rem, 2.5vw, 1.75rem);
}
.bp-arena {
	background: var(--bp-tema);
	color: var(--bp-blekk);
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	box-shadow: var(--bp-skygge);
	padding: 1rem 1rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0 !important;
	position: relative;
	transition: transform .2s ease, box-shadow .2s ease;
}
.bp-arena:hover { transform: translate(-3px, -3px); box-shadow: 9px 9px 0 var(--bp-blekk); }
.bp-arena > * { margin: 0 !important; }
.bp-arena .wp-block-image:not(.is-style-klistremerke) img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: calc(var(--bp-radius) - 10px);
	border: var(--bp-kant);
}
.bp-arena h3 { font-size: clamp(1.5rem, 2.4vw, 1.9rem); font-stretch: 120%; font-weight: 900; text-transform: uppercase; padding-inline: 0.5rem; }
.bp-arena p { padding-inline: 0.5rem; }
.bp-arena .wp-block-buttons { margin-top: auto !important; padding-inline: 0.5rem; }
.bp-arena .is-style-klistremerke {
	position: absolute;
	width: 104px;
	top: -34px;
	right: -18px;
	z-index: 2;
}
.bp-arena .is-style-klistremerke img { width: 100%; }
/* the whole card is clickable through its button */
.bp-arena .wp-block-button__link::after { content: ""; position: absolute; inset: 0; border-radius: var(--bp-radius); }
@media (prefers-reduced-motion: reduce) { .bp-arena:hover { transform: none; } }

/* ==========================================================================
   Section headings with a sticker
   ========================================================================== */
.bp-seksjonstopp { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: var(--wp--preset--spacing--50) !important; }
.bp-seksjonstopp > * { margin: 0 !important; }
.bp-seksjonstopp h2 { font-size: clamp(1.75rem, 7.4vw, 4.5rem); font-weight: 900; text-transform: uppercase; line-height: 0.95; }

/* ==========================================================================
   Kulby program (bp/kulby)
   ========================================================================== */
.bp-kulby { margin-block: var(--wp--preset--spacing--40); }
.bp-kulby kulby-events { --kulby-radius: 22px; }
.bp-kulby__heading { margin-bottom: 1.5rem; }
.bp-kulby__fallback {
	background: #fff;
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	box-shadow: var(--bp-skygge);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	color: var(--bp-blekk);
	font-family: var(--wp--preset--font-family--body);
}
.bp-kulby__fallback-title { font-family: var(--bp-display); font-weight: 850; font-stretch: 115%; font-size: var(--wp--preset--font-size--x-large); line-height: 1.05; margin: 0 0 0.75rem; }
.bp-kulby__fallback-links { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.bp-kulby__fallback-links a {
	font-family: var(--bp-display); font-weight: 750; text-decoration: none;
	background: var(--bp-blekk); color: var(--bp-papir); border-radius: 999px; padding: 0.7em 1.3em;
}
.bp-kulby__fallback-links a + a { background: transparent; color: var(--bp-blekk); border: 2px solid; }
.is-style-natt .bp-kulby__fallback { box-shadow: 6px 6px 0 var(--bp-rosa); }

/* ==========================================================================
   Program archive 2026
   ========================================================================== */
.bp-programtopp {
	background: var(--bp-himmel);
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	margin-top: 0 !important;
	margin-bottom: var(--wp--preset--spacing--50) !important;
	position: relative;
}
.bp-programtopp .bp-sidetittel { font-size: min(6rem, 10cqi) !important; }

/* Day strip: date "tickets" that scroll sideways on small screens */
.wp-block-list.bp-dagstripe {
	display: flex;
	gap: 0.5rem;
	list-style: none;
	padding: 0.5rem 0 0.75rem !important;
	margin-top: var(--wp--preset--spacing--40) !important;
	margin-bottom: 0 !important;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}
.bp-dagstripe li { flex: 0 0 auto; scroll-snap-align: start; margin: 0 !important; }
.bp-dagstripe a {
	display: grid;
	justify-items: center;
	min-width: 3.9rem;
	padding: 0.45rem 0.5rem;
	background: #fff;
	border: var(--bp-kant);
	border-radius: 16px;
	text-decoration: none;
	font-family: var(--bp-display);
	line-height: 1.05;
	transition: background-color .15s ease, transform .15s ease;
}
.bp-dagstripe a:hover { background: var(--bp-rosa); transform: translateY(-2px); }
.bp-dag__ukedag, .bp-dag__maned { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.bp-dag__dato { font-size: 1.75rem; font-weight: 900; font-stretch: 125%; }
.bp-dagstripe .bp-dag--tema a { align-content: center; padding-inline: 1rem; font-weight: 800; }
.bp-dagstripe .is-aktiv a { background: var(--bp-blekk); color: var(--bp-papir); box-shadow: 4px 4px 0 var(--bp-rosa); }

.bp-programdag { padding-bottom: var(--wp--preset--spacing--60); }
.bp-programdag > *, .bp-programtopp > * { max-width: 1040px !important; }
.bp-programdag.alignwide { max-width: none; }
.bp-underseksjon {
	font-size: var(--wp--preset--font-size--x-large) !important;
	font-weight: 900;
	text-transform: uppercase;
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-top: 1.25rem;
	position: relative;
}
.bp-underseksjon::before { content: ""; position: absolute; top: 0; left: 0; width: 120px; height: 8px; border-radius: 8px; background: var(--bp-paraply); }

.bp-eventliste { display: grid; gap: 1.25rem; }
.bp-eventliste > * { margin: 0 !important; }
.bp-event {
	display: grid;
	grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
	gap: 1.25rem 1.75rem;
	align-items: start;
	background: #fff;
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	padding: clamp(0.9rem, 2vw, 1.25rem);
	box-shadow: 5px 5px 0 var(--bp-blekk);
}
.bp-event.is-uten-bilde { grid-template-columns: minmax(0, 1fr); }
.bp-event > * { margin: 0 !important; }
.bp-event__bilde img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 18px;
	display: block;
}
.bp-event__tekst > * { margin-block: 0 0.5rem !important; }
.bp-event__tid {
	display: inline-block;
	font-family: var(--bp-display);
	font-weight: 800;
	font-stretch: 115%;
	font-size: 0.9375rem !important;
	background: var(--bp-blekk);
	color: var(--bp-papir);
	border-radius: 999px;
	padding: 0.25em 0.8em;
}
.bp-event__tittel { font-size: clamp(1.25rem, 2.4vw, 1.625rem) !important; font-weight: 850; font-stretch: 108%; line-height: 1.1; }
.bp-event__sted, .bp-event__fakta { font-weight: 700; }
.bp-event__sted::before { content: "📍 "; font-size: 0.9em; }
.bp-event__merker { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.bp-merke {
	font-size: 0.8125rem;
	font-weight: 700;
	background: var(--bp-himmel);
	border-radius: 999px;
	padding: 0.2em 0.75em;
}
.bp-event .wp-block-buttons { gap: 0.5rem; }
.bp-event .wp-block-button__link { font-size: 0.875rem; padding: 0.55em 1.1em; }
.bp-event .is-style-outline > .wp-block-button__link { padding: calc(0.55em - 2px) calc(1.1em - 2px); }
.bp-event__mer { border-top: 2px dashed color-mix(in srgb, var(--bp-blekk) 25%, transparent) !important; padding-top: 0.6rem; margin-top: 0.75rem !important; }
.bp-event__mer summary {
	cursor: pointer;
	font-family: var(--bp-display);
	font-weight: 800;
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.bp-event__mer summary::-webkit-details-marker { display: none; }
.bp-event__mer summary::before {
	content: "+";
	display: inline-grid;
	place-items: center;
	width: 1.5rem; height: 1.5rem;
	border-radius: 50%;
	background: var(--bp-rosa);
	font-size: 1.1rem;
	line-height: 1;
	transition: transform .2s ease;
}
.bp-event__mer[open] summary::before { transform: rotate(45deg); }
.bp-event__mer > p { margin-top: 0.85rem; }
.bp-event--parade { background: var(--bp-korall); }
@media (max-width: 640px) {
	.bp-event { grid-template-columns: minmax(0, 1fr); }
	.bp-event__bilde img { aspect-ratio: 16 / 10; }
}

.bp-info {
	background: var(--bp-mynte);
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	padding: clamp(1.25rem, 3vw, 1.75rem);
	margin-bottom: 1.5rem !important;
}
.bp-info > * { margin-block: 0 0.5rem !important; }
.bp-info > .wp-block-buttons { margin-top: 1rem !important; }
.bp-info__tittel { font-size: var(--wp--preset--font-size--large) !important; }
.bp-info--notis { background: var(--bp-himmel); border-style: dashed; }

.bp-bla { margin-top: var(--wp--preset--spacing--50) !important; }
.bp-bla .wp-block-buttons { justify-content: space-between; }

/* Overview: one card per festival day */
.wp-block-list.bp-dagkort-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: 1rem;
	list-style: none;
	padding: 0 !important;
	max-width: none !important;
}
.bp-dagkort { margin: 0 !important; }
.bp-dagkort a {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	height: 100%;
	padding: 1.25rem;
	background: #fff;
	border: var(--bp-kant);
	border-radius: var(--bp-radius);
	box-shadow: 5px 5px 0 var(--bp-blekk);
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.bp-dagkort a:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 var(--bp-blekk); background: var(--bp-rosa); }
.bp-dagkort__dato { font-family: var(--bp-display); display: flex; align-items: baseline; gap: 0.4rem; text-transform: uppercase; font-weight: 800; }
.bp-dagkort__dato strong { font-size: 3rem; font-weight: 900; font-stretch: 130%; line-height: 0.9; }
.bp-dagkort__antall { font-weight: 800; font-size: 0.875rem; }
.bp-dagkort__titler { font-size: 0.9375rem; line-height: 1.4; }

/* ==========================================================================
   Parade lineup (numbered like a start list)
   ========================================================================== */
.wp-block-list.is-style-nummerert-parade {
	counter-reset: parade;
	list-style: none;
	padding: 0 !important;
	columns: 3 16rem;
	column-gap: 2rem;
	max-width: none !important;
}
.is-style-nummerert-parade li {
	counter-increment: parade;
	break-inside: avoid;
	display: flex;
	gap: 0.75rem;
	align-items: baseline;
	padding: 0.45rem 0;
	border-bottom: 1px dashed color-mix(in srgb, currentColor 30%, transparent);
	margin: 0 !important;
}
.is-style-nummerert-parade li::before {
	content: counter(parade);
	flex: 0 0 2.4rem;
	font-family: var(--bp-display);
	font-weight: 900;
	font-stretch: 125%;
	color: var(--bp-korall);
	text-align: right;
}

/* Route: a vertical line of stops */
.bp-rute { list-style: none; padding: 0 0 0 1.75rem !important; position: relative; }
.bp-rute::before { content: ""; position: absolute; left: 0.45rem; top: 0.4rem; bottom: 0.4rem; width: 4px; border-radius: 4px; background: var(--bp-paraply); }
.bp-rute li { position: relative; margin: 0 0 0.35rem !important; font-weight: 600; }
.bp-rute li::before { content: ""; position: absolute; left: -1.6rem; top: 0.45em; width: 0.8rem; height: 0.8rem; border-radius: 50%; background: #fff; border: 3px solid var(--bp-blekk); }
.bp-rute li:first-child, .bp-rute li:last-child { font-weight: 850; }

/* Timeline of the parade day */
.bp-tider { display: grid !important; gap: 0.5rem; list-style: none; padding: 0 !important; }
.bp-tider li { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; align-items: baseline; margin: 0 !important; }
.bp-tider strong { font-family: var(--bp-display); font-weight: 900; font-stretch: 120%; font-size: 1.25rem; }

/* Opening hours table */
.bp-tider-tabell table { border-collapse: collapse; width: 100%; }
.bp-tider-tabell :is(td, th) { border: 0; border-bottom: 2px solid color-mix(in srgb, currentColor 18%, transparent); padding: 0.6rem 0.5rem 0.6rem 0; text-align: left; }
.bp-tider-tabell th { font-family: var(--bp-display); font-weight: 800; }
.bp-tider-tabell td:last-child { font-weight: 700; white-space: nowrap; }

/* Map images: framed, click to open */
.bp-kart img { border: var(--bp-kant); border-radius: var(--bp-radius); box-shadow: var(--bp-skygge); }

/* ==========================================================================
   Contact: contact list + board
   ========================================================================== */
.bp-kontaktliste { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 1rem; }
.bp-kontaktliste > * { margin: 0 !important; }
.bp-kontakt { background: #fff; border: var(--bp-kant); border-radius: 22px; padding: 1.25rem 1.25rem 1rem; }
.bp-kontakt > * { margin-block: 0 0.4rem !important; }
.bp-kontakt h3 { font-size: 1.125rem !important; font-stretch: 105%; }
.bp-kontakt a { font-weight: 700; word-break: break-word; }

.bp-styret { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 1.75rem 1.25rem; }
.bp-styret > * { margin: 0 !important; }
.bp-person > * { margin-block: 0 0.3rem !important; }
.bp-person .wp-block-image { margin-bottom: 0.9rem !important; }
.bp-person .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px; border: var(--bp-kant); }
.bp-person:nth-child(3n+1) .wp-block-image img { border-radius: 90px 22px 22px 22px; }
.bp-person:nth-child(3n+2) .wp-block-image img { border-radius: 22px 90px 22px 22px; }
.bp-person h3 { font-size: 1.1875rem !important; font-stretch: 105%; }
.bp-person__rolle { font-weight: 700; color: var(--bp-plomme); }
.bp-person a { word-break: break-word; }
.bp-initialer {
	aspect-ratio: 4 / 5;
	display: grid;
	place-items: center;
	border: var(--bp-kant);
	border-radius: 22px;
	background: var(--bp-paraply);
	font-family: var(--bp-display);
	font-weight: 900;
	font-stretch: 140%;
	font-size: 3.5rem !important;
	margin-bottom: 0.9rem !important;
}

/* ==========================================================================
   Partners
   ========================================================================== */
.bp-partnere h3 { font-size: 0.875rem !important; text-transform: uppercase; letter-spacing: 0.1em; font-stretch: 115%; margin-top: var(--wp--preset--spacing--50) !important; }
.bp-logoer { display: flex !important; flex-wrap: wrap; gap: 1rem; align-items: stretch; }
.bp-logoer > * { margin: 0 !important; }
.bp-logoer .wp-block-image {
	background: #fff;
	border: var(--bp-kant);
	border-radius: 20px;
	display: grid;
	place-items: center;
	width: 180px;
	height: 110px;
	padding: 1rem 1.25rem;
	transition: transform .15s ease, box-shadow .15s ease;
}
.bp-logoer .wp-block-image:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--bp-tema); }
.bp-logoer .wp-block-image img { max-height: 70px; max-width: 100%; width: auto; object-fit: contain; }
.bp-logoer--hoved .wp-block-image { width: 280px; height: 160px; }
.bp-logoer--hoved .wp-block-image img { max-height: 110px; }
@media (max-width: 480px) {
	.bp-logoer .wp-block-image { width: calc(50% - 0.5rem); height: 96px; }
	.bp-logoer--hoved .wp-block-image { width: 100%; }
}

/* ==========================================================================
   Video embeds, links page
   ========================================================================== */
.wp-block-embed.is-type-video iframe { border-radius: var(--bp-radius); border: var(--bp-kant); }

.bp-lenkeliste { display: grid !important; gap: 0.75rem; list-style: none; padding: 0 !important; }
.bp-lenkeliste li { margin: 0 !important; }
.bp-lenkeliste a {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: 1rem 1.25rem;
	border: var(--bp-kant); border-radius: 18px; background: #fff;
	font-family: var(--bp-display); font-weight: 800; font-stretch: 105%; text-decoration: none;
	transition: background-color .15s ease, transform .15s ease;
}
.bp-lenkeliste a::after { content: "→"; font-size: 1.25rem; }
.bp-lenkeliste a:hover { background: var(--bp-rosa); transform: translateX(4px); }

/* Rights & expectations lists (volunteers) */
.bp-hakeliste { list-style: none; padding: 0 !important; }
.bp-hakeliste li { position: relative; padding-left: 2rem; margin-bottom: 0.6rem; }
.bp-hakeliste li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 1.4rem; height: 1.4rem; display: grid; place-items: center; border-radius: 50%; background: var(--bp-mynte); color: var(--bp-blekk); font-weight: 900; font-size: 0.85rem; }
.is-style-natt .bp-hakeliste li::before { background: var(--bp-rosa); }

/* ==========================================================================
   Footer
   ========================================================================== */
.bp-footer {
	background: var(--bp-natt);
	color: var(--bp-papir);
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	position: relative;
	overflow: hidden;
	margin-top: 0 !important;
}
.bp-footer::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 8px; background: var(--bp-paraply); }
.bp-footer a { color: inherit; }
.bp-footer a:hover { color: var(--bp-rosa); }
.bp-footer__ord {
	font-family: var(--bp-display);
	font-weight: 900;
	font-stretch: 150%;
	text-transform: uppercase;
	/* "REGNBUEDAGENE" is ~13.2em wide at this width: fit it to the wide column */
	font-size: min(calc(var(--wp--style--global--wide-size, 1240px) / 13.4), 6.6vw) !important;
	line-height: 0.85;
	letter-spacing: -0.03em;
	color: var(--bp-rosa);
	margin-bottom: var(--wp--preset--spacing--50) !important;
}
.bp-footer__ord span { display: block; color: transparent; -webkit-text-stroke: 2px var(--bp-rosa); }

.bp-footer__tittel { font-size: 0.875rem !important; text-transform: uppercase; letter-spacing: 0.1em; color: var(--bp-mynte); font-stretch: 115%; }
.bp-footer__lenker { list-style: none; padding: 0 !important; }
.bp-footer__lenker li { margin-bottom: 0.35rem; }
.bp-footer__lenker a { text-decoration: none; font-weight: 600; }
.bp-footer__liten { font-size: 0.875rem; opacity: 0.8; }
.bp-footer__bunn {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(255 255 255 / .18);
	font-size: 0.875rem;
}
.bp-footer__bunn > * { margin: 0 !important; }
.bp-footer__merke { position: absolute !important; right: clamp(1rem, 4vw, 4rem); bottom: 5.5rem; width: clamp(90px, 10vw, 150px); transform: rotate(10deg); margin: 0 !important; pointer-events: none; }
@media (max-width: 1300px) { .bp-footer__merke { display: none; } }

/* ==========================================================================
   Misc
   ========================================================================== */
.archive .bp-bare-uten-arkiv, .search .bp-bare-uten-arkiv { display: none; }
.wp-block-separator { border-top-width: 2px; opacity: 1; }
.bp-skjult-mobil { }
@media (max-width: 600px) { .bp-skjult-mobil { display: none !important; } }

@media (prefers-reduced-motion: reduce) {
	.is-style-bobler::before, .is-style-bobler::after { animation: none; }
	.is-style-klistremerke img, .bp-arena, .bp-dagkort a { transition: none; }
}

/* Editor: show the sticky header part normally */
.editor-styles-wrapper .bp-header { position: relative; }
