/* ============================================================
   InsurScale 360 · Website v2
   ============================================================ */
html{scroll-behavior:smooth}
body{margin:0;background:#0B1424;-webkit-font-smoothing:antialiased;}
*{box-sizing:border-box}
a{color:#3BE0C9;text-decoration:none}
button{font-family:inherit}
img{max-width:100%}

@keyframes issheen{0%{transform:translateX(-120%)}55%,100%{transform:translateX(320%)}}
@keyframes isfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* ---------- Brand lockup ---------- */
.brand{display:flex;align-items:center;gap:12px;line-height:1}
.brand img{height:30px;width:auto;display:block}
.brand-sep{width:1px;height:28px;background:#D5DCE6}
.brand-word{font-family:Sora,sans-serif;font-weight:700;font-size:21px;letter-spacing:-0.03em;color:#16223A;white-space:nowrap}
.brand-word span{margin-left:.24em;font-weight:600;color:#14A091}
.brand-dark .brand-sep{background:#2A3A57}
.brand-dark .brand-word{color:#FFFFFF}
.brand-dark .brand-word span{color:#3BE0C9;background:linear-gradient(90deg,#1AB3A4,#4FE6D0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------- Hover states ---------- */
.h-navlink:hover{color:#0E1A2E !important}
.h-btn-dark{transition:background .2s, color .2s, transform .2s, box-shadow .2s}
.h-btn-dark:hover{background:#1ABCAD !important;color:#061019 !important;transform:translateY(-2px)}
.h-btn-outline:hover{border-color:#1ABCAD !important}
.h-btn-teal{transition:background .2s}
.h-btn-teal:hover{background:#3FD9C6 !important;color:#061019 !important}
.h-footlink:hover{color:#F2F6FA !important}
.h-cd-cta:hover{background:#1ABCAD !important;color:#061019 !important;transform:translateY(-2px);box-shadow:0 20px 40px -14px #1ABCAD99 !important}
.h-plan{transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s}
.h-plan:hover{transform:translateY(-10px) !important;box-shadow:0 60px 100px -40px #0E1A2E73, 0 16px 30px -18px #0E1A2E33, inset 0 1px 0 #FFFFFF !important}
.h-plan360:hover{transform:translateY(-22px) !important;box-shadow:0 70px 120px -40px #0B1424CC, 0 0 60px -10px #1ABCAD66, inset 0 1px 0 #FFFFFF1F !important}
.h-plan-cta{transition:background .2s,color .2s}
.h-plan-cta:hover{background:#0E1A2E !important;color:#F6F8FA !important}
.plan-btn{cursor:pointer;width:100%;font-family:inherit}
.plan-btn:disabled{opacity:.7;cursor:wait}

/* ---------- Hero: Überschrift + grüne Fläche, Mockup überlappt ---------- */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);grid-template-rows:auto auto;column-gap:clamp(32px,4vw,64px)}
.hero-h1{grid-column:1;grid-row:1;margin:0 0 clamp(28px,3.4vw,44px);font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:clamp(44px,6.2vw,88px);line-height:1;letter-spacing:-0.045em;color:#0E1A2E}
.hero-h1 span,.hero-h1 em{display:block}
.hero-h1 em{font-style:italic;font-weight:300;letter-spacing:-0.035em;color:#0F8F82;margin-top:.06em}
.hero-panel{grid-column:1 / -1;grid-row:2;position:relative;overflow:hidden;border-radius:32px;background:linear-gradient(135deg,#E3F6F2 0%,#CDEFE8 100%);border:1px solid #FFFFFFB3;box-shadow:inset 0 1px 0 #FFFFFF}
.hero-panel svg{position:absolute;inset:0;width:100%;height:100%}
@media (max-width:640px){ .hero-panel svg{display:none} }
.hero-copy{grid-column:1;grid-row:2;position:relative;z-index:1;display:flex;flex-direction:column;gap:26px;padding:clamp(28px,4vw,52px)}
.hero-copy p{color:#33415A !important}
.hero-mock{grid-column:2;grid-row:1 / 3;align-self:end;position:relative;z-index:2;margin:0 clamp(28px,3.5vw,56px) clamp(-56px,-3.5vw,-28px) 0}
@media (max-width:1023px){
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .hero-mock{grid-column:1;grid-row:3;align-self:auto;margin:28px 0 0}
}

/* ---------- Header ---------- */
.nav-desk{display:contents}
.nav-mob{display:none}
.mobile-menu{display:none}
.menu-open .mobile-menu{display:flex}
@media (max-width:899px){
  .nav-desk{display:none}
  .nav-mob{display:flex}
  .mock-side{display:none !important}
}
@media (min-width:900px){ .mobile-menu{display:none !important} }

/* ---------- Hebel (sticky scroll on large screens) ---------- */
.hebel-track{position:relative;height:300vh}
.hebel-pin{position:sticky;top:60px;min-height:calc(100vh - 60px);display:flex;align-items:center}
.hebel-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hebel-stage{height:min(40vw,52vh)}
.hebel-h2{font-size:clamp(40px,min(4.6vw,8vh),72px)}
.is-static .hebel-track{height:auto}
.is-static .hebel-pin{position:relative;top:0;min-height:0}
.is-static .hebel-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr))}
.is-static .hebel-stage{height:clamp(360px,46vw,560px)}
.is-static .hebel-h2{font-size:clamp(44px,6.2vw,84px)}
.hstep{cursor:pointer;background:none;border:none;border-top:1px solid #1A2843;padding:clamp(12px,2vh,20px) 0;text-align:left;color:#F2F6FA;display:flex;flex-direction:column;gap:10px;position:relative;width:100%}
.hstep-n{font-family:Sora,sans-serif;font-size:13px;font-weight:600;color:#56657D}
.hstep-t{font-family:Archivo,sans-serif;font-stretch:72%;font-weight:800;font-size:clamp(26px,2.6vw,34px);line-height:1.05;color:#56657D;transition:color .3s}
.hstep-d{display:none;font-size:16px;line-height:1.6;color:#9AAAC2;padding-left:34px;max-width:480px}
.hstep.active .hstep-n{color:#3BE0C9}
.hstep.active .hstep-t{color:#FFFFFF}
.hstep.active .hstep-d{display:block}
.face-num{display:none}
.face.is-num .face-logo{display:none}
.face.is-num .face-num{display:flex}

/* ---------- Apps (sticky card stack) ---------- */
.apps-track{position:relative;height:420vh}
.apps-media{height:min(64vh,600px)}
@media (max-width:899px){
  .apps-track{height:360vh}
  .apps-media{height:42vh}
}
.cat-dot{cursor:pointer;border:none;padding:0;width:6px;height:6px;border-radius:3px;background:#C3CCD8;transition:height .35s, background .35s}
.cat-dot.active{height:28px;background:#0E1A2E}
.cat-t{cursor:pointer;background:none;border:none;padding:0;text-align:left;font-family:Archivo,sans-serif;font-stretch:68%;font-weight:800;font-size:clamp(28px,4.4vw,58px);line-height:1.02;color:#A9B3C1;transition:color .35s}
.cat-t:hover,.cat.active .cat-t{color:#0E1A2E}
.cat-d{display:none;margin:0 0 10px;font-size:16px;line-height:1.6;color:#56657D;max-width:520px}
.cat.active .cat-d{display:block}

/* ---------- FAQ ---------- */
.faq-q{width:100%;cursor:pointer;background:none;border:none;font-family:Sora,sans-serif;text-align:left;color:#0E1A2E;font-size:clamp(16px,1.6vw,19px);font-weight:500;letter-spacing:-0.01em;padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq-ic{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid #E3E8EF;display:flex;align-items:center;justify-content:center;font-size:18px;color:#0F7F74;transition:transform .25s}
.faq-a{display:none;margin:0;padding:0 48px 24px 0;font-size:16px;line-height:1.65;color:#56657D}
.faq-item.open .faq-a{display:block}
.faq-item.open .faq-ic{transform:rotate(45deg)}

/* ---------- Toast ---------- */
.toast{display:none;position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:200;background:#0E1A2E;color:#F2F6FA;padding:15px 22px;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.3);align-items:center;gap:13px;font-size:14.5px;max-width:90vw;border:1px solid #1A2843}
.toast.show{display:flex}

/* ---------- Mobile ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:899px){
  /* Hero */
  .hero-ctas a{flex:1 1 100%;justify-content:center}
  .mock-frame{height:470px !important}
  .hero-badge{position:relative !important;left:auto !important;bottom:auto !important;margin-top:16px;width:fit-content}
  .hero-stats{grid-template-columns:1fr 1fr !important;row-gap:8px}

  /* Apps: nur aktive Kategorie zeigen, nachrückende Karten unter der Bühne abschneiden */
  #appsStack{clip-path:inset(-60px -60px 0 -60px)}
  .apps-media{height:min(42vh,380px)}
  #appsList .cat:not(.active){display:none}
  #appsList{min-height:170px}
  #appsList .cat-t{font-size:clamp(30px,8.5vw,40px)}

  /* Rechenbeispiel: statt Scroll-Animation drei Karten untereinander */
  #rolesTrack{height:auto !important}
  #rolesTrack > div{position:relative !important;top:0 !important;height:auto !important;overflow:visible !important;display:flex;flex-direction:column;gap:14px;padding:clamp(56px,14vw,80px) 20px}
  #rHead{position:relative !important;top:auto !important;opacity:1 !important;transform:none !important;padding:0 0 10px !important;order:0}
  #rSideL,#rSideR,#rCenter{position:relative !important;left:auto !important;top:auto !important;width:100% !important;height:250px !important;opacity:1 !important;border-radius:24px !important}
  #rSideL{order:1} #rCenter{order:2} #rSideR{order:3}
  #rCenterCont{opacity:1 !important}
  #rIntro{display:none}
  .r-row{display:flex !important}

  /* Footer */
  .foot-grid{grid-template-columns:1fr 1fr !important;gap:32px 20px !important}
  .foot-grid > div:first-child{grid-column:1 / -1}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important}
}
