:root{--ink:#0a2341;--muted:#61738a;--blue:#176cf5;--cyan:#36c7ed;--violet:#6448ef;--bg:#f7faff;--card:#fff;--line:#dfe9f6;--shadow:0 24px 70px rgba(33,83,143,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(215,229,246,.8)}.nav-shell{max-width:1240px;margin:auto;height:132px;padding:0 24px;display:flex;align-items:center;gap:34px}.brand{width:365px;display:flex;align-items:center;flex-shrink:0}.brand img{width:100%;height:116px;object-fit:contain;object-position:left center}.main-nav{margin-left:auto;display:flex;gap:30px;align-items:center}.main-nav a{font-size:14px;font-weight:650;color:#29445f}.main-nav a:hover{color:var(--blue)}.nav-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--blue),#2456e8);color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:700;box-shadow:0 10px 25px rgba(23,108,245,.22)}.menu-toggle{display:none;border:0;background:transparent;font-size:29px;color:var(--ink)}
.hero-section{overflow:hidden;background:radial-gradient(circle at 78% 15%,rgba(54,199,237,.18),transparent 26%),radial-gradient(circle at 86% 62%,rgba(100,72,239,.12),transparent 27%),linear-gradient(180deg,#fff 0%,#f9fcff 100%)}.hero-grid{max-width:1180px;margin:auto;padding:90px 24px 74px;display:grid;grid-template-columns:1.04fr .96fr;gap:76px;align-items:center}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;color:#1875c9;margin-bottom:16px}.hero-copy h1{font-size:clamp(44px,5vw,70px);line-height:1.02;letter-spacing:-.045em;margin:0 0 24px;max-width:720px}.hero-copy h1 span{background:linear-gradient(90deg,#176cf5,#27bfe8,#6651eb);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-copy>p{font-size:18px;color:var(--muted);max-width:620px;margin:0 0 30px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;padding:14px 20px;font-weight:750;font-size:15px}.btn-primary{color:#fff;background:linear-gradient(135deg,#176cf5,#3159e8);box-shadow:0 16px 28px rgba(23,108,245,.2)}.btn-secondary{border:1px solid #d4e2f2;background:#fff}.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:42px}.hero-proof div{border-left:2px solid #d8e9fb;padding-left:12px}.hero-proof strong{display:block;font-size:15px}.hero-proof span{display:block;color:var(--muted);font-size:12px}.hero-visual{position:relative;min-height:480px}.visual-card{position:absolute;inset:52px 22px 26px 26px;background:rgba(255,255,255,.88);border:1px solid rgba(210,229,249,.9);border-radius:28px;box-shadow:var(--shadow);backdrop-filter:blur(12px);overflow:hidden}.window-head{height:52px;padding:0 18px;border-bottom:1px solid #e7eff8;display:flex;align-items:center;gap:7px}.window-head span{width:8px;height:8px;border-radius:50%;background:#bdd6f3}.window-head small{margin-left:auto;color:#7190ac;font-size:10px;letter-spacing:.12em}.visual-content{padding:34px}.visual-kicker{font-size:10px;letter-spacing:.16em;color:#3477c4;font-weight:850}.visual-content h3{font-size:34px;line-height:1.08;letter-spacing:-.03em;margin:8px 0 22px}.chart-wrap{height:130px;position:relative;border-radius:18px;background:linear-gradient(180deg,#f3f9ff,#fff);overflow:hidden;border:1px solid #e8f1fa}.chart-wrap:before,.chart-wrap:after{content:"";position:absolute;left:0;right:0;border-top:1px dashed #d8e8f7}.chart-wrap:before{top:43px}.chart-wrap:after{top:86px}.chart-line{position:absolute;left:9%;right:8%;bottom:31px;height:62px;border-top:5px solid var(--blue);border-radius:52% 70% 0 0;transform:skewY(-9deg);filter:drop-shadow(0 9px 9px rgba(23,108,245,.18))}.chart-point{position:absolute;width:12px;height:12px;border:3px solid #fff;background:var(--blue);border-radius:50%;box-shadow:0 3px 9px rgba(23,108,245,.3)}.p1{left:15%;bottom:44px}.p2{left:38%;bottom:68px}.p3{left:63%;bottom:63px}.p4{right:12%;bottom:93px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.metric-grid div{padding:15px 10px;background:#f8fbff;border-radius:14px;border:1px solid #e8f0f8}.metric-grid i{font-size:20px;color:var(--blue)}.metric-grid b,.metric-grid span{display:block}.metric-grid b{font-size:13px;margin-top:5px}.metric-grid span{font-size:11px;color:var(--muted)}.floating-card{position:absolute;z-index:3;background:#fff;border:1px solid #e1ecf8;box-shadow:0 15px 36px rgba(42,85,137,.16);border-radius:15px;padding:13px 15px;display:flex;gap:11px;align-items:center}.floating-card i{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--cyan),var(--violet))}.floating-card b,.floating-card span{display:block}.floating-card b{font-size:12px}.floating-card span{font-size:10px;color:var(--muted)}.fc-left{left:-8px;top:34px}.fc-right{right:-12px;bottom:12px}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-one{width:290px;height:290px;right:-80px;top:-38px;background:linear-gradient(135deg,rgba(60,203,238,.26),rgba(67,111,246,.08))}.orb-two{width:180px;height:180px;left:-30px;bottom:0;background:linear-gradient(135deg,rgba(96,72,239,.15),rgba(58,207,236,.13))}
.stats-band{max-width:1180px;margin:-1px auto 0;border:1px solid #e5eef8;border-radius:22px;background:#fff;box-shadow:0 15px 45px rgba(49,92,139,.08);padding:23px 28px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat{display:flex;align-items:center;gap:12px;padding:8px 16px;border-right:1px solid #e7eef6}.stat:last-child{border-right:0}.stat i{font-size:23px;color:var(--blue)}.stat strong,.stat span{display:block}.stat strong{font-size:13px}.stat span{font-size:11px;color:var(--muted)}
.section{max-width:1180px;margin:auto;padding:105px 24px}.section-heading{max-width:700px;margin-bottom:44px}.section-heading h2{font-size:clamp(34px,4vw,52px);line-height:1.08;letter-spacing:-.035em;margin:0 0 14px}.section-heading p{color:var(--muted);margin:0}.split-heading{max-width:none;display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:end}.split-heading p{font-size:17px;margin-bottom:8px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{border:1px solid var(--line);border-radius:20px;padding:26px;background:#fff;transition:.25s ease;min-height:292px;display:flex;flex-direction:column}.service-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(48,89,135,.12);border-color:#cce1fb}.service-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#edf6ff,#eeebff);display:grid;place-items:center;color:var(--blue);font-size:23px}.service-card h3{font-size:20px;margin:20px 0 10px}.service-card p{color:var(--muted);font-size:14px;margin:0}.service-card a{margin-top:auto;padding-top:20px;font-size:13px;font-weight:800;color:var(--blue)}
.projects-section{padding-top:40px}.projects-grid{display:grid;grid-template-columns:1.25fr .875fr .875fr;gap:18px}.project-card{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 12px 32px rgba(34,78,126,.06)}.project-image{height:205px;background:#eef5fb;overflow:hidden}.project-large .project-image{height:270px}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.project-card:hover img{transform:scale(1.035)}.project-body{padding:22px}.project-body>span{font-size:10px;letter-spacing:.16em;color:var(--blue);font-weight:850}.project-body h3{font-size:22px;margin:7px 0 7px}.project-body p{font-size:13px;color:var(--muted);margin:0}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.tags b{font-size:10px;padding:5px 9px;border:1px solid #dce8f5;border-radius:999px;background:#f7fbff;color:#47617d}
.about-section{padding-top:72px}.about-panel{min-height:500px;border-radius:30px;padding:60px;background:linear-gradient(135deg,#071b34 0%,#0b2b50 53%,#163a68 100%);color:#fff;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;overflow:hidden;position:relative}.about-panel:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-100px;bottom:-150px;background:radial-gradient(circle,rgba(71,209,235,.45),rgba(90,76,235,.12) 48%,transparent 70%)}.about-copy{position:relative;z-index:2}.about-copy h2{font-size:clamp(34px,4vw,50px);line-height:1.08;letter-spacing:-.035em;margin:0 0 18px}.about-copy p{color:#c4d6e8}.about-points{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:28px}.about-points span{font-size:13px}.about-points i{color:#52d4f0;margin-right:6px}.light{color:#6de5fa}.about-tech{display:grid;place-items:center;position:relative;z-index:2}.about-tech-image{width:min(100%,430px);aspect-ratio:1/1;object-fit:cover;border-radius:28px;box-shadow:0 30px 75px rgba(17,92,189,.32);border:1px solid rgba(125,203,255,.2)}.tech-ring{width:310px;height:310px;border-radius:50%;border:1px solid rgba(132,206,255,.28);position:relative;display:grid;place-items:center;box-shadow:inset 0 0 60px rgba(66,177,239,.1),0 0 80px rgba(80,77,226,.12)}.tech-ring:before{content:"";position:absolute;inset:40px;border-radius:50%;border:1px dashed rgba(123,208,250,.3)}.tech-center{width:112px;height:112px;border-radius:34px;background:linear-gradient(135deg,#2fc7ee,#305fe9,#6a45e9);display:grid;place-items:center;font-size:52px;font-weight:900;letter-spacing:-.08em;box-shadow:0 25px 65px rgba(27,126,240,.32)}.tech-ring span{position:absolute;font-size:10px;font-weight:800;letter-spacing:.14em;color:#9ddffc}.tech-ring span:nth-child(1){top:17px}.tech-ring span:nth-child(2){right:18px}.tech-ring span:nth-child(3){bottom:18px}.tech-ring span:nth-child(4){left:18px}
.client-strip{background:linear-gradient(180deg,#f8fbff 0%,#fff 100%);border-top:1px solid #e8f0f7;border-bottom:1px solid #e8f0f7;padding:88px 24px}.client-wrap{max-width:1180px;margin:auto}.client-heading{max-width:760px;margin:0 auto 38px;text-align:center}.client-heading h2{font-size:clamp(32px,4vw,48px);line-height:1.08;letter-spacing:-.035em;margin:0 0 14px}.client-heading p{color:var(--muted);font-size:16px;margin:0}.client-wordmarks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.client-wordmark{min-height:96px;border:1px solid var(--line);border-radius:18px;background:#fff;display:grid;place-items:center;padding:20px;text-align:center;font-size:22px;font-weight:800;letter-spacing:-.03em;color:#203c59;box-shadow:0 10px 30px rgba(37,78,126,.05);transition:.25s ease}.client-wordmark:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(37,78,126,.1);border-color:#cbdff6}.client-wordmark.redsys{color:#df1f2d}.client-wordmark.revolut{color:#111827}.client-wordmark.paypal{color:#1264a3}.client-wordmark.serigrafik{color:#1e516d}.client-wordmark.odoo{color:#7b4b7d;font-size:26px}.client-wordmark.ovh{color:#123f9c}.client-wordmark.aws{color:#ff9900}.client-wordmark.apache{color:#b31b34}
.contact-section{padding-bottom:105px}.contact-box{background:linear-gradient(135deg,#166df6 0%,#2e65e8 50%,#6548ed 100%);border-radius:30px;color:#fff;padding:58px;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;box-shadow:0 28px 70px rgba(41,88,226,.24)}.contact-copy h2{font-size:clamp(34px,4vw,50px);line-height:1.07;letter-spacing:-.035em;margin:0 0 15px}.contact-copy p{color:#e4edff;max-width:650px}.btn-white{background:#fff;color:#124a9e;margin-top:10px}.contact-details{display:grid;gap:12px}.contact-details>div{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);border-radius:15px}.contact-details i{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.15);display:grid;place-items:center;font-size:18px}.contact-details b,.contact-details span{display:block}.contact-details b{font-size:12px}.contact-details span{font-size:12px;color:#e6eeff}
.site-footer{background:#07182d;color:#c7d6e5;padding:58px 24px 24px}.footer-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.6fr .8fr 1fr .8fr;gap:55px}.footer-brand img{width:255px;height:96px;object-fit:contain;background:#fff;border-radius:13px;padding:7px}.footer-brand p{font-size:13px;max-width:330px;color:#90a7bc}.footer-grid h4{font-size:12px;color:#fff;letter-spacing:.1em;text-transform:uppercase;margin:8px 0 16px}.footer-grid a,.footer-grid span{display:block;font-size:12px;color:#9fb3c7;margin:8px 0}.footer-grid a:hover{color:#fff}.footer-bottom{max-width:1180px;margin:40px auto 0;padding-top:20px;border-top:1px solid #17324d;display:flex;justify-content:space-between;font-size:11px;color:#7893aa}
@media(max-width:980px){.nav-shell{height:108px}.brand{width:280px}.brand img{height:94px}.main-nav,.nav-cta{display:none}.menu-toggle{display:block;margin-left:auto}.site-header.open .main-nav{display:flex;position:absolute;top:108px;left:18px;right:18px;background:#fff;border:1px solid #deebf7;border-radius:18px;padding:18px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:5px}.site-header.open .main-nav a{padding:11px 8px}.hero-grid{grid-template-columns:1fr;padding-top:64px;gap:28px}.hero-copy{text-align:center}.hero-copy>p{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.hero-proof{max-width:650px;margin-left:auto;margin-right:auto;text-align:left}.hero-visual{min-height:440px;max-width:650px;width:100%;margin:auto}.stats-band{margin:0 20px;grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.split-heading{grid-template-columns:1fr;gap:18px}.service-grid{grid-template-columns:1fr 1fr}.projects-grid{grid-template-columns:1fr 1fr}.project-large{grid-column:1/-1}.about-panel,.contact-box{grid-template-columns:1fr}.about-tech{padding-top:10px}.client-wordmarks{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.4fr 1fr 1fr}.footer-grid>div:last-child{grid-column:2}.footer-bottom{flex-direction:column;gap:10px}}
@media(max-width:640px){.nav-shell{padding:0 14px}.brand{width:245px}.brand img{height:84px}.hero-grid{padding:52px 18px 45px}.hero-copy h1{font-size:43px}.hero-copy>p{font-size:16px}.hero-actions .btn{width:100%}.hero-proof{grid-template-columns:1fr;gap:8px}.hero-proof div{border-left:0;border-top:1px solid #e4edf6;padding:10px 0}.hero-visual{min-height:380px}.visual-card{inset:42px 3px 20px}.visual-content{padding:23px}.visual-content h3{font-size:28px}.metric-grid{gap:6px}.metric-grid div{padding:10px 7px}.fc-left{left:-2px}.fc-right{right:-2px}.stats-band{margin:0 14px;padding:13px;grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid #e7eef6}.stat:last-child{border-bottom:0}.section{padding:75px 18px}.section-heading h2{font-size:36px}.service-grid,.projects-grid{grid-template-columns:1fr}.project-large{grid-column:auto}.project-image,.project-large .project-image{height:220px}.about-panel{padding:37px 22px;border-radius:22px}.about-points{grid-template-columns:1fr}.tech-ring{width:250px;height:250px}.tech-center{width:95px;height:95px;font-size:44px}.client-strip{padding:64px 18px}.client-wordmarks{grid-template-columns:1fr 1fr;gap:12px}.client-wordmark{min-height:82px;font-size:18px;padding:14px}.contact-box{padding:38px 22px;border-radius:22px;gap:30px}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{align-items:flex-start}}


/* --- Legal / Privacy page --- */
.legal-page { background: #f7faff; }
.legal-hero {
  position: relative;
  padding: 110px 28px 72px;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 18%, rgba(38, 198, 255, .16), transparent 34%),
    radial-gradient(circle at 18% 72%, rgba(88, 74, 255, .10), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
  border-bottom: 1px solid rgba(18, 56, 92, .08);
}
.legal-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  right: -180px;
  top: -190px;
  border: 1px solid rgba(34, 112, 255, .12);
}
.legal-hero-inner { width: min(1180px, 100%); margin: 0 auto; position: relative; z-index: 1; }
.legal-back { display: inline-flex; align-items: center; gap: 8px; color: #55708d; font-size: .92rem; font-weight: 700; margin-bottom: 34px; }
.legal-back:hover { color: #1768e5; }
.legal-hero .eyebrow { display: block; margin-bottom: 14px; }
.legal-hero h1 { margin: 0; max-width: 840px; color: #102f50; font-size: clamp(2.6rem, 5vw, 4.9rem); line-height: .98; letter-spacing: -.045em; }
.legal-hero p { max-width: 760px; margin: 24px 0 0; color: #5a7188; font-size: 1.08rem; line-height: 1.75; }
.legal-section { padding: 72px 28px 100px; }
.legal-layout { width: min(1180px, 100%); margin: 0 auto; display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 54px; align-items: start; }
.legal-sidebar { position: sticky; top: 112px; }
.legal-sidebar-card { padding: 24px; border: 1px solid #dce8f5; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgba(23, 72, 116, .07); }
.legal-sidebar-label { display: block; margin-bottom: 8px; color: #1970ea; font-size: .73rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; }
.legal-sidebar-card strong { display: block; color: #123657; font-size: 1.08rem; }
.legal-sidebar-card p { margin: 7px 0 22px; color: #7890a7; font-size: .9rem; }
.legal-sidebar-card a { display: flex; align-items: center; gap: 9px; color: #1768e5; font-weight: 700; font-size: .9rem; }
.legal-content { padding: 48px 52px; border: 1px solid #dfeaf4; border-radius: 24px; background: #fff; box-shadow: 0 20px 55px rgba(23, 72, 116, .065); }
.legal-content > h1 { display: none; }
.legal-content h2 { margin: 46px 0 18px; padding-top: 7px; color: #11385f; font-size: 1.45rem; line-height: 1.3; letter-spacing: -.02em; }
.legal-content h2:first-of-type { margin-top: 0; }
.legal-content h3 { margin: 30px 0 11px; color: #1768e5; font-size: 1.05rem; line-height: 1.4; }
.legal-content p, .legal-content li { color: #526b83; font-size: .98rem; line-height: 1.82; }
.legal-content p { margin: 0 0 15px; }
.legal-content ul { margin: 6px 0 24px; padding-left: 22px; }
.legal-content li { margin-bottom: 9px; }
.legal-content strong { color: #183b5c; }
.site-footer .active-legal { color: #77bfff; }
@media (max-width: 900px) {
  .legal-hero { padding: 88px 22px 58px; }
  .legal-section { padding: 50px 22px 80px; }
  .legal-layout { grid-template-columns: 1fr; gap: 24px; }
  .legal-sidebar { position: static; }
  .legal-sidebar-card { display: grid; grid-template-columns: 1fr auto; gap: 4px 18px; align-items: center; }
  .legal-sidebar-label, .legal-sidebar-card strong, .legal-sidebar-card p { grid-column: 1; }
  .legal-sidebar-card a { grid-column: 2; grid-row: 1 / span 3; }
  .legal-content { padding: 36px 30px; }
}
@media (max-width: 600px) {
  .legal-hero { padding: 72px 18px 46px; }
  .legal-section { padding: 34px 16px 64px; }
  .legal-back { margin-bottom: 26px; }
  .legal-hero p { font-size: 1rem; }
  .legal-sidebar-card { display: block; padding: 20px; }
  .legal-sidebar-card a { margin-top: 18px; }
  .legal-content { padding: 28px 21px; border-radius: 18px; }
  .legal-content h2 { margin-top: 36px; font-size: 1.25rem; }
}
