/* Keine externen Font-Anfragen: hochwertige, auf allen Geräten
   vorinstallierte Schriften statt Google Fonts (Datenschutz). */

:root{
  --bg:#F4F6F8;
  --surface:#FFFFFF;
  --ink:#1C2B42;
  --ink-soft:#6D7476;
  --accent:#1C479C;
  --accent-dark:#123068;
  --rule:#DDE3EC;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size:17px;
  line-height:1.65;
}

a{color:var(--accent-dark)}
a:hover{color:var(--accent)}
a:focus-visible, button:focus-visible{outline:2px solid var(--accent); outline-offset:2px}

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:#fff;
  padding:.6rem 1rem; z-index:100;
}
.skip-link:focus{left:1rem; top:1rem}

header.site-header{
  background:var(--surface);
  border-bottom:1px solid var(--rule);
}
.header-inner{
  max-width:960px; margin:0 auto; padding:1.5rem 1.5rem 0;
  display:flex; flex-direction:column; gap:1rem;
}
.brand{
  display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  text-decoration:none; color:var(--ink);
}
.brand img{
  width:44px; height:44px; display:block;
}
.brand-name{
  font-family:Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  font-size:1.55rem; font-weight:600; letter-spacing:.01em;
}
.brand-tagline{
  color:var(--ink-soft); font-size:.9rem;
}

nav.primary-nav{
  border-top:1px solid var(--rule);
}
nav.primary-nav ul{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; gap:0;
}
nav.primary-nav > ul > li{
  position:relative;
}
nav.primary-nav li.has-submenu{
  display:flex; align-items:stretch;
}
nav.primary-nav a{
  display:block; padding:.85rem 1rem;
  text-decoration:none; color:var(--ink-soft);
  font-size:.95rem; font-weight:500;
  border-bottom:2px solid transparent;
}
nav.primary-nav a:hover,
nav.primary-nav a:focus-visible,
nav.primary-nav li.active > a{
  color:var(--ink); border-bottom-color:var(--accent);
}
.submenu-toggle{
  background:none; border:none; cursor:pointer;
  padding:0 .8rem; margin:0; color:var(--ink-soft);
  display:flex; align-items:center;
}
.submenu-toggle:hover{color:var(--ink)}
.submenu-toggle svg{
  width:11px; height:11px; transition:transform .15s ease;
}
.submenu-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
nav.primary-nav .submenu{
  list-style:none; margin:0; padding:.4rem 0;
  display:none; flex-direction:column;
  position:absolute; left:0; top:100%; min-width:220px;
  background:var(--surface); border:1px solid var(--rule);
  box-shadow:0 6px 18px rgba(30,42,56,.08); z-index:20;
}
.submenu-toggle[aria-expanded="true"] ~ .submenu{
  display:flex;
}
nav.primary-nav .submenu a{
  padding:.6rem 1rem; border-bottom:none; color:var(--ink-soft);
}
nav.primary-nav .submenu a:hover{background:var(--bg); color:var(--ink)}

main{
  max-width:720px; margin:0 auto; padding:3rem 1.5rem 4rem;
}
.page-heading{
  border-left:3px solid var(--accent);
  padding-left:1rem;
  margin:0 0 2rem;
}
.page-heading h1{
  font-family:Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  font-weight:500; font-size:2.1rem; margin:0;
  color:var(--ink);
}
.page-heading .claim{
  font-family:Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  font-size:1.15rem; font-weight:400; font-style:italic;
  color:var(--accent-dark); margin:.6rem 0 0;
}
main .lead{
  font-size:1.15rem; color:var(--ink-soft); margin-bottom:1.8rem;
}
main h2{
  font-family:Georgia, 'Iowan Old Style', 'Times New Roman', serif; font-weight:500;
  font-size:1.3rem; margin-top:2.2rem;
}
main p{margin:0 0 1.1rem}
main ul, main ol{margin:0 0 1.1rem; padding-left:1.3rem}
main li{margin-bottom:.4rem}
main strong{color:var(--ink)}
main table{
  width:100%; border-collapse:collapse; margin:0 0 1.4rem;
  font-size:.92rem;
}
main th, main td{
  text-align:left; padding:.6rem .8rem;
  border-bottom:1px solid var(--rule);
}
main th{
  color:var(--ink); font-weight:600; border-bottom:2px solid var(--accent);
}
main tbody tr:last-child td{border-bottom:none}
.notice{
  background:var(--surface); border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  padding:1.2rem 1.4rem; margin-top:2.5rem; font-size:.95rem;
  color:var(--ink-soft);
}
.notice p{margin:0 0 .8rem}
.notice p:last-child{margin-bottom:0}

.office-list{display:grid; gap:1.5rem; margin:1.5rem 0}
.office{
  background:var(--surface); border:1px solid var(--rule);
  padding:1.2rem 1.4rem;
}
.office h2{margin-top:0; font-size:1.05rem}
.office p{margin:0; font-size:.95rem; color:var(--ink-soft)}

footer.site-footer{
  border-top:1px solid var(--rule); background:var(--surface);
  margin-top:2rem;
}
.footer-inner{
  max-width:960px; margin:0 auto; padding:2rem 1.5rem;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.5rem;
  font-size:.85rem; color:var(--ink-soft);
}
.footer-contact{display:flex; flex-direction:column; gap:.2rem}
.footer-contact strong{color:var(--ink); font-weight:600}
.footer-inner nav ul{list-style:none; margin:0; padding:0; display:flex; gap:1rem; flex-wrap:wrap}
.footer-inner a{color:var(--ink-soft)}
.footer-inner a:hover{color:var(--accent-dark)}

@media (max-width:640px){
  nav.primary-nav ul{flex-direction:column}
  nav.primary-nav li.has-submenu{justify-content:space-between}
  nav.primary-nav .submenu{position:static; border:none; box-shadow:none; padding-left:1rem}
}
