/* Shared German-page accessibility, trust, consent and footer layer. */
:root{
  --de-green:#1c2b1a;
  --de-gold:#b8963e;
  --de-gold-dark:#80661f;
  --de-gold-light:#d4ac52;
  --de-source-bg:#fbf8ef;
  --de-source-border:rgba(184,150,62,.28);
}

.skip-link{
  position:fixed;
  top:12px;
  left:16px;
  z-index:10000;
  transform:translateY(-160%);
  padding:10px 16px;
  border-radius:7px;
  background:var(--de-green);
  color:#fff!important;
  font:700 14px/1.2 Manrope,system-ui,sans-serif;
  text-decoration:none!important;
}
.skip-link:focus{transform:translateY(0);outline:3px solid var(--de-gold-light);outline-offset:2px;}

:where(a,button,input,select,summary,[role="button"]):focus-visible{
  outline:3px solid rgba(184,150,62,.48)!important;
  outline-offset:3px;
}

input[aria-invalid="true"],select[aria-invalid="true"]{
  border-color:#b42318!important;
  box-shadow:0 0 0 3px rgba(180,35,24,.12)!important;
}
.field-error{
  display:block;
  margin-top:5px;
  color:#9b1c1c;
  font-size:11px;
  font-weight:600;
}
.field-error:empty{display:none;}

.editorial-note{
  position:relative;
  z-index:1;
  max-width:760px;
  margin:24px auto 0;
  padding:12px 16px;
  border:1px solid var(--de-source-border);
  border-radius:8px;
  background:var(--de-source-bg);
  color:#5a6b5a;
  font-size:12px;
  line-height:1.55;
  text-align:center;
}
.editorial-note a,
.meth-sources a,
.official-sources a{
  color:var(--de-gold-dark)!important;
  font-weight:700;
  text-decoration:underline!important;
  text-underline-offset:2px;
}

body.de-calculator :where(.hero-lead,.section-lead,.ec-body,.meth-note,.faq-a) a,
body.de-article :where(.article,.faq-body) a,
body.de-glossary :where(.term-body,.sidebar) a{
  text-underline-offset:2px;
}

body.de-calculator .meth-sources,
body.de-calculator .official-sources{
  margin-top:20px;
  padding:18px 20px!important;
  border:1px solid var(--de-source-border)!important;
  border-radius:8px;
  background:var(--de-source-bg)!important;
  color:#5a6b5a;
  font-size:12px;
  line-height:1.75;
  text-align:center;
}
body.de-calculator .meth-sources strong,
body.de-calculator .official-sources strong{
  display:block;
  margin-bottom:6px;
  color:#1a1a1a;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

:where(body.de-calculator,body.de-article,body.de-glossary) .cookie-banner{
  background:var(--de-green);
}
:where(body.de-calculator,body.de-article,body.de-glossary) .cookie-accept{
  background:var(--de-gold)!important;
  color:#fff!important;
}

/* Shared layout; the disclaimer wording remains specific to each page type. */
:where(body.de-calculator,body.de-article,body.de-glossary) footer{
  padding:40px 0!important;
  border-top:0!important;
  background:var(--de-green)!important;
  text-align:center;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  max-width:1100px;
  margin:0 auto 24px;
  padding:0 24px;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-logo{
  color:#fff!important;
  font:800 18px/1 Manrope,system-ui,sans-serif;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-logo em{
  color:var(--de-gold-light)!important;
  font-style:normal;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-links{
  display:flex;
  justify-content:center;
  gap:12px 20px;
  flex-wrap:wrap;
  margin:0;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-links a{
  color:rgba(255,255,255,.62)!important;
  font:500 12px/1.4 Manrope,system-ui,sans-serif;
  text-decoration:none!important;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-links a:hover{
  color:#fff!important;
}
:where(body.de-calculator,body.de-article,body.de-glossary) footer :where(.footer-disc,.footer-disclaimer){
  max-width:860px;
  margin:0 auto;
  padding:20px 24px 0;
  border-top:1px solid rgba(255,255,255,.08)!important;
  color:var(--de-gold-light)!important;
  font:500 11px/1.7 Manrope,system-ui,sans-serif;
  opacity:1;
  text-align:center;
}

@media(max-width:560px){
  .editorial-note{margin:20px 0 0;padding:11px 12px;}
  :where(body.de-calculator,body.de-article,body.de-glossary) footer .footer-inner{padding-inline:16px;}
  :where(body.de-calculator,body.de-article,body.de-glossary) footer :where(.footer-disc,.footer-disclaimer){padding-inline:16px;}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
