:root{
  --bg:#f7f6f2;
  --surface:#ffffff;
  --sand:#efede6;
  --ink:#1d2a38;
  --muted:#5f6b78;
  --line:rgba(29,42,56,.12);
  --blue:#4f81b4;
  --blue-deep:#3c6c9e;
  --blue-soft:#e8eff7;
  --yellow:#f0c64c;
  --yellow-soft:#fbf1d2;
  --night:#152230;
  --night-2:#1e2f41;
  --brand-gradient:linear-gradient(90deg,var(--yellow),var(--blue));
  --radius:14px;
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"Inter",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:var(--sans);background:var(--bg);color:var(--muted);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--ink);letter-spacing:-.02em}
h1{font-size:clamp(46px,6.2vw,82px);line-height:1.02}
h2{font-size:clamp(36px,4.6vw,56px);line-height:1.08}
h3{font-size:27px;line-height:1.15}
.lead{font-size:clamp(17px,1.5vw,19px);color:var(--muted);max-width:600px}
.center{text-align:center}
.center .lead{margin-inline:auto}
.accent{font-style:italic;color:var(--blue)}
section{padding:110px 0}
.section-head{margin-bottom:56px}
.section-head h2{margin-bottom:16px}

.header{position:fixed;top:14px;left:0;right:0;z-index:100;padding:0 16px}
.header-nav{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 8px 8px 14px;border-radius:14px;background:rgba(255,255,255,.88);border:1px solid var(--line);box-shadow:0 10px 30px -18px rgba(29,42,56,.35);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center}
.brand img{height:54px;width:auto}
.nav-links{display:flex;gap:4px;font-size:15px;font-weight:500}
.nav-links a{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:9px;color:var(--muted);transition:color .2s,background .2s}
.nav-links a:hover{color:var(--ink);background:var(--sand)}
.nav-links a.active{color:var(--blue-deep);background:var(--blue-soft)}
.nav-links svg{flex:none;opacity:.75}
.nav-links a.active svg{opacity:1}
.menu-btn{display:none;width:42px;height:42px;border:0;background:none;cursor:pointer;border-radius:9px}
.menu-btn span{display:block;width:18px;height:1.5px;background:var(--ink);margin:5px auto;transition:.3s}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border-radius:10px;font-family:var(--sans);font-weight:600;font-size:15px;background:var(--blue);color:#fff;border:1px solid var(--blue);box-shadow:0 8px 20px -12px rgba(60,108,158,.8);transition:transform .25s,background .25s;cursor:pointer;white-space:nowrap}
.btn:hover{transform:translateY(-2px);background:var(--blue-deep)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:none}
.btn.ghost:hover{background:var(--sand)}
.btn.sm{padding:10px 18px;font-size:14px}
.btn svg{flex:none}

.hero{position:relative;padding:190px 0 90px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(520px 320px at 85% 10%,rgba(240,198,76,.18),transparent 70%),radial-gradient(560px 360px at 10% 0%,rgba(79,129,180,.12),transparent 70%);pointer-events:none;z-index:-1}
.hero.small{padding:170px 0 40px}
.hero.small h1{font-size:clamp(42px,5.6vw,68px);max-width:880px;margin:0 auto 22px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.center .hero-ctas{justify-content:center}
.hero.small .wrap{position:relative}
.hero.small .wrap::before{content:"";position:absolute;left:0;right:0;top:-60px;height:130px;background:url(images/deko-herzen.svg?v=4) left 10px top 10px/84px no-repeat,url(images/deko-sonne.svg?v=4) right 10px top 0/96px no-repeat;pointer-events:none;z-index:-1}

.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.hero-home h1{margin-bottom:26px;font-size:clamp(44px,5.2vw,74px)}
.hero-note{margin-top:22px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hero-panel{position:relative;border-radius:18px;border:1px solid var(--line);padding:64px 22px 30px;overflow:hidden;background:linear-gradient(rgba(29,42,56,.045) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(29,42,56,.045) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(150deg,var(--yellow-soft) 0%,#fff 45%,var(--blue-soft) 100%);box-shadow:0 30px 60px -40px rgba(29,42,56,.45)}
.hero-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--brand-gradient)}
.hero-art img{width:100%;height:auto}

.stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:80px;position:relative;overflow:hidden}
.stats::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--brand-gradient)}
.stats div{padding:34px 18px;text-align:center}
.stats div+div{border-left:1px solid var(--line)}
.stats b{display:block;font-family:var(--serif);font-weight:400;color:var(--ink);font-size:clamp(34px,3.8vw,46px);line-height:1.1;letter-spacing:-.02em}
.stats span{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}

.card{--pad:32px;background:var(--surface);border-radius:var(--radius);padding:var(--pad);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .35s,box-shadow .35s}
.card p{margin-top:10px}
a.card:hover{transform:translateY(-4px);box-shadow:0 26px 44px -30px rgba(29,42,56,.45)}
a.card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--brand-gradient);transform:scaleX(0);transform-origin:left;transition:transform .4s;z-index:1}
a.card:hover::before{transform:scaleX(1)}
.card .num{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:12px}
.card .num::after{content:"";width:32px;height:1px;background:var(--line)}
.card .more{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:var(--blue);font-size:15px;font-weight:600}
a.card:hover .more svg{transform:translateX(4px)}
.more svg{transition:transform .25s}
.icon{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;margin-bottom:24px;color:var(--blue);background:var(--blue-soft)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.glow::after{content:"";position:absolute;right:-100px;bottom:-120px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(240,198,76,.14),transparent 65%);pointer-events:none}
.card-art{height:150px;margin:calc(var(--pad)*-1) calc(var(--pad)*-1) 26px;display:grid;place-items:center;border-bottom:1px solid var(--line);background:linear-gradient(rgba(29,42,56,.045) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(29,42,56,.045) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(160deg,#fff 0%,var(--blue-soft) 100%)}
.card-art img{height:118px;width:auto;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
a.card:hover .card-art img{transform:translateY(-4px) scale(1.03)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split p+p{margin-top:16px}
.prose p{font-size:18px;color:var(--muted)}
.prose p+p{margin-top:18px}
.quote{font-family:var(--serif);font-size:clamp(30px,3.2vw,40px);line-height:1.2;color:var(--ink);letter-spacing:-.01em}
.quote-mark{color:var(--yellow)}

.checklist{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.checklist li{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px 20px;color:var(--ink)}
.checklist li::before{content:"";flex:none;width:22px;height:22px;margin-top:1px;border-radius:6px;background:var(--blue-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f81b4' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat}
.note{margin-top:28px;padding:20px 24px;border-radius:10px;border:1px dashed rgba(29,42,56,.25);background:var(--yellow-soft);color:var(--ink);display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}

.rows{display:flex;flex-direction:column}
.rows a,.rows div.r{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.rows a:hover b{color:var(--blue)}
.rows span{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rows b{color:var(--ink);font-weight:500;text-align:right;transition:color .2s}

.profile{display:flex;align-items:center;gap:18px}
.profile img{width:76px;height:76px;border-radius:12px;object-fit:cover;object-position:top;border:3px solid var(--yellow-soft)}
.profile b{display:block;font-family:var(--serif);font-weight:400;color:var(--ink);font-size:24px;line-height:1.2}
.profile span{font-size:14px}

form{display:flex;flex-direction:column;gap:14px}
label{font-size:14px;font-weight:500;color:var(--ink)}
input,textarea{width:100%;margin-top:6px;padding:14px 16px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:16px;font-weight:400;transition:border-color .2s,box-shadow .2s}
input:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(79,129,180,.18)}
textarea{min-height:140px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;color:var(--muted)}
.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--blue);flex:none;box-shadow:none}
.check a{color:var(--blue);text-decoration:underline}
.form-hint{font-size:13px}
.form-msg{display:none;padding:14px 16px;border-radius:10px;background:var(--blue-soft);color:var(--ink);font-size:15px}

.map{border-radius:var(--radius);overflow:hidden;background:var(--blue-soft);border:1px solid var(--line);aspect-ratio:16/9;display:grid;place-items:center;text-align:center;padding:24px;position:relative}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map p{max-width:380px;margin:10px auto 18px;font-size:14px}
.map p a{color:var(--blue)}

.legal h2{font-family:var(--sans);font-weight:600;font-size:19px;letter-spacing:-.01em;margin:40px 0 10px}
.legal p,.legal li{color:var(--muted)}
.legal p+p{margin-top:12px}
.legal ul{padding-left:20px;margin-top:8px}
.legal li+li{margin-top:6px}
.legal a{color:var(--blue);text-decoration:underline}

.dark{background:var(--night);color:#b9c4cf;position:relative;overflow:hidden}
.dark::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 15% 0%,rgba(79,129,180,.25),transparent 70%),radial-gradient(500px 280px at 90% 100%,rgba(240,198,76,.12),transparent 70%);pointer-events:none}
.dark .wrap{position:relative}
.dark h2,.dark h3{color:#fff}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:64px 0 56px}
.step{position:relative}
.step-n{width:58px;height:58px;margin:0 auto 26px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ink);font-family:var(--sans);font-weight:600;font-size:20px;position:relative;z-index:1}
.step-n.active{background:var(--blue);color:#fff;box-shadow:0 0 0 6px rgba(79,129,180,.25)}
.step:not(:last-child)::after{content:"";position:absolute;top:14px;left:calc(50% + 44px);width:calc(100% - 48px);height:30px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 30' preserveAspectRatio='none'%3E%3Cpath d='M0 6 C50 6 60 26 100 26 S150 6 200 6' fill='none' stroke='%23ffffff' stroke-opacity='.4' stroke-width='2' stroke-dasharray='6 6'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.step h3{margin-bottom:10px}
.step p{max-width:280px;margin:0 auto;font-size:15px}
.step a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35)}

.cta{padding:40px 0 110px}
.cta-box{position:relative;overflow:hidden;border-radius:18px;background:var(--night);color:#b9c4cf;padding:80px 30px;text-align:center}
.cta-box::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 260px at 20% 0%,rgba(79,129,180,.3),transparent 70%),radial-gradient(420px 240px at 85% 100%,rgba(240,198,76,.15),transparent 70%)}
.cta-box>*{position:relative}
.cta-box h2{color:#fff;max-width:640px;margin:0 auto 16px}
.cta-box .lead{color:#b9c4cf}
.cta-box .hero-ctas{justify-content:center}
.cta-box .btn.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.2)}
.cta-art{width:120px;height:auto;margin:0 auto 18px}

footer{background:var(--surface);border-top:1px solid var(--line);padding:56px 0 40px;font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.foot-grid .brand{margin-bottom:12px}
.foot-grid .brand img{height:72px}
.foot-grid h4{color:var(--ink);font-weight:600;font-size:15px;margin-bottom:14px}
.foot-grid ul{list-style:none}
.foot-grid li+li{margin-top:8px}
.foot-grid a:hover{color:var(--blue)}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);font-size:14px}
.foot-bottom button{background:none;border:0;color:inherit;font:inherit;cursor:pointer}
.foot-bottom button:hover,.foot-bottom a:hover{color:var(--blue)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

@media (min-width:821px){
  .nav-links svg{display:none}
}

@media (max-width:980px){
  .steps{grid-template-columns:1fr;gap:44px;max-width:420px;margin-inline:auto}
  .step:not(:last-child)::after{display:none}
}
@media (max-width:900px){
  .grid-3{grid-template-columns:1fr}
  .split,.hero-grid{grid-template-columns:1fr;gap:40px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  section{padding:80px 0}
  .menu-btn{display:block}
  .nav-links{position:absolute;top:72px;left:16px;right:16px;flex-direction:column;padding:10px;border-radius:14px;background:rgba(255,255,255,.98);border:1px solid var(--line);box-shadow:0 20px 40px -20px rgba(29,42,56,.4);opacity:0;pointer-events:none;transform:translateY(-8px);transition:.25s}
  .nav-links a{padding:13px 16px;font-size:17px}
  .header.open .nav-links{opacity:1;pointer-events:auto;transform:none}
  .header.open .menu-btn span:first-child{transform:translateY(3.25px) rotate(45deg)}
  .header.open .menu-btn span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
  .grid-2,.checklist{grid-template-columns:1fr}
  .hero{padding:140px 0 70px}
  .hero.small{padding:140px 0 30px}
  .hero.small .wrap::before{background-size:64px,70px;top:-30px}
}
@media (max-width:560px){
  .wrap{padding:0 18px}
  .stats{grid-template-columns:1fr}
  .stats div+div{border-left:0;border-top:1px solid var(--line)}
  .header-nav .btn{display:none}
  .foot-grid{grid-template-columns:1fr}
  .card{--pad:26px}
  .hero-panel{padding:16px}
  .cta-box{padding:60px 22px}
  .rows a,.rows div.r{flex-direction:column;align-items:flex-start;gap:4px}
  .rows b{text-align:left}
  .hero.small .wrap::before{opacity:.6}
}

@media print{
  body{background:#fff;color:#222;padding-left:0}
  .header,.menu-btn,.cta,.dark,.hero-ctas,.map,form,.foot-bottom button,.hero-panel,.hero.small .wrap::before{display:none!important}
  .hero,.hero.small{padding:20px 0}
  .hero::before,.glow::after{display:none}
  section{padding:24px 0}
  .card,.checklist li{box-shadow:none}
  .reveal{opacity:1;transform:none}
}
