@charset "UTF-8";
:root{
    --brass:#c79b52;
    --green:#5fae8a;
    --line:rgba(255,255,255,.35);
    --heading-blue:#6ea8d8; /* Überschriften-Blau – hier zentral ändern */

    --fs-h1: clamp(2.25rem, 1.85rem + 1.8vw, 3rem);
    --fs-h2: clamp(1.75rem, 1.5rem + 1.1vw, 2.25rem);
    --fs-h3: 1.375rem;
    --fs-lead: 1.25rem;
    --fs-body: 1.125rem;
    --fs-small: 1rem;
    --fs-xs: 0.875rem;
    --fs-2xs: 0.75rem;
    --fs-button: 1rem;

    --nav-h: 180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}

  /* ===== HINTERGRUNDBILD (fix, mit dunklem Overlay für Lesbarkeit) ===== */
  body{
    margin:0;
    color:#fff;
    font-family:'Montserrat', Arial, sans-serif;
    font-size:var(--fs-body);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    position:relative;
    background:#101821;
    padding-top:180px;
  }
  body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-1;
    background:
      linear-gradient(rgba(16,24,33,.90), rgba(16,24,33,.95)),
      var(--page-bg, url('/assets/hintergrund.jpg')) center top / cover no-repeat;
  }

  h1,h2,h3{
    font-weight:700;
    color:var(--heading-blue) !important;
    margin:0 0 .5em;
    letter-spacing:-0.01em;
  }
  h1{font-size:var(--fs-h1);line-height:1.15;}
  h2{font-size:var(--fs-h2);line-height:1.2;}
  h3{font-size:var(--fs-h3);line-height:1.3;}
  h1,h2,h3{text-wrap:balance;} /* gleichmäßiger Umbruch statt Einzelwort in letzter Zeile */
  p, li, span, div, label, small, a{color:#fff;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1440px;margin:0 auto;padding:0 40px;}

  /* Sichtbarer Fokus für Tastatur-Navigation (A11y) */
  a:focus-visible,
  .btn-cta:focus-visible,
  summary:focus-visible,
  .nav-toggle:focus-visible{
    outline:2px solid var(--brass);
    outline-offset:3px;
    border-radius:3px;
  }

  .eyebrow{
    font-size:var(--fs-2xs);
    letter-spacing:.14em;
    text-transform:uppercase;
    display:flex;align-items:center;justify-content:flex-start;gap:10px;
    margin-bottom:14px;
  }
  .eyebrow::before,
  .eyebrow::after{content:"";width:22px;height:1px;background:#fff;flex-shrink:0;}
  .eyebrow::after{display:none;}

  .btn-cta{
    background:transparent;color:#fff;
    padding:12px 20px;border-radius:3px;
    text-decoration:none;font-size:var(--fs-button);font-weight:600;
    border:1px solid #fff;
    display:inline-block;
    transition:background-color .15s ease;
  }
  .btn-cta:hover{background:rgba(255,255,255,.1);}
  .btn-cta.solid{background:var(--brass);border-color:var(--brass);color:#16202b;font-weight:700;}
  .btn-cta.solid:hover{background:#b8894a;border-color:#b8894a;}

  /* ===== NAVIGATION ===== */
.site-header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: rgba(16,24,33,.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    border-bottom: none;
}

.site-header::after{
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 18px; /* hier den Abstand einstellen */
    height: 1px;
    background: var(--line);
}  

.nav{
    max-width:1440px;margin:0 auto;padding:0 40px;
    height:var(--nav-h);
    display:flex;align-items:center;justify-content:flex-start;gap:64px;
  }
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;}
  .brand img{height:150px;width:auto;}
  .brand .brand-name{display:none;}
  .nav-links{
    list-style:none;margin:0;padding:0;
    display:flex;align-items:center;gap:6px;
  }
  .nav-links a{
    text-decoration:none;font-size:var(--fs-small);font-weight:600;
    padding:8px 12px;border-radius:3px;
    transition:background-color .15s ease;
    white-space:nowrap;
  }
  .nav-links a:hover{background:rgba(255,255,255,.1);}
  .nav-links a.nav-cta{
    background:var(--brass);color:#16202b;font-weight:700;margin-left:8px;
  }
  .nav-links a.nav-cta:hover{background:#b8894a;}
  .nav-toggle{
    display:none;background:transparent;border:1px solid #fff;color:#fff;
    width:44px;height:40px;border-radius:3px;cursor:pointer;
    font-size:1.4rem;line-height:1;
  }

  @media(max-width:1024px){
    .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
    .nav-links{
      position:absolute;top:var(--nav-h);left:0;right:0;
      flex-direction:column;align-items:stretch;gap:0;
      background:rgba(16,24,33,.97);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      border-bottom:1px solid var(--line);
      padding:8px 40px 20px;
      display:none;
    }
    .nav-links.open{display:flex;}
    .nav-links a{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.12);}
    .nav-links a.nav-cta{margin:12px 0 0;text-align:center;border-bottom:none;}
  }

  section{padding:64px 0;border-top:1px solid var(--line);}
  section.no-border{border-top:none;}
  .section-head{margin:0 0 36px 0;text-align:left;}
  .section-head p{font-size:var(--fs-body);}

  .hero{padding:72px 0 40px;position:relative;overflow:hidden;}
  .hero-inner{text-align:left;}
  .hero p.lead{font-size:var(--fs-lead);margin:0 0 24px;}
  .rating-badge{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:var(--fs-xs);}
  .rating-badge .stars{color:var(--brass);letter-spacing:2px;font-size:1.1rem;line-height:1;}
  .rating-badge a{text-decoration:underline;text-underline-offset:2px;}
  .checklist{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:8px;}
  .checklist li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-small);}
  .checklist li::before{
    content:"";
    width:.7em;height:.7em;
    background:var(--brass);
    flex-shrink:0;
    margin-top:.45em;
  }
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px;align-items:center;}
  .hero-sub{font-size:var(--fs-xs);opacity:.85;}

  .testimonials{display:grid;grid-template-columns:1fr;gap:20px;}
  @media(min-width:760px){.testimonials{grid-template-columns:repeat(3,1fr);}}
  .testimonial{border:1px solid var(--line);border-radius:4px;padding:24px;display:flex;flex-direction:column;gap:12px;text-align:left;background:rgba(16,24,33,.6);}
  .testimonial .stat{font-size:1.375rem;font-weight:700;}
  .testimonial p.quote{font-size:var(--fs-small);font-style:italic;margin:0;}
  .testimonial .person{margin-top:auto;font-size:var(--fs-xs);opacity:.85;}
  .testimonial .person strong{display:block;opacity:1;font-size:var(--fs-small);}

  .cards{display:grid;grid-template-columns:1fr;gap:20px;}
  @media(min-width:700px){.cards{grid-template-columns:1fr 1fr;}}
  .card{border:1px solid var(--line);padding:28px 26px;border-radius:4px;text-align:left;background:rgba(16,24,33,.6);}
  .card h3{font-size:1.35rem;margin-bottom:10px;}
  .card p{margin:0 0 12px;font-size:var(--fs-small);}
  .card ul{margin:0 0 16px;padding-left:18px;font-size:var(--fs-small);}
  .card li{margin-bottom:6px;}
  .card .stat-line{font-size:var(--fs-small);margin-bottom:6px;}
  .card .stat-line b{color:var(--brass);}
  .card .area{font-size:var(--fs-xs);opacity:.8;margin-bottom:16px;}

  .bullets{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px;}
  @media(min-width:640px){.bullets.two-col{grid-template-columns:1fr 1fr;}}
  .bullets li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-small);}
  .bullets li::before{
    content:"";
    width:.7em;height:.7em;
    background:var(--brass);
    flex-shrink:0;
    margin-top:.45em;
  }

  .steps{counter-reset:step;display:grid;grid-template-columns:1fr;gap:0;}
  .step{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);}
  .step:last-child{border-bottom:none;}
  .step .n{counter-increment:step;font-size:var(--fs-xs);display:flex;align-items:flex-start;}
  .step .n::before{content: counter(step, decimal-leading-zero);}
  .step h3{font-size:1.15rem;margin-bottom:2px;}

  .highlight{
    border:1px solid var(--brass);border-radius:4px;background:rgba(16,24,33,.6);
    padding:32px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;
  }
  .highlight-text{flex:1 1 360px;}
  .highlight h3{margin-bottom:8px;}
  .highlight p{margin:0;font-size:var(--fs-small);}

  /* ===== FAQ ===== */
  .faq{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);}
  .faq details{border-bottom:1px solid var(--line);}
  .faq summary{
    list-style:none;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;gap:16px;
    padding:22px 0;font-size:1.15rem;font-weight:600;color:var(--heading-blue);
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--brass);flex-shrink:0;line-height:1;}
  .faq details[open] summary::after{content:"-";}
  .faq .answer{padding:0 0 24px;font-size:var(--fs-small);}
  .faq .answer b{color:var(--brass);}

  .final-cta{
    border:1px solid var(--line);border-radius:6px;background:rgba(16,24,33,.65);
    padding:52px 40px;text-align:left;
  }
  .final-cta p{font-size:var(--fs-body);margin:0 0 26px;}

  .contact-block{font-size:var(--fs-small);line-height:1.7;}
  .contact-block a{text-decoration:underline;}

  /* ===== FOOTER ===== */
  .site-footer{
    border-top:1px solid var(--line);
    background:rgba(11,17,24,.85);
    padding:56px 0 28px;
  }
  .footer-grid{
    display:grid;grid-template-columns:1fr;gap:36px;
  }
  @media(min-width:640px) and (max-width:1023px){.footer-grid{grid-template-columns:1fr 1fr;}}
  @media(min-width:1024px){.footer-grid{grid-template-columns:1.5fr 1fr 1fr 1.3fr;}}
  .footer-col h4{
    font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.1em;
    color:var(--heading-blue);margin:0 0 16px;font-weight:700;
  }
  .footer-brand img{height:216px;width:auto;margin-bottom:16px;}
  .footer-brand p{font-size:var(--fs-xs);opacity:.85;max-width:38ch;margin:0;}
  .footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
  .footer-col a{text-decoration:none;font-size:var(--fs-small);opacity:.9;}
  .footer-col a:hover{opacity:1;text-decoration:underline;}
  .footer-contact{font-size:var(--fs-small);line-height:1.8;opacity:.9;}
  .footer-contact a{text-decoration:none;}
  .footer-contact a:hover{text-decoration:underline;}
  .footer-bottom{
    margin-top:40px;padding-top:22px;border-top:1px solid var(--line);
    display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;
    font-size:var(--fs-xs);opacity:.8;
  }
  .footer-bottom .legal{display:flex;gap:18px;flex-wrap:wrap;}
  .footer-bottom a{text-decoration:none;}
  .footer-bottom a:hover{text-decoration:underline;}

  @media(max-width:640px){
    .wrap{padding:0 22px;}
    .nav{padding:0 22px;}
    .final-cta{padding:40px 24px;}
  }

  /* ===== NAV: Dropdown (···), Social-Icons, aktive Seite ===== */
  .nav-links a.active{
    outline:1px solid var(--heading-blue);
    outline-offset:2px;
    border-radius:3px;
  }
  .nav-more{position:relative;}
  .nav-more-btn{
    background:transparent;border:none;color:#fff;cursor:pointer;
    font-size:1.1rem;font-weight:700;letter-spacing:2px;
    padding:8px 12px;border-radius:3px;line-height:1;
    font-family:inherit;
  }
  .nav-more-btn:hover{background:rgba(255,255,255,.1);}
  .nav-dropdown{
    display:none;
    position:absolute;top:calc(100% + 10px);right:0;
    min-width:230px;
    list-style:none;margin:0;padding:10px 0;
    background:rgba(16,24,33,.97);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border:1px solid var(--line);border-radius:4px;
    flex-direction:column;
  }
  .nav-more.open .nav-dropdown{display:flex;}
  .nav-dropdown a{
    display:block;padding:10px 20px;text-align:right;
    white-space:nowrap;
  }
  .nav-social{display:flex;align-items:center;gap:6px;margin-left:6px;}
  .nav-social a{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;padding:0;border-radius:3px;
    color:var(--heading-blue);
  }
  .nav-social a:hover{background:rgba(255,255,255,.1);color:#fff;}
  .nav-social svg{display:block;}

  @media(max-width:1200px) and (min-width:1025px){
    .nav-links a{padding:8px 8px;font-size:0.95rem;}
  }
  @media(max-width:1024px){
    /* Im Burger-Menü: Dropdown aufgeklappt als normale Liste zeigen */
    .nav-more-btn{display:none;}
    .nav-dropdown{
      display:flex;position:static;border:none;background:transparent;
      padding:0;min-width:0;
      backdrop-filter:none;-webkit-backdrop-filter:none;
    }
    .nav-dropdown a{text-align:left;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.12);}
    .nav-more{display:contents;}
    .nav-social{margin:14px 0 0;justify-content:flex-start;}
  }

  /* ===== NAV: CTA (Optik von .btn-cta.solid, nur Position/Umbruch hier) ===== */
  .nav-call{
    margin-left:auto;
    white-space:nowrap;
  }
  @media(max-width:1024px){
    .nav-call{order:2;font-size:0.9rem;padding:10px 14px;}
    .nav-toggle{order:3;margin-left:0;}
  }
  @media(max-width:400px){
    .nav-call{font-size:0.78rem;padding:9px 10px;}
  }
  /* H2 in Karten optisch wie H3 (Semantik H2, Optik kompakt) */
  .card h2.card-h{font-size:1.35rem;margin-bottom:10px;line-height:1.3;}

  /* ===== FOOTER: Sitemap-Spalte (ausklappbar, JS-frei / IONOS-safe) ===== */
  .footer-sitemap > ul > li{margin:0;}
  .footer-sitemap details{margin:0;}
  .footer-sitemap summary{
    list-style:none;cursor:pointer;
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    font-size:var(--fs-small);font-weight:600;opacity:.9;padding:0;
  }
  .footer-sitemap summary:hover{opacity:1;}
  .footer-sitemap summary::-webkit-details-marker{display:none;}
  .footer-sitemap summary::after{
    content:"+";color:var(--brass);font-weight:400;font-size:1.2rem;
    line-height:1;flex-shrink:0;
  }
  .footer-sitemap details[open] > summary::after{content:"-";}
  .footer-sitemap details > ul{
    margin:10px 0 2px;padding-left:14px;
    border-left:1px solid var(--line);gap:8px;
  }
  .footer-sitemap details > ul a{font-size:var(--fs-xs);opacity:.8;}
  .footer-sitemap details > ul a:hover{opacity:1;}
  .footer-sitemap a.sm-hub{color:var(--heading-blue);opacity:.95;}

  /* ===================================================================
     ===== RESPONSIVE / DISPLAY-FIX (auf allen Geräten passend) =====
     =================================================================== */

  /* Kein horizontales Scrollen durch Überläufer (lange URLs, breite Elemente) */
  html, body{
    max-width:100%;
    overflow-x:hidden;
  }
  /* Medien nie breiter als der Bildschirm */
  img, svg, video, iframe{
    max-width:100%;
    height:auto;
  }
  /* Lange Wörter/URLs umbrechen statt überlaufen (nur im Notfall) */
  p, li, a, h1, h2, h3, .contact-block, .footer-contact{
    overflow-wrap:break-word;
  }
  /* Grids/Container dürfen die volle Breite nutzen, aber nicht überschreiten */
  .wrap, .nav, .cards, .testimonials, .footer-grid{
    max-width:100%;
  }

  /* --- Tablet: Nav-Höhe & Logos reduzieren --- */
  @media(max-width:1024px){
    :root{ --nav-h:120px; }
    .brand img{ height:88px; }
    .footer-brand img{ height:160px; }
  }

  /* --- Smartphone: kompakte Nav, kleinere Logos, engere Ränder --- */
  @media(max-width:640px){
    :root{ --nav-h:96px; }
    .brand img{ height:60px; }
    .footer-brand img{ height:120px; }
    .wrap, .nav{ padding:0 18px; }
    section{ padding:48px 0; }
    .final-cta{ padding:36px 20px; }
    .highlight{ padding:24px; }
    .card{ padding:24px 20px; }
  }

  /* --- Sehr kleine Geräte --- */
  @media(max-width:400px){
    .brand img{ height:52px; }
    .wrap, .nav{ padding:0 14px; }
  }

  /* ===================================================================
     ===== HEADER-FIX: Burger bleibt sichtbar (kein Überlauf) =====
     =================================================================== */
  @media(max-width:1024px){
    .nav{
      gap:12px;                 /* 64px Desktop-Gap wäre auf dem Handy zu breit */
      flex-wrap:nowrap;
      justify-content:flex-start;
    }
    .brand{ flex-shrink:0; }    /* Logo behält Größe */
    .nav-call{
      margin-left:auto;         /* CTA schiebt sich zwischen Logo und Burger */
      flex-shrink:1;            /* darf bei Platzmangel schrumpfen */
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .nav-toggle{
      flex-shrink:0;            /* Burger wird NIE aus dem Bild geschoben */
    }
  }

  @media(max-width:640px){
    .nav{ gap:10px; }
    .nav-call{
      font-size:0.8rem;
      padding:9px 12px;
    }
  }
  @media(max-width:400px){
    .nav{ gap:8px; }
    .nav-call{
      font-size:0.72rem;
      padding:8px 10px;
    }
  }

  /* ===================================================================
     ===== MOBILES MENÜ: einheitliche Einträge (Dropdown = Links) =====
     =================================================================== */
  @media(max-width:1024px){
    /* Alle Menüpunkte im offenen Burger-Menü gleich behandeln */
    .nav-links a,
    .nav-dropdown a{
      display:block;
      width:100%;
      padding:16px 6px;
      margin:0;
      line-height:1.3;
      border-bottom:1px solid rgba(255,255,255,.12);
      text-align:left;
      white-space:normal;         /* langer Text darf umbrechen statt zu überlappen */
    }
    /* Dropdown fügt sich nahtlos in die Liste ein, kein eigener Kasten */
    .nav-dropdown{
      gap:0;
      margin:0;
      padding:0;
    }
    /* Aktive Seite: dezente Markierung statt überlappendem Outline-Rahmen */
    .nav-links a.active{
      outline:none;
      border-left:3px solid var(--heading-blue);
      padding-left:12px;
      color:var(--heading-blue);
      background:rgba(110,168,216,.08);
    }
    /* Social-Icons sauber unter die Links setzen */
    .nav-social{
      padding:14px 6px 0;
      border-top:1px solid rgba(255,255,255,.12);
      margin-top:6px;
    }
  }
