/* =============================================================================
   pds-header.css  —  Premium-Header (Glas-Navbar) der oeffentlichen Redesign-Seiten
   Laedt nur auf .pds-Seiten (inc/public-redesign.php). Tokens aus projecta-system.css.
   Eigene .pds-header-Struktur -> KEIN Konflikt mit dem alten .site-header (Portale).
   ============================================================================= */

body.pds .pds-header { position:fixed; top:0; left:0; right:0; z-index:300; }
body.pds .pds-nav {
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  box-sizing:border-box;
  margin:14px auto; max-width:1140px; padding:9px 14px 9px 22px;
  background:rgba(255,255,255,.74); backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid var(--line, #e4ebd9); border-radius:var(--r-pill, 100px);
  width:calc(100% - 44px); box-shadow:0 10px 36px -20px rgba(40,90,30,.30);
  transition:box-shadow .4s, background .4s; position:relative;
}
body.pds.scrolled .pds-nav { background:rgba(255,255,255,.93); box-shadow:0 16px 40px -16px rgba(40,90,30,.42); }

body.pds .pds-logo { display:flex; align-items:center; gap:10px; font-weight:800; font-size:18px; color:var(--ink, #15271b); letter-spacing:-.02em; white-space:nowrap; flex:0 0 auto; }
body.pds .pds-logo img { height:30px; width:auto; display:block; }

body.pds .pds-menu { display:flex; gap:24px; font-size:14.5px; font-weight:500; color:#3c4a40; flex-wrap:nowrap; }
body.pds .pds-menu a { position:relative; padding:4px 0; color:inherit; white-space:nowrap; text-decoration:none !important; transition:color .2s; }
body.pds .pds-menu a:hover, body.pds .pds-menu a.active { text-decoration:none !important; }
body.pds .pds-menu a::after { content:""; position:absolute; left:0; right:100%; bottom:-1px; height:2px; background:var(--green, #74b72a); border-radius:2px; transition:right .32s var(--ease, cubic-bezier(.19,1,.22,1)); }
body.pds .pds-menu a:hover { color:var(--green-ink, #3a6212); }
body.pds .pds-menu a:hover::after { right:0; }
body.pds .pds-menu a.active { color:var(--green-ink, #3a6212); font-weight:700; }
body.pds .pds-menu a.active::after { right:0; }

body.pds .pds-nav-right { display:flex; align-items:center; gap:14px; flex:0 0 auto; }
body.pds .pds-tel { display:flex; align-items:center; gap:8px; color:var(--ink, #15271b); font-weight:600; font-size:14px; white-space:nowrap; }
body.pds .pds-tel svg { color:var(--green-deep, #5a9023); flex:0 0 auto; }
body.pds .pds-portal { background:var(--green, #74b72a); color:#08240a; padding:11px 20px; border-radius:var(--r-pill, 100px); font-weight:700; font-size:14px; white-space:nowrap; box-shadow:0 8px 20px -10px rgba(116,183,42,.6); transition:transform .3s var(--ease, cubic-bezier(.19,1,.22,1)), box-shadow .3s; }
body.pds .pds-portal:hover { transform:translateY(-2px); box-shadow:0 14px 28px -10px rgba(116,183,42,.75); }

body.pds .pds-nav-toggle { display:none; width:42px; height:42px; border-radius:12px; border:1px solid var(--line, #e4ebd9); background:#fff; cursor:pointer; align-items:center; justify-content:center; flex:0 0 auto; }
body.pds .pds-nav-toggle svg { color:var(--ink, #15271b); }

/* Content-Abstand: fixe Navbar nicht ueber den Seiten-Anfang legen, falls eine
   Seite keinen eigenen grossen Hero-Top-Abstand hat (Heroes bringen i.d.R. padding-top mit). */
body.pds .site-content, body.pds #content { scroll-margin-top:90px; }

/* ===== Mobile ===== */
@media (max-width:980px) {
  body.pds .pds-menu {
    display:none; position:absolute; top:64px; left:8px; right:8px;
    flex-direction:column; gap:2px; background:#fff; border:1px solid var(--line, #e4ebd9);
    border-radius:18px; padding:12px; box-shadow:var(--shadow, 0 40px 90px -42px rgba(40,90,30,.40));
  }
  body.pds .pds-menu.open { display:flex; }
  body.pds .pds-menu a { padding:13px 12px; font-size:16px; }
  body.pds .pds-menu a::after { display:none; }
  body.pds .pds-tel { display:none; }
  body.pds .pds-nav-toggle { display:flex; }
  body.pds .pds-nav { width:calc(100% - 24px); gap:12px; padding:9px 12px 9px 16px; }
  body.pds .pds-logo { font-size:16px; gap:8px; }
  body.pds .pds-logo img { height:26px; }
  body.pds .pds-portal { padding:10px 16px; font-size:13px; }
}

/* ===== Premium-Footer (.pds-Seiten) — HELL, passend zum hellen Marken-Theme ===== */
body.pds .pds-footer { background: #f4f8ee; color: var(--muted-2, #5a6b5e); margin-top: 80px; border-top: 1px solid var(--line, #e4ebd9); }
body.pds .pds-footer-grid { display: grid; box-sizing:border-box; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 48px; padding: 56px 24px 40px; max-width: var(--maxw, 1280px); margin: 0 auto; }
body.pds .pds-foot-logo { display: inline-block; margin-bottom: 16px; }
body.pds .pds-foot-logo img { height: 34px; width: auto; display: block; }
body.pds .pds-foot-tag { font-size: 14.5px; line-height: 1.6; color: var(--muted-2, #5a6b5e); max-width: 330px; margin: 0 0 22px; }
body.pds .pds-foot-contact { display: flex; flex-direction: column; gap: 12px; }
body.pds .pds-foot-contact a, body.pds .pds-foot-addr { display: flex; align-items: flex-start; gap: 10px; color: var(--ink, #15271b); text-decoration: none; font-size: 14.5px; line-height: 1.4; font-style: normal; transition: color .2s; }
body.pds .pds-foot-contact a:hover { color: var(--green-ink, #3a6212); }
body.pds .pds-foot-contact svg, body.pds .pds-foot-addr svg { color: var(--green-deep, #5a9023); flex: 0 0 auto; margin-top: 2px; }
body.pds .pds-foot-col h4 { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ink, #15271b); margin: 0 0 18px; }
body.pds .pds-foot-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 11px; }
body.pds .pds-foot-col a { color: var(--muted-2, #5a6b5e); text-decoration: none; font-size: 14.5px; transition: color .2s, padding-left .25s; }
body.pds .pds-foot-col a:hover { color: var(--green-ink, #3a6212); padding-left: 4px; }
body.pds .pds-footer-bottom { border-top: 1px solid var(--line, #e4ebd9); }
body.pds .pds-foot-bottom-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 20px 24px; max-width: var(--maxw, 1280px); margin: 0 auto; font-size: 13px; color: var(--muted-2, #5a6b5e); }
body.pds .pds-foot-disc { color: #94a088; }
body.pds .pds-foot-copy { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
body.pds .pds-foot-dot { color: #b7c4ad; }
body.pds .pds-foot-heart { color: #e0533d; vertical-align: middle; animation: pdsHeartbeat 1.6s ease-in-out infinite; }
@keyframes pdsHeartbeat { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.18); } }
@media (max-width: 920px) { body.pds .pds-footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; } }
@media (max-width: 560px) { body.pds .pds-footer-grid { grid-template-columns: 1fr; } body.pds .pds-foot-bottom-row { flex-direction: column; text-align: center; } }

/* ===== Hero-Flush: farbiger Hero bis ganz oben hinter die fixed Navbar =====
   Neutralisiert das geerbte body{padding-top:95px !important} aus modern-navigation.css
   (laedt via mobile-responsive-Dependency trotz dequeue). Nur auf Hero-Seiten (.pds-flush);
   der Hero traegt seinen eigenen padding-top fuer den Navbar-Freiraum. */
body.pds.pds-flush { padding-top: 0 !important; background-position: 0 0 !important; }

/* Lead-CTA-Umbau (22.06.): Service-Portal als dezenter Login-Link, gruener Button = Lead-CTA */
body.pds .pds-login { color:var(--green-deep,#5a9023); font-weight:700; font-size:14px; white-space:nowrap; padding:10px 18px; border-radius:var(--r-pill,100px); border:1.5px solid var(--green,#74b72a); background:#fff; transition:.3s var(--ease,cubic-bezier(.19,1,.22,1)); }
body.pds .pds-login:hover { background:var(--mint,#eaf6da); border-color:var(--green-deep,#5a9023); transform:translateY(-2px); }
@media (max-width:980px){ body.pds .pds-login { display:none; } }
