/* Öffentliche Website (Schritt 7) – eigenes, schlichtes Layout */
:root{ --grün:#2f6d3a; --grün-d:#22502b; --sand:#f6f4ee; --tinte:#26302a; }
body.pub{ margin:0; background:#fff; color:var(--tinte);
  font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; line-height:1.55; }
.pub .wrap{ max-width:1040px; margin:0 auto; padding:0 20px; }

/* Kopf */
.pubbar{ background:var(--grün-d); color:#fff; position:sticky; top:0; z-index:500; }
.pubbar .wrap{ max-width:1180px; }   /* Kopfzeile breiter als der Inhalt -> Nav einzeilig */
.pubbar-in{ display:flex; align-items:center; justify-content:space-between; height:60px; }
.publogo{ color:#fff; text-decoration:none; font-weight:800; letter-spacing:.5px; font-size:1.25rem; }
.publogo span{ font-weight:400; opacity:.8; }
.pubnav{ display:flex; gap:.1rem; align-items:center; flex-wrap:wrap; }
.pubnav a{ color:#e7efe7; text-decoration:none; padding:.4rem .5rem; border-radius:6px;
  font-size:.9rem; white-space:nowrap; }
.pubnav a:hover{ background:rgba(255,255,255,.12); }
.pubnav a.active{ background:rgba(255,255,255,.18); color:#fff; }
.pubnav a.pub-login{ border:1px solid rgba(255,255,255,.4); margin-left:.35rem; }

.pubmain{ padding:0 20px 3rem; }
.pubfoot{ background:var(--sand); color:#555; padding:1.4rem 0; margin-top:3rem; font-size:.9rem; border-top:1px solid #e6e2d8; }
.pubfoot a{ color:var(--grün-d); }

/* Hero */
.hero{ background:linear-gradient(135deg,var(--grün-d),var(--grün)); color:#fff;
  border-radius:0 0 18px 18px; padding:3.2rem 20px 3rem; margin-bottom:2rem; }
.hero .wrap{ padding:0; }
.hero h1{ margin:.2rem 0 .6rem; font-size:2.15rem; line-height:1.2; }
.hero p{ font-size:1.15rem; max-width:60ch; opacity:.95; margin:.2rem 0 1.3rem; }
.hero .cta{ display:inline-block; background:#fff; color:var(--grün-d); font-weight:700;
  text-decoration:none; padding:.7rem 1.2rem; border-radius:8px; }
.hero .cta.sec{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.6); margin-left:.5rem; }

/* Statistik */
.stats{ display:flex; gap:1rem; flex-wrap:wrap; margin:.6rem 0 0; }
.stat{ background:rgba(255,255,255,.12); border-radius:10px; padding:.7rem 1.1rem; }
.stat b{ display:block; font-size:1.6rem; }
.stat span{ opacity:.9; font-size:.9rem; }

/* Karten/Kacheln */
.tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.1rem; margin:1.4rem 0; }
.tile{ border:1px solid #e2e8e2; border-radius:12px; padding:1.2rem; text-decoration:none; color:inherit; background:#fff; }
.tile:hover{ border-color:var(--grün); box-shadow:0 4px 16px rgba(47,109,58,.08); }
.tile h3{ margin:.1rem 0 .4rem; color:var(--grün-d); }
.tile p{ margin:0; color:#555; font-size:.95rem; }

.pub h2{ color:var(--grün-d); border-bottom:2px solid #e6ede6; padding-bottom:.3rem; margin-top:2rem; }
.lead{ font-size:1.1rem; color:#444; max-width:66ch; }
.karte-box{ height:560px; border-radius:12px; overflow:hidden; border:1px solid #dde4dd; }
.schutz{ background:var(--sand); border-left:4px solid var(--grün); padding:.7rem 1rem; border-radius:6px; margin:1rem 0; color:#444; }
.kontakt{ background:var(--sand); border-radius:12px; padding:1.2rem 1.4rem; max-width:40ch; }
model-viewer{ width:100%; height:420px; background:#f0efe9; border-radius:12px; }
.model-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.2rem; }

/* --- Responsive Navigation (Hamburger) --- */
.navtoggle{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto;}
.navtoggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;border-radius:2px;transition:transform .2s,opacity .2s;}
.pubbar.nav-open .navtoggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.pubbar.nav-open .navtoggle span:nth-child(2){opacity:0;}
.pubbar.nav-open .navtoggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:1040px){
  .pubbar-in{flex-wrap:wrap;height:auto;min-height:60px;}
  .navtoggle{display:block;}
  .pubnav{display:none;flex:0 0 100%;flex-direction:column;align-items:stretch;gap:0;
    margin-top:.3rem;padding:.3rem 0 .6rem;border-top:1px solid rgba(255,255,255,.16);}
  .pubbar.nav-open .pubnav{display:flex;}
  .pubnav a{padding:.8rem .5rem;border-radius:6px;font-size:1rem;}
  .pubnav a.pub-login{margin:.6rem .5rem .2rem;text-align:center;border:1px solid rgba(255,255,255,.5);}
}

/* --- Mobile: Inhalte --- */
@media (max-width:640px){
  .pubmain{padding:0 14px 2.4rem;}
  .hero{padding:2.2rem 16px 2rem;}
  .hero h1{font-size:1.6rem;}
  .hero p{font-size:1.02rem;}
  .karte-box{height:62vh;min-height:340px;}
  .statgrid{grid-template-columns:1fr;}
  .brow{grid-template-columns:8.5rem 1fr 2.4rem;}
  model-viewer{height:320px;}
}

/* --- Realisierungs-Block (Bendit Consulting) --- */
.realisierung{ background:#22502b; color:#e8f0e8; }
.realisierung .real-in{ display:flex; justify-content:space-between; align-items:center;
  gap:16px 28px; flex-wrap:wrap; padding:18px 20px; }
.real-txt{ display:flex; flex-direction:column; gap:2px; }
.real-label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:#9dc2a4; }
.real-firma{ font-size:1.18rem; font-weight:700; color:#fff; text-decoration:none; line-height:1.15; }
.real-firma:hover{ text-decoration:underline; }
.real-claim{ font-size:.86rem; color:#b9d3bd; }
.real-links{ display:flex; gap:18px; flex-wrap:wrap; font-size:.9rem; }
.real-links a{ color:#e8f0e8; text-decoration:none; white-space:nowrap; }
.real-links a:hover{ color:#fff; text-decoration:underline; }
@media (max-width:560px){ .realisierung .real-in{ flex-direction:column; align-items:flex-start; } }

/* --- Nav-Dropdowns (Untermenüs) --- */
.navdrop{ position:relative; }
.navdrop-t{ background:none; border:0; cursor:pointer; color:#e7efe7; font:inherit;
  font-size:.9rem; padding:.4rem .5rem; border-radius:6px; white-space:nowrap; }
.navdrop-t:hover{ background:rgba(255,255,255,.12); }
.navdrop-t.active{ background:rgba(255,255,255,.18); color:#fff; }
.navdrop-pop{ display:none; position:absolute; top:100%; left:0; min-width:200px;
  background:#fff; border:1px solid #d8e0d8; border-radius:8px; padding:.35rem;
  box-shadow:0 8px 24px rgba(20,40,25,.18); z-index:600; }
.navdrop:hover .navdrop-pop, .navdrop.open .navdrop-pop{ display:block; }
.navdrop-pop a{ display:block; color:#26302a; padding:.5rem .7rem; border-radius:6px;
  font-size:.92rem; }
.navdrop-pop a:hover{ background:#eef4ee; }
.navdrop-pop a.active{ background:#e3eee4; color:#22502b; font-weight:600; }
@media (max-width:1040px){
  .navdrop{ width:100%; }
  .navdrop-t{ width:100%; text-align:left; padding:.8rem .5rem; font-size:1rem; }
  .navdrop-pop{ display:block; position:static; background:transparent; border:0;
    box-shadow:none; padding:0 0 .2rem .9rem; }
  .navdrop-pop a{ color:#e7efe7; padding:.6rem .5rem; }
  .navdrop-pop a:hover{ background:rgba(255,255,255,.12); }
  .navdrop-pop a.active{ background:rgba(255,255,255,.18); color:#fff; }
}

/* --- Hero-Statistik: klickbar mit Hover --- */
a.stat{ text-decoration:none; color:inherit; display:block;
  transition:background .15s, transform .15s, box-shadow .15s; }
a.stat:hover{ background:rgba(255,255,255,.24); transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(0,0,0,.18); }

/* --- Startseite: Aktuelles-Teaser --- */
.home-aktuell{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:1rem; margin:1rem 0 .6rem; }
.ha-card{ border:1px solid #e2e8e2; border-radius:12px; overflow:hidden; background:#fff;
  text-decoration:none; color:inherit; display:flex; flex-direction:column;
  transition:box-shadow .15s, border-color .15s; }
.ha-card:hover{ border-color:var(--grün); box-shadow:0 4px 16px rgba(47,109,58,.12); }
.ha-card img{ width:100%; height:120px; object-fit:cover; }
.ha-card .ha-body{ padding:.7rem .85rem .85rem; }
.ha-card h3{ margin:0 0 .25rem; font-size:.98rem; color:var(--grün-d); line-height:1.3; }
.ha-card .ha-datum{ font-size:.78rem; color:#7a8377; }
.mehr-link{ font-weight:600; color:var(--grün); text-decoration:none; }
.mehr-link:hover{ text-decoration:underline; }

/* --- Realisierungs-Block: linksbündig, Kontakt unter dem Claim --- */
.realisierung .real-in{ justify-content:flex-start; }
.real-links{ display:flex; gap:8px 22px; flex-wrap:wrap; font-size:.88rem; margin-top:8px; }
.real-links span{ color:#9dc2a4; }
.real-links a{ color:#e8f0e8; text-decoration:none; white-space:nowrap; }
.real-links a:hover{ color:#fff; text-decoration:underline; }

/* --- Abstand vor dem Realisierungs-Block (Inhalt darf nicht anstoßen) --- */
.realisierung{ margin-top:3rem; }
.pubfoot{ margin-top:0; }

/* --- Themen-Kacheln: Farbwelt + Icons --- */
.tile{ position:relative; padding-top:1.1rem; }
.tile .ticon{ font-size:1.6rem; line-height:1; display:block; margin-bottom:.5rem; }
.tile.t-aktuelles{ background:#fdf6e8; border-color:#ecd9ae; }
.tile.t-fundorte{ background:#e9f2ea; border-color:#bcd6c0; }
.tile.t-epochen{ background:#f3ede2; border-color:#ddcfb2; }
.tile.t-arten{ background:#ece9f4; border-color:#c9c2e0; }
.tile.t-3d{ background:#e8f0f5; border-color:#b9d2e0; }
.tile.t-galerie{ background:#fdeeee; border-color:#eccaca; }
.tile.t-verein{ background:#eaf3f0; border-color:#bedcd2; }
.tile.t-bibliothek{ background:#f0ede5; border-color:#d6cdb4; }
.tile:hover{ box-shadow:0 6px 18px rgba(47,109,58,.14); transform:translateY(-2px); }
.tile{ transition:box-shadow .15s, transform .15s, border-color .15s; }

/* --- Footer: Social-Media-Icons --- */
.foot-in{ display:flex; justify-content:space-between; align-items:center; gap:12px 24px; flex-wrap:wrap; }
.social{ display:flex; gap:12px; align-items:center; }
.social a{ color:#5a6b5a; display:inline-flex; padding:6px; border-radius:8px;
  transition:color .15s, background .15s, transform .15s; }
.social a:hover{ color:#22502b; background:#e8efe8; transform:translateY(-2px); }
