/*
Theme Name: Gsundheits-Praxis
Theme URI: https://www.gsundheits-praxis.ch
Author: Maria Martin
Description: Block-Theme für die Gsundheits-Praxis Maria Martin mit dem hellen Layout, Praxisgrün und Methoden-Slider der bisherigen Website. Ohne externe Schriften, Tracking oder Page-Builder.
Version: 1.2.37
Requires at least: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gsundheits-praxis
*/

:root {
	--gp-radius: 2px;
}

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; overflow-x: clip; }
/* ---------- Typografie und Grundfarben (zentral an einer Stelle) ----------
   Schrift: Open Sans wie auf der bisherigen Seite (in WordPress unter Design > Editor > Stile > Typografie installieren,
   dann wird sie lokal vom eigenen Server geladen). Fehlt sie, greift eine Systemschrift mit Light-Schnitt. */
:root {
	--gp-font: "Open Sans", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
	--gp-green: #98C65F;
	--gp-link: #4F7A23;
	--gp-text: #262626;
	--gp-bg: #F4F4F4;
	--gp-band: #E7ECD9;
	--gp-box: #DBE5CC; /* Grün hinter EMR/ASCA auf der alten Seite */
}
:root body[class] { background: var(--gp-bg); }
body .wp-site-blocks {
	font-family: var(--gp-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.65;
	color: var(--gp-text);
}
body .wp-site-blocks :is(h1, h2, h3, h4, h5, h6, .wp-block-heading, .wp-block-post-title) {
	font-family: var(--gp-font);
	font-weight: 300;
	line-height: 1.25;
	letter-spacing: -.005em;
}
body .wp-site-blocks :is(h1, h2, .wp-block-post-title) { color: var(--gp-green); }
body .wp-site-blocks :is(h3, h4) { color: var(--gp-text); }
body .wp-site-blocks .wp-block-navigation,
body .wp-site-blocks .wp-block-button__link,
body .wp-site-blocks :is(input, textarea, select, button) { font-family: var(--gp-font); }
img { height: auto; }
strong, b { font-weight: 600; }

:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--gp-link);
	outline-offset: 3px;
}

/* ---------- Kopfbereich ---------- */
.gp-header-top { padding-block: 1.75rem; gap: 1.5rem 2.5rem; }
.gp-header { background: var(--gp-bg); }
.gp-brand { gap: 1.5rem; align-items: center; flex: 1 1 32rem; min-width: 0; }
.gp-brand .wp-block-site-logo { flex: 0 0 auto; }
.gp-brand .wp-block-site-logo img { max-width: 190px; height: auto; }
.gp-brand .gp-site-title {
	margin: 0;
	font-size: clamp(1.9rem, 3.2vw, 2.9rem);
	font-weight: 300;
	line-height: 1.1;
	color: var(--gp-green);
}
.gp-brand .gp-site-title a { color: inherit; text-decoration: none; }
.gp-brand .gp-site-tagline {
	margin: .7rem 0 0;
	font-size: clamp(1.05rem, 1.6vw, 1.4rem);
	font-weight: 400;
	color: var(--gp-text);
}

.gp-contact { text-align: right; flex: 0 0 auto; margin-left: auto; }
.gp-contact p { margin: 0 0 .5rem; line-height: 1.5; }
.gp-contact .gp-contact-addr { font-weight: 400; color: var(--wp--preset--color--ink); }
.gp-contact .gp-contact-links { font-weight: 400; line-height: 1.65; }
.gp-contact .gp-contact-links a { color: var(--wp--preset--color--primary); text-decoration: none; }
.gp-contact .gp-contact-links a:hover { color: var(--gp-link); }
.gp-contact-buttons { margin-top: .75rem; gap: .9rem; }

/* Menüband */
.gp-menuband { background: transparent; }
.gp-menuband .wp-block-navigation {
	--navigation-layout-gap: 2.25rem;
	background: var(--gp-band);
	max-width: 74rem;
	margin-inline: auto;
	padding-inline: .75rem;
}
.gp-menuband .wp-block-navigation-item__content { padding-block: 1rem; }
.gp-menuband .wp-block-navigation .current-menu-item > a,
.gp-menuband .wp-block-navigation a[aria-current="page"] { color: var(--wp--preset--color--primary); }
.wp-block-navigation .wp-block-navigation__submenu-container {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gp-radius);
	padding: .4rem;
	min-width: 19rem;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem; }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mist); }
@media (min-width: 601px) {
	.gp-menuband .wp-block-navigation__container { flex-wrap: wrap; row-gap: 0; justify-content: center; }
}
@media (max-width: 1100px) {
	.gp-contact { text-align: left; width: 100%; margin-left: 0; }
	.gp-contact-buttons.is-vertical { flex-direction: row; align-items: center; justify-content: flex-start; flex-wrap: wrap; }
}
@media (max-width: 1000px) {
	.gp-menuband .wp-block-navigation { --navigation-layout-gap: 1rem; font-size: .95rem; }
}
@media (max-width: 782px) {
	.gp-header-top { padding-block: 1.25rem; }
	.gp-brand { flex-wrap: wrap; }
	.gp-brand .wp-block-site-logo img { max-width: 110px; }
	.gp-brand .gp-site-title { font-size: 2rem; }
}

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .15s ease; }
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary-dark);
	border: 2px solid var(--wp--preset--color--primary);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: #fff; }

/* ---------- Inhalt ---------- */
.gp-sub { margin: -.25rem 0 0; font-size: 1.4rem; font-weight: 400; color: var(--wp--preset--color--ink); }
.wp-block-separator { border-width: 0 0 1px; opacity: .65; margin-block: 1.25rem; }
.gp-photo { margin: 0; }
.gp-photo img { width: 100%; border-radius: 2px; }
.gp-brand-logo { display: block; flex: 0 0 auto; }
.gp-brand-logo img { display: block; width: 5rem; height: auto; }
/* leere Bild-Platzhalter nur im Frontend verstecken, im Editor bleiben sie sichtbar */
body:not(.editor-styles-wrapper) figure.gp-photo:not(:has(img[src])),
body:not(.editor-styles-wrapper) figure.gp-card-img:not(:has(img[src])) { display: none; }

.gp-badges { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.gp-badges a {
	display: inline-block;
	padding: .3rem .9rem;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 99px;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .06em;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.gp-badges a:hover { background: var(--wp--preset--color--mist); }
.gp-badges a:has(img) { display: flex; align-items: center; justify-content: center; min-width: 6rem; min-height: 3.5rem; padding: .4rem .65rem; border-radius: 2px; background: #fff; }
.gp-badges a img { display: block; width: auto; max-width: 7.5rem; height: 2rem; object-fit: contain; }
.wp-block-heading a { text-decoration: none; }
.wp-block-heading a:hover { text-decoration: underline; }

/* Methoden-Karten */
.gp-cards { gap: 1.5rem; }
.gp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	height: 100%;
	min-width: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0 .5rem;
}
.gp-card-img { margin: 0 0 .25rem; }
.gp-card-img img { display: block; }
.gp-card-img img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 2px; }
.gp-card h3 { margin: 0; font-size: 1.125rem; font-weight: 400; line-height: 1.25; overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
.gp-card h3 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.gp-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* ganze Karte klickbar */
.editor-styles-wrapper .gp-card h3 a::after { display: none; }
.gp-card p { margin: 0; font-size: .95rem; }
.gp-card .gp-more { margin-top: auto; padding-top: .6rem; font-weight: 600; color: var(--gp-link); }
.gp-card .gp-more::after { content: " →"; }

.gp-find { background: transparent; }

/* ---------- Unterseiten ---------- */
.gp-page-head { padding-bottom: 0 !important; }
.gp-aside {
	position: sticky;
	top: 1.5rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gp-radius);
	padding: 1.5rem;
}
body .wp-site-blocks .gp-aside h2 { font-size: 1.4rem; margin: 0 0 .5rem; }
.gp-aside p { margin: 0 0 .5rem; }
.wp-block-post-content :where(ul, ol) { padding-left: 1.25rem; }
.wp-block-post-content li { margin-block: .25rem; }
.wp-block-post-featured-image img { border-radius: 2px; }

/* ---------- Fussbereich ---------- */
.gp-footer { background: var(--gp-bg); color: var(--wp--preset--color--ink); }
body .wp-site-blocks .gp-footer h2 { color: var(--wp--preset--color--ink); font-size: 1rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .75rem; }
.gp-footer p { margin: 0 0 .4rem; }
.gp-footer a { color: var(--gp-link); }
.gp-footer .gp-badges a { color: var(--wp--preset--color--ink); }
.gp-footer-legal { border-top: 1px solid var(--wp--preset--color--line); font-size: .8125rem; color: var(--wp--preset--color--muted); }
.gp-footer-legal p { margin: 0; }

/* ---------- Formulare ---------- */
input[type="search"], input[type="text"], input[type="email"], input[type="tel"], textarea, select {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--gp-radius);
	padding: .6rem .8rem;
	background: #fff;
	font: inherit;
}

/* ---------- Verbesserungen 1.2 ---------- */

/* Startseite: Ohne Foto nutzt der Text die volle Breite statt eine leere Spalte zu lassen */
.wp-block-column:has(> figure.gp-photo:not(:has(img[src]))) { display: none; }
body:not(.editor-styles-wrapper) .gp-intro:not(:has(figure.gp-photo img[src])) > .wp-block-column:first-child { flex-basis: 100% !important; max-width: 46rem; }
.wp-block-column > .gp-photo img { aspect-ratio: 4 / 3; object-fit: cover; }

/* Unterseiten: dünne Linie unter dem Titel wie auf der alten Seite */
.gp-page-head .wp-block-post-title { padding-bottom: .75rem; border-bottom: 1px solid #c9ceba; }

/* Abschnitte: etwas mehr Luft zwischen Überschrift und Inhalt */
.wp-site-blocks main h2.wp-block-heading { margin-bottom: 1.25rem; }

/* Fliesstext in breiten Spalten nicht zu lang ziehen */
.wp-block-post-content p, .wp-block-post-content li { max-width: 68ch; }

/* Methoden-Karten: Titel und Text sauber trennen, Link-Pfeil rechtsbündig */
.gp-card .gp-more { display: flex; justify-content: space-between; }
.gp-card .gp-more::after { content: "→"; }

/* Tablet: Menü in einer Zeile */
@media (max-width: 1000px) {
	.gp-menuband .wp-block-navigation__container { column-gap: .9rem; }
	.gp-menuband .wp-block-navigation-item__content { font-size: .92rem; }
}

/* Handy: Kopfbereich deutlich kompakter */
@media (max-width: 782px) {
	.gp-header-top { gap: 1rem; }
	.gp-brand { flex-wrap: nowrap; gap: 1rem; }
	.gp-brand .wp-block-site-logo img { max-width: 72px; }
	.gp-brand .gp-site-title { font-size: 1.55rem; }
	.gp-brand .gp-site-tagline { display: none; }
	.gp-contact .gp-contact-addr { display: none; }
	.gp-contact .gp-contact-links { margin-bottom: .75rem; }
	.gp-contact-buttons.is-vertical { flex-direction: row; flex-wrap: wrap; gap: .6rem; }
	.gp-contact-buttons .wp-block-button__link { padding: .55rem 1rem; font-size: .95rem; }
}

/* Menüfarben gegen im Editor gespeicherte Stile absichern */
body .wp-site-blocks .gp-menuband .wp-block-navigation :is(a, .wp-block-navigation-item__content) { color: var(--gp-text); }
body .wp-site-blocks .gp-menuband .wp-block-navigation :is(a, .wp-block-navigation-item__content):hover,
body .wp-site-blocks .gp-menuband .wp-block-navigation :is(a[aria-current="page"], .current-menu-item > a) { color: var(--gp-link); }

/* Medienlinks wie auf der bisherigen Joomla-Seite: einfache Textlinks. */
.gp-press {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}
.gp-press .gp-press-title { margin: 0; font-size: 1.15rem; font-weight: 400; line-height: 1.45; }
.gp-press .gp-press-title a { color: var(--gp-link); text-decoration: underline; }
.gp-press .gp-press-meta { margin: .25rem 0 0; font-size: .875rem; color: var(--wp--preset--color--muted); }
.gp-media-links h3 { margin: .4rem 0; font-size: 1.15rem; font-weight: 400; }
.gp-media-links h3 a { color: var(--gp-link); text-decoration: underline; }
.wp-block-columns:has(.gp-press) > .wp-block-column { flex-basis: 0; flex-grow: 1; }
.wp-block-columns:has(.gp-press) { margin-top: .5rem; }
.gp-map { margin: 2rem 0 0; }
.gp-map iframe { display: block; width: 100%; min-height: 22rem; border: 0; }

/* Startseiten-Karussell wie der Methoden-Slider der Joomla-Seite. */
.gp-methoden-slider .gp-cards[data-gp-scroller] {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
}
.gp-methoden-slider.is-enhanced .gp-cards[data-gp-scroller] { scrollbar-width: none; }
.gp-methoden-slider.is-enhanced .gp-cards[data-gp-scroller]::-webkit-scrollbar { display: none; }
.gp-methoden-slider .gp-card {
	flex: 0 0 calc((100% - 4.5rem) / 4);
	min-width: 0;
	scroll-snap-align: start;
}
.gp-slider-controls { display: none; }
.gp-methoden-slider.is-enhanced .gp-slider-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	margin-top: 1.25rem;
}
.gp-slider-arrow {
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 1px solid var(--gp-link);
	border-radius: 50%;
	background: transparent;
	color: var(--gp-link);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}
.gp-slider-arrow:disabled { opacity: .4; cursor: default; }
.gp-slider-dot {
	width: .65rem;
	height: .65rem;
	padding: 0;
	border: 1px solid var(--gp-link);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}
.gp-slider-dot[aria-current="true"] { background: var(--gp-green); border-color: var(--gp-green); }
@media (max-width: 1000px) {
	.gp-methoden-slider .gp-card { flex-basis: calc((100% - 1.5rem) / 2); }
}
@media (max-width: 600px) {
	.gp-methoden-slider .gp-card { flex-basis: 84%; }
}

/* Kein Spalt zwischen "So finden Sie uns" und Fuss */
.wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0; }
.gp-find { margin-block-end: 0; }


/* ================= Anpassungen 1.2.8 ================= */

/* Seite als zentrierter Rahmen (wie das "boxed"-Layout der alten Seite, 1200 px) mit feinem Schatten.
   Farben bleiben unverändert: links/rechts und Mitte haben dieselben Töne, der Schatten hebt die Mitte ab. */
body .wp-site-blocks {
	max-width: 1200px;
	margin-inline: auto;
	background: var(--gp-bg);
	box-shadow: 0 0 22px rgba(38, 38, 38, .12), 0 0 3px rgba(38, 38, 38, .10);
}
/* Menüband über die ganze Rahmenbreite wie früher */
.gp-menuband .wp-block-navigation { max-width: none; margin-inline: 0; }

/* Schrift wie Original: Fliesstext in Open Sans Light, Menü/Kontakt/Buttons normal bzw. fett */
body .wp-site-blocks :is(.wp-block-post-content, .gp-intro, .gp-card) p { font-weight: 300; }
body .wp-site-blocks .gp-card h3 { font-weight: 400; }

/* ---- Zu lesen und zu sehen ---- */
.gp-media-band { background: var(--gp-box); }
body .wp-site-blocks .gp-media-band :is(h2, .wp-block-heading) { color: var(--gp-link); margin: 0 0 1.5rem; }
.gp-media-band .wp-block-columns { margin: 0; gap: 1.5rem; align-items: stretch; }
.wp-block-columns:has(.gp-press) > .wp-block-column { flex-basis: 0; flex-grow: 1; display: flex; }
.gp-press {
	position: relative;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: .35rem;
	padding: 1.5rem 1.75rem;
	background: #fff;
	border: 0;
	border-radius: 10px;
	box-shadow: 0 1px 2px rgba(38, 38, 38, .08), 0 4px 14px rgba(38, 38, 38, .06);
	transition: box-shadow .15s ease, transform .15s ease;
}
.gp-press:hover { box-shadow: 0 0 0 3px var(--gp-green), 0 4px 14px rgba(38, 38, 38, .08); }
.gp-press > * { margin: 0; }
.gp-press .gp-press-label { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gp-link); }
.gp-press .gp-press-title { font-size: 1.15rem; font-weight: 400; line-height: 1.45; }
.gp-press .gp-press-title a { color: var(--gp-text); text-decoration: none; }
.gp-press .gp-press-title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.editor-styles-wrapper .gp-press .gp-press-title a::after { display: none; }
.gp-press .gp-press-meta { margin-top: auto; padding-top: .6rem; font-size: .875rem; font-weight: 400; color: var(--wp--preset--color--muted); }
.gp-press .gp-press-meta::after { content: " →"; color: var(--gp-link); font-weight: 700; }
@media (max-width: 781px) { .gp-media-band .wp-block-columns { gap: 1rem; } .wp-block-columns:has(.gp-press) > .wp-block-column { flex-basis: 100%; } }

/* ---- Fussbereich: grün wie Menüband (inkl. Zeile "Fotos") ---- */
body .wp-site-blocks .gp-footer { background: var(--gp-box); }
.gp-footer-legal { border-top-color: rgba(79, 122, 35, .30); }

/* Karte/Karussell unten: Abschnitt ohne Spalt zum Fuss */
.gp-find { background: transparent; }

/* Karussell: alle Karten bündig auf gleicher Höhe, gleiche Bildgrösse */
.gp-methoden-slider .gp-cards > .gp-card { margin: 0; }
.gp-card .gp-more { font-weight: 600; }
.gp-methoden-slider .gp-card-img img { aspect-ratio: 1 / 1; object-fit: cover; }

/* ---- Methoden-Karten wie auf der alten Seite: weisse Karte, Bild oben randlos, feiner Schatten, grüner Button ---- */
.gp-card {
	gap: 0;
	padding: 0 0 1.5rem;
	background: #fff;
	border: 0;
	border-radius: 0;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .10);
}
.gp-card > * { margin-inline: 0; padding-inline: 1.5rem; }
.gp-card > .gp-card-img { padding: 0; margin: 0 0 1.25rem; }
.gp-card .gp-card-img img { border-radius: 0; }
body .wp-site-blocks .gp-card h3 { margin: 0 0 .6rem; font-size: 1.5rem; font-weight: 300; line-height: 1.2; color: #000; }
.gp-card h3 a { color: inherit; }
body .wp-site-blocks .gp-card p { font-size: .95rem; font-weight: 300; line-height: 1.7; color: #444; margin: 0 0 1rem; }
body .wp-site-blocks .gp-card p.gp-more {
	display: block;
	align-self: flex-start;
	margin: auto 0 0 1.5rem;
	padding: .45rem 1rem;
	background: var(--gp-green);
	color: #fff;
	font-size: 1rem;
	font-weight: 400;
	border-radius: 3px;
	transition: background-color .15s ease;
}
.gp-card:hover p.gp-more { background: var(--wp--preset--color--primary-dark); }
.gp-card .gp-more::after { content: none; }
.gp-card > .gp-more { padding-inline: 1rem; }
.gp-card:has(p.gp-more) { padding-bottom: 1.75rem; }

/* Karussell: 3 Karten, nur Punkte darunter (Pfeile bleiben per Tastatur/Wischen bedienbar) */
.gp-methoden-slider .gp-cards[data-gp-scroller] { gap: 2.4rem; padding: .25rem .25rem 1.25rem; }
.gp-methoden-slider .gp-card { flex-basis: calc((100% - 4.8rem) / 3); }
.gp-slider-arrow { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); opacity: 0; }
.gp-methoden-slider.is-enhanced .gp-slider-controls { gap: .75rem; margin-top: .75rem; }
.gp-slider-dot { width: .95rem; height: .95rem; border: 1px solid #9E9E9E; background: transparent; }
.gp-slider-dot[aria-current="true"] { background: #9E9E9E; border-color: #9E9E9E; }
@media (max-width: 1000px) { .gp-methoden-slider .gp-card { flex-basis: calc((100% - 2.4rem) / 2); } }
@media (max-width: 600px) { .gp-methoden-slider .gp-card { flex-basis: 84%; } .gp-methoden-slider .gp-cards[data-gp-scroller] { gap: 1.25rem; } }

/* gleiche Kartenhöhe im Karussell */
.gp-methoden-slider .gp-cards[data-gp-scroller] { align-items: stretch; }
.gp-methoden-slider .gp-card { height: auto; }


/* ---- 1.2.8b: Zu lesen und zu sehen ohne Farbband, Karten wie die Methoden-Karten ---- */
.gp-media-band, .gp-media { background: transparent; }
body .wp-site-blocks .gp-media :is(h2, .wp-block-heading) { margin: 0 0 1.5rem; }
.gp-media .wp-block-columns { margin: 0; gap: 2.4rem; align-items: stretch; }
.gp-press {
	padding: 1.5rem;
	border-radius: 0;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .10);
	gap: .5rem;
}
.gp-press:hover { box-shadow: 0 2px 10px rgba(0, 0, 0, .10); }
.gp-press .gp-press-title { font-size: 1.5rem; font-weight: 300; line-height: 1.25; }
.gp-press .gp-press-title a { color: #000; }
.gp-press .gp-press-meta { font-weight: 300; }
.gp-press .gp-press-title a:hover { text-decoration: underline; }
@media (max-width: 781px) { .gp-media .wp-block-columns { gap: 1.25rem; } }

/* Titel über Slider und Karte wie "Zu lesen und zu sehen"; Karte mit Abstand zum Fuss */
.gp-find .gp-map { margin: 0; }
body .wp-site-blocks main h2.wp-block-heading { margin-bottom: 1.5rem; }

/* ---- Footer: EMR/ASCA nur als Logo direkt auf dem Grün (weisser Logo-Hintergrund wird durchsichtig) ---- */
.gp-footer .gp-badges { gap: 2rem; margin-bottom: 1.5rem; flex-wrap: nowrap; align-items: center; }
.gp-footer .gp-badges a:has(img) {
	display: block;
	flex: 0 1 auto;
	width: auto;
	height: auto;
	min-width: 0;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.gp-footer .gp-badges a:has(img):hover { background: transparent; box-shadow: none; opacity: .8; }
.gp-footer .gp-badges a img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 2.9rem;
	object-fit: contain;
	mix-blend-mode: multiply;
}

/* ---- Menüleiste bleibt beim Scrollen oben stehen (sticky) ----
   Kopfbereich-Hüllen lösen sich auf, damit die Leiste über die ganze Seite haftet. */
.wp-site-blocks > header.wp-block-template-part, .wp-site-blocks > header.wp-block-template-part > .gp-header { display: contents; }
.gp-header-top { background: var(--gp-bg); }
body .wp-site-blocks .gp-menuband {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	background: var(--gp-band);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}

/* ---- 1.2.10: mehr Raum links/rechts wie auf der alten Seite, einheitliche Titel ---- */
:root { --gp-inset: 4.5rem; --gp-title: 2.25rem; }
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group[class*="gp-page"] { padding-inline: var(--gp-inset); }
.gp-footer { padding-inline: var(--gp-inset); }
.gp-header-top { padding-inline: 3.25rem; }
@media (max-width: 1000px) { :root { --gp-inset: 2.25rem; } .gp-header-top { padding-inline: 2.25rem; } }
@media (max-width: 600px) { :root { --gp-inset: 1.25rem; --gp-title: 1.9rem; } .gp-header-top { padding-inline: 1.25rem; } }

/* Alle Titel wie "Herzlich Willkommen" */
body .wp-site-blocks :is(main h1, main h2.wp-block-heading, main .wp-block-post-title) {
	font-size: var(--gp-title);
	font-weight: 300;
	line-height: 1.2;
	color: var(--gp-green);
	margin-block: 0 1.5rem;
}
body .wp-site-blocks main .gp-aside h2.wp-block-heading { font-size: 1.4rem; margin: 0 0 .5rem; }
/* Zwischentitel im Fliesstext bleiben kleiner als die Abschnittstitel */
body .wp-site-blocks main .wp-block-post-content h2.wp-block-heading { font-size: 1.7rem; margin-block: 1.75rem .75rem; }

/* Karte mit demselben feinen Schatten wie die Karten */
.gp-find .gp-map { box-shadow: 0 2px 10px rgba(0, 0, 0, .10); background: #fff; }
.gp-find .gp-map iframe { display: block; }

/* ---- 1.2.13: Methoden-Seite wie die alte Seite: Titel links, grüne Preise-Box rechts ---- */
.gp-aside {
	position: static;
	background: var(--gp-band);
	border: 0;
	border-radius: 0;
	padding: 1.9rem;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .10);
}
body .wp-site-blocks main .gp-aside h2.wp-block-heading { font-size: var(--gp-title); margin: 0 0 .25rem; }
.gp-aside .gp-aside-name { margin: 0; font-size: 1.5rem; font-weight: 400; line-height: 1.3; color: var(--gp-text); }
.gp-aside .wp-block-separator { margin-block: 1.25rem; border-color: #9aa08c; opacity: .8; }
.gp-aside p, .gp-aside li { font-weight: 300; line-height: 1.6; }
.gp-aside p { margin: 0 0 1rem; }
.gp-aside ul { margin: 0 0 1rem; padding-left: 1.5rem; }
.gp-aside li { margin-block: .35rem; }
.gp-aside a { color: var(--gp-link); }
.gp-prices { overflow-wrap: break-word; }
.wp-block-column > .gp-page-head { padding-top: 0; }

/* Mehr Luft zwischen Menüband und Inhalt (Foto/Titel nicht direkt unter dem Balken, wie auf der alten Seite) */
.wp-site-blocks > main { padding-top: 2.25rem; }

/* 1.2.16 – Schrift wie auf der alten Seite: Open Sans, 14px, hell (300), Zeilenhöhe 1.7 */
:root { --gp-title: 2.1rem; }
body .wp-site-blocks {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.7;
}
body .wp-site-blocks :is(h1, h2, h3, h4, h5, h6, .wp-block-heading, .wp-block-post-title) { letter-spacing: 0; line-height: 1.2; }
body .wp-site-blocks main h3.wp-block-heading { font-size: 20px; font-weight: 400; line-height: 1.4; }
body .wp-site-blocks main h4.wp-block-heading { font-size: 18px; color: #777; }
body .wp-site-blocks .gp-card p { font-size: 14px; line-height: 1.7; }
body .wp-site-blocks :is(.wp-block-post-content, .gp-aside, .gp-intro, .gp-footer) :is(p, li) { font-size: 14px; font-weight: 300; line-height: 1.7; }
body .wp-site-blocks .wp-block-navigation { font-size: 14px; font-weight: 400; }
strong, b { font-weight: 700; }

/* 1.2.17 – Startseiten-Einstieg: Verhältnis Text/Foto wie auf der alten Seite */
:root { --gp-inset: 4rem; }
@media (max-width: 600px) { :root { --gp-inset: 1.25rem; } }
body .wp-site-blocks .gp-intro { column-gap: 1.5rem !important; align-items: flex-start; }
body .wp-site-blocks .gp-intro h1.wp-block-heading { margin: 0 0 .3rem; }
body .wp-site-blocks .gp-intro p.gp-sub { font-size: 20px; font-weight: 400; line-height: 1.4; color: #000; margin: 0 0 1.1rem; }
body .wp-site-blocks .gp-intro .wp-block-separator { margin: 1.1rem 0; }
body .wp-site-blocks .gp-intro p { margin: 0 0 .9rem; }
body .wp-site-blocks .gp-intro .wp-block-buttons { margin-top: .5rem; margin-bottom: 0; }
body .wp-site-blocks .gp-intro figure.gp-photo { margin: 0; }
body .wp-site-blocks .gp-intro figure.gp-photo img { display: block; width: 100%; height: auto; }

/* 1.2.18 – Untermenü per Klick, ohne Pfeil */
body .wp-site-blocks .gp-menuband .wp-block-navigation__submenu-icon { display: none; }

/* 1.2.19 – Report/Interview-Titel gleich gross wie die Methoden-Kartentitel */
body .wp-site-blocks .gp-press .gp-press-title { font-size: 20px; font-weight: 400; line-height: 1.4; color: #000; }

/* 1.2.20 – Punkt zwischen den Hauptmenüpunkten (nicht im Handy-Menü) */
body .wp-site-blocks .gp-menuband .wp-block-navigation:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item + .wp-block-navigation-item::before {
	content: "•";
	color: var(--gp-green);
	font-size: 1.1em;
	line-height: 1;
	align-self: center;
	margin-inline: .85rem;
}
body .wp-site-blocks .gp-menuband .wp-block-navigation:not(.is-menu-open) .wp-block-navigation__container { gap: 0; }
body .wp-site-blocks .gp-menuband .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content { padding-right: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item::before { content: none !important; }

/* 1.2.21 – Fliesstext und Menü etwas grösser (Titel unverändert) */
body .wp-site-blocks .gp-card p { font-size: 16px; }
body .wp-site-blocks :is(.wp-block-post-content, .gp-aside, .gp-intro, .gp-footer) :is(p, li) { font-size: 16px; }
body .wp-site-blocks .gp-intro p.gp-sub { font-size: 20px; }
body .wp-site-blocks .gp-aside .gp-aside-name { font-size: 1.5rem; }
body .wp-site-blocks .gp-menuband .wp-block-navigation { font-size: 16px; }
body .wp-site-blocks .gp-menuband .wp-block-navigation-item__content { font-size: 16px; }

/* 1.2.22 – Foto rechts steht genau zwischen den beiden Linien der Textspalte (Desktop) */
@media (min-width: 782px) {
	body .wp-site-blocks .gp-intro { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; row-gap: 0; align-items: start; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child { display: contents; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > * { grid-column: 1; }
	body .wp-site-blocks .gp-intro > .wp-block-column:last-child { grid-column: 2; grid-row: 3 / span 4; align-self: stretch; display: flex; flex-direction: column; }
	body .wp-site-blocks .gp-intro figure.gp-photo { flex: 1; margin: 1.1rem 0; min-height: 0; position: relative; }
	body .wp-site-blocks .gp-intro figure.gp-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
}

/* 1.2.22 – Abstände im Grid-Einstieg (Ränder kollabieren im Grid nicht) und einheitliche dünne Linien */
@media (min-width: 782px) {
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > * { margin-block: 0; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > h1 { margin-bottom: .3rem; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > .wp-block-separator { margin-block: 1.1rem; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > p { margin-bottom: .9rem; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > p.gp-sub { margin-bottom: 0; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > p:last-of-type { margin-bottom: 0; }
	body .wp-site-blocks .gp-intro > .wp-block-column:first-child > .wp-block-buttons { margin-top: .5rem; }
}
body .wp-site-blocks .wp-block-separator { border: 0; border-top: 1px solid #c9ceba; height: 0; background: none; opacity: 1; }
body .wp-site-blocks .gp-aside .wp-block-separator { border-top-color: #9aa08c; }

/* 1.2.23 – Textseiten (Über uns, Kurse, ...): linksbündig in voller Breite, Linien über die ganze Spalte, Bilder bündig rechts/links */
body .wp-site-blocks .wp-block-post-content .wp-block-separator { clear: none; overflow: hidden; margin-inline: 0; }
body .wp-site-blocks .wp-block-post-content .wp-block-image.alignright { float: right; margin: 0 0 1rem 1.5rem; }
body .wp-site-blocks .wp-block-post-content .wp-block-image.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
body .wp-site-blocks .wp-block-post-content { max-width: 63rem; }
body .wp-site-blocks .wp-block-post-content > * { margin-inline: 0; max-width: none; }
body .wp-site-blocks .wp-block-post-content h2.wp-block-heading { clear: none; }
body .wp-site-blocks .gp-page-head .wp-block-post-title { max-width: 63rem; }

/* 1.2.24 – Logo wie im Original, Textseiten wie alte Seite, Links-Karte, Nach-oben-Knopf */
.gp-brand-logo img { width: 8.2rem; }
@media (max-width: 600px) { .gp-brand-logo img { width: 5rem; } }
body .wp-site-blocks .gp-page-plain .wp-block-post-title { border-bottom: 0; padding-bottom: 0; }
body .wp-site-blocks .wp-block-post-content h2.wp-block-heading { font-size: var(--gp-title); font-weight: 300; line-height: 1.2; margin-block: 1.5rem .5rem; }
body .wp-site-blocks .wp-block-post-content > .wp-block-image + h2.wp-block-heading,
body .wp-site-blocks .wp-block-post-content > :first-child { margin-top: 0; }
body .wp-site-blocks .wp-block-post-content h3.wp-block-heading { font-size: 20px; font-weight: 400; color: #000; margin-block: .25rem 0; }
body .wp-site-blocks .gp-linkcard { background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.10); padding: 1.9rem; }
body .wp-site-blocks .gp-linkcard h2 { font-size: var(--gp-title); margin: 0 0 .5rem; }
body .wp-site-blocks .gp-linkcard a { color: var(--gp-green); font-size: 18px; }
body .wp-site-blocks .gp-linkcard li { font-size: 18px; margin-bottom: .35rem; }
.gp-totop {
	position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 120;
	width: 2.9rem; height: 2.9rem; padding: 0; border: 0; border-radius: 3px;
	background: var(--gp-green); color: #fff; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s;
	box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.gp-totop.is-visible { opacity: 1; visibility: visible; }
.gp-totop:hover, .gp-totop:focus-visible { background: #85b34a; }
body .wp-site-blocks .wp-block-post-content h3.wp-block-heading a { color: var(--gp-green); }
body .wp-site-blocks .gp-kontakt-inhalt h3.wp-block-heading { color: var(--gp-green); font-size: 20px; margin-block: .5rem; }
body .wp-site-blocks .gp-kontakt-inhalt .wp-block-buttons { margin-block: 1rem; }

/* 1.2.25 – Linien in Seiteninhalten auf allen Seiten ausser Startseite durchgezogen (volle Textbreite, auch bei älterem Inhalt ohne «breit»-Stil) */
body:not(.home) .wp-site-blocks .wp-block-post-content .wp-block-separator,
body:not(.home) .wp-site-blocks .wp-block-post-content .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100% !important; max-width: none !important; margin-inline: 0 !important; }

/* 1.2.27 – Über uns: deutlich mehr Abstand zwischen den beiden Personen-Abschnitten (Überschrift direkt nach einer Liste) */
body .wp-site-blocks .wp-block-post-content > :is(ul, ol) + h2.wp-block-heading { clear: both; margin-top: 5rem; }

/* 1.2.29 – Zwischenüberschriften (h3) in Seitentexten mit mehr Luft nach oben; Fotonachweis unter Bildern klein */
body .wp-site-blocks .wp-block-post-content :is(p, ul, ol) + h3.wp-block-heading { margin-top: 2rem; margin-bottom: .35rem; }
body .wp-site-blocks .wp-block-post-content h2.wp-block-heading + h3.wp-block-heading { margin-top: .25rem; }
body .wp-site-blocks .wp-block-post-content .wp-block-image + p:has(> a[href*="octopus"]),
body .wp-site-blocks .wp-block-post-content p:has(> a[href*="octopus"]) { font-size: 12px; line-height: 1.4; margin-top: .4rem; margin-bottom: 1.5rem; color: #6b6f63; }
body .wp-site-blocks .wp-block-post-content p:has(> a[href*="octopus"]) a { font-size: inherit; }

/* 1.2.30 – Floatende Fotos beginnen auf gleicher Höhe wie der Absatz daneben (gleicher Abstand nach oben wie der Absatz) */
body .wp-site-blocks .wp-block-post-content .wp-block-image:is(.alignleft, .alignright) { margin-top: var(--wp--style--block-gap, 1.25rem); }
body .wp-site-blocks .wp-block-post-content > .wp-block-image:is(.alignleft, .alignright):first-child,
body .wp-site-blocks .wp-block-post-content .wp-block-separator + .wp-block-image:is(.alignleft, .alignright) { margin-top: 0; }
body .wp-site-blocks .wp-block-post-content > .wp-block-image:is(.alignleft, .alignright):first-child + *,
body .wp-site-blocks .wp-block-post-content .wp-block-separator + .wp-block-image:is(.alignleft, .alignright) + * { margin-top: 0; }
body .wp-site-blocks .wp-block-post-content .wp-block-image:is(.alignleft, .alignright) + h3.wp-block-heading { margin-top: var(--wp--style--block-gap, 1.25rem); }

/* 1.2.31 – Online-Anmeldeformular (Shortcode [gp_anmeldeformular]) */
body .wp-site-blocks .gp-anm { background: #fff; padding: 2rem 2.25rem 2.5rem; max-width: none; width: auto; margin-inline: 0; box-shadow: 0 2px 10px rgba(0,0,0,.06); }
body .wp-site-blocks .gp-anm .gp-anm-title { font-size: var(--gp-title); font-weight: 300; color: var(--gp-green); line-height: 1.2; margin: 0 0 .5rem; }
body .wp-site-blocks .gp-anm .gp-anm-sub { font-size: 20px; font-weight: 400; color: #000; margin: 0; }
body .wp-site-blocks .gp-anm .gp-anm-line { border: 0; border-top: 1px solid #c9ceba; height: 0; margin: 1rem 0 1.25rem; background: none; }
body .wp-site-blocks .gp-anm .gp-anm-line-green { border-top-color: var(--gp-green); margin: 1.75rem 0; }
body .wp-site-blocks .gp-anm p { font-size: 16px; line-height: 1.7; margin: 0 0 1rem; max-width: none; }
body .wp-site-blocks .gp-anm a { color: var(--gp-link); }
.gp-anm-req { color: #c0392b; }
.gp-anm-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.1rem 1.25rem; }
.gp-anm-field { margin: 0; min-width: 0; border: 0; padding: 0; }
.gp-col-3 { grid-column: span 3; } .gp-col-4 { grid-column: span 4; } .gp-col-6 { grid-column: span 6; } .gp-col-8 { grid-column: span 8; } .gp-col-12 { grid-column: span 12; }
.gp-anm-field > label, .gp-anm-field > legend { display: block; font-size: 16px; color: #222; margin-bottom: .35rem; padding: 0; }
.gp-anm-field input[type="text"], .gp-anm-field input[type="email"], .gp-anm-field input[type="tel"], .gp-anm-field textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; font-weight: 300; color: #222;
	background: #fff; border: 1px solid #d0d0d0; border-radius: 3px; padding: .8rem .9rem;
}
.gp-anm-field textarea { min-height: 11rem; resize: vertical; }
.gp-anm-field input::placeholder, .gp-anm-field textarea::placeholder { color: #aaa; }
.gp-anm-field input:focus, .gp-anm-field textarea:focus { outline: 2px solid var(--gp-green); outline-offset: 0; border-color: var(--gp-green); }
.gp-anm-radios { margin-top: .25rem; }
.gp-anm-radio-row { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; }
.gp-anm-radio { display: inline-flex; align-items: center; gap: .5rem; font-size: 16px; cursor: pointer; }
.gp-anm-radio input { width: 1.4rem; height: 1.4rem; margin: 0; accent-color: var(--gp-green); }
.gp-anm-upload { border: 1px solid #d0d0d0; border-radius: 3px; padding: 1.25rem; display: flex; flex-direction: column; gap: .5rem; background: #fff; }
.gp-anm-hint { font-size: 13px; color: #777; }
.gp-anm-error { display: block; color: #b3261e; font-size: 14px; margin-top: .25rem; }
.gp-anm-error-box { border-left: 3px solid #b3261e; background: #fdf1f0; padding: .6rem .9rem; }
.gp-anm-done { background: #e7ecd9; border-left: 3px solid var(--gp-green); padding: 1rem 1.25rem; }
.gp-anm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gp-anm-submit { background: var(--gp-green); color: #1a1a1a; border: 0; border-radius: 3px; padding: .8rem 1.6rem; font: inherit; font-size: 16px; cursor: pointer; }
.gp-anm-submit:hover { background: #86b34c; }
@media (max-width: 700px) {
	body .wp-site-blocks .gp-anm { padding: 1.25rem 1rem 1.75rem; }
	.gp-col-3, .gp-col-4, .gp-col-6, .gp-col-8 { grid-column: span 12; }
}

/* 1.2.32 – Bestätigung nach dem Absenden wie auf der alten Seite (grüner Balken) */
body .wp-site-blocks .gp-anm .gp-anm-done { background: #4a9d5c; border: 0; color: #fff; padding: .85rem 1rem; text-align: center; border-radius: 2px; margin-bottom: 1.5rem; }
body .wp-site-blocks .gp-anm .gp-anm-done p { color: #fff; margin: 0; font-size: 15px; }

/* 1.2.33 – Formularseite: Inhaltsbereich volle Breite, links/rechts gleicher Abstand */
body .wp-site-blocks .wp-block-post-content:has(> .gp-anm) { max-width: none; }

/* 1.2.34 – Bestätigungsseite: Balken mit Haken, Zusatztext, Button */
body .wp-site-blocks .gp-anm .gp-anm-done { display: flex; align-items: center; justify-content: center; gap: .9rem; padding: 1.25rem 1.5rem; margin: 0 0 1.75rem; }
body .wp-site-blocks .gp-anm .gp-anm-done p { font-size: 17px; line-height: 1.5; }
.gp-anm-done-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: #fff; color: #4a9d5c; font-weight: 700; font-size: 1.1rem; }
body .wp-site-blocks .gp-anm .gp-anm-done-more { text-align: center; margin-bottom: 1.75rem; }
body .wp-site-blocks .gp-anm a.gp-anm-back { display: inline-block; color: #fff; text-decoration: none; }
body .wp-site-blocks .gp-anm .gp-anm-done ~ p:last-child { text-align: center; margin-bottom: 0; }
@media (max-width: 700px) { body .wp-site-blocks .gp-anm .gp-anm-done { flex-direction: column; text-align: center; } }

/* 1.2.36 – Bestätigung als normaler Text, ohne grünen Balken */
body .wp-site-blocks .gp-anm .gp-anm-done { display: block; background: none; color: inherit; padding: 0; margin: 0 0 1.5rem; text-align: left; border-radius: 0; }
body .wp-site-blocks .gp-anm .gp-anm-done p { color: inherit; font-size: 16px; line-height: 1.7; margin: 0; }
body .wp-site-blocks .gp-anm .gp-anm-done ~ p:last-child { text-align: left; }
.gp-anm-done-icon { display: none; }

/* 1.2.37 – Standardseiten (Zahlt die Krankenkasse?, Datenschutzerklärung): Titel und Untertitel eng beieinander wie bei «Über uns» */
body .wp-site-blocks .gp-page-plain .wp-block-post-title { margin-bottom: .5rem; }
body .wp-site-blocks .gp-page-plain + .wp-block-group { padding-top: 0 !important; }
