:root{--ink:#16264a;--ink2:#24386a;--grey:#606c80;--line:#dde3ec;--acc:#2678be;--glow:#5fc6ef;--wa:#25d366;--bg:#ffffff;--soft:#f5f8fc;
--serif:"Palatino Linotype","Book Antiqua",Palatino,"P052","URW Palladio L",Georgia,serif;--sans:Arial,"Helvetica Neue",Helvetica,"Nimbus Sans",sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:17px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
.fields{position:fixed;inset:auto 0 0 0;height:60vh;pointer-events:none;z-index:0;opacity:.9}
.fields path{fill:none;stroke:var(--ink);stroke-width:1.4;opacity:.07;animation:drift 14s ease-in-out infinite alternate}
.fields path:nth-child(even){opacity:.045;animation-duration:18s}
@keyframes drift{to{transform:translateY(-14px)}}
main{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:0 22px}
/* Kopf */
.hero{min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 0 24px}
.logo{position:relative;width:min(440px,78vw);aspect-ratio:1100/847;margin-bottom:26px}
.logo img{width:100%;height:100%;display:block;clip-path:inset(0 100% 0 0);animation:wipe 1.8s cubic-bezier(.6,.05,.25,1) .25s forwards}
.logo::after{content:"";position:absolute;inset:0;-webkit-mask:url(assets/logo.png) center/contain no-repeat;mask:url(assets/logo.png) center/contain no-repeat;
background:linear-gradient(115deg,transparent 35%,rgba(95,198,239,.95) 48%,#fff 50%,rgba(95,198,239,.95) 52%,transparent 65%) no-repeat;background-size:300% 100%;background-position:120% 0;animation:shine 1.1s ease 2.1s forwards, shine 1.1s ease 9s forwards}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes shine{from{background-position:120% 0}to{background-position:-20% 0}}
.claim{font-family:var(--serif);font-style:italic;font-size:clamp(24px,4.4vw,34px);color:var(--ink);opacity:0;animation:up .8s ease 1.7s forwards}
.sub{color:var(--grey);margin-top:6px;letter-spacing:.14em;text-transform:uppercase;font-size:14px;opacity:0;animation:up .8s ease 1.95s forwards}
@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px;opacity:0;animation:up .8s ease 2.2s forwards}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font:700 17px/1 var(--sans);text-decoration:none;border:0;cursor:pointer;transition:transform .2s ease,box-shadow .3s ease,background .2s;white-space:nowrap}
.btn svg{width:21px;height:21px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:focus-visible{outline:3px solid var(--glow);outline-offset:3px}
.btn.ink{background:var(--ink);color:#fff;box-shadow:0 8px 26px rgba(38,120,190,.28),0 0 0 0 rgba(95,198,239,.0);animation:pulse 3.2s ease-in-out infinite}
.btn.ink:hover{box-shadow:0 10px 34px rgba(95,198,239,.55)}
@keyframes pulse{50%{box-shadow:0 8px 34px rgba(95,198,239,.55)}}
.btn.wa{background:var(--wa);color:#fff;box-shadow:0 8px 26px rgba(37,211,102,.35)}
.btn.wa:hover{box-shadow:0 10px 34px rgba(37,211,102,.6)}
.btn.line{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.btn.line:hover{box-shadow:inset 0 0 0 2px var(--acc),0 8px 24px rgba(38,120,190,.15)}
.scroll{margin-top:42px;color:var(--grey);font-size:14px;text-decoration:none;opacity:0;animation:up .8s ease 2.6s forwards}
.scroll span{display:block;margin:8px auto 0;width:2px;height:28px;background:linear-gradient(var(--acc),transparent);animation:drop 1.8s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* Abschnitte */
section{padding:72px 0}
h2{font-family:var(--serif);font-weight:700;font-size:clamp(30px,5vw,44px);line-height:1.15;text-align:center;margin-bottom:12px}
.lead{text-align:center;color:var(--grey);max-width:560px;margin:0 auto 40px}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
/* Karte */
.stage{perspective:1600px;display:flex;justify-content:center}
.card{position:relative;width:min(560px,90vw);aspect-ratio:900/525;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.5,.1,.2,1.15);cursor:pointer;border-radius:16px}
.card.flip{transform:rotateY(180deg)}
.card .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;box-shadow:0 26px 60px rgba(22,38,74,.16),0 4px 14px rgba(22,38,74,.08);overflow:hidden;background:#fff}
.card .face img{width:100%;height:100%;display:block}
.card .back{transform:rotateY(180deg)}
.card .face::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);background-size:250% 100%;background-position:150% 0;transition:background-position 1.1s ease}
.card.flip .face::after,.card:hover .face::after{background-position:-50% 0}
.hint{text-align:center;color:var(--grey);font-size:14px;margin-top:22px}
/* Leistungen */
.serv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:760px;margin:0 auto}
.serv div{display:flex;align-items:center;gap:16px;padding:22px 24px;border-radius:18px;background:var(--soft);font-weight:700;font-size:19px;transition:transform .3s,box-shadow .3s}
.serv div:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(22,38,74,.1)}
.chk{width:42px;height:42px;border-radius:50%;background:var(--ink);display:grid;place-items:center;flex:none;box-shadow:0 0 18px rgba(95,198,239,.55)}
.chk svg{width:22px;height:22px}
.motto{font-family:var(--serif);font-style:italic;color:var(--acc);text-align:center;font-size:clamp(22px,3.6vw,28px);margin-top:36px}
/* Weitergeben */
.share{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:44px;align-items:center;max-width:900px;margin:0 auto}
.phone{border-radius:30px;padding:10px;background:var(--ink);box-shadow:0 30px 70px rgba(22,38,74,.25),0 0 40px rgba(95,198,239,.25)}
.phone video{width:100%;display:block;border-radius:22px;background:#fff;aspect-ratio:9/16}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid .btn{justify-content:flex-start;width:100%;padding:16px 20px;font-size:16px}
.grid .btn.full{grid-column:1/-1;justify-content:center}
.qr{display:flex;align-items:center;gap:18px;margin-top:22px;padding:16px;border-radius:18px;background:var(--soft)}
.qr img{width:104px;height:104px;border-radius:10px;background:#fff;padding:6px}
.qr b{display:block;font-size:17px}
.qr small{color:var(--grey);font-size:14px}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,40px);background:var(--ink);color:#fff;padding:13px 22px;border-radius:999px;font-weight:700;font-size:15px;opacity:0;transition:.35s;z-index:9;box-shadow:0 10px 30px rgba(22,38,74,.3)}
.toast.on{opacity:1;transform:translate(-50%,0)}
/* Kontakt + Fuss */
.contact{text-align:center}
.contact .big{font:700 clamp(30px,6vw,46px)/1.1 var(--sans);text-decoration:none;display:inline-flex;align-items:center;gap:14px;padding:20px 36px;border-radius:999px;background:var(--ink);color:#fff;box-shadow:0 12px 40px rgba(95,198,239,.45);animation:pulse 3.2s ease-in-out infinite;margin:10px 0 18px}
.contact .big svg{width:34px;height:34px}
.contact p{color:var(--grey)}
footer{position:relative;z-index:1;text-align:center;padding:40px 22px 50px;color:var(--grey);font-size:14px}
footer a{margin:0 10px;text-decoration:none;color:var(--ink);font-weight:700}
footer a:hover{color:var(--acc)}
/* Rechtliches */
.legal{max-width:760px;margin:0 auto;padding:40px 22px 80px;position:relative;z-index:1}
.legal .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}
.legal .top img{width:150px}
.legal h1{font-family:var(--serif);font-size:40px;margin-bottom:24px}
.legal h3{margin:28px 0 8px;font-size:18px}
.legal p,.legal li{color:#2a3550;margin-bottom:10px}
.legal ul{padding-left:20px}
@media (max-width:760px){.share{grid-template-columns:1fr}.phone{max-width:280px;margin:0 auto}.serv{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.btn{padding:15px 22px}section{padding:56px 0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
