:root{
  --ink:#12314F;
  --azure:#1F6FB2;
  --azure-deep:#174E7C;
  --paper:#F5F8FA;
  --slate:#39485A;
  --line:#D5DEE6;
  --amber:#E9A13B;
  --radius:6px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Archivo",system-ui,sans-serif;
  color:var(--slate);
  background:var(--paper);
  line-height:1.6;
  font-size:16.5px;
}
h1,h2,h3{color:var(--ink);line-height:1.15;letter-spacing:-0.015em}
h1{font-weight:800;font-size:clamp(2.4rem,5.4vw,4.1rem)}
h2{font-weight:800;font-size:clamp(1.7rem,3.4vw,2.5rem);margin-bottom:.6rem}
h3{font-weight:700;font-size:1.13rem}
p{max-width:62ch}
a{color:var(--azure);text-decoration:none}
a:focus-visible,button:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.kicker{font-weight:600;color:var(--azure-deep);margin-bottom:.4rem;display:block}

/* ---------- Nav ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(245,248,250,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:baseline;gap:.45rem;font-weight:800;color:var(--ink);font-size:1.25rem;letter-spacing:-0.02em}
.logo .dot{width:.55em;height:.55em;background:var(--amber);border-radius:50%;align-self:center}
.logo small{font-weight:500;color:var(--slate);font-size:.72rem;letter-spacing:.02em}
nav ul{display:flex;list-style:none;gap:1.6rem;align-items:center}
nav a{color:var(--ink);font-weight:600;font-size:.95rem}
nav a:hover{color:var(--azure)}
.btn{
  display:inline-block;background:var(--azure);color:#fff;font-weight:700;
  padding:.7rem 1.35rem;border-radius:var(--radius);border:none;cursor:pointer;
  font-size:.95rem;font-family:inherit;transition:background .15s;
}
.btn:hover{background:var(--azure-deep);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.menu-toggle{display:none;background:none;border:none;font-size:1.7rem;color:var(--ink);cursor:pointer}

/* ---------- Hero ---------- */
.hero{
  background:var(--ink);
  color:#DCE7F0;
  position:relative;overflow:hidden;
}
.hero .wrap{padding-top:96px;padding-bottom:104px;position:relative;z-index:1}
.hero h1{color:#fff;max-width:15ch}
.hero h1 em{font-style:normal;color:#8FC1EA}
.hero p{margin:1.4rem 0 2.2rem;font-size:1.12rem;max-width:52ch;color:#B8C9D8}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero .btn.ghost{color:#fff;border-color:#5D7793}
.hero .btn.ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.hero-grid{
  position:absolute;inset:0;opacity:.35;
  background-image:linear-gradient(#1E4066 1px,transparent 1px),linear-gradient(90deg,#1E4066 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 90% 90% at 75% 20%,#000 30%,transparent 75%);
}
@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero p,.hero-cta{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
  .hero p{animation-delay:.12s}
  .hero-cta{animation-delay:.22s}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}

/* ---------- Value strip ---------- */
.values{background:#fff;border-bottom:1px solid var(--line)}
.values .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding-top:0;padding-bottom:0}
.value{padding:2rem 1.5rem;border-left:1px solid var(--line)}
.value:first-child{border-left:none;padding-left:0}
.value h3{margin-bottom:.35rem}
.value p{font-size:.93rem}

/* ---------- Sections ---------- */
section{padding:88px 0}
.about{background:var(--paper)}
.about .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:start}
.about ul{list-style:none;margin-top:1.6rem;display:grid;gap:1.1rem}
.about li{padding-left:1.4rem;position:relative}
.about li::before{content:"";position:absolute;left:0;top:.55em;width:.55rem;height:.55rem;background:var(--amber);border-radius:2px}
.about li strong{color:var(--ink)}
.skills-card{
  background:var(--ink);color:#C9D9E7;border-radius:10px;padding:2.2rem;
}
.skills-card h3{color:#fff;font-size:1.35rem;margin-bottom:1rem}
.skills-card ol{list-style:none;display:grid;gap:.8rem;margin:1.2rem 0 1.8rem}
.skills-card ol li{border-bottom:1px solid #29496C;padding-bottom:.8rem;font-weight:600;color:#E8F0F7}
.skills-card ol li span{display:block;font-weight:400;font-size:.9rem;color:#9DB4C8}

/* ---------- Services ---------- */
.services{background:#fff;border-top:1px solid var(--line)}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:2.6rem}
.svc{
  border:1px solid var(--line);border-radius:var(--radius);
  padding:1.8rem 1.6rem;background:var(--paper);
  border-top:4px solid var(--azure);
  display:flex;flex-direction:column;gap:.7rem;
}
.svc:nth-child(even){border-top-color:var(--amber)}
.svc p{font-size:.95rem;flex:1}
.svc a{font-weight:700;font-size:.92rem}
.svc a:hover{text-decoration:underline}

/* ---------- Contact ---------- */
.contact{background:var(--paper)}
.contact .wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start}
.contact-list{list-style:none;display:grid;gap:1.4rem;margin-top:1.8rem}
.contact-list li{display:grid;gap:.15rem}
.contact-list .label{font-weight:700;color:var(--ink);font-size:.95rem}
form{display:grid;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:2rem}
.field{display:grid;gap:.35rem}
label{font-weight:600;color:var(--ink);font-size:.92rem}
input,textarea{
  font-family:inherit;font-size:1rem;padding:.75rem .9rem;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--slate);
}
input:focus,textarea:focus{outline:2px solid var(--azure);border-color:var(--azure)}
textarea{min-height:120px;resize:vertical}
.form-note{font-size:.85rem;color:#6B7A8A}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:#9DB4C8;padding:56px 0 32px;font-size:.93rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;margin-bottom:2.5rem}
footer h3{color:#fff;font-size:1rem;margin-bottom:.8rem}
footer ul{list-style:none;display:grid;gap:.5rem}
footer a{color:#C9D9E7}
footer a:hover{color:#fff}
.foot-bottom{border-top:1px solid #29496C;padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .values .wrap{grid-template-columns:1fr 1fr}
  .value{border-left:none;padding-left:0}
  .about .wrap,.contact .wrap{grid-template-columns:1fr;gap:2.5rem}
  .services-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  nav ul{
    display:none;position:absolute;top:68px;left:0;right:0;
    background:#fff;border-bottom:1px solid var(--line);
    flex-direction:column;padding:1.2rem 24px;gap:1rem;align-items:flex-start;
  }
  nav ul.open{display:flex}
  .menu-toggle{display:block}
  .nav .btn{display:none}
  .values .wrap{grid-template-columns:1fr}
  .services-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  section{padding:64px 0}
}
