/*
 * Sanner – Terminkarte
 * Visuelle Welt: die Terminkarte der Praxis. Gedruckte weiße Karten auf
 * blaugrauem Tisch, Kuli-Handschrift für Einträge, roter Praxisstempel.
 * Druckschrift: Hanken Grotesk. Handschrift: Caveat (nur für Einträge).
 */

:root {
	--sn-tisch: #e8edf2;
	--sn-karte: #fff;
	--sn-tinte: #18202b;
	--sn-kuli: #1d3fa6;
	--sn-stempel: #cf103c; /* Rot des Sanner-Logos */
	--sn-leise: #505b69;
	--sn-linie: #c9d1dc;
	--sn-hell: #b8c2d0;
	--sn-druck: "Hanken Grotesk", system-ui, sans-serif;
	--sn-hand: "Caveat", "Segoe Print", cursive;
	--sn-breit: 78rem;
	--sn-rand: clamp(1rem, 4vw, 3rem);
	--sn-abstand: clamp(4rem, 9vw, 7.5rem);
	--sn-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--sn-topbar-h: 2.5rem;
	--sn-schatten: 0 1px 1px rgba(24, 32, 43, 0.06), 0 18px 40px -10px rgba(24, 32, 43, 0.22);
	--sn-schatten-flach: 0 1px 1px rgba(24, 32, 43, 0.05), 0 8px 20px -10px rgba(24, 32, 43, 0.18);
	/* Kuli-Haken für Abhaklisten */
	--sn-haken: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 13.2c2 1.4 3.6 3.2 4.9 5.3C11 12.4 15 7.6 20.8 4.2'/%3E%3C/svg%3E");
	--sn-pfeil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E");
	/* Von Hand gezogener Kreis (heute) */
	--sn-kreis: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 60' preserveAspectRatio='none' fill='none' stroke='%23CF103C' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M30 9c38-9 110-7 147 6 22 8 22 27-6 35-41 12-115 11-150-2C-3 39 2 18 26 10c22-7 62-8 98-6'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------ Grundlagen */

html {
	scroll-padding-top: 6.5rem;
	-webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	caret-color: var(--sn-kuli);
	scrollbar-color: var(--sn-tinte) var(--sn-tisch);
	font-variant-numeric: lining-nums tabular-nums;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--sn-kuli);
	color: var(--sn-karte);
}

:focus-visible {
	outline: 3px solid var(--sn-kuli);
	outline-offset: 3px;
	border-radius: 2px;
}

.sn-topbar :focus-visible,
.sn-footer :focus-visible,
.sn-duo > .wp-block-column:last-child :focus-visible {
	outline-color: var(--sn-karte);
}

a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
	transition: color 0.2s, text-decoration-thickness 0.2s;
}

a:hover { text-decoration-thickness: 2px; }

.wp-site-blocks > * { margin-block: 0; }

h1, h2, h3, h4 {
	text-wrap: balance;
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
	overflow-wrap: break-word;
}

p, li, dd, td, figcaption {
	text-wrap: pretty;
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
}

strong { font-weight: 700; }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.sn-symbol { flex: none; width: 1.25em; height: 1.25em; }

/* ------------------------------------------------------------ Kopfbereich */

.sn-kopf {
	position: sticky;
	top: calc(-1 * var(--sn-topbar-h));
	z-index: 50;
}

.admin-bar .sn-kopf { top: calc(32px - var(--sn-topbar-h)); }

@media (max-width: 782px) {
	.admin-bar .sn-kopf { top: calc(46px - var(--sn-topbar-h)); }
}

.sn-topbar {
	background: var(--sn-tinte);
	color: var(--sn-karte);
	font-size: 0.9375rem;
}

.sn-topbar__innen {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	height: var(--sn-topbar-h);
	max-width: calc(var(--sn-breit) + 2 * var(--sn-rand));
	margin-inline: auto;
	padding-inline: var(--sn-rand);
	overflow: hidden;
	white-space: nowrap;
}

.sn-topbar a { color: var(--sn-karte); text-decoration: none; }
.sn-topbar a:hover { text-decoration: underline; }
.sn-topbar__adresse { font-weight: 700; }

.sn-topbar__info {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	color: var(--sn-hell);
}

.sn-topbar__trenner { width: 1px; height: 1em; background: currentColor; opacity: 0.6; }

@media (max-width: 700px) {
	.sn-topbar__info { display: none; }
}

.sn-header {
	box-sizing: border-box;
	background: var(--sn-karte);
	border-bottom: 1px solid var(--sn-linie);
	padding-block: 0.7rem;
	padding-inline: max(var(--sn-rand), calc((100% - var(--sn-breit)) / 2));
	gap: 1.25rem;
}

.sn-marke {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--sn-tinte);
	text-decoration: none;
	flex-shrink: 0;
}

.sn-marke__zeichen {
	display: block;
	width: auto;
	height: 3rem;
	flex: none;
}

.sn-marke__text { display: flex; flex-direction: column; line-height: 1.1; }

.sn-marke__name {
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: -0.02em;
}

.sn-marke__zeile {
	margin-top: 0.25rem;
	font-size: 0.875rem;
	color: var(--sn-leise);
}

.sn-marke:hover .sn-marke__name { color: var(--sn-kuli); }

@media (max-width: 420px) {
	.sn-marke__zeile { display: none; }
	.sn-marke__name { font-size: 1.125rem; }
}

/* Navigation: ab 1100px als Zeile, darunter als Vollbild-Menü. */
.sn-header .sn-nav { flex: 1 1 auto; justify-content: flex-end; }

.sn-nav .wp-block-navigation-item__content {
	position: relative;
	padding: 0.6rem 0.15rem;
	color: var(--sn-tinte);
	text-decoration: none;
}

/* Unterstrich wie mit dem Kuli gezogen */
.sn-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: -0.2rem;
	right: -0.2rem;
	bottom: 0.05rem;
	height: 0.55rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none' fill='none' stroke='%231D3FA6' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M2 6c20-3 45-4 70-2 9 .7 17 1.6 26 3'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 0.35s var(--sn-ease);
}

.sn-nav .wp-block-navigation-item__content:hover::after,
.sn-nav .current-menu-item > .wp-block-navigation-item__content::after {
	clip-path: inset(0 0 0 0);
}

.sn-nav .wp-block-navigation__container { gap: clamp(0.85rem, 1.5vw, 1.75rem); }

.sn-nav .wp-block-navigation__responsive-container-open {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	color: var(--sn-tinte);
	border: 1px solid var(--sn-linie);
	border-radius: 6px;
}

.sn-nav .wp-block-navigation__responsive-container-open svg { width: 1.5rem; height: 1.5rem; }

@media (min-width: 1100px) {
	.sn-nav .wp-block-navigation__responsive-container-open { display: none; }
	.sn-nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
		display: block;
		position: static;
		width: auto;
		background: transparent;
		padding: 0;
		z-index: auto;
	}
	.sn-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
	.sn-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-dialog,
	.sn-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content {
		display: flex;
		padding: 0;
	}
}

@media (max-width: 1099px) {
	.sn-header .sn-nav { order: 3; flex: 0 0 auto; }
	.sn-header .sn-anruf--kompakt { margin-left: auto; }
}

/*
 * Kopfzeile des Vollbild-Menüs: Marke links, Schließen rechts, an denselben
 * Stellen wie im angehefteten Kopf (Marke und Menü-Knopf).
 */
.sn-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--sn-tisch) !important;
	color: var(--sn-tinte) !important;
	padding: 0.7rem var(--sn-rand) 2rem;
}

.sn-nav .sn-marke--menue { display: none; }

.sn-nav .is-menu-open .sn-marke--menue {
	display: flex;
	width: fit-content;
	min-height: 2.75rem;
}

.sn-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	color: var(--sn-tinte);
	width: 2.75rem;
	height: 2.75rem;
	top: 0;
	right: 0;
}

.sn-nav .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 1.75rem; height: 1.75rem; }

.sn-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 1.5rem !important;
	align-items: flex-start !important;
}

.sn-nav .is-menu-open .wp-block-navigation__container {
	gap: 0 !important;
	width: 100%;
	border-top: 2px solid var(--sn-tinte);
}

.sn-nav .is-menu-open .wp-block-navigation-item { width: 100%; }

.sn-nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 1rem 0 !important;
	color: var(--sn-tinte) !important;
	font-weight: 800;
	font-size: clamp(1.75rem, 6vw, 2.5rem);
	letter-spacing: -0.03em;
	line-height: 1.1;
	border-bottom: 1px solid var(--sn-linie);
}

.sn-nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }
.sn-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--sn-kuli) !important; }

/* ------------------------------------------------------------ Anruf */

.sn-anruf {
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
}

.sn-anruf--kompakt {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	border-radius: 6px;
	background: var(--sn-tinte);
	color: var(--sn-karte);
	font-weight: 800;
	font-size: 1.0625rem;
	white-space: nowrap;
	flex-shrink: 0;
}

.sn-anruf--kompakt:hover { background: var(--sn-kuli); color: var(--sn-karte); }
.sn-anruf--kompakt .sn-symbol { width: 1.15rem; height: 1.15rem; }
.sn-anruf__kurz { display: none; }

@media (max-width: 560px) {
	.sn-anruf--kompakt .sn-anruf__nummer { display: none; }
	.sn-anruf--kompakt .sn-anruf__kurz { display: inline; }
}

@media (max-width: 479px) {
	.sn-header { gap: 0.5rem; }
	.sn-marke { gap: 0.55rem; }
	.sn-marke__zeichen { height: 2.6rem; }
	.sn-anruf--kompakt { justify-content: center; width: 2.75rem; padding: 0; }
	.sn-anruf--kompakt .sn-symbol { width: 1.35rem; height: 1.35rem; }
	.sn-anruf--kompakt .sn-anruf__kurz {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

.sn-anruf--gross,
.sn-anruf--hell {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	min-height: 4rem;
	padding: 0.9rem 1.6rem 0.9rem 1.25rem;
	border-radius: 8px;
	background: var(--sn-tinte);
	color: var(--sn-karte);
}

.sn-anruf--gross:hover { background: var(--sn-kuli); color: var(--sn-karte); }
.sn-anruf--gross .sn-symbol,
.sn-anruf--hell .sn-symbol { width: 1.75rem; height: 1.75rem; }

.sn-anruf__text { display: flex; flex-direction: column; line-height: 1.15; }

.sn-anruf__label {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--sn-hell);
}

.sn-anruf__nummer {
	font-weight: 800;
	font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.7rem);
	letter-spacing: -0.01em;
	white-space: nowrap;
}

.sn-anruf--hell { background: var(--sn-karte); color: var(--sn-tinte); box-shadow: var(--sn-schatten-flach); }
.sn-anruf--hell .sn-anruf__label { color: var(--sn-leise); }
.sn-anruf--hell:hover { color: var(--sn-kuli); box-shadow: var(--sn-schatten); }

/* ------------------------------------------------------------ Textlinks */

.sn-textlink,
.sn-weiter a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 700;
	color: var(--sn-kuli);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

.sn-textlink:hover,
.sn-weiter a:hover { color: var(--sn-tinte); }

.sn-weiter a::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	flex: none;
	background: currentColor;
	-webkit-mask: var(--sn-pfeil) center / contain no-repeat;
	mask: var(--sn-pfeil) center / contain no-repeat;
	transition: transform 0.3s var(--sn-ease);
}

.sn-textlink .sn-symbol { width: 1.1em; height: 1.1em; transition: transform 0.3s var(--sn-ease); }
.sn-weiter a:hover::after,
.sn-textlink:hover .sn-symbol { transform: translateX(3px); }
.sn-textlink[href^="#"]:hover .sn-symbol { transform: translateY(3px); }

/* ------------------------------------------------------------ Status */

.sn-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem 0.45rem;
	margin: 0;
	font-size: 1rem;
	line-height: 1.35;
}

.sn-status::before {
	content: "";
	flex: none;
	width: 0.7rem;
	height: 0.7rem;
	box-sizing: border-box;
	border: 2px solid currentColor;
	border-radius: 50%;
}

.sn-status.is-offen::before { background: var(--sn-kuli); border-color: var(--sn-kuli); }
.sn-status__zustand { font-weight: 800; }
.sn-status__detail::before { content: "· "; }

.sn-status--hero { margin-top: 1.25rem; color: var(--sn-tinte); }
.sn-status--hero .sn-status__detail { color: var(--sn-leise); }

/* ------------------------------------------------------------ Abschnitte */

/*
 * Inhalte in Abschnitten stehen links auf der 78rem-Spalte – schmalere
 * Elemente (Einleitungen, Hinweise, Lesespalte) werden nicht zentriert.
 */
.sn-abschnitt.is-layout-constrained > :not(.alignfull),
.sn-rezept.is-layout-constrained > :not(.alignfull),
.sn-inhalt.is-layout-constrained > :not(.alignfull),
.sn-artikel-fuss.is-layout-constrained > :not(.alignfull) {
	margin-left: max(0px, calc((100% - var(--sn-breit)) / 2)) !important;
	margin-right: auto !important;
}

.wp-block-post-content > .alignfull,
.sn-inhalt > .alignfull {
	margin-block: 0;
}

.sn-abschnitt { padding-block: var(--sn-abstand); overflow-x: clip; }
.sn-abschnitt:not(.sn-abschnitt--feld) + .sn-abschnitt:not(.sn-abschnitt--feld) { padding-top: 0; }
.sn-abschnitt--feld { background: var(--sn-tisch); }
.sn-abschnitt > * { margin-block-start: 0; }
.sn-abschnitt h2 { font-size: var(--wp--preset--font-size--titel); }

.sn-abschnitt > .sn-anruf,
.sn-inhalt > .sn-anruf,
.is-style-formularfeld > .sn-anruf { margin-top: 1.25rem; }

.sn-hinweis {
	max-width: 62ch;
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

/* ------------------------------------------------------------ Hero */

.sn-hero {
	background: var(--sn-tisch);
	padding-block: clamp(2.5rem, 6vw, 5.5rem) clamp(3.5rem, 7vw, 6rem);
	overflow-x: clip;
}

.sn-hero__innen {
	box-sizing: border-box;
	display: grid;
	gap: clamp(3rem, 6vw, 5rem);
	align-items: center;
	max-width: calc(var(--sn-breit) + 2 * var(--sn-rand));
	margin-inline: auto;
	padding-inline: var(--sn-rand);
}

@media (min-width: 960px) {
	.sn-hero__innen { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
}

.sn-hero__titel {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}

.sn-hero__claim {
	display: block;
	font-weight: 800;
	font-size: clamp(2.75rem, 1.55rem + 4.4vw, 5.25rem);
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--sn-tinte);
}

.sn-hero__hand {
	display: inline-block;
	margin-top: 0.08em;
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: 1.12em;
	line-height: 0.95;
	letter-spacing: -0.005em;
	color: var(--sn-kuli);
	transform: rotate(-2deg);
	transform-origin: left center;
}

.sn-hero__unterzeile {
	display: block;
	margin-top: 1.5rem;
	font-weight: 800;
	font-size: clamp(1.125rem, 1rem + 0.55vw, 1.4rem);
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--sn-tinte);
}

.sn-hero__lead {
	max-width: 40ch;
	margin: 1rem 0 0;
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.2rem);
	color: var(--sn-leise);
}

.sn-hero__aktionen {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
	margin-top: 2rem;
}

/* ------------------------------------------------------------ Terminkarte */

.sn-karte-hero { margin: 0; display: grid; justify-items: center; }

.sn-terminkarte {
	position: relative;
	box-sizing: border-box;
	width: min(100%, 31rem);
	padding: 1.6rem 1.9rem 1.5rem;
	background: var(--sn-karte);
	border-radius: 4px;
	box-shadow: var(--sn-schatten);
	transform: rotate(-2.5deg);
}

.sn-terminkarte__kopf {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.25rem 1rem;
	padding-bottom: 0.7rem;
	border-bottom: 2px solid var(--sn-tinte);
}

.sn-terminkarte__kopf b { font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; }
.sn-terminkarte__kopf span { font-size: 0.875rem; color: var(--sn-leise); }

.sn-terminkarte__zeilen { margin: 0.35rem 0 0; }

.sn-terminkarte__zeile {
	display: grid;
	grid-template-columns: 6.25rem minmax(0, 1fr);
	align-items: end;
	gap: 0.75rem;
	min-height: 3.1rem;
	padding-bottom: 0.2rem;
	border-bottom: 1px solid var(--sn-linie);
}

.sn-terminkarte__zeile dt {
	padding-bottom: 0.35rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--sn-leise);
}

.sn-terminkarte__zeile dd {
	margin: 0;
	font-family: var(--sn-hand);
	font-weight: 600;
	font-size: 1.85rem;
	line-height: 1.05;
	color: var(--sn-kuli);
}

.sn-terminkarte__fuss {
	margin: 0.9rem 0 0;
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

.sn-terminkarte__fuss a { color: var(--sn-tinte); font-weight: 800; text-decoration: none; }
.sn-terminkarte__fuss a:hover { color: var(--sn-kuli); text-decoration: underline; }

.sn-stempel {
	position: absolute;
	right: -1.6rem;
	bottom: -2rem;
	width: 9.5rem;
	height: 9.5rem;
	color: var(--sn-stempel);
	transform: rotate(14deg);
	opacity: 0.95;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.sn-stempel text {
	font-family: var(--sn-druck);
	font-weight: 800;
	fill: currentColor;
}

@media (max-width: 600px) {
	.sn-terminkarte { transform: rotate(-1.5deg); padding: 1.25rem; }
	.sn-terminkarte__zeile { grid-template-columns: 5.25rem minmax(0, 1fr); }
	.sn-terminkarte__zeile dd { font-size: 1.6rem; }
	.sn-stempel { width: 7rem; height: 7rem; right: -0.75rem; bottom: -2.75rem; }
}

/* Einmal schreiben, einmal stempeln (siehe Kopf-Skript und praxis.js). */
@media (prefers-reduced-motion: no-preference) {
	/* Ruhezustand als gleichförmiges inset(), sonst springt der Übergang statt zu wischen. */
	.sn-terminkarte__zeile dd {
		clip-path: inset(-0.35em -0.5em -0.35em -0.35em);
		transition: clip-path 0.55s var(--sn-ease) calc(var(--i, 0) * 150ms + 150ms);
	}
	.sn-stempel { transition: transform 0.45s var(--sn-ease) var(--stempel-verz, 1s), opacity 0.12s linear var(--stempel-verz, 1s); }
	.sn-bewegung [data-sn-karte]:not(.is-geschrieben) .sn-terminkarte__zeile dd,
	[data-sn-karte].is-wartend:not(.is-geschrieben) .sn-terminkarte__zeile dd { clip-path: inset(-0.35em 100% -0.35em -0.35em); }
	.sn-bewegung [data-sn-karte]:not(.is-geschrieben) .sn-stempel,
	[data-sn-karte].is-wartend:not(.is-geschrieben) .sn-stempel { opacity: 0; transform: rotate(4deg) scale(1.35); }
}

/* ------------------------------------------------------------ Faktenleiste */

.sn-fakten {
	background: var(--sn-karte);
	border-bottom: 1px solid var(--sn-linie);
}

.sn-fakten__liste {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: 1.5rem 2.5rem;
	max-width: calc(var(--sn-breit) + 2 * var(--sn-rand));
	margin: 0 auto;
	padding: 2rem var(--sn-rand);
	list-style: none;
}

.sn-fakten__liste li { padding-left: 1.25rem; border-left: 1px solid var(--sn-linie); }
.sn-fakten__liste li:first-child { padding-left: 0; border-left: 0; }

.sn-fakten__liste strong {
	display: block;
	font-weight: 800;
	font-size: 1.2rem;
	line-height: 1.25;
	letter-spacing: -0.015em;
}

.sn-fakten__liste span {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

@media (max-width: 700px) {
	.sn-fakten__liste li { padding-left: 0; border-left: 0; }
}

/* ------------------------------------------------------------ Zwei Disziplinen */

.sn-zwei.wp-block-columns { gap: 0; }
.sn-zwei > .wp-block-column { padding-block: 0.5rem; }

@media (min-width: 782px) {
	.sn-zwei > .wp-block-column:first-child { padding-right: clamp(2rem, 5vw, 5rem); }
	.sn-zwei > .wp-block-column:last-child {
		padding-left: clamp(2rem, 5vw, 5rem);
		border-left: 1px solid var(--sn-linie);
	}
}

@media (max-width: 781px) {
	.sn-zwei > .wp-block-column:last-child {
		margin-top: 2.5rem;
		padding-top: 2.5rem;
		border-top: 1px solid var(--sn-linie);
	}
}

.sn-abschnitt .sn-zwei__titel {
	margin: 0;
	font-size: var(--wp--preset--font-size--seite);
	letter-spacing: -0.04em;
}

.sn-zwei__zusatz {
	margin-top: 0.6rem !important;
	font-family: var(--sn-hand);
	font-weight: 600;
	font-size: 1.65rem;
	line-height: 1.1;
	color: var(--sn-kuli);
}

.sn-zwei p:not(.sn-zwei__zusatz):not(.sn-weiter) { max-width: 52ch; }

/* ------------------------------------------------------------ Rezept-Tabelle */

.sn-rezept {
	background: var(--sn-tisch);
	padding-block: var(--sn-abstand);
}

.sn-rezept .sn-rezept__titel {
	margin-top: 0;
	font-size: var(--wp--preset--font-size--seite);
	letter-spacing: -0.04em;
}

.sn-rezept__intro {
	max-width: 54ch;
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.2rem);
	color: var(--sn-leise);
}

.wp-block-table.is-style-rezept {
	margin-top: 2rem;
	padding: 0.75rem clamp(1.25rem, 3vw, 2.5rem) 1rem;
	background: var(--sn-karte);
	border-radius: 4px;
	box-shadow: var(--sn-schatten);
	overflow: visible;
}

.wp-block-table.is-style-rezept table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.0625rem;
}

.wp-block-table.is-style-rezept thead { border: 0; }

.wp-block-table.is-style-rezept th {
	padding: 0.85rem 1rem 0.6rem 0;
	border: 0;
	border-bottom: 2px solid var(--sn-tinte);
	text-align: left;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--sn-leise);
}

.wp-block-table.is-style-rezept tr { position: relative; }

.wp-block-table.is-style-rezept td {
	padding: 0.95rem 1rem 0.95rem 0;
	border: 0;
	border-bottom: 1px solid var(--sn-linie);
	vertical-align: middle;
	color: var(--sn-leise);
}

.wp-block-table.is-style-rezept tbody tr:last-child td { border-bottom: 0; }

/* Kürzel wie vom Arzt von Hand auf die Verordnung geschrieben */
.wp-block-table.is-style-rezept td:first-child {
	width: 10.5rem;
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
	line-height: 1;
	color: var(--sn-kuli);
	white-space: nowrap;
}

@media (min-width: 720px) {
	.wp-block-table.is-style-rezept td:nth-child(2) { width: 34%; }
}

.wp-block-table.is-style-rezept td:nth-child(2) a {
	font-weight: 800;
	font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem);
	letter-spacing: -0.015em;
	color: var(--sn-tinte);
	text-decoration: none;
}

.wp-block-table.is-style-rezept td:nth-child(2) a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.wp-block-table.is-style-rezept tbody tr { transition: background-color 0.2s; }
.wp-block-table.is-style-rezept tbody tr:hover { background: #f4f6f9; }
.wp-block-table.is-style-rezept tbody tr:hover td:nth-child(2) a { color: var(--sn-kuli); text-decoration: underline; text-decoration-thickness: 2px; }
.wp-block-table.is-style-rezept tbody tr:focus-within { outline: 3px solid var(--sn-kuli); outline-offset: -3px; }
.wp-block-table.is-style-rezept a:focus-visible { outline: none; }

.sn-rezept .sn-rezept__gruppe {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	font-size: var(--wp--preset--font-size--gross);
}

.sn-rezept .sn-rezept__gruppe + .sn-rezept__intro { margin-top: 0.35rem; font-size: 1rem; }
.wp-block-table.is-style-rezept.sn-ohne-kuerzel { margin-top: 1.25rem; }

.wp-block-table.is-style-rezept.sn-ohne-kuerzel td:first-child {
	font-family: var(--sn-druck);
	font-weight: 700;
	font-size: 0.875rem;
	line-height: 1.3;
	color: var(--sn-leise);
}
.wp-block-table.sn-ohne-kuerzel thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

@media (max-width: 719px) {
	.wp-block-table.is-style-rezept thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.wp-block-table.is-style-rezept table,
	.wp-block-table.is-style-rezept tbody { display: block; }
	.wp-block-table.is-style-rezept tr {
		display: grid;
		grid-template-columns: 6.25rem minmax(0, 1fr);
		column-gap: 0.85rem;
		padding-block: 0.9rem;
		border-bottom: 1px solid var(--sn-linie);
	}
	.wp-block-table.is-style-rezept tbody tr:last-child { border-bottom: 0; }
	.wp-block-table.is-style-rezept td { padding: 0; border: 0; }
	.wp-block-table.is-style-rezept td:first-child {
		grid-row: span 2;
		width: auto;
		font-size: 1.6rem;
		white-space: normal;
		overflow-wrap: anywhere;
	}
	.wp-block-table.is-style-rezept td:nth-child(3) { margin-top: 0.25rem; font-size: 0.9375rem; }
	.wp-block-table.is-style-rezept.sn-ohne-kuerzel td:first-child { font-size: 0.8125rem; padding-top: 0.2rem; }
}

/* Gedruckte Tabelle */
.wp-block-table.is-style-befund table { width: 100%; border-collapse: collapse; }
.wp-block-table.is-style-befund thead { border: 0; }
.wp-block-table.is-style-befund th {
	padding: 0 1rem 0.6rem 0;
	border: 0;
	border-bottom: 2px solid var(--sn-tinte);
	text-align: left;
	font-size: 0.875rem;
	color: var(--sn-leise);
}
.wp-block-table.is-style-befund td { padding: 0.85rem 1rem 0.85rem 0; border: 0; border-bottom: 1px solid var(--sn-linie); }

/* ------------------------------------------------------------ Kinder & Karte auf dem Tisch */

.sn-kinder.wp-block-columns { gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.sn-kinder h2 { margin-top: 0; }

.is-style-formularfeld {
	position: relative;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--sn-karte);
	border-radius: 4px;
	box-shadow: var(--sn-schatten);
}

/* Auf dem weißen Blatt keine Karte, sondern gedruckter Kasten mit Haarlinien */
.sn-abschnitt:not(.sn-abschnitt--feld) .is-style-formularfeld,
.sn-inhalt .is-style-formularfeld {
	padding: 1.25rem 0 1.5rem;
	background: none;
	border-radius: 0;
	border-top: 2px solid var(--sn-tinte);
	border-bottom: 1px solid var(--sn-linie);
	box-shadow: none;
}

/* Rezept-Tisch und folgender Tisch-Abschnitt bilden eine Fläche */
.sn-rezept + .sn-abschnitt--feld,
.sn-abschnitt--feld + .sn-abschnitt--feld { padding-top: 0; }

.is-style-formularfeld > :first-child { margin-top: 0; }
.is-style-formularfeld h2,
.is-style-formularfeld h3 { font-size: var(--wp--preset--font-size--gross); }
.sn-inhalt > .is-style-formularfeld { margin-block: 3rem; }

/* ------------------------------------------------------------ Abhakliste */

.is-style-messpunkte { padding-left: 0; list-style: none; }

.is-style-messpunkte li {
	position: relative;
	margin-block: 0.55rem;
	padding-left: 2rem;
}

.is-style-messpunkte li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.12em;
	width: 1.35rem;
	height: 1.35rem;
	background: var(--sn-stempel);
	-webkit-mask: var(--sn-haken) center / contain no-repeat;
	mask: var(--sn-haken) center / contain no-repeat;
}

.sn-vorteile li {
	padding-left: 2.4rem;
	font-weight: 800;
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem);
	line-height: 1.25;
	letter-spacing: -0.02em;
}

.sn-vorteile li::before { width: 1.7rem; height: 1.7rem; top: 0.05em; }

/* ------------------------------------------------------------ Ablauf mit Rezept */

.sn-ablauf {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 2.5rem clamp(2rem, 4vw, 3.5rem);
	margin: 2.25rem 0 2.5rem;
	padding: 0;
	list-style: none;
	counter-reset: schritt;
}

.sn-ablauf li {
	position: relative;
	padding-top: 3.6rem;
	counter-increment: schritt;
	max-width: 36ch;
}

.sn-ablauf li::before {
	content: counter(schritt) ".";
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: 3.25rem;
	line-height: 1;
	color: var(--sn-kuli);
}

.sn-ablauf strong {
	display: block;
	margin-bottom: 0.4rem;
	font-weight: 800;
	font-size: 1.375rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--sn-tinte);
}

/* ------------------------------------------------------------ Öffnungszeiten (gedruckte Karte) */

.sn-zeiten {
	margin-top: 1.5rem;
	padding: 0.5rem clamp(1.25rem, 3vw, 2rem) 1.25rem;
	background: var(--sn-karte);
	border-radius: 4px;
	box-shadow: var(--sn-schatten);
}

.sn-zeiten__liste { margin: 0; }

.sn-zeiten__tag {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding-block: 0.85rem;
	border-bottom: 1px solid var(--sn-linie);
}

.sn-zeiten__tag dt { position: relative; font-weight: 700; justify-self: start; }
.sn-zeiten__tag dd { margin: 0; font-weight: 700; white-space: nowrap; }
.sn-zeiten__kurz { display: none; }

.sn-zeiten__heute {
	display: none;
	margin-left: 0.85rem;
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--sn-kuli);
}

/* Heute: von Hand eingekreist */
.sn-zeiten__tag.is-heute .sn-zeiten__tagname { position: relative; }

.sn-zeiten__tag.is-heute .sn-zeiten__tagname::after {
	content: "";
	position: absolute;
	left: -0.7rem;
	right: -0.7rem;
	top: -0.45rem;
	bottom: -0.45rem;
	background: var(--sn-kreis) center / 100% 100% no-repeat;
	pointer-events: none;
}

.sn-zeiten__tag.is-heute .sn-zeiten__heute { display: inline; }
.sn-zeiten__tag.is-zu dt,
.sn-zeiten__tag.is-zu dd { color: var(--sn-leise); font-weight: 400; }

.sn-zeiten__hinweis {
	margin: 1rem 0 0;
	font-family: var(--sn-hand);
	font-weight: 600;
	font-size: 1.5rem;
	line-height: 1.1;
	color: var(--sn-kuli);
}

@media (max-width: 480px) {
	.sn-zeiten__lang { display: none; }
	.sn-zeiten__kurz { display: inline; }
}

.sn-zeiten-kontakt.wp-block-columns { gap: clamp(2.5rem, 6vw, 6rem); }
.sn-zeiten-kontakt h2 { margin-top: 0; }

/* Kompakte Zeitliste (Fußbereich, Seitenleiste) */
.sn-zeitliste { display: grid; gap: 0.35rem; margin: 0; }
.sn-zeitliste > div { display: flex; justify-content: space-between; gap: 1.5rem; max-width: 16rem; }
.sn-zeitliste dt { font-weight: 700; }
.sn-zeitliste dd { margin: 0; }
.sn-zeitliste__hinweis { margin-top: 0.75rem; }

/* ------------------------------------------------------------ Kontakt */

.sn-kontakt { display: grid; gap: 1.25rem; margin-top: 1.5rem; }

.sn-kontakt__zeile {
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}

.sn-kontakt .sn-symbol { width: 1.5rem; height: 1.5rem; margin-top: 0.1rem; color: var(--sn-kuli); }
.sn-kontakt__wert { margin: 0; font-weight: 700; }

.sn-kontakt__gross {
	font-weight: 800;
	font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.8rem);
	letter-spacing: -0.02em;
	color: var(--sn-tinte);
	text-decoration: none;
}

.sn-kontakt__gross:hover { color: var(--sn-kuli); text-decoration: underline; }

.sn-kontakt__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
	margin: 0.4rem 0 0;
	font-size: 0.9375rem;
}

/* ------------------------------------------------------------ Team-Vorschau */

.sn-team-teaser.wp-block-columns { gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.sn-team-teaser h2 { margin-top: 0; }

.sn-teamliste {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--sn-tinte);
}

.sn-teamliste li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.2rem 1rem;
	margin: 0;
	padding-block: 0.85rem;
	border-bottom: 1px solid var(--sn-linie);
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

.sn-teamliste strong {
	font-weight: 800;
	font-size: 1.125rem;
	letter-spacing: -0.015em;
	color: var(--sn-tinte);
}

/* ------------------------------------------------------------ Kurse & Karriere */

.sn-duo.wp-block-columns { gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }

.sn-duo > .wp-block-column {
	padding: clamp(1.75rem, 4vw, 3rem);
	background: var(--sn-karte);
	border-radius: 4px;
	box-shadow: var(--sn-schatten);
}

.sn-duo h2 { margin-top: 0; }

/* Vorteile von Hand notiert */
.sn-notizliste li {
	margin-block: 0.2rem;
	padding-left: 2.1rem;
	font-family: var(--sn-hand);
	font-weight: 600;
	font-size: 1.75rem;
	line-height: 1.15;
	color: var(--sn-kuli);
}

.sn-notizliste li::before { top: 0.2em; }

.sn-whatsapp { margin: 1.25rem 0 0; }

.sn-whatsapp a {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.75rem 1.1rem;
	border-radius: 6px;
	background: var(--sn-tinte);
	color: var(--sn-karte);
	text-decoration: none;
	font-weight: 700;
}

.sn-whatsapp a:hover { background: var(--sn-kuli); }
.sn-whatsapp .sn-symbol { width: 1.35rem; height: 1.35rem; }
.sn-duo .sn-whatsapp + .sn-weiter { margin-top: 1rem; }

/* ------------------------------------------------------------ Kontaktband */

.sn-kontaktband {
	background: var(--sn-tisch);
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.sn-kontaktband__innen {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 3rem;
}

.sn-kontaktband__titel {
	margin: 0;
	font-size: var(--wp--preset--font-size--titel);
	max-width: 22ch;
}

.sn-kontaktband .sn-status { margin-top: 0.85rem; }
.sn-kontaktband .sn-status__detail { color: var(--sn-leise); }

/* ------------------------------------------------------------ Seitenkopf */

.sn-seitenkopf {
	position: relative;
	padding-block: clamp(2.25rem, 6vw, 4.5rem) clamp(2.25rem, 5vw, 3.75rem);
	background: var(--sn-tisch);
}

.sn-seitenkopf__innen { display: grid; gap: 2rem; align-items: center; }

@media (min-width: 820px) {
	.sn-seitenkopf--leistung .sn-seitenkopf__innen { grid-template-columns: minmax(0, 1fr) auto; }
	.sn-seitenkopf--404 .sn-seitenkopf__innen { grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); }
}

.sn-seitenkopf__text > * { margin-block: 0; }

.sn-seitenkopf .sn-seitenkopf__titel {
	margin: 0.85rem 0 0;
	font-weight: 800;
	font-size: var(--wp--preset--font-size--seite);
	line-height: 1.02;
	letter-spacing: -0.04em;
	color: var(--sn-tinte);
}

.sn-seitenkopf__lead {
	max-width: 50ch;
	margin: 1.25rem 0 0 !important;
	font-size: clamp(1.125rem, 1rem + 0.4vw, 1.35rem);
	color: var(--sn-leise);
}

.sn-seitenkopf--schlicht .sn-seitenkopf__titel { font-size: var(--wp--preset--font-size--titel); }

.sn-brotkrumen ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

.sn-brotkrumen li + li::before { content: "/"; margin-right: 0.5rem; color: var(--sn-hell); }
.sn-brotkrumen a { color: var(--sn-kuli); }

/* Rezept-Kürzel einer Leistungsseite: kleiner Zettel auf dem Tisch */
.sn-kuerzel {
	display: grid;
	gap: 0.5rem;
	justify-items: start;
	min-width: min(100%, 14rem);
	padding: 1.25rem 1.6rem 1.35rem;
	background: var(--sn-karte);
	border-radius: 4px;
	box-shadow: var(--sn-schatten);
	transform: rotate(-2deg);
}

.sn-kuerzel__wert {
	margin: 0;
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: clamp(2.75rem, 2rem + 3vw, 4.25rem);
	line-height: 0.95;
	color: var(--sn-kuli);
	white-space: nowrap;
}

.sn-kuerzel__ohne {
	margin: 0;
	font-weight: 800;
	font-size: clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem);
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--sn-tinte);
}

.sn-kuerzel__hinweis { max-width: 24ch; margin: 0; font-size: 0.9375rem; color: var(--sn-leise); }

/* ------------------------------------------------------------ Leistungsseite mit Seitenleiste */

.sn-seitenleiste { display: none; }

@media (min-width: 1100px) {
	.sn-leistung {
		box-sizing: border-box;
		display: grid;
		grid-template-columns: minmax(0, 44rem) 19rem;
		justify-content: space-between;
		gap: 4rem;
		max-width: calc(var(--sn-breit) + 2 * var(--sn-rand));
		margin-inline: auto;
		padding-inline: var(--sn-rand);
	}

	.sn-leistung > .sn-inhalt { padding-inline: 0 !important; }

	.sn-seitenleiste {
		position: sticky;
		top: 6.5rem;
		align-self: start;
		display: grid;
		gap: 1rem;
		margin-top: clamp(2.5rem, 5vw, 4.5rem);
		padding: 1.5rem;
		background: var(--sn-karte);
		border: 1px solid var(--sn-linie);
		border-radius: 4px;
		box-shadow: var(--sn-schatten-flach);
	}

	.sn-seitenleiste { grid-template-columns: minmax(0, 1fr); }
	.sn-seitenleiste > * { margin: 0 !important; min-width: 0; }
	.sn-seitenleiste .sn-anruf--gross { gap: 0.75rem; padding: 0.8rem 1rem; }
	.sn-seitenleiste .sn-anruf__nummer { font-size: 1.35rem; }
	.sn-seitenleiste .sn-seitenleiste__titel { font-size: var(--wp--preset--font-size--gross); }
	.sn-seitenleiste .sn-zeitliste { padding-top: 1rem; border-top: 1px solid var(--sn-linie); font-size: 0.9375rem; }
	.sn-seitenleiste .sn-zeitliste > div { max-width: none; }
	.sn-seitenleiste .sn-zeitliste__hinweis { font-size: 0.875rem; color: var(--sn-leise); }
}

/* ------------------------------------------------------------ Inhalt der Unterseiten */

.sn-inhalt { padding-block: clamp(2.5rem, 5vw, 4.5rem) var(--sn-abstand); }

.sn-inhalt > h2 {
	margin-top: clamp(2.75rem, 5vw, 4rem);
	font-size: var(--wp--preset--font-size--titel);
}

.sn-inhalt > h2:first-child { margin-top: 0; }
.sn-inhalt > h2 + * { margin-top: 0.85rem; }
.sn-inhalt > h3 { margin-top: 2.25rem; }
.sn-inhalt > .alignfull { margin-block: clamp(3rem, 6vw, 5rem) !important; }
.sn-inhalt > .alignfull + h2 { margin-top: 0; }
.sn-inhalt--schlicht h2 { font-size: var(--wp--preset--font-size--gross); }

/* Häufige Fragen */
.wp-block-details.is-style-frage {
	margin-top: 0;
	padding: 0;
	border-top: 1px solid var(--sn-linie);
	border-bottom: 1px solid var(--sn-linie);
}

.wp-block-details.is-style-frage + .wp-block-details.is-style-frage { margin-top: 0; border-top: 0; }
h2 + .wp-block-details.is-style-frage { margin-top: 1.25rem; }

.is-style-frage summary {
	position: relative;
	padding: 1.15rem 3rem 1.15rem 0;
	cursor: pointer;
	list-style: none;
	font-weight: 800;
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.2rem);
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--sn-tinte);
}

.is-style-frage summary::-webkit-details-marker { display: none; }

.is-style-frage summary::before,
.is-style-frage summary::after {
	content: "";
	position: absolute;
	right: 0.5rem;
	top: 50%;
	width: 1.1rem;
	height: 2px;
	border-radius: 2px;
	background: var(--sn-kuli);
	transition: transform 0.3s var(--sn-ease);
}

.is-style-frage summary::after { transform: rotate(90deg); }
.is-style-frage[open] summary::after { transform: rotate(0deg); }
.is-style-frage summary:hover { color: var(--sn-kuli); }
.is-style-frage > p { max-width: 65ch; margin: 0 0 1.35rem; }

/* Foto-Platzhalter */
.wp-block-image.is-style-platzhalter img {
	display: block;
	width: 100%;
	height: auto;
	background: var(--sn-tisch);
	border-radius: 4px;
}

.wp-block-image.is-style-platzhalter figcaption {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: var(--sn-leise);
	text-align: left;
}

/* Praxisfotos: Abzüge im Format 3:2 (Porträts 4:5), auf dem Tisch mit Karten-Schatten */
.wp-block-image.sn-foto { margin-block: 2.25rem; }

.wp-block-image.sn-foto img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 4px;
	background: var(--sn-tisch);
}

.sn-abschnitt--feld .wp-block-image.sn-foto img { box-shadow: var(--sn-schatten-flach); }

.wp-block-image.sn-foto figcaption {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: var(--sn-leise);
	text-align: left;
}

.sn-person > .wp-block-image.sn-foto img { aspect-ratio: 4 / 5; }
.sn-zwei .wp-block-image.sn-foto { margin: 0 0 2rem; }
.sn-kinder .wp-block-image.sn-foto { margin: 0 0 1.75rem; }
.sn-team-teaser .wp-block-image.sn-foto { margin: 2.5rem 0 0; }
.sn-galerie .wp-block-image.sn-foto { margin: 0; }

/* Übungszeichnungen: wie ein Übungszettel, hochkant, mit gedruckter Haarlinie */
.sn-uebungen.wp-block-columns { gap: 1rem; margin-block: 1.5rem 2.25rem; }
.sn-uebungen .wp-block-image.sn-foto { margin: 0; }

.wp-block-image.sn-uebung img {
	aspect-ratio: 4 / 5;
	object-fit: contain;
	background: var(--sn-karte);
	border: 1px solid var(--sn-linie);
}

.wp-block-image.sn-uebung figcaption { font-weight: 700; color: var(--sn-tinte); }

@media (max-width: 781px) {
	.sn-uebungen.wp-block-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; }
	.wp-block-image.sn-uebung figcaption { font-size: 0.75rem; line-height: 1.3; }
}

/* Übungen im Liegen: Querformat, zwei nebeneinander, auf dem Handy untereinander */
.sn-uebungen--quer.wp-block-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.sn-uebungen--quer .wp-block-image.sn-uebung img { aspect-ratio: 3 / 2; }
.sn-uebungen--quer .wp-block-image.sn-uebung figcaption { font-size: 0.875rem; }

@media (max-width: 599px) {
	.sn-uebungen--quer.wp-block-columns { grid-template-columns: minmax(0, 1fr); }
}

.sn-galerie.wp-block-columns { gap: 1rem; }

/* Team */
.sn-inhalt > .sn-teamraster,
.sn-inhalt > .sn-galerie { max-width: var(--sn-breit); }

.sn-teamraster {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
	gap: 3rem 2rem;
	margin-top: 2rem;
}

.sn-teamraster > .sn-person { margin: 0; }
.sn-person > .wp-block-image { margin: 0 0 1rem; }
.sn-person > .wp-block-image figcaption { margin-top: 0.35rem; font-size: 0.8125rem; }
.sn-person__text > * { margin-block: 0; }
.sn-person .sn-person__name { font-size: 1.375rem; line-height: 1.2; }
.sn-person__rolle { margin-top: 0.35rem !important; color: var(--sn-leise); font-size: 0.9375rem; }

.sn-person__seit {
	margin-top: 0.4rem !important;
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.1;
	color: var(--sn-kuli);
}

.sn-person__label { margin-top: 0.85rem !important; font-size: 0.875rem; font-weight: 700; color: var(--sn-leise); }

.sn-person__fortbildungen {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.4rem !important;
	padding: 0;
	list-style: none;
}

.sn-person__fortbildungen li {
	margin: 0;
	padding: 0.15rem 0.55rem;
	border-radius: 4px;
	background: var(--sn-tisch);
	font-size: 0.875rem;
	hyphens: manual;
}

@media (max-width: 599px) {
	.sn-teamraster { gap: 1.75rem; }
	.sn-person {
		display: grid;
		grid-template-columns: 5.5rem minmax(0, 1fr);
		gap: 1rem;
		align-items: start;
	}
	.sn-person > .wp-block-image { margin: 0; }
	.sn-person > .wp-block-image figcaption { line-height: 1.25; }
}

/* Bewerbungswege */
.sn-bewerbung { display: grid; gap: 0.75rem; margin: 2rem 0; padding: 0; list-style: none; }
.sn-bewerbung li { margin: 0; }

.sn-bewerbung a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "icon art aktion" "icon wert aktion";
	align-items: center;
	gap: 0.1rem 1rem;
	box-sizing: border-box;
	padding: 1.1rem 1.35rem;
	border-radius: 6px;
	background: var(--sn-tinte);
	color: var(--sn-karte);
	text-decoration: none;
	transition: background-color 0.2s;
}

.sn-bewerbung a:hover { background: var(--sn-kuli); }
.sn-bewerbung .sn-symbol { grid-area: icon; width: 1.75rem; height: 1.75rem; }
.sn-bewerbung__art { grid-area: art; font-size: 0.875rem; font-weight: 700; color: var(--sn-hell); }
.sn-bewerbung__wert { grid-area: wert; font-weight: 800; font-size: 1.15rem; overflow-wrap: anywhere; }
.sn-bewerbung__aktion { grid-area: aktion; font-weight: 700; text-decoration: underline; text-underline-offset: 0.25em; }

@media (max-width: 520px) {
	.sn-bewerbung a { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon art" "icon wert" "icon aktion"; }
	.sn-bewerbung__aktion { margin-top: 0.4rem; }
}

/* Weitere Leistungen */
.sn-geschwister { padding-block: var(--sn-abstand); background: var(--sn-tisch); }

.sn-geschwister__innen {
	box-sizing: border-box;
	max-width: calc(var(--sn-breit) + 2 * var(--sn-rand));
	margin-inline: auto;
	padding-inline: var(--sn-rand);
}

.sn-geschwister__titel { margin: 0; font-size: var(--wp--preset--font-size--titel); }

.sn-geschwister__liste {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr));
	column-gap: 2.5rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--sn-tinte);
}

.sn-geschwister__liste li { margin: 0; }

.sn-geschwister__liste a {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: center;
	padding: 0.85rem 0.25rem;
	border-bottom: 1px solid var(--sn-linie);
	color: var(--sn-tinte);
	text-decoration: none;
}

.sn-geschwister__kz { font-family: var(--sn-hand); font-weight: 700; font-size: 1.6rem; line-height: 1; color: var(--sn-kuli); }
.sn-geschwister__kz.is-ohne { font-family: var(--sn-druck); font-weight: 400; font-size: 0.875rem; color: var(--sn-leise); }
.sn-geschwister__name { font-weight: 700; }
.sn-geschwister__liste a:hover .sn-geschwister__name { color: var(--sn-kuli); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.sn-geschwister__liste .sn-symbol { color: var(--sn-kuli); transition: transform 0.3s var(--sn-ease); }
.sn-geschwister__liste a:hover .sn-symbol { transform: translateX(3px); }
.sn-geschwister__zurueck { margin: 2rem 0 0; }

.sn-kurse.wp-block-columns { gap: clamp(2rem, 4vw, 4rem); margin-block: 2rem; }
.sn-kurse h2 { margin-top: 0; }

/* ------------------------------------------------------------ Ratgeber */

/* Register: wie ein gedrucktes Inhaltsverzeichnis, das Kürzel steht von Hand davor */
.sn-register {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--sn-tinte);
}

.sn-register__eintrag { margin: 0; }

.sn-register__eintrag a {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr) auto;
	gap: 1.25rem;
	align-items: start;
	padding: 1.2rem 0.25rem;
	border-bottom: 1px solid var(--sn-linie);
	color: var(--sn-tinte);
	text-decoration: none;
}

.sn-register__kz {
	font-family: var(--sn-hand);
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.05;
	color: var(--sn-kuli);
}

.sn-register__text { display: grid; gap: 0.3rem; min-width: 0; }

.sn-register__titel {
	font-weight: 800;
	font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.3rem);
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.sn-register__auszug { max-width: 64ch; font-size: 1rem; line-height: 1.5; color: var(--sn-leise); }
.sn-register .sn-symbol { margin-top: 0.2rem; color: var(--sn-kuli); transition: transform 0.3s var(--sn-ease); }
.sn-register a:hover .sn-register__titel { color: var(--sn-kuli); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.sn-register a:hover .sn-symbol { transform: translateX(3px); }
.sn-register__leer { color: var(--sn-leise); }

@media (max-width: 599px) {
	.sn-register__eintrag a { grid-template-columns: minmax(0, 1fr) auto; gap: 0.35rem 1rem; }
	.sn-register__kz { grid-column: 1 / -1; font-size: 1.4rem; }
}

.sn-ratgeber .sn-hinweis { margin-top: 2.5rem; }

/* Auf Leistungsseiten: passende Artikel */
.sn-passend { padding-bottom: var(--sn-abstand); }

.sn-passend__innen {
	box-sizing: border-box;
	max-width: calc(var(--sn-breit) + 2 * var(--sn-rand));
	margin-inline: auto;
	padding-inline: var(--sn-rand);
}

.sn-passend .sn-passend__titel { margin: 0; font-size: var(--wp--preset--font-size--titel); }

/* Artikel */
.sn-artikel-stand {
	margin-top: 1rem !important;
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

.sn-artikel { padding-bottom: clamp(2rem, 4vw, 3rem); }
.sn-artikel > h2 { font-size: var(--wp--preset--font-size--gross); line-height: 1.2; letter-spacing: -0.015em; }

.sn-artikel-fuss { padding-bottom: var(--sn-abstand); }
.sn-artikel-fuss > * { margin-block: 0; }

.sn-artikel-hinweis {
	padding: 1rem 0;
	border-top: 1px solid var(--sn-linie);
	border-bottom: 1px solid var(--sn-linie);
	font-size: 0.9375rem;
	color: var(--sn-leise);
}

.sn-artikel-leistung { margin-top: 3rem !important; }
.sn-artikel-leistung .sn-artikel-leistung__titel,
.sn-artikel-fuss .sn-artikel-fuss__titel { margin: 0; font-size: var(--wp--preset--font-size--gross); }
.sn-artikel-leistung .sn-geschwister__liste { grid-template-columns: minmax(0, 1fr); margin-top: 1rem; }
.sn-artikel-fuss__titel { margin-top: 3.5rem !important; }
.sn-artikel-fuss .sn-register { margin-top: 1rem; }
.sn-artikel-fuss .sn-weiter { margin-top: 1.5rem !important; }

/* Online-Termin: steht leise neben dem Telefon, das Telefon bleibt der Hauptweg */
.sn-online-termin {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 700;
	color: var(--sn-kuli);
}

.sn-online-termin .sn-symbol { width: 1.2em; height: 1.2em; }
.sn-kontaktband .sn-online-termin { margin-top: 0.85rem; }
.sn-seitenleiste .sn-online-termin { justify-self: start; }

/* 404 */
.sn-seitenkopf--404 .sn-karte-hero { justify-items: end; }

/* ------------------------------------------------------------ Fußbereich */

.sn-footer {
	padding-block: clamp(3rem, 6vw, 5rem) 2rem;
	background: var(--sn-tinte);
	color: var(--sn-hell);
	font-size: 0.9375rem;
}

.sn-footer a { color: var(--sn-karte); text-decoration: none; }
.sn-footer a:hover { text-decoration: underline; }

.sn-footer__raster {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: 2.5rem;
}

@media (min-width: 1000px) {
	.sn-footer__raster { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
}

.sn-footer__raster > * { margin-block: 0; }
.sn-footer .sn-marke { color: var(--sn-karte); }
.sn-footer .sn-marke__zeile { color: var(--sn-hell); }

.sn-footer .sn-footer__titel {
	margin: 0 0 1rem;
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0;
	color: var(--sn-karte);
}

.sn-footer__links { display: grid; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }

.sn-adresse { display: grid; gap: 0.15rem; margin-top: 1.5rem; font-style: normal; }
.sn-adresse a:first-of-type { margin-top: 0.6rem; font-weight: 800; font-size: 1.125rem; }
.sn-footer .sn-zeitliste dt { color: var(--sn-karte); }

.sn-fussleiste {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	margin-top: 3rem !important;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(184, 194, 208, 0.25);
}

.sn-fussleiste p { margin: 0; }
.sn-fussleiste__links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }

/* ------------------------------------------------------------ Bewegung */

/*
 * Der Kuli schreibt weiter: Handschriftliche Einträge wischen einmal von links
 * nach rechts herein, rote Haken werden gesetzt, der Heute-Kreis wird gezogen,
 * Fotos werden wie Abzüge auf den Tisch gelegt. Jedes Element einmal, beim
 * ersten Sichtbarwerden (praxis.js setzt is-wartend → is-da und --i für die
 * Reihenfolge). Ohne Skript oder bei reduzierter Bewegung ist alles sofort da.
 */
@media (prefers-reduced-motion: no-preference) {
	@view-transition { navigation: auto; }
	::view-transition-old(root),
	::view-transition-new(root) { animation-duration: 0.22s; }
	.sn-kopf { view-transition-name: sn-kopf; }

	/* Handschrift: Wisch wie auf der Terminkarte */
	.wp-block-table.is-style-rezept:not(.sn-ohne-kuerzel) td:first-child,
	.sn-register__kz,
	.sn-zwei__zusatz,
	.sn-person__seit,
	.sn-notizliste li,
	.sn-ablauf li::before {
		clip-path: inset(-0.35em -0.5em -0.35em -0.35em);
		transition: clip-path 0.55s var(--sn-ease) calc(var(--i, 0) * 110ms + 120ms);
	}

	.sn-bewegung .wp-block-table.is-style-rezept:not(.sn-ohne-kuerzel):not(.is-da) td:first-child,
	.wp-block-table.is-style-rezept.is-wartend:not(.sn-ohne-kuerzel):not(.is-da) td:first-child,
	.sn-bewegung .sn-notizliste:not(.is-da) li,
	.sn-notizliste.is-wartend:not(.is-da) li,
	.sn-bewegung .sn-register:not(.is-da) .sn-register__kz,
	.sn-register.is-wartend:not(.is-da) .sn-register__kz,
	.sn-bewegung .sn-ablauf:not(.is-da) li::before,
	.sn-ablauf.is-wartend:not(.is-da) li::before,
	.sn-bewegung :is(.sn-zwei__zusatz, .sn-person__seit):not(.is-da),
	:is(.sn-zwei__zusatz, .sn-person__seit).is-wartend:not(.is-da) {
		clip-path: inset(-0.35em 100% -0.35em -0.35em);
	}

	/* Rote Haken: einer nach dem anderen gesetzt */
	.is-style-messpunkte li::before {
		clip-path: inset(-0.2em -0.2em -0.2em -0.2em);
		transition: clip-path 0.3s var(--sn-ease) calc(min(var(--i, 0), 8) * 70ms + 100ms);
	}

	.sn-bewegung .is-style-messpunkte:not(.is-da) li::before,
	.is-style-messpunkte.is-wartend:not(.is-da) li::before {
		clip-path: inset(-0.2em 100% -0.2em -0.2em);
	}

	/* Heute: Kreis wird von Hand gezogen */
	.sn-zeiten__tag.is-heute .sn-zeiten__tagname::after {
		clip-path: inset(0 0 0 0);
		transition: clip-path 0.7s var(--sn-ease) 0.25s;
	}

	.sn-bewegung [data-sn-zeiten]:not(.is-da) .sn-zeiten__tagname::after,
	[data-sn-zeiten].is-wartend:not(.is-da) .sn-zeiten__tagname::after {
		clip-path: inset(0 100% 0 0);
	}

	/* Fotos: Abzug wird auf den Tisch gelegt */
	.wp-block-image.sn-foto img {
		transition: opacity 0.7s var(--sn-ease) calc(min(var(--i, 0), 3) * 90ms), transform 0.7s var(--sn-ease) calc(min(var(--i, 0), 3) * 90ms);
	}

	.sn-bewegung .wp-block-image.sn-foto:not(.is-da) img,
	.wp-block-image.sn-foto.is-wartend:not(.is-da) img {
		opacity: 0;
		transform: translateY(14px);
	}

	/* Häufige Fragen: Antwort gleitet auf statt zu springen */
	.wp-block-details.is-style-frage { interpolate-size: allow-keywords; }

	.wp-block-details.is-style-frage::details-content {
		block-size: 0;
		overflow-y: clip;
		opacity: 0;
		transition: block-size 0.35s var(--sn-ease), opacity 0.25s linear, content-visibility 0.35s allow-discrete;
	}

	.wp-block-details.is-style-frage[open]::details-content { block-size: auto; opacity: 1; }

	/* Knöpfe geben beim Drücken kurz nach */
	.sn-anruf,
	.wp-element-button,
	.sn-bewerbung a,
	.sn-whatsapp { transition-property: background-color, color, box-shadow, transform; transition-duration: 0.2s, 0.2s, 0.2s, 0.1s; }

	.sn-anruf:active,
	.wp-element-button:active,
	.sn-bewerbung a:active,
	.sn-whatsapp:active { transform: translateY(1px); }
}

/* Drucken: alles vollständig zeigen, auch was beim Scrollen noch nicht aufgetreten ist. */
@media print {
	.is-wartend:not(.is-da),
	.is-wartend:not(.is-da) *,
	.is-wartend:not(.is-da) *::before,
	.is-wartend:not(.is-da) *::after,
	[data-sn-karte]:not(.is-geschrieben) .sn-terminkarte__zeile dd {
		clip-path: none !important;
		opacity: 1 !important;
	}

	.wp-block-image.sn-foto img { transform: none !important; }
	[data-sn-karte]:not(.is-geschrieben) .sn-stempel { opacity: 0.95 !important; transform: rotate(14deg) !important; }
	.sn-kopf { position: static; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}
