/* Institut für Pathologie GbR — modernes, mobil-first Stylesheet (2026) */
:root{
  --blue:#14324f; --blue2:#1f4d78; --teal:#2a97a7; --teal2:#3db4c4;
  --accent:#c8a24a; --ink:#1e2a35; --muted:#5f6f7e; --line:#e6ecf2;
  --bg:#f4f7fa; --white:#fff; --soft:#eef3f8;
  --maxw:1140px; --radius:14px; --radius-sm:10px;
  --shadow:0 1px 3px rgba(20,40,70,.06),0 8px 24px rgba(20,40,70,.06);
  --shadow-lg:0 12px 40px rgba(20,50,80,.16);
  --ring:0 0 0 3px rgba(42,151,167,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:var(--blue2);text-decoration:none;transition:color .15s}
a:hover{color:var(--teal)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{color:var(--blue);line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,4.5vw,2.6rem)}
h2{font-size:clamp(1.4rem,3vw,1.9rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:clamp(44px,7vw,80px) 0}
.section.alt{background:var(--white)}
.lead{font-size:1.15rem;color:var(--muted);max-width:65ch}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}

/* ---------- Header ---------- */
.site-header{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 1 auto;min-width:0}
.brand:hover{color:inherit}
.brand-logo{height:62px;width:auto;max-width:min(62vw,320px);object-fit:contain}
.brand-ico{font-size:1.7rem;line-height:1;flex:0 0 auto}
.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.brand-text b{font-weight:750;color:var(--blue);font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-text small{font-weight:400;color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;gap:2px;align-items:center;flex-wrap:nowrap}
.nav a{padding:9px 13px;border-radius:9px;color:var(--ink);font-size:.92rem;font-weight:500;white-space:nowrap}
.nav a:hover{background:var(--soft);color:var(--blue)}
.nav a.active{background:var(--blue);color:#fff}
.nav a.home{border:1.5px solid var(--line);margin-left:6px;color:var(--blue2)}
.nav a.home:hover{border-color:var(--teal);color:var(--teal)}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;
  width:44px;height:44px;font-size:1.35rem;cursor:pointer;color:var(--blue);align-items:center;justify-content:center}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(125deg,var(--blue) 0%,var(--blue2) 55%,var(--teal) 130%);
  padding:clamp(52px,9vw,96px) 0}
.hero::after{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:radial-gradient(1000px 400px at 85% -10%,rgba(61,180,196,.5),transparent 60%);}
.hero .wrap{position:relative;z-index:1}
.hero h1{color:#fff;max-width:20ch}
.hero p{color:#dbe9f4;font-size:clamp(1.05rem,2.4vw,1.28rem);max-width:60ch;margin:0}
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);padding:6px 14px;border-radius:30px;font-size:.85rem;margin-bottom:18px}
.hero.compact{padding:clamp(40px,6vw,64px) 0}

/* ---------- Grids & Cards ---------- */
.grid{display:grid;gap:22px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
a.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.card h3{margin-top:0}
.stat{text-align:center}
.stat b{display:block;font-size:1.5rem;color:var(--teal);font-weight:750}

/* Standort tiles */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 22px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s}
.tile:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.tile .logo{height:96px;display:flex;align-items:center}
.tile .logo img{max-height:96px;width:auto}
.tile .name{font-weight:700;color:var(--blue);font-size:1.15rem}
.tile .btn{margin-top:auto}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--blue);color:#fff;padding:12px 22px;border-radius:11px;
  font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:background .15s,transform .12s,box-shadow .15s}
.btn:hover{background:var(--blue2);color:#fff;transform:translateY(-1px);box-shadow:0 6px 18px rgba(20,50,80,.22)}
.btn.teal{background:var(--teal)}.btn.teal:hover{background:var(--teal2)}
.btn.ghost{background:transparent;border:1.6px solid var(--blue);color:var(--blue)}
.btn.ghost:hover{background:var(--blue);color:#fff}
.btn.soon{background:#c3cdd8;pointer-events:none}

/* ---------- Prose ---------- */
.prose{max-width:800px}
.prose p{margin:.85em 0}
.prose>p:first-of-type{font-size:1.14rem;line-height:1.6;color:var(--ink)}
.prose h2{margin-top:1.5em}
.prose h3{margin-top:1.4em;color:var(--blue2)}
.prose ul{padding-left:1.15em}
.prose li{margin:.35em 0}
.prose a{text-decoration:underline;text-underline-offset:2px}
.prose strong{color:var(--blue)}
[id]{scroll-margin-top:100px}
/* Tabellen (z. B. Cookie-Liste im Datenschutz) */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.4em 0;
  border:1px solid var(--line);border-radius:12px}
.prose table,.table-scroll table{width:100%;border-collapse:collapse;margin:0;font-size:.9rem;
  min-width:860px;table-layout:fixed}
.prose th,.prose td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  padding:10px 13px;text-align:left;vertical-align:top;overflow-wrap:break-word;hyphens:auto}
.prose th{background:var(--soft);color:var(--blue);font-weight:650;white-space:normal}
/* Cookie-Tabelle: Beschreibungsspalte breiter */
.prose td:nth-child(4),.prose th:nth-child(4){width:26%}
.prose tr:last-child td{border-bottom:none}
.prose th:last-child,.prose td:last-child{border-right:none}
.prose tbody tr:nth-child(even) td{background:#fafcfe}
.callout{background:var(--soft);border-left:4px solid var(--teal);border-radius:0 12px 12px 0;
  padding:16px 20px;margin:1.4em 0}
/* Akkreditierung (DAkkS) */
.accred{display:flex;gap:22px;align-items:center;flex-wrap:wrap;background:var(--white);
  border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);margin:0 0 26px}
.accred img{width:130px;height:auto;flex:0 0 auto}
.accred-txt{flex:1;min-width:220px}
.accred-txt strong{display:block;color:var(--blue);font-size:1.08rem;margin-bottom:4px}
.accred-txt p{margin:.3em 0 .8em;color:var(--muted)}
@media(max-width:520px){.accred{justify-content:center;text-align:center}.accred-txt{text-align:center}}

/* ---------- Accordion (Fachgebiete) ---------- */
.acc-list{display:grid;gap:10px;margin-top:22px}
.acc{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;
  box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s}
.acc[open]{border-color:var(--teal);box-shadow:var(--shadow-lg)}
.acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:17px 20px;font-weight:650;color:var(--blue);font-size:1.06rem;user-select:none}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{background:var(--soft)}
.acc summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--teal);line-height:1;
  flex:0 0 auto;transition:transform .2s}
.acc[open] summary::after{content:"–";transform:rotate(0)}
.acc[open] summary{border-bottom:1px solid var(--line)}
.acc-body{padding:6px 20px 20px}
.acc-body p:first-child{margin-top:12px}
.acc-body p{margin:.6em 0}

/* ---------- Downloads ---------- */
.dl-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}
.dl-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:var(--white);border:1px solid var(--line);border-radius:12px;padding:15px 18px;transition:border-color .15s,box-shadow .15s}
.dl-list li:hover{border-color:var(--teal);box-shadow:var(--shadow)}
.dl-list .t{font-weight:600;color:var(--ink);display:flex;align-items:center;gap:11px}
.dl-ico{display:inline-flex;width:34px;height:34px;flex:0 0 auto;border-radius:9px;background:var(--soft);
  color:var(--teal);align-items:center;justify-content:center;font-weight:700}
.dl-list a.btn{padding:9px 17px;font-size:.88rem;white-space:nowrap}

/* ---------- Doctors ---------- */
.docs{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.doc{text-align:center;display:flex;flex-direction:column;align-items:center;
  background:var(--white);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.doc img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:var(--soft);
  border:1px solid var(--line);transition:transform .18s}
.doc:hover img{transform:translateY(-3px)}
.doc .n{font-weight:650;margin-top:12px;color:var(--blue);line-height:1.25}
.doc .t{color:var(--muted);font-size:.86rem;margin:4px 0 12px}
.doc .cv{margin-top:auto;padding:8px 16px;font-size:.83rem}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.infocard{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.infocard .row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.infocard .row:last-child{border-bottom:none}
.infocard .k{flex:0 0 34px;color:var(--teal);font-size:1.1rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--blue);color:#c2d3e2;padding:52px 0 28px;font-size:.94rem}
.site-footer a{color:#fff}.site-footer a:hover{color:var(--teal2)}
.site-footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
.site-footer h4{color:#fff;margin:0 0 12px;font-size:1.02rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:7px 0}
.copyright{border-top:1px solid rgba(255,255,255,.14);margin-top:30px;padding-top:18px;color:#8fa8c0;font-size:.85rem}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .nav{position:fixed;inset:84px 0 auto 0;background:var(--white);flex-direction:column;align-items:stretch;
    gap:4px;padding:14px 18px 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);
    transform:translateY(-130%);transition:transform .28s ease;visibility:hidden}
  .nav.open{transform:translateY(0);visibility:visible}
  .nav a{padding:14px 14px;font-size:1.02rem;border-radius:10px}
  .nav a.home{margin-left:0;margin-top:4px}
  .menu-toggle{display:inline-flex}
  .grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .docs{grid-template-columns:repeat(3,1fr)}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  body{font-size:16px}
  .grid.cols-2,.grid.cols-3,.grid.cols-4,.docs,.tiles{grid-template-columns:1fr}
  .brand-logo{height:48px}
  .brand-text b{font-size:.98rem}
  .dl-list li{flex-direction:column;align-items:flex-start;gap:12px}
  .dl-list a.btn{width:100%}
  .site-footer .cols{grid-template-columns:1fr}
  .hero{padding:44px 0}
}
