/* Michael Ruppel – Bewertungen & Links (Design wie michaelruppel.de) */
@font-face{font-family:"Fraunces";src:url("fonts/fraunces.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("fonts/fraunces-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Jakarta";src:url("fonts/jakarta.woff2") format("woff2");font-weight:200 800;font-display:swap}
:root{--cream:#FBF6EE;--paper:#FFFDF9;--sand:#F3E9D8;--navy:#14263F;--ink:#1B2533;--muted:#5B6574;--gold:#C08A4B;--gold-text:#8E5F2C;--gold-soft:#E9CFA8;--line:#E5D9C5;--ok:#3E7C5A;
  --shadow:0 2px 6px rgba(20,38,63,.05),0 18px 40px -14px rgba(20,38,63,.18);--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 "Jakarta",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:8px}
svg{width:20px;height:20px;flex:none}
[hidden]{display:none!important}

.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.6;animation:drift 20s ease-in-out infinite alternate}
.b1{width:520px;height:520px;background:#F2D7B2;right:-200px;top:-160px}
.b2{width:460px;height:460px;background:#F6E2D2;left:-220px;top:45%;animation-duration:24s}
.b3{width:320px;height:320px;background:#E3EAF3;right:-80px;bottom:-120px;animation-duration:28s}
@keyframes drift{to{transform:translate(40px,30px) scale(1.08)}}

.topbar{position:relative;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 16px}
.share{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,253,249,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--navy);display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 0 var(--line);transition:background .3s}
.share svg{width:18px;height:18px}
.share.copied{background:var(--navy);color:#fff}
.lang{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;background:rgba(243,233,216,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:4px;font:700 13px/1 "Jakarta";letter-spacing:.05em}
.lang button{position:relative;z-index:1;border:0;background:none;padding:8px 11px;cursor:pointer;color:var(--muted);font:inherit;border-radius:999px;transition:color .3s}
.lang button[aria-pressed="true"]{color:#fff}
.lang .pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:var(--navy);border-radius:999px;transition:transform .45s var(--ease)}
.lang[data-active="en"] .pill{transform:translateX(100%)}

.wrap{max-width:560px;margin:0 auto;padding:0 16px 40px}

/* Profil */
.profile{text-align:center;padding:4px 0 34px}
.avatar{width:124px;height:124px;margin:0 auto 20px;border-radius:50%;padding:4px;background:conic-gradient(from 200deg,var(--gold),var(--gold-soft),var(--gold));box-shadow:0 20px 40px -18px rgba(20,38,63,.45)}
.avatar picture,.avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--cream)}
h1{font:430 38px/1.05 "Fraunces",serif;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.02em;color:var(--navy);margin:0}
.role{margin:10px 0 0;font:700 12.5px/1.3 "Jakarta";letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.bio{margin:12px auto 0;max-width:400px;color:var(--muted);font-size:15px}
.socials{display:flex;justify-content:center;gap:10px;margin-top:20px}
.socials a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);color:var(--navy);transition:transform .35s var(--ease),background .3s,color .3s}
.socials a:hover{transform:translateY(-3px);background:var(--navy);color:#fff}

.wa-btn{display:flex;align-items:center;justify-content:center;gap:10px;max-width:360px;margin:20px auto 0;padding:15px 22px;border-radius:999px;background:var(--navy);color:#fff;font:600 16px/1 "Jakarta";text-decoration:none;box-shadow:0 14px 30px -14px rgba(20,38,63,.55);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.wa-btn svg{width:21px;height:21px;color:#5BD982}
.wa-btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(20,38,63,.6)}

/* Blöcke */
.block{background:rgba(255,253,249,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:26px;padding:26px 20px;box-shadow:var(--shadow);margin-bottom:18px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 12px/1 "Jakarta";letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text)}
.eyebrow::before{content:"";width:22px;height:1.5px;background:currentColor;opacity:.7}
h2{font:430 30px/1.1 "Fraunces",serif;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.015em;color:var(--navy);margin:12px 0 10px}
h2 em,h3 em{font-style:italic;color:var(--gold);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.lead{margin:0 0 18px;color:var(--muted);font-size:15.5px}

.progress{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:13.5px;color:var(--muted)}
.progress .bar{flex:1;height:6px;border-radius:6px;background:var(--sand);overflow:hidden}
.progress .bar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));transition:width .8s var(--ease)}
.progress b{color:var(--navy)}

.reviews,.links{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.review,.link{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.review:hover,.link:hover{transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(20,38,63,.4);border-color:var(--gold-soft)}
.review:active,.link:active{transform:scale(.985)}
.txt{flex:1;min-width:0;display:flex;flex-direction:column}
.txt b{font-size:16px;color:var(--navy);line-height:1.3}
.txt small{font-size:13px;color:var(--muted);line-height:1.35}
.go{width:18px;height:18px;color:var(--gold-text);opacity:.7;transition:transform .35s var(--ease)}
.review:hover .go,.link:hover .go{transform:translate(2px,-2px);opacity:1}
.num{position:relative;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--gold-soft);display:grid;place-items:center;font:500 17px "Fraunces",serif;color:var(--navy);flex:none;transition:background .4s,border-color .4s,color .4s}
.num svg{position:absolute;width:18px;height:18px;opacity:0;transform:scale(.4);transition:all .4s var(--ease)}
.review.done .num{background:var(--navy);border-color:var(--navy);color:#fff}
.review.done .num span{opacity:0}
.review.done .num svg{opacity:1;transform:none}
.stars{display:flex;gap:1px;color:var(--gold)}
.stars svg{width:12px;height:12px}
.tip{margin:14px 2px 0;font-size:13.5px;color:var(--muted)}
.tip b{color:var(--navy);font-weight:600}

/* Melden */
.notify{margin-top:22px;border-radius:22px;padding:22px 18px;background:linear-gradient(135deg,#F5E3C8 0%,#EFD1B6 60%,#E9C3A8 100%);position:relative;overflow:hidden}
.notify::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:1.5px solid rgba(20,38,63,.1);right:-110px;top:-120px;pointer-events:none}
.notify-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px;position:relative;z-index:1}
.notify .ic{width:44px;height:44px;border-radius:14px;background:var(--navy);color:var(--gold-soft);display:grid;place-items:center;flex:none}
.notify h3,.thanks h3{font:500 22px/1.15 "Fraunces",serif;color:var(--navy);margin:2px 0 6px}
.notify p{margin:0;color:#5a4a3a;font-size:14.5px}
.btn{position:relative;z-index:1;width:100%;display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:16px 22px;border-radius:999px;border:0;background:var(--navy);color:#fff;font:600 16px/1 "Jakarta";cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),opacity .3s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(20,38,63,.5)}
.btn-gold{background:var(--gold)}
.btn[disabled]{opacity:.6;cursor:wait;transform:none}

.form{position:relative;z-index:1;display:grid;gap:12px;margin-top:4px;animation:in .5s var(--ease)}
@keyframes in{from{opacity:0;transform:translateY(10px)}}
.f{display:grid;gap:6px;font-size:13.5px;font-weight:600;color:var(--navy);border:0;margin:0;padding:0;min-width:0}
.f i{font-style:normal;font-weight:500;color:#7a6a5a}
.f input,.f textarea{width:100%;font:500 16px "Jakarta";color:var(--navy);background:rgba(255,253,249,.92);border:1.5px solid rgba(20,38,63,.12);border-radius:14px;padding:13px 14px;outline:none;transition:border-color .2s,background .2s;resize:vertical}
.f input:focus,.f textarea:focus{border-color:var(--gold);background:#fff}
.f input.invalid{border-color:#B5523F}
legend{padding:0;margin-bottom:6px}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.checks label{display:flex;align-items:center;gap:8px;background:rgba(255,253,249,.85);border:1.5px solid rgba(20,38,63,.1);border-radius:12px;padding:10px 12px;font-weight:500;cursor:pointer;font-size:13.5px;transition:border-color .2s}
.checks label:has(input:checked){border-color:var(--navy)}
.checks input,.consent input{accent-color:var(--navy);width:17px;height:17px;flex:none;margin:0}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#5a4a3a;line-height:1.5}
.consent input{margin-top:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{margin:0;color:#9F3A2A;font-size:14px;font-weight:600}
.thanks{position:relative;z-index:1;text-align:center;padding:10px 0 4px;animation:in .6s var(--ease)}
.ok{width:58px;height:58px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;margin:0 auto 12px;box-shadow:0 0 0 8px rgba(20,38,63,.08)}
.ok svg{width:26px;height:26px}
.thanks p{color:#5a4a3a}

/* Links */
.links{margin-top:14px}
.link .ic{width:40px;height:40px;border-radius:12px;background:var(--sand);color:var(--gold-text);display:grid;place-items:center;flex:none;transition:background .3s,color .3s}
.link:hover .ic{background:var(--navy);color:var(--gold-soft)}

.foot{text-align:center;padding:26px 0 10px;color:var(--muted)}
.foot img{width:54px;height:54px;margin:0 auto 12px;opacity:.9}
.foot nav{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:13.5px;margin-bottom:8px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--navy)}
.foot small{font-size:12.5px}

.up{opacity:0;transform:translateY(16px);animation:upk .9s var(--ease) forwards}
.d1{animation-delay:.12s}.d2{animation-delay:.24s}
@keyframes upk{to{opacity:1;transform:none}}

@media (min-width:600px){
  .wrap{padding-top:10px}
  .block{padding:32px 30px}
  h1{font-size:44px}
  h2{font-size:34px}
}
@media (max-width:440px){.stars{display:none}}
@media (max-width:360px){.checks{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.up{opacity:1;transform:none}}
