/* Signal Weilheim :: Basis, Kopf, Fuss, Hero
   Design-System: signal-weilheim. Nur auf Signal-Templates geladen. */

:root{
  --sg-bg:#101114;
  --sg-surface:#15171B;
  --sg-ink:#F2F1EE;
  --sg-accent:#E2F36F;
  --sg-accent-ink:#171A0E;
  --sg-paper:#F2F1EE;
  --sg-paper-ink:#101114;
  --sg-physio:#7C9DFF;
  --sg-ergo:#E2F36F;
  --sg-logo:#DD486D;
  --sg-line:rgba(242,241,238,.14);
  --sg-line-strong:rgba(242,241,238,.28);
  --sg-line-dark:rgba(16,17,20,.14);
  --sg-display:"Space Grotesk",system-ui,sans-serif;
  --sg-body:Manrope,system-ui,sans-serif;
  --sg-max:1440px;
  --sg-pad:clamp(20px,3vw,48px);
  --sg-r:4px;
  --sg-benefit-pad:24px;
  --sg-head-h:78px;
  --sg-head-total:calc(var(--sg-head-h) + 1px);
}

/* ---------- Basis ---------- */
.sg-page{
  margin:0;
  background:var(--sg-bg);
  color:var(--sg-ink);
  font-family:var(--sg-body);
  -webkit-font-smoothing:antialiased;
  max-width:100%;
  overflow-x:clip;
}
.sg-page *{box-sizing:border-box}
.sg-page :where(a){color:inherit;text-decoration:none}
.sg-page :where(h1,h2,h3,h4,p,ul,li,figure,blockquote){margin:0;padding:0}
.sg-page li{list-style:none}
.sg-page img{max-width:100%;display:block}
.sg-page :where(input,textarea,button){font:inherit;color:inherit}
/* Sprungziele muessen unterhalb der klebenden Kopfzeile beginnen. */
.sg-page section[id],.sg-page [id^="sg-"]{scroll-margin-top:calc(var(--sg-head-total) + 16px)}
.sg-page [hidden]{display:none}
.sg-page ::selection{background:var(--sg-accent);color:var(--sg-bg)}

.sg-wrap{max-width:var(--sg-max);margin:0 auto;padding-left:var(--sg-pad);padding-right:var(--sg-pad)}
.sg-section{padding-top:clamp(56px,7vw,110px);padding-bottom:clamp(56px,7vw,110px)}
.sg-section--tight{padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(48px,6vw,96px)}
.sg-paper{background:var(--sg-paper);color:var(--sg-paper-ink)}
.sg-surface{background:var(--sg-surface)}

.sg-eyebrow{font-family:var(--sg-display);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,241,238,.45)}
.sg-paper .sg-eyebrow{color:rgba(16,17,20,.45)}
.sg-label{font-family:var(--sg-display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(242,241,238,.42)}
.sg-paper .sg-label{color:rgba(16,17,20,.4)}

.sg-h2{font-family:var(--sg-display);font-size:clamp(34px,4.6vw,66px);line-height:1;font-weight:500;letter-spacing:-.035em;text-transform:uppercase;text-wrap:balance}
.sg-lead{font-size:17.5px;line-height:1.65;max-width:32em;color:rgba(242,241,238,.68)}
.sg-paper .sg-lead{color:rgba(16,17,20,.68)}

/* ---------- Buttons ---------- */
.sg-btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:17px 28px;border:0;border-radius:var(--sg-r);
  font-family:var(--sg-display);font-size:14px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease;
}
.sg-btn:hover{transform:translateY(-2px)}
.sg-btn--light{background:var(--sg-ink);color:var(--sg-bg)}
.sg-btn--light:hover{background:var(--sg-logo);color:#fff}
.sg-btn--accent{background:var(--sg-accent);color:var(--sg-accent-ink)}
.sg-btn--accent:hover{background:var(--sg-accent);color:var(--sg-accent-ink)}
.sg-btn--dark{background:var(--sg-accent-ink);color:var(--sg-accent)}
.sg-btn--dark:hover{color:var(--sg-accent)}
.sg-btn--ghost{
  background:none;border:1px solid var(--sg-line-strong);
  font-weight:500;white-space:nowrap;
}
.sg-btn--ghost:hover{border-color:var(--sg-ink);color:var(--sg-ink)}
.sg-paper .sg-btn--ghost,.sg-onaccent .sg-btn--ghost{border-color:rgba(23,26,14,.32);color:var(--sg-accent-ink)}
.sg-paper .sg-btn--ghost:hover,.sg-onaccent .sg-btn--ghost:hover{background:rgba(23,26,14,.08)}

/* ---------- Kopfzeile ---------- */
.sg-header{
  position:sticky;top:0;z-index:80;
  background:rgba(16,17,20,.86);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(242,241,238,.1);
}
.sg-header__inner{
  max-width:var(--sg-max);margin:0 auto;padding:0 var(--sg-pad);
  height:var(--sg-head-h);display:flex;align-items:center;
  justify-content:space-between;gap:28px;
}
.sg-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.sg-brand img{height:36px;width:auto}
.sg-brand__name{
  font-family:var(--sg-display);font-size:16px;font-weight:600;
  letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap;
}
.sg-nav{display:flex;align-items:center;gap:26px}
.sg-nav ul{display:flex;align-items:center;gap:26px;margin:0;padding:0}
.sg-nav a{
  font-family:var(--sg-display);font-size:13px;font-weight:500;
  letter-spacing:.04em;text-transform:uppercase;
  transition:color .18s ease;white-space:nowrap;
}
.sg-nav li:nth-child(3n+1) a:hover{color:var(--sg-physio)}
.sg-nav li:nth-child(3n+2) a:hover{color:var(--sg-accent)}
.sg-nav li:nth-child(3n+3) a:hover{color:var(--sg-logo)}
.sg-nav .current-menu-item > a{color:var(--sg-accent)}
.sg-header .sg-btn{padding:12px 20px;font-size:13px;letter-spacing:.04em;font-weight:500}

.sg-burger{
  display:none;width:44px;height:44px;padding:0;
  background:none;border:1px solid var(--sg-line-strong);
  border-radius:var(--sg-r);cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
}
.sg-burger span{display:block;width:18px;height:1.5px;background:var(--sg-ink);transition:transform .2s ease,opacity .2s ease}
.sg-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.sg-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.sg-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media (max-width:1000px){
  .sg-burger{display:flex}
  .sg-nav{
    position:fixed;inset:var(--sg-head-total) 0 0 0;
    display:none;flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;padding:clamp(20px,5vw,40px) var(--sg-pad) 40px;
    background:var(--sg-bg);overflow-y:auto;
  }
  .sg-nav[data-open="true"]{display:flex}
  .sg-nav ul{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .sg-nav li{border-bottom:1px solid var(--sg-line)}
  .sg-nav li a{display:block;padding:20px 0;font-size:20px;letter-spacing:-.02em}
  .sg-header .sg-btn{margin-top:28px;justify-content:center;padding:18px 24px;font-size:14px}
}

/* Die Adminleiste sitzt in der Vorschau ueber der Seite. */
.admin-bar .sg-header{top:32px}
@media screen and (max-width:782px){.admin-bar .sg-header{top:46px}}

/* ---------- Hero ---------- */
.sg-hero{
  position:relative;min-height:calc(100dvh - var(--sg-head-total));
  display:flex;flex-direction:column;overflow:hidden;
}
.admin-bar .sg-hero{min-height:calc(100dvh - var(--sg-head-total) - 32px)}
@media screen and (max-width:782px){.admin-bar .sg-hero{min-height:calc(100dvh - var(--sg-head-total) - 46px)}}
.sg-hero__body{
  position:relative;z-index:1;flex:1;
  display:flex;flex-direction:column;justify-content:center;
  gap:clamp(12px,2.2vh,40px);width:100%;max-width:var(--sg-max);margin:0 auto;
  padding:clamp(14px,2.6vh,48px) var(--sg-pad);
}
.sg-hero__title{
  max-width:24em;font-family:var(--sg-display);
  font-size:clamp(19px,min(2.4vw,3.2vh),32px);line-height:1.2;
  font-weight:500;letter-spacing:-.025em;text-wrap:balance;
}
.sg-hero__list{display:flex;flex-direction:column;border-top:1px solid var(--sg-line)}
.sg-fachrow{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  column-gap:clamp(16px,2vw,36px);row-gap:4px;
  padding:clamp(6px,1.1vh,20px) 0;border-bottom:1px solid var(--sg-line);
  color:var(--sg-row,var(--sg-ink));
  transition:color .2s ease,padding-left .25s ease;
}
.sg-fachrow:hover{padding-left:22px;color:var(--sg-ink)}
.sg-fachrow__name{
  min-width:0;font-family:var(--sg-display);
  font-size:clamp(30px,min(7.4vw,7.4vh),128px);line-height:.96;
  font-weight:500;letter-spacing:-.045em;text-transform:uppercase;
}
.sg-fachrow__go{
  font-family:var(--sg-display);font-size:14px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;opacity:.55;white-space:nowrap;
}
.sg-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.sg-hero__actions .sg-btn{padding:clamp(13px,1.7vh,18px) 28px}

/* ---------- Laufband ---------- */
.sg-marquee{
  overflow:hidden;background:var(--sg-surface);
  border-top:1px solid var(--sg-line);border-bottom:1px solid var(--sg-line);
}
.sg-marquee__track{display:flex;width:max-content;animation:sgMarquee 38s linear infinite}
.sg-marquee__group{
  display:flex;align-items:center;gap:44px;
  padding:clamp(11px,1.5vh,15px) 22px;
  font-family:var(--sg-display);font-size:14px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(242,241,238,.6);white-space:nowrap;
}
.sg-marquee__group i{font-style:normal}
.sg-marquee__group i:nth-of-type(3n+1){color:var(--sg-physio)}
.sg-marquee__group i:nth-of-type(3n+2){color:var(--sg-accent)}
.sg-marquee__group i:nth-of-type(3n+3){color:var(--sg-logo)}
@keyframes sgMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Fußzeile ---------- */
.sg-footer{background:var(--sg-paper);color:var(--sg-paper-ink)}
.sg-footer__inner{max-width:var(--sg-max);margin:0 auto;padding:clamp(48px,6vw,80px) var(--sg-pad) 36px}
.sg-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:40px}
.sg-footer__logo{height:62px;width:auto;filter:brightness(0)}
.sg-footer__claim{
  margin-top:20px;font-family:var(--sg-display);font-size:20px;line-height:1.25;
  font-weight:500;letter-spacing:-.025em;max-width:14em;
}
.sg-footer__col{display:flex;flex-direction:column;gap:11px;font-size:15px}
.sg-footer__col a{color:rgba(16,17,20,.72);transition:color .18s ease}
.sg-footer__col a:hover{color:var(--sg-paper-ink)}
.sg-footer__col ul{display:flex;flex-direction:column;gap:11px}
.sg-footer__bar{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:48px;padding-top:20px;border-top:1px solid rgba(16,17,20,.16);
  font-size:13px;color:rgba(16,17,20,.45);
}
.sg-footer__bar ul{display:flex;gap:22px}
.sg-footer__bar a{color:rgba(16,17,20,.45);transition:color .18s ease}
.sg-footer__bar a:hover{color:var(--sg-paper-ink)}

/* ---------- Bewegung ---------- */
@keyframes sgUp{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@keyframes sgFade{from{opacity:0}to{opacity:1}}

@media (prefers-reduced-motion:reduce){
  .sg-marquee__track{animation:none}
  .sg-page *,.sg-page *::before,.sg-page *::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
