/*
 * Base: reset + document defaults. Reproduces the computed defaults the Elementor
 * build rendered on (hello-elementor reset + kit: black body).
 */
*, *::before, *::after { box-sizing: border-box; }

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	/* §13: reserve the scrollbar gutter so swup/lenis/drawer never change page width. */
	scrollbar-gutter: stable;
	overscroll-behavior-y: none;
	overscroll-behavior-x: auto;
	background: var(--c-bg);
}

body {
	margin: 0;
	overflow-x: clip; /* event cards overhang their loop cell by ~27px on phones (as on the Elementor build) — no sideways scroll */
	background: var(--c-bg);
	color: #333;
	font-family: var(--f-system);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overscroll-behavior-y: none;
	overscroll-behavior-x: auto;
	-webkit-overflow-scrolling: touch;
}

h1, h2, h3, h4, h5, h6 {
	color: inherit;
	font-family: inherit;
	font-weight: 500;
	line-height: 1.2;
	margin-block: .5rem 1rem;
}
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
p { margin-block: 0 .9rem; }
a { color: inherit; text-decoration: none; background-color: transparent; }
b, strong { font-weight: bolder; }
img { border-style: none; height: auto; max-width: 100%; vertical-align: middle; }
figure { margin: 0; }
button, input, select, textarea { font-family: inherit; font-size: 1rem; line-height: 1.5; margin: 0; }
button { cursor: pointer; }
ul, ol { margin-block: 0 .9rem; }
hr { border: 0; border-top: 1px solid var(--c-gold-24); }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	position: absolute !important;
	white-space: nowrap;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	background: var(--c-cream);
	color: #000;
	display: block;
	height: auto;
	width: auto;
	left: 5px;
	top: 5px;
	padding: 12px 24px;
	z-index: 100000;
}

.d-skip { position: absolute; left: -9999px; }
.d-skip:focus { left: 8px; top: 8px; z-index: 100001; background: var(--c-cream); color: #000; padding: 10px 16px; font: 700 12px/1 var(--f-body); letter-spacing: var(--ls-button); text-transform: uppercase; }

:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 2px; }

/* Main content area (swup container). Header is overlaid, so content starts at y=0. */
.d-main { display: block; position: relative; }

/* Shared: boxed shell (Elementor "boxed_width 1520"). */
.d-shell { width: 100%; max-width: var(--shell); margin-inline: auto; }

/* Scroll lock while the drawer is open — no width jump thanks to scrollbar-gutter. */
html.d-lock, html.d-lock body { overflow: hidden; }

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

/* swup page transition */
html.is-changing .transition-fade { transition: opacity .25s ease; opacity: 1; }
html.is-animating .transition-fade { opacity: 0; }

/* Language switch: whole-page fade out → full load → fade in (assets/js/app.js langSwitch). */
html.d-lang-leaving body, html.d-lang-arriving body { opacity: 0; }
html body { transition: opacity .35s ease; }
html.d-lang-arriving body { transition: none; }
@media (prefers-reduced-motion: reduce) { html body { transition: none; } }
