:root{--navy:#0b2f57;--blue:#0c64aa;--blue2:#2a8fd0;--red:#d71920;--ink:#18293b;--muted:#607286;--light:#f3f7fb;--line:#dce7f0;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);line-height:1.45}.topbar{position:sticky;top:0;z-index:20;height:76px;display:flex;align-items:center;gap:28px;padding:0 5vw;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand img{width:165px;display:block}.topbar nav{display:flex;gap:22px;margin-left:auto}.topbar nav a{text-decoration:none;font-size:14px;color:#31465c}.topbar nav a:hover{color:var(--red)}.langs{display:flex;gap:7px;align-items:center}.lang{border:0;background:none;padding:5px;color:#728195;cursor:pointer}.lang.active{color:var(--red);font-weight:800;border-bottom:2px solid var(--red)}
.hero{min-height:540px;display:grid;grid-template-columns:47% 53%;background:linear-gradient(130deg,#fbfcfd 0%,#edf5fb 44%,#d9eaf8 44%)}.hero-copy{padding:72px 5vw;display:flex;flex-direction:column;justify-content:center}.kicker{font-size:12px;letter-spacing:.18em;color:#6b7d91;font-weight:800;margin-bottom:18px}h1{font-size:clamp(42px,5vw,72px);line-height:.94;letter-spacing:-.045em;color:var(--navy);margin:0}.lead{font-size:20px;max-width:700px;color:#354c63;margin:22px 0 10px}.services-line{font-size:13px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#41566c}.cta{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:4px;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.03em;border:1px solid transparent;cursor:pointer}.red{background:var(--red);color:#fff}.outline{background:#fff;border-color:var(--blue);color:var(--navy)}.full{width:100%}.hero-art{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(6,35,68,.94),rgba(16,96,157,.72))}.rack{position:absolute;top:0;bottom:0;width:25%;background:repeating-linear-gradient(to bottom,#a6bfd5 0 4px,transparent 4px 56px),repeating-linear-gradient(to right,rgba(255,255,255,.14) 0 3px,transparent 3px 52px);opacity:.68}.rack.a{left:12%;transform:skewY(-4deg)}.rack.b{right:14%;transform:skewY(3deg)}.belt{position:absolute;height:55px;background:linear-gradient(#b7c4cf,#5a6976 35%,#263440 35%,#71818d 56%,#263440 56%,#a4b3bf);box-shadow:0 10px 22px rgba(0,0,0,.28);transform:skewX(-18deg)}.belt.one{left:-5%;right:7%;bottom:115px}.belt.two{left:20%;right:-12%;bottom:225px;opacity:.8}.parcel{position:absolute;width:88px;height:52px;border-radius:5px;box-shadow:0 8px 20px rgba(0,0,0,.28)}.p1{background:#e6eef5;left:28%;bottom:245px}.p2{background:#d71920;right:14%;bottom:145px}.p3{background:#1d7bc1;left:53%;bottom:130px}.hero-msg{position:absolute;right:4vw;top:56px;display:flex;flex-direction:column;gap:14px;text-align:right;color:#fff;font-size:12px;letter-spacing:.18em}
.section{padding:72px 5vw}.alt{background:#fbfdff}.head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:28px}.head h2{font-size:34px;line-height:1.05;margin:0;color:var(--navy);letter-spacing:-.03em}.head p{max-width:520px;color:var(--muted);margin:0}.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.cards article{background:linear-gradient(180deg,#f7fbfe,#eef5fa);border:1px solid #e0ebf3;border-radius:8px;padding:22px 18px;min-height:250px}.cards i{font-style:normal;font-size:27px;color:var(--red);font-weight:900}.cards h3{font-size:16px;color:var(--navy);text-transform:uppercase;margin:12px 0}.cards p{font-size:14px;color:#4d6074;margin:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.steps div{padding:18px 22px;background:linear-gradient(90deg,var(--navy),var(--blue));color:#fff;min-height:74px}.steps .moe{background:linear-gradient(90deg,#e52b32,#bc0f16)}.steps b{display:block;font-size:17px}.steps span{font-size:12px;opacity:.9}.alt blockquote{margin:28px 0 0 auto;max-width:620px;border-left:3px solid var(--red);padding-left:22px;font:italic 20px Georgia,serif;color:var(--blue)}
.approach{display:grid;grid-template-columns:3fr 1fr;gap:26px}.flow5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.flow5 div{text-align:center;padding:20px 10px;border-radius:10px;background:#f7fbfe;border:1px solid #e3edf4}.flow5 span{display:flex;width:38px;height:38px;align-items:center;justify-content:center;margin:0 auto 10px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px}.flow5 b{display:block;text-transform:uppercase;color:var(--navy);font-size:14px}.flow5 small{display:block;margin-top:6px;color:var(--muted)}.approach aside{padding:26px;background:linear-gradient(160deg,#eff8ff,#e4f0fa);border-left:4px solid var(--red)}.approach aside strong{font-size:20px;color:var(--navy)}.approach aside p{color:#516579}
.experience{display:grid;grid-template-columns:1.15fr 1.15fr 1.5fr;gap:28px}.factory{border-radius:10px;min-height:300px;background:linear-gradient(145deg,#dfe7ec,#93a5b5);padding:28px;display:flex;gap:12px;align-items:flex-end}.factory span{flex:1;height:82%;background:repeating-linear-gradient(to bottom,#fafafa 0 15px,#cfd8df 15px 19px,#7c8b96 19px 22px);border:2px solid #667684}.exptext{color:#415568}.timeline{background:#f5faff;padding:28px;border-radius:10px}.big{font-size:38px;font-weight:900;color:var(--blue)}.big span{font-size:18px}.timeline>p{font-weight:800;text-transform:uppercase;color:var(--navy);margin-top:0}.tl{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--navy)}.timeline blockquote{margin-top:24px;border-left:3px solid var(--red);padding-left:18px;color:var(--red);font:italic 17px Georgia,serif}
.refs{display:flex;gap:28px;flex-wrap:wrap;align-items:center;padding:18px 0 32px;font-size:18px;font-weight:800;color:#17385e}.examples{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.examples article{border:1px solid var(--line);border-radius:8px;overflow:hidden}.examples h3,.examples p{padding:0 18px}.examples h3{color:var(--navy);margin-bottom:6px}.examples p{color:var(--muted);font-size:14px;margin-top:0;padding-bottom:16px}.mini{height:150px;background:#eef4f8;position:relative}.mini.flow:before{content:"";position:absolute;left:10%;right:10%;top:50%;height:2px;background:var(--blue);box-shadow:0 -35px 0 #9db8cb,0 35px 0 #9db8cb}.mini.flow:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--red);left:25%;top:calc(50% - 7px);box-shadow:120px -35px 0 var(--blue),220px 35px 0 var(--red)}.mini.scenario{background:linear-gradient(145deg,#d5e5ef 15%,#e9f0f4 15% 32%,#a6bcc9 32% 38%,#f0f4f6 38%)}.mini.layout{background:repeating-linear-gradient(0deg,#dce6ec 0 2px,transparent 2px 24px),repeating-linear-gradient(90deg,#dce6ec 0 2px,transparent 2px 34px),#f8fbfd}
.aboutcontact{display:grid;grid-template-columns:1.1fr .9fr}.about{background:linear-gradient(135deg,#06294d,#0a5792);color:#fff;padding:38px 5vw;display:grid;grid-template-columns:1.25fr .55fr 1.6fr;gap:24px;align-items:center}.about blockquote{font:italic 18px/1.55 Georgia,serif;margin:0}.about img{width:100%;max-width:180px;aspect-ratio:3/4;object-fit:cover;border-radius:3px;box-shadow:0 12px 28px rgba(0,0,0,.2)}.about h2{margin:0 0 4px}.role{font-weight:800;margin-top:0}.about div p{color:#e4edf6}.linkedin{display:inline-block;margin-top:10px;background:#fff;color:#173a5f;text-decoration:none;padding:10px 14px;border-radius:4px;font-weight:800;font-size:13px}.contact{padding:38px 5vw}.contact h2{color:var(--navy);margin-top:0}.contact>p{color:var(--muted)}.row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}input,textarea{width:100%;border:1px solid #cddae5;border-radius:4px;padding:13px 12px;font:inherit}textarea{margin:10px 0}.status{min-height:20px;font-size:13px;color:var(--blue)}.contacts{display:flex;flex-direction:column;gap:6px;margin-top:18px}.contacts a{text-decoration:none;color:#31485f}footer{padding:20px 5vw;display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;border-top:1px solid var(--line);font-size:12px;color:#617489}footer b{color:var(--red)}footer a{text-decoration:none;color:inherit}
@media(max-width:1100px){.topbar nav{display:none}.cards{grid-template-columns:repeat(3,1fr)}.experience{grid-template-columns:1fr 1fr}.timeline{grid-column:1/-1}.aboutcontact{grid-template-columns:1fr}.about{grid-template-columns:1fr 180px 1.5fr}}
@media(max-width:780px){.topbar{height:68px;padding:0 18px}.brand img{width:145px}.hero{grid-template-columns:1fr}.hero-copy{padding:56px 24px 44px}.hero-art{min-height:320px}.section{padding:54px 22px}.head{display:block}.head p{margin-top:12px}.cards{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.approach{grid-template-columns:1fr}.flow5{grid-template-columns:1fr}.experience{grid-template-columns:1fr}.examples{grid-template-columns:1fr}.about{grid-template-columns:1fr}.about img{max-width:150px}.row{grid-template-columns:1fr}footer{grid-template-columns:1fr}}
.hub-case{margin-top:28px;display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:12px;align-items:stretch}.hub-intro,.hub-stat{border:1px solid var(--line);border-radius:9px;background:#fff;padding:20px}.hub-intro{display:flex;flex-direction:column;justify-content:center;border-left:4px solid var(--red)}.hub-intro strong{color:var(--navy);font-size:18px;line-height:1.25}.hub-intro span{margin-top:8px;color:var(--muted);font-size:13px}.hub-stat{display:flex;flex-direction:column;justify-content:center;text-align:center;background:linear-gradient(160deg,#f7fbff,#eef6fb)}.hub-stat b{font-size:38px;line-height:1;color:var(--blue)}.hub-stat span{margin-top:7px;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--navy)}
@media(max-width:900px){.hub-case{grid-template-columns:1fr 1fr}.hub-intro{grid-column:1/-1}}
@media(max-width:520px){.hub-case{grid-template-columns:1fr}.hub-intro{grid-column:auto}}

/* 2026-09-10 validated content update */
.mini img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.about{grid-template-columns:1fr;align-items:start;gap:22px}
.about blockquote{width:100%;font-size:20px;line-height:1.55}
.about-person{display:flex;align-items:center;gap:24px}
.about-person img{width:116px;max-width:116px;aspect-ratio:3/4;object-fit:cover;flex:0 0 auto}
.about-person h2{margin:0 0 4px}
.about-person .role{margin:0}
.about-copy{width:100%;margin:0;color:#e4edf6;line-height:1.55}
@media(max-width:780px){.about-person{align-items:flex-start}.about blockquote{font-size:18px}}

/* 2026-09-10 references: full-size technical deliverables, captions below */
.examples article{border:0;border-radius:0;overflow:visible;background:transparent}
.examples .mini{height:275px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.examples .mini img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.examples h3{padding:0;margin:14px 0 6px;color:var(--navy)}
.examples p{padding:0;margin:0;color:var(--muted);font-size:14px}
@media(max-width:1100px){.examples .mini{height:230px}}
@media(max-width:780px){.examples .mini{height:auto;aspect-ratio:16/9}.examples h3{margin-top:12px}}

/* 2026-09-10 v3: stronger frames around validated reference deliverables */
.examples .mini{border:3px solid var(--blue)}

/* 2026-09-10 v4: compact about/contact band to reduce empty blue space */
.aboutcontact{grid-template-columns:1.25fr .75fr;align-items:stretch}
.about{padding:26px 4vw;gap:14px}
.about blockquote{font-size:18px;line-height:1.4}
.about-person{gap:18px}
.about-person img{width:92px;max-width:92px}
.about-copy{line-height:1.42;font-size:14px}
.contact{padding:26px 4vw}
.contact h2{margin-bottom:8px}
.contact>p{margin:0 0 12px;font-size:14px;line-height:1.35}
.contact textarea{height:74px;min-height:74px;resize:vertical}
.contact .btn{min-height:42px}
.contacts{margin-top:10px;gap:3px;font-size:13px}
@media(max-width:1100px){.aboutcontact{grid-template-columns:1fr}.about{padding:30px 5vw}.contact{padding:30px 5vw}}
@media(max-width:780px){.about{padding:28px 22px;gap:16px}.about blockquote{font-size:18px}.about-person img{width:96px;max-width:96px}.contact{padding:28px 22px}.contact textarea{height:96px}}

/* 2026-09-10 v5: improve readability of biography below portrait */
.about-copy{font-size:16px;line-height:1.48}
@media(max-width:780px){.about-copy{font-size:15px;line-height:1.5}}

/* 2026-09-10 v6: rebalance final about/contact band */
.aboutcontact{grid-template-columns:.9fr 1.1fr}
.about{padding-left:3.5vw;padding-right:3.5vw}
.contact{padding-left:4.5vw;padding-right:4.5vw}
@media(max-width:1100px){.aboutcontact{grid-template-columns:1fr}}

/* 2026-09-10 v7: compact the blue profile panel independently of contact */
.aboutcontact{align-items:start}
.about{padding-top:18px;padding-bottom:18px;gap:10px;align-self:start}
.about blockquote{font-size:17px;line-height:1.32}
.about-person{gap:16px}
.about-person img{width:82px;max-width:82px}
.about-copy{font-size:16px;line-height:1.4;margin:0}
@media(max-width:1100px){.aboutcontact{align-items:stretch}.about{padding-top:24px;padding-bottom:24px}}

/* 2026-09-10 test: replace generic factory illustration with career path */
.career-path{min-height:300px;border-radius:10px;background:linear-gradient(145deg,#f5faff,#e6f1fa);padding:22px 24px;display:flex;flex-direction:column;justify-content:center;border:1px solid #d5e4f0}
.career-step{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center}.career-step>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--blue);color:var(--blue);font-size:11px;font-weight:900}.career-step b{display:block;color:var(--navy);font-size:16px}.career-step small{display:block;color:#63788c;font-size:11px;margin-top:2px}.career-step.current>span{background:var(--red);border-color:var(--red);color:#fff}.career-step.current b{color:var(--red)}.career-arrow{height:15px;line-height:15px;margin-left:15px;color:#8aa9c0;font-weight:900}
@media(max-width:780px){.career-path{min-height:auto}}

/* 2026-09-10 v10: authentic sorter photo in hero */
.hero-art{
  background-image:linear-gradient(145deg,rgba(5,39,75,.48),rgba(10,71,120,.34)),url('assets/hero-geodis-sorter.jpg');
  background-size:cover;
  background-position:center center;
}
.hero-art .rack,.hero-art .belt,.hero-art .parcel{display:none}
.hero-msg{font-size:16px;font-weight:800;text-shadow:0 2px 5px rgba(0,0,0,.5)}

/* Breathing room between technical captures and their blue frames */
.examples .mini{padding:8px;box-sizing:border-box;background:#fff}
.examples .mini img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}


/* 2026-09-10 final polish: unified signature statements */
.signature-line{
  max-width:620px !important;
  border-left:3px solid var(--red) !important;
  padding-left:22px !important;
  font-family:Georgia,serif !important;
  font-size:20px !important;
  font-style:italic !important;
  font-weight:400 !important;
  line-height:1.45 !important;
  color:var(--blue) !important;
}
.head .signature-line{margin:0 !important;}
.timeline .signature-line{margin:24px 0 0 !important;}
blockquote.signature-line{margin-top:28px;}
@media(max-width:780px){.signature-line{font-size:18px !important;padding-left:18px !important;}}

/* 2026-09-10 v13: LinkedIn in profile panel */
.linkedin-profile{display:inline-flex;align-items:center;gap:7px;margin-top:7px;color:#fff;text-decoration:none;font-size:13px;font-weight:700;line-height:1}.linkedin-profile:hover{text-decoration:underline}.linkedin-mark{display:inline-grid;place-items:center;width:21px;height:21px;border:1.5px solid rgba(255,255,255,.9);border-radius:3px;font-family:Arial,sans-serif;font-size:13px;font-weight:900;letter-spacing:-.04em}
