/*
 * NC Barrierefreiheit – augenarzt-satrup.de (Suffusion + Child-Theme mediageno)
 * Ziel: WCAG 2.1 AA. Farben aus dem Praxisauftritt: #0052a4 (Blau), #002b58 (Dunkelblau).
 * Schriftgrößen in rem: skalieren mit html{font-size} (NC BFSG Tool setzt --bfsg-base-size).
 * Kontraste auf Weiß: #333 = 12,6:1 · #0052a4 = 7,4:1 · #595959 = 7:1 · #002b58 = 14:1
 */

/* ---------- Hilfsklassen ---------- */
.nc-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ---------- Sprunglink ---------- */
.nc-sprunglink {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 100000;
	padding: 12px 18px;
	background: #002b58;
	color: #fff !important;
	font: 700 1rem/1.4 Arial, Helvetica, sans-serif;
	text-decoration: underline;
	border-radius: 0 0 4px 4px;
}
.nc-sprunglink:focus {
	top: 0;
}
#main-col:focus,
#single-col:focus {
	outline: none;
}

/* ---------- Grundschrift: mindestens 16 px ---------- */
/* Das Reset-CSS von Suffusion (html … { font-size: 100% }) lädt nach dem NC BFSG Tool und
   hebelt dessen Schriftvergrößerung aus. Hier wird die Tool-Variable wieder wirksam. */
html {
	font-size: var(--bfsg-base-size, 100%) !important;
}
body {
	font-size: 1rem !important;
	line-height: 1.6 !important;
	color: #333;
}
#content,
#content .entry,
#content .entry p,
#content .entry li,
#content .entry td,
#content .entry th,
#content .entry dd,
#content .entry dt,
.su-spoiler-content,
.suf-widget,
.suf-widget p,
.suf-widget li,
.suf-widget td,
.suf-widget .dbx-content {
	font-size: 1rem !important;
	line-height: 1.6 !important;
}
#content .entry h5,
#content .entry h6,
.su-spoiler-content h5,
.su-spoiler-content h6 {
	font-size: 1.0625rem !important;
	line-height: 1.4 !important;
}
#content .entry small,
.suf-widget small,
.wp-caption-text {
	font-size: 0.875rem !important;
}
.suf-widget h3,
.suf-widget .dbx-handle {
	font-size: 1.0625rem !important;
	line-height: 1.35 !important;
}
#content h1.posttitle,
#content .nc-start-h1 {
	font-size: 1.75rem !important;
	line-height: 1.25 !important;
	color: #002b58 !important;
}
#content .nc-start-h1 {
	margin: 0 0 .6em;
	font-weight: 700;
}

/* Menü */
#nav a,
#nav li a {
	font-size: 1rem !important;
	line-height: 1.4 !important;
	min-height: 44px;
	padding-top: 11px !important;
	padding-bottom: 11px !important;
	box-sizing: border-box;
}

/* Fußbereich */
#cred,
#cred td,
#cred a,
#page-footer {
	font-size: 0.875rem !important;
	line-height: 1.6 !important;
}
#cred a {
	display: inline-block;
	min-height: 24px;
	padding: 4px 2px;
}

/* ---------- Kontraste ---------- */
a,
a:visited,
#content .entry a,
.suf-widget a {
	color: #0052a4;
}
#content .entry a,
.suf-widget .dbx-content a,
#cred a {
	text-decoration: underline;
	text-underline-offset: 2px;
}
a:hover,
a:focus {
	color: #002b58;
}
.searchform .searchfield,
.searchform input.searchfield {
	color: #333 !important;
}
.searchform .searchfield::placeholder {
	color: #595959 !important;
	opacity: 1;
}

/* ---------- Suche: Bedienfläche 44 px ---------- */
.searchform .searchfield {
	height: 44px !important;
	font-size: 1rem !important;
	padding: 0 10px !important;
	box-sizing: border-box;
}
.searchform .searchsubmit {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	background-position: center center !important;
	cursor: pointer;
}

/* ---------- Tastaturbedienung: sichtbarer Fokus ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.su-spoiler-title:focus-visible {
	outline: 3px solid #002b58 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 5px #fff !important;
}
#nav a:focus-visible {
	outline-color: #fff !important;
	box-shadow: 0 0 0 5px #002b58 !important;
}

/* ---------- Aufklappbare Abschnitte (Datenschutz) ---------- */
.su-spoiler-title {
	min-height: 44px;
	box-sizing: border-box;
	font-size: 1rem !important;
}

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Menü auf schmalen Bildschirmen (≤ 650 px, Umbruchpunkt von Suffusion) ---------- */
.nc-menue-knopf {
	display: none;
}
@media screen and (max-width: 650px) {
	#nav select.tinynav,
	#nav-top select.tinynav {
		display: none !important;
	}
	.nc-menue-knopf {
		display: flex;
		align-items: center;
		gap: .5em;
		width: 100%;
		min-height: 48px;
		margin: 6px 0;
		padding: 0 1em;
		font: 700 1rem/1.2 Arial, Helvetica, sans-serif;
		color: #fff;
		background: #0052a4;
		border: 0;
		border-radius: 4px;
		cursor: pointer;
		text-align: left;
	}
	.nc-menue-knopf[aria-expanded="true"] {
		background: #002b58;
	}
	.nc-menue-symbol {
		font-size: 1.25rem;
		line-height: 1;
	}
	#nav ul.sf-menu {
		display: none !important;
	}
	#nav ul.sf-menu.nc-offen {
		display: block !important;
		float: none !important;
		width: 100% !important;
		margin: 0 0 8px !important;
	}
	#nav ul.sf-menu.nc-offen li {
		float: none !important;
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
	}
	#nav ul.sf-menu.nc-offen li a {
		display: block !important;
		width: 100% !important;
		min-height: 48px;
		padding: 12px 16px !important;
		box-sizing: border-box;
		border-bottom: 1px solid #d4d4d4;
		text-align: left;
	}
	#nav ul.sf-menu.nc-offen ul {
		display: block !important;
		position: static !important;
		visibility: visible !important;
		width: 100% !important;
	}
}

/* ---------- Notfallkasten (Seite „Notfall & Erste Hilfe“) ---------- */
/* Kontraste: Weiß auf #0052a4 = 7,4:1 · Weiß auf #b00020 = 6,9:1 · #333 auf #fff5f5 = 12:1 */
#content .nc-notfall {
	margin: 0 0 1.5em;
	padding: 1em 1.25em 1.25em;
	background: #fff5f5;
	border: 2px solid #b00020;
	border-radius: 6px;
}
#content .nc-notfall .nc-notfall-titel {
	margin: 0 0 .6em;
	font-size: 1.375rem !important;
	line-height: 1.3 !important;
	color: #b00020 !important;
}
#content .nc-notfall .nc-notfall-liste {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
#content .nc-notfall .nc-notfall-liste li {
	margin: 0 0 .75em !important;
	padding: 0 !important;
	list-style: none !important;
	background: none !important;
}
#content .nc-notfall .nc-notfall-liste li:last-child {
	margin-bottom: 0 !important;
}
#content .nc-notfall a.nc-anruf {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .15em .6em;
	min-height: 48px;
	padding: .6em 1em;
	box-sizing: border-box;
	color: #fff !important;
	background: #0052a4;
	border-radius: 4px;
	font-weight: 700;
	font-size: 1rem !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
}
#content .nc-notfall a.nc-anruf:hover,
#content .nc-notfall a.nc-anruf:focus {
	background: #002b58;
	color: #fff !important;
}
#content .nc-notfall a.nc-anruf-notruf {
	background: #b00020;
}
#content .nc-notfall a.nc-anruf-notruf:hover,
#content .nc-notfall a.nc-anruf-notruf:focus {
	background: #7f0017;
}
#content .nc-notfall .nc-anruf-nummer {
	font-size: 1.375rem;
	letter-spacing: .02em;
}
#content .nc-notfall .nc-anruf-info {
	display: block;
	margin-top: .3em;
	font-size: 0.9375rem;
	color: #333;
}
/* Anruf-Links in Überschriften der Seitenleiste nicht unterstreichen, aber als Link erkennbar lassen */
.suf-widget h2 a[href^="tel:"] {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- Terminseite ---------- */
#content .nc-termin h2 {
	margin: 1.2em 0 .5em;
	font-size: 1.375rem !important;
	line-height: 1.3 !important;
	color: #002b58 !important;
}
#content .nc-termin h2:first-child {
	margin-top: .4em;
}
#content .nc-termin h3 {
	margin: 1.2em 0 .4em;
	font-size: 1.125rem !important;
	color: #002b58 !important;
}
#content .nc-termin a.nc-anruf,
#content .nc-termin a.nc-knopf {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .15em .6em;
	min-height: 48px;
	max-width: 100%;
	padding: .6em 1.2em;
	box-sizing: border-box;
	color: #fff !important;
	background: #0052a4;
	border-radius: 4px;
	font-weight: 700;
	font-size: 1.0625rem !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
}
#content .nc-termin a.nc-anruf:hover,
#content .nc-termin a.nc-anruf:focus,
#content .nc-termin a.nc-knopf:hover,
#content .nc-termin a.nc-knopf:focus {
	background: #002b58;
	color: #fff !important;
}
#content .nc-termin .nc-anruf-nummer {
	font-size: 1.375rem;
}

/* ---------- Fußzeile: „Betreut von“ mit NC-Logo ---------- */
#cred td.cred-right {
	vertical-align: middle;
	white-space: nowrap;
}
#cred a.nc-betreuung {
	display: inline-block;
	vertical-align: middle;
	padding: 2px;
	text-decoration: none;
}
#cred a.nc-betreuung img {
	display: block;
	width: auto;
	height: 40px;
}
