/* ==========================================================================
   Osteopraxis Bremen – ergänzende Styles
   Farben, Schriften und Abstände kommen aus theme.json (CSS-Variablen).
   ========================================================================== */

:root {
	--osteo-radius-s: 8px;
	--osteo-radius-m: 14px;
	--osteo-radius-l: 24px;
	--osteo-ease: cubic-bezier(.2, .7, .2, 1);
	--osteo-plum: var(--wp--preset--color--primary, #8c2469);
	--osteo-plum-dark: var(--wp--preset--color--primary-dark, #5e1847);
	--osteo-plum-soft: var(--wp--preset--color--primary-soft, #f6edf3);
	--osteo-orange: var(--wp--preset--color--accent, #f18700);
	--osteo-border: var(--wp--preset--color--border, #ebe1e7);
	--osteo-muted: var(--wp--preset--color--muted, #6a5c65);
	--osteo-shadow: var(--wp--preset--shadow--soft, 0 8px 24px rgba(94,24,71,.07));
	--osteo-shadow-lifted: var(--wp--preset--shadow--lifted, 0 18px 40px rgba(94,24,71,.12));
}

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

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: "kern", "liga";
}

::selection { background: var(--osteo-plum); color: #fff; }

:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 2px solid var(--osteo-orange);
	outline-offset: 3px;
	border-radius: 4px;
}

a { text-underline-offset: .18em; text-decoration-thickness: 1px; transition: color .2s var(--osteo-ease); }

img { height: auto; }

.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .osteo-main { flex: 1 0 auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Kopfbereich ---------- */

.osteo-site-header {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--osteo-topbar-h, 0px));
	z-index: 50;
	transition: box-shadow .3s var(--osteo-ease);
}
.osteo-site-header.is-scrolled { box-shadow: 0 6px 24px rgba(42, 31, 39, .08); }
.osteo-topbar p { margin: 0; line-height: 1.5; }
.osteo-topbar a { color: inherit; text-decoration: none; }
.osteo-topbar a:hover { color: #ffd9a8; text-decoration: underline; }

.osteo-header { border-bottom: 1px solid var(--osteo-border); }

.osteo-brand .wp-block-site-logo img { border-radius: 50%; }
.osteo-brand .wp-block-site-title a:hover { color: var(--osteo-plum); }
.osteo-brand .wp-block-site-tagline { margin: 0; }

.osteo-nav .wp-block-navigation-item__content {
	position: relative;
	padding-block: .35rem;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.osteo-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: var(--osteo-orange);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s var(--osteo-ease);
}
.osteo-nav .wp-block-navigation-item__content:hover { color: var(--osteo-plum); }
.osteo-nav .wp-block-navigation-item__content:hover::after,
.osteo-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.osteo-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--osteo-plum); font-weight: 600; }

/* Mobiles Menü */
.osteo-nav .wp-block-navigation__responsive-container-open,
.osteo-nav .wp-block-navigation__responsive-container-close {
	color: var(--osteo-plum-dark);
}
.osteo-nav .wp-block-navigation__responsive-container-open {
	padding: .55rem;
	border-radius: 999px;
	background: var(--osteo-plum-soft);
}
.osteo-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem clamp(1rem, 6vw, 2.5rem);
}
.osteo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
}
.osteo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0;
	width: 100%;
}
.osteo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--osteo-border);
}
.osteo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: .95rem 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.35rem;
}
.osteo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }

@media (max-width: 781px) {
	.osteo-topbar .osteo-icon--pin { display: none; }
	.osteo-topbar > .wp-block-group { justify-content: center; }
	.osteo-brand .wp-block-site-logo img { width: 46px !important; }
	.osteo-brand .wp-block-site-title { font-size: 1.1rem !important; }
	.osteo-brand .wp-block-site-tagline { font-size: .7rem !important; }
}
@media (max-width: 380px) {
	.osteo-topbar .osteo-icon--mail { display: none; }
}

/* ---------- Icons (kleine Linien-Icons vor Absätzen) ---------- */

.osteo-icon { position: relative; padding-left: 1.75em; }
.osteo-icon::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 1.2em;
	height: 1.2em;
	background: currentColor;
	-webkit-mask: var(--osteo-icon) center / contain no-repeat;
	mask: var(--osteo-icon) center / contain no-repeat;
	opacity: .9;
}
main .osteo-icon::before, .osteo-footer .osteo-icon::before { background: var(--osteo-plum); }
.osteo-topbar .osteo-icon { padding-left: 1.5em; }
.osteo-topbar .osteo-icon::before { width: 1em; height: 1em; top: .25em; background: var(--osteo-orange); }

.osteo-icon--phone { --osteo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.osteo-icon--mail { --osteo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.osteo-icon--pin { --osteo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.osteo-icon--tram { --osteo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='5' width='14' height='13' rx='3'/%3E%3Cpath d='M5 12h14M9 2h6M12 2v3M8 18l-2 4M16 18l2 4'/%3E%3Ccircle cx='9' cy='15' r='.6'/%3E%3Ccircle cx='15' cy='15' r='.6'/%3E%3C/svg%3E"); }

/* ---------- Seitentitel-Band ---------- */

.osteo-page-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.osteo-page-hero::after,
.osteo-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: -6%;
	top: 50%;
	width: min(560px, 70vw);
	aspect-ratio: 2 / 1;
	transform: translateY(-50%) rotate(-8deg);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' fill='none'%3E%3Cpath d='M100 50C80 18 50 10 32 18 12 27 10 70 32 80c20 9 48-2 68-30s48-39 68-30c22 10 20 53 0 62-18 8-48 0-68-32' stroke='%23f18700' stroke-width='3.2' stroke-linecap='round' opacity='.35'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
}
.osteo-page-hero__title {
	position: relative;
	margin: 0;
	padding-top: 1.1rem;
}
.osteo-page-hero__title::before,
.is-style-osteo-eyebrow::before {
	content: "";
	display: block;
	width: 48px;
	height: 3px;
	border-radius: 3px;
	background: var(--osteo-orange);
	margin-bottom: 1rem;
}
.osteo-page-hero__title::before { position: absolute; top: 0; margin: 0; }

/* ---------- Startseite ---------- */

.osteo-hero { position: relative; overflow: hidden; isolation: isolate; }
.osteo-hero::after { right: auto; left: -10%; top: 85%; width: min(720px, 90vw); opacity: .8; }
.osteo-hero h1 { font-size: clamp(1.9rem, 3.4vw, 2.75rem); margin-bottom: var(--wp--preset--spacing--40); }
h1, h2, h3 { overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }
.osteo-hero h1, .osteo-page-hero__title { -webkit-hyphens: manual; hyphens: manual; text-wrap: balance; }
.osteo-hero__facts { gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }
.osteo-hero__facts p {
	margin: 0;
	padding: 1rem 1.1rem 1rem 3rem;
	background: rgba(255, 255, 255, .78);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	border: 1px solid rgba(140, 36, 105, .1);
	border-radius: var(--osteo-radius-m);
	box-shadow: var(--osteo-shadow);
}
.osteo-hero__facts .osteo-icon::before { left: 1.1rem; top: 1.25rem; }

.wp-block-image.is-style-osteo-logo-disc {
	display: grid;
	place-items: center;
	width: min(100%, 420px);
	aspect-ratio: 1;
	margin-inline: auto;
	background: #fff;
	border-radius: 50%;
	box-shadow: var(--osteo-shadow-lifted);
}
.wp-block-image.is-style-osteo-logo-disc img {
	width: 74% !important;
	height: auto !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.osteo-main--front > .is-style-osteo-card:first-of-type { position: relative; z-index: 2; }

.osteo-contact-lines { gap: .75rem 1.5rem; margin-block: 1.25rem; }
.osteo-contact-lines p {
	margin: 0;
	padding: .8rem 1rem .8rem 2.85rem;
	background: var(--osteo-plum-soft);
	border-radius: var(--osteo-radius-s);
}
.osteo-contact-lines .osteo-icon::before { left: 1rem; top: 1.05rem; }
.osteo-contact-lines a { font-weight: 600; text-decoration: none; }
.osteo-contact-lines a:hover { text-decoration: underline; }

.osteo-signoff {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: var(--wp--preset--font-size--large);
	color: var(--osteo-plum-dark);
}

/* ---------- Block-Stile ---------- */

.is-style-osteo-card {
	background: #fff;
	border: 1px solid var(--osteo-border);
	border-radius: var(--osteo-radius-l);
	box-shadow: var(--osteo-shadow);
	padding: clamp(1.4rem, 3.5vw, 2.5rem);
}
.is-style-osteo-card-tint {
	background: var(--osteo-plum-soft);
	border-radius: var(--osteo-radius-l);
	padding: clamp(1.4rem, 3.5vw, 2.25rem);
}
.is-style-osteo-highlight {
	background: var(--wp--preset--color--accent-soft, #fdf3e6);
	border-left: 4px solid var(--osteo-orange);
	border-radius: var(--osteo-radius-m);
	padding: 1.25rem 1.5rem;
	gap: 1rem 1.5rem;
}
.is-style-osteo-highlight p { margin: 0; }

.is-style-osteo-card > :first-child,
.is-style-osteo-card-tint > :first-child { margin-top: 0; }
.is-style-osteo-card > :last-child,
.is-style-osteo-card-tint > :last-child { margin-bottom: 0; }

.is-style-osteo-photo { position: relative; margin: 0 1rem 1rem 0; }
.is-style-osteo-photo img {
	position: relative;
	z-index: 1;
	border-radius: var(--osteo-radius-l) !important;
	box-shadow: var(--osteo-shadow-lifted);
}
.is-style-osteo-photo::before {
	content: "";
	position: absolute;
	inset: 1rem -1rem -1rem 1rem;
	border: 2px solid var(--osteo-orange);
	border-radius: var(--osteo-radius-l);
	opacity: .55;
}
.is-style-osteo-photo.is-resized::before { width: var(--osteo-photo-w, auto); }
.osteo-contact-photo { display: inline-block; }

.is-style-osteo-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--wp--preset--color--contrast); }
.is-style-osteo-note { font-size: var(--wp--preset--font-size--small); color: var(--osteo-muted); line-height: 1.6; }

.is-style-osteo-check { list-style: none; padding-left: 0 !important; }
.is-style-osteo-check li { position: relative; padding-left: 1.9rem; margin-block: .45rem; }
.is-style-osteo-check li::before {
	content: "";
	position: absolute;
	left: 0; top: .3em;
	width: 1.15rem; height: 1.15rem;
	border-radius: 50%;
	background: var(--osteo-plum-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238c2469' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 70% no-repeat;
}

.wp-block-button.is-style-osteo-outline .wp-block-button__link {
	background: transparent;
	color: var(--osteo-plum);
	box-shadow: inset 0 0 0 2px currentColor;
}
.wp-block-button.is-style-osteo-outline .wp-block-button__link:hover { background: var(--osteo-plum); color: #fff; }

.wp-element-button, .wp-block-button__link {
	transition: background-color .2s var(--osteo-ease), transform .2s var(--osteo-ease), box-shadow .2s var(--osteo-ease);
}
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(140, 36, 105, .25); }

/* Zitat */
.wp-block-pullquote.osteo-quote {
	position: relative;
	margin-block: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
	background: var(--osteo-plum-soft);
	border-radius: var(--osteo-radius-l);
	text-align: center;
}
.wp-block-pullquote.osteo-quote::before {
	content: "";
	display: block;
	width: 64px; height: 32px;
	margin: 0 auto 1rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' fill='none'%3E%3Cpath d='M100 50C80 18 50 10 32 18 12 27 10 70 32 80c20 9 48-2 68-30s48-39 68-30c22 10 20 53 0 62-18 8-48 0-68-32' stroke='%23f18700' stroke-width='9' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wp-block-pullquote.osteo-quote p { font-size: inherit; line-height: 1.4; }
.wp-block-pullquote.osteo-quote cite {
	display: block;
	margin-top: 1rem;
	font-family: var(--wp--preset--font-family--body);
	font-style: normal;
	font-size: .95rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--osteo-muted);
}

/* Osteopathie: Grundprinzipien und Bereiche */
.osteo-principles { counter-reset: none; }
.osteo-principle { border-left: 4px solid var(--osteo-plum); }
.osteo-principle__title {
	display: inline;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.2rem;
	color: var(--osteo-plum-dark);
}
p.osteo-principle__title { display: block; }
.osteo-areas .wp-block-column { position: relative; padding-top: 2.5rem; }
.osteo-areas .wp-block-column::before {
	content: "";
	position: absolute;
	top: 1.4rem; left: clamp(1.4rem, 3.5vw, 2.5rem);
	width: 36px; height: 3px;
	border-radius: 3px;
	background: var(--osteo-orange);
}
.osteo-area__title { font-size: 1.25rem; margin-bottom: .5rem; }

/* Kosten */
.osteo-price { position: relative; overflow: hidden; }
.osteo-price::after {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient(90deg, var(--osteo-plum), var(--osteo-orange));
}
.osteo-price p { font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.osteo-price em {
	display: block;
	margin-top: .6rem;
	font-style: normal;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.6rem;
	font-weight: 600;
	color: var(--osteo-plum);
}
.osteo-price em em { display: inline; font-size: inherit; margin: 0; }
.osteo-inline-logo { display: inline-block; vertical-align: middle; margin: 0 .25rem; }

/* Kontakt */
.osteo-form-card { align-self: flex-start; }
@media (min-width: 782px) {
	.osteo-sticky { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 7rem); }
}

/* Impressum */
.osteo-legal-logo { margin-bottom: var(--wp--preset--spacing--40); }

/* ---------- Kontaktformular (Contact Form 7) ---------- */

.wpcf7 form { margin: 0; }
.wpcf7 fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.wpcf7 .form-group { display: grid; gap: .4rem; margin-bottom: 1.1rem; }
.wpcf7 .form-group > [class*="col-sm"] { width: auto; padding: 0; }
.wpcf7 label, .wpcf7 .control-label {
	font-weight: 600;
	font-size: .95rem;
	color: var(--osteo-plum-dark);
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea,
.wpcf7 .form-control {
	width: 100%;
	box-sizing: border-box;
	padding: .8rem 1rem;
	font: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--surface, #faf7f5);
	border: 1px solid var(--osteo-border);
	border-radius: var(--osteo-radius-s);
	transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.wpcf7 textarea { min-height: 9rem; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus {
	outline: none;
	background: #fff;
	border-color: var(--osteo-plum);
	box-shadow: 0 0 0 4px rgba(140, 36, 105, .12);
}
.wpcf7 ::placeholder { color: #a3959e; }
.wpcf7 input[type="submit"], .wpcf7 .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .85rem 2rem;
	font: inherit;
	font-weight: 600;
	color: #fff;
	background: var(--osteo-plum);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color .2s, transform .2s, box-shadow .2s;
}
.wpcf7 input[type="submit"]:hover, .wpcf7 .btn:hover {
	background: var(--osteo-plum-dark);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(140, 36, 105, .25);
}
.wpcf7 .wpcf7-spinner { vertical-align: middle; }
.wpcf7 .osteo-form-hint { margin: 0 0 .4rem; font-size: .9rem; line-height: 1.45; color: var(--osteo-muted); }
.wpcf7 .osteo-consent .wpcf7-list-item { margin: 0; }
.wpcf7 .osteo-consent label { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; font-size: .92rem; line-height: 1.5; color: inherit; }
.wpcf7 .osteo-consent input[type="checkbox"] { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--osteo-plum); }
.wpcf7 .osteo-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wpcf7 .wpcf7-not-valid { border-color: #c0392b !important; }
.wpcf7 .wpcf7-not-valid-tip { font-size: .85rem; color: #b42318; margin-top: .3rem; }
.wpcf7 form .wpcf7-response-output {
	margin: 1.25rem 0 0;
	padding: .9rem 1.1rem;
	border-radius: var(--osteo-radius-s);
	border-width: 1px;
	font-size: .95rem;
}
.wpcf7 form.sent .wpcf7-response-output { background: #ecf7ef; border-color: #57a773; color: #1d5a32; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { background: #fff4e5; border-color: var(--osteo-orange); color: #7a4300; }

/* ---------- Karte (Zwei-Klick) ---------- */

.osteo-map {
	position: relative;
	min-height: var(--osteo-map-height, 420px);
	height: 100%;
	border-radius: var(--osteo-radius-l);
	overflow: hidden;
	background:
		radial-gradient(circle at 30% 30%, rgba(241, 135, 0, .12), transparent 45%),
		repeating-linear-gradient(0deg, transparent 0 38px, rgba(140, 36, 105, .06) 38px 39px),
		repeating-linear-gradient(90deg, transparent 0 38px, rgba(140, 36, 105, .06) 38px 39px),
		var(--osteo-plum-soft);
	box-shadow: var(--osteo-shadow);
}
.osteo-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.osteo-map__consent {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem;
}
.osteo-map__consent p { margin: .35rem 0; max-width: 34rem; }
.osteo-map__pin {
	width: 54px; height: 54px;
	margin-bottom: .5rem;
	border-radius: 50%;
	background: var(--osteo-plum);
	box-shadow: 0 0 0 10px rgba(140, 36, 105, .12);
	position: relative;
}
.osteo-map__pin::before {
	content: "";
	position: absolute; inset: 14px;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%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 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.osteo-map__address { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; color: var(--osteo-plum-dark); }
.osteo-map__text { font-size: .9rem; color: var(--osteo-muted); }
.osteo-map__actions { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; justify-content: center; margin-top: 1rem !important; }
.osteo-map__load { cursor: pointer; border: 0; }
.osteo-map__external { font-size: .95rem; }
.osteo-map.is-loaded .osteo-map__consent { display: none; }

.osteo-admin-note {
	padding: 1rem 1.25rem;
	border: 1px dashed var(--osteo-orange);
	border-radius: var(--osteo-radius-s);
	background: var(--wp--preset--color--accent-soft, #fdf3e6);
	font-size: .95rem;
}

/* ---------- Fußbereich ---------- */

.osteo-footer { position: relative; overflow: hidden; isolation: isolate; }
.osteo-footer::before {
	content: "";
	position: absolute;
	z-index: -1;
	right: -120px; bottom: -80px;
	width: 520px; aspect-ratio: 2 / 1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' fill='none'%3E%3Cpath d='M100 50C80 18 50 10 32 18 12 27 10 70 32 80c20 9 48-2 68-30s48-39 68-30c22 10 20 53 0 62-18 8-48 0-68-32' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' opacity='.09'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
}
.osteo-footer p { color: rgba(255, 255, 255, .86); }
.osteo-footer a { text-decoration: none; }
.osteo-footer a:hover { text-decoration: underline; color: #ffd9a8; }
.osteo-footer__heading {
	font-family: var(--wp--preset--font-family--body);
	font-size: .8rem !important;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--osteo-orange) !important;
	margin-bottom: 1rem;
}
.osteo-footer__lead { font-family: var(--wp--preset--font-family--heading); font-style: italic; font-size: 1.1rem; }
.osteo-brand--footer .wp-block-site-logo img { background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.15); }
.osteo-footer__bottom p { margin: 0; color: rgba(255, 255, 255, .65); }
.osteo-footer-nav a { color: rgba(255, 255, 255, .85) !important; }

/* ---------- Galerie (NextGEN oder Galerie-Block) ---------- */

.wp-block-gallery.has-nested-images figure.wp-block-image img,
.ngg-gallery-thumbnail img { border-radius: var(--osteo-radius-m); }
.ngg-galleryoverview { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.ngg-gallery-thumbnail-box { float: none !important; width: auto !important; margin: 0 !important; }
.ngg-gallery-thumbnail { margin: 0 !important; border: 0 !important; }
.ngg-gallery-thumbnail a { display: block; overflow: hidden; border-radius: var(--osteo-radius-m); box-shadow: var(--osteo-shadow); }
.ngg-gallery-thumbnail img { display: block; transition: transform .4s var(--osteo-ease); border: 0 !important; padding: 0 !important; background: none !important; }
.ngg-gallery-thumbnail a:hover img { transform: scale(1.05); }
.slideshowlink { text-align: center; margin-top: 1.5rem; }

/* ---------- Ältere Inhalte (vor der Umstellung auf Blöcke) ---------- */

.osteo-classic-content .entry-content .row,
.osteo-classic-content .wp-block-post-content .row { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-block: 1rem; }
.osteo-classic-content [class*="col-sm-"] { flex: 1 1 100%; }
@media (min-width: 768px) {
	.osteo-classic-content .col-sm-2 { flex-basis: calc(16.66% - 2rem); }
	.osteo-classic-content .col-sm-3 { flex-basis: calc(25% - 2rem); }
	.osteo-classic-content .col-sm-4 { flex-basis: calc(33.33% - 2rem); }
	.osteo-classic-content .col-sm-8 { flex-basis: calc(66.66% - 2rem); }
	.osteo-classic-content .col-sm-9 { flex-basis: calc(75% - 2rem); }
	.osteo-classic-content .col-sm-10 { flex-basis: calc(83.33% - 2rem); }
	.osteo-classic-content .col-sm-12 { flex-basis: 100%; }
}
.osteo-classic-content .col-sm-2:empty, .osteo-classic-content .col-sm-4:empty { display: none; }
.osteo-classic-content .well {
	background: #fff;
	border: 1px solid var(--osteo-border);
	border-radius: var(--osteo-radius-l);
	box-shadow: var(--osteo-shadow);
	padding: clamp(1.25rem, 3vw, 2rem);
	margin-block: 1rem;
}
.osteo-classic-content .text-center { text-align: center; }
.osteo-classic-content .text-justify { text-align: left; }
.osteo-classic-content .img-responsive { max-width: 100%; height: auto; }
.osteo-classic-content .btn {
	display: inline-block;
	padding: .8rem 1.6rem;
	border-radius: 999px;
	background: var(--osteo-plum);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
.osteo-classic-content img.aligncenter { display: block; margin-inline: auto; }
.osteo-classic-content img.alignnone { max-width: 100%; }

/* ---------- Editor-Feinheiten ---------- */

.editor-styles-wrapper .osteo-site-header { position: relative; top: 0; }
.osteo-hero__facts a[href^="mailto"], .osteo-contact-lines a[href^="mailto"] { white-space: nowrap; }
@media (max-width: 781px) { .wp-block-image.is-style-osteo-logo-disc { width: min(78%, 300px); } }

/* Galerie „Räumlichkeiten“: gleichmäßiges Raster, volles Bild per Klick (Lightbox) */
.wp-block-gallery.osteo-gallery { gap: clamp(.75rem, 2vw, 1.25rem); }
.wp-block-gallery.osteo-gallery.is-cropped figure.wp-block-image { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--osteo-radius-m); box-shadow: var(--osteo-shadow); }
.wp-block-gallery.osteo-gallery.is-cropped figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--osteo-ease); }
.wp-block-gallery.osteo-gallery figure.wp-block-image:hover img { transform: scale(1.04); }
@media (max-width: 599px) {
	.wp-block-gallery.osteo-gallery.columns-3 figure.wp-block-image { width: 100% !important; }
}
