/* — Web Fonts — */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/playfair-display-700.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/playfair-display-900.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:700;font-display:swap;src:url('/fonts/playfair-display-700italic.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/source-sans-3-300.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/source-sans-3-400.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/source-sans-3-600.woff2') format('woff2');}

/* — Design-Tokens — */
:root{
  --db:#1A2E4A;
  --rd:#AF2B1E;       /* RAL 3000 – Hauptakzent */
  --rd-hell:#E4756A;  /* helles Rot für Kontrast auf Dunkel */
  --rd-light:#F9ECEB; /* blasser Hintergrund */
  --white:#FFFFFF; --gray:#666666; --light:#F6F5F1; --border:#E0E8F0;
}

/* — Reset — */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:50px;}
body{font-family:'Source Sans 3',sans-serif;color:var(--db);background:var(--light);overflow-x:hidden;}

/* — Navigation — */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#1A2E4A;display:flex;align-items:center;justify-content:space-between;padding:0 40px;height:64px;border-bottom:2px solid var(--rd);}
.nav-logo{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:900;color:var(--white);letter-spacing:0.05em;text-decoration:none;}
.nav-logo span{color:var(--rd);}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;width:44px;height:44px;}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--rd);margin:5px auto;transition:transform 0.3s,opacity 0.3s;}
.nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.active span:nth-child(2){opacity:0;}
.nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0;}
nav ul a{color:rgba(255,255,255,0.8);text-decoration:none;font-size:0.85rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;transition:color 0.2s;}
nav ul a:hover,nav ul a.active{color:var(--rd);}

/* — Layout — */
.container{max-width:1100px;margin:0 auto;}
.section{padding:70px 40px 90px;}
.section-label{font-size:0.75rem;color:var(--rd);letter-spacing:0.15em;text-transform:uppercase;font-weight:600;margin-bottom:12px;}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:900;line-height:1.15;color:var(--db);margin-bottom:8px;}
.section-title em{font-style:normal;color:var(--rd);}
.divider{width:60px;height:4px;background:var(--rd);margin:24px 0 32px;}
.section-intro{font-size:1.05rem;color:var(--gray);line-height:1.8;margin-bottom:8px;}

/* — Hero — */
.hero{background:var(--db);padding:120px 40px 80px;position:relative;overflow:hidden;}
.hero-inner{max-width:1100px;margin:0 auto;position:relative;}
.hero-badge{display:inline-block;background:var(--rd);color:var(--white);font-size:0.75rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;padding:6px 16px;margin-bottom:20px;}
.hero h1{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.4rem);font-weight:900;line-height:1.1;color:var(--white);margin-bottom:24px;}
.hero h1 em{font-style:normal;color:var(--rd-hell);}
.hero-sub{font-size:1.15rem;color:rgba(255,255,255,0.7);line-height:1.8;max-width:640px;}

/* — Buttons — */
.btn-primary{display:inline-block;background:var(--rd);color:var(--white);padding:14px 36px;font-size:0.95rem;font-weight:600;letter-spacing:0.04em;text-decoration:none;transition:all 0.2s;border:2px solid var(--rd);}
.btn-primary:hover{background:transparent;color:var(--rd-hell);border-color:var(--rd-hell);}
.btn-secondary{display:inline-block;background:transparent;color:rgba(255,255,255,0.8);padding:14px 36px;font-size:0.95rem;font-weight:600;letter-spacing:0.04em;text-decoration:none;transition:all 0.2s;border:2px solid rgba(255,255,255,0.3);}
.btn-secondary:hover{border-color:var(--rd-hell);color:var(--rd-hell);}

/* — Footer — */
footer{background:var(--db);color:rgba(255,255,255,0.7);padding:56px 40px 0;}
.footer-inner{max-width:1100px;margin:0 auto;}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;}
.footer-col h4{font-size:0.95rem;font-weight:700;color:var(--white);margin:0 0 16px;}
.footer-logo{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:900;color:var(--white);margin-bottom:12px;}
.footer-logo span{color:var(--rd);}
.footer-claim{font-size:0.88rem;line-height:1.6;color:rgba(255,255,255,0.55);max-width:260px;margin:0 0 20px;}
.footer-col ul{list-style:none;margin:0;padding:0;}
.footer-col li{margin-bottom:10px;}
.footer-col a{color:rgba(255,255,255,0.6);text-decoration:none;font-size:0.9rem;transition:color 0.2s;}
.footer-col a:hover{color:var(--rd);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding:22px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:0.8rem;color:rgba(255,255,255,0.4);}

/* — Brotkrumen — */
.breadcrumb{font-size:0.78rem;letter-spacing:0.03em;margin-bottom:18px;}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;}
.breadcrumb li{display:flex;align-items:center;}
.breadcrumb li:not(:last-child)::after{content:'\203A';margin:0 10px;color:var(--rd);}
.breadcrumb a{color:rgba(255,255,255,0.6);text-decoration:none;transition:color 0.2s;}
.breadcrumb a:hover{color:var(--rd);}
.breadcrumb li:last-child span{color:rgba(255,255,255,0.85);font-weight:600;}
.breadcrumb-dark a{color:var(--gray);}
.breadcrumb-dark li:last-child span{color:var(--db);}
.breadcrumb-dark li:not(:last-child)::after{color:var(--rd);}

/* — Akkordeon — */
.accordion{border:1px solid var(--border);background:var(--white);}
.accordion-item{border-bottom:1px solid var(--border);}
.accordion-item:last-child{border-bottom:none;}
.accordion-header{width:100%;background:none;border:none;padding:20px 24px;text-align:left;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:'Source Sans 3',sans-serif;font-size:1rem;font-weight:600;color:var(--db);transition:background 0.2s;}
.accordion-header:hover{background:var(--rd-light);}
.accordion-arrow{font-size:1.2rem;color:var(--rd);transition:transform 0.3s;flex-shrink:0;}
.accordion-header.open .accordion-arrow{transform:rotate(180deg);}
.accordion-body{display:none;padding:0 24px 24px;font-size:1rem;color:var(--gray);line-height:1.85;}
.accordion-body.open{display:block;}
.accordion-body p{margin-bottom:16px;}
.accordion-body p:last-child{margin-bottom:0;}

/* — Animation — */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.hero-badge{animation:fadeUp 0.4s ease both;}
.hero h1{animation:fadeUp 0.4s 0.1s ease both;}
.hero-sub{animation:fadeUp 0.4s 0.2s ease both;}

/* — Responsive — */
@media(max-width:768px){
  nav{padding:0 20px;}
  nav ul{display:none;position:fixed;top:64px;left:0;right:0;background:#1A2E4A;flex-direction:column;padding:12px 20px 20px;gap:0;border-bottom:2px solid var(--rd);max-height:calc(100vh - 64px);overflow-y:auto;}
  nav ul.active{display:flex;}
  nav ul li{width:100%;list-style:none;}
  nav ul a{display:block;padding:16px 12px;border-bottom:1px solid rgba(255,255,255,0.08);font-size:0.95rem;}
  nav ul li:last-child a{border-bottom:none;}
  .nav-toggle{display:block;}
  .hero{padding:100px 20px 60px;}
  .section{padding:50px 20px 70px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
  .footer-bottom{flex-direction:column;text-align:center;}
}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr;}}
