/**
 * Groetjes van Sinterklaas - theme styles.
 * Prefix: gvs-. Mobile adjustments live in gvs-responsive.css.
 */

:root {
	--gvs-night-blue: #061B44;
	--gvs-royal-blue: #123B7A;
	--gvs-deep-blue: #07152F;
	--gvs-red: #B90818;
	--gvs-bright-red: #D7192D;
	--gvs-dark-red: #8A0711;
	--gvs-gold: #E8B83F;
	--gvs-light-gold: #F7D775;
	--gvs-dark-gold: #B98017;
	--gvs-cream: #FFF7E5;
	--gvs-parchment: #F5E5C4;
	--gvs-white: #FFFFFF;
	--gvs-text: #13203B;

	--gvs-font-head: 'Cormorant Garamond', 'Cinzel', Georgia, serif;
	--gvs-font-body: 'Montserrat', 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--gvs-radius-card: 16px;
	--gvs-radius-btn: 10px;
	--gvs-shadow: 0 6px 20px rgba(7, 21, 47, 0.10);
	--gvs-shadow-hover: 0 14px 32px rgba(7, 21, 47, 0.18);
	--gvs-section-y: 104px;
	--gvs-header-h: 84px;
}

/* ---------- Base ---------- */
body {
	font-family: var(--gvs-font-body);
	color: var(--gvs-text);
	background: var(--gvs-cream);
	line-height: 1.7;
}
h1, h2, h3, h4 {
	font-family: var(--gvs-font-head);
	font-weight: 700;
	line-height: 1.15;
	color: var(--gvs-night-blue);
}
h1 { font-size: clamp(2.6rem, 5.5vw, 4.6rem); }
h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
h3 { font-size: clamp(1.4rem, 2vw, 1.75rem); }
a { color: var(--gvs-red); }
a:hover { color: var(--gvs-dark-red); }
:focus-visible {
	outline: 3px solid var(--gvs-gold);
	outline-offset: 3px;
}
.gvs-section--white :focus-visible, .gvs-section--cream :focus-visible { outline-color: var(--gvs-royal-blue); }

.gvs-container {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 24px;
}
.gvs-container--narrow { max-width: 820px; }
.gvs-main { display: block; }
.gvs-lead { font-size: 1.2rem; }

/* Sections: clean by default */
.gvs-section { padding-block: var(--gvs-section-y); }
.gvs-section--cream { background: var(--gvs-cream); }
.gvs-section--white { background: var(--gvs-white); }
.gvs-section__title { text-align: center; margin: 0 0 48px; }
.gvs-section__more { text-align: center; margin: 48px 0 0; }

.gvs-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}
.gvs-split--reverse .gvs-split__media { order: -1; }
.gvs-split__media img, .gvs-media-placeholder {
	width: 100%;
	height: auto;
	border-radius: var(--gvs-radius-card);
	box-shadow: var(--gvs-shadow);
}
.gvs-media-placeholder {
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, var(--gvs-parchment), var(--gvs-cream));
	border: 2px dashed var(--gvs-dark-gold);
	box-shadow: none;
}
.gvs-cutout { box-shadow: none !important; border-radius: 0 !important; filter: drop-shadow(0 12px 25px rgba(0, 0, 0, .25)); }

.gvs-grid { display: grid; gap: 28px; }
.gvs-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gvs-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gvs-grid--4 { grid-template-columns: repeat(4, 1fr); }
.gvs-grid--5 { grid-template-columns: repeat(5, 1fr); }
.gvs-grid--past { opacity: .92; }

/* ---------- Buttons ---------- */
.gvs-button {
	display: inline-block;
	padding: 14px 28px;
	border-radius: var(--gvs-radius-btn);
	font-family: var(--gvs-font-body);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color .25s, color .25s, border-color .25s, transform .25s;
}
.gvs-button-primary { background: var(--gvs-red); color: var(--gvs-white); border-color: var(--gvs-gold); }
.gvs-button-primary:hover { background: var(--gvs-dark-red); color: var(--gvs-white); }
.gvs-button-secondary { background: var(--gvs-gold); color: var(--gvs-night-blue); }
.gvs-button-secondary:hover { background: var(--gvs-light-gold); color: var(--gvs-night-blue); }
.gvs-button-outline { background: transparent; color: var(--gvs-white); border-color: var(--gvs-gold); }
.gvs-button-outline:hover { background: var(--gvs-gold); color: var(--gvs-night-blue); }
.gvs-button-outline-dark { background: transparent; color: var(--gvs-night-blue); border-color: var(--gvs-night-blue); }
.gvs-button-outline-dark:hover { background: var(--gvs-night-blue); color: var(--gvs-white); }
.gvs-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.gvs-link { font-weight: 600; color: var(--gvs-red); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--gvs-gold); }

/* ---------- Cards ---------- */
.gvs-card {
	background: var(--gvs-white);
	border-radius: var(--gvs-radius-card);
	box-shadow: var(--gvs-shadow);
	overflow: hidden;
	transition: transform 250ms ease, box-shadow 250ms ease;
}
.gvs-card:hover { transform: translateY(-4px); box-shadow: var(--gvs-shadow-hover); }
.gvs-section--white .gvs-card { background: var(--gvs-cream); }

.gvs-service-card { padding: 36px 30px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; border-top: 4px solid var(--gvs-red); }
.gvs-service-card p { flex: 1; }
.gvs-icon { color: var(--gvs-dark-gold); margin-bottom: 8px; }
.gvs-kind-card { padding: 24px 20px; border-bottom: 3px solid var(--gvs-gold); }
.gvs-kind-card h3 { margin: 0 0 8px; font-size: 1.5rem; }
.gvs-kind-card p { margin: 0; font-size: .95rem; }

/* Date block */
.gvs-date-block {
	flex: 0 0 auto;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 78px; padding: 10px 0;
	background: var(--gvs-red); color: var(--gvs-white);
	border-radius: 12px; border: 2px solid var(--gvs-gold);
	text-align: center; line-height: 1;
}
.gvs-date-block__day { font-family: var(--gvs-font-head); font-size: 2.2rem; font-weight: 700; }
.gvs-date-block__month { font-size: .8rem; font-weight: 600; letter-spacing: .06em; margin-top: 4px; text-transform: lowercase; }
.gvs-date-block--large { width: 110px; padding: 16px 0; }
.gvs-date-block--large .gvs-date-block__day { font-size: 3.2rem; }

.gvs-event-card { display: flex; gap: 20px; padding: 24px; }
.gvs-event-card__title { margin: 0 0 6px; font-size: 1.5rem; }
.gvs-event-card__title a, .gvs-news-card__title a, .gvs-character-card h3 a { color: var(--gvs-night-blue); text-decoration: none; }
.gvs-event-card__title a:hover, .gvs-news-card__title a:hover, .gvs-character-card h3 a:hover { color: var(--gvs-red); }
.gvs-event-card__meta, .gvs-news-card__meta { font-size: .9rem; color: #3a4a6b; margin: 0 0 10px; }

.gvs-news-card__image img, .gvs-character-card__photo img { display: block; width: 100%; height: 220px; object-fit: cover; transition: transform .4s ease; }
.gvs-news-card:hover img, .gvs-character-card:hover img { transform: scale(1.03); }
.gvs-news-card__image, .gvs-character-card__photo { display: block; overflow: hidden; }
.gvs-news-card__body, .gvs-character-card__body { padding: 24px; }
.gvs-news-card__title { margin: 0 0 10px; font-size: 1.45rem; }
.gvs-character-card__role { font-weight: 600; color: var(--gvs-red); margin: 0 0 8px; }

/* ---------- Night sky, stars, glow, divider ---------- */
.gvs-night-sky {
	position: relative;
	overflow: hidden;
	color: var(--gvs-cream);
	background:
		radial-gradient(ellipse at 75% 20%, rgba(232, 184, 63, .18), transparent 55%),
		linear-gradient(180deg, var(--gvs-deep-blue) 0%, var(--gvs-night-blue) 55%, var(--gvs-royal-blue) 130%);
}
.gvs-night-sky h1, .gvs-night-sky h2, .gvs-night-sky h3 { color: var(--gvs-white); }
.gvs-stars::before, .gvs-stars::after {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background-repeat: repeat;
}
.gvs-stars::before {
	background-image:
		radial-gradient(1.5px 1.5px at 20px 30px, #fff, transparent),
		radial-gradient(1px 1px at 90px 80px, #fff, transparent),
		radial-gradient(2px 2px at 160px 20px, var(--gvs-light-gold), transparent),
		radial-gradient(1px 1px at 230px 120px, #fff, transparent),
		radial-gradient(1.5px 1.5px at 310px 60px, #fff, transparent),
		radial-gradient(1px 1px at 60px 150px, var(--gvs-light-gold), transparent);
	background-size: 340px 200px;
	opacity: .8;
}
.gvs-stars::after {
	background-image:
		radial-gradient(2px 2px at 50px 50px, #fff, transparent),
		radial-gradient(2px 2px at 200px 140px, var(--gvs-light-gold), transparent),
		radial-gradient(1.5px 1.5px at 280px 30px, #fff, transparent);
	background-size: 360px 220px;
	animation: gvs-twinkle 6s ease-in-out infinite alternate;
}
@keyframes gvs-twinkle { from { opacity: .25; } to { opacity: .9; } }

.gvs-gold-glow {
	position: absolute; right: 8%; top: 10%;
	width: 520px; height: 520px; max-width: 70vw;
	background: radial-gradient(circle, rgba(247, 215, 117, .28), transparent 65%);
	pointer-events: none;
}
.gvs-festive-divider {
	height: 6px; border: 0;
	background: linear-gradient(90deg, transparent, var(--gvs-gold), transparent);
}

/* ---------- Header (Astra) ---------- */
.gvs-has-hero .site-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 999; }
.admin-bar.gvs-has-hero .site-header { top: 32px; }
.site-header .main-header-bar,
.site-header .ast-primary-header-bar,
.site-header .ast-main-header-bar-alignment {
	background: transparent;
	border-bottom: 0;
	transition: background-color .3s ease, box-shadow .3s ease;
}
.gvs-scrolled .site-header .main-header-bar,
.gvs-scrolled .site-header .ast-primary-header-bar,
body:not(.gvs-has-hero) .site-header .main-header-bar,
body:not(.gvs-has-hero) .site-header .ast-primary-header-bar {
	background: var(--gvs-deep-blue);
	box-shadow: 0 4px 18px rgba(0, 0, 0, .3);
}
.site-header .main-header-menu > .menu-item > a,
.site-header .ast-builder-menu .menu-link {
	color: var(--gvs-white);
	font-family: var(--gvs-font-body);
	font-weight: 500;
	font-size: .95rem;
	background-image: linear-gradient(var(--gvs-gold), var(--gvs-gold));
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 2px;
	transition: background-size .25s ease, color .25s;
}
.site-header .main-header-menu > .menu-item > a:hover,
.site-header .main-header-menu > .current-menu-item > a,
.site-header .ast-builder-menu .menu-link:hover { color: var(--gvs-light-gold); background-size: 100% 2px; }
/* Give the "Vraag een bezoek aan" menu item the CSS class gvs-menu-cta */
.site-header .menu-item.gvs-menu-cta > a {
	background: var(--gvs-red);
	color: var(--gvs-white);
	border: 2px solid var(--gvs-gold);
	border-radius: var(--gvs-radius-btn);
	padding: 10px 20px;
	line-height: 1.2;
	background-image: none;
}
.site-header .menu-item.gvs-menu-cta > a:hover { background: var(--gvs-dark-red); color: var(--gvs-white); }
.gvs-logo { display: block; max-height: 64px; width: auto; height: auto; }
.gvs-logo--text { font-family: var(--gvs-font-head); font-size: 1.6rem; font-weight: 700; color: var(--gvs-white); }
.ast-header-break-point .main-header-menu { background: var(--gvs-deep-blue); }
.ast-header-break-point .main-header-menu > .menu-item > a { color: var(--gvs-white); }
.menu-toggle .ast-mobile-svg, .ast-mobile-menu-buttons .menu-toggle { color: var(--gvs-white); fill: var(--gvs-white); }

/* ---------- Hero ---------- */
.gvs-hero {
	min-height: 720px;
	padding: calc(var(--gvs-header-h) + 56px) 0 160px;
	display: flex; align-items: center;
}
.gvs-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .55; }
.gvs-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; }
.gvs-hero__org { margin: 0 0 14px; font-weight: 600; font-size: .95rem; letter-spacing: .04em; color: var(--gvs-light-gold); }
.gvs-hero__title { margin: 0 0 22px; color: var(--gvs-white); }
.gvs-hero__text { font-size: 1.15rem; max-width: 56ch; margin: 0 0 32px; color: var(--gvs-cream); }
.gvs-hero__media { position: relative; display: flex; justify-content: center; align-items: flex-end; min-height: 320px; }
.gvs-hero__img {
	width: 100%; max-width: 560px; height: auto;
	margin-bottom: -150px;
	filter: drop-shadow(0 12px 25px rgba(0, 0, 0, .25));
}
.gvs-hero__skyline {
	position: absolute; left: 0; right: 0; bottom: 0; height: 150px; z-index: 1;
	background: url('../images/skyline.svg') repeat-x left bottom / auto 100%;
	pointer-events: none;
}
.gvs-page-hero { padding: calc(var(--gvs-header-h) + 64px) 0 150px; }
.gvs-page-hero__inner { position: relative; z-index: 2; }
.gvs-page-hero__title { margin: 0 0 14px; color: var(--gvs-white); font-size: clamp(2.4rem, 5vw, 4rem); }
.gvs-page-hero .gvs-hero__text { margin-bottom: 0; }

/* ---------- Next event ---------- */
.gvs-next-event { background: var(--gvs-cream); padding-bottom: 8px; position: relative; z-index: 3; }
.gvs-next-event__card {
	margin-top: -76px; padding: 36px 40px;
	background: var(--gvs-cream);
	border: 1px solid var(--gvs-parchment);
	border-top: 5px solid var(--gvs-red);
	box-shadow: var(--gvs-shadow-hover);
}
.gvs-next-event__card:hover { transform: none; }
.gvs-next-event__heading { margin: 0 0 22px; font-size: 1.9rem; color: var(--gvs-red); }
.gvs-next-event__row { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.gvs-next-event__info { flex: 1 1 280px; }
.gvs-next-event__info h3 { margin: 0 0 6px; }
.gvs-next-event__info h3 a { color: var(--gvs-night-blue); text-decoration: none; }
.gvs-next-event__meta { font-weight: 600; margin: 0 0 8px; }
.gvs-next-event__info p:last-child { margin-bottom: 0; }

/* ---------- Pepernotenalarm ---------- */
.gvs-alarm {
	position: relative; overflow: hidden;
	padding-block: 96px;
	background:
		radial-gradient(ellipse at 20% 0%, rgba(215, 25, 45, .9), transparent 60%),
		var(--gvs-red);
	color: var(--gvs-white);
	border-block: 6px solid var(--gvs-gold);
}
.gvs-alarm__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.3fr .7fr; gap: 56px; align-items: center; }
.gvs-alarm__title { margin: 0 0 18px; color: var(--gvs-white); font-size: clamp(2.6rem, 6vw, 4.8rem); letter-spacing: .02em; }
.gvs-alarm__text { font-size: 1.35rem; margin: 0 0 8px; }
.gvs-alarm__sub { font-weight: 600; margin: 0 0 28px; color: var(--gvs-light-gold); }
.gvs-alarm__qr { justify-self: center; background: var(--gvs-white); padding: 18px; border-radius: var(--gvs-radius-card); box-shadow: 0 10px 28px rgba(0, 0, 0, .3); border: 3px solid var(--gvs-gold); }
.gvs-alarm__qr img { display: block; width: 220px; height: auto; }
.gvs-alarm__qr-placeholder { width: 220px; height: 220px; display: flex; align-items: center; justify-content: center; color: var(--gvs-text); font-weight: 600; border: 2px dashed var(--gvs-dark-gold); }
.gvs-pepernoot {
	position: absolute; z-index: 1; border-radius: 50%;
	width: 54px; height: 54px;
	background: radial-gradient(circle at 35% 30%, #b8742f, #7a4515 70%);
	box-shadow: inset -4px -5px 8px rgba(0, 0, 0, .3);
	opacity: .85;
}
.gvs-pepernoot--1 { left: 4%; top: 12%; transform: rotate(14deg); }
.gvs-pepernoot--2 { left: 12%; bottom: 10%; width: 38px; height: 38px; }
.gvs-pepernoot--3 { left: 46%; top: 6%; width: 32px; height: 32px; }
.gvs-pepernoot--4 { right: 6%; top: 10%; width: 44px; height: 44px; }
.gvs-pepernoot--5 { right: 12%; bottom: 8%; }
.gvs-pepernoot--6 { left: 52%; bottom: 6%; width: 40px; height: 40px; }

/* ---------- Visit CTA ---------- */
.gvs-cta { padding: 110px 0 190px; text-align: center; }
.gvs-cta__inner { position: relative; z-index: 2; }
.gvs-cta h2 { margin: 0 0 14px; }
.gvs-cta p { max-width: 54ch; margin: 0 auto 28px; font-size: 1.1rem; }

/* ---------- Footer ---------- */
.gvs-footer { background: var(--gvs-deep-blue); color: var(--gvs-cream); border-top: 4px solid var(--gvs-gold); }
.gvs-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 48px; padding-block: 72px 48px; }
.gvs-footer__heading { font-family: var(--gvs-font-head); font-size: 1.5rem; color: var(--gvs-light-gold); margin: 0 0 16px; }
.gvs-footer__list { list-style: none; margin: 0; padding: 0; }
.gvs-footer__list li { margin: 0 0 8px; }
.gvs-footer a { color: var(--gvs-cream); text-decoration: none; }
.gvs-footer a:hover { color: var(--gvs-light-gold); text-decoration: underline; text-underline-offset: 4px; }
.gvs-logo--footer { max-height: 110px; margin-bottom: 18px; }
.gvs-footer__bottom { border-top: 1px solid rgba(255, 247, 229, .18); }
.gvs-footer__bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-block: 22px; font-size: .9rem; }
.gvs-footer__bottom p { margin: 0; }
.gvs-footer__bottom a { margin-left: 18px; }

/* ---------- Prose (articles, editor content) ---------- */
.gvs-prose { max-width: 70ch; font-size: 1.05rem; }
.gvs-prose--center { margin-inline: auto; text-align: center; margin-top: 40px; }
.gvs-prose--wide { max-width: none; }
.gvs-prose img { border-radius: 14px; }
.gvs-list { padding-left: 1.2em; }
.gvs-list li { margin-bottom: 8px; }
.single-post .entry-content, .single-post .entry-title { max-width: 72ch; margin-inline: auto; }

/* ---------- Single event ---------- */
.gvs-single-event { display: grid; grid-template-columns: 1.6fr 1fr; gap: 56px; align-items: start; }
.gvs-single-event__image img { width: 100%; height: auto; border-radius: var(--gvs-radius-card); margin-bottom: 24px; }
.gvs-single-event__details { padding: 30px; border-top: 4px solid var(--gvs-red); display: flex; flex-direction: column; gap: 12px; }
.gvs-single-event__details:hover { transform: none; }
.gvs-single-event__details h2 { margin: 0; font-size: 1.8rem; }
.gvs-single-event__details dt { font-weight: 700; color: var(--gvs-red); margin-top: 10px; }
.gvs-single-event__details dd { margin: 0; }

/* ---------- Galleries and lightbox ---------- */
.gvs-gallery__item, .gvs-gallery-page .wp-block-gallery img, .gvs-gallery-page .gallery img { display: block; overflow: hidden; border-radius: 14px; }
.gvs-gallery__item img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .4s ease; }
.gvs-gallery__item:hover img, .gvs-gallery-page .wp-block-gallery figure:hover img { transform: scale(1.04); }
.gvs-gallery-page .wp-block-gallery figure, .gvs-gallery-page .gallery-item { overflow: hidden; border-radius: 14px; }
.gvs-gallery-page .wp-block-gallery img { transition: transform .4s ease; }
.gvs-gallery-page h2 { margin: 56px 0 20px; scroll-margin-top: 110px; }
.gvs-gallery-page iframe { max-width: 100%; border-radius: 14px; }
.gvs-album-nav { margin-bottom: 24px; }
.gvs-album-card { display: block; padding: 22px 18px; text-align: center; font-family: var(--gvs-font-head); font-weight: 700; font-size: 1.4rem; color: var(--gvs-night-blue); text-decoration: none; border-bottom: 3px solid var(--gvs-gold); }

.gvs-lightbox { border: 0; padding: 0; background: transparent; max-width: 94vw; max-height: 94vh; overflow: visible; }
.gvs-lightbox::backdrop { background: rgba(7, 21, 47, .92); }
.gvs-lightbox img { display: block; max-width: 94vw; max-height: 86vh; width: auto; height: auto; border-radius: 10px; }
.gvs-lightbox button {
	position: fixed; background: var(--gvs-white); color: var(--gvs-night-blue);
	border: 2px solid var(--gvs-gold); border-radius: 50%;
	width: 48px; height: 48px; font-size: 1.4rem; line-height: 1; cursor: pointer;
}
.gvs-lightbox__close { top: 16px; right: 16px; }
.gvs-lightbox__prev { left: 16px; top: 50%; }
.gvs-lightbox__next { right: 16px; top: 50%; }

/* ---------- Forms ---------- */
.gvs-form-wrap { margin-top: 24px; }
.gvs-form__intro { text-align: center; margin: -24px 0 32px; }
.gvs-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.gvs-field { display: flex; flex-direction: column; gap: 6px; }
.gvs-field--wide { grid-column: 1 / -1; }
.gvs-field label { font-weight: 600; font-size: .95rem; }
.gvs-req { color: var(--gvs-red); }
.gvs-field input[type="text"], .gvs-field input[type="email"], .gvs-field input[type="tel"], .gvs-field input[type="date"],
.gvs-field input[type="time"], .gvs-field input[type="number"], .gvs-field select, .gvs-field textarea {
	width: 100%; padding: 13px 14px;
	font: inherit; color: var(--gvs-text);
	background: var(--gvs-white);
	border: 2px solid #c9b98f; border-radius: 10px;
}
.gvs-field input:focus, .gvs-field select:focus, .gvs-field textarea:focus { border-color: var(--gvs-royal-blue); outline: 3px solid rgba(18, 59, 122, .25); outline-offset: 0; }
.gvs-field.has-error input, .gvs-field.has-error select, .gvs-field.has-error textarea { border-color: var(--gvs-red); }
.gvs-field__error { color: var(--gvs-dark-red); font-weight: 600; font-size: .9rem; margin: 0; }
.gvs-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400 !important; }
.gvs-check input { margin-top: 5px; width: 20px; height: 20px; accent-color: var(--gvs-red); }
.gvs-form__submit { margin: 28px 0 0; }
.gvs-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gvs-notice { padding: 18px 20px; border-radius: 12px; margin-bottom: 24px; font-weight: 600; border-left: 6px solid; }
.gvs-notice--success { background: #e7f4e8; color: #14502a; border-color: #1f8a4c; }
.gvs-notice--error { background: #fde8ea; color: var(--gvs-dark-red); border-color: var(--gvs-red); }

/* ---------- Contact ---------- */
.gvs-contact { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; align-items: start; }
.gvs-contact__details { padding: 32px; border-top: 4px solid var(--gvs-red); }
.gvs-contact__details:hover { transform: none; }
.gvs-contact__social { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 14px; }
.gvs-map-placeholder { margin-top: 20px; aspect-ratio: 16 / 10; display: flex; align-items: center; justify-content: center; background: var(--gvs-parchment); border-radius: 12px; color: #3a4a6b; }

/* Pagination */
.navigation.pagination { margin-top: 48px; text-align: center; }
.navigation.pagination .page-numbers { display: inline-block; padding: 8px 14px; margin: 0 3px; border-radius: 8px; text-decoration: none; background: var(--gvs-white); color: var(--gvs-night-blue); }
.navigation.pagination .page-numbers.current { background: var(--gvs-red); color: var(--gvs-white); }

/* Elementor helpers: the same classes work on Elementor containers */
.elementor .gvs-night-sky, .elementor .gvs-stars { position: relative; }
.elementor .gvs-card { background: var(--gvs-white); }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.gvs-card:hover { transform: none; }
}
