/*
Theme Name: Praxis Glauchau
Theme URI: https://www.praxis-glauchau.de/
Description: Eigenes, schlankes Theme der Gemeinschaftspraxis Dipl.-Med. Schlotter & Dr. med. Sipply. Originalgetreue Nachbildung des bisherigen Oxygen-Layouts ohne Page-Builder.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: praxis-glauchau
Update URI: false
*/

/* ---------- Schriften (lokal, SIL OFL) ---------- */
@font-face { font-family: "Lato"; font-style: normal; font-weight: 300; font-display: swap; src: url(assets/fonts/lato-latin-300-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 300; font-display: swap; src: url(assets/fonts/lato-latin-ext-300-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/lato-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/lato-latin-ext-400-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lato"; font-style: italic; font-weight: 400; font-display: swap; src: url(assets/fonts/lato-latin-400-italic.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 700; font-display: swap; src: url(assets/fonts/lato-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 700; font-display: swap; src: url(assets/fonts/lato-latin-ext-700-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lato"; font-style: italic; font-weight: 700; font-display: swap; src: url(assets/fonts/lato-latin-700-italic.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Design-Tokens (aus dem Oxygen-Layout uebernommen) ---------- */
:root {
	--pg-blue: #1b5a9f;
	--pg-yellow: #e7ac00;
	--pg-text: #404040;
	--pg-muted: #a2a2a2;
	--pg-topbar: #1e1e1e;
	--pg-light: #f6f6f6;
	--pg-border: #dbdbdb;
	--pg-container: 1120px;
	--pg-gutter: 20px;
	--pg-footer-h: 70px;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: "Lato", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 20px;
	line-height: 1.6;
	font-weight: 400;
	color: var(--pg-text);
	background: #fff;
	/* Platz fuer den fixierten Footer, damit kein Inhalt verdeckt wird */
	padding-bottom: var(--pg-footer-h);
}
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { font-family: "Lato", sans-serif; }
a { color: inherit; }
a[href^="tel"] { color: var(--pg-yellow); text-decoration: none; }
:focus-visible { outline: 3px solid var(--pg-yellow); outline-offset: 2px; }
.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip-path: none; height: auto; width: auto; margin: 0; z-index: 100000;
	left: 8px; top: 8px; padding: 12px 18px; background: #fff; color: #000; font-size: 16px;
}
.container {
	width: 100%;
	max-width: var(--pg-container);
	margin-inline: auto;
	padding-inline: var(--pg-gutter);
}

/* ---------- Kopfleiste ---------- */
.topbar {
	background: var(--pg-topbar);
	color: var(--pg-muted);
	font-size: 16px;
	font-weight: 300;
	line-height: 1.6;
	min-height: 30px;
}
.topbar__list {
	display: flex;
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: var(--pg-container);
	height: 30px;
}
.topbar__item { padding: 0 20px; display: flex; align-items: center; white-space: nowrap; }
.topbar__item:nth-child(1), .topbar__item:nth-child(2) { width: 15%; }
.topbar__item:nth-child(3) { width: 23%; }
.topbar__item:nth-child(4) { width: 47%; }
.topbar a { color: inherit; text-decoration: none; }
.topbar a:hover { text-decoration: underline; }

/* ---------- Header / Navigation ---------- */
.site-header { position: relative; text-align: center; }
.site-header__inner { display: flex; align-items: flex-start; }
.site-header__brand { width: 43.75%; padding: 0 20px; display: flex; }
.site-header__nav { width: 56.25%; padding: 0 20px; display: flex; justify-content: flex-end; }
.site-logo { display: block; margin: 10px 0 0 18.6%; width: 98px; line-height: 0; }
.site-header--page .site-header__brand { padding: 0; }
.site-logo img { width: 98px; height: auto; display: block; }

.main-nav__list { display: flex; list-style: none; margin: 0; padding: 0; }
.main-nav__list a {
	display: flex; align-items: center;
	padding: 12px 18px;
	font-size: 14px; line-height: 1.6; font-weight: 700;
	letter-spacing: 1px; text-transform: uppercase; text-decoration: none;
	color: var(--pg-muted);
	border-top: 2px solid transparent;
	padding-top: 10px;
	transition: color .2s ease-in-out, border-color .2s ease-in-out, background-color .2s ease-in-out;
	-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.main-nav__list a:hover, .main-nav__list a:focus-visible,
.main-nav__list .current-menu-item > a, .main-nav__list .current-menu-parent > a,
.main-nav__list .current_page_parent > a, .main-nav__list .current-post-parent > a {
	color: #000; border-top-color: currentColor;
}
.main-nav__list a:hover { background-color: rgba(255, 255, 255, .1); }
.nav-toggle {
	display: none;
	background: none; border: 0; padding: 0; cursor: pointer;
	width: 18px; height: 18px;
	color: var(--pg-muted);
}
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after {
	display: block; width: 100%; height: 2px; border-radius: 2px; background: currentColor; content: ""; position: relative;
}
.nav-toggle__bars { margin: 2px 0; }
.nav-toggle__bars::before { position: absolute; top: -6px; }
.nav-toggle__bars::after { position: absolute; top: 6px; }

/* Unterseiten: weisser Header mit Linie */
.site-header--page { border-bottom: 1px solid var(--pg-border); }
.site-header--page .site-header__inner {
	max-width: var(--pg-container); margin: 0 auto; padding: 0 20px 19px;
}
.site-header--page .site-header__nav { margin-top: 20px; padding-right: 55px; }

/* Startseite: Hero */
.site-header--hero {
	background-color: #6b6b6b;
	background-image: linear-gradient(rgba(107, 107, 107, .24), rgba(107, 107, 107, .24)), var(--pg-hero-image, none);
	/* wie im Original: Viewport-fuellend, oben links ausgerichtet, fixiert */
	background-size: cover;
	background-position: 0 0;
	background-attachment: fixed;
	font-weight: 700;
}
.site-header--hero .site-header__wrap { max-width: var(--pg-container); margin: 0 auto; padding: 0 20px 126px; }
.site-header--hero .site-header__inner { padding: 0; height: 167px; }
.site-header--hero .site-header__brand { visibility: hidden; height: 1px; }
.site-header--hero .site-header__nav { margin-top: 40px; padding-right: 66px; }
.site-header--hero .main-nav__list a { color: #fff; }
.site-header--hero .main-nav__list a:hover, .site-header--hero .main-nav__list .current-menu-item > a { color: #fff; }
.site-header--hero .nav-toggle { color: #fff; width: 30px; height: 30px; }
.site-header--hero .nav-toggle__bars, .site-header--hero .nav-toggle__bars::before, .site-header--hero .nav-toggle__bars::after { height: 4px; }
.site-header--hero .nav-toggle__bars::before { top: -10px; }
.site-header--hero .nav-toggle__bars::after { top: 10px; }
.hero-logo { display: block; margin: 36px auto 0; height: 260px; width: auto; max-width: 100%; object-fit: contain; }

/* ---------- Inhalt ---------- */
.site-main { display: block; }
.content-area { max-width: var(--pg-container); margin: 0 auto; padding: 5px 20px 76px; }
.entry-title { font-size: 40px; line-height: 1.6; font-weight: 700; text-align: center; margin: 0; }
.entry-content { padding-top: 30px; font-size: 18px; font-weight: 300; line-height: 1.6; text-align: justify; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content strong, .entry-content b { font-weight: 700; }
/* Ueberschriften im Inhalt ohne Aussenabstand (wie im Oxygen-Reset des Originals) */
.entry-content h1, .post-list__content h1 { font-size: 2em; margin: 0; }
.entry-content h2, .post-list__content h2 { font-size: 1.5em; margin: 0; }
.entry-content h3, .entry-content h4, .post-list__content h3, .post-list__content h4 { margin: 0; }
.entry-content p { margin: 0 0 1em; }
.privacy-policy .entry-content h2 { margin: 1.6em 0 .5em; font-size: 1.35em; line-height: 1.3; text-align: left; }
.privacy-policy .entry-content h3 { margin: 1.2em 0 .4em; font-size: 1.1em; line-height: 1.3; text-align: left; }
.privacy-policy .entry-content ul { margin: 0 0 1em; padding-left: 1.4em; }
.privacy-policy .entry-content { text-align: left; }
.entry-content a:not([href^="tel"]) { color: #0000ee; }
.has-text-align-center { text-align: center; }

/* Tabelle (vorher TablePress-Standard) */
.wp-block-table { margin: 0 0 18px; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; border-spacing: 0; text-align: left; }
.wp-block-table table.has-fixed-layout { table-layout: auto; }
.wp-block-table td, .wp-block-table th { padding: 8px; border: 0; vertical-align: top; text-align: left; }
.wp-block-table tbody td { border-top: 1px solid #ddd; }
.wp-block-table tbody tr:first-child td { border-top: 0; }
.wp-block-table tbody tr:nth-child(odd) td { background-color: #f9f9f9; }
.wp-block-table tbody tr:nth-child(even) td { background-color: #fff; }
.wp-block-table tbody tr:hover td { background-color: #f3f3f3; }

/* ---------- Startseite: Sektionen ---------- */
.home .content-area { max-width: none; padding: 0; }
.home .entry-content { padding: 0; font-size: 20px; font-weight: 400; text-align: left; }
.home .entry-content > .wp-block-group { margin: 0; }
.section { padding: 75px var(--pg-gutter) 36px; display: flow-root; }
.section > * { max-width: calc(var(--pg-container) - 2 * var(--pg-gutter)); margin-inline: auto; }
.has-hellgrau-background-color { background-color: var(--pg-light); }
.entry-content .section-title { font-size: 30px; line-height: 1.6; font-weight: 700; margin: 0 auto; text-align: center; }
.entry-content .section-lead { font-size: 16px; font-weight: 300; text-align: center; margin: 0 auto 15px; }
.section--leistungen { padding-bottom: 36px; }
.leistungen-liste {
	list-style: none; padding: 0; margin: 0 auto;
	display: grid; grid-template-columns: repeat(3, 1fr);
}
.leistungen-liste li { padding: 20px; text-align: center; }
.section--sprechzeiten { padding-top: 52px; padding-bottom: 0; }
.entry-content .section--sprechzeiten .section-title, .entry-content .section--anschrift .section-title { font-size: 24px; font-weight: 700; text-align: left; margin-bottom: 15px; }
.section--sprechzeiten .wp-block-table { margin-bottom: 18px; font-size: 20px; font-weight: 400; }
.section--anschrift { padding-top: 59px; padding-bottom: 75px; }
.entry-content .section--anschrift .section-title { margin-bottom: 10px; }
.section--anschrift p { margin: 0 0 42px; }

/* Karte mit Zwei-Klick-Loesung */
.praxis-karte { position: relative; height: 350px; width: 100%; background: #e5e3df; }
.praxis-karte iframe { display: block; width: 100%; height: 100%; border: 0; }
.praxis-karte__consent {
	position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 12px; padding: 20px; text-align: center; font-size: 16px; font-weight: 300;
	background: linear-gradient(rgba(246,246,246,.85), rgba(246,246,246,.85)), repeating-linear-gradient(45deg, #e9e9e9 0 12px, #e1e1e1 12px 24px);
}
.praxis-karte__consent p { margin: 0; max-width: 560px; }
.praxis-karte__button {
	font: inherit; font-size: 16px; font-weight: 700; color: #fff; background: var(--pg-blue);
	border: 0; border-radius: 3px; padding: .75em 1.5em; cursor: pointer;
}
.praxis-karte__button:hover { background: #154a84; }
.praxis-karte__link { color: var(--pg-blue); }

/* ---------- Beitragsliste (Aktuelles, Suche) ---------- */
.post-list { color: #000; font-weight: 300; text-align: justify; }
.post-list__item { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 6em; }
.post-list__title { font-size: 30px; line-height: 1.2; font-weight: 400; color: #000; margin: 0; }
.post-list__title a { color: #000; }
.post-list__meta { margin-top: .5em; font-size: 16px; }
.post-list__content { margin: 1em 0; }
.post-list__content p { margin: 0; }
.post-list__content strong { font-weight: 700; }
.post-list__content a { color: #0000ee; }
.read-more {
	font-size: 16px; color: #fff; background: #000; text-decoration: none;
	padding: .75em 1.5em; line-height: 1; border-radius: 3px; display: inline-block;
}
.read-more:hover, .read-more:focus-visible { color: #fff; background: #222; }
.pagination { text-align: center; font-size: 16px; }
.pagination .page-numbers { padding: 12px; }
.archive-title { font-size: 40px; font-weight: 700; text-align: center; margin: 0 0 .5em; }
.no-results { text-align: center; font-size: 18px; font-weight: 300; }

/* ---------- Footer (fixiert wie im Original) ---------- */
.site-footer {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
	height: var(--pg-footer-h);
	background: var(--pg-blue); color: #fff;
	font-size: 16px; font-weight: 300; line-height: .8; text-align: center;
	display: flex; align-items: flex-start; justify-content: center;
	/* etwas hoeher als im Original, damit die Pflichtlinks Datenschutz/Cookie-Einstellungen Platz haben */
	padding: 9px 20px 0;
}
.site-footer p { margin: 0; }
.site-footer__line { display: block; }
.site-footer__line + .site-footer__line { margin-top: 12.8px; }
.site-footer a { color: #fff; }
.site-footer .site-footer__links { margin-top: 6px; font-size: 13px; line-height: 1; }
.site-footer__button, .praxis-karte__inline {
	font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline;
}
.praxis-karte__inline { color: var(--pg-blue); }

/* ---------- Cookie-/Einwilligungs-Banner ---------- */
.consent {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 2000;
	background: #fff; color: var(--pg-text);
	border-top: 4px solid var(--pg-blue);
	box-shadow: 0 -8px 30px rgba(0, 0, 0, .18);
	font-size: 16px; font-weight: 300; line-height: 1.5;
	max-height: 90vh; overflow: auto;
}
.consent[hidden] { display: none; }
.consent:focus { outline: none; }
.consent__inner { max-width: var(--pg-container); margin: 0 auto; padding: 20px; }
.consent__title { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.consent__text { margin: 0 0 12px; }
.consent__text a { color: var(--pg-blue); }
.consent__options { border: 0; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.consent__option { display: flex; gap: 8px; align-items: baseline; cursor: pointer; }
.consent__option input { width: 18px; height: 18px; accent-color: var(--pg-blue); }
.consent__buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.consent__btn {
	font: inherit; font-weight: 700; font-size: 16px; line-height: 1.2;
	color: #fff; background: var(--pg-blue); border: 2px solid var(--pg-blue);
	border-radius: 3px; padding: .7em 1.4em; cursor: pointer;
}
.consent__btn:hover { background: #154a84; border-color: #154a84; }
.consent__btn--secondary { color: var(--pg-blue); background: #fff; }
.consent__btn--secondary:hover { color: #fff; }
@media (max-width: 479px) {
	.consent__btn { flex: 1 1 100%; }
}

/* ---------- Breakpoints wie im Original (1120 / 991 / 767 / 479) ---------- */
@media (max-width: 1120px) {
	.site-header--hero .site-header__wrap { padding-bottom: 0; }
	.hero-logo { margin: 80px auto 38px; }
}
@media (max-width: 991px) {
	.topbar__list { display: none; }
	.site-header__inner { flex-direction: column; }
	.site-header__brand, .site-header__nav { width: 100%; }
	.site-header--page .site-header__brand { padding: 0; }
	.site-logo { margin-left: 21.3%; width: 105px; }
	.site-logo img { width: 105px; }
	.site-header--page .site-header__nav, .site-header--hero .site-header__nav { justify-content: flex-start; padding: 12px; margin-top: 0; }
	.site-header--page .site-header__nav { margin: 20px 0; padding: 12px; }
	.site-header--hero .site-header__inner { height: 108px; }
	.site-header--hero .site-header__nav { margin: 20px 0 0 20px; padding: 12px; }
	.site-header--hero .nav-toggle { margin: 7px 0; }
	.site-header--hero .site-header__brand { display: none; }
	.nav-toggle { display: block; }
	.main-nav__list { display: none; }
	.main-nav.is-open {
		position: fixed; inset: 0; z-index: 1000; background: #fff;
		display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: auto;
	}
	.site-header--hero .main-nav.is-open { background: var(--pg-blue); }
	.main-nav.is-open .main-nav__list { display: flex; flex-direction: column; width: 100%; padding: 2em 0; }
	.main-nav.is-open .main-nav__list a { justify-content: center; border: 0; padding: 9px 18px; background: transparent; }
	.main-nav.is-open .nav-toggle { position: absolute; top: 20px; right: 20px; }
	.main-nav.is-open .nav-toggle__bars { background: transparent; }
	.main-nav.is-open .nav-toggle__bars::before { top: 0; transform: rotate(45deg); }
	.main-nav.is-open .nav-toggle__bars::after { top: 0; transform: rotate(-45deg); }
	.hero-logo { margin: 40px auto 61px; }
	.leistungen-liste { grid-template-columns: 1fr; }
	.section--leistungen { padding-top: 43px; padding-bottom: 24px; }
}
@media (max-width: 767px) {
	.section--leistungen { padding-top: 26px; padding-bottom: 26px; }
	.section--anschrift { padding-top: 43px; }
	.hero-logo { height: auto; width: 100%; }
}
@media (max-width: 479px) {
	.section--leistungen { padding-top: 15px; padding-bottom: 22px; }
	.entry-content .section--leistungen .section-title { font-size: 26px; }
	.section--anschrift { padding-top: 42px; }
	.hero-logo { margin-top: 0; }
	.site-logo { margin-left: 0; width: 98px; }
	.site-header--page .site-header__inner { padding-left: 0; }
	.site-header--page .site-header__nav { padding-left: 32px; }
	.site-footer { padding-top: 6px; }
	.wp-block-table td { hyphens: auto; -webkit-hyphens: auto; }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
	.site-header--hero { background-attachment: scroll; }
}
@media print {
	.topbar, .main-nav, .site-footer, .praxis-karte { display: none; }
	body { padding: 0; }
}
.hero-title { margin: 0; line-height: 0; }
