/* ============================================================
   EXORA MEDIA — Design System v2
   Vibe Archetype:  Ethereal Glass (AI / Tech / SaaS)
   Layout Archetype: Editorial Split (hero) + Asymmetrical Bento (grids)
   Farben: #0B0B0B (Grund), #1D4ED8 (Sekundär/Blau), #3B82F6 (Akzent)
   Typo: Plus Jakarta Sans (geometric grotesk)
   ============================================================ */

:root{
  --c-bg:            #0B0B0B;
  --c-bg-alt:        #0F1013;
  --c-surface:       #131417;
  --c-surface-2:     #16181c;
  --c-border:        rgba(255,255,255,0.07);
  --c-border-strong: rgba(255,255,255,0.13);
  --c-text:          #FFFFFF;
  --c-text-dim:      #AEB2C0;
  --c-text-faint:    #6E7284;
  --c-blue-deep:     #1D4ED8;
  --c-blue:          #3B82F6;
  --c-blue-light:    #7CB2FF;
  --c-blue-glow:     rgba(59,130,246,0.45);
  --c-violet:        #8B5CF6;
  --c-violet-deep:   #7C3AED;
  --c-violet-light:  #C4B5FD;
  --c-violet-glow:   rgba(139,92,246,0.45);

  --grad-brand: linear-gradient(135deg,#7C3AED 0%,#8B5CF6 38%,#3B82F6 100%);
  --grad-text:  linear-gradient(90deg,#FFFFFF 0%,#E4D9FF 42%,#9DC2FF 100%);

  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --radius-xl: 36px;

  --shadow-glow: 0 0 0 1px rgba(59,130,246,0.14), 0 30px 80px -30px rgba(29,78,216,0.5);
  --shadow-card: inset 0 1px 0 rgba(255,255,255,0.05), inset 0 0 0 1px rgba(255,255,255,0.03), 0 30px 70px -36px rgba(0,0,0,0.85);
  --shadow-soft: 0 40px 90px -50px rgba(0,0,0,0.9), 0 2px 0 rgba(255,255,255,0.03) inset;

  /* Motion tokens — real-world mass & spring-like curves, never linear/ease-in-out defaults */
  --ease-out-quint:   cubic-bezier(.23,1,.32,1);
  --ease-out-cubic:   cubic-bezier(.33,1,.68,1);
  --ease-in-out-soft: cubic-bezier(.645,.045,.355,1);
  --ease-spring:      cubic-bezier(.32,.72,0,1);
  --ease: var(--ease-out-quint);

  --container: 1200px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--c-bg);
  color:var(--c-text);
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}

/* Fixed grain overlay — pointer-events-none, never on scrolling containers */
.grain{
  position:fixed; inset:0; z-index:2; pointer-events:none; opacity:0.025; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Ambient animated background — transform/opacity only (GPU-safe) */
.ambient{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.ambient span{ position:absolute; border-radius:50%; filter:blur(100px); opacity:0.32; will-change:transform; }
.ambient .a1{ width:560px;height:560px; background:radial-gradient(circle,#7C3AED,transparent 70%); top:-180px; left:-140px; animation:drift1 28s var(--ease-in-out-soft) infinite; }
.ambient .a2{ width:500px;height:500px; background:radial-gradient(circle,#3B82F6,transparent 70%); bottom:-200px; right:-120px; animation:drift2 32s var(--ease-in-out-soft) infinite; }
.ambient .a3{ width:380px;height:380px; background:radial-gradient(circle,#A78BFA,transparent 70%); top:38%; left:58%; opacity:0.16; animation:drift3 36s var(--ease-in-out-soft) infinite; }

@keyframes drift1{ 0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(70px,90px,0)} }
@keyframes drift2{ 0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(-80px,-60px,0)} }
@keyframes drift3{ 0%,100%{transform:translate3d(0,0,0) scale(1)} 50%{transform:translate3d(-50px,70px,0) scale(1.15)} }

.wrap{ max-width:var(--container); margin:0 auto; padding:0 24px; position:relative; z-index:1; }

h1,h2,h3,h4{ font-family:'Plus Jakarta Sans',sans-serif; margin:0; letter-spacing:-0.025em; font-weight:700; }
h1{ font-size:clamp(2.6rem,5.8vw,4.8rem); line-height:1.03; letter-spacing:-0.035em; font-weight:800; }
h2{ font-size:clamp(2rem,3.6vw,3rem); line-height:1.12; font-weight:700; }
h3{ font-size:1.32rem; line-height:1.3; font-weight:600; }
p{ margin:0; color:var(--c-text-dim); }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }

.text-grad{ background:var(--grad-text); -webkit-background-clip:text; background-clip:text; color:transparent; }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:0.72rem; font-weight:600; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--c-blue-light);
  background:rgba(59,130,246,0.07);
  border:1px solid rgba(59,130,246,0.22);
  padding:8px 16px; border-radius:999px;
}
.eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--c-blue-light); box-shadow:0 0 10px var(--c-blue-light); }

.section{ padding:150px 0; position:relative; }
.section-head{ max-width:680px; margin-bottom:64px; }
.section-head p{ margin-top:18px; font-size:1.1rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------- Buttons: pills, button-in-button trailing icon, press physics ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:8px 8px 8px 26px;
  border-radius:999px; font-weight:600; font-size:0.98rem; cursor:pointer;
  border:1px solid transparent;
  transition:transform 420ms var(--ease-spring), box-shadow 420ms var(--ease-spring), background 420ms var(--ease-out-quint), border-color 420ms var(--ease-out-quint);
  white-space:nowrap; position:relative; will-change:transform;
}
.btn:not(:has(.btn-icon-wrap)){ padding:15px 28px; }
.btn:active{ transform:scale(.97); }
.btn-primary{ background:var(--grad-brand); color:#fff; box-shadow:0 10px 30px -10px var(--c-violet-glow), 0 18px 46px -18px var(--c-blue-glow); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 40px -10px rgba(139,92,246,0.55), 0 26px 60px -16px rgba(59,130,246,0.5); }
.btn-ghost{ background:rgba(255,255,255,0.025); border-color:var(--c-border-strong); color:var(--c-text); backdrop-filter:blur(14px); padding:15px 28px; }
.btn-ghost:hover{ background:rgba(255,255,255,0.06); transform:translateY(-2px); border-color:rgba(255,255,255,0.28); }
.btn-block{ width:100%; padding:16px 28px !important; white-space:normal; line-height:1.3; text-align:center; }
.btn svg{ width:16px;height:16px; }

/* Button-in-button trailing icon */
.btn-icon-wrap{
  width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,0.16);
  display:flex; align-items:center; justify-content:center;
  transition:transform 420ms var(--ease-spring), background 300ms var(--ease-out-quint);
}
.btn:hover .btn-icon-wrap{ transform:translate(3px,-1px) scale(1.06); background:rgba(255,255,255,0.26); }
.btn-icon-wrap svg{ width:15px;height:15px; }

/* ---------- Glass / double-bezel surface ---------- */
.glass{
  background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.012));
  border:1px solid var(--c-border);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
  box-shadow:var(--shadow-card);
  position:relative;
}
/* Concentric hairline — approximates the nested "shell + core" bezel without extra DOM */
.glass::before{
  content:""; position:absolute; inset:6px; border-radius:calc(var(--radius-lg) - 10px);
  border:1px solid rgba(255,255,255,0.045);
  pointer-events:none;
}

/* ---------- Header: fluid island ---------- */
.site-header{ position:sticky; top:0; z-index:50; padding:20px 0; }
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 18px;
  background:rgba(11,11,11,0.6);
  border:1px solid var(--c-border);
  border-radius:999px;
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  box-shadow:0 20px 50px -30px rgba(0,0,0,0.85), inset 0 1px 0 rgba(255,255,255,0.05);
}

.logo{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:1.05rem; letter-spacing:-0.02em; }
.logo .mark{
  width:40px;height:40px;border-radius:50%;
  overflow:hidden; flex-shrink:0;
  box-shadow:0 6px 20px -4px rgba(139,92,246,0.45);
}
.logo .mark img{ width:100%; height:100%; object-fit:cover; display:block; }

.nav-links{ display:flex; align-items:center; gap:4px; }
.nav-links a{ padding:10px 16px; border-radius:999px; font-size:0.93rem; color:var(--c-text-dim); transition:color 300ms var(--ease-out-quint), background 300ms var(--ease-out-quint); }
.nav-links a:hover, .nav-links a.active{ color:#fff; background:rgba(255,255,255,0.055); }

.header-actions{ display:flex; align-items:center; gap:10px; }

/* Hamburger → morphs into X */
.burger{
  display:none; width:42px;height:42px;border-radius:12px; position:relative; z-index:70;
  align-items:center;justify-content:center; background:rgba(255,255,255,0.045);
  border:1px solid var(--c-border-strong); cursor:pointer; flex-shrink:0;
}
.burger .bar{
  position:absolute; width:18px; height:1.6px; background:#fff; border-radius:2px;
  transition:transform 480ms var(--ease-spring), opacity 250ms var(--ease-out-quint), width 300ms var(--ease-out-quint);
}
.burger .bar:nth-child(1){ transform:translateY(-6px); }
.burger .bar:nth-child(2){ transform:translateY(0); }
.burger .bar:nth-child(3){ transform:translateY(6px); }
.burger.open .bar:nth-child(1){ transform:translateY(0) rotate(45deg); }
.burger.open .bar:nth-child(2){ opacity:0; width:0; }
.burger.open .bar:nth-child(3){ transform:translateY(0) rotate(-45deg); }

/* Mobile nav — fullscreen glass overlay with staggered mask reveal */
.mobile-nav{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  position:fixed; inset:0; z-index:60;
  background:rgba(6,6,8,0.86);
  backdrop-filter:blur(34px); -webkit-backdrop-filter:blur(34px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity 420ms var(--ease-out-quint), visibility 0s linear 420ms;
}
.mobile-nav.open{ opacity:1; visibility:visible; pointer-events:auto; transition:opacity 420ms var(--ease-out-quint); }
.mobile-nav a{
  font-size:1.7rem; font-weight:600; padding:14px 22px; color:var(--c-text-dim); letter-spacing:-0.02em;
  opacity:0; transform:translateY(3rem); filter:blur(6px);
  transition:opacity 560ms var(--ease-out-quint), transform 560ms var(--ease-spring), filter 560ms var(--ease-out-quint), color 250ms;
}
.mobile-nav.open a{ opacity:1; transform:translateY(0); filter:blur(0); }
.mobile-nav.open a:nth-child(1){ transition-delay:80ms; }
.mobile-nav.open a:nth-child(2){ transition-delay:140ms; }
.mobile-nav.open a:nth-child(3){ transition-delay:200ms; }
.mobile-nav.open a:nth-child(4){ transition-delay:260ms; }
.mobile-nav.open a:nth-child(5){ transition-delay:320ms; }
.mobile-nav a:hover{ color:#fff; }
.mobile-nav-close{
  position:absolute; top:28px; right:28px; width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.06); border:1px solid var(--c-border-strong);
  display:flex;align-items:center;justify-content:center; cursor:pointer;
}
.mobile-nav-close svg{ width:16px;height:16px; }

/* ---------- Hero — Editorial Split with Z-axis depth cascade on the right ---------- */
.hero{ padding:80px 0 60px; }
.hero .wrap{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center; }
.hero-copy h1{ margin-bottom:24px; }
.hero-copy p.lead{ font-size:1.2rem; max-width:520px; margin-bottom:40px; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px; }
.hero-proof{ display:flex; gap:30px; flex-wrap:wrap; }
.hero-proof div{ display:flex; flex-direction:column; gap:2px; }
.hero-proof strong{ font-size:1.55rem; font-weight:700; }
.hero-proof span{ font-size:0.82rem; color:var(--c-text-faint); }

.hero-visual{ position:relative; height:540px; perspective:1000px; }
.hv-card{ position:absolute; border-radius:var(--radius-md); animation:float 7.5s var(--ease-in-out-soft) infinite; will-change:transform; }
.hv-main{ inset:44px 6px 64px 26px; padding:26px; animation:float 8.5s var(--ease-in-out-soft) infinite; transform:rotate(-1.2deg); }
.hv-chip{ top:0; right:6px; width:196px; padding:18px; animation-delay:.5s; transform:rotate(2deg); }
.hv-chip2{ bottom:16px; left:-14px; width:174px; padding:16px; animation-delay:1.2s; transform:rotate(-2.4deg); }
.hv-orb{
  position:absolute; width:230px;height:230px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(196,181,253,0.5), rgba(59,130,246,0.08) 55%, transparent 75%);
  filter:blur(8px); top:8%; right:-6%; z-index:0; animation:pulse 6.5s var(--ease-in-out-soft) infinite; will-change:transform,opacity;
}
@keyframes float{ 0%,100%{transform:translate3d(0,0,0) rotate(var(--r,0deg))} 50%{transform:translate3d(0,-16px,0) rotate(var(--r,0deg))} }
@keyframes pulse{ 0%,100%{opacity:0.5; transform:scale(1)} 50%{opacity:0.85; transform:scale(1.08)} }

.hv-label{ font-size:0.72rem; color:var(--c-text-faint); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:6px; }
.hv-value{ font-size:1.75rem; font-weight:700; }
.hv-delta{ display:inline-flex; align-items:center; gap:4px; color:#4ADE80; font-size:0.8rem; font-weight:600; margin-top:6px; }
.hv-bars{ display:flex; align-items:flex-end; gap:8px; height:110px; margin-top:20px; }
.hv-bars i{ flex:1; height:100%; border-radius:7px 7px 0 0; background:linear-gradient(180deg,#8FC2FF,#1D4ED8); opacity:0.9; transform:scaleY(0.05); transform-origin:bottom; will-change:transform; }
.hv-avatars{ display:flex; margin-top:14px; }
.hv-avatars span{ width:26px;height:26px;border-radius:50%; background:var(--grad-brand); border:2px solid #0B0B0B; margin-left:-8px; }
.hv-avatars span:first-child{ margin-left:0; }

/* ---------- Trust strip ---------- */
.trust-strip{ padding:36px 0; border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); overflow:hidden; }
.trust-strip .wrap{ display:flex; align-items:center; gap:16px; }
.trust-strip .label{ font-size:0.76rem; color:var(--c-text-faint); text-transform:uppercase; letter-spacing:0.12em; white-space:nowrap; }
.trust-track{ display:flex; gap:56px; overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.trust-move{ display:flex; gap:56px; animation:marquee 28s linear infinite; will-change:transform; }
.trust-move span{ font-weight:700; font-size:1.05rem; color:var(--c-text-faint); white-space:nowrap; letter-spacing:-0.01em; }
@keyframes marquee{ from{transform:translate3d(0,0,0)} to{transform:translate3d(-50%,0,0)} }

/* ---------- Bento grid ---------- */
.grid{ display:grid; gap:24px; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.bento{ grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(180px,auto); }
.bento .b-wide{ grid-column:span 2; }
.bento .b-tall{ grid-row:span 2; }

.card{ padding:32px; transition:transform 420ms var(--ease-spring), border-color 420ms var(--ease-out-quint), background 420ms var(--ease-out-quint); }
.card:hover{ transform:translateY(-6px); border-color:rgba(59,130,246,0.3); background:linear-gradient(180deg, rgba(59,130,246,0.06), rgba(255,255,255,0.012)); }
.card .icon{
  width:50px;height:50px;border-radius:15px;
  background:linear-gradient(145deg, rgba(59,130,246,0.16), rgba(29,78,216,0.05));
  border:1px solid rgba(59,130,246,0.22);
  display:flex;align-items:center;justify-content:center; margin-bottom:22px;
}
.card .icon svg{ width:21px;height:21px; stroke:var(--c-blue-light); stroke-width:1.3; }
.icon svg{ stroke-width:1.3; }
.card h3{ margin-bottom:10px; }
.card p{ font-size:0.96rem; }

/* ---------- Split / why-us ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.why-list{ display:flex; flex-direction:column; gap:24px; margin-top:34px; }
.why-item{ display:flex; gap:18px; }
.why-item .num{ font-weight:700; font-size:0.85rem; color:var(--c-blue-light); width:38px;height:38px; border-radius:12px; background:rgba(59,130,246,0.09); border:1px solid rgba(59,130,246,0.22); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.why-item h3{ font-size:1.08rem; margin-bottom:6px; }
.why-item p{ font-size:0.95rem; }

.why-visual{ position:relative; height:460px; }
.why-panel{ position:absolute; padding:28px; }
.wp1{ inset:0 44px 96px 0; transform:rotate(-1deg); }
.wp2{ bottom:0; right:0; width:236px; padding:22px; transform:rotate(2deg); }
.ring{ width:124px;height:124px;border-radius:50%; background:conic-gradient(var(--c-blue) 0% 78%, rgba(255,255,255,0.07) 78% 100%); display:flex;align-items:center;justify-content:center; margin:0 auto 18px; }
.ring span{ width:92px;height:92px;border-radius:50%;background:#0d0e11;display:flex;align-items:center;justify-content:center; font-weight:700; font-size:1.4rem; }

/* ---------- Stats ---------- */
.stats{ padding:76px 0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--c-border); border:1px solid var(--c-border); border-radius:var(--radius-lg); overflow:hidden; }
.stat{ background:var(--c-bg); padding:42px 26px; text-align:center; transition:background 400ms var(--ease-out-quint); }
.stat:hover{ background:#0f1115; }
.stat strong{ display:block; font-size:clamp(2.1rem,3.6vw,2.9rem); font-weight:700; background:var(--grad-text); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat span{ display:block; margin-top:8px; font-size:0.88rem; color:var(--c-text-faint); }

/* ---------- Testimonials ---------- */
.testi-track{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.testi{ padding:32px; display:flex; flex-direction:column; gap:20px; }
.testi .stars{ display:flex; gap:3px; color:#3B82F6; letter-spacing:2px; }
.testi p.quote{ color:var(--c-text); font-size:1rem; line-height:1.65; }
.testi-person{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.testi-avatar{ width:44px;height:44px;border-radius:50%; background:var(--grad-brand); display:flex;align-items:center;justify-content:center; font-weight:700; }
.testi-person strong{ display:block; font-size:0.92rem; }
.testi-person span{ font-size:0.8rem; color:var(--c-text-faint); }

/* ---------- Services ---------- */
.service-card{ padding:34px; display:flex; flex-direction:column; height:100%; }
.service-card .icon{ margin-bottom:24px; }
.service-card p.desc{ font-size:0.94rem; margin-top:6px; margin-bottom:20px; }
.service-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.service-tags span{ font-size:0.76rem; padding:6px 12px; border-radius:999px; background:rgba(255,255,255,0.04); border:1px solid var(--c-border-strong); color:var(--c-text-dim); }

/* ---------- Process ---------- */
.process-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative; }
.process-row::before{ content:""; position:absolute; top:40px; left:6%; right:6%; height:1px; background:linear-gradient(90deg, transparent, rgba(59,130,246,0.35), transparent); }
.process-step{ position:relative; padding:30px 24px; text-align:left; }
.process-step .step-num{
  width:46px;height:46px;border-radius:13px; background:var(--grad-brand); color:#fff;
  display:flex;align-items:center;justify-content:center; font-weight:700; margin-bottom:22px;
  box-shadow:0 10px 24px -8px var(--c-violet-glow), 0 16px 34px -14px var(--c-blue-glow);
}
.process-step h3{ font-size:1.06rem; margin-bottom:8px; }
.process-step p{ font-size:0.92rem; }

/* ---------- FAQ ---------- */
.faq-list{ display:flex; flex-direction:column; gap:14px; max-width:820px; margin:0 auto; }
.faq-q{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 28px; cursor:pointer; user-select:none; }
.faq-q h3{ font-size:1rem; font-weight:600; }
.faq-q .plus{ width:28px;height:28px;border-radius:9px; background:rgba(59,130,246,0.1); border:1px solid rgba(59,130,246,0.26); display:flex;align-items:center;justify-content:center; flex-shrink:0; position:relative; transition:transform 420ms var(--ease-spring); }
.faq-q .plus::before,.faq-q .plus::after{ content:""; position:absolute; background:var(--c-blue-light); transition:transform 380ms var(--ease-spring); }
.faq-q .plus::before{ width:11px;height:1.6px; }
.faq-q .plus::after{ width:1.6px;height:11px; }
.faq-item.open .plus{ transform:rotate(90deg); }
.faq-item.open .plus::after{ transform:scaleY(0); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height 460ms var(--ease-out-quint); }
.faq-a-inner{ padding:0 28px 26px; font-size:0.95rem; color:var(--c-text-dim); }
.faq-item.open .faq-a{ max-height:400px; }

/* ---------- Contact ---------- */
.contact-wrap{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:48px; }
.contact-info{ padding:38px; height:fit-content; }
.contact-info .item{ display:flex; gap:14px; padding:17px 0; border-top:1px solid var(--c-border); }
.contact-info .item:first-of-type{ border-top:none; }
.contact-info .icon{ width:40px;height:40px;flex-shrink:0; }
.contact-info h4{ font-size:0.95rem; margin-bottom:3px; }
.contact-info p{ font-size:0.9rem; }

form.contact-form{ padding:40px; display:grid; gap:19px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:19px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:0.85rem; color:var(--c-text-dim); font-weight:500; }
.field input, .field textarea{
  background:rgba(255,255,255,0.025); border:1px solid var(--c-border-strong); border-radius:14px;
  padding:14px 16px; color:#fff; font-family:inherit; font-size:0.95rem;
  transition:border-color 280ms var(--ease-out-quint), background 280ms var(--ease-out-quint), box-shadow 280ms var(--ease-out-quint);
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--c-blue); background:rgba(255,255,255,0.045); box-shadow:0 0 0 4px rgba(59,130,246,0.14); }
.field textarea{ resize:vertical; min-height:120px; }
.consent{ display:flex; gap:10px; align-items:flex-start; font-size:0.83rem; color:var(--c-text-faint); }
.consent input{ margin-top:3px; }
.consent a{ color:var(--c-blue-light); text-decoration:underline; }
.form-note{ font-size:0.8rem; color:var(--c-text-faint); text-align:center; }
.form-success{ display:none; padding:16px; border-radius:14px; background:rgba(74,222,128,0.1); border:1px solid rgba(74,222,128,0.3); color:#4ADE80; font-size:0.9rem; text-align:center; }
.form-success.show{ display:block; animation:pop-in 500ms var(--ease-spring); }
@keyframes pop-in{ from{opacity:0; transform:translateY(8px) scale(.97)} to{opacity:1; transform:translateY(0) scale(1)} }

/* ---------- CTA band ---------- */
.cta-band{ padding:100px 0; }
.cta-box{ padding:70px 50px; text-align:center; position:relative; overflow:hidden; }
.cta-box::before{ content:""; position:absolute; inset:-40%; background:radial-gradient(circle at 30% 20%, rgba(59,130,246,0.26), transparent 60%); pointer-events:none; }
.cta-box h2{ margin-bottom:18px; }
.cta-box p{ max-width:520px; margin:0 auto 34px; font-size:1.06rem; }
.cta-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }

/* ---------- Footer ---------- */
.site-footer{ padding:90px 0 32px; border-top:1px solid var(--c-border); margin-top:64px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:44px; margin-bottom:64px; }
.footer-brand p{ font-size:0.92rem; margin-top:15px; max-width:280px; }
.footer-socials{ display:flex; gap:10px; margin-top:24px; }
.footer-socials a{ width:38px;height:38px;border-radius:11px; background:rgba(255,255,255,0.035); border:1px solid var(--c-border-strong); display:flex;align-items:center;justify-content:center; transition:background 300ms var(--ease-out-quint), border-color 300ms var(--ease-out-quint), transform 300ms var(--ease-spring); }
.footer-socials a:hover{ background:rgba(59,130,246,0.15); border-color:rgba(59,130,246,0.4); transform:translateY(-2px); }
.footer-socials svg{ width:16px;height:16px; stroke-width:1.4; }
.footer-col h4{ font-size:0.83rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--c-text-faint); margin-bottom:20px; }
.footer-col ul{ display:flex; flex-direction:column; gap:13px; }
.footer-col a{ font-size:0.92rem; color:var(--c-text-dim); transition:color 250ms; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:30px; border-top:1px solid var(--c-border); font-size:0.82rem; color:var(--c-text-faint); flex-wrap:wrap; gap:14px; }

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed; left:20px; right:20px; bottom:20px; z-index:100; max-width:560px; margin:0 auto;
  padding:26px; display:none; opacity:0; transform:translateY(24px) scale(0.98);
  transition:opacity 500ms var(--ease-out-quint), transform 500ms var(--ease-spring);
}
.cookie-banner.show{ display:block; }
.cookie-banner.in{ opacity:1; transform:translateY(0) scale(1); }
.cookie-banner p{ font-size:0.88rem; margin-bottom:18px; }
.cookie-banner .btns{ display:flex; gap:10px; flex-wrap:wrap; }
.cookie-banner .btn{ padding:11px 18px !important; font-size:0.86rem; }

/* ---------- Page hero (inner pages) ---------- */
.page-hero{ padding:76px 0 44px; text-align:center; }
.page-hero .eyebrow{ margin-bottom:22px; }
.page-hero p{ max-width:620px; margin:20px auto 0; font-size:1.06rem; }
.breadcrumb{ font-size:0.82rem; color:var(--c-text-faint); margin-bottom:20px; }
.breadcrumb a{ color:var(--c-text-dim); }
.breadcrumb a:hover{ color:#fff; }

/* ---------- Legal pages ---------- */
.legal{ padding:64px 0 130px; }
.legal-content{ max-width:760px; margin:0 auto; }
.legal-content h2{ font-size:1.5rem; margin-top:46px; margin-bottom:15px; }
.legal-content h2:first-child{ margin-top:0; }
.legal-content h3{ font-size:1.1rem; margin-top:26px; margin-bottom:11px; }
.legal-content p{ font-size:0.96rem; margin-bottom:15px; }
.legal-content ul{ margin-bottom:15px; padding-left:20px; list-style:disc; }
.legal-content li{ font-size:0.96rem; color:var(--c-text-dim); margin-bottom:8px; }
.legal-content a{ color:var(--c-blue-light); text-decoration:underline; }

/* ---------- Reveal on scroll — heavy fade-up with blur resolve (IntersectionObserver-driven) ---------- */
.reveal{ opacity:0; transform:translateY(34px); filter:blur(6px); transition:opacity 900ms var(--ease-out-quint), transform 900ms var(--ease-spring), filter 900ms var(--ease-out-quint); will-change:transform,opacity; }
.reveal.in{ opacity:1; transform:translateY(0); filter:blur(0); }

/* ---------- Focus states ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{ outline:2px solid var(--c-blue-light); outline-offset:3px; border-radius:8px; }

/* ============================================================
   Responsive — asymmetric layouts collapse to single column
   ============================================================ */
@media (max-width:1024px){
  .grid-4,.bento{ grid-template-columns:repeat(2,1fr); }
  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .bento .b-wide{ grid-column:span 2; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .hero .wrap{ grid-template-columns:minmax(0,1fr); }
  .hero-visual{ height:440px; }
  .split{ grid-template-columns:minmax(0,1fr); }
  .why-visual{ height:360px; }
  .contact-wrap{ grid-template-columns:minmax(0,1fr); }
  .process-row{ grid-template-columns:repeat(2,1fr); gap:18px; }
  .process-row::before{ display:none; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .testi-track{ grid-template-columns:1fr; }
}

@media (max-width:720px){
  html,body{ overflow-x:hidden; max-width:100vw; }
  .wrap{ overflow-x:hidden; }
  .nav-links{ display:none; }
  .burger{ display:flex; }
  .header-actions .btn-primary{ display:none; }
  .section{ padding:96px 0; }
  .grid-3,.grid-4,.grid-2,.bento{ grid-template-columns:minmax(0,1fr); }
  .bento .b-wide{ grid-column:span 1; }
  .form-row{ grid-template-columns:minmax(0,1fr); }
  .footer-grid{ grid-template-columns:1fr; gap:34px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .cta-box{ padding:48px 26px; }
  .hero-proof{ gap:22px; }
  .hero{ padding:44px 0 20px; }
  .site-header{ padding:14px 0; }
  .stats-grid{ grid-template-columns:1fr 1fr; }

  .process-row{ grid-template-columns:minmax(0,1fr); gap:14px; }
  .process-step{ padding:24px 22px; }
  .process-step .step-num{ width:40px; height:40px; margin-bottom:16px; font-size:0.95rem; }
  .process-step h3{ font-size:1rem; }
  .process-step p{ font-size:0.9rem; }

  /* Floating card collages don't translate well to narrow screens —
     drop the absolute positioning/rotation and stack them safely instead. */
  .hero-visual{
    height:auto; display:flex; flex-direction:column; gap:14px;
    perspective:none; margin-top:8px;
  }
  .hv-card{
    position:static !important; inset:auto !important; width:100% !important;
    transform:none !important; animation:none !important;
  }
  .hv-orb{ display:none; }

  .why-visual{
    height:auto; display:flex; flex-direction:column; gap:14px;
  }
  .why-panel{
    position:static !important; inset:auto !important; width:100% !important;
    transform:none !important;
  }
}

