/**
 * Groetjes van Sinterklaas Functies - opmaak v1.0.0
 * Stijl van de Sinterklaasposter: nachtblauwe lucht, lantaarngoud, fluweelrood, perkament.
 * Alle klassen beginnen met gvsf-. Past zich aan elk thema en aan de breedte van de kolom aan.
 *
 * KLEUREN AANPASSEN: wijzig alleen de variabelen hieronder (:root).
 * Lettertypen: de plugin laadt zelf geen lettertypen. Stel in je thema (Astra: Globaal > Typografie)
 * Fraunces (koppen) en Nunito Sans (tekst) in, dan sluit alles op elkaar aan.
 */

:root {
	--gvsf-night-950: #030a2e;
	--gvsf-night-900: #06124a;
	--gvsf-night-850: #07194f;
	--gvsf-night-800: #0a2278;
	--gvsf-night-700: #0d2f9a;
	--gvsf-sky: #0155c5;
	--gvsf-sky-deep: #003487;
	--gvsf-sky-mid: #0a2a86;
	--gvsf-sky-hero: #052b8a;
	--gvsf-sky-glow: rgba(70, 140, 255, .42);
	--gvsf-sky-glow-soft: rgba(40, 90, 200, .30);
	--gvsf-sky-glow-hero: rgba(80, 150, 255, .5);
	--gvsf-blue-bright: #1a45b8;
	--gvsf-blue-light: #2a60d0;
	--gvsf-text-on-night: #dce6ff;
	--gvsf-btn-a1: #c9162f;
	--gvsf-btn-a2: #99101f;
	--gvsf-btn-b1: #e32b41;
	--gvsf-btn-b2: #a50f26;
	--gvsf-btn-c1: #d91f36;
	--gvsf-btn-c2: #9d1023;
	--gvsf-btn-d2: #94101f;
	--gvsf-gold-100: #fff3c4;
	--gvsf-gold-200: #ffe58a;
	--gvsf-gold-300: #ffd24a;
	--gvsf-gold-400: #fbbf24;
	--gvsf-gold-500: #f2a81d;
	--gvsf-gold-600: #c97a0a;
	--gvsf-gold-800: #7a3f05;
	--gvsf-red-400: #e02a40;
	--gvsf-red-500: #c8102e;
	--gvsf-red-600: #a50f26;
	--gvsf-red-800: #6d0a18;
	--gvsf-cream: #fff7e0;
	--gvsf-parchment: #f8e3b0;
	--gvsf-paper: #fffaf0;
	--gvsf-ink: #0a1747;
	--gvsf-muted: #4a557f;
	--gvsf-pepernoot: #9a5a26;
	--gvsf-pink: #ff1493;
	--gvsf-accent-fill: linear-gradient(180deg, #fff3b0 0%, #ffe27a 28%, #ffc83a 60%, #f5a91f 100%);
	--gvsf-font-display: "Fraunces", "Georgia", "Times New Roman", serif;
	--gvsf-font-body: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--gvsf-radius: 22px;
	--gvsf-shadow: 0 10px 30px rgba(3, 10, 46, 0.14);
	--gvsf-shadow-lg: 0 22px 50px rgba(3, 10, 46, 0.32);
	--gvsf-header-h: 0px; /* alleen invullen (bijv. 88px) als je thema een zwevende, transparante header boven de hero legt */
	--gvsf-sticky-top: 110px; /* ruimte onder een vaste header voor plaktekst en ankers */
	--gvsf-section-y: 104px;
}

/* ---------- Basis voor onderdelen van de plugin ---------- */
html body .gvsf { font-family: inherit; color: var(--gvsf-ink); line-height: 1.6; }
html body .gvsf :is(h1, h2, h3, h4), html body .gvsf-section :is(h1, h2, h3, h4), html body .gvsf-cta :is(h1, h2, h3, h4) {
	font-family: var(--gvsf-font-display); font-weight: 800; line-height: 1.08; letter-spacing: -0.01em; text-wrap: balance; color: var(--gvsf-ink);
}
/* Koppen in de hero's: zelfde lettertype en ritme, de kleur komt uit de eigen regel van de hero */
html body .gvsf-hero :is(h1, h2, h3, h4), html body .gvsf-page-hero :is(h1, h2, h3, h4) { font-family: var(--gvsf-font-display); font-weight: 800; line-height: 1.08; letter-spacing: -0.01em; text-wrap: balance; }
html body .gvsf-section { font-family: inherit; color: var(--gvsf-ink); line-height: 1.7; }
html body .gvsf-section :is(h1) { font-size: clamp(2.5rem, 5vw, 4.4rem); }
html body .gvsf-section :is(h2) { font-size: clamp(2rem, 3.6vw, 3rem); }
html body .gvsf-section :is(h3) { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 700; }
html body .gvsf-section a:not([class]) { color: var(--gvsf-red-600); }
html body .gvsf img { max-width: 100%; height: auto; }
html body .gvsf :focus-visible, html body .gvsf-section :focus-visible { outline: 3px solid var(--gvsf-gold-400); outline-offset: 3px; }
html body .gvsf .screen-reader-text, html body .gvsf-section .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap; }
html body [class^="gvsf-"], html body [class*=" gvsf-"], html body [class^="gvsf-"]::before, html body [class*=" gvsf-"]::before, html body [class^="gvsf-"]::after, html body [class*=" gvsf-"]::after { box-sizing: border-box; }
html body .gvsf-cream :focus-visible, html body .gvsf-paper :focus-visible { outline-color: var(--gvsf-red-500); }
html body .gvsf-container { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: 24px; }
html body .gvsf-container--narrow { max-width: 860px; }
html body .gvsf-night {
	color: #e8eeff;
	background:
		radial-gradient(1100px 560px at 78% 6%, var(--gvsf-sky-glow), transparent 62%),
		radial-gradient(760px 480px at 6% 100%, rgba(110, 60, 170, .26), transparent 62%),
		linear-gradient(180deg, var(--gvsf-sky-deep) 0%, var(--gvsf-sky-mid) 42%, var(--gvsf-night-850) 100%);
}
html body .gvsf-night h1, html body .gvsf-night h2, html body .gvsf-night h3, html body .gvsf-night h4 { color: var(--gvsf-cream); }
html body .gvsf-night a:not([class]) { color: var(--gvsf-gold-300); }
html body .gvsf-night--deep { background:
		radial-gradient(900px 420px at 50% 0%, var(--gvsf-sky-glow-soft), transparent 65%),
		linear-gradient(180deg, var(--gvsf-night-850) 0%, var(--gvsf-night-950) 100%); }
html body .gvsf-cream { background: var(--gvsf-cream); color: var(--gvsf-ink); }
html body .gvsf-paper { background: var(--gvsf-paper); color: var(--gvsf-ink); }
html body .gvsf-stars { position: relative; isolation: isolate; }
html body .gvsf-stars::before, html body .gvsf-stars::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: -1; }
html body .gvsf-stars::before {
	background-image:
		radial-gradient(1.6px 1.6px at 40px 60px, #fff, transparent),
		radial-gradient(1.2px 1.2px at 150px 130px, rgba(255, 255, 255, .85), transparent),
		radial-gradient(1.8px 1.8px at 270px 40px, #ffe9a8, transparent),
		radial-gradient(1.2px 1.2px at 340px 190px, rgba(255, 255, 255, .8), transparent),
		radial-gradient(1.4px 1.4px at 90px 230px, #fff, transparent),
		radial-gradient(1.2px 1.2px at 210px 280px, rgba(255, 255, 255, .7), transparent);
	background-size: 380px 320px;
	opacity: .75;
}
html body .gvsf-stars::after {
	background-image:
		radial-gradient(2.2px 2.2px at 120px 90px, #fff, transparent),
		radial-gradient(2px 2px at 300px 240px, #ffe9a8, transparent),
		radial-gradient(2.2px 2.2px at 520px 150px, #fff, transparent);
	background-size: 640px 360px;
	animation: gvsf-twinkle 5.5s ease-in-out infinite alternate;
}
@keyframes gvsf-twinkle { from { opacity: .25; } to { opacity: 1; }; }
html body .gvsf-bunting {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 64px;
	background: url("../img/bunting.svg") repeat-x center top / auto 64px;
	pointer-events: none;
	z-index: 2;
	filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25));
}
html body .gvsf-confetti { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
html body .gvsf-confetti i {
	position: absolute;
	width: 14px;
	height: 14px;
	transform: rotate(45deg);
	border-radius: 3px;
	opacity: .9;
	animation: gvsf-float 7s ease-in-out infinite alternate;
}
html body .gvsf-confetti i:nth-child(3n) { background: var(--gvsf-gold-300); }
html body .gvsf-confetti i:nth-child(3n/**/+1) { background: var(--gvsf-red-400); width: 11px; height: 11px; animation-duration: 9s; }
html body .gvsf-confetti i:nth-child(3n/**/+2) { background: #7fb2ff; width: 9px; height: 9px; animation-duration: 8s; }
@keyframes gvsf-float { from { transform: translateY(0) rotate(45deg); } to { transform: translateY(14px) rotate(75deg); }; }
@media (prefers-reduced-motion: reduce) {
	html body .gvsf-stars::after, html body .gvsf-confetti i { animation: none; }
}
html body .gvsf-section { position: relative; padding-block: var(--gvsf-section-y); }
html body .gvsf-section__head { text-align: center; max-width: 780px; margin: 0 auto 56px; }
html body .gvsf-section__title { margin: 0 0 14px; }
html body .gvsf-section__intro { margin: 0 auto; color: inherit; opacity: .85; font-size: 1.12rem; max-width: 62ch; }
html body .gvsf-cream .gvsf-section__intro, html body .gvsf-paper .gvsf-section__intro { color: var(--gvsf-muted); opacity: 1; }
html body .gvsf-section__more { text-align: center; margin: 52px 0 0; }
html body .gvsf-eyebrow {
	display: inline-block;
	margin: 0 0 14px;
	font-weight: 800;
	font-size: .82rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gvsf-red-500);
}
html body .gvsf-night .gvsf-eyebrow { color: var(--gvsf-gold-300); }
html body .gvsf-orn { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 0 auto 18px; color: var(--gvsf-gold-500); }
html body .gvsf-orn::before, html body .gvsf-orn::after { content: ""; width: 64px; height: 2px; background: linear-gradient(90deg, transparent, currentColor); }
html body .gvsf-orn::after { transform: scaleX(-1); }
html body .gvsf-orn svg { width: 18px; height: 18px; fill: currentColor; }
html body .gvsf-split__text .gvsf-orn { justify-content: flex-start; }
html body .gvsf-split__text .gvsf-orn::before { display: none; }
html body .gvsf-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: 72px; align-items: center; }
html body .gvsf-split--reverse .gvsf-split__media { order: -1; }
html body .gvsf-lead { font-size: 1.22rem; }
html body .gvsf-checks { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 12px; }
html body .gvsf-checks li { position: relative; padding-left: 36px; font-weight: 600; }
html body .gvsf-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--gvsf-red-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffe58a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12.5l4 4 9-9'/%3E%3C/svg%3E") center / 14px no-repeat;
	box-shadow: 0 0 0 2px rgba(255, 210, 74, .6);
}
html body .gvsf-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 32px;
	border-radius: 999px;
	font-family: var(--gvsf-font-body);
	font-weight: 800;
	font-size: 1.02rem;
	letter-spacing: .01em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .22s, box-shadow .22s, background-color .22s, color .22s, border-color .22s;
}
html body .gvsf-button svg { width: 20px; height: 20px; flex: none; }
html body .gvsf-button:hover { transform: translateY(-2px); }
html body .gvsf-button-primary {
	background: linear-gradient(180deg, #ffe27d 0%, #f7b52b 100%);
	color: #2b1600;
	box-shadow: 0 3px 0 #b36d07, 0 12px 24px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .6);
}
html body .gvsf-button-primary:hover {
	color: #2b1600;
	background: linear-gradient(180deg, #fff0a6 0%, #ffc43d 100%);
	box-shadow: 0 5px 0 #b36d07, 0 16px 28px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .6);
}
html body .gvsf-button-secondary {
	background: linear-gradient(180deg, var(--gvsf-red-400) 0%, var(--gvsf-red-600) 100%);
	color: var(--gvsf-cream);
	box-shadow: 0 3px 0 var(--gvsf-red-800), 0 12px 24px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .25);
}
html body .gvsf-button-secondary:hover { color: #fff; box-shadow: 0 5px 0 var(--gvsf-red-800), 0 16px 28px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .25); }
html body .gvsf-button-outline { color: var(--gvsf-cream); border-color: rgba(255, 247, 224, .7); background: rgba(255, 255, 255, .04); }
html body .gvsf-button-outline:hover { color: var(--gvsf-night-950); background: var(--gvsf-cream); border-color: var(--gvsf-cream); }
html body .gvsf-button-outline-dark { color: var(--gvsf-ink); border-color: var(--gvsf-ink); }
html body .gvsf-button-outline-dark:hover { color: var(--gvsf-cream); background: var(--gvsf-ink); }
html body .gvsf-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
html body .gvsf-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 800;
	color: var(--gvsf-red-600);
	text-decoration: none;
	border-bottom: 2px solid var(--gvsf-gold-400);
	padding-bottom: 2px;
}
html body .gvsf-link:hover { color: var(--gvsf-red-500); border-bottom-color: var(--gvsf-red-500); }
html body .gvsf-night .gvsf-link { color: var(--gvsf-gold-300); }
html body .gvsf-link svg { width: 18px; height: 18px; flex: none; stroke: currentColor; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-link { text-align: left; }
html body .gvsf-chip {
	display: inline-block;
	margin: 0 0 22px;
	padding: 7px 18px;
	border: 1.5px solid rgba(255, 210, 74, .7);
	border-radius: 999px;
	color: var(--gvsf-gold-200);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	background: rgba(255, 210, 74, .08);
}
html body .gvsf-hero {
	position: relative;
	overflow: hidden;
	min-height: clamp(660px, 56vw, 820px);
	padding: calc(var(--gvsf-header-h) + 64px) 0 120px;
	background:
		radial-gradient(1000px 520px at 76% 10%, var(--gvsf-sky-glow-hero), transparent 62%),
		linear-gradient(180deg, var(--gvsf-sky-deep) 0%, var(--gvsf-sky-hero) 48%, var(--gvsf-night-850) 100%);
}
html body .gvsf-hero__grid { position: relative; z-index: 3; }
html body .gvsf-hero__copy { position: relative; max-width: 540px; }
html body .gvsf-hero__copy::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: -420px;
	top: -120px;
	bottom: -120px;
	width: calc(100% + 700px);
	background: radial-gradient(ellipse 52% 50% at 38% 50%, rgba(2, 8, 48, .62), rgba(2, 8, 48, .32) 55%, transparent 100%);
	pointer-events: none;
}
html body .gvsf-hero__title {
	margin: 0 0 22px;
	font-size: clamp(2.6rem, 4.9vw, 4.7rem);
	line-height: 1.02;
	color: var(--gvsf-cream);
	text-shadow: 0 4px 26px rgba(0, 10, 60, .55);
	text-wrap: balance;
}
html body .gvsf-accent {
	display: inline-block;
	font-style: italic;
	font-weight: 900;
	background: var(--gvsf-accent-fill);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 3px 0 rgba(122, 63, 5, .9)) drop-shadow(0 8px 14px rgba(0, 0, 40, .45));
	padding-right: .08em;
}
html body .gvsf-hero__text { margin: 0; font-size: 1.2rem; color: var(--gvsf-text-on-night); max-width: 50ch; }
html body .gvsf-hero__points {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
	font-size: .95rem;
	font-weight: 700;
	color: var(--gvsf-gold-200);
}
html body .gvsf-hero__points li { display: flex; align-items: center; gap: 8px; }
html body .gvsf-hero__points svg { width: 16px; height: 16px; fill: var(--gvsf-gold-300); }
html body .gvsf-hero__art {
	position: absolute;
	z-index: 1;
	right: 0;
	bottom: 0;
	height: min(100%, 52vw);
	max-height: 840px;
	aspect-ratio: 1054 / 800;
	-webkit-mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .55) 12%, #000 30%);
	mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .55) 12%, #000 30%);
}
html body .gvsf-hero__art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 12%, #000 86%, transparent 99%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 12%, #000 86%, transparent 99%);
}
html body .gvsf-hero .gvsf-confetti { z-index: 2; }
@keyframes gvsf-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; }; }
@media (prefers-reduced-motion: no-preference) {
	html body .gvsf-hero__copy > * { animation: gvsf-rise .8s cubic-bezier(.2, .7, .2, 1) both; }
	html body .gvsf-hero__copy > *:nth-child(2) { animation-delay: .08s; }
	html body .gvsf-hero__copy > *:nth-child(3) { animation-delay: .16s; }
	html body .gvsf-hero__copy > *:nth-child(4) { animation-delay: .24s; }
	html body .gvsf-hero__copy > *:nth-child(5) { animation-delay: .32s; }
}
html body .gvsf-poster {
	position: relative;
	background: linear-gradient(180deg, var(--gvsf-night-850) 0%, var(--gvsf-night-900) 100%);
	padding: 0 0 140px;
	overflow-x: clip;
	display: flow-root;
}
html body .gvsf-poster__stage { position: relative; max-width: 1040px; margin-inline: auto; padding-inline: 24px; }
html body .gvsf-ribbon {
	position: relative;
	z-index: 4;
	margin: -96px auto 0;
	max-width: 960px;
	padding: 40px 72px 34px;
	text-align: center;
	border-radius: 18px;
	background: linear-gradient(180deg, #db2238 0%, #b3122a 46%, #7f0a1d 100%);
	box-shadow: 0 26px 46px rgba(0, 0, 0, .5), inset 0 0 0 3px rgba(255, 214, 102, .75), inset 0 0 0 8px rgba(120, 8, 24, .85), inset 0 2px 30px rgba(255, 120, 120, .25);
}
html body .gvsf-ribbon::before, html body .gvsf-ribbon::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: 34px;
	bottom: -30px;
	width: 96px;
	background: linear-gradient(180deg, #8f0c20, #5e0814);
	box-shadow: inset 0 0 0 3px rgba(255, 214, 102, .55);
}
html body .gvsf-ribbon::before { left: -62px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 26% 50%); }
html body .gvsf-ribbon::after { right: -62px; clip-path: polygon(0 0, 100% 0, 74% 50%, 100% 100%, 0 100%); }
html body .gvsf-ribbon__script {
	display: block;
	font-family: var(--gvsf-font-display);
	font-style: italic;
	font-weight: 900;
	font-size: clamp(3.2rem, 8.4vw, 7rem);
	line-height: 1;
	padding: 0 .1em .04em;
	background: linear-gradient(180deg, #fff3ad 0%, #ffd24a 46%, #ec9a12 54%, #ffd95f 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 3px 0 #8a4a05) drop-shadow(0 9px 10px rgba(50, 0, 0, .55));
}
html body .gvsf-ribbon__caps {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-top: 4px;
	font-family: var(--gvsf-font-display);
	font-weight: 900;
	font-size: clamp(1.7rem, 4.6vw, 3.7rem);
	line-height: 1;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff4d4;
	text-shadow: 0 3px 0 #7a3a08, 0 9px 14px rgba(0, 0, 0, .5);
}
html body .gvsf-ribbon__caps::before, html body .gvsf-ribbon__caps::after {
	content: "";
	flex: 0 1 90px;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, transparent, #ffd24a);
	box-shadow: 0 2px 4px rgba(0, 0, 0, .4);
}
html body .gvsf-ribbon__caps::after { transform: scaleX(-1); }
html body .gvsf-ribbon .gvsf-spark { position: absolute; color: var(--gvsf-gold-200); }
html body .gvsf-ribbon .gvsf-spark svg { width: 100%; height: 100%; fill: currentColor; }
html body .gvsf-ribbon .gvsf-spark--1 { width: 22px; height: 22px; left: 5%; top: 24%; }
html body .gvsf-ribbon .gvsf-spark--2 { width: 16px; height: 16px; right: 7%; top: 18%; }
html body .gvsf-ribbon .gvsf-spark--3 { width: 12px; height: 12px; right: 12%; bottom: 20%; }
html body .gvsf-parchment {
	position: relative;
	z-index: 3;
	max-width: 860px;
	margin: -30px auto 0;
	padding: 62px 56px 30px;
	text-align: center;
	border-radius: 0 0 28px 28px;
	background: radial-gradient(120% 90% at 50% 0%, #fff9e0 0%, #f9e4ac 70%, #efcf84 100%);
	box-shadow: 0 24px 44px rgba(0, 0, 0, .45), inset 0 0 0 2px rgba(201, 122, 10, .4), inset 0 0 50px rgba(201, 122, 10, .22);
}
html body .gvsf-parchment__rows { display: grid; gap: 6px; justify-items: center; }
html body .gvsf-parchment__row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin: 0;
	font-family: var(--gvsf-font-display);
	font-weight: 600;
	font-size: clamp(1.4rem, 3.1vw, 2.35rem);
	line-height: 1.25;
	color: var(--gvsf-red-600);
}
html body .gvsf-parchment__row svg {
	width: 1.15em;
	height: 1.15em;
	flex: none;
	stroke: var(--gvsf-red-600);
	fill: none;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
html body .gvsf-parchment__ask {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 22px auto 0;
	max-width: 640px;
	font-family: var(--gvsf-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.12rem;
	color: var(--gvsf-red-600);
}
html body .gvsf-parchment__ask::before, html body .gvsf-parchment__ask::after {
	content: "";
	flex: 1;
	height: 1.5px;
	background: linear-gradient(90deg, transparent, var(--gvsf-red-600));
}
html body .gvsf-parchment__ask::after { transform: scaleX(-1); }
html body .gvsf-parchment .gvsf-actions { justify-content: center; margin-top: 26px; }
html body .gvsf-alarm {
	position: relative;
	z-index: 4;
	max-width: 980px;
	margin: 34px auto 0;
	padding: 26px 34px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 30px;
	align-items: center;
	border-radius: 22px;
	color: var(--gvsf-cream);
	background: linear-gradient(180deg, var(--gvsf-btn-a1) 0%, var(--gvsf-btn-a2) 100%);
	box-shadow: 0 22px 40px rgba(0, 0, 0, .45), inset 0 0 0 3px rgba(255, 214, 102, .85), inset 0 0 0 7px rgba(110, 8, 22, .9);
}
html body .gvsf-alarm__icon {
	width: 86px;
	height: 86px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #ffe58a, #f2a81d);
	box-shadow: 0 6px 0 #9a5c06, 0 10px 18px rgba(0, 0, 0, .35);
}
html body .gvsf-alarm__icon svg { width: 46px; height: 46px; fill: #7a1220; }
html body .gvsf-alarm__copy { min-width: 0; }
html body .gvsf-alarm__title {
	margin: 0 0 8px;
	font-family: var(--gvsf-font-display);
	font-weight: 900;
	font-size: clamp(1.9rem, 4.2vw, 3rem);
	letter-spacing: .02em;
	text-transform: uppercase;
	line-height: 1;
	background: linear-gradient(180deg, #fff3ad, #ffc93e 55%, #f2a81d);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 2px 0 rgba(90, 20, 0, .7));
}
html body .gvsf-alarm__text { margin: 0 0 14px; font-size: 1.1rem; line-height: 1.45; max-width: 46ch; }
html body .gvsf-alarm__pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 22px;
	border-radius: 999px;
	background: linear-gradient(180deg, #ffe58a, #f7b52b);
	color: #4a2600;
	font-weight: 800;
	text-decoration: none;
	box-shadow: 0 3px 0 #a8650a;
}
html body .gvsf-alarm__pill:hover { color: #4a2600; transform: translateY(-1px); }
html body .gvsf-alarm__pill svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-alarm__qr { width: 176px; height: 176px; padding: 10px; border-radius: 22px; background: #fff; box-shadow: 0 0 0 4px #f7b52b, 0 12px 24px rgba(0, 0, 0, .4); }
html body .gvsf-alarm__qr img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 12px; }
html body .gvsf-alarm__qr-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 2px dashed var(--gvsf-btn-a1);
	border-radius: 14px;
	color: var(--gvsf-red-800);
	font-weight: 800;
	font-size: .9rem;
	text-align: center;
	padding: 8px;
}
html body .gvsf-pepernoot {
	position: absolute;
	z-index: 5;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	pointer-events: none;
	background:
		radial-gradient(circle at 30% 25%, rgba(255, 220, 170, .55), transparent 38%),
		radial-gradient(circle at 62% 42%, #4a260c 0 2.4px, transparent 3px),
		radial-gradient(circle at 38% 62%, #4a260c 0 2.2px, transparent 3px),
		radial-gradient(circle at 70% 70%, #4a260c 0 2px, transparent 2.6px),
		radial-gradient(circle at 40% 35%, #c27a35, #8a4d1e 70%);
	box-shadow: inset -5px -6px 10px rgba(50, 20, 0, .45), 0 8px 14px rgba(0, 0, 0, .4);
}
html body .gvsf-pepernoot--1 { left: -4px; top: 56%; width: 64px; height: 64px; transform: rotate(12deg); }
html body .gvsf-pepernoot--2 { left: 10%; bottom: -46px; }
html body .gvsf-pepernoot--3 { left: 29%; bottom: -70px; width: 44px; height: 44px; }
html body .gvsf-pepernoot--4 { right: 8%; bottom: -52px; width: 64px; height: 64px; }
html body .gvsf-pepernoot--5 { right: -6px; top: 58%; width: 48px; height: 48px; }
html body .gvsf-pepernoot--6 { right: 26%; bottom: -78px; width: 40px; height: 40px; }
html body .gvsf-pepernoot--7 { left: 46%; bottom: -60px; width: 50px; height: 50px; }
html body .gvsf-gift {
	position: absolute;
	z-index: 5;
	width: 74px;
	height: 66px;
	border-radius: 8px;
	pointer-events: none;
	background:
		linear-gradient(90deg, transparent 41%, #ffd24a 41% 59%, transparent 59%),
		linear-gradient(180deg, transparent 38%, #ffd24a 38% 52%, transparent 52%),
		linear-gradient(180deg, var(--gvsf-btn-b1), var(--gvsf-btn-b2));
	box-shadow: 0 12px 20px rgba(0, 0, 0, .4), inset 0 0 0 2px rgba(80, 0, 10, .25);
}
html body .gvsf-gift::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -17px;
	width: 38px;
	height: 22px;
	transform: translateX(-50%);
	background: radial-gradient(circle at 25% 50%, #ffd24a 0 9px, transparent 10px), radial-gradient(circle at 75% 50%, #ffd24a 0 9px, transparent 10px);
}
html body .gvsf-gift--1 { left: 1%; bottom: -34px; transform: rotate(-8deg); }
html body .gvsf-gift--2 {
	right: 1%;
	bottom: -44px;
	width: 84px;
	height: 76px;
	transform: rotate(7deg);
	background:
		linear-gradient(90deg, transparent 41%, #fff3c4 41% 59%, transparent 59%),
		linear-gradient(180deg, transparent 38%, #fff3c4 38% 52%, transparent 52%),
		linear-gradient(180deg, #2b6fe0, #123f9e);
}
html body .gvsf-gift--2::before { background: radial-gradient(circle at 25% 50%, #fff3c4 0 9px, transparent 10px), radial-gradient(circle at 75% 50%, #fff3c4 0 9px, transparent 10px); }
html body .gvsf-gift--3 { right: 14%; top: 8px; display: none; }
html body .gvsf-collage { position: relative; max-width: 520px; margin-inline: auto; aspect-ratio: 1 / 1.05; }
html body .gvsf-frame {
	position: absolute;
	padding: 7px;
	border-radius: 28px;
	background: linear-gradient(145deg, #ffe58a, #c98a12 45%, #ffd24a);
	box-shadow: var(--gvsf-shadow-lg);
}
html body .gvsf-frame img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 22px; }
html body .gvsf-frame--a { left: 0; top: 0; width: 66%; aspect-ratio: 1; transform: rotate(-3deg); }
html body .gvsf-frame--b { right: 0; bottom: 0; width: 62%; aspect-ratio: 1; transform: rotate(3deg); }
html body .gvsf-medal {
	position: absolute;
	z-index: 3;
	right: 2%;
	top: 6%;
	width: 112px;
	height: 112px;
	display: grid;
	place-items: center;
	padding: 14px;
	text-align: center;
	border-radius: 50%;
	font-family: var(--gvsf-font-display);
	font-weight: 800;
	font-size: 1.02rem;
	line-height: 1.15;
	color: #4a2600;
	background: radial-gradient(circle at 35% 28%, #fff0a6, #f7b52b 70%);
	box-shadow: 0 0 0 4px var(--gvsf-red-500), 0 0 0 7px rgba(255, 210, 74, .85), 0 16px 28px rgba(0, 0, 0, .35);
	transform: rotate(8deg);
}
html body .gvsf-chars { display: flex; flex-wrap: wrap; justify-content: center; gap: 44px 28px; margin: 0; padding: 0; list-style: none; }
html body .gvsf-char { flex: 0 0 calc((100% - 3 * 28px) / 4); min-width: 0; }
html body .gvsf-char__link { display: block; color: inherit; text-decoration: none; }
html body .gvsf-char__frame {
	position: relative;
	display: block;
	padding: 6px;
	border-radius: 26px;
	background: linear-gradient(145deg, #ffe58a, #c98a12 45%, #ffd24a);
	box-shadow: 0 18px 34px rgba(0, 0, 0, .4);
	transition: transform .3s, box-shadow .3s;
}
html body .gvsf-char__photo { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 20px; background: linear-gradient(180deg, var(--gvsf-sky-mid), var(--gvsf-night-850)); }
html body .gvsf-char__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
html body .gvsf-char__plate {
	position: relative;
	z-index: 2;
	display: block;
	margin: -24px 14px 0;
	padding: 10px 12px 11px;
	text-align: center;
	border-radius: 14px;
	background: linear-gradient(180deg, var(--gvsf-btn-c1), var(--gvsf-btn-c2));
	box-shadow: 0 10px 18px rgba(0, 0, 0, .4), inset 0 0 0 2px rgba(255, 214, 102, .8);
}
html body .gvsf-char__name {
	display: block;
	font-family: var(--gvsf-font-display);
	font-weight: 800;
	font-size: 1.28rem;
	line-height: 1.1;
	color: var(--gvsf-cream);
	text-shadow: 0 2px 0 rgba(80, 0, 10, .6);
}
html body .gvsf-char__role { display: block; margin-top: 4px; font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--gvsf-gold-200); }
html body .gvsf-char__link:hover .gvsf-char__frame {
	transform: translateY(-6px) rotate(-.8deg);
	box-shadow: 0 26px 44px rgba(0, 0, 0, .5), 0 0 0 2px rgba(255, 226, 125, .7);
}
html body .gvsf-char__link:hover .gvsf-char__photo img { transform: scale(1.06); }
html body .gvsf-grid { display: grid; gap: 28px; }
html body .gvsf-grid--2 { grid-template-columns: repeat(2, 1fr); }
html body .gvsf-grid--3 { grid-template-columns: repeat(3, 1fr); }
html body .gvsf-grid--4 { grid-template-columns: repeat(4, 1fr); }
html body .gvsf-card { background: #fff; color: var(--gvsf-ink); border-radius: var(--gvsf-radius); box-shadow: var(--gvsf-shadow); transition: transform .3s, box-shadow .3s; }
html body .gvsf-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(3, 10, 46, .2); }
html body .gvsf-service { position: relative; display: flex; flex-direction: column; padding: 38px 30px 32px; border-top: 5px solid var(--gvsf-red-500); text-align: left; }
html body .gvsf-service__icon {
	display: grid;
	place-items: center;
	width: 68px;
	height: 68px;
	margin-bottom: 22px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 28%, var(--gvsf-blue-bright), var(--gvsf-night-900));
	box-shadow: 0 0 0 3px var(--gvsf-gold-300), 0 10px 18px rgba(3, 10, 46, .3);
}
html body .gvsf-service__icon svg { width: 32px; height: 32px; stroke: var(--gvsf-gold-200); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-service h3 { margin: 0 0 10px; }
html body .gvsf-service p { margin: 0 0 22px; color: var(--gvsf-muted); flex: 1; }
html body .gvsf-service .gvsf-link { align-self: flex-start; }
html body .gvsf-events { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
html body .gvsf-event {
	position: relative;
	display: grid;
	grid-template-columns: 112px 1fr auto;
	align-items: stretch;
	background: linear-gradient(180deg, #fffbea, #f7e2a9);
	color: var(--gvsf-ink);
	border-radius: 20px;
	box-shadow: 0 16px 32px rgba(0, 0, 0, .28);
	overflow: hidden;
	transition: transform .3s, box-shadow .3s;
}
html body .gvsf-event:hover { transform: translateY(-3px); box-shadow: 0 22px 40px rgba(0, 0, 0, .34); }
html body .gvsf-event__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 18px 8px;
	text-align: center;
	color: var(--gvsf-cream);
	background: linear-gradient(180deg, var(--gvsf-btn-c1), var(--gvsf-btn-d2));
	box-shadow: inset -3px 0 0 rgba(255, 214, 102, .8);
}
html body .gvsf-event__day { font-family: var(--gvsf-font-display); font-weight: 900; font-size: 2.9rem; line-height: 1; text-shadow: 0 3px 0 rgba(70, 0, 10, .55); }
html body .gvsf-event__month { margin-top: 6px; font-size: .84rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--gvsf-gold-200); }
html body .gvsf-event__body { padding: 20px 28px; min-width: 0; }
html body .gvsf-event__title { margin: 0 0 6px; font-size: 1.5rem; }
html body .gvsf-event__title a { color: var(--gvsf-ink); text-decoration: none; }
html body .gvsf-event__title a:hover { color: var(--gvsf-red-600); }
html body .gvsf-night .gvsf-event h3, html body .gvsf-night .gvsf-event .gvsf-event__title a { color: var(--gvsf-ink); }
html body .gvsf-night .gvsf-event .gvsf-event__title a:hover { color: var(--gvsf-red-600); }
html body .gvsf-event__meta { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0; padding: 0; list-style: none; color: var(--gvsf-muted); font-weight: 600; font-size: .98rem; }
html body .gvsf-event__meta li { display: flex; align-items: center; gap: 7px; }
html body .gvsf-event__meta svg { flex: none; width: 17px; height: 17px; stroke: var(--gvsf-red-600); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-event__text { margin: 8px 0 0; color: var(--gvsf-muted); font-size: .98rem; }
html body .gvsf-event__action { display: flex; align-items: center; padding: 0 28px 0 0; }
html body .gvsf-events--past .gvsf-event { opacity: .8; filter: saturate(.7); }
html body .gvsf-photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
html body .gvsf-photos a {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	border-radius: 22px;
	box-shadow: 0 0 0 4px rgba(255, 210, 74, .85), 0 18px 32px rgba(0, 0, 0, .4);
}
html body .gvsf-photos img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
html body .gvsf-photos a:hover img { transform: scale(1.07); }
html body .gvsf-news-card { display: flex; flex-direction: column; overflow: hidden; }
html body .gvsf-news-card__image { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: radial-gradient(circle at 70% 30%, var(--gvsf-blue-light), var(--gvsf-night-900)); }
html body .gvsf-news-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
html body .gvsf-news-card:hover .gvsf-news-card__image img { transform: scale(1.05); }
html body .gvsf-news-card__empty { display: grid; place-items: center; width: 100%; height: 100%; color: var(--gvsf-gold-300); }
html body .gvsf-news-card__empty svg { width: 54px; height: 54px; fill: currentColor; opacity: .85; }
html body .gvsf-news-card__body { display: flex; flex: 1; flex-direction: column; padding: 26px 28px 30px; }
html body .gvsf-news-card__meta { margin: 0 0 10px; font-size: .84rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--gvsf-red-600); }
html body .gvsf-news-card__title { margin: 0 0 10px; font-size: 1.35rem; }
html body .gvsf-news-card__title a { color: var(--gvsf-ink); text-decoration: none; }
html body .gvsf-news-card__title a:hover { color: var(--gvsf-red-600); }
html body .gvsf-news-card p { margin: 0 0 18px; color: var(--gvsf-muted); flex: 1; }
html body .gvsf-news-card p.gvsf-news-card__meta { flex: none; margin: 0 0 10px; color: var(--gvsf-red-600); }
html body .gvsf-news-card .gvsf-link { align-self: flex-start; }
html body .gvsf-social { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 0; padding: 0; list-style: none; }
html body .gvsf-social a {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	color: var(--gvsf-night-950);
	background: linear-gradient(180deg, #ffe58a, #f2a81d);
	box-shadow: 0 4px 0 #a8650a, 0 12px 20px rgba(0, 0, 0, .3);
	transition: transform .25s;
}
html body .gvsf-social a:hover { transform: translateY(-4px) rotate(-4deg); color: var(--gvsf-night-950); }
html body .gvsf-social svg { width: 28px; height: 28px; fill: currentColor; }
html body .gvsf-cta { position: relative; overflow: hidden; padding: 110px 0 120px; }
html body .gvsf-cta__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.2fr .8fr; gap: 56px; align-items: center; }
html body .gvsf-cta h2 { margin: 0 0 16px; }
html body .gvsf-cta .gvsf-eyebrow { font-size: .82rem; }
html body .gvsf-cta p { margin: 0; font-size: 1.2rem; max-width: 50ch; color: var(--gvsf-text-on-night); }
html body .gvsf-avatars { display: flex; justify-content: center; }
html body .gvsf-avatars span {
	display: block;
	width: 170px;
	height: 170px;
	margin-inline: -18px;
	border-radius: 50%;
	overflow: hidden;
	border: 5px solid var(--gvsf-gold-300);
	box-shadow: 0 16px 30px rgba(0, 0, 0, .45);
	background: var(--gvsf-night-900);
}
html body .gvsf-avatars span:nth-child(2) { width: 200px; height: 200px; position: relative; z-index: 2; margin-top: -14px; }
html body .gvsf-avatars img { width: 100%; height: 100%; object-fit: cover; display: block; }
html body .gvsf-skyline {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: clamp(120px, 16vw, 230px);
	background: url("../img/skyline.svg") repeat-x center bottom / auto 100%;
	pointer-events: none;
	z-index: 1;
}
html body .gvsf-page-hero { position: relative; overflow: hidden; padding: calc(var(--gvsf-header-h) + 72px) 0 120px; text-align: center; }
html body .gvsf-page-hero__inner { position: relative; z-index: 3; }
html body .gvsf-page-hero__title { margin: 0 0 16px; font-size: clamp(2.5rem, 5.4vw, 4.6rem); color: var(--gvsf-cream); text-shadow: 0 4px 24px rgba(0, 10, 60, .5); }
html body .gvsf-page-hero__text { margin: 0 auto; max-width: 60ch; font-size: 1.2rem; color: var(--gvsf-text-on-night); }
html body .gvsf-page-hero .gvsf-actions { justify-content: center; }
html body .gvsf-page-hero .gvsf-skyline { opacity: .9; height: clamp(90px, 12vw, 170px); }
html body .gvsf-heap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 118px;
	z-index: 5;
	pointer-events: none;
	background:
		radial-gradient(circle at 34px 92px, rgba(70, 30, 5, .55) 0 2px, transparent 3px),
		radial-gradient(circle at 78px 66px, rgba(70, 30, 5, .55) 0 2px, transparent 3px),
		radial-gradient(circle at 28px 98px, #b06a2c 0 32px, transparent 33px),
		radial-gradient(circle at 92px 104px, #96551f 0 36px, transparent 37px),
		radial-gradient(circle at 62px 58px, #c27a35 0 27px, transparent 28px),
		radial-gradient(circle at 128px 62px, #a96127 0 24px, transparent 25px);
	background-size: 150px 118px;
	background-repeat: repeat-x;
	background-position: 20px bottom;
}
html body .gvsf-heap::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 90px;
	background:
		radial-gradient(circle at 40px 60px, rgba(60, 25, 4, .5) 0 2px, transparent 3px),
		radial-gradient(circle at 44px 62px, #9a5a26 0 38px, transparent 39px),
		radial-gradient(circle at 118px 70px, #84491c 0 33px, transparent 34px),
		radial-gradient(circle at 170px 56px, #b06a2c 0 29px, transparent 30px);
	background-size: 210px 90px;
	background-repeat: repeat-x;
	background-position: -50px bottom;
}
html body .gvsf-heap::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, rgba(3, 10, 46, .55) 100%); }
html body .gvsf-hero .gvsf-bunting { top: calc(var(--gvsf-header-h) - 10px); }
html body .gvsf-center { text-align: center; }
html body .gvsf-hint {
	display: block;
	margin: 22px 0 0;
	padding: 12px 16px;
	border-left: 4px solid var(--gvsf-gold-400);
	border-radius: 8px;
	background: rgba(251, 191, 36, .14);
	color: var(--gvsf-ink);
	font-size: .92rem;
	line-height: 1.5;
}
html body .gvsf-night .gvsf-hint { color: var(--gvsf-cream); }
html body .gvsf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
html body .gvsf-prose { color: var(--gvsf-ink); font-size: 1.06rem; }
html body .gvsf-prose > *:first-child { margin-top: 0; }
html body .gvsf-prose > *:last-child { margin-bottom: 0; }
html body .gvsf-prose h2 { margin: 1.8em 0 .5em; }
html body .gvsf-prose h3 { margin: 1.6em 0 .4em; }
html body .gvsf-prose h4 { margin: 1.4em 0 .4em; font-size: 1.2rem; }
html body .gvsf-prose p, html body .gvsf-prose ul, html body .gvsf-prose ol { margin: 0 0 1.15em; }
html body .gvsf-prose ul, html body .gvsf-prose ol { padding-left: 1.3em; }
html body .gvsf-prose li { margin-bottom: .4em; }
html body .gvsf-prose li::marker { color: var(--gvsf-red-500); font-weight: 800; }
html body .gvsf-prose a { color: var(--gvsf-red-600); text-underline-offset: 3px; text-decoration-thickness: 2px; text-decoration-color: var(--gvsf-gold-400); }
html body .gvsf-prose a:hover { color: var(--gvsf-red-500); text-decoration-color: var(--gvsf-red-500); }
html body .gvsf-prose img, html body .gvsf-prose figure img { border-radius: 18px; }
html body .gvsf-prose figure { margin: 1.8em 0; }
html body .gvsf-prose figcaption { margin-top: 10px; font-size: .9rem; color: var(--gvsf-muted); text-align: center; }
html body .gvsf-prose blockquote {
	margin: 1.8em 0;
	padding: 22px 28px;
	border-left: 5px solid var(--gvsf-gold-400);
	border-radius: 0 18px 18px 0;
	background: #fff;
	font-family: var(--gvsf-font-display);
	font-style: italic;
	font-size: 1.22rem;
	box-shadow: var(--gvsf-shadow);
}
html body .gvsf-prose hr { height: 2px; margin: 2.4em 0; border: 0; background: linear-gradient(90deg, transparent, var(--gvsf-gold-400), transparent); }
html body .gvsf-prose iframe, html body .gvsf-prose video { max-width: 100%; border-radius: 18px; }
html body .gvsf-prose table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; }
html body .gvsf-prose th, html body .gvsf-prose td { padding: 10px 14px; border-bottom: 1px solid rgba(10, 23, 71, .14); text-align: left; }
html body .gvsf-prose--center { text-align: center; }
html body .gvsf-prose--center ul, html body .gvsf-prose--center ol { display: inline-block; text-align: left; }
html body .gvsf-prose--wide { max-width: 1100px; margin-inline: auto; }
html body .gvsf-prose--lyrics { margin-top: 36px; text-align: center; font-size: 1.14rem; line-height: 1.9; }
html body .gvsf-prose .alignwide { margin-inline: -4vw; }
html body .gvsf-prose .wp-block-button__link {
	display: inline-flex;
	padding: 15px 32px;
	border-radius: 999px;
	background: linear-gradient(180deg, #ffe27d, #f7b52b);
	color: #2b1600;
	font-weight: 800;
	text-decoration: none;
	box-shadow: 0 3px 0 #b36d07;
}
html body .gvsf-prose .wp-block-gallery { gap: 14px; }
html body .gvsf-prose .wp-block-gallery img { border-radius: 16px; }
html body .gvsf-empty {
	max-width: 620px;
	margin: 0 auto;
	padding: 48px 32px;
	text-align: center;
	border-radius: 26px;
	background: #fff;
	box-shadow: var(--gvsf-shadow);
	border-top: 5px solid var(--gvsf-gold-400);
}
html body .gvsf-empty__icon {
	display: inline-grid;
	place-items: center;
	width: 76px;
	height: 76px;
	margin-bottom: 18px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 28%, var(--gvsf-blue-bright), var(--gvsf-night-900));
	box-shadow: 0 0 0 3px var(--gvsf-gold-300);
}
html body .gvsf-empty__icon svg { width: 34px; height: 34px; stroke: var(--gvsf-gold-200); fill: var(--gvsf-gold-200); stroke-width: 1.7; }
html body .gvsf-empty__icon svg[fill="none"] { fill: none; }
html body .gvsf-empty h2, html body .gvsf-empty h3 { margin: 0 0 10px; }
html body .gvsf-empty p { margin: 0 auto 22px; max-width: 46ch; color: var(--gvsf-muted); }
html body .gvsf-empty .gvsf-actions { justify-content: center; margin-top: 8px; }
html body .gvsf-empty--music { background: transparent; box-shadow: none; border-top: 0; }
html body .gvsf-cream .gvsf-event, html body .gvsf-paper .gvsf-event { background: #fff; box-shadow: 0 14px 30px rgba(3, 10, 46, .12); }
html body .gvsf-cream .gvsf-event:hover, html body .gvsf-paper .gvsf-event:hover { box-shadow: 0 22px 40px rgba(3, 10, 46, .2); }
html body .gvsf-agenda .gvsf-event__title { font-size: 1.55rem; }
html body .gvsf-night .gvsf-events--past .gvsf-event { opacity: .88; filter: saturate(.75); }
html body .gvsf-kinds { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin: 0 0 64px; padding: 0; list-style: none; }
html body .gvsf-kind {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 28px 18px 26px;
	text-align: center;
	text-decoration: none;
	color: var(--gvsf-ink);
	background: #fff;
	border: 2px solid transparent;
	border-radius: 22px;
	box-shadow: var(--gvsf-shadow);
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
html body .gvsf-kind:hover { color: var(--gvsf-ink); transform: translateY(-5px); border-color: var(--gvsf-gold-400); box-shadow: 0 20px 36px rgba(3, 10, 46, .18); }
html body .gvsf-kind__icon {
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	margin-bottom: 16px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 28%, var(--gvsf-blue-bright), var(--gvsf-night-900));
	box-shadow: 0 0 0 3px var(--gvsf-gold-300);
}
html body .gvsf-kind__icon svg { width: 28px; height: 28px; stroke: var(--gvsf-gold-200); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-kind__title { margin-bottom: 6px; font-family: var(--gvsf-font-display); font-weight: 800; font-size: 1.22rem; line-height: 1.15; }
html body .gvsf-kind__text { font-size: .94rem; line-height: 1.5; color: var(--gvsf-muted); }
html body .gvsf-booking__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 36px; align-items: start; }
html body .gvsf-formcard { overflow: hidden; border-radius: 28px; background: #fff; border-top: 6px solid var(--gvsf-red-500); box-shadow: 0 24px 54px rgba(3, 10, 46, .16); }
html body .gvsf-formcard__head { padding: 34px 40px 4px; }
html body .gvsf-formcard__head h2, html body .gvsf-formcard__head h3 { margin: 0 0 8px; font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
html body .gvsf-formcard__head p { margin: 0; color: var(--gvsf-muted); }
html body .gvsf-formcard .gvsf-form-wrap { padding: 6px 40px 40px; }
html body .gvsf-booking__side {
	position: sticky;
	top: var(--gvsf-sticky-top);
	padding: 36px 32px 34px;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 24px 54px rgba(3, 10, 46, .28);
}
html body .gvsf-booking__side h3 { margin: 0 0 22px; font-size: 1.6rem; }
html body .gvsf-steps { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
html body .gvsf-steps li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; line-height: 1.5; }
html body .gvsf-steps strong { display: block; margin-bottom: 2px; font-family: var(--gvsf-font-display); font-size: 1.12rem; color: var(--gvsf-gold-200); }
html body .gvsf-steps__nr {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-family: var(--gvsf-font-display);
	font-weight: 900;
	font-size: 1.2rem;
	color: #4a2600;
	background: radial-gradient(circle at 35% 28%, #fff0a6, #f7b52b 70%);
	box-shadow: 0 0 0 3px rgba(255, 210, 74, .35);
}
html body .gvsf-booking__contact { display: grid; gap: 10px; margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .18); }
html body .gvsf-booking__contact-title { margin: 0; font-weight: 800; color: var(--gvsf-gold-200); }
html body .gvsf-booking__contact a { display: inline-flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; font-weight: 700; word-break: break-word; }
html body .gvsf-booking__contact a:hover { color: var(--gvsf-gold-300); }
html body .gvsf-booking__contact svg {
	width: 22px;
	height: 22px;
	flex: none;
	stroke: var(--gvsf-gold-300);
	fill: none;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
html body .gvsf-booking__avatars { display: flex; justify-content: center; margin: 26px 0 -80px; }
html body .gvsf-booking__avatars span {
	display: block;
	width: 150px;
	height: 150px;
	overflow: hidden;
	border: 4px solid var(--gvsf-gold-300);
	border-radius: 50%;
	background: var(--gvsf-night-900);
	box-shadow: 0 14px 26px rgba(0, 0, 0, .4);
}
html body .gvsf-booking__avatars img { display: block; width: 100%; height: 100%; object-fit: cover; }
html body .gvsf-booking__side { padding-bottom: 100px; }
html body .gvsf-form { counter-reset: gvsfs; }
html body .gvsf-field input, html body .gvsf-field select, html body .gvsf-field textarea { box-sizing: border-box; max-width: 100%; }
html body .gvsf-fieldset { margin: 0; padding: 26px 0 4px; border: 0; border-top: 1px solid rgba(10, 23, 71, .1); }
html body .gvsf-fieldset:first-of-type { border-top: 0; padding-top: 18px; }
html body .gvsf-fieldset legend {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	padding: 0;
	font-family: var(--gvsf-font-display);
	font-weight: 800;
	font-size: 1.18rem;
	color: var(--gvsf-ink);
	float: left;
	width: 100%;
}
html body .gvsf-fieldset legend + * { clear: both; }
html body .gvsf-fieldset legend::before {
	counter-increment: gvsfs;
	content: counter(gvsfs);
	display: grid;
	place-items: center;
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-family: var(--gvsf-font-body);
	font-size: .95rem;
	font-weight: 800;
	color: var(--gvsf-cream);
	background: linear-gradient(180deg, var(--gvsf-red-400), var(--gvsf-red-600));
	box-shadow: 0 0 0 2px rgba(255, 210, 74, .8);
}
html body .gvsf-form__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px 20px; }
html body .gvsf-field { grid-column: span 3; min-width: 0; }
html body .gvsf-field--wide { grid-column: 1 / -1; }
html body .gvsf-field--street, html body .gvsf-field--city { grid-column: span 4; }
html body .gvsf-field--number, html body .gvsf-field--postcode { grid-column: span 2; }
html body .gvsf-field label { display: block; margin-bottom: 7px; font-weight: 800; font-size: .93rem; color: var(--gvsf-ink); }
html body .gvsf-req { color: var(--gvsf-red-500); }
html body .gvsf-field input[type="text"], html body .gvsf-field input[type="email"], html body .gvsf-field input[type="tel"], html body .gvsf-field input[type="date"], html body .gvsf-field input[type="time"], html body .gvsf-field input[type="number"], html body .gvsf-field select, html body .gvsf-field textarea {
	display: block;
	width: 100%;
	height: 54px;
	padding: 0 16px;
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	color: var(--gvsf-ink);
	background: var(--gvsf-paper);
	border: 2px solid #e8d9ad;
	border-radius: 14px;
	box-shadow: none;
	transition: border-color .2s, box-shadow .2s, background-color .2s;
	appearance: none;
	-webkit-appearance: none;
}
html body .gvsf-field select {
	padding-right: 44px;
	background: var(--gvsf-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a50f26' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 16px center / 16px no-repeat;
}
html body .gvsf-field textarea { height: auto; min-height: 140px; padding: 14px 16px; resize: vertical; }
html body .gvsf-field input:hover, html body .gvsf-field select:hover, html body .gvsf-field textarea:hover { border-color: #d8c387; }
html body .gvsf-field input:focus, html body .gvsf-field select:focus, html body .gvsf-field textarea:focus {
	outline: 0;
	background: #fff;
	border-color: var(--gvsf-red-500);
	box-shadow: 0 0 0 4px rgba(200, 16, 46, .14);
}
html body .gvsf-field.has-error input, html body .gvsf-field.has-error select, html body .gvsf-field.has-error textarea { border-color: var(--gvsf-red-500); background: #fff4f5; }
html body .gvsf-field__error { margin: 7px 0 0; font-size: .9rem; font-weight: 700; color: var(--gvsf-red-600); }
html body .gvsf-field .gvsf-check, html body .gvsf-check {
	display: flex;
	margin-bottom: 0;
	align-items: flex-start;
	gap: 12px;
	font-weight: 600;
	font-size: .96rem;
	line-height: 1.5;
	cursor: pointer;
}
html body .gvsf-check input { flex: none; width: 24px; height: 24px; margin: -1px 0 0; accent-color: var(--gvsf-red-500); cursor: pointer; }
html body .gvsf-form__submit { margin: 26px 0 0; }
html body .gvsf-form__submit .gvsf-button { min-width: 260px; }
html body .gvsf-form__submit .gvsf-button[disabled] { opacity: .7; cursor: progress; }
html body .gvsf-notice { margin: 24px 0; padding: 18px 22px; border-radius: 16px; font-weight: 700; line-height: 1.5; border: 2px solid; }
html body .gvsf-notice:focus { outline: 3px solid var(--gvsf-gold-400); outline-offset: 3px; }
html body .gvsf-notice--success { background: #ecf9ef; border-color: #2f9e55; color: #124d28; }
html body .gvsf-notice--error { background: #fff0f1; border-color: var(--gvsf-red-500); color: var(--gvsf-red-800); }
html body .gvsf-formcard .gvsf-notice { margin: 20px 0 0; }
html body .gvsf-container--narrow .gvsf-single__image { margin-bottom: 36px; }
html body .gvsf-portrait {
	position: relative;
	max-width: 480px;
	margin-inline: auto;
	padding: 8px;
	border-radius: 34px;
	background: linear-gradient(145deg, #ffe58a, #c98a12 45%, #ffd24a);
	box-shadow: var(--gvsf-shadow-lg);
	transform: rotate(-2deg);
}
html body .gvsf-portrait img { display: block; width: 100%; height: auto; border-radius: 27px; }
html body .gvsf-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 34px 30px 30px;
	text-decoration: none;
	color: var(--gvsf-ink);
	border-top: 5px solid var(--gvsf-red-500);
}
html body .gvsf-tile:hover { color: var(--gvsf-ink); }
html body .gvsf-tile .gvsf-service__icon { margin-bottom: 20px; }
html body .gvsf-tile__title { margin-bottom: 6px; font-family: var(--gvsf-font-display); font-weight: 800; font-size: 1.4rem; }
html body .gvsf-tile__text { color: var(--gvsf-muted); }
html body .gvsf-tile__arrow {
	position: absolute;
	right: 26px;
	bottom: 26px;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--gvsf-red-500);
	transition: transform .25s;
}
html body .gvsf-tile:hover .gvsf-tile__arrow { transform: translateX(4px); }
html body .gvsf-tile__arrow svg { width: 20px; height: 20px; stroke: var(--gvsf-gold-200); fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-tile .gvsf-tile__text { padding-right: 56px; }
html body .gvsf-chars--text .gvsf-char { flex-basis: calc((100% - 3 * 28px) / 4); }
html body .gvsf-chars--text { gap: 56px 28px; }
html body .gvsf-char__text { display: block; margin: 18px 6px 0; text-align: center; font-size: 1rem; line-height: 1.55; color: var(--gvsf-muted); }
html body .gvsf-night .gvsf-char__text { color: #c9d5f5; }
html body .gvsf-cream .gvsf-char__frame { box-shadow: 0 18px 34px rgba(3, 10, 46, .26); }
html body .gvsf-nets { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; }
html body .gvsf-net {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 38px 24px 30px;
	text-align: center;
	text-decoration: none;
	color: var(--gvsf-ink);
	border-top: 5px solid var(--gvsf-red-500);
}
html body .gvsf-net:hover { color: var(--gvsf-ink); }
html body .gvsf-net__icon {
	display: grid;
	place-items: center;
	width: 84px;
	height: 84px;
	margin-bottom: 20px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 28%, var(--gvsf-blue-bright), var(--gvsf-night-900));
	box-shadow: 0 0 0 4px var(--gvsf-gold-300), 0 14px 24px rgba(3, 10, 46, .3);
	transition: transform .3s;
}
html body .gvsf-net:hover .gvsf-net__icon { transform: rotate(-6deg) scale(1.05); }
html body .gvsf-net__icon svg { width: 40px; height: 40px; fill: var(--gvsf-gold-200); }
html body .gvsf-net__name { margin-bottom: 6px; font-family: var(--gvsf-font-display); font-weight: 800; font-size: 1.5rem; }
html body .gvsf-net__text { flex: 1; margin-bottom: 20px; color: var(--gvsf-muted); line-height: 1.5; }
html body .gvsf-net__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 22px;
	border-radius: 999px;
	font-weight: 800;
	color: var(--gvsf-cream);
	background: linear-gradient(180deg, var(--gvsf-red-400), var(--gvsf-red-600));
	box-shadow: 0 3px 0 var(--gvsf-red-800);
}
html body .gvsf-net__cta svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-net.is-soon { opacity: .82; }
html body .gvsf-net.is-soon:hover { transform: none; box-shadow: var(--gvsf-shadow); }
html body .gvsf-net.is-soon .gvsf-net__cta { color: var(--gvsf-muted); background: #eee6cf; box-shadow: none; }
html body .gvsf-net.is-soon .gvsf-net__icon { filter: saturate(.5); }
html body .gvsf-news-card--featured { grid-column: 1 / -1; flex-direction: row; }
html body .gvsf-news-card--featured .gvsf-news-card__image { flex: 0 0 52%; aspect-ratio: auto; min-height: 340px; }
html body .gvsf-news-card--featured .gvsf-news-card__body { justify-content: center; padding: 44px 48px; }
html body .gvsf-news-card--featured .gvsf-news-card__title { font-size: clamp(1.7rem, 2.8vw, 2.4rem); }
html body .gvsf-news-card--featured p { font-size: 1.1rem; }
html body .gvsf-song { display: flex; flex-direction: column; overflow: hidden; }
html body .gvsf-song__cover {
	position: relative;
	display: block;
	aspect-ratio: 16 / 11;
	overflow: hidden;
	background: radial-gradient(circle at 70% 30%, var(--gvsf-blue-light), var(--gvsf-night-900));
}
html body .gvsf-song__cover img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
html body .gvsf-song:hover .gvsf-song__cover img { transform: scale(1.05); }
html body .gvsf-song__empty { display: grid; place-items: center; width: 100%; height: 100%; }
html body .gvsf-song__empty svg {
	width: 64px;
	height: 64px;
	stroke: var(--gvsf-gold-300);
	fill: none;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	opacity: .9;
}
html body .gvsf-song__play {
	position: absolute;
	right: 18px;
	bottom: 18px;
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	color: #4a2600;
	background: linear-gradient(180deg, #ffe58a, #f7b52b);
	box-shadow: 0 4px 0 #a8650a, 0 10px 18px rgba(0, 0, 0, .35);
	transition: transform .25s;
}
html body .gvsf-song:hover .gvsf-song__play { transform: scale(1.08); }
html body .gvsf-song__play svg { width: 24px; height: 24px; margin-left: 3px; }
html body .gvsf-song__body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 28px; }
html body .gvsf-song__artist { margin: 0 0 8px; font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--gvsf-red-600); }
html body .gvsf-song__title { margin: 0 0 8px; font-size: 1.35rem; }
html body .gvsf-song__title a { color: var(--gvsf-ink); text-decoration: none; }
html body .gvsf-song__title a:hover { color: var(--gvsf-red-600); }
html body .gvsf-song p { margin: 0 0 16px; color: var(--gvsf-muted); flex: 1; }
html body .gvsf-song p.gvsf-song__artist { flex: none; margin: 0 0 8px; color: var(--gvsf-red-600); }
html body .gvsf-songs { grid-template-columns: repeat(auto-fit, minmax(280px, 360px)); justify-content: center; }
html body .gvsf-song .gvsf-link { align-self: flex-start; }
html body .gvsf-video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 26px;
	background: var(--gvsf-night-900);
	box-shadow: 0 0 0 5px var(--gvsf-gold-300), var(--gvsf-shadow-lg);
}
html body .gvsf-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
html body .gvsf-video__play { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; padding: 0; border: 0; cursor: pointer; background: transparent; }
html body .gvsf-video__poster { position: absolute; inset: 0; background-size: cover; background-position: center; filter: saturate(1.05); }
html body .gvsf-video__poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 10, 46, .15), rgba(3, 10, 46, .55)); }
html body .gvsf-video__icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 92px;
	height: 92px;
	border-radius: 50%;
	color: #4a2600;
	background: linear-gradient(180deg, #ffe58a, #f7b52b);
	box-shadow: 0 6px 0 #a8650a, 0 18px 30px rgba(0, 0, 0, .45);
	transition: transform .25s;
}
html body .gvsf-video__play:hover .gvsf-video__icon, html body .gvsf-video__play:focus-visible .gvsf-video__icon { transform: scale(1.08); }
html body .gvsf-video__icon svg { width: 42px; height: 42px; margin-left: 5px; }
html body .gvsf-vinyl {
	display: grid;
	place-items: center;
	width: min(100%, 340px);
	aspect-ratio: 1;
	margin: 0 auto 28px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, var(--gvsf-red-500) 0 17%, #1a1f3a 17.5% 19%, #0b0f26 19.5% 100%);
	box-shadow: 0 0 0 6px var(--gvsf-gold-300), var(--gvsf-shadow-lg);
	position: relative;
}
html body .gvsf-vinyl::before {
	content: "";
	position: absolute;
	inset: 9%;
	border-radius: 50%;
	background: repeating-radial-gradient(circle, transparent 0 7px, rgba(255, 255, 255, .06) 7px 8px);
}
html body .gvsf-vinyl svg { position: relative; width: 22%; height: 22%; stroke: var(--gvsf-gold-200); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-split__media .gvsf-vinyl { margin-bottom: 0; }
html body .gvsf-streams { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 22px 0 0; padding: 0; list-style: none; }
html body .gvsf-split__text .gvsf-streams { justify-content: flex-start; }
html body .gvsf-streams .gvsf-button { padding: 12px 24px; }
html body .gvsf-streams .gvsf-button svg { stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
html body .gvsf-streamsection .gvsf-streams { margin-top: 12px; }
html body .gvsf-streamsection .gvsf-orn { margin-bottom: 22px; }
html body .gvsf-giftstage {
	position: relative;
	width: min(100%, 440px);
	aspect-ratio: 1;
	margin: 0 auto;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 42%, #1f4fc2 0%, var(--gvsf-night-900) 72%);
	box-shadow: 0 0 0 6px var(--gvsf-gold-300), var(--gvsf-shadow-lg);
	overflow: hidden;
}
html body .gvsf-giftstage::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(2px 2px at 20% 18%, #fff, transparent), radial-gradient(2px 2px at 78% 24%, #ffe9a8, transparent), radial-gradient(1.6px 1.6px at 62% 12%, #fff, transparent), radial-gradient(1.6px 1.6px at 34% 34%, #fff, transparent), radial-gradient(2px 2px at 88% 52%, #ffe9a8, transparent);
}
html body .gvsf-giftstage .gvsf-gift, html body .gvsf-giftstage .gvsf-pepernoot { position: absolute; z-index: 2; }
html body .gvsf-giftstage .gvsf-gift--1 { left: 14%; bottom: 20%; width: 110px; height: 96px; transform: rotate(-6deg); }
html body .gvsf-giftstage .gvsf-gift--2 { right: 12%; bottom: 17%; width: 130px; height: 116px; transform: rotate(5deg); }
html body .gvsf-giftstage .gvsf-gift::before { top: -23px; width: 52px; height: 30px; }
html body .gvsf-giftstage .gvsf-pepernoot--a { left: 44%; bottom: 10%; width: 74px; height: 74px; }
html body .gvsf-giftstage .gvsf-pepernoot--b { left: 22%; bottom: 7%; width: 58px; height: 58px; }
html body .gvsf-giftstage .gvsf-pepernoot--c { right: 26%; bottom: 3%; width: 66px; height: 66px; }
html body .gvsf-giftstage .gvsf-pepernoot--d { left: 56%; top: 20%; width: 44px; height: 44px; opacity: .95; }
html body .gvsf-help { padding: 88px 0 110px; }
html body .gvsf-help__head { margin-bottom: 28px; }
html body .gvsf-help .gvsf-alarm { margin-top: 0; }
html body .gvsf-help .gvsf-orn { margin-bottom: 0; }
html body .gvsf-prose .woocommerce table.shop_table { border: 0; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: var(--gvsf-shadow); }
html body .gvsf-night .gvsf-card .gvsf-link, html body .gvsf-night .gvsf-card a:not([class]) { color: var(--gvsf-red-600); }
html body .gvsf-night .gvsf-card .gvsf-link:hover, html body .gvsf-night .gvsf-card a:not([class]):hover { color: var(--gvsf-red-500); }
html body .gvsf-night .gvsf-card p { color: var(--gvsf-muted); }
html body .gvsf-night .gvsf-card h3, html body .gvsf-night .gvsf-card h3 a, html body .gvsf-night .gvsf-card .gvsf-song__title a, html body .gvsf-night .gvsf-card .gvsf-news-card__title a { color: var(--gvsf-ink); }
html body .gvsf-night .gvsf-card h3 a:hover, html body .gvsf-night .gvsf-card .gvsf-song__title a:hover, html body .gvsf-night .gvsf-card .gvsf-news-card__title a:hover { color: var(--gvsf-red-600); }
@media (max-width: 1240px) {
	html body .gvsf-char { flex-basis: calc((100% - 2 * 28px) / 3); }
	html body .gvsf-split { gap: 48px; }
	html body .gvsf-kinds { grid-template-columns: repeat(6, 1fr); }
	html body .gvsf-kinds > li { grid-column: span 2; }
	html body .gvsf-kinds > li:nth-child(n/**/+4) { grid-column: span 3; }
	html body .gvsf-nets { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1100px) {
	html body .gvsf-chars--text .gvsf-char { flex-basis: calc((100% - 2 * 28px) / 3); }
	html body .gvsf-hero { min-height: 0; padding: calc(var(--gvsf-header-h) + 56px) 0 0; text-align: center; }
	html body .gvsf-hero__copy { max-width: 640px; margin-inline: auto; }
	html body .gvsf-hero__text { margin-inline: auto; }
	html body .gvsf-hero .gvsf-actions, html body .gvsf-hero__points { justify-content: center; }
	html body .gvsf-hero__art { position: relative; right: auto; bottom: auto; width: 100%; height: auto; max-height: none; margin-top: 36px; -webkit-mask-image: none; mask-image: none; }
	html body .gvsf-hero__art img {
		height: auto;
		-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 84%, transparent 99%);
		mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 84%, transparent 99%);
	}
	html body .gvsf-ribbon { margin-top: -60px; }
}
@media (max-width: 1000px) {
	:root { --gvsf-section-y: 76px; }
	html body .gvsf-split { grid-template-columns: 1fr; gap: 56px; }
	html body .gvsf-split--reverse .gvsf-split__media { order: 0; }
	html body .gvsf-collage { max-width: 440px; }
	html body .gvsf-grid--3 { grid-template-columns: repeat(2, 1fr); }
	html body .gvsf-cta__grid { grid-template-columns: 1fr; text-align: center; gap: 44px; }
	html body .gvsf-cta p { margin-inline: auto; }
	html body .gvsf-cta .gvsf-actions { justify-content: center; }
	html body .gvsf-photos { grid-template-columns: repeat(2, 1fr); }
	html body .gvsf-char, html body .gvsf-chars--text .gvsf-char { flex-basis: calc((100% - 28px) / 2); }
	html body .gvsf-booking__grid { grid-template-columns: 1fr; }
	html body .gvsf-booking__side { position: static; }
	html body .gvsf-booking__side { padding-bottom: 96px; }
	html body .gvsf-news-card--featured { flex-direction: column; }
	html body .gvsf-news-card--featured .gvsf-news-card__image { flex: none; min-height: 0; aspect-ratio: 16 / 9; }
	html body .gvsf-news-card--featured .gvsf-news-card__body { padding: 30px 30px 34px; }
	html body .gvsf-vinyl, html body .gvsf-giftstage { width: min(100%, 320px); }
}
@media (max-width: 820px) {
	html body .gvsf-ribbon { padding: 30px 40px 26px; }
	html body .gvsf-ribbon::before, html body .gvsf-ribbon::after { display: none; }
	html body .gvsf-parchment { padding: 54px 28px 26px; }
	html body .gvsf-alarm { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 28px 24px 32px; gap: 22px; }
	html body .gvsf-alarm__text { margin-inline: auto; }
	html body .gvsf-grid--4 { grid-template-columns: 1fr; }
	html body .gvsf-event { grid-template-columns: 92px 1fr; }
	html body .gvsf-event__date { grid-row: 1 / span 2; }
	html body .gvsf-event__action { grid-column: 2; padding: 0 22px 22px; }
	html body .gvsf-event__action .gvsf-button { width: 100%; }
	html body .gvsf-event__day { font-size: 2.4rem; }
	html body .gvsf-formcard__head { padding: 28px 26px 2px; }
	html body .gvsf-formcard .gvsf-form-wrap { padding: 4px 26px 32px; }
}
@media (max-width: 620px) {
	:root { --gvsf-section-y: 64px; }
	html body .gvsf-container { padding-inline: 20px; }
	html body .gvsf-hero { padding-top: calc(var(--gvsf-header-h) + 48px); }
	html body .gvsf-actions { flex-direction: column; align-items: stretch; }
	html body .gvsf-actions .gvsf-button { width: 100%; }
	html body .gvsf-hero__points { flex-direction: column; align-items: center; gap: 8px; }
	html body .gvsf-ribbon { margin: -40px 0 0; padding: 26px 18px 22px; border-radius: 14px; }
	html body .gvsf-ribbon__caps::before, html body .gvsf-ribbon__caps::after { flex-basis: 24px; }
	html body .gvsf-ribbon .gvsf-spark--1 { left: 3%; }
	html body .gvsf-poster { padding-bottom: 120px; }
	html body .gvsf-poster__stage { padding-inline: 14px; }
	html body .gvsf-parchment { padding: 50px 18px 24px; margin-top: -26px; }
	html body .gvsf-parchment__row { gap: 10px; }
	html body .gvsf-parchment__ask { gap: 10px; font-size: 1rem; }
	html body .gvsf-alarm { border-radius: 18px; }
	html body .gvsf-alarm__title { font-size: 1.6rem; }
	html body .gvsf-alarm__qr { width: 160px; height: 160px; }
	html body .gvsf-pepernoot--1, html body .gvsf-pepernoot--5, html body .gvsf-pepernoot--7, html body .gvsf-pepernoot--6, html body .gvsf-gift--1 { display: none; }
	html body .gvsf-heap { height: 84px; background-size: 112px 90px; }
	html body .gvsf-grid--3 { grid-template-columns: 1fr; }
	html body .gvsf-chars { gap: 34px 16px; }
	html body .gvsf-char { flex-basis: calc((100% - 16px) / 2); }
	html body .gvsf-char__frame { padding: 4px; border-radius: 20px; }
	html body .gvsf-char__photo { border-radius: 16px; }
	html body .gvsf-char__plate { margin: -20px 8px 0; padding: 8px 6px 9px; }
	html body .gvsf-char__name { font-size: 1.04rem; }
	html body .gvsf-char__role { font-size: .66rem; letter-spacing: .08em; }
	html body .gvsf-medal { width: 92px; height: 92px; font-size: .84rem; padding: 10px; }
	html body .gvsf-photos { gap: 12px; }
	html body .gvsf-photos a { border-radius: 16px; }
	html body .gvsf-avatars span { width: 104px; height: 104px; margin-inline: -10px; border-width: 4px; }
	html body .gvsf-avatars span:nth-child(2) { width: 124px; height: 124px; }
	html body .gvsf-cta { padding: 80px 0 110px; }
	html body .gvsf-page-hero { padding-bottom: 100px; }
	html body .gvsf-section__head { margin-bottom: 40px; }
	html body .gvsf-event__body { padding: 16px 18px; }
	html body .gvsf-event__title { font-size: 1.28rem; }
}
@media (max-width: 620px) {
	html body .gvsf-kinds { grid-template-columns: 1fr; gap: 12px; margin-bottom: 44px; }
	html body .gvsf-kinds > li, html body .gvsf-kinds > li:nth-child(n/**/+4) { grid-column: auto; }
	html body .gvsf-kind {
		display: grid;
		grid-template-columns: 52px 1fr;
		grid-template-areas: "icon title" "icon text";
		column-gap: 16px;
		row-gap: 2px;
		align-items: center;
		justify-items: start;
		padding: 18px 20px;
		text-align: left;
	}
	html body .gvsf-kind__icon { grid-area: icon; align-self: center; margin: 0; width: 52px; height: 52px; }
	html body .gvsf-kind__title { grid-area: title; margin: 0; font-size: 1.12rem; }
	html body .gvsf-kind__text { grid-area: text; font-size: .88rem; }
	html body .gvsf-formcard { border-radius: 22px; }
	html body .gvsf-formcard__head { padding: 26px 20px 2px; }
	html body .gvsf-formcard .gvsf-form-wrap { padding: 2px 20px 28px; }
	html body .gvsf-form__grid { grid-template-columns: repeat(2, 1fr); gap: 16px 14px; }
	html body .gvsf-field, html body .gvsf-field--street, html body .gvsf-field--city { grid-column: 1 / -1; }
	html body .gvsf-field--number, html body .gvsf-field--postcode { grid-column: span 1; }
	html body .gvsf-form__submit .gvsf-button { width: 100%; min-width: 0; }
	html body .gvsf-booking__side { padding: 30px 22px 92px; border-radius: 22px; }
	html body .gvsf-nets { grid-template-columns: 1fr; gap: 16px; }
	html body .gvsf-net { padding: 28px 20px 24px; }
	html body .gvsf-net__icon { width: 70px; height: 70px; }
	html body .gvsf-chars--text .gvsf-char { flex-basis: 100%; max-width: 360px; }
	html body .gvsf-char__text { font-size: .98rem; }
	html body .gvsf-video__icon { width: 72px; height: 72px; }
	html body .gvsf-video__icon svg { width: 32px; height: 32px; }
	html body .gvsf-video { border-radius: 20px; }
	html body .gvsf-empty { padding: 36px 22px; }
	html body .gvsf-help { padding: 64px 0 80px; }
	html body .gvsf-news-card--featured .gvsf-news-card__body { padding: 24px 22px 28px; }
	html body .gvsf-vinyl, html body .gvsf-giftstage { width: min(100%, 260px); }
	html body .gvsf-giftstage .gvsf-gift--1 { width: 82px; height: 72px; }
	html body .gvsf-giftstage .gvsf-gift--2 { width: 96px; height: 86px; }
	html body .gvsf-giftstage .gvsf-pepernoot--a { width: 56px; height: 56px; }
	html body .gvsf-giftstage .gvsf-pepernoot--b { width: 44px; height: 44px; }
	html body .gvsf-giftstage .gvsf-pepernoot--c { width: 50px; height: 50px; }
	html body .gvsf-giftstage .gvsf-pepernoot--d { width: 34px; height: 34px; }
}

/* ---------- Aanvullingen voor gebruik in elk thema ---------- */
html body .gvsf-night :is(h1, h2, h3, h4) { color: var(--gvsf-cream); }
html body .gvsf-night .gvsf-card :is(h2, h3, h4), html body .gvsf-night .gvsf-formcard :is(h2, h3, h4) { color: var(--gvsf-ink); }
html body .gvsf-night .gvsf-booking__side :is(h2, h3, h4) { color: var(--gvsf-cream); }

/* Pagina-hero onder een transparante header: slingers net onder de header */
html body .gvsf-page-hero .gvsf-bunting { top: calc(var(--gvsf-header-h) - 10px); }

/* Contactpagina */
html body .gvsf-contactgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); gap: 36px; align-items: start; }
html body .gvsf-infocard { padding: 36px 32px; border-radius: 28px; box-shadow: 0 24px 54px rgba(3, 10, 46, .28); }
html body .gvsf-infocard h3 { margin: 0 0 18px; font-size: 1.6rem; }
html body .gvsf-infocard .gvsf-contactlist a { color: #fff; }
html body .gvsf-infocard .gvsf-contactlist a:hover { color: var(--gvsf-gold-300); }
html body .gvsf-infocard .gvsf-contactlist svg { stroke: var(--gvsf-gold-300); }
html body .gvsf-infocard .gvsf-social { justify-content: flex-start; }
@media (max-width: 900px) { html body .gvsf-contactgrid { grid-template-columns: 1fr; } }

/* Affichekader zonder voorgaande hero: geen negatieve marge, wel ademruimte */
html body .gvsf-poster { padding-top: 64px; }
html body .gvsf-poster .gvsf-ribbon { margin-top: 0; }
html body .gvsf-alarmwrap { padding: 24px 0; }
html body .gvsf-alarmwrap .gvsf-alarm { margin-top: 0; }

/* Gegevens op de pagina van een evenement */
html body .gvsf-eventinfo { margin: 0 0 1.8em; padding: 20px 24px; border-radius: 18px; background: linear-gradient(180deg, #fffbea, #f7e2a9); box-shadow: 0 10px 24px rgba(3, 10, 46, .12); }
html body .gvsf-eventinfo .gvsf-event__meta--big { flex-direction: column; gap: 10px; font-size: 1.12rem; color: var(--gvsf-ink); }
html body .gvsf-eventinfo .gvsf-event__meta--big svg { width: 22px; height: 22px; }
html body .gvsf-eventinfo p { margin: 14px 0 0; }
html body .gvsf-singlecta { margin-top: 2.2em; }
html body .gvsf-singlecta .gvsf-actions { margin-top: 0; }
html body .gvsf-roletag { margin: 0 0 1.2em; }
html body .gvsf-roletag span { display: inline-block; padding: 6px 16px; border-radius: 999px; background: var(--gvsf-red-500); color: var(--gvsf-cream); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

/* Uitgelicht lied in [gvs_muziek] */
html body .gvsf-featured { margin-bottom: 64px; }
html body .gvsf-featured__title { margin: 0 0 14px; font-size: clamp(2rem, 3.6vw, 3rem); }

/* [gvs_contactgegevens] */
html body .gvsf-contactlist { display: grid; gap: 12px; margin: 0 0 1.4em; padding: 0; list-style: none; }
html body .gvsf-contactlist a { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; font-size: 1.1rem; color: var(--gvsf-ink); text-decoration: none; word-break: break-word; }
html body .gvsf-contactlist a:hover { color: var(--gvsf-red-600); }
html body .gvsf-contactlist svg { width: 24px; height: 24px; flex: none; stroke: var(--gvsf-red-600); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Sociale knoppen: ook zonder link een rustig icoon */
html body span.gvsf-social__link { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; color: var(--gvsf-night-950); background: linear-gradient(180deg, #ffe58a, #f2a81d); opacity: .55; }
html body span.gvsf-social__link svg { width: 28px; height: 28px; fill: currentColor; }

/* ---------- Aanpassen aan de breedte van de kolom (ook in een smalle kolom van een thema) ---------- */
@supports (container-type: inline-size) {
	html body .gvsf-poster, html body .gvsf-agenda, html body .gvsf-booking, html body .gvsf-music, html body .gvsf-charswrap { container-type: inline-size; width: 100%; }
	html body .gvsf-ribbon__script { font-size: clamp(2.4rem, 8.4cqi, 7rem); }
	html body .gvsf-ribbon__caps { font-size: clamp(1.3rem, 4.6cqi, 3.7rem); }
	html body .gvsf-parchment__row { font-size: clamp(1.15rem, 3.1cqi, 2.35rem); }
	html body .gvsf-alarm__title { font-size: clamp(1.6rem, 4.2cqi, 3rem); }
}
@supports (container-type: inline-size) {
	@container (max-width: 1000px) {
		html body .gvsf-split { grid-template-columns: 1fr; gap: 56px; }
		html body .gvsf-split--reverse .gvsf-split__media { order: 0; }
		html body .gvsf-collage { max-width: 440px; }
		html body .gvsf-grid--3 { grid-template-columns: repeat(2, 1fr); }
		html body .gvsf-cta__grid { grid-template-columns: 1fr; text-align: center; gap: 44px; }
		html body .gvsf-cta p { margin-inline: auto; }
		html body .gvsf-cta .gvsf-actions { justify-content: center; }
		html body .gvsf-photos { grid-template-columns: repeat(2, 1fr); }
		html body .gvsf-char, html body .gvsf-chars--text .gvsf-char { flex-basis: calc((100% - 28px) / 2); }
		html body .gvsf-booking__grid { grid-template-columns: 1fr; }
		html body .gvsf-booking__side { position: static; }
		html body .gvsf-booking__side { padding-bottom: 96px; }
		html body .gvsf-news-card--featured { flex-direction: column; }
		html body .gvsf-news-card--featured .gvsf-news-card__image { flex: none; min-height: 0; aspect-ratio: 16 / 9; }
		html body .gvsf-news-card--featured .gvsf-news-card__body { padding: 30px 30px 34px; }
		html body .gvsf-vinyl, html body .gvsf-giftstage { width: min(100%, 320px); }
	}
	@container (max-width: 820px) {
		html body .gvsf-ribbon { padding: 30px 40px 26px; }
		html body .gvsf-ribbon::before, html body .gvsf-ribbon::after { display: none; }
		html body .gvsf-parchment { padding: 54px 28px 26px; }
		html body .gvsf-alarm { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 28px 24px 32px; gap: 22px; }
		html body .gvsf-alarm__text { margin-inline: auto; }
		html body .gvsf-grid--4 { grid-template-columns: 1fr; }
		html body .gvsf-event { grid-template-columns: 92px 1fr; }
		html body .gvsf-event__date { grid-row: 1 / span 2; }
		html body .gvsf-event__action { grid-column: 2; padding: 0 22px 22px; }
		html body .gvsf-event__action .gvsf-button { width: 100%; }
		html body .gvsf-event__day { font-size: 2.4rem; }
		html body .gvsf-formcard__head { padding: 28px 26px 2px; }
		html body .gvsf-formcard .gvsf-form-wrap { padding: 4px 26px 32px; }
	}
	@container (max-width: 620px) {
		html body .gvsf-container { padding-inline: 20px; }
		html body .gvsf-hero { padding-top: calc(var(--gvsf-header-h) + 48px); }
		html body .gvsf-actions { flex-direction: column; align-items: stretch; }
		html body .gvsf-actions .gvsf-button { width: 100%; }
		html body .gvsf-hero__points { flex-direction: column; align-items: center; gap: 8px; }
		html body .gvsf-ribbon { margin: -40px 0 0; padding: 26px 18px 22px; border-radius: 14px; }
		html body .gvsf-ribbon__caps::before, html body .gvsf-ribbon__caps::after { flex-basis: 24px; }
		html body .gvsf-ribbon .gvsf-spark--1 { left: 3%; }
		html body .gvsf-poster { padding-bottom: 120px; }
		html body .gvsf-poster__stage { padding-inline: 14px; }
		html body .gvsf-parchment { padding: 50px 18px 24px; margin-top: -26px; }
		html body .gvsf-parchment__row { gap: 10px; }
		html body .gvsf-parchment__ask { gap: 10px; font-size: 1rem; }
		html body .gvsf-alarm { border-radius: 18px; }
		html body .gvsf-alarm__title { font-size: 1.6rem; }
		html body .gvsf-alarm__qr { width: 160px; height: 160px; }
		html body .gvsf-pepernoot--1, html body .gvsf-pepernoot--5, html body .gvsf-pepernoot--7, html body .gvsf-pepernoot--6, html body .gvsf-gift--1 { display: none; }
		html body .gvsf-heap { height: 84px; background-size: 112px 90px; }
		html body .gvsf-grid--3 { grid-template-columns: 1fr; }
		html body .gvsf-chars { gap: 34px 16px; }
		html body .gvsf-char { flex-basis: calc((100% - 16px) / 2); }
		html body .gvsf-char__frame { padding: 4px; border-radius: 20px; }
		html body .gvsf-char__photo { border-radius: 16px; }
		html body .gvsf-char__plate { margin: -20px 8px 0; padding: 8px 6px 9px; }
		html body .gvsf-char__name { font-size: 1.04rem; }
		html body .gvsf-char__role { font-size: .66rem; letter-spacing: .08em; }
		html body .gvsf-medal { width: 92px; height: 92px; font-size: .84rem; padding: 10px; }
		html body .gvsf-photos { gap: 12px; }
		html body .gvsf-photos a { border-radius: 16px; }
		html body .gvsf-avatars span { width: 104px; height: 104px; margin-inline: -10px; border-width: 4px; }
		html body .gvsf-avatars span:nth-child(2) { width: 124px; height: 124px; }
		html body .gvsf-cta { padding: 80px 0 110px; }
		html body .gvsf-page-hero { padding-bottom: 100px; }
		html body .gvsf-section__head { margin-bottom: 40px; }
		html body .gvsf-event__body { padding: 16px 18px; }
		html body .gvsf-event__title { font-size: 1.28rem; }
	}
	@container (max-width: 620px) {
		html body .gvsf-kinds { grid-template-columns: 1fr; gap: 12px; margin-bottom: 44px; }
		html body .gvsf-kinds > li, html body .gvsf-kinds > li:nth-child(n/**/+4) { grid-column: auto; }
		html body .gvsf-kind {
			display: grid;
			grid-template-columns: 52px 1fr;
			grid-template-areas: "icon title" "icon text";
			column-gap: 16px;
			row-gap: 2px;
			align-items: center;
			justify-items: start;
			padding: 18px 20px;
			text-align: left;
		}
		html body .gvsf-kind__icon { grid-area: icon; align-self: center; margin: 0; width: 52px; height: 52px; }
		html body .gvsf-kind__title { grid-area: title; margin: 0; font-size: 1.12rem; }
		html body .gvsf-kind__text { grid-area: text; font-size: .88rem; }
		html body .gvsf-formcard { border-radius: 22px; }
		html body .gvsf-formcard__head { padding: 26px 20px 2px; }
		html body .gvsf-formcard .gvsf-form-wrap { padding: 2px 20px 28px; }
		html body .gvsf-form__grid { grid-template-columns: repeat(2, 1fr); gap: 16px 14px; }
		html body .gvsf-field, html body .gvsf-field--street, html body .gvsf-field--city { grid-column: 1 / -1; }
		html body .gvsf-field--number, html body .gvsf-field--postcode { grid-column: span 1; }
		html body .gvsf-form__submit .gvsf-button { width: 100%; min-width: 0; }
		html body .gvsf-booking__side { padding: 30px 22px 92px; border-radius: 22px; }
		html body .gvsf-nets { grid-template-columns: 1fr; gap: 16px; }
		html body .gvsf-net { padding: 28px 20px 24px; }
		html body .gvsf-net__icon { width: 70px; height: 70px; }
		html body .gvsf-chars--text .gvsf-char { flex-basis: 100%; max-width: 360px; }
		html body .gvsf-char__text { font-size: .98rem; }
		html body .gvsf-video__icon { width: 72px; height: 72px; }
		html body .gvsf-video__icon svg { width: 32px; height: 32px; }
		html body .gvsf-video { border-radius: 20px; }
		html body .gvsf-empty { padding: 36px 22px; }
		html body .gvsf-help { padding: 64px 0 80px; }
		html body .gvsf-news-card--featured .gvsf-news-card__body { padding: 24px 22px 28px; }
		html body .gvsf-vinyl, html body .gvsf-giftstage { width: min(100%, 260px); }
		html body .gvsf-giftstage .gvsf-gift--1 { width: 82px; height: 72px; }
		html body .gvsf-giftstage .gvsf-gift--2 { width: 96px; height: 86px; }
		html body .gvsf-giftstage .gvsf-pepernoot--a { width: 56px; height: 56px; }
		html body .gvsf-giftstage .gvsf-pepernoot--b { width: 44px; height: 44px; }
		html body .gvsf-giftstage .gvsf-pepernoot--c { width: 50px; height: 50px; }
		html body .gvsf-giftstage .gvsf-pepernoot--d { width: 34px; height: 34px; }
	}
}

/* Ankers (#boeken, #pepernotenalarm) landen onder een vaste header */
html body .gvsf-booking, html body #pepernotenalarm, html body [id^="gvsf-"] { scroll-margin-top: var(--gvsf-sticky-top); }
