:root{--bg:#fff;--fg:#202936;--muted:#667085;--primary:#1e56a0;--primary-dark:#174783;--secondary:#f4f6f9;--accent:#e7f0fc;--border:#dfe4ea;--card:#fff;--danger:#c83d2f;--danger-bg:#fff6f4;--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}.container{width:min(1152px,calc(100% - 32px));margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header-inner{height:64px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px}.brand-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:var(--primary);color:white;font-size:21px}.desktop-nav{display:flex;gap:4px}.desktop-nav a,.mobile-nav a{padding:10px 12px;border-radius:6px;font-size:14px;font-weight:600;color:#4f5968}.desktop-nav a:hover,.mobile-nav a:hover{background:var(--accent);color:var(--primary)}.menu-toggle{display:none;border:0;background:transparent;font-size:26px;color:var(--fg);cursor:pointer}.mobile-nav{display:none;border-top:1px solid var(--border);padding:8px 16px 12px}.mobile-nav a{display:block;font-size:16px}.hero{background:linear-gradient(180deg,#e8f1fc 0%,#f1f4f8 60%,#fff 100%)}.hero-inner{padding:72px 0 88px}.hero-copy{max-width:760px}.eyebrow{margin:0 0 10px;color:var(--primary);font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.hero h1{margin:0;font-size:clamp(34px,5vw,54px);line-height:1.12;letter-spacing:-.02em}.lead{margin:20px 0 0;max-width:760px;color:var(--muted);font-size:18px;line-height:1.7}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 24px;border-radius:7px;font-size:14px;font-weight:800;transition:.2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border:1px solid var(--primary);color:var(--primary);background:#fff}.btn-outline:hover{background:var(--accent)}.section{padding:72px 0}.section-secondary{background:var(--secondary)}h2{margin:0;font-size:32px;line-height:1.2;letter-spacing:-.015em}.section-intro{max-width:820px}.section-intro p{margin:16px 0 0;color:var(--muted);line-height:1.75}.services-grid{list-style:none;padding:0;margin:38px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:24px;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:0 8px 25px rgba(31,54,80,.08);transform:translateY(-1px)}.service-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:7px;background:var(--accent);color:var(--primary);font-size:25px;font-weight:700;margin-bottom:16px}.card h3{margin:0;font-size:19px;line-height:1.35}.card p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.65}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.hours-box{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.box-heading{padding:16px 24px;background:var(--accent);border-bottom:1px solid var(--border);font-size:18px;font-weight:800}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th,td{padding:12px 20px;border-bottom:1px solid var(--border);white-space:nowrap}thead th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}tbody th{font-weight:800}tbody td{color:var(--muted)}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}.emergency-box{overflow:hidden;border:2px solid #e9aaa3;border-radius:var(--radius);background:var(--danger-bg)}.emergency-heading{display:flex;align-items:center;gap:9px;padding:16px 24px;background:var(--danger);color:#fff;font-size:18px;font-weight:800}.emergency-box ul{list-style:none;padding:0;margin:0}.emergency-box li{padding:16px 24px;border-bottom:1px solid #f0c7c2;display:flex;flex-direction:column;gap:3px}.emergency-box li:last-child{border-bottom:0}.emergency-box li span{font-size:14px;color:#4d555f}.emergency-box a{font-size:21px;font-weight:900;color:var(--danger)}.footer{border-top:1px solid var(--border);background:#fff}.footer-inner{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer p{margin:0;color:var(--muted);font-size:14px}.footer nav{display:flex;gap:24px}.footer nav a{font-size:14px;font-weight:700;color:#4f5968}.footer nav a:hover{color:var(--primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:800px){.desktop-nav{display:none}.menu-toggle{display:block}.mobile-nav.open{display:block}.services-grid{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.hero-inner{padding:56px 0 68px}}@media(max-width:560px){.container{width:min(100% - 24px,1152px)}.brand{font-size:15px}.brand-icon{width:34px;height:34px}.hero h1{font-size:35px}.lead{font-size:16px}.hero-actions{flex-direction:column}.btn{width:100%}.section{padding:56px 0}.services-grid{grid-template-columns:1fr}h2{font-size:28px}.footer-inner{padding:24px 0;align-items:flex-start;flex-direction:column}.footer nav{gap:18px}th,td{padding:11px 14px;font-size:13px}}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.contact-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:28px}.contact-card h3{margin:0 0 16px;font-size:20px}.contact-card address{font-style:normal;color:var(--muted);line-height:1.8}.contact-card p{margin:8px 0;color:var(--muted)}.contact-card a{color:var(--primary);font-weight:700}.contact-button{margin-top:14px}.contact-card .btn{color:#fff}@media(max-width:800px){.contact-grid{grid-template-columns:1fr}} 

/* Contact next to opening hours; emergency full width underneath */
.contact-card-highlight { padding: 24px; }
.contact-card-highlight h2 { font-size: 24px; margin: 0 0 10px; }
.contact-card-highlight p { margin: 8px 0 14px; color: var(--muted); }
.contact-card-highlight address { font-style: normal; color: var(--muted); line-height: 1.8; margin: 12px 0; }
.contact-card-highlight a { color: var(--primary); font-weight: 700; }
.contact-card-highlight .btn { color: #fff; }
.emergency-full { margin-top: 24px; }
.emergency-full ul { display: grid; grid-template-columns: repeat(3, 1fr); }
.emergency-full li { min-height: 88px; justify-content: center; }
@media(max-width:800px){ .emergency-full ul { grid-template-columns: 1fr; } }


/* Kontakt & Praxisanschrift – gleiche Typografie und Hintergrundfarbe wie Öffnungszeiten */
.contact-heading-text {
  font: inherit;
  font-weight: 800;
}

.contact-section .contact-card,
.contact-card {
  overflow: hidden;
}

.contact-section .contact-card > h2,
.contact-card > h2 {
  background: #e7f1ff;
  color: #1f2a3a;
  margin: 0;
  padding: 28px 38px;
  font-weight: 800;
  border-bottom: 1px solid #d5e2f2;
}

/* Falls die Kontaktüberschrift direkt in einem anderen Wrapper sitzt */
.contact-section h2.contact-title {
  background: #e7f1ff;
  color: #1f2a3a;
  font-weight: 800;
}

/* Einheitliche Schriftwirkung zur Überschrift "Öffnungszeiten" */
.contact-section h2,
.contact-card h2 {
  letter-spacing: -0.02em;
}

/* Dynamische Praxis-Hinweise / Urlaub */
.site-alert{padding:14px 0;background:#eaf3ff;color:#1f2a3a;border-bottom:1px solid #cfe0f5;font-size:16px}.site-alert .container{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.site-alert strong{font-weight:800}.site-alert-closed{background:#fff0ee;color:#9f2f25;border-bottom-color:#f1b5ad}.site-alert-upcoming{background:#fff8df;color:#6d5200;border-bottom-color:#ead68c}

/* Kontakt: exakt dieselbe Kartenstruktur wie Öffnungszeiten */
.contact-hours-box { overflow:hidden; padding:0; }
.contact-hours-box .box-heading {
  padding:16px 24px;
  background:var(--accent);
  border-bottom:1px solid var(--border);
  font-size:18px;
  font-weight:800;
}
.contact-content { padding:20px 24px 24px; }
.contact-content p { margin:0 0 16px; color:var(--muted); line-height:1.65; }
.contact-content address { margin:0 0 16px; padding:0; font-style:normal; color:var(--muted); line-height:1.8; }
.contact-content a { color:var(--primary); font-weight:700; }
.contact-content .contact-button { color:#fff; margin-top:2px; }

/* Manuelle Hinweise werden immer zusätzlich angezeigt. */
.site-alert-notice { background:#eaf3ff; color:#1f2a3a; border-bottom-color:#cfe0f5; }
.site-alert-notice .container { align-items:flex-start; }
.site-alert-notice span { white-space:pre-line; }

/* Notfallbox: alle drei Rufnummern auf gleicher Höhe. */
.emergency-box ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.emergency-box li { display:flex; flex-direction:column; min-height:190px; }
.emergency-box li a { margin-top:auto; white-space:nowrap; }
@media(max-width:800px){
  .contact-content { padding:18px 18px 22px; }
  .emergency-box ul { grid-template-columns:1fr; }
  .emergency-box li { min-height:auto; padding:20px 0; }
  .emergency-box li a { margin-top:12px; }
}

/* Notfallbox: lange Telefonnummern dürfen nicht aus der Box laufen. */
.emergency-box ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.emergency-box li { min-width: 0; }
.emergency-box li span,
.emergency-box li a {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.emergency-box li a {
  white-space: normal;
  line-height: 1.2;
}
@media (min-width: 801px) {
  .emergency-box li {
    padding-left: 24px;
    padding-right: 24px;
  }
}


/* ===== Finale Notfallbox: Desktop volle Containerbreite ===== */
.emergency-full {
  width: 100%;
  margin-top: 24px;
  box-sizing: border-box;
}

.emergency-box ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.emergency-box li {
  min-width: 0;
  min-height: 170px;
  padding: 28px 40px 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-sizing: border-box;
}

.emergency-box li + li {
  border-left: 1px solid rgba(208, 58, 46, 0.18);
}

.emergency-box li span {
  display: block;
  color: var(--muted);
  font-size: 19px;
  line-height: 1.45;
  overflow-wrap: normal;
  word-break: normal;
}

.emergency-box li a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  color: #d03a2e;
  font-size: 26px;
  line-height: 1.2;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.emergency-box li a:hover {
  text-decoration: underline;
}

@media (max-width: 900px) {
  .emergency-full {
    margin-top: 20px;
  }

  .emergency-box ul {
    grid-template-columns: 1fr;
  }

  .emergency-box li {
    min-height: auto;
    padding: 22px 24px;
  }

  .emergency-box li + li {
    border-left: 0;
    border-top: 1px solid rgba(208, 58, 46, 0.18);
  }

  .emergency-box li a {
    margin-top: 14px;
    font-size: 25px;
  }
}

@media (max-width: 480px) {
  .emergency-box li {
    padding: 20px;
  }

  .emergency-box li span {
    font-size: 17px;
  }

  .emergency-box li a {
    font-size: 23px;
  }
}
