/* Design3 www.dotnet-doktor.de */

:root {
 --d3-accent: #0B4F8C;
 --d3-accent-dark: #083A68;
 --d3-teal: #0B4F8C;
 --d3-ink: #0F1B2D;
 --d3-text: #3B4A60;
 --d3-muted: #4A5A70;
 --d3-line: #E2E8F0;
 --d3-soft: #E3EEF9;
 --d3-bg: #F5F8FC;
 --d3-card: #FFFFFF;
 --d3-radius: 20px;
 --d3-font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
}

/* Platz für die Scrollleiste immer freihalten, damit Kopfzeile und Menü beim Seitenwechsel nicht seitlich springen */
html { font-size: 16px; scrollbar-gutter: stable; }

body {
 margin: 0;
 padding: 0 !important;
 font-family: var(--d3-font);
 font-size: 16px;
 line-height: 1.6;
 color: var(--d3-ink);
 background: var(--d3-bg);
}

a { color: var(--d3-accent); }
a:hover, a:focus { color: var(--d3-accent-dark); }

.d3-wrap {
 max-width: 1240px;
 margin: 0 auto;
 padding: 0 32px;
 box-sizing: border-box;
}

/* Kopfzeile */

.d3-header {
 background: var(--d3-card);
 border-bottom: 1px solid var(--d3-line);
 position: sticky;
 top: 0;
 z-index: 100;
}

.d3-header-inner {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 10px 24px;
 padding-top: 14px;
 padding-bottom: 10px;
}

.d3-header-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }

.d3-brand {
 display: flex;
 align-items: center;
 gap: 12px;
 text-decoration: none;
 color: var(--d3-ink);
}

.d3-brand:hover, .d3-brand:focus { text-decoration: none; color: var(--d3-ink); }

.d3-brand-icon {
 width: 44px;
 height: 44px;
 object-fit: contain;
 flex: 0 0 auto;
 display: block;
}

.d3-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.d3-brand-title { font-weight: 800; font-size: 18px; letter-spacing: -0.01em; }
.d3-brand-sub { font-size: 13px; color: var(--d3-muted); }

.d3-nav-toggle { display: none; }

.d3-nav-button {
 display: none;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 border-radius: 10px;
 border: 1px solid var(--d3-line);
 cursor: pointer;
 margin: 0;
}

.d3-nav {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: flex-start;
 gap: 2px;
 width: 100%;
 margin-left: -10px;
}

.d3-nav a {
 padding: 8px 10px;
 font-size: 15px;
 font-weight: 600;
 text-decoration: none;
 color: var(--d3-ink);
 border-radius: 8px;
}

.d3-nav a:hover, .d3-nav a:focus { background: var(--d3-bg); color: var(--d3-accent); text-decoration: none; }
.d3-nav a.d3-active { color: var(--d3-accent); }

.d3-cta {
 display: inline-flex;
 align-items: center;
 min-height: 44px;
 padding: 0 20px;
 border-radius: 12px;
 background: var(--d3-accent);
 color: #FFFFFF;
 font-size: 15px;
 font-weight: 700;
 text-decoration: none;
 box-sizing: border-box;
}

.d3-cta:hover, .d3-cta:focus { background: var(--d3-accent-dark); color: #FFFFFF; text-decoration: none; }

@media (max-width: 1100px) {
 .d3-nav-button { display: inline-flex; }
 .d3-nav { display: none; flex-direction: column; align-items: stretch; margin-left: 0; padding-bottom: 8px; }
 .d3-nav a { padding: 12px 10px; }
 .d3-nav-toggle:checked ~ .d3-nav { display: flex; }
}

/* Startseite: Kopfbereich mit Foto und Stethoskop */

.d3-hero {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 48px;
 padding-top: 56px;
 padding-bottom: 64px;
}

.d3-hero-text { flex: 1 1 500px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }

.d3-badge {
 align-self: flex-start;
 padding: 8px 14px;
 border-radius: 999px;
 background: var(--d3-soft);
 color: var(--d3-accent);
 font-size: 14px;
 font-weight: 700;
}

.d3-hero h1 {
 margin: 0;
 font-size: 58px;
 line-height: 1.05;
 font-weight: 800;
 letter-spacing: -0.03em;
 color: var(--d3-ink);
}

.d3-hero h1 span { color: var(--d3-accent); }

.d3-lead { margin: 0; font-size: 19px; line-height: 1.6; color: var(--d3-text); max-width: 560px; }

.d3-buttons { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 6px; }

.d3-btn {
 display: inline-block;
 padding: 15px 26px;
 border-radius: 12px;
 font-size: 16px;
 font-weight: 700;
 text-decoration: none;
 border: 1.5px solid transparent;
}

.d3-btn:hover, .d3-btn:focus { text-decoration: none; }
.d3-btn-primary { background: var(--d3-accent); color: #FFFFFF; }
.d3-btn-primary:hover, .d3-btn-primary:focus { background: var(--d3-accent-dark); color: #FFFFFF; }
.d3-btn-secondary { background: var(--d3-card); border-color: #C9D6E5; color: var(--d3-ink); }
.d3-btn-secondary:hover, .d3-btn-secondary:focus { border-color: var(--d3-accent); color: var(--d3-accent); }

.d3-hero-visual { flex: 1 1 400px; min-width: 0; display: flex; justify-content: center; }

.d3-portrait { position: relative; width: 100%; max-width: 480px; aspect-ratio: 520 / 560; }

.d3-portrait-frame {
 position: absolute;
 left: 13.46%;
 top: 14.29%;
 width: 76.92%;
 aspect-ratio: 1;
 border-radius: 50%;
 background: var(--d3-soft);
 padding: 12px;
 box-sizing: border-box;
 box-shadow: 0 24px 48px rgba(15, 27, 45, 0.12);
}

.d3-portrait-frame img {
 width: 100%;
 height: 100%;
 border-radius: 50%;
 object-fit: cover;
 object-position: center 20%;
 display: block;
}

.d3-portrait svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }

@media (max-width: 700px) {
 .d3-hero { padding-top: 32px; gap: 32px; }
 .d3-hero h1 { font-size: 40px; }
}

/* Startseite: Listen */

.d3-lists {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
 gap: 28px;
 padding-bottom: 56px;
}

.d3-card {
 padding: 32px;
 border-radius: var(--d3-radius);
 background: var(--d3-card);
 border: 1px solid var(--d3-line);
 display: flex;
 flex-direction: column;
 gap: 16px;
 min-width: 0;
}

.d3-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.d3-card-head h2 { margin: 0; font-size: 26px; font-weight: 800; color: var(--d3-ink); border: 0; padding: 0; }
.d3-card-head a { font-weight: 700; font-size: 15px; text-decoration: none; white-space: nowrap; }

.d3-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.d3-list > li { padding: 14px 0; border-bottom: 1px solid var(--d3-line); }
.d3-list > li:first-child { padding-top: 0; }
.d3-list > li:last-child { border-bottom: 0; padding-bottom: 0; }

.d3-item-link { display: block; font-size: 16px; font-weight: 700; color: var(--d3-ink); text-decoration: none; line-height: 1.4; }
.d3-item-link:hover, .d3-item-link:focus { color: var(--d3-accent); text-decoration: underline; }
.d3-item-meta { display: block; font-size: 13px; font-weight: 700; color: var(--d3-teal); margin-bottom: 2px; }
.d3-item-sub { display: block; font-size: 14px; color: var(--d3-muted); margin-top: 2px; }

.d3-event { display: flex; gap: 16px; align-items: flex-start; }

.d3-date {
 flex: 0 0 60px;
 height: 60px;
 border-radius: 12px;
 background: var(--d3-soft);
 color: var(--d3-accent);
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 font-weight: 800;
 line-height: 1.1;
}

.d3-date-day { font-size: 20px; }
.d3-date-month { font-size: 12px; text-transform: uppercase; }

.d3-books { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }

.d3-book { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--d3-ink); }
.d3-book:hover, .d3-book:focus { color: var(--d3-accent); text-decoration: none; }

.d3-book img {
 width: 100%;
 aspect-ratio: 3 / 4;
 object-fit: cover;
 border-radius: 6px;
 border: 1px solid #C9D6E5;
 background: var(--d3-soft);
 box-shadow: 0 8px 18px rgba(15, 27, 45, 0.12);
}

.d3-book span { font-size: 14px; font-weight: 700; line-height: 1.35; }

/* Startseite: Nachrichten */

.d3-news { padding-bottom: 56px; }
.d3-news .d3-card { gap: 0; }
.d3-news-item { padding: 18px 0; border-bottom: 1px solid var(--d3-line); }
.d3-news-item:last-child { border-bottom: 0; }
.d3-news-item p { margin: 6px 0 0; color: var(--d3-text); }
.d3-news-item blockquote { margin: 0; padding: 0; border: 0; font-size: 16px; }

/* Unterseiten */

.d3-page { padding-top: 40px; padding-bottom: 56px; }

.d3-content {
 background: var(--d3-card);
 border: 1px solid var(--d3-line);
 border-radius: var(--d3-radius);
 padding: 40px 48px;
 color: var(--d3-text);
 overflow-wrap: anywhere;
}

.d3-content h1, .d3-content h2 { font-size: 32px; font-weight: 800; letter-spacing: -0.02em; color: var(--d3-ink); margin: 0 0 20px; line-height: 1.2; }
.d3-content h3 { font-size: 22px; font-weight: 800; color: var(--d3-ink); margin: 28px 0 12px; }
.d3-content h4 { font-size: 18px; font-weight: 700; color: var(--d3-ink); margin: 20px 0 10px; }
.d3-content p { margin: 0 0 16px; }
.d3-content img { max-width: 100%; height: auto; }
.d3-content table { max-width: 100%; }
.d3-content ul, .d3-content ol { padding-left: 22px; margin: 0 0 16px; }

@media (max-width: 700px) {
 .d3-wrap { padding: 0 16px; }
 .d3-content { padding: 24px 20px; }
 .d3-card { padding: 24px 20px; }
}

/* Newsletter */

.d3-newsletter {
 margin-bottom: 72px;
 padding: 40px 44px;
 border-radius: 24px;
 background: var(--d3-accent);
 color: #FFFFFF;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 24px;
}

.d3-newsletter h2 { margin: 0 0 6px; font-size: 28px; font-weight: 800; color: #FFFFFF; border: 0; padding: 0; }
.d3-newsletter p { margin: 0; font-size: 16px; color: #DCE8F5; }
.d3-newsletter .d3-btn { background: #FFFFFF; color: var(--d3-accent); }
.d3-newsletter .d3-btn:hover, .d3-newsletter .d3-btn:focus { background: var(--d3-soft); }

/* Fußzeile */

.d3-footer { background: var(--d3-ink); color: #C3CDDA; font-size: 15px; }
.d3-footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 36px; padding-bottom: 36px; }
.d3-footer a { color: #E6EDF7; }
.d3-footer a:hover, .d3-footer a:focus { color: #FFFFFF; }
.d3-footer-links { display: flex; flex-wrap: wrap; gap: 8px 22px; }

/* Übernommene Hilfsklassen aus default.css */

.clear { clear: both; }
.Abgrenzung { margin-top: 10px; margin-bottom: 10px; }
.TwitterImg { width: 80%; margin-left: 30px; margin-right: 10px; }
.fontLayout small { font-weight: bold; font-size: .83em; }
.mehr { margin-top: 4px; font-weight: 700; }
.d3-content blockquote { font-size: 16px; border-left: 3px solid var(--d3-soft); padding: 4px 0 4px 16px; margin: 8px 0 16px; }

/* Liste mit abwechselnd hinterlegten Einträgen (DataListTable) */

.d3-datalist { max-width: 100%; display: flex; flex-direction: column; margin: 0 0 16px; }
.d3-datalist-item { display: flow-root; padding: 10px 12px; border-radius: 8px; }

/* Blätterleiste (Pager) */

.d3-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 16px 0; }
.d3-pager-pages { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.d3-pager-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--d3-line); background: var(--d3-card); color: var(--d3-ink); font-weight: 700; font-size: 15px; text-decoration: none; box-sizing: border-box; }
a.d3-pager-link:hover, a.d3-pager-link:focus { border-color: var(--d3-accent); color: var(--d3-accent); text-decoration: none; }
.d3-pager-current { background: var(--d3-accent); border-color: var(--d3-accent); color: #FFFFFF; }
.d3-pager-disabled { color: #8A97A8; background: var(--d3-bg); }
.d3-pager-gap { padding: 0 4px; color: var(--d3-muted); }
.d3-pager-size { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; font-size: 15px; color: var(--d3-muted); }
.d3-pager-size label { margin: 0; font-weight: 600; }
.d3-pager-size select { min-height: 44px; padding: 0 10px; border-radius: 10px; border: 1px solid #C9D6E5; background: var(--d3-card); font: inherit; color: var(--d3-ink); }
.d3-pager-size button { min-height: 44px; padding: 0 14px; border-radius: 10px; border: 0; background: var(--d3-accent); color: #FFFFFF; font: inherit; font-weight: 700; }

/* Kopfzeile auf schmalen Telefonen: Logo und Kontakt-Button in einer Zeile halten */

@media (max-width: 420px) {
 .d3-header-inner { column-gap: 10px; }
 .d3-brand { gap: 8px; }
 .d3-brand-icon { width: 36px; height: 36px; }
 .d3-brand-title { font-size: 14px; }
 .d3-brand-sub { font-size: 12px; }
 .d3-header-actions { gap: 6px; }
 .d3-cta { padding: 0 14px; font-size: 14px; }
 .d3-nav-button { width: 40px; }
}

/* Nachrichten: auf der Startseite zweispaltig auf großen Displays */

.d3-card-head-links { display: inline-flex; align-items: center; gap: 14px; }
.d3-news-grid { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 40px; }
@media (min-width: 900px) {
 .d3-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .d3-news-grid .d3-news-item { border-bottom: 0; }
}
.d3-news-list .d3-news-item:first-child { padding-top: 0; }

/* RSS-Symbol */

.d3-rss-link { display: inline-flex; vertical-align: middle; border-radius: 6px; }
.d3-rss-link:hover .d3-rss-icon, .d3-rss-link:focus .d3-rss-icon { filter: brightness(0.85); }
.d3-rss-icon { display: block; }
