/* ============================================
   fellschutz.info – Shared Stylesheet
   Allianz Hauptvertretung Thomas Glang
   ============================================ */

/* ── TOKENS ── */
:root {
  --blue:        #003781;
  --blue-dark:   #002660;
  --blue-light:  #e8eef8;
  --white:       #ffffff;
  --off-white:   #f5f6f8;
  --grey-light:  #eaecf0;
  --grey:        #8a9ab5;
  --text:        #1a2236;
  --text-soft:   #4a5568;
  --gold:        #c8a84b;
  --green-wa:    #25D366;
  --green-wa-h:  #1fba5a;
  --font-serif: 'Source Serif 4', Georgia, serif;
  --font-sans:  'Inter', system-ui, sans-serif;
  --radius: 3px;
  --nav-h: 68px;
  --max-w: 1180px;
  --max-w-text: 760px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: var(--font-sans); background: var(--white); color: var(--text); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 3rem; }
.container--text { max-width: var(--max-w-text); margin: 0 auto; padding: 0 2rem; }
.eyebrow { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); margin-bottom: 0.75rem; }
.section-title { font-family: var(--font-serif); font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 400; color: var(--text); line-height: 1.2; letter-spacing: -0.02em; margin-bottom: 1rem; }
.section-lead { font-size: 0.95rem; font-weight: 300; color: var(--text-soft); line-height: 1.75; max-width: 540px; }
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: var(--nav-h); background: var(--white); border-bottom: 1px solid var(--grey-light); display: flex; align-items: center; justify-content: space-between; padding: 0 4rem; }
.nav__brand { display: flex; align-items: center; gap: 1rem; text-decoration: none; }
.nav__logo { width: 42px; height: 42px; background: var(--blue); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.nav__logo span { font-size: 0.7rem; font-weight: 700; color: var(--white); letter-spacing: 0.05em; }
.nav__name-top { display: block; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--blue); line-height: 1; }
.nav__name-bottom { display: block; font-family: var(--font-serif); font-size: 1rem; font-weight: 600; color: var(--text); letter-spacing: -0.01em; line-height: 1.3; }
.nav__links { display: flex; align-items: center; gap: 2.5rem; list-style: none; }
.nav__links a { font-size: 0.82rem; font-weight: 500; color: var(--text-soft); text-decoration: none; letter-spacing: 0.01em; transition: color 0.15s; }
.nav__links a:hover { color: var(--blue); }
.nav__links .nav__cta { background: var(--blue); color: var(--white); padding: 0.55rem 1.4rem; border-radius: var(--radius); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.03em; transition: background 0.15s; }
.nav__links .nav__cta:hover { background: var(--blue-dark); color: var(--white); }
.btn-wa { display: inline-flex; align-items: center; gap: 0.7rem; background: var(--green-wa); color: var(--white); font-size: 0.88rem; font-weight: 600; padding: 0.85rem 2rem; border-radius: var(--radius); text-decoration: none; letter-spacing: 0.02em; transition: background 0.15s; }
.btn-wa:hover { background: var(--green-wa-h); }
.btn-wa svg { width: 18px; height: 18px; flex-shrink: 0; }
.wa-sticky { position: fixed; bottom: 2rem; right: 2rem; z-index: 200; display: flex; align-items: center; gap: 0.6rem; background: var(--green-wa); color: var(--white); font-size: 0.82rem; font-weight: 600; padding: 0.85rem 1.4rem 0.85rem 1rem; border-radius: var(--radius); text-decoration: none; box-shadow: 0 4px 20px rgba(0,0,0,0.18); transition: background 0.15s; }
.wa-sticky:hover { background: var(--green-wa-h); }
.wa-sticky svg { width: 20px; height: 20px; flex-shrink: 0; }
.footer { background: var(--text); padding: 3rem 0; }
.footer__inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 3rem; }
.footer__brand-name { font-family: var(--font-serif); font-size: 0.95rem; font-weight: 600; color: var(--white); }
.footer__brand-sub { font-size: 0.7rem; color: rgba(255,255,255,0.4); margin-top: 0.1rem; }
.footer__links { display: flex; gap: 2rem; list-style: none; justify-content: center; flex-wrap: wrap; }
.footer__links a { font-size: 0.75rem; color: rgba(255,255,255,0.35); text-decoration: none; transition: color 0.15s; }
.footer__links a:hover { color: rgba(255,255,255,0.7); }
.footer__copy { font-size: 0.72rem; color: rgba(255,255,255,0.25); text-align: right; }
.footer--simple { text-align: center; padding: 2rem; font-size: 0.75rem; color: var(--grey); border-top: 1px solid var(--grey-light); background: var(--white); }
.footer--simple a { color: var(--grey); text-decoration: none; }
.footer--simple a:hover { color: var(--blue); }
.legal-main { margin-top: calc(var(--nav-h) + 4rem); padding-bottom: 6rem; }
.legal-main h1 { font-family: var(--font-serif); font-size: 2.2rem; font-weight: 400; color: var(--text); letter-spacing: -0.02em; margin-bottom: 0.5rem; }
.legal-main .stand { font-size: 0.78rem; color: var(--grey); margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 1px solid var(--grey-light); }
.legal-block { margin-bottom: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--grey-light); }
.legal-block:last-child { border-bottom: none; }
.legal-block h2 { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue); margin-bottom: 1rem; }
.legal-block p, .legal-block address, .legal-block li { font-size: 0.88rem; color: var(--text-soft); line-height: 1.8; font-style: normal; font-weight: 300; }
.legal-block p + p { margin-top: 0.9rem; }
.legal-block ul { margin: 0.75rem 0 0.75rem 1.2rem; }
.legal-block li { margin-bottom: 0.3rem; }
.legal-block a { color: var(--blue); text-decoration: none; }
.legal-block a:hover { text-decoration: underline; }
.legal-block strong { font-weight: 600; color: var(--text); }
@media (max-width: 960px) {
  .nav { padding: 0 1.5rem; }
  .nav__links { display: none; }
  .container { padding: 0 1.5rem; }
  .footer__inner { grid-template-columns: 1fr; text-align: center; gap: 1.5rem; }
  .footer__copy { text-align: center; }
  .wa-sticky span { display: none; }
  .wa-sticky { padding: 0.9rem; border-radius: 50%; }
}
