/*
Theme Name: Praxis Neidhardt
Theme URI: https://nadine-neidhardt.de/
Author: Naturheilpraxis Nadine Neidhardt
Description: Schlankes, klares Block-Theme für die Naturheilpraxis Nadine Neidhardt in Höchstadt an der Aisch. Selbst gehostete Schrift (Barlow), keine externen Dienste.
Version: 1.4.4
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: praxis-neidhardt
*/

/* ==========================================================
   Praxis Neidhardt – Grundlagen
   Logo-Grün #95C11F · Graphit #2B2E2D · Logo-Grau #6E7170
   ========================================================== */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "kern", "liga"; }
::selection { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--contrast); }
:where(a) { text-underline-offset: 0.22em; text-decoration-thickness: 1px; text-decoration-color: var(--wp--preset--color--primary); transition: text-decoration-color .2s ease, color .2s ease; }
:where(a):hover { text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 3px; border-radius: 3px; }
/* Anker und Tastaturfokus nicht unter dem klebenden Header verstecken */
html { scroll-padding-top: 9rem; }
@media (max-width: 600px) { html { scroll-padding-top: 7.5rem; } }
img { height: auto; }
strong { font-weight: 600; }

/* ---------- Header ---------- */
/* Der Header klebt über seinen Template-Part-Container (der Header allein ist nur so hoch wie er selbst). */
.wp-block-template-part:has(> .pn-header) { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-block-template-part:has(> .pn-header) { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-block-template-part:has(> .pn-header) { top: 46px; } }
.pn-header {
	position: relative;
	border-bottom: 1px solid transparent;
	transition: border-color .3s ease, padding .3s ease;
}
/* Milchglas-Hintergrund als eigene Ebene – ein backdrop-filter direkt am Header würde das mobile Menü auf Headerhöhe einsperren. */
.pn-header::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: rgba(255,255,255,0.95);
	backdrop-filter: saturate(160%) blur(10px);
	-webkit-backdrop-filter: saturate(160%) blur(10px);
}
body.pn-scrolled .pn-header { border-bottom-color: var(--wp--preset--color--line); }
.pn-header .wp-block-site-logo img { width: 188px; height: auto; transition: width .3s ease; }
body.pn-scrolled .pn-header .wp-block-site-logo img { width: 160px; }
@media (max-width: 600px) { .pn-header .wp-block-site-logo img, body.pn-scrolled .pn-header .wp-block-site-logo img { width: 136px; } }
.pn-header .wp-block-navigation { font-size: 1rem; font-weight: 500; letter-spacing: 0.01em; }
.pn-header .wp-block-navigation-item__content { padding-block: .45em; position: relative; }
.pn-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
	background: var(--wp--preset--color--primary); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.pn-header .wp-block-navigation-item__content:hover::after,
.pn-header .wp-block-navigation-item__content:focus-visible::after,
.pn-header .wp-block-navigation-item.is-current > .wp-block-navigation-item__content::after { transform: scaleX(1) !important; }
/* Menüpunkte: Schrift beim Darüberfahren und auf der aktuellen Seite in dunklem Logo-Grün (gut lesbar) */
.pn-header .wp-block-navigation-item__content { transition: color .2s ease; }
.pn-header .wp-block-navigation-item__content:hover,
.pn-header .wp-block-navigation-item__content:focus-visible,
.pn-header .wp-block-navigation-item.is-current > .wp-block-navigation-item__content { color: #5E7F0F !important; }
.pn-header .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-icon,
.pn-header .wp-block-navigation-submenu.is-current > .wp-block-navigation__submenu-icon { color: #5E7F0F; }
.pn-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 12px; padding: .5rem !important; min-width: 300px !important;
	box-shadow: 0 24px 48px -24px rgba(43,46,45,.22);
	font-weight: 400;
}
.pn-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem .85rem !important; border-radius: 8px; }
.pn-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--accent-soft); }
/* Mobiles Menü */
.pn-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.4rem 1.5rem 2.5rem; background: #fff; }
.pn-header .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 3.25rem !important; }
.pn-header .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; font-size: 1.3rem; }
.pn-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { align-items: stretch !important; width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); }
.pn-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { padding: .9rem 0 !important; width: 100%; }
.pn-header .is-menu-open .wp-block-navigation-item__content::after { display: none !important; }
.pn-header .is-menu-open .current-menu-item > .wp-block-navigation-item__content { font-weight: 600; }
.pn-header .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none !important; padding: 0 0 .9rem !important; min-width: 0 !important; font-size: 1.02rem; gap: 0 !important; width: 100%; align-items: flex-start !important; }
.pn-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; justify-content: flex-start !important; align-items: flex-start !important; }
.pn-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .42rem 0 .42rem 1rem !important; color: var(--wp--preset--color--muted) !important; border-radius: 0; position: relative; text-align: left; }
.pn-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { content: ""; position: absolute; left: 0; top: 50%; width: 5px; height: 5px; border-radius: 50%; background: var(--wp--preset--color--primary); transform: translateY(-50%); }
.pn-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.pn-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:active,
.pn-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item.is-current > .wp-block-navigation-item__content { background: none !important; color: #5E7F0F !important; }
/* Antippen auf dem Handy: gleiche Farbe als kurze Rückmeldung */
.pn-header .is-menu-open .wp-block-navigation-item__content:active { color: #5E7F0F !important; }
@media (max-width: 781px) { .pn-header-cta { display: none !important; } }

/* ---------- Typografische Bausteine ---------- */
.pn-eyebrow {
	font-size: 0.8rem !important; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	display: flex; align-items: center; gap: .8rem;
}
.pn-eyebrow a { color: inherit; text-decoration: none; }
.pn-eyebrow a:hover { color: var(--wp--preset--color--contrast); }
.pn-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--primary); flex: none; }
.has-text-align-center.pn-eyebrow { justify-content: center; }
.pn-lead { font-size: var(--wp--preset--font-size--medium); line-height: 1.65; color: var(--wp--preset--color--text); }
.pn-muted { color: var(--wp--preset--color--muted); }
h2 + .pn-muted { margin-top: 1rem; }
.pn-subtitle { font-weight: 300; color: var(--wp--preset--color--muted); margin-top: calc(-1 * var(--wp--preset--spacing--40)) !important; }
h1 .pn-accent, h2 .pn-accent { color: var(--wp--preset--color--primary); }

/* ---------- Hero ---------- */
.pn-hero-image img { border-radius: 10px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; background: #1b1a19; display: block; }

/* Vertrauens-Zeile unter dem Hero */
.pn-facts { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.75rem !important; }
.pn-fact { align-items: center !important; }
.pn-fact .pn-icon-sm img { width: 30px !important; height: 30px; }
.pn-fact p { font-size: 0.95rem; line-height: 1.35; color: var(--wp--preset--color--text); }
.pn-fact p strong { display: block; font-weight: 600; }

/* ---------- Zitat ---------- */
.pn-quote p:first-child { font-weight: 300; position: relative; }
.pn-quote::before {
	content: ""; display: block; width: 40px; height: 2px; border-radius: 2px; margin: 0 auto 2rem;
	background: var(--wp--preset--color--primary);
}

/* ---------- Icon im Kreis ---------- */
.pn-icon { margin: 0 !important; width: 64px; height: 64px; border-radius: 50%; background: var(--wp--preset--color--accent-soft); display: flex !important; align-items: center; justify-content: center; transition: background-color .35s ease, transform .35s ease; }
.pn-icon img { width: 34px !important; height: 34px; }

/* ---------- Karten (Schwerpunkte) ---------- */
.pn-cards { gap: 1.25rem !important; }
.pn-card {
	position: relative; height: 100%;
	background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px;
	transition: border-color .35s ease, transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.pn-card:hover { border-color: var(--wp--preset--color--primary); transform: translateY(-4px); box-shadow: 0 26px 44px -30px rgba(43,46,45,.35); }
.pn-card:hover .pn-icon { background: #E3EFC2; transform: scale(1.04); }
.pn-card h3 a { color: inherit; text-decoration: none; }
.pn-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.pn-card .pn-more { font-size: 0.95rem; font-weight: 600; color: var(--wp--preset--color--contrast); margin-top: auto !important; display: inline-flex; align-items: center; gap: .45rem; }
.pn-card .pn-more::after {
	content: ""; width: 22px; height: 22px; border-radius: 50%; flex: none;
	background: var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2E2D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 12h8M13 8l4 4-4 4'/%3E%3C/svg%3E") center / 16px no-repeat;
	transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.pn-card:hover .pn-more::after { transform: translateX(4px); }
.pn-card--cta { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: #fff; overflow: hidden; }
.pn-card--cta::before {
	content: ""; position: absolute; right: -40px; bottom: -40px; width: 190px; height: 190px; opacity: .14; pointer-events: none;
	background: url("assets/brand/zeichen.png") center / contain no-repeat;
}
.pn-card--cta:hover { border-color: var(--wp--preset--color--contrast); }
.pn-card--cta .pn-more, .pn-card--cta h3, .pn-card--cta p { color: #fff; }
.pn-card--cta .pn-icon { background: rgba(149,193,31,.16); }
.pn-card--cta:hover .pn-icon { background: rgba(149,193,31,.26); }
.pn-card--cta .pn-icon img { filter: brightness(0) invert(1); }

/* ---------- Über mich / Schritte ---------- */
.pn-step-number { font-weight: 300; color: var(--wp--preset--color--primary); line-height: 1; letter-spacing: -.02em; }
.pn-about-image img { border-radius: 10px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; display: block; }
.pn-about { position: relative; overflow: hidden; }
.pn-about::after {
	content: ""; position: absolute; right: -6%; top: 8%; width: min(36vw, 520px); aspect-ratio: 1; pointer-events: none; z-index: 0;
	background: url("assets/brand/zeichen.png") center / contain no-repeat; opacity: .05;
}
.pn-about > * { position: relative; z-index: 1; }

/* ---------- Beiträge ---------- */
.pn-posts .wp-block-post { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.5rem; position: relative; transition: border-color .3s ease; }
.pn-posts .wp-block-post:hover { border-top-color: var(--wp--preset--color--primary); }
.pn-posts .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.pn-posts .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.pn-link-arrow a { text-decoration: none; font-weight: 600; display: inline-flex; align-items: center; gap: .45rem; }
.pn-link-arrow a::after {
	content: ""; width: 22px; height: 22px; border-radius: 50%;
	background: var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2E2D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 12h8M13 8l4 4-4 4'/%3E%3C/svg%3E") center / 16px no-repeat;
	transition: transform .3s ease;
}
.pn-link-arrow a:hover::after { transform: translateX(4px); }

/* ---------- Inhaltsseiten ---------- */
.pn-content h2 { margin-top: 2.4em; }
.pn-content h3 { margin-top: 1.9em; }
.pn-content h2::before { content: ""; display: block; width: 32px; height: 2px; border-radius: 2px; background: var(--wp--preset--color--primary); margin-bottom: 1.1rem; }
.pn-content > *:first-child { margin-top: 0; }
.pn-content figure.wp-block-image img { border-radius: 10px; }
.pn-content .pn-note { background: var(--wp--preset--color--accent-soft); border-radius: 10px; padding: 1.25rem 1.5rem; box-sizing: border-box; }
.pn-content ul:not(.pn-timeline):not(.pn-footer-links) { list-style: none; padding-left: 0; }
.pn-content ul:not(.pn-timeline):not(.pn-footer-links) li { position: relative; padding-left: 1.4rem; margin-bottom: .4rem; }
.pn-content ul:not(.pn-timeline):not(.pn-footer-links) li::before { content: ""; position: absolute; left: 0; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--wp--preset--color--primary); }
.pn-timeline { list-style: none; padding-left: 0 !important; border-left: 1px solid var(--wp--preset--color--line); }
.pn-timeline li { position: relative; padding: 0 0 1rem 1.6rem; }
.pn-timeline li::before { content: ""; position: absolute; left: -5px; top: .6em; width: 9px; height: 9px; border-radius: 50%; background: #fff; border: 2px solid var(--wp--preset--color--primary); box-sizing: border-box; }
.pn-content .pn-about-image { max-width: 440px; }
.pn-content .wp-block-columns > .pn-card { height: auto; }
.pn-content .wp-block-columns:has(> .pn-card) { align-items: stretch !important; }
.pn-content .wp-block-columns > .pn-card:hover { transform: none; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease; display: inline-flex !important; align-items: center; gap: .55rem; }
.wp-block-button__link:hover { box-shadow: 0 10px 24px -14px rgba(43,46,45,.6); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: #fff; border-color: var(--wp--preset--color--contrast); }
.wp-block-button__link[href^="tel:"]::before,
.wp-block-button__link[href^="mailto:"]::before,
.wp-block-button__link[href$="#formular"]::before {
	content: ""; width: 18px; height: 18px; background: currentColor; flex: none;
	-webkit-mask: var(--pn-btn-icon) center / contain no-repeat; mask: var(--pn-btn-icon) center / contain no-repeat;
}
.wp-block-button__link[href^="tel:"] { --pn-btn-icon: url("assets/icons/telefon.svg"); }
.wp-block-button__link[href^="mailto:"], .wp-block-button__link[href$="#formular"] { --pn-btn-icon: url("assets/icons/mail.svg"); }

/* ---------- Kontakt-Band ---------- */
.pn-center { position: relative; overflow: hidden; }
.pn-center::after {
	content: ""; position: absolute; left: -60px; bottom: -80px; width: 340px; height: 340px; pointer-events: none;
	background: url("assets/brand/zeichen.png") center / contain no-repeat; opacity: .12;
}
.pn-center > * { position: relative; z-index: 1; }

/* ---------- Footer ---------- */
.pn-footer a { text-decoration: none; }
.pn-footer a:hover { text-decoration: underline; text-decoration-color: var(--wp--preset--color--primary); }
.pn-footer .wp-block-site-logo img { width: 170px; height: auto; }
.pn-footer h4 { letter-spacing: .02em; }
.pn-footer-links { list-style: none; padding: 0 !important; margin: 1rem 0 0 !important; }
.pn-footer-links li { margin: 0 0 .45rem; }

/* ---------- Dezente Einblendung ---------- */
@media (prefers-reduced-motion: no-preference) {
	.pn-js .pn-reveal { opacity: 0; transform: translateY(16px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
	.pn-js .pn-reveal.is-visible { opacity: 1; transform: none; }
}

/* Keine Lücken zwischen Kopf, Inhalt und Fuß */
.wp-site-blocks > * { margin-block-start: 0 !important; }
main > .wp-block-post-content > .alignfull:last-child { margin-bottom: 0; }

/* ---------- Kontaktformular ---------- */
.pn-form-wrap { scroll-margin-top: 120px; margin-top: var(--wp--preset--spacing--40); }
.pn-form { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; padding: clamp(1.5rem, 4vw, 2.5rem); }
.pn-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1.5rem; }
@media (max-width: 640px) { .pn-form-grid { grid-template-columns: 1fr; } }
.pn-field { margin: 0; display: flex; flex-direction: column; gap: .45rem; border: 0; padding: 0; min-width: 0; }
.pn-field--full { grid-column: 1 / -1; }
.pn-field label, .pn-field legend { font-size: .9rem; font-weight: 600; letter-spacing: .01em; color: var(--wp--preset--color--contrast); padding: 0; }
.pn-field legend { margin-bottom: .45rem; }
.pn-field label span, .pn-field legend span, .pn-consent span[aria-hidden] { color: var(--wp--preset--color--muted); font-weight: 400; }
.pn-form input[type=text], .pn-form input[type=email], .pn-form input[type=tel], .pn-form select, .pn-form textarea {
	font: inherit; font-size: 1rem; color: var(--wp--preset--color--text);
	background: var(--wp--preset--color--surface); border: 1px solid transparent; border-radius: 10px;
	padding: .8rem 1rem; width: 100%; box-sizing: border-box; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.pn-form select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2E2D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .9rem center; background-size: 18px; }
.pn-form textarea { resize: vertical; min-height: 6rem; }
.pn-form input:hover, .pn-form select:hover, .pn-form textarea:hover { border-color: var(--wp--preset--color--line); }
.pn-form input:focus, .pn-form select:focus, .pn-form textarea:focus { outline: none; background-color: #fff; border-color: var(--wp--preset--color--primary); box-shadow: 0 0 0 4px rgba(149,193,31,.18); }
.pn-choices { display: flex; gap: .75rem; flex-wrap: wrap; }
.pn-field .pn-choice { font-size: 1rem; padding: .7rem 1.2rem; }
.pn-choice { display: inline-flex; align-items: center; gap: .55rem; padding: .7rem 1.1rem; border-radius: 999px; background: var(--wp--preset--color--surface); cursor: pointer; font-weight: 400 !important; border: 1px solid transparent; transition: border-color .2s ease, background-color .2s ease; }
.pn-choice:has(input:checked) { background: var(--wp--preset--color--accent-soft); border-color: var(--wp--preset--color--primary); }
.pn-form input[type=radio], .pn-form input[type=checkbox] { accent-color: var(--wp--preset--color--primary); width: 18px; height: 18px; margin: 0; flex: none; }
.pn-form-hint { font-size: .9rem; color: var(--wp--preset--color--muted); margin: 1.5rem 0 1rem; }
.pn-consent { display: flex; gap: .75rem; align-items: flex-start; font-size: .9rem; line-height: 1.55; color: var(--wp--preset--color--text); cursor: pointer; }
.pn-consent input { margin-top: .2rem !important; }
.pn-form-actions { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; margin: 1.75rem 0 0; }
.pn-submit { font: inherit; font-size: .95rem; font-weight: 600; letter-spacing: .02em; cursor: pointer; border-radius: 999px; padding: .9rem 1.9rem;
	background: var(--wp--preset--color--primary); color: #fff; border: 1px solid var(--wp--preset--color--primary); transition: background-color .25s ease, color .25s ease, box-shadow .25s ease; }
.pn-submit:hover, .pn-submit:focus-visible { background: #7FA31B; border-color: #7FA31B; color: #fff; box-shadow: 0 10px 24px -14px rgba(43,46,45,.6); }
.pn-required-note { font-size: .85rem; color: var(--wp--preset--color--muted); }
.pn-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.pn-form-message { border-radius: 12px; padding: 1.1rem 1.4rem; margin-bottom: 1.25rem; line-height: 1.55; }
.pn-form-message strong { display: block; }
.pn-form-message--ok { background: var(--wp--preset--color--accent-soft); border: 1px solid var(--wp--preset--color--primary); }
.pn-form-message--info { background: #EEF3F7; border: 1px solid #A9C0D2; }
.pn-form-message--error { background: #FBEDEA; border: 1px solid #E2A79B; }
.pn-form .is-invalid { border-color: #C9604B !important; background-color: #fff !important; }

/* ---------- Schwerpunkt-Seiten: Schritte, Zitat, Preise ---------- */
.pn-steps { gap: 1.25rem !important; margin-top: 1.5rem !important; }
.pn-step { background: var(--wp--preset--color--surface); border-radius: 14px; padding: 1.6rem 1.6rem 1.4rem; }
.pn-step p:last-child { margin-bottom: 0; font-size: 1rem; color: var(--wp--preset--color--muted); }
.pn-pullquote { margin: 3rem auto !important; padding: 2rem 0 !important; border-top: 1px solid var(--wp--preset--color--line) !important; border-bottom: 1px solid var(--wp--preset--color--line) !important; text-align: center; }
.pn-pullquote p { font-size: var(--wp--preset--font-size--large); font-weight: 300; line-height: 1.35; margin: 0; }
.pn-pullquote cite { display: block; margin-top: 1rem; font-size: .9rem; font-style: normal; color: var(--wp--preset--color--muted); }
.pn-pullquote::before { content: ""; display: block; width: 40px; height: 2px; border-radius: 2px; margin: 0 auto 1.5rem; background: var(--wp--preset--color--primary); }
.pn-price { margin: 1.5rem 0 1.25rem; }
.pn-price table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.pn-price th { text-align: left; font-weight: 600; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); border: 0; border-bottom: 2px solid var(--wp--preset--color--primary) !important; padding: .6rem .75rem .6rem 0; }
.pn-price thead { border-bottom: 0 !important; }
.pn-price td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 1rem .75rem 1rem 0; vertical-align: top; }
.pn-price td:nth-child(2) { white-space: nowrap; color: var(--wp--preset--color--muted); }
.pn-price td:last-child, .pn-price th:last-child { text-align: right; white-space: nowrap; font-weight: 600; padding-right: 0; }
@media (max-width: 600px) {
	.pn-price thead { display: none; }
	.pn-price tr { display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; border-bottom: 1px solid var(--wp--preset--color--line); padding: .9rem 0; }
	.pn-price td { border: 0; padding: 0; }
	.pn-price td:first-child { grid-column: 1 / -1; }
}

/* ---------- Homöopathie als Basis: hervorgehobene Kachel ---------- */
.pn-card--featured { background: var(--wp--preset--color--accent-soft); border-color: transparent; }
.pn-card--featured .pn-icon { background: #fff; }
.pn-card--featured:hover .pn-icon { background: #fff; }
.pn-card--featured .pn-eyebrow { margin: 0 0 .25rem !important; }
.pn-card--featured p.pn-muted { color: var(--wp--preset--color--text); max-width: 34em; }
.pn-card--featured::after {
	content: ""; position: absolute; right: 1.75rem; top: 1.75rem; width: 110px; height: 110px; pointer-events: none;
	background: url("assets/brand/zeichen.png") center / contain no-repeat; opacity: .16;
}
@media (min-width: 720px) { .pn-cards > .pn-card--featured { grid-column: span 2; } }
@media (max-width: 719px) {
	.pn-card h3 { font-size: 1.3rem !important; }
	.pn-card--featured h3 { font-size: 1.55rem !important; }
	.pn-card--featured::after { width: 80px; height: 80px; right: 1.25rem; top: 1.25rem; }
}

/* Abstand nach dem Einstieg (ohne Zitat-Band) */
#schwerpunkte { padding-top: var(--wp--preset--spacing--50) !important; }

/* Karten mit Listen (z. B. Stress kurz-/langfristig) */
.pn-step .pn-eyebrow { margin: 0 !important; }
.pn-step ul { margin: .75rem 0 0; font-size: 1rem; color: var(--wp--preset--color--muted); }
.pn-step ul li { margin-bottom: .3rem !important; }
.pn-step p { font-size: 1rem; }

/* Querverweis-Kacheln auf Inhaltsseiten */
.pn-content .pn-cards--related { margin-top: 1.5rem !important; margin-bottom: 1rem !important; }
.pn-content .pn-cards--related h3 { margin-top: .5rem !important; }
.pn-content .pn-cards--related h3::before { display: none; }

/* ---------- Bildsystem ---------- */
/* Titelbild im Breitformat 21:9 */
.wp-block-image.is-style-pn-banner { margin-top: var(--wp--preset--spacing--40) !important; margin-bottom: var(--wp--preset--spacing--40) !important; }
.wp-block-image.is-style-pn-banner img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; object-position: 50% 45%; border-radius: 10px; display: block; }
@media (max-width: 600px) { .wp-block-image.is-style-pn-banner img { aspect-ratio: 3 / 2; } }
/* Bild neben dem Text, Format 4:3 */
.wp-block-image.is-style-pn-float { float: right; width: 42%; max-width: 320px; margin: .35rem 0 1.25rem 2rem !important; }
.wp-block-image.is-style-pn-float img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; display: block; }
@media (max-width: 640px) { .wp-block-image.is-style-pn-float { float: none; width: 100%; max-width: none; margin: 1rem 0 1.25rem !important; } }
.pn-content h2, .pn-content .pn-steps, .pn-content .pn-cards, .pn-content .pn-pullquote, .pn-content .pn-price { clear: both; }
/* Bild neben dem Text bündig mit der Textspalte (statt am Seitenrand) */
.is-layout-constrained > .wp-block-image.is-style-pn-float {
	margin-right: max(0px, calc((100% - var(--wp--style--global--content-size, 720px)) / 2)) !important;
	margin-left: 2rem !important;
}
@media (max-width: 640px) { .is-layout-constrained > .wp-block-image.is-style-pn-float { margin-right: 0 !important; margin-left: 0 !important; } }

/* Bildausschnitte feinjustieren */
.wp-block-image.is-style-pn-banner img[src*="Homoopathie_Neidhardt2"] { object-position: 50% 15%; }
.wp-block-image.is-style-pn-banner img[src*="orthomolekulare-therapie-mikronaehrstoffe"] { object-position: 50% 68%; }
.wp-block-image.is-style-pn-banner img[src*="hormonbalance-sanduhr-rhythmus"] { object-position: 50% 35%; }
.wp-block-image.is-style-pn-banner img[src*="darmgesundheit-"] { object-position: 30% 50%; }
.wp-block-image.is-style-pn-banner img[src*="praxis-labor-"] { object-position: 50% 45%; }
.wp-block-image.is-style-pn-banner img[src*="praxis-labor-vorschau-4"] { object-position: 50% 10%; }
.wp-block-image.is-style-pn-banner img[src*="praxis-labor-vorschau-7"] { object-position: 48% 50%; }
.wp-block-image.is-style-pn-banner img[src*="praxis-labor-zentrifuge"] { object-position: 45% 50%; }

/* Informationstabelle (z. B. Blogbeiträge) */
.pn-table { margin: 1.5rem 0 1rem; }
.pn-table table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.pn-table thead { border-bottom: 0 !important; }
.pn-table th { text-align: left; font-weight: 600; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); border: 0; border-bottom: 2px solid var(--wp--preset--color--primary) !important; padding: .6rem .9rem .6rem 0; }
.pn-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .95rem .9rem .95rem 0; vertical-align: top; line-height: 1.5; }
.pn-table td:first-child { font-weight: 500; width: 38%; }
.pn-table td:last-child { color: var(--wp--preset--color--muted); }
.pn-table th:last-child, .pn-table td:last-child { padding-right: 0; }
@media (max-width: 600px) {
	.pn-table thead { display: none; }
	.pn-table tr { display: block; border-bottom: 1px solid var(--wp--preset--color--line); padding: .9rem 0; }
	.pn-table td { display: block; border: 0; padding: .1rem 0; width: auto !important; }
	.pn-table td:first-child { margin-bottom: .25rem; }
}

/* Nährstoff-Kacheln */
.pn-nutrients .pn-nutrient { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); }
.pn-nutrients .pn-step-number { font-weight: 300; }
.pn-content .pn-nutrients { margin-bottom: 2.25rem !important; }

/* Schematische Grafik (z. B. Hormonrhythmus) */
.pn-chart { box-sizing: border-box; margin: 1.75rem 0 1.5rem; padding: 1.5rem 1.5rem 1.25rem; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; }
.pn-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.pn-chart-grid line { stroke: var(--wp--preset--color--line); stroke-width: 1; }
.pn-chart-night { fill: var(--wp--preset--color--surface); }
.pn-chart-cortisol { fill: none; stroke: var(--wp--preset--color--primary); stroke-width: 3; stroke-linecap: round; }
.pn-chart-melatonin { fill: none; stroke: var(--wp--preset--color--contrast); stroke-width: 2; stroke-dasharray: 6 6; stroke-linecap: round; }
.pn-chart-labels text { font-family: inherit; font-size: 13px; fill: var(--wp--preset--color--muted); }
.pn-chart-labels .pn-chart-key-c, .pn-chart-labels .pn-chart-key-m { font-size: 15px; font-weight: 600; fill: var(--wp--preset--color--contrast); }
.pn-chart figcaption { margin-top: 1rem; font-size: .9rem; line-height: 1.55; color: var(--wp--preset--color--muted); }
@media (max-width: 600px) { .pn-chart { padding: 1rem; } .pn-chart-labels text { font-size: 26px; } .pn-chart-labels .pn-chart-key-c, .pn-chart-labels .pn-chart-key-m { font-size: 28px; } }
.pn-nutrient .pn-eyebrow { letter-spacing: .08em; overflow-wrap: break-word; }

/* Teiler mit Praxis-Zeichen */
.wp-block-separator.is-style-pn-divider { border: 0 !important; height: 30px; max-width: 720px; margin: 4rem auto !important; position: relative; opacity: 1; background: url("assets/brand/zeichen.png") center / auto 30px no-repeat transparent !important; }
.wp-block-separator.is-style-pn-divider::before, .wp-block-separator.is-style-pn-divider::after { content: ""; position: absolute; top: 50%; width: calc(50% - 34px); height: 1px; background: var(--wp--preset--color--line); }
.wp-block-separator.is-style-pn-divider::before { left: 0; }
.wp-block-separator.is-style-pn-divider::after { right: 0; }
.wp-block-separator.is-style-pn-divider + .wp-block-heading { margin-top: 0 !important; }
.wp-block-separator.is-style-pn-divider + .wp-block-heading::before { display: none; }

/* Anfahrtskarte (statisch, lokal gehostet) */
.wp-block-image.pn-map { margin-top: var(--wp--preset--spacing--40); margin-bottom: var(--wp--preset--spacing--40); }
.wp-block-image.pn-map img { width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--wp--preset--color--line); display: block; }
.wp-block-image.pn-map a { display: block; }
.wp-block-image.pn-map figcaption { font-size: .8rem; color: var(--wp--preset--color--muted); text-align: right; margin-top: .4rem; }
@media (max-width: 600px) { .wp-block-image.pn-map img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 48% 45%; } }

/* Lange Links (Quellenangaben) umbrechen statt die Seite zu verbreitern */
.wp-block-post-content, .entry-content { overflow-wrap: break-word; }
.wp-block-post-content a, .entry-content a { overflow-wrap: anywhere; }

/* Tablet: gestapeltes Porträt nicht bildschirmfüllend */
@media (min-width: 600px) and (max-width: 781px) {
	.pn-hero-image img { aspect-ratio: 3 / 2; object-position: 50% 22%; }
	.pn-about-image { max-width: 480px; margin-inline: auto; }
}

/* Kontaktformular: Hinweise direkt am Feld */
.pn-err { display: block; color: #A8432F; font-size: .9rem; line-height: 1.4; margin-top: .4rem; }
.pn-field.has-error input, .pn-field.has-error select, .pn-field.has-error textarea { border-color: #C9604B !important; background-color: #fff !important; }
.pn-field.has-error .pn-choice { border-color: #C9604B; }
.pn-consent.has-error { color: #A8432F; }
.pn-consent.has-error input { outline: 2px solid #C9604B; outline-offset: 2px; }

/* Termin-Button im mobilen Menü (auf dem Desktop steht er rechts im Header) */
.pn-header .wp-block-navigation .pn-nav-cta { display: none !important; }
.pn-header .is-menu-open .wp-block-navigation__container > .pn-nav-cta { display: flex !important; border-bottom: 0 !important; margin-top: 2rem; }
.pn-header .is-menu-open .wp-block-navigation__container > .pn-nav-cta > .wp-block-navigation-item__content {
	display: block; box-sizing: border-box; width: 100%; text-align: center; background: var(--wp--preset--color--primary); color: #fff !important;
	border-radius: 999px; padding: 1rem 1.5rem !important; font-size: 1.05rem; font-weight: 600;
}
.pn-header .is-menu-open .wp-block-navigation__container > .pn-nav-cta > .wp-block-navigation-item__content:hover { background: #7FA31B; color: #fff !important; }

/* Überschriften auf schmalen Bildschirmen: lange deutsche Wörter sauber mit Bindestrich trennen statt mitten im Wort abzuschneiden */
h1, h2, h3, .wp-block-post-title { -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 12 5 5; overflow-wrap: break-word; word-break: normal; }
@media (max-width: 600px) {
	h1, .wp-block-post-title { font-size: clamp(1.95rem, 8.4vw, 2.35rem) !important; }
}

/* Menü-Button auf dem Handy: grüner Kreis mit weißen Linien */
/* Nur dort, wo WordPress das Klappmenü zeigt (unter 600 px) – sonst bleibt der Button ausgeblendet. */
@media (max-width: 599px) {
.pn-header .wp-block-navigation__responsive-container-open {
	width: 48px; height: 48px; border-radius: 50%; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--wp--preset--color--primary); color: #fff;
	box-shadow: 0 6px 16px -8px rgba(94,127,15,.55);
	transition: background-color .2s ease, transform .2s ease;
}
.pn-header .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; fill: currentColor; }
.pn-header .wp-block-navigation__responsive-container-open svg path, .pn-header .wp-block-navigation__responsive-container-open svg rect { stroke: currentColor; stroke-width: 0.9px; stroke-linejoin: round; }
.pn-header .wp-block-navigation__responsive-container-open:hover { background: #7FA61A; }
.pn-header .wp-block-navigation__responsive-container-open:active { transform: scale(.95); }
.pn-header .wp-block-navigation__responsive-container-open:focus-visible { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 3px; }
/* Schließen-Button im geöffneten Menü passend dazu */
.pn-header .wp-block-navigation__responsive-container-close {
	width: 48px; height: 48px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--contrast);
}
.pn-header .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
}

/* Ruhige, gleichrangige Buttons in Zartgrün: Einstieg der Startseite und Routen-Links auf der Kontaktseite */
.pn-hero-buttons .wp-block-button.is-style-outline > .wp-block-button__link {
	background: var(--wp--preset--color--accent-soft); border-color: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--contrast);
}
.pn-hero-buttons .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.pn-hero-buttons .wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background: #E3EDC6; border-color: #E3EDC6; color: var(--wp--preset--color--contrast);
}
/* Auf dem Handy: Button-Gruppen untereinander in gleicher Breite (gilt für alle Seiten) */
@media (max-width: 600px) {
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) { flex-direction: column; align-items: stretch; }
	.wp-block-buttons.is-content-justification-center:has(> .wp-block-button + .wp-block-button) { align-items: center; }
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button { width: 100%; max-width: 22rem; margin: 0 !important; }
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button > .wp-block-button__link { width: 100%; justify-content: center; box-sizing: border-box; }
}

/* Menü: Schrift im Dunkelgrau der Seite statt Schwarz */
.pn-header .wp-block-navigation, .pn-header .wp-block-navigation-item__content,
.pn-header .wp-block-navigation__submenu-container, .pn-header .wp-block-navigation__responsive-container.is-menu-open { color: var(--wp--preset--color--contrast) !important; }
.pn-header .wp-block-navigation-item__content:hover, .pn-header .wp-block-navigation-item.is-current > .wp-block-navigation-item__content { color: #5E7F0F !important; }
