/* Appell Senter Hub – opening-hours exceptions.
 * Responsive geometry, spacing, colors and typography are materialized in
 * Elementor settings. CSS is limited to decorative pseudo-elements, one visual
 * overlap transform and dynamic HTML returned by the hours component.
 */
body.appell-page-opening_hours {
	--appell-hours-accent: var(--e-global-color-accent);
	--appell-hours-dark: var(--e-global-color-appell-dark);
	--appell-hours-light: var(--e-global-color-appell-light);
	--appell-hours-text: var(--e-global-color-text);
}

body.appell-page-opening_hours :is(a,button,input,select,textarea,[tabindex]):focus-visible {
	outline: 3px solid var(--appell-hours-accent);
	outline-offset: 3px;
}

/* Decorative clock face. */
body.appell-page-opening_hours .appell-hours-modern__hero::before {
	content: "";
	position: absolute;
	z-index: 0;
	right: clamp(-110px,-6vw,-54px);
	top: 42%;
	width: clamp(390px,38vw,560px);
	aspect-ratio: 1;
	transform: translateY(-50%);
	border: 1px solid color-mix(in srgb,var(--appell-hours-light) 8%,transparent);
	border-radius: 50%;
	opacity: .78;
	background: repeating-conic-gradient(from -1deg,color-mix(in srgb,var(--appell-hours-light) 10%,transparent) 0 1deg,transparent 1deg 30deg);
	-webkit-mask: radial-gradient(circle,transparent 0 69%,black 69.5% 71%,transparent 71.5% 100%);
	mask: radial-gradient(circle,transparent 0 69%,black 69.5% 71%,transparent 71.5% 100%);
	pointer-events: none;
}

body.appell-page-opening_hours .appell-hours-modern__hero-inner {
	position: relative;
	z-index: 2;
}

/* The today-card overlap is materialized with native Elementor margins. */
body.appell-page-opening_hours .appell-hours-modern__today-card::before,
body.appell-page-opening_hours .appell-hours-modern__detail-card::before {
	content: "";
	position: absolute;
	background: var(--appell-hours-accent);
	pointer-events: none;
}

body.appell-page-opening_hours .appell-hours-modern__today-card::before {
	inset: 0 auto 0 0;
	width: 5px;
}

body.appell-page-opening_hours .appell-hours-modern__detail-card::before {
	inset: 0 0 auto 0;
	height: 4px;
}

body.appell-page-opening_hours .appell-hours-modern__schedule::before {
	content: "";
	position: absolute;
	top: 52px;
	left: max(24px,calc((100% - 1280px) / 2 + 24px));
	width: 76px;
	height: 4px;
	border-radius: 999px;
	background: var(--appell-hours-accent);
	pointer-events: none;
}

/* Dynamic list HTML generated by the hours component. */
body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list {
	display: grid;
	gap: 0;
	margin-top: 4px;
}

body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	padding: 15px 0;
	border-bottom: 1px solid color-mix(in srgb,var(--appell-hours-text) 10%,transparent);
}

body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row:last-child {
	border-bottom: 0;
}

body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row :is(strong,a) {
	color: var(--appell-hours-text);
}

body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row a:hover {
	color: var(--appell-hours-accent);
}

body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row span {
	color: var(--appell-hours-text);
	font-weight: 600;
	text-align: right;
}

body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row small {
	display: block;
	margin-top: 4px;
	color: color-mix(in srgb,var(--appell-hours-text) 62%,transparent);
	font-weight: 400;
}

@media (max-width: 1024px) {
	body.appell-page-opening_hours .appell-hours-modern__hero::before {
		right: -180px;
		top: 30%;
	}
	body.appell-page-opening_hours .appell-hours-modern__schedule::before {
		top: 48px;
		left: 20px;
	}
}

@media (max-width: 767px) {
	body.appell-page-opening_hours .appell-hours-modern__hero::before {
		right: -220px;
		top: 22%;
		opacity: .55;
	}
	body.appell-page-opening_hours .appell-hours-modern__schedule::before {
		top: 34px;
		left: 16px;
		width: 56px;
	}
	body.appell-page-opening_hours .appell-hours-modern__list .appell-hours-list__row {
		gap: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.appell-page-opening_hours * {
		scroll-behavior: auto;
		transition-duration: .01ms;
		animation-duration: .01ms;
		animation-iteration-count: 1;
	}
}