/* ==========================================================================
   Strivera UI - reusable design system
   Extracted 1:1 from the live strivera.de (Page/index.html inline <style>).
   Light theme. Instrument Sans (self-hosted, DSGVO). Blue->Teal gradient,
   WhatsApp-green CTA. Use this for preview pages and case studies so they
   match the real brand.

   NEVER use the obsolete dark prototype (bg #0B1220, accent #4F8CFF,
   mint #A6F0D6, "Inter Tight"). That is wrong branding.

   Class vocabulary follows the real source (.wrap, .sec, .rv, .nav__pill,
   .btn-wa, .grad, .hero, .aura). Convenience aliases requested for build
   agents (.container, .section, .reveal, .btn, .btn-ghost, .card, .stats,
   .quote, .frame, .meta-list, .tag) are defined further below and map onto
   the same tokens.
   ========================================================================== */

/* ============ Fonts (self-hosted, DSGVO) ============
   Font files live next to the consuming page under assets/fonts/.
   Drop in instrument-sans-latin.woff2 + instrument-sans-latin-ext.woff2,
   or adjust the src paths to point at the shared copy. */
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url("fonts/instrument-sans-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212;
}
@font-face{
  font-family:"Instrument Sans";
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url("fonts/instrument-sans-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02AF,U+0300-0301,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0;
}

/* ============ Tokens ============ */
:root{
  --bg:#F2F4F8;
  --card:#ffffff;
  --ink:#0B1220;        /* dark navy as TEXT only, never as page bg */
  --ink-2:#5C6678;
  --ink-3:#9AA3B2;
  --line:rgba(11,18,32,.07);
  --blue:#3B72E0;
  --teal:#1FA98C;
  --aura-blue:#DCEAFF;
  --aura-mint:#DFF7E8;
  --wa:#25D366;         /* WhatsApp green - primary CTA */
  --wa-deep:#1DAE54;
  --wa-bubble:#D9FDD3;
  --r-lg:22px;
  --r-md:16px;
  --maxw:1080px;
  --maxw-list:640px;
  --pad:clamp(18px,5vw,32px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow-card:0 1px 2px rgba(11,18,32,.04),0 12px 32px -16px rgba(11,18,32,.10);
  --shadow-cta:0 8px 22px -8px rgba(37,211,102,.55);
}

/* ============ Base / Reset ============ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.5;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:#D6E6FF;color:var(--ink)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--card);color:var(--ink);padding:10px 16px;border-radius:0 0 12px 0;
}
.skip-link:focus{left:0}

/* ============ Layout ============ */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.wrap--list{max-width:var(--maxw-list)}
.wrap--mid{max-width:880px}
.sec{padding-block:clamp(40px,7vw,88px)}
/* aliases */
.container{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.section{padding-block:clamp(40px,7vw,88px)}

/* ============ Headings / Type helpers ============ */
.kicker{
  font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 8px;
}
h2{
  font-size:clamp(25px,2vw + 16px,38px);font-weight:700;
  letter-spacing:-.03em;line-height:1.12;margin:0 0 8px;
}
.sub{color:var(--ink-2);font-size:clamp(14.5px,.5vw + 13px,16.5px);margin:0;line-height:1.55}
.center{text-align:center}

/* Gradient text blue->teal */
.grad{
  background:linear-gradient(92deg,var(--blue) 8%,var(--teal) 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ============ Reveal (scroll-in) ============
   Toggle .in (or .reveal.is-visible) via IntersectionObserver. */
.rv,.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in,.reveal.is-visible{opacity:1;transform:none}

/* ============ Pill-Nav ============ */
.nav{
  position:fixed;top:calc(10px + env(safe-area-inset-top));left:0;right:0;z-index:60;
  display:flex;justify-content:center;padding-inline:var(--pad);pointer-events:none;
}
.nav__pill{
  pointer-events:auto;
  display:flex;align-items:center;gap:16px;
  background:rgba(255,255,255,.78);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border:1px solid rgba(11,18,32,.06);
  box-shadow:0 8px 28px -12px rgba(11,18,32,.18);
  border-radius:99px;padding:7px 8px 7px 16px;
}
/* Logo wordmark: strivera<b>.</b> - dot in blue */
.nav__logo{font-size:15px;font-weight:700;letter-spacing:-.02em;text-decoration:none}
.nav__logo b{color:var(--blue)}
.nav__links{display:flex;align-items:center;gap:16px}
.nav__link{font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none}
.nav__link:hover{color:var(--ink)}
.nav__cta{
  font-size:13px;font-weight:600;color:#fff;background:var(--wa);
  padding:8px 15px;border-radius:99px;text-decoration:none;white-space:nowrap;
}
.nav__burger{display:none;width:34px;height:34px;border:0;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer;padding:0;flex:none}
.nav__burger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .25s ease}
.nav__pill.is-open .nav__burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav__pill.is-open .nav__burger span:nth-child(2){opacity:0}
.nav__pill.is-open .nav__burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:720px){
  .nav__pill{position:relative}
  .nav__burger{display:flex}
  .nav__links{
    position:absolute;top:calc(100% + 10px);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:2px;
    background:rgba(255,255,255,.94);
    -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
    border:1px solid rgba(11,18,32,.06);border-radius:18px;
    box-shadow:0 12px 32px -12px rgba(11,18,32,.22);
    padding:8px;
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
  }
  .nav__pill.is-open .nav__links{opacity:1;visibility:visible;transform:none}
  .nav__link{font-size:15px;padding:11px 14px;border-radius:11px}
  .nav__link:hover{background:rgba(11,18,32,.04)}
}

/* ============ Buttons ============ */
/* Primary CTA - WhatsApp green pill */
.btn-wa{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--wa);color:#fff;text-decoration:none;
  font-size:16px;font-weight:600;padding:15px 26px;border-radius:99px;
  box-shadow:var(--shadow-cta);
}
.btn-wa svg{width:20px;height:20px;flex-shrink:0}
@media (hover:hover) and (pointer:fine){
  .btn-wa{transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
  .btn-wa:hover{transform:translateY(-2px)}
}
/* Secondary - blue->teal gradient pill (mirrors .form__submit) */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(92deg,var(--blue) 8%,var(--teal) 92%);color:#fff;
  border:0;cursor:pointer;font:inherit;font-size:15.5px;font-weight:600;text-decoration:none;
  padding:14px 22px;border-radius:99px;
  box-shadow:0 8px 22px -8px rgba(59,114,224,.5);
}
@media (hover:hover) and (pointer:fine){
  .btn{transition:transform .25s var(--ease)}
  .btn:hover{transform:translateY(-2px)}
}
/* Ghost - outlined pill on the light bg */
.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--card);color:var(--ink);
  border:1px solid var(--line);cursor:pointer;font:inherit;font-size:15.5px;font-weight:600;text-decoration:none;
  padding:13px 22px;border-radius:99px;box-shadow:var(--shadow-card);
}
@media (hover:hover) and (pointer:fine){
  .btn-ghost{transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
  .btn-ghost:hover{transform:translateY(-2px)}
}
/* secondary CTA line under a button */
.alt-cta{margin:14px 0 0;font-size:13px;color:var(--ink-2)}
.alt-cta a,.alt-cta span{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* ============ Hero ============ */
.hero{
  position:relative;overflow:hidden;
  padding:calc(92px + env(safe-area-inset-top)) var(--pad) clamp(36px,6vw,72px);
  text-align:center;
}
.aura{
  position:absolute;left:50%;top:-38%;
  width:min(1100px,170vw);aspect-ratio:1.3;
  transform:translateX(-50%);
  background:
    radial-gradient(closest-side at 38% 42%,var(--aura-blue) 0%,rgba(220,234,255,0) 72%),
    radial-gradient(closest-side at 64% 56%,var(--aura-mint) 0%,rgba(223,247,232,0) 70%);
  filter:blur(60px);opacity:.85;
  pointer-events:none;z-index:-1;
  animation:breathe 14s ease-in-out infinite alternate;
}
@keyframes breathe{
  from{transform:translateX(-52%) scale(1)}
  to{transform:translateX(-48%) scale(1.06)}
}
.hero__in{max-width:740px;margin:0 auto}
.hero__meta{font-size:13px;font-weight:600;color:var(--ink-3);margin:0 0 14px}
.hero h1{
  font-size:clamp(33px,3.6vw + 17px,62px);font-weight:700;
  letter-spacing:-.035em;line-height:1.06;margin:0 0 14px;
}
.hero__sub{
  font-size:clamp(15.5px,.6vw + 13px,18.5px);color:var(--ink-2);line-height:1.55;
  margin:0 auto 24px;max-width:540px;
}
.hero__pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:580px;margin:26px auto 0}

/* ============ Pills / Tags ============ */
.pill{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--card);border-radius:99px;box-shadow:var(--shadow-card);
  padding:10px 16px;font-size:14px;font-weight:600;letter-spacing:-.01em;
}
.pill__star{color:#F5A623;font-size:15px}
.pill__check{color:var(--wa-deep);font-size:14px}
/* small inline label tag (e.g. tech / service chips) */
.tag{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--card);border-radius:99px;box-shadow:var(--shadow-card);
  padding:7px 14px;font-size:13px;font-weight:600;color:var(--ink-2);
}
@media (max-width:480px){
  .hero__pills{gap:8px}
  .pill{font-size:12px;padding:8px 11px;gap:6px}
  .pill__star{font-size:13px}
  .pill__check{font-size:12px}
}

/* ============ Card + grid helpers ============ */
.card{
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:24px;
}
.card--md{border-radius:var(--r-md)}
.grid{display:grid;gap:14px}
@media (min-width:720px){
  .grid--2{grid-template-columns:1fr 1fr;gap:18px}
}
@media (min-width:760px){
  .grid--3{grid-template-columns:1fr 1fr 1fr;gap:18px}
}

/* service card (icon + title + copy) */
.svc{display:grid;gap:14px;margin-top:28px}
@media (min-width:720px){.svc{grid-template-columns:1fr 1fr;gap:18px}}
.svc__card{
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:24px 24px 26px;
}
.svc__ico{
  width:42px;height:42px;border-radius:13px;margin-bottom:14px;
  background:linear-gradient(145deg,var(--aura-blue),var(--aura-mint));
  display:flex;align-items:center;justify-content:center;color:var(--blue);
}
.svc__ico svg{width:21px;height:21px}
.svc__card h3{font-size:17.5px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.svc__card p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.55}

/* ============ Steps (numbered process) ============ */
.steps{display:grid;gap:14px;margin-top:28px}
@media (min-width:760px){.steps{grid-template-columns:1fr 1fr 1fr;gap:18px}}
.step{
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:24px;position:relative;
}
.step__num{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;margin-bottom:14px;
  background:linear-gradient(145deg,var(--blue),var(--teal));color:#fff;
  font-size:15px;font-weight:700;
}
.step h3{font-size:17px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.step p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.55}

/* ============ Case study: KPI stats ============ */
.stats{
  display:grid;gap:14px;margin-top:28px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.stat{
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:24px;text-align:center;
}
.stat b{
  display:block;font-size:clamp(30px,2vw + 20px,44px);font-weight:700;
  letter-spacing:-.04em;line-height:1;
  background:linear-gradient(92deg,var(--blue) 8%,var(--teal) 92%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.stat span{display:block;margin-top:8px;font-size:13px;font-weight:600;color:var(--ink-2);line-height:1.4}

/* ============ Case study: testimonial / pull quote ============ */
.quote{
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:clamp(24px,3vw,40px);
}
.quote__stars{font-size:13px;color:#FF9F0A;letter-spacing:2px;margin-bottom:12px}
.quote p{
  font-size:clamp(18px,1.2vw + 14px,26px);font-weight:600;letter-spacing:-.01em;
  line-height:1.4;margin:0 0 16px;
}
.quote p em{font-style:normal;color:var(--blue)}
.quote cite{font-style:normal}
.quote cite b{display:block;font-size:13.5px;font-weight:700;color:var(--ink)}
.quote cite span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px}

/* ============ Case study: screenshot frame ============ */
.frame{
  border-radius:24px;overflow:hidden;background:var(--card);
  box-shadow:var(--shadow-card),0 0 0 1px var(--line);
  padding:7px;
}
.frame img{border-radius:18px;width:100%;height:auto;display:block}
@media (hover:hover) and (pointer:fine){
  .frame{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
  a:hover>.frame,.frame--hover:hover{transform:translateY(-4px);box-shadow:0 24px 48px -20px rgba(11,18,32,.22),0 0 0 1px var(--line)}
}

/* ============ Case study: meta list (Branche / Ort / Leistungen) ============ */
.meta-list{
  list-style:none;margin:0;padding:0;
  background:var(--card);border-radius:var(--r-md);box-shadow:var(--shadow-card);
  overflow:hidden;
}
.meta-list li{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:14px 18px;font-size:14px;
}
.meta-list li + li{border-top:1px solid var(--line)}
.meta-list dt,.meta-list .meta-list__k{
  font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-3);flex:none;
}
.meta-list dd,.meta-list .meta-list__v{
  margin:0;font-size:14px;font-weight:600;color:var(--ink);text-align:right;
}

/* ============ Forms ============ */
.form{
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:24px;display:flex;flex-direction:column;gap:14px;
}
.form__lbl{display:block;font-size:13px;font-weight:600;color:var(--ink-2)}
.form__inp{
  width:100%;margin-top:6px;padding:12px 14px;
  font:inherit;font-size:16px;color:var(--ink);
  background:var(--bg);border:1px solid var(--line);border-radius:12px;
  -webkit-appearance:none;appearance:none;
}
textarea.form__inp{min-height:96px;resize:vertical}
.form__inp:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:transparent}
.form__inp[aria-invalid="true"]{border-color:#D6453C}
.form__submit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(92deg,var(--blue) 8%,var(--teal) 92%);color:#fff;
  border:0;cursor:pointer;font:inherit;font-size:15.5px;font-weight:600;
  padding:14px 22px;border-radius:99px;
  box-shadow:0 8px 22px -8px rgba(59,114,224,.5);
}
@media (hover:hover) and (pointer:fine){
  .form__submit{transition:transform .25s var(--ease)}
  .form__submit:hover{transform:translateY(-2px)}
}
.form__legal{margin:0;font-size:12px;color:var(--ink-3);line-height:1.5}
.form__legal a{color:var(--ink-2)}

/* ============ FAQ ============ */
.faq{background:var(--card);border-radius:var(--r-md);box-shadow:var(--shadow-card);overflow:hidden;margin-top:22px}
.faq__item + .faq__item{border-top:1px solid var(--line)}
.faq__q{
  width:100%;background:none;border:0;font:inherit;color:inherit;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:16px 18px;font-size:15px;font-weight:600;text-align:left;letter-spacing:-.01em;
}
.faq__icon{color:var(--ink-3);font-size:19px;flex-shrink:0;line-height:1;transition:transform .25s var(--ease),color .25s var(--ease)}
.faq__item.open .faq__icon{transform:rotate(45deg);color:var(--blue)}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s var(--ease)}
.faq__item.open .faq__a{grid-template-rows:1fr}
.faq__a>div{overflow:hidden}
.faq__a p{font-size:14px;color:var(--ink-2);line-height:1.6;margin:0;padding:0 18px 16px}

/* ============ Footer ============ */
.footer{padding:0 0 36px;color:var(--ink-3);font-size:12.5px}
.footer .wrap,.footer .container{
  display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px 18px;
  border-top:1px solid var(--line);padding-top:20px;
}
.footer a{text-decoration:none}
.footer a:hover{color:var(--ink)}
.footer__legal{display:flex;flex-wrap:wrap;gap:8px 14px}
.footer__legal button{
  font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;
}
.footer__legal button:hover{color:var(--ink)}

/* ============ Reduced Motion ============ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv,.reveal{opacity:1;transform:none;transition:none}
  .faq__a,.faq__icon{transition:none}
  .btn-wa,.btn-wa:hover,.btn,.btn:hover,.btn-ghost,.form__submit{transition:none;transform:none}
  .aura{animation:none}
}
