/* Site navigation and imprint. Component boundaries keep the individual chapters independent. */
:root {
  --team-ink: #071b30;
  --team-blue: #72d1f9;
  --team-edge: clamp(1rem, 4vw, 4rem);
  --team-track: max(var(--team-edge), calc((100% - 81rem) / 2));
  --team-sans: Inter, "Segoe UI", Arial, sans-serif;
}
body { margin: 0; }
.tp-skip {
  position:absolute; z-index:100; inset:.4rem auto auto .65rem;
  padding:.7rem 1rem; background:white; color:#0a2c47; font:650 1rem/1.4 var(--team-sans);
  transform:translateY(-200%); border-radius:.3rem;
}
.tp-skip:focus-visible { transform:none; }
body .tp-head {
  isolation:isolate; z-index:30; margin:0; position:relative;
  box-sizing:border-box; display:flex; justify-content:flex-start;
  align-items:center; gap:clamp(.9rem,2.6vw,2.8rem);
  padding:.48rem var(--team-track); min-height:4.25rem; height:auto; width:100%; max-width:none;
  background:var(--team-ink); color:#f6fbff; border:0; border-bottom:1px solid #31506a;
}
.tp-head .tp-brand { flex:none; display:flex; align-items:center; padding:0; background:none; border:0; }
body .tp-head .tp-brand img { width:clamp(6.25rem,10vw,8.5rem); height:3rem; object-fit:contain; }
.tp-head #tp-nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(.35rem,1vw,1rem); margin-inline-start:auto; }
.tp-head #tp-nav a,.tp-head #tp-nav summary,.tp-head .tp-languages summary {
  box-sizing:border-box; display:inline-flex; align-items:center; gap:.48rem; min-height:44px;
  padding:.55rem .38rem; border:0; border-radius:.25rem; background:transparent;
  font:600 .96rem/1.28 var(--team-sans); text-decoration:none; color:#e2edf5; white-space:nowrap;
}
.tp-head #tp-nav a[aria-current=page],.tp-head #tp-nav details:has([aria-current=page])>summary { color:#fff; box-shadow:inset 0 -2px var(--team-blue); }
.tp-head #tp-nav a:hover,.tp-head #tp-nav summary:hover,.tp-head .tp-languages summary:hover { color:#a2e2ff; }
.tp-head details summary { list-style:none; cursor:pointer; }
.tp-head details summary::-webkit-details-marker { display:none; }
.tp-head summary::before { content:none; }
.tp-head #tp-nav summary::after,.tp-head .tp-languages summary::after {
  content:""; display:inline-block; flex:none; height:.36rem; width:.36rem; margin:-.2em 0 0 .1em;
  border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); color:inherit;
}
.tp-head details[open]>summary::after { transform:rotate(225deg)!important; margin-top:.25em!important; }
.tp-head details:not([open])>div { display:none!important; }
.tp-head #tp-nav details>div,.tp-head details.tp-languages .language-picker {
  box-sizing:border-box; position:absolute; inset:calc(100% + .4rem) auto auto 0;
  display:grid; width:max-content; max-width:min(86vw,24rem); margin:0; padding:.42rem;
  background:#fff; border:1px solid #d0dce5; border-radius:.65rem; box-shadow:0 .75rem 2.5rem #00162636;
}
.tp-head #tp-nav details>div a,.tp-head details.tp-languages .language-picker a {
  display:flex; justify-content:flex-start; min-height:44px; min-width:0; padding:.65rem .9rem; border-radius:.35rem;
  color:#153147; font:550 .95rem/1.35 var(--team-sans); white-space:normal; text-decoration:none; box-shadow:none;
}
.tp-head #tp-nav details>div a:hover,.tp-head details.tp-languages .language-picker a:hover,
.tp-head #tp-nav details>div a[aria-current=page],.tp-head details.tp-languages .language-picker a[aria-current=true] { color:#0a3a56; background:#e7f3f9; }
.tp-head details.tp-languages { flex:none; display:block; position:relative; margin:0; padding:0 0 0 .75rem; border:0; border-radius:0; border-left:1px solid #375168; background:none; }
.tp-head details.tp-languages .language-picker { inset-inline:auto 0; width:10rem; }
.tp-head .tp-languages summary { justify-content:center; padding:.4rem .45rem; font-size:.86rem; letter-spacing:.045em; }
body .tp-head .tp-menu { display:none; }
.tp-head :is(a,summary,button):focus-visible,footer.tp-footer a:focus-visible { outline:3px solid #efb84b!important; outline-offset:2px!important; }
body footer.tp-footer {
  margin:0; box-sizing:border-box; width:100%; max-width:none; padding:clamp(2rem,5vw,4.3rem) var(--team-track);
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.7rem clamp(1.25rem,3vw,3rem);
  align-items:start; text-align:start; border:0; border-top:1px solid #30485c; background:#07192b; color:#e4edf5;
}
body footer.tp-footer>img { grid-row:1/3; width:clamp(48px,5vw,68px); height:auto; }
body footer.tp-footer p { margin:0; max-width:72ch; color:#d5e1ea; font:400 .95rem/1.65 var(--team-sans); }
body footer.tp-footer small { display:block; grid-row:2; grid-column:2; margin:0; color:#a9bcca; font:500 .8rem/1.6 var(--team-sans); }
body footer.tp-footer p a { display:inline; padding:0; color:#a7e1ff; text-decoration:underline; text-underline-offset:.17em; background:none; box-shadow:none; border:0; }
body footer.tp-footer .tp-footlinks { position:static; grid-row:1/3; grid-column:3; display:grid; justify-items:start; gap:.1rem; margin:0; padding:0; background:none; }
body footer.tp-footer .tp-footlinks a { box-sizing:border-box; display:flex; align-items:center; gap:.6rem; min-height:44px; color:#f1f7fa; background:none; border:0; padding:0; font:600 .94rem/1.4 var(--team-sans); text-decoration:underline; text-underline-offset:.23em; text-decoration-color:#69899e; }
@media(max-width:68rem) {
  body .tp-head { gap:.55rem; min-height:3.8rem; padding-block:.3rem; }
  .tp-head .tp-brand { margin-inline-end:auto; }
  .tp-head details.tp-languages { order:2; border-left:0; padding:0; }
  body .tp-head .tp-menu { order:3; display:inline-flex; gap:.5rem; align-items:center; padding:.6rem .8rem; min-height:44px; border:1px solid #557084; border-radius:.42rem; background:#122c42; color:white; font:650 .92rem/1.2 var(--team-sans); }
  .tp-head .tp-menu::before { content:""; width:.95rem; height:.66rem; box-sizing:border-box; border-block:1.6px solid currentColor; background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat; }
  body .tp-head #tp-nav { display:none; position:absolute; inset:100% var(--team-edge) auto; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; max-height:min(72vh,37rem); max-height:min(72dvh,37rem); overflow-y:auto; overscroll-behavior:contain; margin:0; padding:.65rem; background:#0b2338; border:1px solid #426179; border-radius:0 0 .65rem .65rem; box-shadow:0 1rem 2rem #05152344; }
  body .tp-head #tp-nav.open { display:flex; }
  .tp-head #tp-nav>a,.tp-head #tp-nav>details { border-bottom:1px solid #284456; }
  .tp-head #tp-nav>a:last-child {border:0;}
  .tp-head #tp-nav a,.tp-head #tp-nav summary { width:100%; padding:.68rem .8rem; box-sizing:border-box; min-height:46px; white-space:normal; }
  .tp-head #tp-nav summary { justify-content:space-between; }
  .tp-head #tp-nav a[aria-current=page],.tp-head #tp-nav details:has([aria-current=page])>summary { background:#19374d; box-shadow:inset 3px 0 var(--team-blue); color:white; }
  .tp-head #tp-nav details>div { position:static; width:auto; max-width:none; background:#102b40; border:0; border-radius:.35rem; box-shadow:none; margin:0 .4rem .6rem; padding:.25rem; }
  .tp-head #tp-nav details>div a { color:#e7f3fa; }
}
@media(max-width:43rem) {
  body .tp-head .tp-brand img {height:2.55rem;}
  body footer.tp-footer { grid-template-columns:48px minmax(0,1fr); gap:.75rem 1rem; }
  body footer.tp-footer .tp-footlinks {grid-column:1/-1; grid-row:3; display:flex; flex-wrap:wrap; gap:.3rem 1.8rem; padding-top:.55rem; border-top:1px solid #30485c;}
}
@media print { body .tp-head,.tp-skip,body footer.tp-footer {display:none!important;} }

