/* ==========================================================================
   Praxis Nährboden – Milan Wehrmann
   Static Bootstrap 5 rebuild – shared theme
   Branding: Titillium Web (body) + PT Serif (headings), green accent #3c5b1e
   ========================================================================== */

@import url("../fonts/fonts.local.css");

:root {
  --pn-green: #3c5b1e;
  --pn-green-dark: #2e461727;
  --pn-ink: #111111;
  --pn-body: #1a1a1a;
  --pn-muted: #6b6b6b;
  --pn-sand: #f1f1ef;
  --pn-sand-2: #ecece9;
  --pn-line: #e2e2df;
  --pn-serif: "PT Serif", Georgia, "Times New Roman", serif;
  --pn-sans: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Bootstrap overrides */
  --bs-body-font-family: var(--pn-sans);
  --bs-body-color: var(--pn-body);
  --bs-body-font-size: 1.05rem;
  --bs-body-line-height: 1.7;
  --bs-link-color: var(--pn-green);
  --bs-link-color-rgb: 60, 91, 30;
  --bs-link-hover-color: #2a4015;
  --bs-link-hover-color-rgb: 42, 64, 21;
  --bs-emphasis-color: var(--pn-ink);
}

html { scroll-behavior: smooth; font-size: 18px; overflow-x: clip; }
body { overflow-x: clip; }

body {
  font-family: var(--pn-sans);
  color: var(--pn-body);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

/* ---------- Typography ---------- */
h1, h2, h3, h4, h5, h6, .pn-serif {
  font-family: var(--pn-serif);
  color: var(--pn-ink);
  font-weight: 400;
  line-height: 1.25;
}
h1 { font-size: clamp(2rem, 4.2vw, 3.15rem); letter-spacing: -0.01em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); }
h4 { font-size: 1.2rem; }
h5, .h5 { font-weight: 600; }
.lead { font-family: var(--pn-sans); font-weight: 600; font-size: 1.2rem; color: #333; }
.eyebrow {
  font-family: var(--pn-sans);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .78rem;
  font-weight: 600;
  color: var(--pn-green);
}
a { text-decoration: none; }
a:hover { text-decoration: underline; }
p a { color: var(--pn-green); text-decoration: underline; text-underline-offset: 2px; }

.text-green { color: var(--pn-green) !important; }
.bg-sand { background-color: var(--pn-sand) !important; }
.bg-sand-2 { background-color: var(--pn-sand-2) !important; }
.bg-ink { background-color: var(--pn-ink) !important; }

/* ---------- Buttons ---------- */
.btn { font-family: var(--pn-sans); font-weight: 600; border-radius: 2px; letter-spacing: .02em; padding: .7rem 1.6rem; transition: all .2s ease; }
.btn-dark { background: var(--pn-ink); border-color: var(--pn-ink); }
.btn-dark:hover { background: #000; border-color: #000; }
.btn-green { background: var(--pn-green); border-color: var(--pn-green); color: #fff; }
.btn-green:hover { background: #2a4015; border-color: #2a4015; color: #fff; }
.btn-outline-dark { border-color: var(--pn-ink); color: var(--pn-ink); }
.btn-outline-dark:hover { background: var(--pn-ink); color: #fff; }
.btn-lg { padding: .85rem 2rem; font-size: 1.05rem; }

/* ---------- Header / Navbar ---------- */
.pn-navbar {
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--pn-line);
  padding-top: 1.95rem;
  padding-bottom: 1.95rem;
}
/* header wraps the navbar; make it the sticky container so the bar stays fixed on scroll */
body > header { position: sticky; top: 0; z-index: 1030; }
.pn-brand { line-height: 1.05; }
.pn-brand .pn-brand-title { font-family: var(--pn-serif); font-size: 1.35rem; color: var(--pn-ink); display: block; }
.pn-brand .pn-brand-sub { font-family: var(--pn-sans); font-size: .82rem; letter-spacing: .04em; color: var(--pn-muted); display: block; }
.pn-navbar .nav-link { font-family: var(--pn-sans); font-weight: 500; font-size: 1.2rem; color: var(--pn-ink); padding: .5rem .85rem; }
.pn-navbar .nav-link:hover, .pn-navbar .nav-link:focus { color: var(--pn-green); }
.pn-navbar .dropdown-menu { border-radius: 4px; border: 0; box-shadow: 0 12px 30px rgba(0,0,0,.08); padding-top: 0; padding-bottom: 0; }
.pn-navbar .dropdown-item { font-weight: 500; font-size: 1rem; padding: 0.5rem 1rem; }
.pn-navbar .dropdown-item:hover { background: var(--pn-sand); color: var(--pn-green); }
.pn-nav-cta { padding: .55rem 1.4rem !important; }

/* ---------- Hero ---------- */
.pn-hero { position: relative; }
.pn-hero-img { width: 100%; height: clamp(320px, 46vw, 660px); object-fit: cover; }
.pn-hero-portrait { width: 128px; height: 128px; border-radius: 50%; object-fit: cover; border: 4px solid #fff; box-shadow: 0 8px 24px rgba(0,0,0,.15); }

/* ---------- Sections ---------- */
.section { padding: clamp(3rem, 7vw, 6rem) 0; }
.section-sm { padding: clamp(2rem, 4vw, 3.5rem) 0; }
.section-title { margin-bottom: 2.5rem; }

/* rounded media */
.pn-img, .pn-round { border-radius: 6px; }
.pn-shadow { box-shadow: 0 14px 40px rgba(0,0,0,.10); }
figure img { max-width: 100%; height: auto; }
.ratio-cover img { object-fit: cover; width:100%; height:100%; }

/* ---------- Cards / topic tiles ---------- */
.pn-card { background:#fff; border:1px solid var(--pn-line); border-radius:8px; overflow:hidden; height:100%; transition:transform .25s ease, box-shadow .25s ease; }
.pn-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.10); }
.pn-card .pn-card-img { aspect-ratio: 4/3; object-fit: cover; width:100%; }
.pn-card .pn-card-body { padding: 1.25rem 1.35rem 1.6rem; }
.pn-card h3 { font-size: 1.25rem; margin-bottom:.4rem; }

/* ---------- Lists ---------- */
.pn-check { list-style:none; padding-left:0; }
.pn-check li { position:relative; padding-left:1.9rem; margin-bottom:.7rem; font-size:1.25rem; }
.pn-check li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--pn-green); font-weight:700; }
/* heart bullets instead of check marks */
.pn-hearts li::before { content:"♥"; font-weight:400; }
/* filled round dots instead of check marks */
.pn-dots li::before { content:""; width:.5rem; height:.5rem; border-radius:50%; background:var(--pn-green); top:.62em; left:.35rem; }
/* nested sublist inside a pn-check: plain bullets, no check marks */
.pn-check .pn-sublist { list-style: disc; padding-left: 1.3rem; margin-top:.4rem; }
.pn-check .pn-sublist li { padding-left: 0; }
.pn-check .pn-sublist li::before { content: none; }

/* ---------- Testimonials ---------- */
.pn-quote { background:#fff; border:1px solid var(--pn-line); border-radius:8px; padding:1.6rem; }
/* equal-height only inside grid rows that opt in via .h-100 */
.pn-quote.h-100 { height:100%; }
.pn-quote .pn-quote-mark { font-family:var(--pn-serif); font-size:3rem; line-height:.6; color:var(--pn-green); opacity:.4; }
.pn-stars { color:#e7b40a; letter-spacing:2px; }

/* ---------- Accordion (FAQ) ---------- */
.accordion { --bs-accordion-btn-focus-box-shadow: none; --bs-accordion-active-bg: var(--pn-sand); --bs-accordion-active-color: var(--pn-ink); --bs-accordion-btn-color: var(--pn-ink); }
.accordion-button { font-family: var(--pn-serif); font-size: 1.1rem; }
.accordion-button:not(.collapsed) { color: var(--pn-ink); background: var(--pn-sand); box-shadow: none; }

/* ---------- Iframe embeds (tally / sanalab) ---------- */
.pn-embed { width:100%; border:0; }
.pn-embed-frame { width:100%; min-height:640px; border:0; }

/* ---------- Footer ---------- */
.pn-footer { background: var(--pn-sand); color: var(--pn-body); padding: 3.5rem 0 1.5rem; border-top:1px solid var(--pn-line); }
.pn-footer h5 { font-family: var(--pn-sans); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.14em; color:var(--pn-muted); margin-bottom:1rem; }
.pn-footer a { color: var(--pn-body); }
.pn-footer a:hover { color: var(--pn-green); }
.pn-footer .pn-footer-brand { font-family:var(--pn-serif); font-size:1.2rem; color:var(--pn-ink); }
.pn-footer ul { list-style:none; padding:0; margin:0; }
.pn-footer li { margin-bottom:.45rem; }
.pn-footer-bottom { border-top:1px solid var(--pn-line); margin-top:2.5rem; padding-top:1.25rem; font-size:.85rem; color:var(--pn-muted); }

/* ---------- Utilities ---------- */
.maxw-720 { max-width:720px; }
.maxw-820 { max-width:820px; }
.maxw-920 { max-width:920px; }
.prose p { margin-bottom:1.1rem; }
.prose h2 { margin-top:2.2rem; margin-bottom:1rem; }
.prose h3 { margin-top:1.8rem; margin-bottom:.75rem; }
.prose ul, .prose ol { margin-bottom:1.2rem; }
.prose li { margin-bottom:.4rem; }
.divider-dot { width:6px;height:6px;border-radius:50%;background:var(--pn-green);display:inline-block; }

img { max-width:100%; }

/* ---------- Header brand logo (image already contains wordmark) ---------- */
.pn-brand img { display:block; height:70px; width:auto; }
@media (max-width: 400px) { .pn-brand img { height:52px; } }

/* ---------- Navbar: Instagram icon, toggler, hover dropdown ---------- */
.pn-ig-link { color: var(--pn-ink); display:inline-flex; align-items:center; padding:0; }
.pn-ig-link:hover, .pn-ig-link:focus { color: var(--pn-green); }
.pn-ig-icon {
  display:inline-block; width:20px; height:20px; margin-left:5px; margin-right:5px; background-color: currentColor; vertical-align:middle;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.9 3.9 0 0 0-1.417.923A3.9 3.9 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.9 3.9 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.9 3.9 0 0 0-.923-1.417A3.9 3.9 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0m-.717 1.442h.718c2.136 0 2.389.008 3.232.046.78.036 1.204.166 1.486.276.373.145.64.319.92.599s.453.546.598.92c.11.281.24.705.275 1.485.038.843.046 1.096.046 3.231s-.008 2.389-.046 3.232c-.036.78-.166 1.203-.276 1.485a2.5 2.5 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.046-3.232.046s-2.39-.008-3.233-.046c-.78-.036-1.203-.166-1.485-.276a2.5 2.5 0 0 1-.92-.598 2.5 2.5 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.232s.008-2.389.046-3.233c.036-.78.166-1.203.276-1.485.145-.373.319-.64.599-.92s.546-.453.92-.598c.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045z'/%3E%3Cpath d='M8 3.892a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217m0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334zm4.271-2.334a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.9 3.9 0 0 0-1.417.923A3.9 3.9 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.9 3.9 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.9 3.9 0 0 0-.923-1.417A3.9 3.9 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0m-.717 1.442h.718c2.136 0 2.389.008 3.232.046.78.036 1.204.166 1.486.276.373.145.64.319.92.599s.453.546.598.92c.11.281.24.705.275 1.485.038.843.046 1.096.046 3.231s-.008 2.389-.046 3.232c-.036.78-.166 1.203-.276 1.485a2.5 2.5 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.046-3.232.046s-2.39-.008-3.233-.046c-.78-.036-1.203-.166-1.485-.276a2.5 2.5 0 0 1-.92-.598 2.5 2.5 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.232s.008-2.389.046-3.233c.036-.78.166-1.203.276-1.485.145-.373.319-.64.599-.92s.546-.453.92-.598c.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045z'/%3E%3Cpath d='M8 3.892a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217m0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334zm4.271-2.334a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92'/%3E%3C/svg%3E") center/contain no-repeat;
}
.pn-navbar .navbar-toggler { border:0; box-shadow:none; padding:.25rem .35rem; }
.pn-navbar .navbar-toggler:focus { box-shadow:none; outline:0; }
.pn-navbar .nav-link:focus, .pn-navbar .nav-link:focus-visible,
.pn-navbar .dropdown-toggle:focus, .pn-navbar .dropdown-toggle:focus-visible,
.pn-navbar .dropdown-item:focus, .pn-navbar .dropdown-item:focus-visible { outline:0; box-shadow:none; }
.pn-navbar a, .pn-navbar .nav-link, .pn-navbar .navbar-toggler { -webkit-tap-highlight-color: transparent; }
@media (min-width: 992px) {
  .pn-navbar .nav-item.dropdown { position: relative; }
  .pn-navbar .nav-item.dropdown:hover > .dropdown-menu { display:block; top:100%; right:0; left:auto; margin-top:0; }
}
@media (max-width: 991.98px) {
  .pn-navbar { padding-top: 0.95rem; padding-bottom: 0.95rem; }
  .pn-navbar .dropdown-menu { border:0; box-shadow:none; background:transparent; padding:0 0 .2rem 1rem; border-radius:0; }
  .pn-navbar .dropdown-item:hover, .pn-navbar .dropdown-item:focus { background:transparent; color: var(--pn-green); }
  .pn-navbar .navbar-collapse { margin-top: 15px; }
  .pn-navbar .pn-ig-icon { width: 25px; height: 25px; margin-bottom: 15px; margin-top: 5px; }
  .pn-navbar .pn-nav-cta { margin-left: 15px; }
}

/* ---------- Home hero ---------- */
.pn-hero-lead { font-family: var(--pn-serif); font-weight: 400; font-size: 25px; color: var(--pn-ink); line-height: 1.5; margin-top: 2.2rem; margin-bottom: 2.2rem; }
.pn-hero-photo { width: 320px; max-width: 86%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: 10px; box-shadow: 0 14px 38px rgba(0,0,0,.20); }
.pn-hero-name { font-family: var(--pn-serif); font-weight: 700; font-size: 1.4rem; color: var(--pn-ink); }
.pn-hero-role { font-size: 1.12rem; }

/* ---------- Home themes list + triangles ---------- */
.pn-themes { font-family: var(--pn-serif); font-size: clamp(1.3rem, 2.4vw, 1.7rem); line-height: 1.85; margin-bottom: .4rem; }
.pn-themes a { color: var(--pn-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.pn-themes a:hover { color: var(--pn-green); }
.pn-themes-sm { font-size: clamp(1rem, 1.7vw, 1.2rem); line-height: 1.7; }
.pn-questions { font-family: var(--pn-serif); font-size: clamp(1.3rem, 2.4vw, 1.7rem); line-height: 1.85; text-align: left; display: inline-block; list-style: disc outside; padding-left: 1.2em; margin: 0 auto; }
.pn-questions li { margin-bottom: .2rem; }
.pn-tri { display:inline-block; vertical-align:middle; }

/* ---------- Image quote banner ---------- */
.pn-quote-banner { position: relative; }
.pn-quote-banner img { width: 100%; height: clamp(300px, 42vw, 520px); object-fit: cover; display: block; }
.pn-quote-banner-text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 2rem; background: rgba(0,0,0,.32); }
.pn-quote-banner-text p { font-family: var(--pn-serif); color: #fff; font-size: clamp(1.6rem, 3.6vw, 2.6rem); line-height: 1.3; text-align: center; max-width: 900px; margin: 0; text-shadow: 0 2px 18px rgba(0,0,0,.45); }

/* ---------- Feedback carousel ---------- */
.pn-feedback-carousel { position: relative; }
@media (min-width: 768px) { .pn-feedback-carousel { padding: 0 3.5rem; } }
.pn-feedback-carousel .carousel-control-prev,
.pn-feedback-carousel .carousel-control-next { width: 2.75rem; opacity: 1; }
.pn-feedback-carousel .carousel-control-prev { left: 0; }
.pn-feedback-carousel .carousel-control-next { right: 0; }
.pn-feedback-carousel .carousel-control-prev-icon,
.pn-feedback-carousel .carousel-control-next-icon {
  background-color: var(--pn-green); border-radius: 50%; width: 2.75rem; height: 2.75rem; background-size: 1.05rem 1.05rem;
}
/* Mobile: Pfeile unterhalb der Feedbacks statt seitlich */
@media (max-width: 767.98px) {
  .pn-feedback-carousel { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; padding: 0; }
  .pn-feedback-carousel .carousel-inner { flex: 0 0 100%; }
  .pn-feedback-carousel .carousel-control-prev,
  .pn-feedback-carousel .carousel-control-next {
    position: static; width: 2.75rem; height: 2.75rem; margin-top: 1.5rem;
  }
}

/* ---------- Emphasis statement (subpage key sentences) ---------- */
.pn-statement {
  font-family: var(--pn-serif);
  font-style: italic;
  font-size: 1.2rem;
  line-height: 1.5;
  color: var(--pn-green);
  border-left: 3px solid var(--pn-green);
  padding-left: 1.15rem;
  margin: 1.6rem 0 0;
}

/* ---------- Plain box (no hover movement) ---------- */
.pn-box { background:#fff; border:1px solid var(--pn-line); border-radius:8px; padding:1.5rem; }

/* ---------- Marker-less list ---------- */
.pn-list-plain { list-style:none; padding-left:0; margin:0; }
.pn-list-plain li { padding-left:0; margin-bottom:.55rem; }

/* ---------- Price block ---------- */
.pn-price { font-family:var(--pn-serif); font-size:2.4rem; line-height:1.1; color:var(--pn-green); margin-bottom:.35rem; }
.pn-price-sub { font-size:1.05rem; color:var(--pn-body); margin-bottom:.2rem; }

/* ---------- Labordiagnostik test list ---------- */
.pn-lab-list { border-top:1px solid var(--pn-line); }
.pn-lab-item {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:.5rem 1.25rem; padding:1rem 0; border-bottom:1px solid var(--pn-line);
}
.pn-lab-info { flex:1 1 300px; }
.pn-lab-title { font-weight:600; margin-bottom:.15rem; }
.pn-lab-desc { font-size:.92rem; color:var(--pn-muted); margin-bottom:0; }
.pn-lab-action { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.pn-lab-price { font-weight:700; color:var(--pn-green); white-space:nowrap; min-width:5.5rem; text-align:right; }
.pn-lab-action .btn-ico-cart { min-width:8.5rem; justify-content:center; }

/* Small icon buttons */
.btn-sm { padding:.4rem .85rem; font-size:.85rem; border-radius:2px; }
.btn-ico { display:inline-flex; align-items:center; gap:.4rem; }
.btn-ico::before {
  content:""; display:inline-block; width:1.05em; height:1.05em; flex:none;
  background-color: currentColor;
  -webkit-mask-position:center; mask-position:center;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-size:contain; mask-size:contain;
}
.btn-ico-cart::before {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a2.5 2.5 0 0 0-2.5 2.5V4h5v-.5A2.5 2.5 0 0 0 8 1zm3.5 3v-.5a3.5 3.5 0 1 0-7 0V4H1v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4h-3.5z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a2.5 2.5 0 0 0-2.5 2.5V4h5v-.5A2.5 2.5 0 0 0 8 1zm3.5 3v-.5a3.5 3.5 0 1 0-7 0V4H1v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4h-3.5z'/%3E%3C/svg%3E");
}
.btn-ico-info::before {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z'/%3E%3C/svg%3E");
}

/* Gender icons in Sexual-Hormone order dropdown */
.pn-gender {
  display:inline-block; width:1em; height:1em; margin-right:.55rem; vertical-align:-.12em; background-color: currentColor;
  -webkit-mask-position:center; mask-position:center; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:contain; mask-size:contain;
}
.pn-gender-female {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a4 4 0 1 0 0 8 4 4 0 0 0 0-8M3 5a5 5 0 1 1 5.5 4.975V12h2a.5.5 0 0 1 0 1h-2v2.5a.5.5 0 0 1-1 0V13h-2a.5.5 0 0 1 0-1h2V9.975A5 5 0 0 1 3 5'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a4 4 0 1 0 0 8 4 4 0 0 0 0-8M3 5a5 5 0 1 1 5.5 4.975V12h2a.5.5 0 0 1 0 1h-2v2.5a.5.5 0 0 1-1 0V13h-2a.5.5 0 0 1 0-1h2V9.975A5 5 0 0 1 3 5'/%3E%3C/svg%3E");
}
.pn-gender-male {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M9.5 2a.5.5 0 0 1 0-1h5a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-1 0V2.707L9.871 6.836a5 5 0 1 1-.707-.707L13.293 2zM6 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M9.5 2a.5.5 0 0 1 0-1h5a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-1 0V2.707L9.871 6.836a5 5 0 1 1-.707-.707L13.293 2zM6 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8'/%3E%3C/svg%3E");
}

/* Lab partner logos */
.pn-lab-logos { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:2.5rem; }
.pn-lab-logos img { max-height:64px; width:auto; }

/* ==========================================================================
   Spacing utilities (margin/padding) 0–12
   Skala: 0–5 wie Bootstrap (0, .25, .5, 1, 1.5, 3rem), 6–12 in 1rem-Schritten
   Sides: a=all, t=top, b=bottom, l=left, r=right, x=left+right, y=top+bottom
   ========================================================================== */
.ma-0 { margin: 0 !important; }
.ma-1 { margin: 0.25rem !important; }
.ma-2 { margin: 0.5rem !important; }
.ma-3 { margin: 1rem !important; }
.ma-4 { margin: 1.5rem !important; }
.ma-5 { margin: 3rem !important; }
.ma-6 { margin: 4rem !important; }
.ma-7 { margin: 5rem !important; }
.ma-8 { margin: 6rem !important; }
.ma-9 { margin: 7rem !important; }
.ma-10 { margin: 8rem !important; }
.ma-11 { margin: 9rem !important; }
.ma-12 { margin: 10rem !important; }
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 0.25rem !important; }
.mt-2 { margin-top: 0.5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mt-5 { margin-top: 3rem !important; }
.mt-6 { margin-top: 4rem !important; }
.mt-7 { margin-top: 5rem !important; }
.mt-8 { margin-top: 6rem !important; }
.mt-9 { margin-top: 7rem !important; }
.mt-10 { margin-top: 8rem !important; }
.mt-11 { margin-top: 9rem !important; }
.mt-12 { margin-top: 10rem !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 0.25rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }
.mb-6 { margin-bottom: 4rem !important; }
.mb-7 { margin-bottom: 5rem !important; }
.mb-8 { margin-bottom: 6rem !important; }
.mb-9 { margin-bottom: 7rem !important; }
.mb-10 { margin-bottom: 8rem !important; }
.mb-11 { margin-bottom: 9rem !important; }
.mb-12 { margin-bottom: 10rem !important; }
.ml-0 { margin-left: 0 !important; }
.ml-1 { margin-left: 0.25rem !important; }
.ml-2 { margin-left: 0.5rem !important; }
.ml-3 { margin-left: 1rem !important; }
.ml-4 { margin-left: 1.5rem !important; }
.ml-5 { margin-left: 3rem !important; }
.ml-6 { margin-left: 4rem !important; }
.ml-7 { margin-left: 5rem !important; }
.ml-8 { margin-left: 6rem !important; }
.ml-9 { margin-left: 7rem !important; }
.ml-10 { margin-left: 8rem !important; }
.ml-11 { margin-left: 9rem !important; }
.ml-12 { margin-left: 10rem !important; }
.mr-0 { margin-right: 0 !important; }
.mr-1 { margin-right: 0.25rem !important; }
.mr-2 { margin-right: 0.5rem !important; }
.mr-3 { margin-right: 1rem !important; }
.mr-4 { margin-right: 1.5rem !important; }
.mr-5 { margin-right: 3rem !important; }
.mr-6 { margin-right: 4rem !important; }
.mr-7 { margin-right: 5rem !important; }
.mr-8 { margin-right: 6rem !important; }
.mr-9 { margin-right: 7rem !important; }
.mr-10 { margin-right: 8rem !important; }
.mr-11 { margin-right: 9rem !important; }
.mr-12 { margin-right: 10rem !important; }
.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.mx-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
.mx-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
.mx-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
.mx-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }
.mx-5 { margin-left: 3rem !important; margin-right: 3rem !important; }
.mx-6 { margin-left: 4rem !important; margin-right: 4rem !important; }
.mx-7 { margin-left: 5rem !important; margin-right: 5rem !important; }
.mx-8 { margin-left: 6rem !important; margin-right: 6rem !important; }
.mx-9 { margin-left: 7rem !important; margin-right: 7rem !important; }
.mx-10 { margin-left: 8rem !important; margin-right: 8rem !important; }
.mx-11 { margin-left: 9rem !important; margin-right: 9rem !important; }
.mx-12 { margin-left: 10rem !important; margin-right: 10rem !important; }
.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
.my-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
.my-5 { margin-top: 3rem !important; margin-bottom: 3rem !important; }
.my-6 { margin-top: 4rem !important; margin-bottom: 4rem !important; }
.my-7 { margin-top: 5rem !important; margin-bottom: 5rem !important; }
.my-8 { margin-top: 6rem !important; margin-bottom: 6rem !important; }
.my-9 { margin-top: 7rem !important; margin-bottom: 7rem !important; }
.my-10 { margin-top: 8rem !important; margin-bottom: 8rem !important; }
.my-11 { margin-top: 9rem !important; margin-bottom: 9rem !important; }
.my-12 { margin-top: 10rem !important; margin-bottom: 10rem !important; }

.pa-0 { padding: 0 !important; }
.pa-1 { padding: 0.25rem !important; }
.pa-2 { padding: 0.5rem !important; }
.pa-3 { padding: 1rem !important; }
.pa-4 { padding: 1.5rem !important; }
.pa-5 { padding: 3rem !important; }
.pa-6 { padding: 4rem !important; }
.pa-7 { padding: 5rem !important; }
.pa-8 { padding: 6rem !important; }
.pa-9 { padding: 7rem !important; }
.pa-10 { padding: 8rem !important; }
.pa-11 { padding: 9rem !important; }
.pa-12 { padding: 10rem !important; }
.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: 0.25rem !important; }
.pt-2 { padding-top: 0.5rem !important; }
.pt-3 { padding-top: 1rem !important; }
.pt-4 { padding-top: 1.5rem !important; }
.pt-5 { padding-top: 3rem !important; }
.pt-6 { padding-top: 4rem !important; }
.pt-7 { padding-top: 5rem !important; }
.pt-8 { padding-top: 6rem !important; }
.pt-9 { padding-top: 7rem !important; }
.pt-10 { padding-top: 8rem !important; }
.pt-11 { padding-top: 9rem !important; }
.pt-12 { padding-top: 10rem !important; }
.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: 0.25rem !important; }
.pb-2 { padding-bottom: 0.5rem !important; }
.pb-3 { padding-bottom: 1rem !important; }
.pb-4 { padding-bottom: 1.5rem !important; }
.pb-5 { padding-bottom: 3rem !important; }
.pb-6 { padding-bottom: 4rem !important; }
.pb-7 { padding-bottom: 5rem !important; }
.pb-8 { padding-bottom: 6rem !important; }
.pb-9 { padding-bottom: 7rem !important; }
.pb-10 { padding-bottom: 8rem !important; }
.pb-11 { padding-bottom: 9rem !important; }
.pb-12 { padding-bottom: 10rem !important; }
.pl-0 { padding-left: 0 !important; }
.pl-1 { padding-left: 0.25rem !important; }
.pl-2 { padding-left: 0.5rem !important; }
.pl-3 { padding-left: 1rem !important; }
.pl-4 { padding-left: 1.5rem !important; }
.pl-5 { padding-left: 3rem !important; }
.pl-6 { padding-left: 4rem !important; }
.pl-7 { padding-left: 5rem !important; }
.pl-8 { padding-left: 6rem !important; }
.pl-9 { padding-left: 7rem !important; }
.pl-10 { padding-left: 8rem !important; }
.pl-11 { padding-left: 9rem !important; }
.pl-12 { padding-left: 10rem !important; }
.pr-0 { padding-right: 0 !important; }
.pr-1 { padding-right: 0.25rem !important; }
.pr-2 { padding-right: 0.5rem !important; }
.pr-3 { padding-right: 1rem !important; }
.pr-4 { padding-right: 1.5rem !important; }
.pr-5 { padding-right: 3rem !important; }
.pr-6 { padding-right: 4rem !important; }
.pr-7 { padding-right: 5rem !important; }
.pr-8 { padding-right: 6rem !important; }
.pr-9 { padding-right: 7rem !important; }
.pr-10 { padding-right: 8rem !important; }
.pr-11 { padding-right: 9rem !important; }
.pr-12 { padding-right: 10rem !important; }
.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.px-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
.px-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.px-5 { padding-left: 3rem !important; padding-right: 3rem !important; }
.px-6 { padding-left: 4rem !important; padding-right: 4rem !important; }
.px-7 { padding-left: 5rem !important; padding-right: 5rem !important; }
.px-8 { padding-left: 6rem !important; padding-right: 6rem !important; }
.px-9 { padding-left: 7rem !important; padding-right: 7rem !important; }
.px-10 { padding-left: 8rem !important; padding-right: 8rem !important; }
.px-11 { padding-left: 9rem !important; padding-right: 9rem !important; }
.px-12 { padding-left: 10rem !important; padding-right: 10rem !important; }
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.py-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.py-7 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
.py-8 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.py-9 { padding-top: 7rem !important; padding-bottom: 7rem !important; }
.py-10 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
.py-11 { padding-top: 9rem !important; padding-bottom: 9rem !important; }
.py-12 { padding-top: 10rem !important; padding-bottom: 10rem !important; }


/* ---------- Standard-Absatzgrösse + Schutz bewusst gestylter Absätze ---------- */
p { font-size: 1.25rem !important; }
.pn-price-bw { font-family: var(--pn-serif); font-size: 1.4rem !important; line-height: 1.2; color: var(--pn-green); margin-bottom: .35rem; }
p.pn-hero-lead { font-size: 25px !important; }
p.pn-hero-name { font-size: 1.4rem !important; }
p.pn-hero-role { font-size: 1.12rem !important; }
p.pn-themes { font-size: clamp(1.3rem, 2.4vw, 1.7rem) !important; }
p.pn-themes-sm { font-size: clamp(1rem, 1.7vw, 1.2rem) !important; }
p.pn-price { font-size: 2.4rem !important; }
p.pn-price-sub { font-size: 1.05rem !important; }
p.pn-statement { font-size: 1.2rem !important; }
.pn-quote-banner-text p { font-size: clamp(1.6rem, 3.6vw, 2.6rem) !important; }
p.pn-lab-desc { font-size: .92rem !important; }
p.small { font-size: .875em !important; }
