/* ---------- selbst gehostete Schriften ---------- */
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeP2Xz5fU8w.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeP2Xz5c.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeP2Xz5fU8w.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeP2Xz5c.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeP2Xz5fU8w.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeP2Xz5c.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeP2Xz5fU8w.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/assets/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeP2Xz5c.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WdhyyTh89ZNpQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WdhyyTh89ZNpQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WdhyyTh89ZNpQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WdhyyTh89ZNpQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WdhyyTh89ZNpQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --navy:#2e3f5c;
  --navy-deep:#243149;
  --sand:#d6d3c9;
  --sand-soft:#e7e5dd;
  --ink:#2b2b2b;
  --paper:#f8f8f6;
  --white:#ffffff;
  --line:rgba(46,63,92,.16);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Montserrat',sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Fraunces',serif;line-height:1.04;letter-spacing:-.01em;font-weight:700;color:var(--navy)}
.display{font-weight:900}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,92vw);margin-inline:auto}
.eyebrow{
  font-family:'Montserrat';font-weight:600;font-size:.74rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--navy);
  display:inline-flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:34px;height:1.5px;background:var(--navy)}

/* ---------- hand-drawn signature underline (from Bildsprache) ---------- */
.hand-underline{position:relative;display:inline-block}
.hand-underline svg{position:absolute;left:-4%;bottom:-.32em;width:108%;height:.5em;overflow:visible}
.hand-underline svg path{fill:none;stroke:var(--navy);stroke-width:6;stroke-linecap:round}
.sand-text .hand-underline svg path{stroke:var(--sand)}

/* ---------- buttons (pill from Bildsprache) ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:'Montserrat';font-weight:600;font-size:.86rem;
  letter-spacing:.04em;
  padding:1.05rem 2.2rem;border-radius:999px;
  background:var(--navy);color:var(--paper);
  border:1.5px solid var(--navy);
  cursor:pointer;transition:.35s cubic-bezier(.2,.8,.2,1);
  white-space:nowrap;
}
.btn:hover{background:var(--navy-deep);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(46,63,92,.5)}
.btn .arr{transition:transform .35s}
.btn:hover .arr{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:var(--paper)}
.btn-light{background:var(--paper);color:var(--navy);border-color:var(--paper)}
.btn-light:hover{background:var(--sand);border-color:var(--sand);color:var(--navy-deep)}

/* ---------- header / nav ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:1.1rem 0;
  transition:.4s;
}
header.scrolled{
  background:rgba(248,248,246,.97);
  backdrop-filter:blur(14px);
  box-shadow:0 2px 16px -8px rgba(46,63,92,.28);
  padding:.7rem 0;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.nav-logo{height:42px;transition:.4s}
header.scrolled .nav-logo{height:34px}
.nav-links{display:flex;align-items:center;gap:2.4rem}
.nav-links a{
  font-weight:500;font-size:.9rem;letter-spacing:.02em;color:var(--navy);
  position:relative;padding:.2rem 0;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:var(--navy);transition:.3s;
}
.nav-links a:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:1.4rem}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px}
.menu-toggle span{width:26px;height:2px;background:var(--navy);transition:.3s;border-radius:2px}

/* ---------- hero ---------- */
.hero{
  position:relative;
  padding:2.5rem 0 5rem;
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(214,211,201,.5) 0%, rgba(214,211,201,0) 55%),
    var(--paper);
  overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
.hero h1{font-size:clamp(1.6rem,3.05vw,2.55rem);margin:1.5rem 0 1.4rem;letter-spacing:.005em;white-space:nowrap}
.hero .sub{font-size:1.18rem;color:#4a536a;max-width:32ch;margin-bottom:2.4rem;font-weight:400}
.hero-cta{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.hero-meta{font-size:.82rem;color:#6a7080;letter-spacing:.02em}

/* hero visual card */
.hero-visual{position:relative}
.hero-card{
  background:var(--navy);border-radius:26px;padding:2.6rem;
  color:var(--paper);position:relative;overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(46,63,92,.7);
}
.hero-card::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 60% at 100% 0%, rgba(255,255,255,.08), transparent 60%);
}
.hero-card .tag{font-family:'Montserrat';font-weight:600;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sand);opacity:.85}
.hero-card .big{font-family:'Fraunces';font-weight:900;font-size:1.9rem;line-height:1.08;margin:.8rem 0 1.6rem;color:var(--paper)}
.hero-card ul{list-style:none;display:flex;flex-direction:column;gap:.9rem;position:relative}
.hero-card li{display:flex;align-items:center;gap:.85rem;font-size:.96rem;color:#dfe3ea}
.hero-card li .dot{flex:none;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center}
.hero-card li svg{width:15px;height:15px;stroke:var(--sand);stroke-width:2.4;fill:none}
.float-pill{
  position:absolute;left:-26px;bottom:-24px;
  background:var(--sand);color:var(--navy-deep);
  border-radius:999px;padding:.85rem 1.5rem;
  font-family:'Fraunces';font-weight:700;font-size:.98rem;
  box-shadow:0 20px 40px -18px rgba(0,0,0,.4);
  display:flex;align-items:center;gap:.6rem;
}

/* ---------- marquee strip ---------- */
.strip{background:var(--navy);color:var(--paper);padding:1.1rem 0;overflow:hidden}
.strip-track{display:flex;gap:3.5rem;white-space:nowrap;animation:scroll 28s linear infinite;width:max-content}
.strip-track span{font-family:'Fraunces';font-weight:600;font-size:1.05rem;display:flex;align-items:center;gap:3.5rem;color:#e9ebf0}
.strip-track span::after{content:"✦";color:var(--sand);font-size:.8rem}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- section base ---------- */
section{padding:6.5rem 0}
.sec-head{max-width:60ch;margin-bottom:3.4rem}
.sec-head h2{font-size:clamp(2rem,4vw,3.2rem);margin:1.1rem 0 .9rem}
.sec-head p{font-size:1.1rem;color:#4a536a}

/* ---------- reasons (4 Gründe) ---------- */
.reasons{background:var(--white)}
.reasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:1rem}
.reason{
  background:var(--paper);border:1px solid var(--line);border-radius:20px;
  padding:2rem 1.7rem;transition:.4s;position:relative;overflow:hidden;
}
.reason:hover{background:var(--navy);transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(46,63,92,.55)}
.reason .num{font-family:'Fraunces';font-weight:900;font-size:1.1rem;color:var(--sand);background:var(--navy);width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:1.5rem;transition:.4s}
.reason:hover .num{background:var(--sand);color:var(--navy)}
.reason h3{font-size:1.28rem;margin-bottom:.8rem;transition:.4s}
.reason p{font-size:.92rem;color:#566;line-height:1.6;transition:.4s}
.reason:hover h3,.reason:hover p{color:var(--paper)}
.reason:hover p{color:#cfd4de}

/* ---------- services ---------- */
.services{background:var(--sand-soft)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:1rem}
.svc{
  background:var(--paper);border-radius:22px;padding:2.4rem 2.1rem;
  border:1px solid var(--line);transition:.4s;position:relative;
}
.svc:hover{transform:translateY(-6px);box-shadow:0 34px 70px -34px rgba(46,63,92,.4)}
.svc .ico{width:54px;height:54px;border-radius:14px;background:var(--navy);display:grid;place-items:center;margin-bottom:1.5rem}
.svc .ico svg{width:26px;height:26px;stroke:var(--sand);stroke-width:1.7;fill:none}
.svc h3{font-size:1.55rem;margin-bottom:1.2rem}
.svc ul{list-style:none;display:flex;flex-direction:column;gap:.7rem}
.svc li{display:flex;align-items:center;gap:.7rem;font-size:.95rem;color:#3c4458;font-weight:500}
.svc li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--navy);flex:none}

/* ---------- reviews ---------- */
.reviews{background:var(--navy);color:var(--paper)}
.reviews .sec-head h2,.reviews .eyebrow{color:var(--paper)}
.reviews .eyebrow::before{background:var(--sand)}
.reviews .sec-head p{color:#cdd2dd}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.rev{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:2rem;backdrop-filter:blur(4px)}
.rev .stars{color:var(--sand);letter-spacing:.15em;margin-bottom:1rem;font-size:.95rem}
.rev p{font-size:1rem;color:#e6e9ef;line-height:1.7;margin-bottom:1.5rem;font-style:italic}
.rev .who{display:flex;align-items:center;gap:.9rem}
.rev .av{width:42px;height:42px;border-radius:50%;background:var(--sand);color:var(--navy);display:grid;place-items:center;font-family:'Fraunces';font-weight:700}
.rev .who b{display:block;font-family:'Fraunces';color:var(--paper);font-size:1rem}
.rev .who small{color:#aab2c2;font-size:.82rem}

/* ---------- about / team ---------- */
.about{background:var(--paper)}
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end;margin-bottom:4rem}
.about-intro .lead{font-family:'Fraunces';font-weight:600;font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--navy);line-height:1.3}
.about-intro .body p{color:#4a536a;margin-bottom:1rem}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.member{text-align:center}
.member .photo{
  aspect-ratio:3/4;border-radius:20px;
  background:linear-gradient(160deg,var(--sand),var(--sand-soft));
  display:grid;place-items:center;position:relative;overflow:hidden;margin-bottom:1.3rem;
  border:1px solid var(--line);
}
.member .photo .initials{font-family:'Fraunces';font-weight:900;font-size:4rem;color:var(--navy);opacity:.85}
.member .photo::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 120%,rgba(46,63,92,.18),transparent)}
.member h3{font-size:1.5rem;margin-bottom:.2rem}
.member .role{font-family:'Montserrat';font-weight:600;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);opacity:.7}

/* ---------- CTA banner ---------- */
.cta-band{background:var(--white)}
.cta-box{
  background:var(--navy);border-radius:30px;padding:4.5rem 3.5rem;
  display:grid;grid-template-columns:1.3fr .7fr;gap:2.5rem;align-items:center;
  position:relative;overflow:hidden;
}
.cta-box::before{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(214,211,201,.22),transparent 70%)}
.cta-box h2{color:var(--paper);font-size:clamp(1.8rem,3.4vw,2.7rem)}
.cta-box p{color:#cdd2dd;margin-top:1rem;font-size:1.05rem;max-width:40ch}
.cta-box .act{display:flex;justify-content:flex-end;position:relative;z-index:2}

/* ---------- footer ---------- */
footer{background:var(--navy-deep);color:#c5cad6;padding:4.5rem 0 2rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-logo{height:46px;margin-bottom:1.3rem}
.foot-grid p{font-size:.92rem;line-height:1.7;max-width:32ch}
.foot-col h4{font-family:'Montserrat';font-weight:600;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sand);margin-bottom:1.2rem}
.foot-col a,.foot-col span{display:flex;align-items:center;gap:.6rem;font-size:.92rem;margin-bottom:.7rem;transition:.25s;color:#c5cad6}
.foot-col a:hover{color:var(--paper)}
.foot-col svg{width:15px;height:15px;stroke:var(--sand);stroke-width:1.7;fill:none;flex:none}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:1.8rem;font-size:.82rem;color:#8b93a6;flex-wrap:wrap;gap:1rem}

/* ---------- Hero-Bild ---------- */
/* Hero: einfach & stabil – Desktop volles Bild (natürliche Höhe), Handy Text + Bildband */
.hero-shot{background:var(--paper);padding:6rem 0 0;line-height:0}
.hero-shot .shot img{width:100%;height:auto;display:block}
.hero-mobile{display:none}
.hero-mobile .eyebrow{display:none}
.hm-h{font-family:'Fraunces';font-weight:900;font-size:clamp(1.7rem,7.5vw,2.5rem);line-height:1.06;color:var(--navy);margin:0 0 1rem}
.hm-lead{font-family:'Montserrat';font-weight:700;font-size:1.02rem;letter-spacing:.02em;text-transform:uppercase;color:var(--navy);margin-bottom:.8rem;line-height:1.3}
.hm-sub{font-size:1.02rem;color:#4a536a;margin-bottom:1.6rem;line-height:1.6;max-width:34ch}
.hero-mobile .btn{width:100%;justify-content:center}
@media(max-width:768px){
  .hero-shot{padding-top:0}
  .hero-mobile{display:none}
  .hero-shot .shot{display:block;margin:0;line-height:0}
  .hero-shot .shot img{width:100%;height:auto;display:block}
}
@media(max-width:560px){.hero-mobile{padding-top:5.4rem}}
.hero-cta{background:var(--paper);display:flex;justify-content:center;padding:2.2rem 1.4rem 2.8rem}
.hero-cta .btn{font-size:.95rem}
@media(max-width:560px){.hero-cta .btn{width:100%;justify-content:center}}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:.8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .hero h1{white-space:normal;font-size:clamp(1.9rem,6vw,2.6rem)}
  .hero-grid{grid-template-columns:1fr;gap:3rem}
  .reasons-grid{grid-template-columns:repeat(2,1fr)}
  .svc-grid,.rev-grid,.team-grid{grid-template-columns:1fr}
  .about-intro,.cta-box{grid-template-columns:1fr}
  .cta-box .act{justify-content:flex-start}
  .foot-grid{grid-template-columns:1fr 1fr}
  .nav-links{
    position:fixed;inset:0;width:100%;
    background:var(--navy);flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1.6rem;
    transform:translateX(100%);transition:.4s;padding:5.5rem 2rem 2rem;z-index:99;
  }
  .nav-links.open{transform:none}
  .nav-links a{color:var(--paper);font-size:1.2rem}
  .nav-links a::after{background:var(--sand)}
  .menu-toggle{display:flex}
  .nav-right .btn{display:none}
  body.nav-open{overflow:hidden}
  body.nav-open header{background:transparent!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  body.nav-open .nav-logo{opacity:0;pointer-events:none}
  body.nav-open .menu-toggle span{background:var(--paper)}
  body.nav-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.nav-open .menu-toggle span:nth-child(2){opacity:0}
  body.nav-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
@media(max-width:560px){
  .reasons-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  section{padding:4.5rem 0}
  .hero{padding:1.5rem 0 3.5rem}
  .cta-box{padding:3rem 1.8rem}
  .float-pill{left:50%;transform:translateX(-50%);bottom:-22px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- Passen wir zusammen? (Tool-Auswahl) ---------- */
.fit{background:var(--white)}
.fit .sec-head{text-align:center;margin-inline:auto;margin-bottom:2.6rem}
.fit .eyebrow{justify-content:center}
.fit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.fit-card{text-align:left;font-family:inherit;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:2.4rem 2.1rem;transition:.4s;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;color:var(--ink)}
.fit-card:hover{transform:translateY(-6px);box-shadow:0 34px 70px -34px rgba(46,63,92,.4);border-color:var(--navy)}
.fit-ico{width:54px;height:54px;border-radius:14px;background:var(--navy);display:grid;place-items:center;margin-bottom:.4rem}
.fit-ico svg{width:26px;height:26px;stroke:var(--sand);stroke-width:1.7;fill:none}
.fit-card h3{font-size:1.55rem}
.fit-card p{font-size:.95rem;color:#4a536a;line-height:1.6}
.fit-link{margin-top:.4rem;font-family:'Montserrat';font-weight:600;font-size:.9rem;letter-spacing:.02em;color:var(--navy);display:inline-flex;align-items:center;gap:.45rem;transition:gap .3s}
.fit-card:hover .fit-link{gap:.75rem}
.fit-badge{margin-top:.4rem;font-family:'Montserrat';font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);background:var(--sand-soft);padding:.4rem .9rem;border-radius:999px}
.fit-card.soon{cursor:default;opacity:.9}
.fit-card.soon:hover{transform:none;box-shadow:none;border-color:var(--line)}
@media(max-width:920px){.fit-grid{grid-template-columns:1fr}}
/* ---------- SPIN-Rechner ---------- */
.spin-topbar{position:sticky;top:0;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1.2rem,5vw,3rem);background:rgba(248,248,246,.94);backdrop-filter:blur(10px)}
.spin-home{background:none;border:none;font-family:'Montserrat';font-weight:600;font-size:.85rem;letter-spacing:.01em;color:var(--navy);cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .2rem;opacity:.72;transition:.2s}
.spin-home:hover{opacity:1}
.spin-x{position:static !important}
#spinProgWrap{position:static;padding-top:.4rem}
#spinScreen{width:100%;max-width:600px}
.spin-scale{display:flex;gap:6px;margin-bottom:1.5rem}
.spin-scale span{flex:1;height:9px;border-radius:999px;opacity:.22;transition:.35s}
.spin-scale span.on{opacity:1;height:15px}
.spin-tasks{list-style:none;margin:1rem 0 .3rem;display:flex;flex-direction:column;gap:.5rem}
.spin-tasks li{display:flex;align-items:center;gap:.6rem;font-size:.98rem;color:var(--ink)}
.spin-tasks li svg{width:16px;height:16px;stroke:#1c7a4a;stroke-width:2.6;fill:none;flex:none}
.spin-consent{display:flex;gap:.6rem;align-items:flex-start;margin:.2rem 0 1.1rem;font-size:.8rem;color:#4a536a;line-height:1.5;cursor:pointer}
.spin-consent input{margin-top:.15rem;flex:none;width:18px;height:18px;accent-color:var(--navy)}
.spin-hint{font-size:.86rem;color:#4a536a;background:var(--sand-soft);border-radius:12px;padding:.85rem 1rem;margin:.9rem 0;line-height:1.55}
.spin-hint a{color:var(--navy);font-weight:600}
.spin-recos{display:flex;flex-direction:column;gap:.45rem;margin-top:1.2rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.spin-recos a{color:var(--navy);font-weight:600;font-size:.92rem;display:inline-flex;gap:.4rem;align-items:center}
/* ---------- Anfrage-Fragebogen ---------- */
.flow-options.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.anf-other{margin-top:.7rem}
.anf-other input{width:100%;font-family:'Montserrat';font-size:1rem;color:var(--ink);padding:.85rem 1.1rem;border-radius:14px;border:1.5px solid var(--line);background:var(--white)}
.anf-other input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(46,63,92,.08)}
.flow-field .req{color:#c0392b;font-weight:700}
.flow-field textarea{width:100%;font-family:'Montserrat';font-size:1rem;color:var(--ink);padding:.95rem 1.15rem;border-radius:14px;border:1.5px solid var(--line);background:var(--white);transition:.22s;min-height:104px;resize:vertical;line-height:1.55}
.flow-field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(46,63,92,.08)}
.flow-field input.inv,.flow-field select.inv,.flow-field textarea.inv{border-color:#c0392b;box-shadow:0 0 0 4px rgba(192,57,43,.08)}
.anf-err{display:none;color:#c0392b;font-size:.84rem;margin:.2rem 0 1rem}
.anf-err.show{display:block}
@media(max-width:560px){.flow-options.grid2{grid-template-columns:1fr}}
/* ---------- Impressum / Datenschutz ---------- */
.legal-wrap{width:min(760px,92vw);margin:1rem auto 4.5rem;padding:0 clamp(1rem,4vw,1.5rem)}
.legal-wrap h1{font-family:'Fraunces';font-weight:900;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--navy);margin-bottom:1.4rem}
.legal-wrap h3{font-family:'Fraunces';font-weight:700;font-size:1.3rem;color:var(--navy);margin:2rem 0 .5rem}
.legal-wrap h4{font-family:'Montserrat';font-weight:700;font-size:1.02rem;color:var(--navy);margin:1.3rem 0 .3rem}
.legal-wrap p{font-size:.95rem;line-height:1.75;color:#3c4458;margin-bottom:.85rem}
.legal-wrap a{color:var(--navy);text-decoration:underline;word-break:break-word}
.foot-bottom a{color:inherit;text-decoration:underline;transition:.25s}
.foot-bottom a:hover{color:var(--paper)}

/* ---------- Lohnt sich Outsourcing?: Ergebnis-Slide ---------- */
.oc-result{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:2.4rem;box-shadow:0 30px 70px -40px rgba(46,63,92,.35)}
.oc-scale{display:flex;gap:6px;margin-bottom:1.5rem}
.oc-scale span{flex:1;height:9px;border-radius:999px;opacity:.22;transition:.35s}
.oc-scale span[data-l="0"]{background:#1c7a4a}
.oc-scale span[data-l="1"]{background:#3a9b5c}
.oc-scale span[data-l="2"]{background:#d9a300}
.oc-scale span[data-l="3"]{background:#d97a2b}
.oc-scale span[data-l="4"]{background:#c0392b}
.oc-scale span.on{opacity:1;height:15px}
.oc-badge{display:inline-flex;align-items:center;gap:.55rem;font-family:'Montserrat';font-weight:700;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:#fff;padding:.5rem 1.05rem;border-radius:999px;margin-bottom:1rem}
.oc-badge .d{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.9);flex:none}
.oc-result h2{margin-bottom:.5rem}
.oc-facts{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:.15rem 1.15rem;margin:1.5rem 0}
.oc-facts .fi{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem;color:#4a536a;border-top:1px solid var(--line);padding:.8rem 0}
.oc-facts .fi:first-child{border-top:none}
.oc-facts .fi b{font-family:'Fraunces';color:var(--navy);white-space:nowrap}
.oc-result .btn{width:100%;justify-content:center}
.oc-note{margin-top:1.1rem;font-size:.73rem;color:#8a91a0;line-height:1.55}
.oc-input-wrap{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:14px;background:var(--white);max-width:300px;transition:.2s;margin-bottom:1.6rem}
.oc-input-wrap:focus-within{border-color:var(--navy);box-shadow:0 0 0 4px rgba(46,63,92,.08)}
.oc-input{flex:1;min-width:0;border:none;background:none;font-family:'Montserrat';font-weight:600;font-size:1.15rem;color:var(--ink);padding:.9rem 1.1rem}
.oc-input:focus{outline:none}
.oc-input-unit{padding:0 1.1rem;font-size:.9rem;color:#6a7080;white-space:nowrap}

/* ---------- Anfrage-Flow (Fragebogen + Kalkulator) ---------- */
.flow-overlay{position:fixed;inset:0;z-index:200;background:var(--paper);display:none;flex-direction:column;overflow-y:auto}
.flow-overlay.open{display:flex}
body.flow-lock{overflow:hidden}
.flow-close{position:absolute;top:1.1rem;right:1.2rem;z-index:6;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--white);color:var(--navy);font-size:1rem;cursor:pointer;display:grid;place-items:center;transition:.3s}
.flow-close:hover{background:var(--navy);color:var(--paper);border-color:var(--navy);transform:rotate(90deg)}
.flow-progress-wrap{position:sticky;top:0;z-index:4;background:rgba(248,248,246,.92);backdrop-filter:blur(10px);padding:1.5rem clamp(1.2rem,5vw,3rem) 1rem;border-bottom:1px solid var(--line)}
.flow-progress{height:8px;border-radius:999px;background:var(--sand-soft);overflow:hidden;max-width:600px;margin:0 auto}
.flow-progress span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--navy),#6b86b5);transition:width .55s cubic-bezier(.2,.8,.2,1)}
.flow-progress-label{max-width:600px;margin:.65rem auto 0;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);opacity:.55}
.flow-inner{flex:1;display:flex;justify-content:center;padding:2.4rem clamp(1.2rem,5vw,3rem) 4rem}
.flow-step{display:none;width:100%;max-width:600px}
.flow-step.active{display:block;animation:flowIn .5s cubic-bezier(.2,.8,.2,1)}
@keyframes flowIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.flow-eyebrow{font-family:'Montserrat';font-weight:600;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--navy);opacity:.6;display:inline-block;margin-bottom:.9rem}
.flow-h{font-size:clamp(1.6rem,3.8vw,2.4rem);margin-bottom:.6rem}
.flow-sub{color:#4a536a;font-size:1.05rem;margin-bottom:2rem;max-width:46ch}
.flow-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.6rem}
.flow-opt{text-align:left;font-family:'Montserrat';font-weight:500;font-size:1rem;padding:1.05rem 1.3rem;border-radius:16px;border:1.5px solid var(--line);background:var(--white);color:var(--ink);cursor:pointer;transition:.22s;display:flex;align-items:center;gap:.9rem;line-height:1.35}
.flow-opt:hover{border-color:var(--navy);transform:translateX(4px)}
.flow-opt .mark{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;transition:.22s}
.flow-options[data-multi] .flow-opt .mark{border-radius:7px}
.flow-opt .mark svg{width:13px;height:13px;stroke:var(--navy);stroke-width:3;fill:none;opacity:0;transition:.2s}
.flow-opt.sel{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.flow-opt.sel .mark{background:var(--sand);border-color:var(--sand)}
.flow-opt.sel .mark svg{opacity:1}
.flow-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem}
.flow-back{background:none;border:none;color:var(--navy);opacity:.55;font-family:'Montserrat';font-weight:600;font-size:.9rem;cursor:pointer;padding:.5rem 0;transition:.2s}
.flow-back:hover{opacity:1}
.flow-badge{display:inline-flex;align-items:center;gap:.5rem;font-family:'Montserrat';font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#1c7a4a;background:rgba(28,122,74,.1);padding:.5rem 1.05rem;border-radius:999px;margin-bottom:1.2rem}
.flow-badge.alt{color:var(--navy);background:var(--sand-soft)}
.flow-field{margin-bottom:1.1rem}
.flow-field label{display:block;font-weight:600;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin-bottom:.5rem;opacity:.7}
.flow-field input,.flow-field select{width:100%;font-family:'Montserrat';font-size:1rem;color:var(--ink);padding:.95rem 1.15rem;border-radius:14px;border:1.5px solid var(--line);background:var(--white);transition:.22s}
.flow-field input:focus,.flow-field select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(46,63,92,.08)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:560px){
  .flow-nav .btn{padding:.9rem 1.4rem;font-size:.8rem}
  .flow-inner{padding-top:1.5rem}
}

/* ---------- page-hero (Unterseiten-Titel) ---------- */
.page-hero{background:var(--paper);padding:9.5rem 0 3.2rem}
.page-hero .eyebrow{margin-bottom:.6rem}
.page-hero h1{font-family:'Fraunces';font-weight:900;font-size:clamp(2rem,4.4vw,3.1rem);color:var(--navy);margin:.5rem 0 .8rem;line-height:1.05}
.page-hero p{font-size:1.12rem;color:#4a536a;max-width:60ch}
@media(max-width:560px){.page-hero{padding:7.5rem 0 2.4rem}}

/* ---------- Cookie-Banner ---------- */
#cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:300;max-width:560px;margin-inline:auto;background:var(--navy);color:#e9ebf0;border-radius:18px;padding:1.3rem 1.5rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.5);font-size:.9rem;line-height:1.55}
#cookie-banner p{margin-bottom:1rem}
#cookie-banner a{color:var(--sand);text-decoration:underline}
#cookie-banner .cb-actions{display:flex;gap:.8rem;justify-content:flex-end;flex-wrap:wrap}
/* beide Buttons GLEICHWERTIG: identische Groesse, Farbe, Prominenz (kein Dark Pattern) */
#cookie-banner .cb-btn{font-family:'Montserrat';font-weight:600;font-size:.86rem;padding:.8rem 1rem;border-radius:999px;cursor:pointer;background:var(--sand);color:var(--navy-deep);border:1.5px solid var(--sand);transition:.2s;width:150px;text-align:center}
#cookie-banner .cb-btn:hover{filter:brightness(1.04);transform:translateY(-1px)}
@media(max-width:480px){#cookie-banner .cb-actions{justify-content:stretch}#cookie-banner .cb-btn{flex:1;width:auto}}
