/* ─────────────────────────────────────────
   addvanto.ch 2026 — Shared Stylesheet
   ───────────────────────────────────────── */

/* ── Fonts ── */
@font-face { font-family:"FS Lucas Pro"; font-weight:300; font-style:normal; font-display:swap;
  src:url(../fonts/FSLucasPro-Light.woff2) format("woff2"); }
@font-face { font-family:"FS Lucas Pro"; font-weight:400; font-style:normal; font-display:swap;
  src:url(../fonts/FSLucasPro-Regular.woff2) format("woff2"); }
@font-face { font-family:"FS Lucas Pro"; font-weight:500; font-style:normal; font-display:swap;
  src:url(../fonts/FSLucasPro-Med.woff2) format("woff2"); }
@font-face { font-family:"FS Lucas Pro"; font-weight:700; font-style:normal; font-display:swap;
  src:url(../fonts/FSLucasPro-Bold.woff2) format("woff2"); }
@font-face { font-family:"FS Lucas Pro"; font-weight:800; font-style:normal; font-display:swap;
  src:url(../fonts/FSLucasPro-XtraBd.woff2) format("woff2"); }
@font-face { font-family:"FS Lucas Pro"; font-weight:900; font-style:normal; font-display:swap;
  src:url(../fonts/FSLucasPro-Black.woff2) format("woff2"); }

/* ── Tokens ── */
:root {
  --bg:       #111D27;
  --bg2:      #172A34;
  --bg3:      #1C3A45;
  --lime:     #EFFF6B;
  --violet:   #00F4FF;
  --violet-2: #7CFBFF;
  --violet-bg: rgba(0,244,255,0.12);
  --white:    #ffffff;
  --muted:    rgba(255,255,255,0.78);
  --faint:    rgba(255,255,255,0.10);
  --border:   rgba(255,255,255,0.13);
  --font:     "FS Lucas Pro", sans-serif;
  --max:      1280px;
  --desktop-content-max: 1280px;
  --pad:      80px;
  --rad:      10px;
  --section-space: 40px;
  /* ── Font Scale (Santiago 2026-04-15) ── */
  --fs-xs:   12px;   /* tags, labels */
  --fs-sm:   14px;   /* captions, meta */
  --fs-base: 16px;   /* body text, CTAs, links, nav */
  --fs-title: 32px;  /* h2 section titles */
}

/* ── Reset ── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:96px; -webkit-font-smoothing:antialiased; background:#111D27; }
::selection { background: var(--violet); color: #fff; }
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--violet); }

body { background:transparent; color:var(--white); font-family:var(--font); font-weight:400; overflow-x:hidden; }

/* ── Ambient gradient background ── */
body {
  position:relative;
  isolation:isolate;
}
.ambient-bg {
  position:fixed;
  inset:0;
  z-index:-2;
  overflow:hidden;
  pointer-events:none;
  perspective:900px;
  transform-style:preserve-3d;
  background:
    radial-gradient(circle at 68% 32%, rgba(0,201,203,0.42), transparent 34%),
    radial-gradient(circle at 38% 48%, rgba(0,78,190,0.35), transparent 32%),
    linear-gradient(115deg, #101C27 0%, #102034 32%, #12344A 58%, #0F2B2A 100%);
}
.ambient-bg::before {
  content:"";
  position:absolute;
  inset:-20%;
  background:
    radial-gradient(circle at 72% 30%, rgba(0,204,190,0.36), transparent 28%),
    radial-gradient(circle at 36% 48%, rgba(0,50,178,0.40), transparent 30%),
    radial-gradient(circle at 58% 22%, rgba(0,151,204,0.20), transparent 36%),
    radial-gradient(circle at 86% 82%, rgba(19,98,70,0.18), transparent 34%);
  filter:blur(58px) saturate(1.24);
  opacity:0.88;
  animation:ambientBgDrift 18s cubic-bezier(0.45,0,0.55,1) infinite alternate;
}
.ambient-bg::after {
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(17,29,39,0.04), rgba(17,29,39,0.48) 86%),
    radial-gradient(circle at 66% 38%, transparent 0%, rgba(0,0,0,0.28) 100%);
}
.bg-bubble {
  position:absolute;
  display:block;
  border-radius:32% 68% 56% 44% / 46% 34% 66% 54%;
  background:linear-gradient(135deg, rgba(0,198,196,0.24), rgba(0,59,172,0.22) 58%, rgba(17,29,39,0.12));
  filter:blur(34px);
  opacity:0.62;
  transform:translate3d(0,0,0) rotateX(0deg) rotateY(0deg);
  will-change:transform, border-radius, opacity, filter;
  animation:ambientBubbleRoamA 54s cubic-bezier(0.45,0,0.55,1) infinite;
}
.bg-bubble:nth-child(1) { width:390px; height:390px; left:-90px; top:10vh; animation-duration:54s; }
.bg-bubble:nth-child(2) { width:540px; height:540px; right:-190px; top:12vh; background:linear-gradient(135deg, rgba(0,190,178,0.28), rgba(0,66,174,0.16)); filter:blur(54px); opacity:0.40; animation-name:ambientBubbleRoamB; animation-duration:68s; animation-delay:-17s; }
.bg-bubble:nth-child(3) { width:420px; height:420px; left:62%; top:54vh; background:linear-gradient(135deg, rgba(0,151,204,0.14), rgba(17,29,39,0.12)); filter:blur(50px); opacity:0.36; animation-name:ambientBubbleRoamC; animation-duration:61s; animation-delay:-31s; }
@keyframes ambientBgDrift {
  0% { transform:translate3d(-5%, -3%, 0) scale(1); }
  45% { transform:translate3d(4%, -1%, 0) scale(1.08); }
  100% { transform:translate3d(6%, 5%, 0) scale(1.12); }
}
@keyframes ambientBubbleRoamA {
  0%   { transform:translate3d(-8vw, -4vh, -120px) rotateX(8deg) rotateY(-16deg) rotateZ(-6deg) scale(0.88); opacity:0.44; filter:blur(42px); border-radius:32% 68% 56% 44% / 46% 34% 66% 54%; }
  13%  { transform:translate3d(18vw, 22vh, 90px) rotateX(-14deg) rotateY(18deg) rotateZ(5deg) scale(1.12); opacity:0.66; filter:blur(30px); border-radius:54% 46% 64% 36% / 38% 58% 42% 62%; }
  27%  { transform:translate3d(55vw, -10vh, -40px) rotateX(16deg) rotateY(10deg) rotateZ(13deg) scale(1.02); opacity:0.52; filter:blur(38px); border-radius:62% 38% 42% 58% / 38% 58% 42% 62%; }
  42%  { transform:translate3d(76vw, 36vh, 150px) rotateX(-10deg) rotateY(-22deg) rotateZ(-4deg) scale(1.18); opacity:0.72; filter:blur(26px); border-radius:42% 58% 66% 34% / 60% 38% 62% 40%; }
  59%  { transform:translate3d(28vw, 72vh, -90px) rotateX(20deg) rotateY(14deg) rotateZ(-12deg) scale(0.94); opacity:0.48; filter:blur(48px); border-radius:34% 66% 62% 38% / 58% 36% 64% 42%; }
  77%  { transform:translate3d(4vw, 38vh, 70px) rotateX(-18deg) rotateY(-8deg) rotateZ(8deg) scale(1.08); opacity:0.62; filter:blur(34px); border-radius:64% 36% 44% 56% / 36% 52% 48% 64%; }
  100% { transform:translate3d(-8vw, -4vh, -120px) rotateX(8deg) rotateY(-16deg) rotateZ(-6deg) scale(0.88); opacity:0.44; filter:blur(42px); border-radius:32% 68% 56% 44% / 46% 34% 66% 54%; }
}
@keyframes ambientBubbleRoamB {
  0%   { transform:translate3d(10vw, -10vh, 110px) rotateX(-10deg) rotateY(20deg) rotateZ(8deg) scale(1.12); opacity:0.46; filter:blur(42px); border-radius:58% 42% 36% 64% / 42% 64% 36% 58%; }
  15%  { transform:translate3d(-18vw, 28vh, -80px) rotateX(14deg) rotateY(-18deg) rotateZ(-4deg) scale(0.92); opacity:0.34; filter:blur(58px); border-radius:42% 58% 66% 34% / 60% 38% 62% 40%; }
  31%  { transform:translate3d(-58vw, 4vh, 70px) rotateX(-18deg) rotateY(8deg) rotateZ(-10deg) scale(1.04); opacity:0.48; filter:blur(48px); border-radius:34% 66% 62% 38% / 58% 36% 64% 42%; }
  47%  { transform:translate3d(-38vw, 64vh, 170px) rotateX(8deg) rotateY(-24deg) rotateZ(7deg) scale(1.2); opacity:0.56; filter:blur(34px); border-radius:64% 36% 44% 56% / 36% 52% 48% 64%; }
  64%  { transform:translate3d(7vw, 76vh, -130px) rotateX(22deg) rotateY(16deg) rotateZ(16deg) scale(0.88); opacity:0.32; filter:blur(62px); border-radius:38% 62% 66% 34% / 58% 34% 66% 42%; }
  83%  { transform:translate3d(31vw, 24vh, 40px) rotateX(-6deg) rotateY(-14deg) rotateZ(-5deg) scale(1.02); opacity:0.44; filter:blur(46px); border-radius:48% 52% 60% 40% / 44% 60% 40% 56%; }
  100% { transform:translate3d(10vw, -10vh, 110px) rotateX(-10deg) rotateY(20deg) rotateZ(8deg) scale(1.12); opacity:0.46; filter:blur(42px); border-radius:58% 42% 36% 64% / 42% 64% 36% 58%; }
}
@keyframes ambientBubbleRoamC {
  0%   { transform:translate3d(8vw, 22vh, -70px) rotateX(12deg) rotateY(-12deg) rotateZ(-4deg) scale(0.96); opacity:0.34; filter:blur(54px); border-radius:48% 52% 60% 40% / 44% 60% 40% 56%; }
  17%  { transform:translate3d(-24vw, -6vh, 130px) rotateX(-16deg) rotateY(20deg) rotateZ(7deg) scale(1.16); opacity:0.48; filter:blur(38px); border-radius:64% 36% 44% 56% / 36% 52% 48% 64%; }
  34%  { transform:translate3d(-62vw, 28vh, -110px) rotateX(18deg) rotateY(10deg) rotateZ(-8deg) scale(0.9); opacity:0.30; filter:blur(66px); border-radius:38% 62% 66% 34% / 58% 34% 66% 42%; }
  52%  { transform:translate3d(-22vw, 58vh, 60px) rotateX(-8deg) rotateY(-22deg) rotateZ(11deg) scale(1.08); opacity:0.42; filter:blur(46px); border-radius:54% 46% 64% 36% / 38% 58% 42% 62%; }
  70%  { transform:translate3d(22vw, 8vh, 180px) rotateX(10deg) rotateY(18deg) rotateZ(-11deg) scale(1.22); opacity:0.50; filter:blur(36px); border-radius:34% 66% 62% 38% / 58% 36% 64% 42%; }
  86%  { transform:translate3d(36vw, -22vh, -50px) rotateX(-14deg) rotateY(-8deg) rotateZ(4deg) scale(0.98); opacity:0.36; filter:blur(56px); border-radius:42% 58% 66% 34% / 60% 38% 62% 40%; }
  100% { transform:translate3d(8vw, 22vh, -70px) rotateX(12deg) rotateY(-12deg) rotateZ(-4deg) scale(0.96); opacity:0.34; filter:blur(54px); border-radius:48% 52% 60% 40% / 44% 60% 40% 56%; }
}
.hero,
.page-hero,
.lifecycle-section,
.clients-section,
.team-section,
.cta-section {
  background:transparent !important;
}
@media (prefers-reduced-motion: reduce) {
  .ambient-bg::before,
  .bg-bubble { animation:none; }
}

a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button, input, textarea, select { font-family:inherit; }

/* ── Layout ── */
.container { width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--pad); }
section { padding:var(--section-space) var(--pad); }
section.dense { padding:var(--section-space) var(--pad); }
.section-inner { max-width:var(--max); margin:0 auto; }

/* ── Eyebrow ── */
.eyebrow {
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:8px 14px;
  border:1px solid rgba(255,255,255,0.18);
  border-radius:12px;
  background:linear-gradient(135deg, rgba(255,255,255,0.18), rgba(255,255,255,0.06));
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.22), 0 14px 42px rgba(0,0,0,0.18);
  backdrop-filter:blur(18px) saturate(1.25);
  -webkit-backdrop-filter:blur(18px) saturate(1.25);
  color:rgba(255,255,255,0.92) !important;
  font-size:13px;
  font-weight:650;
  letter-spacing:0.01em;
  line-height:1;
  text-transform:none;
  margin-bottom:20px;
}
.eyebrow::before { display:none; }

/* ── Typography ── */
.display {
  font-size:clamp(38px,5.5vw,80px); font-weight:900;
  line-height:1.0; letter-spacing:-0.035em;
}
h1.page-title {
  font-size:clamp(34px,4.5vw,68px); font-weight:800;
  line-height:1.05; letter-spacing:-0.03em;
}
h1.page-gradient-title {
  display:block;
  width:max-content;
  max-width:100%;
  font-size:clamp(42px,7vw,92px);
  font-weight:800;
  line-height:0.95;
  letter-spacing:-0.045em;
  margin:0;
  white-space:nowrap;
  background:linear-gradient(100deg, var(--lime) 0%, var(--white) 72%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
h2.section-title.page-gradient-title {
  display:block;
  width:max-content;
  max-width:100%;
  font-size:clamp(42px,7vw,92px);
  font-weight:800;
  line-height:0.95;
  letter-spacing:-0.045em;
  margin:0;
  white-space:nowrap;
  background:linear-gradient(100deg, var(--lime) 0%, var(--white) 72%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
@media (max-width:640px) {
  h1.page-gradient-title,
  h2.section-title.page-gradient-title {
    width:auto;
    white-space:normal;
    font-size:clamp(40px,13vw,58px);
    line-height:0.98;
  }
}
h2.section-title {
  font-size:clamp(28px,2.5vw,44px); font-weight:800;
  line-height:1.1; letter-spacing:-0.025em;
}
h3 { font-size:clamp(18px,2vw,24px); font-weight:700; letter-spacing:-0.02em; line-height:1.2; }
p.lead { font-size:clamp(16px,1.4vw,20px); font-weight:300; line-height:1.75; color:var(--muted); }
p.body  { font-size:16px; font-weight:300; line-height:1.75; color:var(--muted); }
.accent { color:var(--lime); }
.page-hero .page-title .accent {
  background:linear-gradient(105deg,
    var(--lime) 0%,
    var(--lime) 38%,
    #f2ff86 56%,
    #f6ffa8 72%,
    #fbffd6 88%,
    #fdffe8 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
.light  { font-weight:300; }

/* ── Buttons ── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  font-size:var(--fs-base); font-weight:700; letter-spacing:0.02em;
  padding:14px 32px; border-radius:6px; transition:all 0.2s; cursor:pointer; border:none;
}
.btn-lime  { background:var(--lime); color:var(--bg); }
.btn-lime:hover  { transform:translateY(-2px); box-shadow:0 8px 28px rgba(220,239,62,0.28); }
.btn-ghost { background:transparent; color:var(--white); border:1px solid var(--border); }
.btn-ghost:hover { border-color:rgba(220,239,62,0.72); color:var(--lime); background:rgba(220,239,62,0.1); }
.btn-text  { background:none; color:var(--muted); font-size:var(--fs-base); font-weight:500; padding:0; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:6px; transition:color 0.2s; }
.btn-text:hover { color:var(--lime); }

/* ── Nav ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:300;
  height:76px; display:flex; align-items:center;
  padding:0 var(--pad);
  background:linear-gradient(135deg, rgba(23,38,48,0.62), rgba(23,38,48,0.40));
  border-bottom:1px solid rgba(255,255,255,0.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12), 0 18px 60px rgba(0,0,0,0.18);
  backdrop-filter:blur(24px) saturate(1.35);
  -webkit-backdrop-filter:blur(24px) saturate(1.35);
  transition:background 0.3s, border-color 0.3s, box-shadow 0.3s, backdrop-filter 0.3s, -webkit-backdrop-filter 0.3s;
}
.home-page .nav {
  background:transparent;
  border-bottom-color:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.home-page .nav.is-scrolled {
  background:linear-gradient(135deg, rgba(23,38,48,0.62), rgba(23,38,48,0.40));
  border-bottom-color:rgba(255,255,255,0.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.12), 0 18px 60px rgba(0,0,0,0.18);
  backdrop-filter:blur(24px) saturate(1.35);
  -webkit-backdrop-filter:blur(24px) saturate(1.35);
}
.nav-inner {
  display:flex; align-items:center;
  width:100%; max-width:var(--max); margin:0 auto; gap:0;
}
.nav-logo {
  display:flex; align-items:center;
  flex-shrink:0; margin-right:auto;
}
.nav-logo img { height:22px; width:auto; display:block; }

.nav-links {
  display:flex; align-items:center; gap:6px; margin-right:28px;
}
.nav-links a {
  font-size:var(--fs-base); font-weight:600; color:rgba(255,255,255,0.88);
  letter-spacing:-0.01em; padding:8px 14px; border-radius:10px;
  position:relative; transition:color 0.2s, background 0.2s, box-shadow 0.2s;
}
.nav-links a::after {
  content:''; position:absolute; bottom:4px; left:14px; right:14px;
  height:1.5px; background:var(--lime);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.25s cubic-bezier(0.16,1,0.3,1);
}
.nav-links a:hover { color:var(--white); background:rgba(255,255,255,0.10); box-shadow:inset 0 1px 0 rgba(255,255,255,0.12); }
.nav-links a:hover::after { transform:scaleX(1); background:var(--violet); }
.nav-links a.active { color:var(--lime); }
.nav-links a.active::after { transform:scaleX(1); }

.nav-cta { flex-shrink:0; }

/* Mobile burger — hidden on desktop */
.nav-burger { display:none; background:none; border:none; cursor:pointer; padding:4px; margin-left:16px; }
.nav-burger span { display:block; width:22px; height:1.5px; background:var(--white); margin:5px 0; transition:all 0.3s; }
.nav:has(+ .nav-mobile.open) {
  background:
    linear-gradient(135deg, rgba(23,38,48,0.94), rgba(23,38,48,0.82)),
    radial-gradient(circle at 18% 0%, rgba(220,239,62,0.10), transparent 42%);
  border-bottom-color:rgba(255,255,255,0.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.16), 0 18px 70px rgba(0,0,0,0.36);
  backdrop-filter:blur(38px) saturate(1.45);
  -webkit-backdrop-filter:blur(38px) saturate(1.45);
}

/* Mobile nav overlay */
.nav-mobile {
  display:none; position:fixed; inset:0; z-index:290; top:76px;
  background:linear-gradient(135deg, rgba(23,38,48,0.76), rgba(23,38,48,0.50));
  border-top:1px solid rgba(255,255,255,0.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10);
  backdrop-filter:blur(24px) saturate(1.35);
  -webkit-backdrop-filter:blur(24px) saturate(1.35);
  padding:32px var(--pad) 48px;
  flex-direction:column; gap:4px; overflow-y:auto;
}
.nav-mobile.open { display:flex; }
.nav-mobile a {
  font-size:28px; font-weight:800; letter-spacing:-0.02em;
  color:rgba(255,255,255,0.72); padding:14px 0; border-bottom:1px solid var(--faint);
  transition:color 0.2s;
}
.nav-mobile a:last-child { border:none; }
.nav-mobile a:hover, .nav-mobile a.active { color:var(--white); }
.nav-mobile .btn { margin-top:28px; justify-content:center; }
.nav-mobile .btn-lime { color:var(--bg) !important; }

/* Overlay overlay — deprecated, keep stub to avoid errors */
.nav-overlay { display:none; }
.nav-menu-btn { display:none; }

/* ── Horizontal rule ── */
hr.rule { border:none; border-top:1px solid var(--border); }

@media (max-width:900px) {
  .nav-links { display:none; }
  .nav-burger { display:block; }
  .nav-cta { display:none; }
}
@media (max-width:480px) {
  .nav-logo { font-size:18px; }
  .nav-logo img { height:18px !important; }
}

/* ── Marquee ── */
.marquee-wrap { overflow:hidden; }
.marquee-track {
  display:flex; align-items:center; gap:56px;
  animation:scroll-x 28s linear infinite; width:max-content;
}
.marquee-track:hover { animation-play-state:paused; }
@keyframes scroll-x { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.marquee-item { font-size:14px; font-weight:500; letter-spacing:0.06em; color:rgba(255,255,255,0.68); white-space:nowrap; transition: color 0.2s; }
.marquee-item:hover { color: var(--violet-2); }

/* ── Cards ── */
.card {
  background:var(--bg2); border:1px solid var(--border);
  border-radius:var(--rad); overflow:hidden;
  transition:border-color 0.3s, transform 0.3s;
}
.card:hover { border-color:rgba(0,244,255,0.35); transform:translateY(-4px); box-shadow: 0 0 0 1px rgba(0,244,255,0.1); }

/* ── Tag pills ── */
.tags { display:flex; flex-wrap:wrap; gap:6px; }
.tag {
  font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--violet-2); background:var(--violet-bg);
  padding:4px 11px; border-radius:6px;
  transition: background 0.2s, color 0.2s;
}
.tag:hover { background: rgba(0,244,255,0.2); color: var(--violet); }

/* ── Lime section ── */
.lime-section {
  background:var(--lime); color:var(--bg); padding:var(--section-space) var(--pad);
}
.lime-section .eyebrow {
  color:rgba(18,29,36,0.88) !important;
  border-color:rgba(18,29,36,0.16);
  background:linear-gradient(135deg, rgba(255,255,255,0.55), rgba(255,255,255,0.24));
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.55), 0 14px 34px rgba(18,29,36,0.12);
}

/* ── Reveal animations ── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.65s ease, transform 0.65s ease; }
.reveal.in { opacity:1; transform:none; }
.d1 { transition-delay:0.08s; }
.d2 { transition-delay:0.16s; }
.d3 { transition-delay:0.24s; }
.d4 { transition-delay:0.32s; }
.d5 { transition-delay:0.40s; }

/* ── Stat row ── */
.stat-row { display:flex; gap:56px; flex-wrap:wrap; }
.stat-num { font-size:clamp(36px,4vw,56px); font-weight:900; color:var(--lime); line-height:1; letter-spacing:-0.02em; }
.stat-label { font-size:var(--fs-xs); color:var(--muted); margin-top:6px; font-weight:400; letter-spacing:0.02em; }

/* ── Footer ── */
footer {
  padding:72px var(--pad) 36px;
  border-top:1px solid var(--border);
  background:
    radial-gradient(circle at 12% 0%, rgba(0,244,255,0.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.015), transparent 42%);
}
.footer-top {
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,0.75fr);
  gap:72px; align-items:start;
}
.footer-logo img { height:20px; width:auto; display:block; opacity:0.9; }
.footer-cta-panel {
  position: relative;
  padding: 6px 0;
}
.footer-claim {
  max-width:640px;
  font-size:clamp(30px,3.4vw,50px); font-weight:900; line-height:1.02;
  letter-spacing:-0.04em; color:var(--white);
}
.footer-claim span { color:var(--white); }
.footer-copyline {
  margin-top:24px; max-width:520px;
  font-size:clamp(16px,1.25vw,19px); color:var(--muted); line-height:1.65;
}
.footer-cta-link { margin-top:32px; }
.footer-meta {
  margin-top:28px; display:flex; flex-wrap:wrap; gap:10px 18px;
  font-size:14px; color:var(--muted); line-height:1.6;
}
.footer-contact-card {
  border:1px solid var(--border); border-radius:var(--rad);
  background:rgba(255,255,255,0.035);
  padding:28px; min-width:0;
}
.footer-heading {
  font-size:10px; font-weight:800; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--lime); margin-bottom:16px;
}
.footer-address, .footer-contact { font-size:15px; color:var(--muted); line-height:1.7; }
.footer-contact { margin-top:22px; padding-top:22px; border-top:1px solid var(--border); }
.footer-contact a { color:var(--white); text-decoration:none; transition:color 0.2s; }
.footer-contact a:hover { color:var(--violet-2); }
.footer-bottom {
  max-width:var(--max); margin:44px auto 0;
  display:grid; grid-template-columns:1fr auto; gap:32px; align-items:end;
  border-top:1px solid var(--border); padding-top:28px;
}
.footer-badges { display:flex; flex-direction:column; gap:16px; align-items:flex-start; }
.footer-partners, .footer-social { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.footer-badge-label {
  width: 58px;
  flex: 0 0 58px;
  font-size:10px; font-weight:800; letter-spacing:0.14em; text-transform:uppercase;
  color:rgba(255,255,255,0.48); margin-right:4px;
}
.footer-partner-badge, .footer-social-badge {
  display:flex; align-items:center; gap:8px;
  padding:7px 11px; border:1px solid rgba(255,255,255,0.09); border-radius:6px;
  text-decoration:none; transition:border-color 0.2s, opacity 0.2s, background 0.2s, transform 0.2s;
  opacity:0.72; background:rgba(18,29,36,0.35);
}
.footer-partner-badge:hover, .footer-social-badge:hover { opacity:1; border-color:rgba(255,255,255,0.22); background:rgba(255,255,255,0.045); transform:translateY(-1px); }
.footer-partner-badge svg, .footer-social-badge svg { flex-shrink:0; }
.footer-partner-label { font-size:9px; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.72); line-height:1.2; }
.footer-legal-wrap { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.footer-legal { display:flex; gap:20px; }
.footer-legal a { font-size:11px; color:rgba(255,255,255,0.68); letter-spacing:0.04em; text-decoration:none; transition:color 0.2s; }
.footer-legal a:hover { color:var(--violet-2); }
.footer-copy { font-size:12px; color:var(--muted); }
@media (max-width:900px) {
  footer { padding-top:56px; }
  .footer-top { grid-template-columns:1fr; gap:36px; }
  .footer-claim { max-width:680px; }
  .footer-bottom { grid-template-columns:1fr; align-items:start; margin-top:36px; }
  .footer-legal-wrap { align-items:flex-start; }
}
@media (max-width:520px) {
  .footer-contact-card { padding:22px; }
  .footer-copyline { margin-top:18px; }
  .footer-cta-link { width:100%; justify-content:center; margin-top:26px; }
  .footer-meta { flex-direction:column; gap:4px; }
  .footer-partners,
  .footer-social {
    display:grid;
    gap:10px;
    align-items:center;
    width:100%;
  }
  .footer-partners { grid-template-columns:58px minmax(0,1fr) minmax(0,1fr); }
  .footer-social { grid-template-columns:58px minmax(0,1fr); }
  .footer-badge-label { width:58px; flex:0 0 58px; margin:0; }
  .footer-partner-badge, .footer-social-badge { min-height:42px; align-self:stretch; justify-content:center; }
}

/* ── Page hero ── */
.page-hero {
  padding:160px var(--pad) var(--section-space);
  border-bottom:1px solid var(--border);
  position: relative;
  overflow: hidden;
}
.page-hero > * {
  width: 100%;
  max-width: var(--desktop-content-max);
  margin: 0 auto;
}
.page-hero .eyebrow {
  margin-left: 0;
}
.page-hero::before {
  content: '';
  position: absolute;
  top: -120px; right: -120px;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,244,255,0.08) 0%, transparent 70%);
  pointer-events: none;
}

/* ── Grid utilities ── */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.split.flip > *:first-child { order:2; }
.split.flip > *:last-child { order:1; }

/* ── Divider line ── */
.divider { width:100%; height:1px; background:var(--border); margin:64px 0; }

/* ── Responsive ── */
@media (max-width:1024px) {
  :root { --pad:40px; }
  .grid-4 { grid-template-columns:repeat(2,1fr); }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
  .split  { grid-template-columns:1fr; gap:48px; }
  .split.flip > * { order:initial !important; }
  .stat-row { gap:36px; }
}

@media (max-width:768px) {
  :root { --pad:24px; --section-space:20px; }
  h1,
  h1.page-title,
  .hero-headline,
  .jobs-headline,
  .about-hero-headline,
  .emil-headline {
    font-size: clamp(34px, 10.6vw, 54px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.03em !important;
  }
  section { padding:var(--section-space) var(--pad) !important; }
  section + section { padding-top:var(--section-space) !important; }
  .page-hero { padding:128px var(--pad) var(--section-space) !important; }
  .page-hero + section { padding-top:var(--section-space) !important; }
  .hero + section,
  .jobs-hero + section,
  .about-hero + section,
  .emil-hero + section { padding-top:var(--section-space) !important; }
  .grid-2 { grid-template-columns:1fr; }
  .grid-3 { grid-template-columns:1fr; }
  .nav-links, .nav-cta { display:none; }
  .nav-burger { display:block; margin-left:auto; }
  .nav-mobile.open {
    display:flex; flex-direction:column; gap:0;
    position:fixed; top:66px; left:0; right:0; bottom:0;
    z-index:290;
    padding:34px var(--pad) 48px;
    border:none; border-radius:0;
    background:
      linear-gradient(180deg, rgba(23,38,48,0.72), rgba(23,38,48,0.58)),
      radial-gradient(circle at 18% 0%, rgba(220,239,62,0.16), transparent 42%),
      radial-gradient(circle at 92% 18%, rgba(0,244,255,0.18), transparent 48%),
      linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.035));
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.16);
    backdrop-filter:blur(52px) saturate(1.6);
    -webkit-backdrop-filter:blur(52px) saturate(1.6);
  }
  .nav-mobile a {
    font-size:20px; font-weight:700; letter-spacing:0.01em;
    padding:13px 0;
    border:none; border-bottom:1px solid rgba(255,255,255,0.12); border-radius:0;
    background:transparent;
    color:rgba(255,255,255,0.94); text-shadow:0 2px 24px rgba(0,0,0,0.42);
    box-shadow:none;
  }
  .nav-mobile a:hover,
  .nav-mobile a.active { background:transparent; border-color:rgba(255,255,255,0.12); color:var(--lime); }
  .nav-mobile .btn { margin-top:22px; width:100%; justify-content:center; text-shadow:none; border-radius:6px; background:var(--lime); color:var(--bg) !important; border:none; font-size:var(--fs-base); font-weight:700; padding:14px 32px; }
  footer { text-align:left; gap:28px; }
  .footer-partners, .footer-social { align-items:flex-start; }
  .lime-section { padding:var(--section-space) var(--pad); }
}

/* ─── Shared client logo banner ─── */
.clients-section {
  padding: 42px var(--pad);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
}
.clients-label {
  font-size: var(--fs-xs);
  letter-spacing: 0.12em;
  color: var(--muted);
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 28px;
}
.logo-marquee-wrap {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, black 12%, black 88%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, black 12%, black 88%, transparent);
}
.logo-marquee-track {
  display: flex;
  align-items: center;
  gap: 64px;
  animation: logo-scroll 35s linear infinite;
  width: max-content;
}
@keyframes logo-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.client-logo {
  height: 24px;
  width: auto;
  display: block;
  filter: grayscale(100%) brightness(0.72) invert(0);
  opacity: 0.72;
  transition: none;
  flex-shrink: 0;
}
