/* Lungenzentrum am Diako – theme styles that theme.json can't express. */

/* ---------- Header ---------- */
.lz-site-header {
	position: relative;
	z-index: 50;
}
.lz-header {
	box-shadow: 0 5px 20px -15px rgba(0, 0, 0, 0.25);
}
@media (min-width: 992px) {
	.lz-site-header {
		position: sticky;
		top: calc(-1 * var(--lz-topbar-h, 40px));
	}
	.admin-bar .lz-site-header {
		top: calc(32px - var(--lz-topbar-h, 40px));
	}
}
.lz-topbar a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.lz-icon {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
}
.lz-icon::before {
	content: "";
	width: 1.05em;
	height: 1.05em;
	background: var(--wp--preset--color--primary);
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}
.lz-icon--mail {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='1.5'/%3E%3Cpath d='m3 6 9 7 9-7'/%3E%3C/svg%3E");
}
.lz-icon--phone {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A17 17 0 0 1 3 5a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E");
}
@media (max-width: 781px) {
	.lz-topbar__nav { display: none; }
}

.lz-mainnav .wp-block-navigation-item__content:hover,
.lz-mainnav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 6px;
}
/* The CTA is a separate button on desktop and a menu item inside the mobile overlay. */
.lz-mainnav .lz-nav-cta { display: none; }
.lz-mainnav .is-menu-open .lz-nav-cta { display: block; font-weight: 700; }
@media (max-width: 599px) {
	.lz-header .lz-header__cta { display: none; }
	.lz-topbar { font-size: 0.8rem; }
}
.lz-mainnav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 2rem;
	font-size: 1.15rem;
}

/* ---------- Doctolib ---------- */
.lz-doctolib {
	background: #107aca;
	color: #fff;
	text-align: center;
	line-height: 1.4;
	box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.2);
}
.lz-doctolib img {
	display: block;
	margin: 3px auto;
	height: auto;
}
.lz-doctolib a {
	display: block;
	color: #107aca;
	background: #fff;
	border-radius: 4px;
	padding: 5px;
	margin-top: 5px;
	text-decoration: none;
}
.lz-doctolib--floating {
	position: fixed;
	top: 200px;
	right: 0;
	z-index: 40;
	width: 80px;
	padding: 5px;
	font-size: 12px;
	border-radius: 4px 0 0 4px;
	opacity: 0.9;
}
.lz-doctolib--inline {
	display: inline-block;
	padding: 10px;
	font-size: 1.1rem;
	border-radius: 4px;
}
.lz-doctolib--inline span {
	display: flex;
	gap: 5px;
}
.lz-doctolib--inline img { width: 110px; }

/* ---------- Page hero ---------- */
.lz-hero {
	background: var(--wp--preset--color--grey) url("../img/hero-bg.jpg") center / cover no-repeat;
	padding-block: var(--wp--preset--spacing--60);
}
main > .lz-hero:first-child,
.wp-block-post-content > .lz-hero:first-child,
.wp-block-post-content > .wp-block-cover:first-child { margin-block-start: 0; }
.lz-section { padding-block: var(--wp--preset--spacing--50); }
.wp-block-post-content > .lz-section + .lz-section { margin-block-start: 0; padding-block-start: 0; }

/* Home hero: text sits in the left half of the wide container. */
.lz-home-hero .wp-block-cover__inner-container > .wp-block-group > * {
	max-width: 640px;
	margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
}
.lz-hero > * { margin-block: 0.75rem; }
.lz-tagline {
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* ---------- Cards ---------- */
.is-style-card {
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow);
	overflow: hidden;
}
.is-style-card .wp-block-image,
.is-style-card .wp-block-post-featured-image {
	margin: 0;
}
.is-style-card img {
	display: block;
	width: 100%;
	height: 100%;
}
.lz-card .wp-block-post-title a { color: var(--wp--preset--color--heading); text-decoration: none; }
.lz-card .wp-block-post-excerpt__more-link { font-weight: 600; }

.lz-doctor.wp-block-columns { gap: 0; max-width: 680px; margin-inline: auto; }
@media (max-width: 781px) {
	.lz-doctor.wp-block-columns { flex-direction: column; }
	.lz-doctor.wp-block-columns.is-reversed { flex-direction: column; }
}
@media (min-width: 782px) {
	.lz-doctor.is-reversed { flex-direction: row-reverse; }
}

.is-style-plain {
	list-style: none;
	padding-left: 0;
}

/* ---------- Slider (Gallery block style "Slider") ---------- */
.wp-block-gallery.is-style-slider {
	position: relative;
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.wp-block-gallery.is-style-slider::-webkit-scrollbar { display: none; }
.wp-block-gallery.is-style-slider > .wp-block-image {
	flex: 0 0 100% !important;
	width: 100% !important;
	margin: 0 !important;
	scroll-snap-align: start;
}
.wp-block-gallery.is-style-slider > .wp-block-image img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.lz-slider {
	position: relative;
}
.lz-slider__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: rgba(0, 0, 0, 0.25);
	color: #fff;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 20px;
	line-height: 1;
}
.lz-slider__btn:hover { background: rgba(0, 0, 0, 0.5); }
.lz-slider__btn--prev { left: 12px; }
.lz-slider__btn--next { right: 12px; }
.lz-slider__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12px;
	display: flex;
	justify-content: center;
	gap: 6px;
}
.lz-slider__dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}
.lz-slider__dots button[aria-current="true"] { background: #fff; }

/* ---------- Hotspots (Praxis floor plan) ---------- */
.lz-hotspots {
	position: relative;
}
.lz-hotspots > .wp-block-image { margin: 0; }
.lz-hotspots > .wp-block-image img { width: 100%; height: auto; display: block; }
.lz-hotspots > .wp-block-details {
	position: absolute;
	left: var(--x);
	top: var(--y);
	transform: translate(-50%, -50%);
	margin: 0;
	z-index: 1;
}
.lz-hotspots > .wp-block-details[open] { z-index: 5; }
.lz-hotspots > .wp-block-details > summary {
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
	padding: 0.25rem 0.55rem;
	font-size: 0.7rem;
	white-space: nowrap;
	cursor: pointer;
}
.lz-hotspots > .wp-block-details > summary::-webkit-details-marker { display: none; }
.lz-hotspots > .wp-block-details > summary::before {
	content: "";
	width: 0.6rem;
	height: 0.8rem;
	background: var(--wp--preset--color--primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 0a6 6 0 0 0-6 6c0 4.5 6 10 6 10s6-5.5 6-10a6 6 0 0 0-6-6Zm0 8.5A2.5 2.5 0 1 1 6 3.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 0a6 6 0 0 0-6 6c0 4.5 6 10 6 10s6-5.5 6-10a6 6 0 0 0-6-6Zm0 8.5A2.5 2.5 0 1 1 6 3.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.lz-hotspots > .wp-block-details > :not(summary) {
	position: absolute;
	left: 50%;
	top: calc(100% + 6px);
	transform: translateX(-50%);
	width: min(320px, 80vw);
	background: #fff;
	box-shadow: var(--wp--custom--shadow);
	padding: 1rem;
	margin: 0;
	font-size: 0.85rem;
}
/* Small screens: markers would overlap, so show the rooms as a plain accordion under the plan. */
@media (max-width: 781px) {
	.lz-hotspots > .wp-block-details {
		position: static;
		transform: none;
		margin-top: 0.5rem;
	}
	.lz-hotspots > .wp-block-details > :not(summary) {
		position: static;
		transform: none;
		width: auto;
		box-shadow: none;
		padding: 0.5rem 0 0;
	}
}
.x-0{--x:0%}.x-1{--x:1%}.x-2{--x:2%}.x-3{--x:3%}.x-4{--x:4%}.x-5{--x:5%}.x-6{--x:6%}.x-7{--x:7%}.x-8{--x:8%}.x-9{--x:9%}.x-10{--x:10%}.x-11{--x:11%}.x-12{--x:12%}.x-13{--x:13%}.x-14{--x:14%}.x-15{--x:15%}.x-16{--x:16%}.x-17{--x:17%}.x-18{--x:18%}.x-19{--x:19%}.x-20{--x:20%}.x-21{--x:21%}.x-22{--x:22%}.x-23{--x:23%}.x-24{--x:24%}.x-25{--x:25%}.x-26{--x:26%}.x-27{--x:27%}.x-28{--x:28%}.x-29{--x:29%}.x-30{--x:30%}.x-31{--x:31%}.x-32{--x:32%}.x-33{--x:33%}.x-34{--x:34%}.x-35{--x:35%}.x-36{--x:36%}.x-37{--x:37%}.x-38{--x:38%}.x-39{--x:39%}.x-40{--x:40%}.x-41{--x:41%}.x-42{--x:42%}.x-43{--x:43%}.x-44{--x:44%}.x-45{--x:45%}.x-46{--x:46%}.x-47{--x:47%}.x-48{--x:48%}.x-49{--x:49%}.x-50{--x:50%}.x-51{--x:51%}.x-52{--x:52%}.x-53{--x:53%}.x-54{--x:54%}.x-55{--x:55%}.x-56{--x:56%}.x-57{--x:57%}.x-58{--x:58%}.x-59{--x:59%}.x-60{--x:60%}.x-61{--x:61%}.x-62{--x:62%}.x-63{--x:63%}.x-64{--x:64%}.x-65{--x:65%}.x-66{--x:66%}.x-67{--x:67%}.x-68{--x:68%}.x-69{--x:69%}.x-70{--x:70%}.x-71{--x:71%}.x-72{--x:72%}.x-73{--x:73%}.x-74{--x:74%}.x-75{--x:75%}.x-76{--x:76%}.x-77{--x:77%}.x-78{--x:78%}.x-79{--x:79%}.x-80{--x:80%}.x-81{--x:81%}.x-82{--x:82%}.x-83{--x:83%}.x-84{--x:84%}.x-85{--x:85%}.x-86{--x:86%}.x-87{--x:87%}.x-88{--x:88%}.x-89{--x:89%}.x-90{--x:90%}.x-91{--x:91%}.x-92{--x:92%}.x-93{--x:93%}.x-94{--x:94%}.x-95{--x:95%}.x-96{--x:96%}.x-97{--x:97%}.x-98{--x:98%}.x-99{--x:99%}.x-100{--x:100%}
.y-0{--y:0%}.y-1{--y:1%}.y-2{--y:2%}.y-3{--y:3%}.y-4{--y:4%}.y-5{--y:5%}.y-6{--y:6%}.y-7{--y:7%}.y-8{--y:8%}.y-9{--y:9%}.y-10{--y:10%}.y-11{--y:11%}.y-12{--y:12%}.y-13{--y:13%}.y-14{--y:14%}.y-15{--y:15%}.y-16{--y:16%}.y-17{--y:17%}.y-18{--y:18%}.y-19{--y:19%}.y-20{--y:20%}.y-21{--y:21%}.y-22{--y:22%}.y-23{--y:23%}.y-24{--y:24%}.y-25{--y:25%}.y-26{--y:26%}.y-27{--y:27%}.y-28{--y:28%}.y-29{--y:29%}.y-30{--y:30%}.y-31{--y:31%}.y-32{--y:32%}.y-33{--y:33%}.y-34{--y:34%}.y-35{--y:35%}.y-36{--y:36%}.y-37{--y:37%}.y-38{--y:38%}.y-39{--y:39%}.y-40{--y:40%}.y-41{--y:41%}.y-42{--y:42%}.y-43{--y:43%}.y-44{--y:44%}.y-45{--y:45%}.y-46{--y:46%}.y-47{--y:47%}.y-48{--y:48%}.y-49{--y:49%}.y-50{--y:50%}.y-51{--y:51%}.y-52{--y:52%}.y-53{--y:53%}.y-54{--y:54%}.y-55{--y:55%}.y-56{--y:56%}.y-57{--y:57%}.y-58{--y:58%}.y-59{--y:59%}.y-60{--y:60%}.y-61{--y:61%}.y-62{--y:62%}.y-63{--y:63%}.y-64{--y:64%}.y-65{--y:65%}.y-66{--y:66%}.y-67{--y:67%}.y-68{--y:68%}.y-69{--y:69%}.y-70{--y:70%}.y-71{--y:71%}.y-72{--y:72%}.y-73{--y:73%}.y-74{--y:74%}.y-75{--y:75%}.y-76{--y:76%}.y-77{--y:77%}.y-78{--y:78%}.y-79{--y:79%}.y-80{--y:80%}.y-81{--y:81%}.y-82{--y:82%}.y-83{--y:83%}.y-84{--y:84%}.y-85{--y:85%}.y-86{--y:86%}.y-87{--y:87%}.y-88{--y:88%}.y-89{--y:89%}.y-90{--y:90%}.y-91{--y:91%}.y-92{--y:92%}.y-93{--y:93%}.y-94{--y:94%}.y-95{--y:95%}.y-96{--y:96%}.y-97{--y:97%}.y-98{--y:98%}.y-99{--y:99%}.y-100{--y:100%}

/* ---------- Profile pages ---------- */
.lz-profile-head {
	background: linear-gradient(170deg, var(--wp--preset--color--white) 55%, var(--wp--preset--color--base) 55%);
}
.lz-profile-body p { margin-block: 0.6rem; }

/* ---------- Footer ---------- */
.lz-footer .lz-footer__logo img {
	background: #fff;
	padding: 6px;
}
.lz-footer p,
.lz-footer .wp-block-navigation { font-size: 0.95rem; }
.lz-footer h2 { margin-bottom: 1rem; }
.lz-footer a { text-decoration: none; }
.lz-footer a:hover { text-decoration: underline; }

/* ---------- Misc content ---------- */
.wp-block-embed iframe,
.lz-map iframe { width: 100%; border: 0; }
.wp-block-table td,
.wp-block-table th { border-color: var(--wp--preset--color--border); }

/* Fluent Forms submit button in the site colour (was set per form in Oxygen). */
.fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	background-color: var(--wp--preset--color--primary);
	color: #fff;
}

/* ---------- Praxis-Hinweis popup ---------- */
.lz-notice {
	width: min(560px, calc(100vw - 40px));
	border: 0;
	border-radius: 8px;
	padding: 2rem;
	text-align: center;
	box-shadow: var(--wp--custom--shadow);
}
.lz-notice::backdrop { background: rgba(0, 0, 0, 0.45); }
.lz-notice h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 0; }
.lz-notice__close {
	position: absolute;
	top: 8px;
	right: 12px;
	border: 0;
	background: none;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: var(--wp--preset--color--primary);
}
