:root {
  --max:1120px; --radius:16px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text); background:var(--bg); line-height:1.65;
}
a { color:inherit; }
.wrap { width:min(calc(100% - 40px), var(--max)); margin:auto; }
header {
  background:var(--header-bg); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:10; backdrop-filter:blur(8px);
}
nav { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:11px; font-weight:800; font-size:1.25rem; letter-spacing:.08em; text-decoration:none; }
.brand img { width:44px; height:44px; object-fit:contain; border-radius:8px; }
.nav-actions { display:flex; align-items:center; gap:20px; }
nav .links { display:flex; gap:24px; font-size:.95rem; color:var(--muted); }
nav .links a { text-decoration:none; }
nav .links a:hover { color:var(--accent); }
.language-switcher { display:flex; align-items:center; gap:7px; }
.language-switcher a {
  display:grid; place-items:center; width:30px; height:30px; border:1px solid transparent;
  border-radius:6px; font-size:1.05rem; line-height:1; text-decoration:none;
}
.language-switcher img { display:block; width:21px; height:14px; }
.language-switcher a:hover { background:var(--language-hover-bg); }
.language-switcher a[aria-current="page"] { border-color:var(--accent); background:var(--language-hover-bg); }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.menu-toggle {
  display:none; position:relative; width:44px; height:44px; padding:0; border:1px solid var(--line);
  border-radius:8px; background:var(--surface); color:var(--text); cursor:pointer;
}
.menu-toggle span, .menu-toggle::before, .menu-toggle::after {
  position:absolute; top:50%; left:50%; display:block; width:20px; height:2px;
  margin:0; background:currentColor;
  content:""; transition:transform .2s ease, opacity .2s ease;
}
.menu-toggle span { transform:translate(-50%,-50%); }
.menu-toggle::before { transform:translate(-50%,-8px); }
.menu-toggle::after { transform:translate(-50%,6px); }
.menu-toggle[aria-expanded="true"] span { opacity:0; }
.menu-toggle[aria-expanded="true"]::before { transform:translate(-50%,-50%) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform:translate(-50%,-50%) rotate(-45deg); }
.hero {
  background:var(--hero-gradient);
  padding:96px 0 88px; border-bottom:1px solid var(--line);
}
.eyebrow { color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; }
h1 { font-size:clamp(2.4rem,6vw,4.7rem); line-height:1.05; max-width:850px; margin:16px 0 24px; letter-spacing:-.045em; }
.hero-inner { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:50px; align-items:center; }
.hero p { max-width:760px; font-size:1.2rem; color:var(--muted); margin:0 0 32px; }
.hero-logo { width:240px; height:240px; object-fit:contain; border-radius:24px; justify-self:end; box-shadow:var(--hero-logo-shadow); }
.cta {
  display:inline-block; padding:13px 20px; border-radius:10px; text-decoration:none;
  background:var(--accent); color:var(--button-text); font-weight:700;
}
.cta:hover { background:var(--accent-dark); }
section { padding:78px 0; }
h2 { font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.15; margin:0 0 16px; letter-spacing:-.025em; }
.lead { color:var(--muted); max-width:780px; font-size:1.08rem; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px; box-shadow:var(--card-shadow); color:var(--text);
}
.card h3 { margin:0 0 10px; font-size:1.15rem; }
.card p { margin:0; color:var(--muted); }
.tech {
  display:flex; flex-wrap:wrap; gap:10px; margin-top:28px;
}
.tech span {
  background:var(--surface); border:1px solid var(--line); padding:8px 12px;
  border-radius:999px; font-size:.9rem; color:var(--text);
}
.about { background:var(--about-bg); color:var(--about-text); }
.about .lead { color:var(--about-muted); }
.about-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:50px; align-items:start; }
.facts { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fact { border:1px solid var(--fact-border); border-radius:14px; padding:20px; }
.fact strong { display:block; font-size:1.5rem; }
.fact span { color:var(--about-muted); font-size:.9rem; }
.sectors { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.sectors h3 { width:100%; margin:0 0 2px; font-size:1.15rem; }
.sectors span {
  padding:7px 11px; border:1px solid var(--sector-border); border-radius:999px;
  color:var(--about-muted); font-size:.9rem;
}
.client-carousel { grid-column:1 / -1; margin-top:4px; overflow:hidden; }
.client-carousel h3 { margin:0 0 18px; font-size:1.15rem; }
.carousel-viewport {
  overflow:hidden; mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);
}
.logo-track { display:flex; width:max-content; animation:scroll-logos 45s linear infinite; }
.client-logos { display:flex; align-items:center; gap:16px; margin:0; padding:0 8px; list-style:none; }
.client-logos li {
  display:grid; place-items:center; width:128px; height:128px; padding:16px;
  background:var(--surface); border-radius:12px;
}
.client-logos img { display:block; max-width:100%; max-height:100%; object-fit:contain; }
.client-carousel:hover .logo-track { animation-play-state:paused; }
@keyframes scroll-logos {
  to { transform:translateX(-50%); }
}
.contact { text-align:center; }
.contact .lead { margin:0 auto 28px; }
.contact-note { max-width:680px; margin:-10px auto 28px; color:var(--muted); }
footer .easter-egg { margin-left:8px; opacity:.18; font-weight:700; letter-spacing:.08em; }
footer { border-top:1px solid var(--line); padding:26px 0; color:var(--muted); font-size:.85rem; }
.footer-link { margin-left:18px; color:var(--muted); }
.footer-link:hover { color:var(--accent); }
.legal-hero {
  padding:76px 0 64px; border-bottom:1px solid var(--line);
  background:var(--legal-hero-gradient);
}
.legal-hero h1 { font-size:clamp(2.4rem,6vw,4rem); margin-bottom:16px; }
.legal-hero p { max-width:680px; margin:0; color:var(--muted); font-size:1.1rem; }
.legal-content { padding:56px 0 78px; }
.legal-layout { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:20px; }
.legal-layout .card h2 { font-size:1.35rem; }
.legal-layout .card p:last-child { margin-bottom:0; }
.legal-details { margin:22px 0; }
.legal-details div { padding:10px 0; border-top:1px solid var(--line); }
.legal-details div:last-child { border-bottom:1px solid var(--line); }
.legal-details dt { font-weight:700; }
.legal-details dd { margin:2px 0 0; color:var(--muted); }
.legal-details a { color:var(--accent-dark); }
@media (max-width:800px) {
  nav { position:relative; }
  .menu-toggle { display:block; }
  nav .links {
    display:none; position:absolute; top:68px; right:0; left:0; flex-direction:column;
    gap:0; padding:8px 20px 16px; background:var(--surface);
    border-bottom:1px solid var(--line); box-shadow:var(--menu-shadow);
  }
  nav.menu-open .links { display:flex; }
  nav .links a { padding:10px 0; }
  nav .links .language-switcher {
    align-self:flex-start; margin-top:8px; padding-top:8px; border-top:1px solid var(--line);
  }
  nav .links .language-switcher a { padding:0; }
  .nav-actions { gap:12px; }
  .hero { padding:70px 0 64px; }
  .hero-inner { grid-template-columns:1fr; gap:30px; }
  .hero-logo { width:150px; height:150px; justify-self:start; order:-1; }
  section { padding:58px 0; }
  .grid, .about-grid, .legal-layout { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .logo-track { animation:none; }
}
