/* ===== Theme ===== */
:root{
  --bg:#0b0b0f;
  --panel:#0f1117;
  --panel-2:#121522;
  --text:#eef0f6;
  --muted:#9aa3b2;
  --gold:#caa65a;
  --gold-2:#f0d38a;
  --ring: rgba(202,166,90,.35);
  --shadow: 0 28px 70px rgba(2,8,23,.55);
  --radius: 18px;
   --header-h: 56px;
  --sheet-gap: 0px;
  
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; min-height:100%;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 700px at 10% -10%, #1a2240 0%, #121826 40%, transparent 70%),
    radial-gradient(900px 600px at 110% -10%, rgba(202,166,90,.15), transparent 60%),
    var(--bg);
  line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:"Playfair Display", Georgia, 'Times New Roman', serif; line-height:1.15; margin:0 0 .6rem}
h1{font-size:clamp(2.2rem, 4vw, 3.3rem)}
h2{font-size:clamp(1.8rem, 2.8vw, 2.4rem)}
h3{font-size:1.25rem}
.lead{color:var(--muted); font-size:1.05rem}
p{margin:0 0 1rem}
.gold{color:var(--gold)}
.break{display:block}
.overline{letter-spacing:.18em; text-transform:uppercase; font-weight:800; font-size:.8rem; color:var(--gold)}

/* vorher: width:min(1160px, 92vw); margin-inline:auto */
.container{
  width:100%;
  max-width:none;
  margin:0;                          /* nicht mehr mittig */
  padding-inline:clamp(14px,3vw,28px);  /* Randabstand an den Seiten */
}
.section-pad{padding:92px 0}
.section-title{margin-bottom:.4rem}
.section-sub{color:var(--muted); margin-bottom:1.25rem}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:60;
  backdrop-filter:saturate(120%) blur(10px);
  background:linear-gradient(to bottom, rgba(11,11,15,.92), rgba(11,11,15,.72));
  border-bottom:1px solid rgba(255,255,255,.06);
}
.header-grid{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; padding:14px 0}
.brand{display:flex; gap:12px; align-items:center; text-decoration:none; color:var(--text)}
.brand img{height:44px; width:auto; filter:drop-shadow(0 8px 26px rgba(0,0,0,.5))}
.brand-text{font-weight:800; letter-spacing:.02em}
.nav{display:flex; gap:26px; align-items:center}
.nav a{color:var(--muted); text-decoration:none; font-weight:700}
.nav a:hover{color:var(--text)}
.nav a.active{color:var(--gold)}
.nav .btn{margin-left:6px}
.nav-toggle{display:none; background:none; border:0; cursor:pointer}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--text); margin:5px 0}

/* Scroll progress */
.progress-bar{height:2px; background:transparent}
.progress-bar span{display:block; height:2px; width:0%; background:linear-gradient(90deg,var(--gold),var(--gold-2))}

/* ===== Buttons ===== */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.15rem; border-radius:999px; font-weight:800; text-decoration:none;
  transition:transform .15s ease, box-shadow .25s ease, background .25s ease, color .25s ease; cursor:pointer}
.btn-primary{background:linear-gradient(135deg, var(--gold), var(--gold-2)); color:#1a1a1a;
  box-shadow:0 14px 28px rgba(202,166,90,.28)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-outline{border:1px solid rgba(255,255,255,.25); color:var(--text)}
.btn-outline:hover{background:rgba(255,255,255,.07)}
.btn-ghost{border:1px solid rgba(255,255,255,.08); color:var(--gold); background:transparent}
.btn-ghost:hover{background:rgba(202,166,90,.08)}

/* ===== Hero ===== */
.hero{position:relative; overflow:hidden}
.hero-bg{
  position:absolute; inset:-30% -10% auto auto; height:680px; width:680px;
  border-radius:50%;
  background:
    radial-gradient(closest-side, rgba(202,166,90,.28), rgba(202,166,90,.12) 40%, transparent 70%);
  filter:blur(40px);
  transform:translate3d(0,0,0);
}
.hero-grid{display:grid; grid-template-columns:1.3fr .9fr; gap:36px; align-items:center}
.hero-cta{display:flex; gap:12px; margin:.8rem 0 1.2rem}
.trust-badges{display:flex; gap:18px; padding:0; margin:10px 0 0; list-style:none; color:var(--muted); font-weight:700}

.hero-art{display:grid; gap:14px}
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.09); border-radius:var(--radius); padding:18px 20px;
  box-shadow:var(--shadow); position:relative; overflow:hidden
}
.card.glass{backdrop-filter:blur(10px) saturate(120%)}
.card.metric{display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px}
.metric-num{font-weight:900; font-size:2rem; color:var(--gold)}
.metric-text{color:var(--muted)}
.bolt{
  width:56px; height:56px; border-radius:14px;
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  mask: conic-gradient(from 45deg, #0000 25%, #000 0 75%, #0000 0) center / 100% 100% no-repeat;
  filter:drop-shadow(0 16px 28px rgba(202,166,90,.28)); margin-bottom:10px
}

/* Shimmer/Glow/Lift */
.shimmer:before{
  content:""; position:absolute; inset:-2px; border-radius:inherit; padding:1px;
  background:linear-gradient(120deg, rgba(202,166,90,.6), rgba(255,255,255,.1), rgba(202,166,90,.6));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
}
.glow{box-shadow:0 0 0 1px rgba(202,166,90,.28), 0 22px 60px rgba(202,166,90,.12)}
.lift{transition:transform .25s ease, box-shadow .25s ease}
.lift:hover{transform:translateY(-4px); box-shadow:0 24px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(202,166,90,.3)}

/* ===== Grid helpers ===== */
.grid{display:grid; gap:18px}
.cards-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.two{grid-template-columns:repeat(2, minmax(0,1fr))}

/* ===== Gallery ===== */
.gallery{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.tile{position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius);
  background:linear-gradient(135deg, #1b2235, #0f1422); transform:translateZ(0)}
.tile-grad{position:absolute; inset:0; background:radial-gradient(120% 120% at 20% 15%, rgba(202,166,90,.36), transparent 55%)}
.tile figcaption{position:absolute; inset:auto 12px 12px 12px; color:#e9ecf4; font-weight:800; letter-spacing:.02em}
.tile:after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent,rgba(0,0,0,.35));
  opacity:0; transition:opacity .25s ease}
.tile:hover:after{opacity:1}

/* ===== About ===== */
.about{grid-template-columns:1.1fr .9fr}
.bullets{margin:.5rem 0 0; padding-left:1rem}
.facts{display:grid; grid-template-columns:auto 1fr; gap:8px 16px; margin:0}

/* ===== Contact (Form) ===== */
.section-contact{
  background:
    radial-gradient(60% 80% at 10% 10%, rgba(202,166,90,.10), transparent 60%) no-repeat,
    linear-gradient(180deg, rgba(15,17,23,1), rgba(15,17,23,.95));
  scroll-margin-top:90px;
}
.form .field{display:flex; flex-direction:column; gap:6px}
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form textarea{
  background:#0e1220; border:1px solid rgba(255,255,255,.10); border-radius:12px; padding:.95rem 1rem; color:var(--text);
  outline:0; transition:box-shadow .2s ease, border-color .2s ease
}
.form input:focus, .form textarea:focus{box-shadow:0 0 0 6px var(--ring); border-color:rgba(202,166,90,.45)}
.field small.error{display:none; color:#ffb4b4}
input.invalid, textarea.invalid{border-color:#cc6666}
input.invalid + small.error, textarea.invalid + small.error{display:block}
.hp{display:none}
.check{display:flex; gap:.6rem; align-items:flex-start; color:var(--muted); margin:.4rem 0 1rem}
.form-actions{display:flex; align-items:center; gap:12px; margin-top:.6rem}
.status{font-weight:700; color:var(--muted)}

/* ===== Footer ===== */
.site-footer{border-top:1px solid rgba(255,255,255,.06); margin-top:40px; position:relative}
.footer-grid{display:grid; grid-template-columns:1.1fr 1fr auto; align-items:start; gap:24px; padding:26px 0 10px}
.brand-foot{display:flex; align-items:center; gap:12px}
.brand-foot img{height:34px}
.foot-contact h4{margin:.1rem 0 .4rem; font-family:Inter; letter-spacing:.02em}
.foot-contact a{color:var(--text); text-decoration:none}
.foot-contact a:hover{color:var(--gold)}
.foot-links{display:flex; gap:18px; align-items:center}
.foot-links a{color:var(--muted); text-decoration:none}
.foot-links a:hover{color:var(--text)}
.foot-copy{color:var(--muted); text-align:center; padding:8px 0 22px; font-size:.95rem; border-top:1px solid rgba(255,255,255,.06)}
.to-top{
  position:fixed; right:22px; bottom:22px; z-index:70; border:0; cursor:pointer;
  border-radius:999px; width:44px; height:44px; font-size:18px; font-weight:900;
  background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#111;
  box-shadow:0 12px 28px rgba(202,166,90,.35); display:none;
}
.to-top.show{display:inline-grid; place-items:center}

/* ===== Modal ===== */
.modal{border:0; padding:0; background:transparent}
.modal::backdrop{background:rgba(0,0,0,.6); backdrop-filter:blur(2px)}
.modal .card{width:min(720px, 92vw)}
.modal .modal-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:.6rem}
.modal [data-close]{background:none; border:0; color:var(--text); font-size:1.2rem; cursor:pointer}

/* ===== Reveal on Scroll ===== */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease}
.reveal.in{opacity:1; transform:none}

/* ===== Anchor offset for sticky header ===== */
section{scroll-margin-top:90px}

/* ===== Utilities ===== */
.elevate{box-shadow:0 10px 30px rgba(0,0,0,.25)}

/* Ganz ans DATEIENDE setzen */
@media (max-width: 960px){
  .nav{ display:flex !important; }  /* sichtbar, damit dein off-canvas greift */
}

/* ===== Readable Modal (nicht durchsichtig, hoher Kontrast) ===== */
.modal{border:0; padding:0; background:transparent}
.modal::backdrop{background:rgba(0,0,0,.65); backdrop-filter:blur(3px)}

.modal-card.readable{
  /* fester, nicht transparenter Hintergrund */
  background: linear-gradient(180deg, #161b26, #121722);
  color: #eef1f8;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  max-width: min(900px, 92vw);
  box-shadow: 0 24px 70px rgba(0,0,0,.6);
}

.modal-card.readable .modal-head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 16px 20px 0 20px;
}

.modal-card.readable h3{
  margin:0 0 10px; font-size:1.4rem; color: var(--gold);
}

.modal-card.readable .modal-body{
  padding: 4px 20px 18px 20px;
  max-height: 80vh;            /* scrollbar innerhalb des Modals */
  overflow: auto;
  line-height: 1.75;
  font-size: 0.98rem;
}

.modal-card.readable h4{
  margin: 18px 0 8px; font-size:1.05rem; color:#f3dca0;
}

.modal-card.readable p,
.modal-card.readable li{ color:#e7ebf4 }

.modal-card.readable ul{ margin: 0 0 12px 1.1rem }
.modal-card.readable a{ color: var(--gold-2); text-decoration: underline }
.modal-card.readable a:hover{ color: var(--gold) }

.modal [data-close]{
  background:none; border:0; color:#eaeef6; font-size:1.25rem; cursor:pointer;
  line-height:1; padding:6px 8px; border-radius:8px;
}
.modal [data-close]:hover{ background:rgba(255,255,255,.08) }

/* Optional: helle Version, falls du lieber Light-Panel willst
.modal-card.readable{
  background: #ffffff;
  color: #0f1522;
  border: 1px solid #e7eaf1;
}
.modal-card.readable h4{ color:#6f5416 }
*/
/* ========== MOBILE FIRST / RESPONSIVE ENHANCEMENTS ========== */

/* Grundtypografie: dynamisch skalierend */
:root{
  --space: clamp(14px, 2.8vw, 22px);
  --radius: 16px;
}
body{ font-size: clamp(15px, 1.9vw, 17px); line-height: 1.6 }

/* Container-Padding für kleine Screens */
.container{ padding-left: max(14px, 3vw); padding-right: max(14px, 3vw) }

/* Sektionen */
.section-pad{ padding: clamp(48px, 10vw, 92px) 0 }

/* Headings mit clamp */
.section-title{ font-size: clamp(22px, 4.2vw, 34px); line-height: 1.25 }
.lead{ font-size: clamp(15px, 2.6vw, 18px) }

/* Buttons: auf Mobile volle Breite als Primary, Ghost bleibt auto */
.btn{ border-radius: 999px; padding: 12px 18px; }
@media (max-width: 640px){
  .btn-primary{ width: 100% }
  .hero-cta .btn-ghost{ width: auto }
  .hero-cta{ gap: 10px; flex-direction: column; align-items: stretch }
}

/* Header: sticky mit mobile Navigation */
.site-header{ position: sticky; top: 0; z-index: 50; backdrop-filter: blur(6px) }
.header-grid{ display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px }
.brand{ display: flex; align-items: center; gap: 10px; text-decoration: none }
.brand img{ width: 40px; height: 40px; object-fit: cover; border-radius: 8px }
.brand-text strong{ font-size: clamp(14px, 3.6vw, 18px); letter-spacing: .4px }
.brand-text small{ font-size: clamp(11px, 2.9vw, 13px); opacity: .85 }

/* Desktop-Navigation standard: sichtbar */
.nav{ display: flex; gap: 16px; align-items: center }

/* Burger: nur auf ≤ 960px */
.nav-toggle{ display: none; background: none; border: 0; padding: 8px; border-radius: 12px; }
.nav-toggle span{ display:block; width:24px; height:2px; margin:5px 0; background: currentColor; border-radius:2px }

@media (max-width: 960px){
  .nav{
    position: fixed;
    top: var(--header-h);
    right: 0; bottom: 0; left: auto;

    block-size: 26dvh;
    overflow: auto;
    overscroll-behavior: contain;

    width: min(86vw, 380px);
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;

    /* Farben ans Website-Theme gebunden */
    background: linear-gradient(180deg, var(--panel), var(--panel-2));
    border-left: 1px solid rgba(255,255,255,.10);
    box-shadow: -26px 0 64px rgba(0,0,0,.38);

    transform: translateX(104%);
    transition: transform .28s cubic-bezier(.22,.61,.36,1);
    will-change: transform;
    backface-visibility: hidden;
    contain: paint;

    pointer-events: none;
    z-index: 1101;
  }
  .nav.open{ transform: translateX(0); pointer-events:auto; }
}


@media (max-width: 960px){
  .nav a{
    display:flex; align-items:center; gap:10px;
    padding: 12px 14px;
    border-radius: 12px;
    color: var(--text);
    text-decoration: none;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.25;

    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    border: 1px solid rgba(255,255,255,.06);

    transition: background .18s ease, border-color .18s ease, transform .12s ease;
  }
  .nav a:hover{
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
    border-color: rgba(255,255,255,.14);
  }
  .nav a:active{ transform: translateY(1px) }
  .nav a:focus-visible{ outline:0; box-shadow: 0 0 0 3px var(--ring) }

  /* Aktiver Link = Goldenes Accent, passend zu deiner Hauptfarbe */
  .nav a.active{
    color: var(--gold);
    border-color: rgba(202,166,90,.35);
    background: linear-gradient(180deg, rgba(202,166,90,.10), rgba(202,166,90,.06));
  }
}

  /* Optionale Trenner im Menü */
  .nav hr{
    height:1px; border:0; margin:6px 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.10), transparent);
  }

  .nav .btn{
    border-radius: 999px;
    padding:12px 16px;
    font-weight:800;
  }
  .nav .btn.btn-outline{ border:1px solid rgba(255,255,255,.16) }





  /* Links normal – keine Farb-/Helligkeitsänderungen */
  .nav a{ padding: 12px 14px; border-radius: 10px }
  .nav a:hover{ background: rgba(255,255,255,.08) }


/* Kein Overlay mehr nötig – stelle sicher, dass evtl. vorhandene .nav-overlay unsichtbar ist */
.nav-overlay{ display:none !important; }

/* Optional: horizontales Scrollen der Seite (inkl. nach rechts) wieder erlauben */
/* Seite darf NICHT horizontal scrollen */
html, body{
  overflow-x: hidden !important;
  width: 100%;
  position: relative;
  overscroll-behavior-x: none; /* kein horizontales „Gummiband“ */
}



/* Hero: vertikale Staffelung */
.hero-grid{ display: grid; gap: clamp(16px, 4vw, 28px); grid-template-columns: 1fr 1fr }
@media (max-width: 960px){
  .hero-grid{ grid-template-columns: 1fr }
  .hero-art{ order: -1 } /* „Wow-Card“ zuerst auf Mobile */
}

/* Karten-Layout: automatisch einkolumnig bis 640px, 2-spaltig bis 960px, dann 3 */
.grid.cards-3{ display: grid; gap: clamp(12px, 3vw, 18px); grid-template-columns: repeat(3, minmax(0,1fr)) }
@media (max-width: 960px){ .grid.cards-3{ grid-template-columns: repeat(2, minmax(0,1fr)) } }
@media (max-width: 640px){ .grid.cards-3{ grid-template-columns: 1fr } }

.card{ border-radius: var(--radius) }
.card.lift{ transition: transform .2s ease, box-shadow .2s ease }
.card.lift:active{ transform: translateY(1px) }

/* „Über uns“: die zwei Spalten werden auf Mobile zu einem Stack */
.about.grid{ display: grid; gap: clamp(12px, 3vw, 20px); grid-template-columns: 1.15fr .85fr }
@media (max-width: 960px){ .about.grid{ grid-template-columns: 1fr } }

/* Listen kompakter und fingerfreundlich */
.bullets li{ margin: 6px 0; padding-left: 2px }

/* Galerie: auf Mobile horizontales Scrollen mit Snap */
.gallery{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: clamp(10px, 3vw, 16px) }
@media (max-width: 640px){
  .gallery{
    display: grid; grid-auto-flow: column; grid-auto-columns: 78%;
    overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 8px;
  }
  .gallery .tile{ scroll-snap-align: start }
}

/* Formular: große Touch-Ziele */
.field input, .field textarea{
  padding: 12px 14px; border-radius: 12px; min-height: 44px;
}
.check input{ width: 18px; height: 18px }

/* Footer Stack */
.footer-grid{ display: grid; grid-template-columns: 1.2fr .8fr auto; gap: 18px }
f .footer-grid{ grid-template-columns: 1fr 1fr } }
@media (max-width: 640px){ .footer-grid{ grid-template-columns: 1fr } }

/* Progress Bar schlanker auf Mobile */
.progress-bar span{ height: 2px }

/* Modals: auf Mobile nahezu Vollbild (lesbar!) */
@media (max-width: 640px){
  .modal-card.readable{
     max-width: 100vw; width: 100vw; height: 92vh; border-radius: 16px 16px 0 0;
  }
  .modal-card.readable .modal-body{ max-height: calc(92vh - 64px) }
}

/* Scroll-Behavior smooth + Offset fix für Sticky Header */
html{ scroll-behavior: smooth; }
:target{ scroll-margin-top: 90px; }

/* Kleine Details */
.to-top{ bottom: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50% }
/* === KEBAB MENU === */
.nav-toggle{ display:none !important; } /* alten Burger sicher verstecken */

.nav-kebab{
  display:none; /* nur mobil anzeigen (s. Media Query unten) */
  background:transparent; border:0; padding:10px; border-radius:12px;
  color:var(--text); cursor:pointer; line-height:0;
}
.nav-kebab:hover{ background:rgba(255,255,255,.06) }
.nav-kebab:focus-visible{ outline:2px solid var(--gold); outline-offset:2px }

.nav-kebab .dot{
  width:4px; height:4px; border-radius:50%; background:currentColor; display:inline-block;
  /* drei vertikale Punkte via box-shadow */
  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}


/* Mobile: Kebab anzeigen, Sheet-Nav wie gehabt von rechts einschieben */
@media (max-width: 960px){
  .nav-kebab{ display:inline-flex; justify-self:end; }

  /* Deine bestehende .nav Mobile-Sheet-Styles greifen bereits;
     wir ergänzen nur leichte Politur */
  .nav{
    border-left:1px solid rgba(255,255,255,.10);
    background: linear-gradient(180deg, var(--panel), var(--panel-2));
  }
  .nav a{ padding:12px 14px; border-radius:10px }
  .nav a:hover{ background: rgba(255,255,255,.06); color: var(--text); }
}
/* === NAV OVERLAY (ohne Unschärfe, korrekt gestapelt) === */
.nav-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);         /* nur abdunkeln */
  backdrop-filter: none !important;     /* Blur AUS */
  -webkit-backdrop-filter: none !important;
  z-index: 1000;                        /* unter dem Sheet */
}


@media (max-width: 960px){
  /* Sheet-Menü sicher über dem Overlay und dem Header */
  .site-header{ z-index: 60; }
  .nav{ 
    z-index: 70;               /* ÜBER Overlay */
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}
/* === SHEET: BELICHTUNG/HELLIGKEIT HOCH === */
@media (max-width: 960px){
  /* Overlay weniger dunkel -> Umgebung wirkt heller */
 .nav a{ padding: 12px 14px; border-radius: 10px }
.nav a:hover{ background: rgba(255,255,255,.08) }

  }

  /* Sheet klar und heller – ohne Farbwechsel */
  .nav{
    /* leicht hellere Paneel-Töne als Basis (nur minimal) */
    background: linear-gradient(180deg, #161b26f2, #1b2434f2);
    /* Belichtung anheben */
    filter: brightness(1.18) contrast(1.08) saturate(1.02);
    -webkit-filter: brightness(1.18) contrast(1.08) saturate(1.02);
    /* mehr Eigenlicht/Elevation */
    box-shadow: -28px 0 70px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06);
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Lesbarkeit: Links etwas klarer, ohne Farbwechsel */
  .nav a{
    color: rgba(250,252,255,.98) !important;
  }
  .nav a:hover{
    background: rgba(255,255,255,.08);
  
}
/* ===== DARKER BACKGROUND (global) ===== */
body{
  /* insgesamt ~12–15% dunkler als vorher */
  background:
    radial-gradient(1200px 700px at 10% -10%, #13192f 0%, #0e1422 40%, transparent 70%),
    radial-gradient(900px 600px at 110% -10%, rgba(202,166,90,.10), transparent 60%),
    #08090e; /* dunkler Grundton */
}

/* Optional: Panels minimal dunkler für mehr Tiefe */
:root{

  /* …deine restlichen Variablen… */
  --menu-panel:   #101522;        /* direkt Farbe rein */
  --menu-panel-2: #1c0b0b;        /* zweite Farbe für den Verlauf */
  --menu-text:    #f2f4fa;        /* Textfarbe im Menü */


}




/* Overlay komplett aus */
.nav-overlay{ display:none !important; }


/* Nur sichtbar, wenn Menü offen */
body.menu-open .nav-overlay{
  opacity: 1;
  pointer-events: auto;
}

/* Sheet bleibt darüber klar und ungedimmt */
@media (max-width: 960px){
  .nav{
    z-index: 1001;                    /* über Overlay */
    filter: none !important;          /* niemals abdunkeln */
    background: linear-gradient(180deg, #723110, #1b2434f2); /* dein dunkles Sheet */
    box-shadow: -28px 0 70px rgba(181, 76, 24, 0.45), 0 0 0 1px rgba(118, 153, 13, 0.06);
  }
  .nav a{ color: rgba(250,252,255,.98) !important; }
  .nav a:hover{ background: rgba(182, 27, 27, 0.45); }
}
/* ===== REFERENZEN: MOBILE LESBARKEIT ===== */
@media (max-width: 960px){
  /* Swipe-Karussell statt enges Grid */
  .gallery{
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 86%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    gap: 14px;
    padding-bottom: 12px;
  }
  .gallery .tile{
    scroll-snap-align: start;
    aspect-ratio: 16 / 10;                 /* flächiger, mehr Platz fürs Caption */
    border-radius: var(--radius);
    position: relative;
  }

  /* Mehr Kontrast hinter dem Text */
  .gallery .tile figcaption{
    inset: auto 10px 10px 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0,0,0,.58);          /* dunkle, aber transparente Kachel */
    color: #fff;
    font-weight: 800;
    font-size: clamp(14px, 3.8vw, 16px);
    line-height: 1.25;
    letter-spacing: .01em;
    text-shadow: 0 1px 2px rgba(0,0,0,.45);
  }

  /* Grundkachel etwas stärker abdunkeln, damit Text knallt */
  .gallery .tile:after{
    opacity: .42;                          /* statt 0 (nur Hover) */
  }
}

/* Auf sehr kleinen Screens (≤ 420px): 1 Kachel pro Zeile, kein horizontales Scrollen nötig */
@media (max-width: 420px){
  .gallery{
    grid-auto-flow: row;
    grid-auto-columns: unset;
    grid-template-columns: 1fr;
    overflow: visible;
    scroll-snap-type: none;
  }
  .gallery .tile{ aspect-ratio: 4 / 3; }
}
/* ===== ÜBER UNS – MOBILE POLISH (elegant, professionell, effektiv) ===== */
@media (max-width: 960px){
  /* Sektion bekommt ein dezentes Panel + mehr Luft */
  #ueber-uns.section{
    background:
      radial-gradient(70% 60% at 10% 0%, rgba(202,166,90,.08), transparent 60%) no-repeat,
      linear-gradient(180deg, #0e1422, #0b101c);
    border-top: 1px solid rgba(255,255,255,.06);
  }

  /* Titel mit edlem Akzentstrich */
  #ueber-uns .section-title{
    position: relative;
    padding-bottom: 8px;
  }
  #ueber-uns .section-title::after{
    content:"";
    position:absolute; left:0; bottom:0; width:64px; height:3px;
    border-radius:3px;
    background: linear-gradient(90deg, var(--gold), var(--gold-2));
    box-shadow: 0 6px 16px rgba(202,166,90,.35);
  }

  /* Einleitung kräftiger (aber nicht zu groß) */
  #ueber-uns .lead{
    font-size: clamp(16px, 3.9vw, 18px);
    color: #e8ecf6;
  }

  /* Karten: dichter, dunkler, klarer Kontrast */
  #ueber-uns .card{
    background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
    border: 1px solid rgba(255,255,255,.10);
    padding: 16px 14px;
  }
  #ueber-uns .card h3{
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-weight: 900;
    letter-spacing:.01em;
  }

  /* 2-Spalten-Listen auf Mobile als Einspalter mit „Checklist-Card“-Look */
  #ueber-uns .grid.two{ grid-template-columns: 1fr; gap: 10px }

  #ueber-uns .bullets{
    list-style: none; padding: 0; margin: 4px 0 0;
    display: grid; gap: 10px;
  }
  #ueber-uns .bullets li{
    display: grid; grid-template-columns: 28px 1fr; align-items: start;
    gap: 10px;
    padding: 12px 12px;
    background: #0f1626;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(0,0,0,.35);
    line-height: 1.45;
    color: #f0f3fa;
    transform: translateZ(0);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  #ueber-uns .bullets li:active{
    transform: translateY(1px);
    box-shadow: 0 6px 18px rgba(0,0,0,.35);
  }

  /* Goldener Check als Icon (ohne extra HTML) */
  #ueber-uns .bullets li::before{
    content: "✓";
    display: grid; place-items: center;
    width: 28px; height: 28px; border-radius: 999px;
    background: linear-gradient(135deg, var(--gold), var(--gold-2));
    color: #171a22; font-weight: 900;
    box-shadow: 0 6px 18px rgba(202,166,90,.35);
  }

  /* „Warum wir“-Liste etwas kompakter */
  #ueber-uns [aria-label="Warum wir"] .bullets li{
    background:#0e1524;
  }

  /* Abschluss-CTA: auf Mobile als Stack + leichte Glanzlinie */
  #ueber-uns .hero-cta{
    flex-direction: column; align-items: stretch; gap: 10px;
    padding-top: 10px; margin-top: 14px;
    border-top: 1px solid rgba(255,255,255,.08);
  }

  /* Micro-Entrance für den Block (sanft) */
  #ueber-uns.reveal.in .card,
  #ueber-uns.reveal.in .bullets li{
    animation: ueins .35s ease both;
  }
  @keyframes ueins{
    from{ opacity:0; transform: translateY(8px) }
    to{ opacity:1; transform:none }
  }
}

/* ===== Leistungen – edle Service-Karten ===== */
#leistungen .grid.cards-3{
  gap: 20px;
}

#leistungen .card{
  position: relative;
  padding: 18px 18px 18px 70px;                  /* Platz für Icon links */
  border-radius: var(--radius);
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); /* glasig */
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

/* Goldene Akzentlinie oben – sehr dezent */
#leistungen .card::after{
  content:"";
  position:absolute; inset:0 0 auto 0;
  height:3px; border-radius: 3px 3px 0 0;
  background: linear-gradient(90deg, var(--gold), var(--gold-2));
  opacity:.22;                                  /* subtil */
}

/* „Icon-Badge“ links (ohne extra HTML) */
#leistungen .card::before{
  content:"";
  position:absolute; left:18px; top:20px;
  width:38px; height:38px; border-radius: 12px;
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  /* leichter Glanz */
  box-shadow: 0 8px 22px rgba(202,166,90,.35);
  /* Piktogramm per Mask (einfaches Häkchen) */
  -webkit-mask: radial-gradient(circle at 55% 52%, transparent 11px, black 12px) top left,
                linear-gradient(black,black) bottom right / 18px 3px no-repeat,
                linear-gradient(black,black) 10px 21px / 3px 12px no-repeat;
  mask:
    radial-gradient(circle at 55% 52%, transparent 11px, black 12px) top left,
    linear-gradient(black,black) bottom right / 18px 3px no-repeat,
    linear-gradient(black,black) 10px 21px / 3px 12px no-repeat;
  -webkit-mask-composite: source-over;
  mask-composite: add;
}

/* Typografie in den Karten */
#leistungen .card h3{
  margin: 0 0 .35rem 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 900;
  letter-spacing: .01em;
}
#leistungen .card p{
  color: var(--muted);
}

/* Hover/Lift – edel, ohne zu „springen“ */
#leistungen .card:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 46px rgba(0,0,0,.45), 0 0 0 1px rgba(202,166,90,.24) inset;
  border-color: rgba(202,166,90,.25);
}

/* Responsive: auf sehr kleinen Screens enger */
@media (max-width: 640px){
  #leistungen .card{
    padding: 16px 16px 16px 64px;
  }
  #leistungen .card::before{
    left:14px; top:16px; width:34px; height:34px; border-radius: 10px;
  }
}
/* Leistungen: 2 Karten pro Reihe, mobil 1 */
#leistungen .grid.cards-3{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px; /* Abstand zwischen den Karten */
}

@media (max-width: 640px){
  #leistungen .grid.cards-3{
    grid-template-columns: 1fr;
  }
}
.hero{
  min-height: calc(100svh - var(--header-h)); /* ganze Höhe minus Header */
  display:grid;
  align-items:center;
}
/* Footer Credit (Neaforge) */
.foot-credit{
  margin: 6px 0 22px;
  text-align: center;
  font-size: .95rem;
  color: var(--muted);
  opacity: .9;
}
.foot-credit a{
  color: var(--gold);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px dashed rgba(202,166,90,.45);
  padding-bottom: 1px;
  transition: color .18s ease, border-color .18s ease, opacity .18s ease;
}
.foot-credit a:hover{
  color: var(--gold-2);
  border-color: rgba(240,211,138,.75);
  opacity: 1;
}
/* --- Footer Credit: elegant, professionell, modern --- */
.foot-copy{
  color: var(--muted);
  text-align: center;
  padding: 10px 0 24px;
  font-size: .96rem;
  border-top: 1px solid rgba(255,255,255,.06);
}

.foot-copy .dot{
  opacity: .6;
  margin: 0 .45rem;
}

.foot-copy .credit a{
  color: var(--gold);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px dashed rgba(202,166,90,.45);
  padding-bottom: 1px;
  transition: color .18s ease, border-color .18s ease, opacity .18s ease, filter .18s ease;
}
.foot-copy .credit a:hover{
  color: var(--gold-2);
  border-color: rgba(240,211,138,.75);
  filter: drop-shadow(0 2px 10px rgba(202,166,90,.25));
}

/* Herz: ganz dezentes Puls-Highlight */
.foot-copy .heart{
  display: inline-block;
  margin: 0 .18rem;
  transform-origin: center;
  animation: heartPulse 2.4s ease-in-out infinite;
  text-shadow: 0 0 8px rgba(202,166,90,.25);
}
@keyframes heartPulse{
  0%, 100% { transform: scale(1); opacity: .92; }
  25%      { transform: scale(1.06); opacity: 1; }
  60%      { transform: scale(1); opacity: .92; }
}

/* Screenreader-Only Text */
.sr-only{
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Kompakt auf sehr kleinen Screens */
@media (max-width: 420px){
  .foot-copy{ line-height: 1.6 }
  .foot-copy .dot{ display: none }
  .foot-copy .credit{ display: block; margin-top: 2px }
}
/* ——— Footer Credit: elegant, professionell, modern ——— */
.foot-copy{
  color: var(--muted);
  text-align: center;
  padding: 12px 0 24px;
  font-size: .96rem;
  letter-spacing: .01em;
  border-top: 1px solid rgba(255,255,255,.06);
}

.foot-copy .sep{ opacity:.55; margin:0 .5rem }

.foot-copy .credit{
  font-variant-numeric: proportional-nums;
  white-space: nowrap;
}

/* Link: dezenter Premium-Look, kein Herz, kein Gimmick */
.foot-copy .credit a{
  color: var(--gold);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(202,166,90,.35);
  padding-bottom: 2px;
  transition: color .18s ease, border-color .18s ease, text-underline-offset .18s ease, opacity .18s ease;
}
.foot-copy .credit a:hover{
  color: var(--gold-2);
  border-color: rgba(240,211,138,.7);
  text-underline-offset: 3px;
}

/* Kompakter Fluss auf sehr kleinen Screens */
@media (max-width: 480px){
  .foot-copy{ line-height: 1.6 }
  .foot-copy .sep{ display:none }
  .foot-copy .credit{ display:block; margin-top:2px }
}
/* ===== Pro Gallery (BERO) ===== */
.gallery-pro{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}

/* Responsive Spans – abwechslungsreich, aber ruhig */
.gallery-pro .gp-item{ grid-column: span 4; text-decoration:none; }
.gallery-pro .gp-item:nth-child(2){ grid-column: span 8; }
.gallery-pro .gp-item:nth-child(3){ grid-column: span 5; }
.gallery-pro .gp-item:nth-child(4){ grid-column: span 7; }
.gallery-pro .gp-item:nth-child(5){ grid-column: span 6; }

@media (max-width: 960px){
  .gallery-pro .gp-item{ grid-column: span 6; }
  .gallery-pro .gp-item:nth-child(2){ grid-column: span 12; }
}
@media (max-width: 640px){
  .gallery-pro{ grid-template-columns: 1fr; }
  .gallery-pro .gp-item{ grid-column: auto; }
}

.gp-item figure{
  position:relative;
  margin:0; overflow:hidden; border-radius: var(--radius);
  background: linear-gradient(135deg, #1b2235, #0f1422);
  border:1px solid rgba(255,255,255,.10);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
  aspect-ratio: 16 / 10;            /* <-- HIER das Seitenverhältnis */
}
.gp-item img{
  display:block;
  width:100%;
  height:auto;                       /* <-- statt 100% */
  object-fit: cover;                 /* behält Look im Frame */
  transform: scale(1.02);
  transition: transform .5s ease, filter .5s ease;
}
/* Goldener Highlight-Sheen */
.gp-item figure::before{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.00), rgba(0,0,0,.38)),
    radial-gradient(160% 120% at 15% 10%, rgba(202,166,90,.22), transparent 60%);
  opacity:.9; pointer-events:none;
  transition: opacity .35s ease;
}

/* Caption Badge */
.gp-item figcaption{
  position:absolute; left:10px; bottom:10px;
  padding:8px 10px; border-radius:12px;
  font-weight:800; letter-spacing:.01em;
  color:#fff;
  background: rgba(0,0,0,.50);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(6px);
}

/* Hover: dezente Bewegung + Klarheit */
.gp-item:hover img{ transform: scale(1.06); filter: saturate(1.05) }
.gp-item:hover figure{ border-color: rgba(202,166,90,.28); box-shadow: 0 18px 46px rgba(0,0,0,.45) }
.gp-item:hover figcaption{ background: rgba(0,0,0,.62); border-color: rgba(255,255,255,.22) }

/* ===== CSS-only Lightbox via :target ===== */
.lightbox{
  position: fixed; inset:0;
  display: none;
  align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(4px);
  z-index: 1200;
}
.lightbox:target{ display: flex; }

.lightbox img{
  max-width: min(1200px, 92vw);
  max-height: 82vh;
  width: auto; height: auto;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(0,0,0,.6),
              0 0 0 1px rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}

.lightbox p{
  position: absolute; left: 24px; bottom: 24px;
  margin:0; padding: 8px 12px; border-radius: 10px;
  background: rgba(0,0,0,.55);
  color:#eef1f8; font-weight:800;
  border:1px solid rgba(255,255,255,.18);
}

.lb-close{
  position: absolute; top: 18px; right: 18px;
  width: 40px; height: 40px; display:grid; place-items:center;
  text-decoration:none; color:#eaeef6; font-size:20px; font-weight:900;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.16);
}
.lb-close:hover{ background: rgba(255,255,255,.12) }
/* REFERENZEN-Bilder in .tile vollflächig einsetzen */
/* --- Referenzen: Bild-Ausschnitt pro Kachel steuerbar --- */
.tile{
  /* Default-Fokus (Mitte) – kann je Kachel überschrieben werden */
  --tile-pos-x: 50%;
  --tile-pos-y: 50%;
  --tile-fit: cover;            /* Alternative: contain für Pläne/Logos */
}

.tile > img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: var(--tile-fit);
  object-position: var(--tile-pos-x) var(--tile-pos-y);
  z-index: 0;
}

/* Layer-Reihenfolge beibehalten */
.tile .tile-grad{ z-index: 1; pointer-events: none; }
.tile:after{ z-index: 2; pointer-events: none; }
.tile figcaption{ z-index: 3; }

/* Praktische Fokus-Utilities */
.tile--top         { --tile-pos-y: 18%; }
.tile--bottom      { --tile-pos-y: 82%; }
.tile--left        { --tile-pos-x: 18%; }
.tile--right       { --tile-pos-x: 82%; }
.tile--top-left    { --tile-pos-x: 18%; --tile-pos-y: 18%; }
.tile--top-right   { --tile-pos-x: 82%; --tile-pos-y: 18%; }
.tile--bottom-left { --tile-pos-x: 18%; --tile-pos-y: 82%; }
.tile--bottom-right{ --tile-pos-x: 82%; --tile-pos-y: 82%; }

/* Für Pläne/Logos ohne Zuschnitt */
.tile--contain{ --tile-fit: contain; background:#0f1422; }
.tile--contain > img{ background:#0f1422; }

/* Optional: auf sehr schmalen Geräten Ausschnitt minimal nach oben,
   falls unten Text steht (Caption) und Gesichter o.ä. nicht verdeckt werden sollen */
@media (max-width: 480px){
  .tile { --tile-pos-y: 45%; }
}
/* Bei contain weniger Abdunklung/Glanz, damit alles sichtbar bleibt */
.tile--contain .tile-grad{ opacity:.15 }
.tile--contain::after{ opacity:.12 }
/* Desktop: Kacheln schlanker machen */

/* Referenzen: Kachel nur dünner machen (weniger Höhe, gleiche Breite) */

/* Referenzen: Box schmaler, Höhe bleibt gleich */
@media (min-width: 961px){
  :root{
    /* Höhe der Box (wie vorher). Passe nur die Breite an. */
    --ref-tile-h: 400px;     /* <- Höhe behalten */
    --ref-tile-w: 260px;     /* <- HIER schmaler machen (z.B. 240/220px) */
  }

  /* Grid bekommt schmalere Spalten */
  #referenzen .gallery{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--ref-tile-w), 1fr));
    justify-content: start;    /* oder: center | space-between */
    gap: 16px;
  }

  /* Jede Kachel: feste Höhe, schmalere Breite */
  #referenzen .tile{
    aspect-ratio: auto;        /* Seitenverhältnis deaktivieren */
    width: var(--ref-tile-w);
    height: var(--ref-tile-h);
  }

  /* Bild weiter vollflächig einpassen */
  #referenzen .tile > img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
/* ===== WOW-HERO ===== */
.wow-hero{
  position: relative;
  min-height: clamp(62svh, 72svh, 84svh);
  display: grid;
  align-items: end;                          /* Text sitzt optisch unten */
  padding: clamp(40px, 6vw, 80px) 0;
  isolation: isolate;                        /* Overlays sauber schichten */
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.wow-media{
  position: absolute; inset: 0;
  overflow: hidden; z-index: -1;             /* hinter den Inhalt */
}
.wow-media img{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 32%;                  /* Fokus: Rückenlogo */
  filter: brightness(0.94) contrast(1.06) saturate(1.02);
  transform: scale(1.03);
  animation: kenburns 22s ease-in-out infinite alternate;
}
@keyframes kenburns{
  0%   { transform: scale(1.03) translateY(0) }
  100% { transform: scale(1.09) translateY(-1.2%) }
}
/* Motion-Respekt */
@media (prefers-reduced-motion: reduce){
  .wow-media img{ animation: none; transform: none }
}

/* edle Licht-/Vignette-Overlays */
.wow-media::before,
.wow-media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
}
.wow-media::before{
  /* goldener Schimmer oben links */
  background: radial-gradient(55% 45% at 18% 8%, rgba(202,166,90,.18), transparent 60%);
  mix-blend-mode: screen;
}
.wow-media::after{
  /* Lesbarkeit: weiche Vignette + Verlauf nach unten */
  background:
    linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.38) 55%, rgba(0,0,0,.65) 100%),
    radial-gradient(120% 120% at 50% 100%, rgba(0,0,0,.45), transparent 40%);
}

/* Inhalt: klar, kompakt, professionell */
.wow-content{
  width: 100%;
  max-width: min(1100px, 92vw);
  margin: 0 auto;
}
.wow-content .overline{
  display: inline-block;
  margin-bottom: .35rem;
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}
.wow-content h1{
  margin: 0 0 .6rem;
  font-size: clamp(28px, 4.4vw, 46px);
  line-height: 1.15;
  text-shadow: 0 6px 28px rgba(0,0,0,.45);
}
.wow-content .lead{
  max-width: 760px;
  color: #e9edf7;
  text-shadow: 0 2px 14px rgba(0,0,0,.55);
  opacity: .98;
}
.wow-content .hero-cta{ margin-top: 12px }
.wow-content .btn-primary{ box-shadow: 0 16px 36px rgba(202,166,90,.34) }

/* mobile Typo/Spacing feinjustiert */
@media (max-width: 640px){
  .wow-hero{ align-items: end; padding-top: 18svh; }
  .wow-content .lead{ max-width: 100% }
}
/* === TOC: Professional Card === */
.toc.pro{
  position: sticky; top: 86px;
  display: grid; grid-template-rows: auto 1fr;
  gap: 10px;
  padding: 12px;
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 46px rgba(0,0,0,.35);
  max-height: calc(100vh - 110px);   /* kürzer & ruhiger */
  overflow: hidden;                   /* Scroll nur in .toc-list */
}

.toc.pro .toc-head{
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px 6px 2px; border-bottom: 1px solid rgba(255,255,255,.06);
}
.toc.pro .toc-head h3{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 900; font-size: .98rem; letter-spacing: .02em; margin: 0;
}

.toc.pro .toc-toggle{
  display: none;                      /* nur mobil sichtbar (s. Media Query) */
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  color: var(--text);
  font-weight: 800; border-radius: 10px; padding: 6px 10px; cursor: pointer;
}
.toc.pro .toc-toggle:hover{ background: rgba(255,255,255,.06) }

/* Scrollbereich mit Fade-Masken für edlen Abschluss */
.toc.pro .toc-list{
  overflow: auto; padding: 6px 4px 8px 4px; margin-right: 2px;
  mask-image: linear-gradient(to bottom, transparent 0, black 12px, black calc(100% - 12px), transparent 100%);
}

/* Links: kompakt, präzise, Premium-Indikator links */
.toc.pro .toc-list a{
  --pad: 9px;
  display: grid; grid-template-columns: 26px 1fr; align-items: center;
  gap: 8px;
  color: var(--muted); text-decoration: none;
  padding: var(--pad) 10px var(--pad) 8px;
  border-radius: 10px;
  position: relative;
  transition: background .16s ease, color .16s ease, border-color .16s ease, transform .08s ease;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
}
.toc.pro .toc-list a:hover{
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
  color: var(--text);
  border-color: rgba(255,255,255,.12);
}
.toc.pro .toc-list a:active{ transform: translateY(1px) }

.toc.pro .toc-list a::before{
  content:""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, transparent, transparent);
  transition: background .2s ease, opacity .2s ease;
  opacity: .4;
}

/* Nummer-Badge kleiner & knackig */
.toc.pro .toc-list .num{
  display: inline-grid; place-items: center;
  width: 22px; height: 22px; border-radius: 8px;
  font-weight: 900; font-size: .78rem; color: #111;
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  box-shadow: 0 6px 16px rgba(202,166,90,.35);
}
.toc.pro .toc-list .txt{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis }

/* Aktiver Link: goldener Akzent, bessere Lesbarkeit */
.toc.pro .toc-list a.active{
  color: var(--gold);
  border-color: rgba(202,166,90,.35);
  background: linear-gradient(180deg, rgba(202,166,90,.12), rgba(202,166,90,.06));
}
.toc.pro .toc-list a.active::before{
  background: linear-gradient(180deg, var(--gold), var(--gold-2));
  opacity: 1;
}

/* Dezenter Scrollbar-Style (nur dort) */
.toc.pro .toc-list::-webkit-scrollbar{ width: 10px }
.toc.pro .toc-list::-webkit-scrollbar-track{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  border-radius: 999px;
}
.toc.pro .toc-list::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.16);
  border: 2px solid transparent;
  background-clip: padding-box;
  border-radius: 999px;
}

/* Mobile: TOC klappt zu (Button sichtbar) */
@media (max-width: 960px){
  .wrap{ grid-template-columns: 1fr }             /* dein Layout bleibt */
  .toc.pro{
    position: relative; top: auto;
    max-height: none; padding: 10px;
  }
  .toc.pro .toc-toggle{ display: inline-flex; align-items:center; gap: 8px }
  .toc.pro .toc-list{ display: none; }
  .toc.pro.open .toc-list{ display: block; }
}
/* === TOC kompakter & kürzer (ohne HTML-Änderungen) === */
:root{
  /* Dreh an diesen Werten, falls du noch kürzer/luftiger willst */
  --toc-maxh: calc(100vh - 120px); /* maximale Höhe der TOC */
  --toc-pad: 12px;                 /* Innenabstand der Box */
  --toc-link-pad: 8px;             /* Innenabstand je Link */
  --toc-font: .95rem;              /* Link-Schriftgröße */
}

aside.toc{
  position: sticky; top: 86px;
  display: grid; grid-template-rows: auto 1fr;   /* Titel + Scrollbereich */
  max-height: var(--toc-maxh);
  padding: var(--toc-pad);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 46px rgba(0,0,0,.35);
  overflow: hidden; /* Scroll nur innen */
}

aside.toc h3{
  margin: 2px 2px 8px;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 900;
  font-size: 1rem;
  letter-spacing: .02em;
  color: #e9edf7;
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding-bottom: 6px;
}

/* Innerer Scrollbereich: dein vorhandenes #tocList */
aside.toc #tocList{
  overflow: auto;
  padding-right: 4px;  /* Platz für Scrollbar */
  /* zarte Fade-Masken oben/unten, damit es nicht „zu lang“ wirkt */
  mask-image: linear-gradient(to bottom, transparent 0, black 12px, black calc(100% - 12px), transparent 100%);
}

/* Links kompakter & ruhiger */
aside.toc #tocList a{
  display: flex; gap: 10px; align-items: center;
  padding: var(--toc-link-pad) 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  font-size: var(--toc-font);
  color: var(--muted);
  text-decoration: none;
  transition: background .16s ease, color .16s ease, border-color .16s ease, transform .08s ease;
}
aside.toc #tocList a:hover{
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
  color: var(--text);
  border-color: rgba(255,255,255,.12);
}
aside.toc #tocList a:active{ transform: translateY(1px) }

/* Nummer-Badge kleiner, damit die Box nicht so „hoch“ wirkt */
aside.toc #tocList a .num{
  display: inline-grid; place-items: center;
  width: 22px; height: 22px; border-radius: 8px;
  font-weight: 900; font-size: .78rem; color: #111;
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  box-shadow: 0 6px 16px rgba(202,166,90,.35);
}

/* Aktiver Link: edler Gold-Akzent, ohne aufzutragen */
aside.toc #tocList a.active{
  color: var(--gold);
  border-color: rgba(202,166,90,.35);
  background: linear-gradient(180deg, rgba(202,166,90,.12), rgba(202,166,90,.06));
}

/* Schlanke Scrollbar nur in der TOC */
aside.toc #tocList::-webkit-scrollbar{ width: 10px }
aside.toc #tocList::-webkit-scrollbar-track{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  border-radius: 999px;
}
aside.toc #tocList::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.16);
  border: 2px solid transparent;
  background-clip: padding-box;
  border-radius: 999px;
}

/* Auf Mobile: einfach etwas Luft, Max-Höhe lockerer */
@media (max-width: 960px){
  :root{ --toc-maxh: none }
  aside.toc{ position: relative; top: 0; max-height: none }
}.reveal{ opacity: 1 !important; transform: none !important; }
/* ===== Header Pro: eleganter, professioneller, moderner ===== */
.site-header{
  position: sticky; top: 0; z-index: 100;
  backdrop-filter: saturate(130%) blur(10px);
  background: linear-gradient(to bottom, rgba(11,11,15,.92), rgba(11,11,15,.72));
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .25s ease, border-color .25s ease, transform .2s ease;
}
.site-header.scrolled{
  background: linear-gradient(to bottom, rgba(11,11,15,.94), rgba(11,11,15,.84));
  border-color: rgba(255,255,255,.08);
}

/* Header-Layout kompakter, präziser */
.header-grid{
  display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 18px; padding: 12px 0;
}

/* Brand feinpoliert */
.brand{ display:flex; gap:12px; align-items:center; text-decoration:none; color:var(--text) }
.brand img{ height:42px; width:auto; border-radius:10px; filter: drop-shadow(0 10px 24px rgba(0,0,0,.5)) }
.brand-text{ line-height:1.15 }
.brand-text strong{ font-weight:900; letter-spacing:.01em }
.brand-text small{ color:var(--muted); font-weight:700 }

/* ===== Pro Nav (Desktop) ===== */
.nav{ display:flex; gap: 8px; align-items:center }
.nav a{
  position: relative;
  display:inline-flex; align-items:center; gap:8px;
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 800; letter-spacing:.01em;
  color: var(--muted); text-decoration: none;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.06);
  transition: transform .12s ease, color .18s ease, background .18s ease, border-color .18s ease;
}
.nav a:hover{
  color: var(--text);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border-color: rgba(255,255,255,.12);
  transform: translateY(-1px);
}
/* aktiver Link: goldene Linie + kleiner Punkt */
.nav a.active{
  color: var(--gold);
  border-color: rgba(202,166,90,.35);
  background: linear-gradient(180deg, rgba(202,166,90,.10), rgba(202,166,90,.06));
}
.nav a.active::after{
  content:"";
  position:absolute; left:10px; right:10px; bottom:6px; height:3px;
  border-radius:3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-2));
  box-shadow: 0 6px 14px rgba(202,166,90,.35);
}
.nav a.active::before{
  content:""; position:absolute; left:10px; bottom:12px; width:6px; height:6px;
  border-radius:50%; background: var(--gold);
  filter: drop-shadow(0 2px 6px rgba(202,166,90,.6));
}

/* CTA rechts: kompakt & präsent */
.nav .btn-primary{
  padding: 10px 14px;
  box-shadow: 0 14px 28px rgba(202,166,90,.28);
}
.nav .btn-primary:hover{ transform: translateY(-1px) }

/* ===== Mobile Sheet ===== */
.nav-kebab{ display:none; background:transparent; border:0; padding:10px; border-radius:12px; color:var(--text); cursor:pointer }
.nav-kebab:hover{ background:rgba(255,255,255,.06) }
.nav-kebab .dot{
  width:4px; height:4px; border-radius:50%; background:currentColor; display:inline-block;
  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}

/* Off-canvas Menü (du hast die Basis schon – hier poliert) */
@media (max-width: 960px){
  .nav-kebab{ display:inline-flex; justify-self:end }
  .nav{
    position: fixed; top: var(--header-h); right: 0; bottom: 0;
    width: min(86vw, 380px);
    display:flex; flex-direction:column; gap:10px;
    padding: 14px;
    background: linear-gradient(180deg, var(--panel), var(--panel-2));
    border-left: 1px solid rgba(255,255,255,.12);
    box-shadow: -28px 0 70px rgba(0,0,0,.45);
    transform: translateX(104%);
    transition: transform .28s cubic-bezier(.22,.61,.36,1);
    pointer-events: none; z-index: 1001;
  }
  .nav.open{ transform: translateX(0); pointer-events: auto }
  .nav a{ padding: 12px 14px; border-radius: 12px; color: #f8fafe; border-color: rgba(255,255,255,.10) }
  .nav a.active{ color: var(--gold) }
}

/* Header-Height Variable aktualisieren (für sticky/offset) */
:root{ --header-h: 56px }
/* ==== Fix: Blaue Standard-Buttons (Safari/Edge/iOS) + Theme-Angleichung ==== */
button,
.btn,
.nav a.btn,
input[type="button"],
input[type="submit"]{
  -webkit-appearance: none;
  appearance: none;
  background: transparent;        /* Basis: kein blau mehr */
  color: var(--text);
  border: 0;
}

/* Header-Navigation nach rechts schieben (Desktop) */
.header-grid .nav{
  margin-left: auto;              /* schiebt die gesamte Nav nach rechts */
  justify-self: end;              /* fallback für Grid */
}

/* Premium-CTA im Header (Goldverlauf) */
.nav .btn.btn-primary{
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  color: #111;
  border: 0;
  box-shadow: 0 14px 28px rgba(202,166,90,.28);
}
.nav .btn.btn-primary:hover{ transform: translateY(-1px) }

/* Optional: Outline-Variante im Header */
.nav .btn.btn-outline{
  background: transparent;
  border: 1px solid rgba(255,255,255,.18);
  color: var(--text);
}
.nav .btn.btn-outline:hover{ background: rgba(255,255,255,.08) }

/* Sicherstellen, dass reine Nav-Links nicht „blau“ wirken */
.nav a{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.06);
  color: var(--muted);
}
.nav a:hover{
  color: var(--text);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border-color: rgba(255,255,255,.12);
}
.nav a.active{
  color: var(--gold);
  border-color: rgba(202,166,90,.35);
  background: linear-gradient(180deg, rgba(202,166,90,.10), rgba(202,166,90,.06));
}

/* Mobile bleibt wie gehabt (Sheet von rechts) */
@media (max-width: 960px){
  .header-grid .nav{ margin-left: 0; justify-self: auto } /* Sheet-Layout übernimmt */
  .nav a{ color: #f8fafe; border-color: rgba(255,255,255,.10) }
  .nav a.active{ color: var(--gold) }
}
/* ========== NAV: nur CTA als Button, Links ohne Kasten ========== */

/* UA-Defaults killen (gegen blau/grau bei <button>, iOS, Edge) */
button,
input[type="button"],
input[type="submit"],
input[type="reset"]{
  -webkit-appearance: none;
  appearance: none;
  background: none !important;
  border: 0;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
}

/* Nav rechts halten */
.header-grid .nav{
  margin-left: auto;
  justify-self: end;
}

/* Nur „echte“ Nav-Links (kein Button): OHNE Kasten */
.nav a:not(.btn){
  background: none !important;
  border: 0 !important;
  padding: 10px 6px;                 /* schlanker, text-linkig */
  border-radius: 0;                   /* keine Pills */
  color: var(--muted);
  text-decoration: none;
  position: relative;
  transition: color .18s ease, opacity .18s ease;
}

/* Hover: feines Underline mit Offset (elegant, nicht laut) */
.nav a:not(.btn):hover{
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Active/Scrollspy: nur goldene Unterlinie */
.nav a:not(.btn).active{
  color: var(--gold);
}
.nav a:not(.btn).active::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--gold), var(--gold-2));
  box-shadow: 0 4px 12px rgba(202,166,90,.35);
}

/* CTA-Button in der Nav: Premium-Gold */
.nav .btn.btn-primary{
  background: linear-gradient(135deg, var(--gold), var(--gold-2)) !important;
  color: #111 !important;
  border: 0 !important;
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 14px 28px rgba(202,166,90,.28);
  transition: transform .12s ease, box-shadow .22s ease, opacity .18s ease;
}
.nav .btn.btn-primary:hover{ transform: translateY(-1px) }
.nav .btn.btn-primary:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 4px var(--ring), 0 14px 28px rgba(202,166,90,.32);
}

/* Falls du im Header noch .btn-outline/.btn-ghost nutzt: Website-Farben */
.nav .btn.btn-outline{
  background: transparent !important;
  color: var(--text) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}
.nav .btn.btn-outline:hover{ background: rgba(255,255,255,.08) !important }

.nav .btn.btn-ghost{
  background: transparent !important;
  color: var(--gold) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}
.nav .btn.btn-ghost:hover{ background: rgba(202,166,90,.08) !important }

/* Mobile-Sheet: Links weiterhin ohne Kasten, gut sichtbar */
@media (max-width: 960px){
  .nav a:not(.btn){
    padding: 12px 2px;
    color: #f8fafe;
    text-decoration: none;
  }
  .nav a:not(.btn):hover{ color: #fff; text-decoration: underline; text-underline-offset: 4px }
  .nav a:not(.btn).active{ color: var(--gold) }
}

/* Optional: globale Buttons außerhalb der Nav im Seiten-Theme halten */
.btn{
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  cursor: pointer;
}
/* ===== Fix: Blauer Kasten hinter der ganzen Navigation (nur Desktop) ===== */
@media (min-width: 961px){
  .site-header .nav{
    background: transparent !important;   /* kein Panel hinter den Links */
    box-shadow: none !important;
    border: 0 !important;
    transform: none !important;           /* falls ein Sheet-Transform greift */
    pointer-events: auto;                 /* Sicherheit */
  }
}

/* Safari/Edge: nie als "ButtonFace" rendern */
.site-header .nav a{
  -webkit-appearance: none;
  appearance: none;
}

/* ===== Pills beibehalten – elegant & im Theme ===== */
.site-header .nav a{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.10);
  color: var(--muted);
  text-decoration: none;
  transition: transform .12s ease, color .18s ease, background .18s ease, border-color .18s ease;
}
.site-header .nav a:hover{
  color: var(--text);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border-color: rgba(255,255,255,.14);
  transform: translateY(-1px);
}
.site-header .nav a.active{
  color: var(--gold);
  border-color: rgba(202,166,90,.35);
  background: linear-gradient(180deg, rgba(202,166,90,.10), rgba(202,166,90,.06));
}

/* CTA bleibt Premium-Gold */
.site-header .nav .btn.btn-primary{
  background: linear-gradient(135deg, var(--gold), var(--gold-2)) !important;
  color: #111 !important;
  border: 0 !important;
  box-shadow: 0 14px 28px rgba(202,166,90,.28);
}

/* ===== Stelle sicher: Mobile-Sheet darf weiter eigenes Panel haben ===== */
@media (max-width: 960px){
  .site-header .nav{
    /* deine bestehenden Mobile-Sheet-Styles dürfen bleiben */
  }
}
/* === Kompakteres Vertical Spacing (global) === */

/* 1) Sektionen enger */
.section-pad{
  /* vorher: clamp(48px, 10vw, 92px) */
  padding: clamp(28px, 6vw, 56px) 0;
}

/* 2) Headings & Unterzeilen etwas dichter */
.section-title{           /* H2s in Sektionen */
  margin-bottom: .25rem;  /* vorher .4rem */
}
.section-sub{             /* kleine Einleitung unter H2 */
  margin-bottom: .8rem;   /* vorher 1.25rem */
}

/* 3) Standard-Grid etwas enger */
.grid{ gap: 14px }        /* vorher 18px */
@media (max-width: 640px){
  .grid{ gap: 12px }
}

/* 4) Karten-Layouts feinjustieren */
.grid.cards-3{ gap: 14px }              /* vorher größer */
#leistungen .grid.cards-3{ gap: 16px }  /* behält leichte Luft für Lesbarkeit */

/* 5) Hero-Bereich etwas knapper */
.hero{ min-height: auto; padding: clamp(24px, 6vw, 48px) 0 }
.hero-grid{ gap: 24px }                 /* vorher 36px */
.wow-hero{ padding: clamp(28px, 6vw, 56px) 0 } /* falls du die WOW-Variante nutzt */

/* 6) Galerie-Kacheln dichter */
.gallery{ gap: 12px }                   /* vorher 18px */
@media (max-width: 640px){
  .gallery{ gap: 10px }
}

/* 7) About/Listen kompakter */
.about.grid{ gap: 14px }
.bullets li{ margin: 4px 0 }

/* 8) Kontaktformular enger */
.form .field{ gap: 4px }
.form-actions{ margin-top: .4rem; gap: 10px }

/* 9) Footer oben weniger Abstand */
.site-footer{ margin-top: 20px }        /* vorher 40px */
.footer-grid{ gap: 18px; padding: 18px 0 8px }

/* 10) Anchor-Offset (Sprungmarken) minimal kleiner, damit es visuell dichter wirkt */
section{ scroll-margin-top: 70px }      /* vorher 90px */
@media (max-width: 960px){
  .nav{
    position: fixed;
    top: var(--header-h); right: 0; bottom: 0;
    width: min(86vw, 380px);

    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;

    background: linear-gradient(180deg, var(--panel), var(--panel-2));
    border-left: 1px solid rgba(255,255,255,.12);
    box-shadow: -28px 0 70px rgba(0,0,0,.45);

    transform: translateX(104%);
    transition: transform .28s cubic-bezier(.22,.61,.36,1);
    pointer-events: none;
    z-index: 1001; /* über Overlay */
  }
  .nav.open{
    transform: translateX(0);
    pointer-events: auto;
  }

  .nav-kebab{ display:inline-flex; justify-self:end; }
}

	
	
/* Mobile: Kebab-Menü nur etwas höher machen */
@media (max-width: 960px){
  .nav{
    /* unterhalb des Headers starten */
    top: var(--header-h);
    /* auto-Höhe, aber leicht erhöhtes Limit */
    height: 230px;
    max-height: calc(100dvh - var(--header-h) - 6px); /* vorher ggf. kleiner – jetzt etwas höher */
    overflow-y: auto;           /* falls es länger wird, innen scrollen */
    -webkit-overflow-scrolling: touch;
    padding-bottom: 18px;       /* ein Hauch mehr Innenabstand unten */
  }
	.nav-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  backdrop-filter: saturate(120%) blur(1.5px);
  z-index: 999; /* über Inhalt, unter dem Off-Canvas Menü */
}

}
/* ===== Footer – Mobile Polish ===== */

/* Grundlayout verfeinern */
.site-footer{
  padding: 22px 0 18px;
  border-top: 1px solid var(--border, rgba(255,255,255,.08));
  background:
    radial-gradient(700px 300px at 10% -20%, rgba(202,166,90,.08), transparent 60%) no-repeat,
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
}

/* Grid: auf Mobile einspaltig, sauber gestapelt */
.footer-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: start;
}

/* Brand-Zeile: Logo links, Text rechts – auf Mobile mittig gestapelt */
.brand-foot{
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: center;
}
.brand-foot img{
  width: 48px; height: 48px; object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,.35);
}
.brand-foot strong{
  display:block; font-weight:800; letter-spacing:.01em;
}
.brand-foot small{
  opacity:.9; font-weight:600;
}

/* Kontaktblock: bessere Lesbarkeit & Tap-Ziele */
.foot-contact h4{
  margin: 0 0 6px;
  font-size: 0.95rem; letter-spacing: .02em;
}
.foot-contact p{
  margin: 0;
  display: grid; gap: 6px;
}
.foot-contact a{
  text-decoration: none;
  font-weight: 700;
  padding: 6px 0;                 /* größere Tap-Ziele */
  display: inline-block;
}
.foot-contact a:hover{ text-decoration: underline; text-underline-offset: 3px; }

/* Links: sauber in zwei Spalten, automatisch auf eine Spalte wenn wenig Platz */
.foot-links{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px 14px;
}
.foot-links a{
  display: inline-block;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(255,255,255,.12);
  text-decoration: none;
  font-weight: 700;
}
.foot-links a:hover{
  color: var(--gold);
  border-bottom-color: rgba(202,166,90,.45);
}

/* Copy-Zeile: mittig, mit dezenter Trennung */
.foot-copy{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.08);
  text-align: center;
  font-size: .92rem;
  color: var(--muted);
}
.foot-copy a{ font-weight: 700; text-decoration: none; }
.foot-copy a:hover{ color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.foot-copy .sep{ opacity:.5; margin: 0 8px; }

/* ===== Kleine Screens optimieren ===== */
@media (max-width: 640px){
  .site-footer{ padding: 20px 0 16px; }

  .brand-foot{
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
    gap: 10px;
  }
  .brand-foot img{ width: 56px; height: 56px; }

  .foot-contact{
    text-align: center;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: var(--radius, 16px);
    padding: 12px;
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    box-shadow: 0 10px 24px rgba(0,0,0,.28);
  }

  .foot-links{
    grid-template-columns: 1fr;
    text-align: center;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: var(--radius, 16px);
    padding: 10px 12px;
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    box-shadow: 0 10px 24px rgba(0,0,0,.28);
  }
  .foot-links a{
    border-bottom: none;
    padding: 10px 0;
  }
}

/* Fokus- und Accessibility-Details */
.foot-contact a:focus-visible,
.foot-links a:focus-visible,
.foot-copy a:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 3px var(--ring, rgba(34,211,238,.45));
  border-radius: 8px;
}
/* ===== Footer – Compact Mobile Variant ===== */

/* Weniger Außenabstand, keine großen Kartenflächen */
.site-footer{
  padding: 12px 0 10px;                  /* vorher größer */
  background: none;                       /* keine Radial-/Gradient-Fläche */
  border-top: 1px solid rgba(255,255,255,.10);
}

/* Kompaktes Grid: 2 Spalten schon auf Mobile */
.footer-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;                         /* kleineres Gap */
  align-items: start;
}

/* Brand klein & knapp */
.brand-foot{
  grid-column: 1 / -1;                    /* über beide Spalten */
  display: grid;
  grid-template-columns: 40px 1fr;        /* kleineres Logo */
  gap: 10px;
  align-items: center;
}
.brand-foot img{ width:40px; height:40px; border-radius:10px; box-shadow:none; }
.brand-foot strong{ font-weight:800; line-height:1.15; }
.brand-foot small{ opacity:.9; font-weight:600; }

/* Kontakt und Links nebeneinander */
.foot-contact{ font-size:.95rem; }
.foot-contact h4{ margin:0 0 6px; font-size:.9rem; }
.foot-contact p{ margin:0; display:grid; gap:4px; line-height:1.25; }
.foot-contact a{ font-weight:700; text-decoration:none; }

.foot-links{
  justify-self: end;                      /* rechtsbündig in Spalte 2 */
  display: grid;
  grid-template-columns: auto auto;       /* zwei kurze Links nebeneinander */
  gap: 6px 12px;
  align-content:start;
}
.foot-links a{
  font-weight:700;
  text-decoration:none;
  padding:0;                              /* keine Extra-Höhe */
}

/* Copy-Zeile sehr schlank */
.foot-copy{
  grid-column: 1 / -1;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.10);
  text-align:center;
  font-size:.9rem;
  line-height:1.25;
  color:var(--muted);
}
.foot-copy .sep{ margin:0 6px; opacity:.6; }

/* Mini-Bildschirme noch knapper */
@media (max-width: 400px){
  .footer-grid{
    grid-template-columns: 1fr 1fr;
    gap: 8px 10px;
  }
  .brand-foot{
    grid-template-columns: 36px 1fr;
    gap: 8px;
  }
  .brand-foot img{ width:36px; height:36px; }
  .foot-links{ gap: 4px 10px; }
  .foot-copy{ font-size:.85rem; }
}
/* ===== Footer – Schlicht & Untereinander (Mobile-first) ===== */
.site-footer{
  padding: 14px 0;                        /* kompakt */
  background: none;                       /* keine großen Flächen */
  border-top: 1px solid rgba(255,255,255,.10);
}

/* Alles untereinander anordnen */
.footer-grid{
  display: block;
}

/* Brand oben, klein & sauber */
.brand-foot{
  display: grid;
  grid-template-columns: 44px 1fr;        /* Logo links, Text rechts */
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}
.brand-foot img{
  width:44px; height:44px; border-radius:10px; object-fit:cover;
}
.brand-foot strong{ font-weight:800; line-height:1.15; }
.brand-foot small{ opacity:.9; font-weight:600; }

/* Saubere Trennlinie zwischen Blöcken */
.foot-contact,
.foot-links{
  padding: 10px 0 0;
  margin: 10px 0 0;
  border-top: 1px solid rgba(255,255,255,.08);
}

/* Kontaktbereich schlicht */
.foot-contact h4{
  margin: 0 0 6px; 
  font-size: .95rem; 
  font-weight: 800;
}
.foot-contact p{
  margin: 0;
  display: grid;
  gap: 4px;
  line-height: 1.28;
  font-size: .95rem;
}

/* Links blockweise untereinander */
.foot-links{
  display: grid;
  gap: 6px;
}
.foot-links a{
  display: block;
  text-decoration: none;
  font-weight: 700;
  line-height: 1.28;
}

/* Sehr schlanke Copy-Zeile */
.foot-copy{
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.10);
  text-align: center;
  font-size: .9rem;
  line-height: 1.25;
  color: var(--muted);
}
.foot-copy .sep{ margin: 0 6px; opacity: .6; }

/* Ultra-klein noch enger */
@media (max-width: 380px){
  .brand-foot{ grid-template-columns: 38px 1fr; gap: 8px; }
  .brand-foot img{ width:38px; height:38px; }
  .foot-contact p{ gap: 3px; }
  .foot-copy{ font-size: .85rem; }
}
/* Footer: Kontaktbereich nur mobil ausblenden */
@media (max-width: 960px){
  .site-footer .foot-contact{ 
    display: none !important;
  }

  /* Abstände sauber halten */
  .site-footer .foot-links{
    margin-top: 10px;            /* bleibt als Trenner unter der Marke */
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 10px;
  }
}
/* ===== Footer: Rechtliches (Datenschutz / Impressum) ===== */

/* Mobile: untereinander, mittig, klare Tap-Ziele */
@media (max-width: 960px){
  .site-footer .foot-links{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,.08);
  }
  .site-footer .foot-links a{
    display: block;
    padding: 10px 0;               /* komfortable Touch-Fläche */
    font-weight: 700;
    text-decoration: none;
  }
  .site-footer .foot-links a:hover{
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

/* Desktop/Tablet: nebeneinander, dezenter Punkttrenner */
@media (min-width: 961px){
  .site-footer .foot-links{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0;                         /* wir nutzen den Trenner statt gap */
  }
  .site-footer .foot-links a{
    padding: 4px 0;
    font-weight: 600;
    text-decoration: none;
  }
  .site-footer .foot-links a + a{
    margin-left: 14px;
    position: relative;
  }
  .site-footer .foot-links a + a::before{
    content: "·";
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-48%);
    opacity: .55;
  }
}

/* Optional: Footer-Abstände leicht straffen auf Mobil,
   damit alles direkt sichtbar bleibt */
@media (max-width: 960px){
  .site-footer .container.footer-grid{
    row-gap: 8px;
  }
  .site-footer .foot-copy{
    padding-top: 8px;
  }
}/* ===== Footer: Rechtliche Links schlicht linksbündig ===== */
.site-footer .foot-links{
  display: flex;
  flex-direction: column;     /* untereinander */
  align-items: flex-start;    /* linksbündig */
  gap: 6px;
  padding: 0;
  margin: 0;
  border: none !important;    /* keinen Kasten/Rahmen */
  background: none !important;
  box-shadow: none !important;
  text-align: left;
}

.site-footer .foot-links a{
  display: block;
  padding: 6px 0;             /* angenehme Tap-Fläche, aber schlank */
  text-decoration: none;
  font-weight: 600;
}

.site-footer .foot-links a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Optional: etwas engeren Abstand im Footer insgesamt auf Mobil */
@media (max-width: 960px){
  .site-footer .container.footer-grid{ row-gap: 6px; }
  .site-footer .foot-copy{ padding-top: 6px; }
}
/* Footer – Rechtliche Links strikt linksbündig */
.site-footer .footer-grid{
  justify-items: start;   /* Grid-Items nach links ausrichten */
}

.site-footer .foot-links{
  align-self: start;      /* Block selbst links im Grid */
  margin-left: 0 !important;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.site-footer .foot-links a{
  padding: 6px 0;
  text-decoration: none;
  font-weight: 600;
}

.site-footer .foot-links a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Mobile: einspaltig + links */
@media (max-width: 960px){
  .site-footer .footer-grid{
    grid-template-columns: 1fr;  /* alles untereinander */
    justify-items: start;         /* links */
  }
  .site-footer .foot-links{
    width: 100%;
  }
}

/* Referenzen: mobil Fotos vollflächig, Logos/Pläne optional schützen */
@media (max-width: 960px){
  /* Alles mit tile--contain wird mobil zu cover ... */
  #referenzen .tile--contain{ --tile-fit: cover; }
  /* ... außer du markierst es explizit als "keep-contain" */
  #referenzen .tile--contain.keep-contain{ --tile-fit: contain; }
}
/* REFERENZEN: mobil Bilder vollständig zeigen (ohne Cropping, ohne Lücken) */
@media (max-width: 960px){
  /* Kachel darf ihre Höhe frei nach Bild wählen */
  #referenzen .tile{
    aspect-ratio: auto !important;  /* fixen Ratio-Zwang aufheben */
    height: auto !important;
  }

  /* Bild nicht absolut positionieren, sondern normal im Flow lassen */
  #referenzen .tile > img{
    position: relative !important;
    inset: auto !important;
    display: block;
    width: 100%;
    height: auto;                    /* volle Breite, Höhe folgt Verhältnis */
    object-fit: contain !important;  /* Bild vollständig sichtbar */
    object-position: center center;
  }

  /* Overlays bleiben absolut, dürfen aber nicht die Höhe beeinflussen */
  #referenzen .tile .tile-grad,
  #referenzen .tile::after{
    pointer-events: none;
  }
}

	/* ===== Footer Layout: Brand links | Rechts die 2 Links ===== */
.site-footer .container.footer-grid{
  display: grid !important;
  grid-template-columns: 1fr auto !important;  /* links Brand, rechts Links */
  align-items: start;
  gap: 16px 32px;
}

/* Brandblock bleibt links, begrenzt sich sauber */
.site-footer .brand-foot{ max-width: 780px }

/* Rechts: Links untereinander, linksbündig – ohne Punkttrenner */
.site-footer .foot-links{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}
.site-footer .foot-links a{
  padding: 4px 0;
  font-weight: 700;
  text-decoration: none;
}
.site-footer .foot-links a:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* evtl. alte Trenner-Punkte sicher entfernen */
.site-footer .foot-links a + a::before{ content: none !important; }

/* Mobile: alles untereinander */
@media (max-width: 960px){
  .site-footer .container.footer-grid{ grid-template-columns: 1fr !important; }
  .site-footer .foot-links{ margin-top: 8px !important; }
}
/* ===== Footer: Links links unter dem Brand-Block ===== */
.site-footer .container.footer-grid{
  display:grid !important;
  grid-template-columns: auto 1fr;         /* Brand links, freie Fläche rechts */
  grid-template-areas:
    "brand ."
    "links .";
  align-items:start;
  gap: 8px 32px;
}

.site-footer .brand-foot{
  grid-area: brand;
  justify-self:start !important;
}

.site-footer .foot-links{
  grid-area: links;
  justify-self:start !important;    /* NICHT mehr rechts ausrichten */
  align-items:flex-start !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.site-footer .foot-links a{
  padding:4px 0;
  font-weight:700;
  text-decoration:none;
}
.site-footer .foot-links a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
/* evtl. alte Punkt-Trenner sicher aus */
.site-footer .foot-links a + a::before{ content:none !important; }

/* Mobile: bleibt einfach untereinander (einspaltig) */
@media (max-width: 960px){
  .site-footer .container.footer-grid{
    grid-template-columns: 1fr;
    grid-template-areas:
      "brand"
      "links";
  }
}
/* === Footer exakt wie im Screenshot: Links rechts, vertikal, rechtsbündig === */
.site-footer .container.footer-grid{
  display: grid !important;
  grid-template-columns: 1fr auto !important; /* links frei, rechts die Link-Spalte */
  align-items: center;
  gap: 8px 24px;
  justify-items: stretch; /* lässt die linke Spalte voll laufen */
}

.site-footer .foot-links{
  justify-self: end !important;      /* ganze Link-Gruppe nach rechts */
  display: flex !important;
  flex-direction: column !important; /* untereinander */
  align-items: flex-end !important;  /* rechtsbündig */
  text-align: right !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Keine Punkt-Trenner zwischen Links */
.site-footer .foot-links a + a::before{ content: none !important; }

/* Copyright-Zeile bleibt zentriert */
.site-footer .foot-copy{
  text-align: center !important;
}
/* Footer: Datenschutzhinweise & Impressum einfach untereinander */
.site-footer .foot-links{
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  align-items: flex-end;   /* rechtsbündig wie im Screenshot */
  text-align: right;
}
/* Keine weiteren Regeln nötig – Link-Farben bleiben wie definiert */
/* ===== FORCE: Footer-Links strikt untereinander (rechtsbündig) ===== */
.site-footer .foot-links{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important; /* rechts wie im Screenshot */
  justify-content: flex-start !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: right !important;
}
.site-footer .foot-links a{
  display: block !important;       /* Block-Link je Zeile */
  padding: 4px 0 !important;
}
.site-footer .foot-links a + a::before{
  content: none !important;        /* evtl. Punkttrenner sicher aus */
}
/* ===== FINAL FORCE (Desktop): Datenschutz & Impressum untereinander ===== */
@media (min-width: 961px){
  .site-footer .foot-links{
    display: flex !important;
    flex-direction: column !important;   /* untereinander */
    align-items: flex-end !important;    /* rechtsbündig wie bei dir */
    justify-content: flex-start !important;
    text-align: right !important;

    /* evtl. alte Grid-Styles sicher neutralisieren */
    grid-template-columns: none !important;
    grid-auto-flow: row !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .site-footer .foot-links a{
    display: block !important;           /* jede Zeile ein Link */
    padding: 4px 0 !important;
  }
  .site-footer .foot-links a + a::before{
    content: none !important;            /* Punkttrenner o.ä. aus */
  }
}
/* ===== FOOTER: FINAL OVERRIDE (links untereinander) ===== */
footer.footer .foot-links{
  display: flex !important;
  flex-direction: column !important;   /* untereinander */
  gap: 6px !important;
  align-items: flex-end !important;    /* Desktop rechtsbündig */
  text-align: right !important;
  margin: 0 !important;
  padding: 0 !important;
}
footer.footer .foot-links a{
  display: block !important;
  padding: 4px 0 !important;
  text-decoration: none;
}
footer.footer .foot-links a + a::before{
  content: none !important;            /* evtl. Punkttrenner sicher aus */
}
/* Mobil: linksbündig, weiterhin untereinander */
@media (max-width: 960px){
  footer.footer .foot-links{
    align-items: flex-start !important;
    text-align: left !important;
  }
}
/* ===== FOOTER · FINAL OVERRIDE ===== */

/* Gesamter Footer kompakter */
footer.footer{
  padding: 14px 0 !important;         /* weniger Höhe */
  margin: 0 !important;
  border-top: 1px solid rgba(0,0,0,.08);
}

/* Layout: Mitte (Copy) + rechts (Links). Mobil alles untereinander */
footer.footer .foot-inner{
  display: grid !important;
  grid-template-columns: 1fr auto !important; /* Mitte füllt, rechts so breit wie nötig */
  align-items: center !important;
  gap: 16px !important;
}

/* Falls du keine .foot-inner hast, greife direkt auf .footer > * zu */
footer.footer > .foot-copy,
footer.footer > .foot-links{
  margin: 0 !important;
}

/* Copy zentriert in der Mitte */
footer.footer .foot-copy{
  text-align: center !important;
  line-height: 1.35 !important;
  font-size: clamp(12px, 1.4vw, 14px) !important;
  opacity: .95;
}

/* Link-Spalte: untereinander, kompakt, rechtsbündig (Desktop) */
footer.footer .foot-links{
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  align-items: flex-end !important;
  text-align: right !important;
}

footer.footer .foot-links a{
  display: block !important;
  padding: 3px 0 !important;          /* kompakter */
  text-decoration: none;
}

footer.footer .foot-links a + a::before{
  content: none !important;           /* Trenner sicher aus */
}

/* Neaforge-Farbe zurückgeben (passe Var/Fallback an deine Brand an) */
:root{
  --brand-neaforge: #6C5CE7;          /* Violett als Default; bei dir ggf. andere Farbe */
}
footer.footer .foot-copy a.neaforge{
  color: var(--brand-neaforge) !important;
  font-weight: 600;
  text-decoration: none;
}
footer.footer .foot-copy a.neaforge:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Mobil: alles untereinander, linksbündig, sehr kompakt */
@media (max-width: 960px){
  footer.footer .foot-inner{
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  footer.footer{
    padding: 12px 0 !important;
  }
  footer.footer .foot-links{
    align-items: flex-start !important;
    text-align: left !important;
  }
  footer.footer .foot-copy{
    order: -1;                         /* Copy über die Links, wenn gewünscht */
  }
}
/* ===== FOOTER · DRUCK101-ARTIGE STRUKTUR (neutral) ===== */
footer.footer{
  padding: 14px 0;               /* kompakte Höhe */
  border-top: 1px solid rgba(0,0,0,.08);
}

.footer__container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* L | M | R */
  align-items: center;
  gap: 16px;
}

/* L: optional leer/Info – bleibt unauffällig */
.footer__left{
  min-height: 1px;               /* stabilisiert Grid-Höhe */
}

/* M: Copy zentriert */
.footer__center{
  text-align: center;
  line-height: 1.35;
  font-size: clamp(12px, 1.4vw, 14px);
}

/* R: Links untereinander, rechtsbündig (Desktop) */
.footer__right{
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-end;
  text-align: right;
}
.footer__right a{
  text-decoration: none;
  padding: 3px 0;
}
.footer__right a:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Nur Neaforge erhält eine Markenfarbe */
:root{
  --brand-neaforge: #6C5CE7;     /* ggf. auf deine Originalfarbe ändern */
}
footer.footer a.neaforge{
  color: var(--brand-neaforge);
  font-weight: 600;
  text-decoration: none;
}
footer.footer a.neaforge:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Mobil: alles untereinander, Copy oben, dann Links */
@media (max-width: 960px){
  .footer__container{
    grid-template-columns: 1fr;  /* 1 Spalte */
    gap: 8px;
  }
  .footer__left{ display:none; }
  .footer__center{
    order: -1;                   /* Copy zuerst */
    text-align: left;
  }
  .footer__right{
    align-items: flex-start;
    text-align: left;
  }
  footer.footer{
    padding: 12px 0;
  }
}
/* ===== FOOTER · Layout-Update: Copy zentriert, Rechts daneben die Links ===== */
footer.footer{
  padding: 14px 0;
  border-top: 1px solid rgba(0,0,0,.08);
}

.footer__container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;

  /* 1fr | Copy | Rechts-Links | 1fr  -> Copy bleibt wirklich zentriert */
  display: grid;
  grid-template-columns: 1fr auto auto 1fr;
  align-items: center;   /* vertikal mittig */
  column-gap: 18px;
}

/* Linke Spalte (Platzhalter) – optional leer */
.footer__left{
  grid-column: 1;
  min-height: 1px;
}

/* Copy exakt mittig */
.footer__center{
  grid-column: 2;
  text-align: center;
  line-height: 1.35;
  font-size: clamp(12px, 1.4vw, 14px);
  justify-self: center;
}

/* Rechts: Datenschutzhinweise & Impressum rechts von Copy, mittig ausgerichtet */
.footer__right{
  grid-column: 3;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;    /* mittig zur Copy */
  text-align: left;       /* saubere Link-Zeilen */
}

.footer__right a{
  text-decoration: none;
  color: inherit;         /* entspricht deiner Website-Farbe/Mitte */
  padding: 3px 0;
}
.footer__right a:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Nur Neaforge mit Brand-Farbe */
:root{
  --brand-neaforge: #6C5CE7;   /* falls nötig anpassen */
}
footer.footer a.neaforge{
  color: var(--brand-neaforge);
  font-weight: 600;
  text-decoration: none;
}
footer.footer a.neaforge:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Mobil: sauber untereinander */
@media (max-width: 960px){
  .footer__container{
    grid-template-columns: 1fr;  /* 1 Spalte */
    row-gap: 8px;
  }
  .footer__left{ display:none; }
  .footer__center{
    order: -1;
    text-align: left;
    justify-self: start;
  }
  .footer__right{
    align-items: flex-start;
    text-align: left;
  }
  footer.footer{
    padding: 12px 0;
  }
}
/* ===== FOOTER · Brandfarbe für Neaforge + Rechtelinks ===== */

/* Nimm vorhandene Projekt-Variable falls vorhanden, sonst fallback (z.B. BERO-Gold) */
:root{
  --brand-accent: var(--brand, var(--accent, #d4af37)); /* <— bei Bedarf anpassen */
}

/* Rechtelinks (Datenschutzhinweise & Impressum) rechts neben dem Copy-Block */
.footer__right a{
  color: var(--brand-accent);
  font-weight: 600;
  text-decoration: none;
}
.footer__right a:hover,
.footer__right a:focus-visible{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Neaforge-Link im Copy-Block in gleicher Brandfarbe */
footer.footer a.neaforge{
  color: var(--brand-accent);
  font-weight: 600;
  text-decoration: none;
}
footer.footer a.neaforge:hover,
footer.footer a.neaforge:focus-visible{
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Feinjustierung: etwas kompakterer Footer (falls noch nicht gesetzt) */
footer.footer{
  padding: 12px 0; /* niedriger Block */
}
/* Abstand der Rechtelinks reduzieren */
.footer__right{
  display: inline-flex;          /* robust, falls noch nicht gesetzt */
  align-items: center;
  gap: 2px;                     /* vorher ggf. größer – jetzt kompakter */
}

/* Falls einzelne Links Margins haben, diese neutralisieren */
.footer__right a{
  margin: 0 !important;          /* verhindert extra-Abstände */
}

/* Optional: auf sehr kleinen Screens noch enger */
@media (max-width: 420px){
  .footer__right{ gap: 0px; }
}
/* — Fix: gelben Punkt in der Navi entfernen — */
.nav a[data-link]::before,
.nav a[data-link]::after {
  content: none !important;
}

.nav a[data-link] {
  list-style: none !important;      /* falls irgendwo list-style gesetzt wurde */
  background-image: none !important; /* falls ein bg-Kreis benutzt wurde */
  box-shadow: none;                  /* kein innerer Punkt via Shadow */
}

/* Speziell, falls nur "Leistungen" betroffen ist */
.nav a[href="#leistungen"]::before,
.nav a[href="#leistungen"]::after {
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Für Safari/Marker-Sonderfälle (falls Links doch in <li> stecken) */
.nav li { list-style: none !important; }
.nav li::marker { content: ""; }
