:root {
  --bg: hsl(0,0%,100%); --fg: hsl(220,20%,10%);
  --primary: hsl(197,78%,61%); --muted-fg: hsl(220,10%,45%);
  --accent: hsl(197,78%,95%); --accent-fg: hsl(197,78%,30%);
  --border: hsl(220,13%,91%); --muted: hsl(210,20%,97%);
  --hero-dark: hsl(220,25%,8%);
}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:"Lato",sans-serif; background:var(--bg); color:var(--fg); -webkit-font-smoothing:antialiased; }
a { text-decoration:none; }
button { cursor:pointer; font-family:inherit; }

@keyframes fadeInUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulseBg  { 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes scaleIn  { from{opacity:0;transform:scale(.9)} to{opacity:1;transform:scale(1)} }

.icon-sm  { width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }
.icon-md  { width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }
.icon-lg  { width:24px;height:24px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }
.icon-xl  { width:32px;height:32px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }

/* NAV */
nav { background:rgba(255,255,255,.96); backdrop-filter:blur(20px); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:100; }
.nav-inner { max-width:1200px; margin:0 auto; padding:0 2rem; height:72px; display:flex; align-items:center; justify-content:space-between; }
.nav-logo img { height:36px; width:auto; }
.nav-right { display:flex; align-items:center; gap:1rem; }
.nav-back { font-size:.8rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-fg); display:inline-flex; align-items:center; gap:.4rem; padding:.5rem 1rem; border-radius:8px; transition:color .2s,background .2s; }
.nav-back:hover { color:var(--primary); background:var(--accent); }
.btn-nav { display:inline-flex; align-items:center; gap:.5rem; padding:.6rem 1.4rem; background:var(--primary); color:white; font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; border:none; border-radius:8px; transition:background .2s; cursor:pointer; }
.btn-nav:hover { background:hsl(197,78%,50%); }

/* PAGE HERO */
.page-hero { background:var(--hero-dark); padding:5rem 2rem 4rem; position:relative; overflow:hidden; }
.page-hero-grid { position:absolute; inset:0; opacity:.03; background-image:linear-gradient(hsl(197,78%,61%) 1px,transparent 1px),linear-gradient(90deg,hsl(197,78%,61%) 1px,transparent 1px); background-size:60px 60px; }
.page-hero-orb { position:absolute; top:-4rem; right:-4rem; width:28rem; height:28rem; border-radius:50%; background:hsla(197,78%,61%,.07); filter:blur(56px); }
.page-hero-orb2 { position:absolute; bottom:-4rem; left:-4rem; width:20rem; height:20rem; border-radius:50%; background:hsla(200,76%,74%,.05); filter:blur(48px); }
.page-hero-inner { position:relative; z-index:10; max-width:860px; margin:0 auto; animation:fadeInUp .6s ease both; }
.page-hero-icon { width:72px; height:72px; border-radius:16px; background:hsla(197,78%,61%,.15); border:1px solid hsla(197,78%,61%,.2); display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; color:var(--primary); }
.page-tag { font-size:.75rem; font-weight:900; color:var(--primary); letter-spacing:.18em; text-transform:uppercase; margin-bottom:.75rem; }
.page-title { font-size:clamp(2.2rem,5vw,3.5rem); font-weight:900; letter-spacing:-.03em; color:white; margin-bottom:1rem; line-height:1.1; }
.page-subtitle { font-size:1.15rem; color:rgba(255,255,255,.6); line-height:1.7; max-width:640px; margin-bottom:2rem; }
.hero-tags { display:flex; flex-wrap:wrap; gap:.6rem; }
.hero-tag { font-size:.75rem; font-weight:900; padding:.4rem .9rem; border-radius:999px; border:1px solid hsla(197,78%,61%,.25); background:hsla(197,78%,61%,.08); color:var(--primary); }

/* CONTENT */
.content-max { max-width:1100px; margin:0 auto; padding:0 2rem; }

/* OVERVIEW */
.overview { padding:5rem 0; }
.overview-grid { display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
@media(min-width:900px) { .overview-grid { grid-template-columns:3fr 2fr; gap:5rem; } }
.overview h2 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:900; letter-spacing:-.02em; margin-bottom:1rem; }
.overview h2 span { color:var(--primary); }
.overview p { color:var(--muted-fg); font-size:1rem; line-height:1.8; margin-bottom:1.1rem; }
.stat-card { background:var(--primary); border-radius:20px; padding:2rem; display:flex; flex-direction:column; gap:1.25rem; }
.stat-item { padding:1.25rem; border-radius:12px; background:white; border:1px solid hsla(197,78%,61%,.15); }
.stat-num { font-size:2rem; font-weight:900; color:var(--primary) !important; line-height:1; }
.stat-label { font-size:.8rem; color:hsl(220,20%,10%) !important; margin-top:.25rem; font-weight:700; }

/* CAPABILITIES */
.capabilities { padding:5rem 0; background:var(--muted); }
.section-tag { font-size:.75rem; font-weight:900; color:var(--primary); letter-spacing:.18em; text-transform:uppercase; margin-bottom:.5rem; }
.section-h2 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:900; letter-spacing:-.02em; margin-bottom:.75rem; }
.section-desc { color:var(--muted-fg); font-size:1rem; line-height:1.7; max-width:600px; margin-bottom:2.5rem; }
.cap-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.25rem; }
.cap-card { background:white; border:1px solid var(--border); border-radius:16px; padding:1.5rem; transition:border-color .3s,box-shadow .3s,transform .3s; }
.cap-card:hover { border-color:hsla(197,78%,61%,.3); box-shadow:0 8px 28px hsla(197,78%,61%,.08); transform:translateY(-2px); }
.cap-icon { width:44px; height:44px; border-radius:10px; background:hsla(197,78%,61%,.1); display:flex; align-items:center; justify-content:center; margin-bottom:1rem; color:var(--primary); }
.cap-title { font-size:.95rem; font-weight:900; margin-bottom:.4rem; }
.cap-desc { font-size:.85rem; color:var(--muted-fg); line-height:1.65; }

/* PROCESS */
.process { padding:5rem 0; }
.process-steps { display:flex; flex-direction:column; gap:1.5rem; margin-top:2.5rem; }
@media(min-width:700px) { .process-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.25rem; } }
.process-step { position:relative; padding:1.75rem; border-radius:16px; border:1px solid var(--border); background:white; }
.step-num { font-size:.7rem; font-weight:900; color:var(--primary); letter-spacing:.15em; text-transform:uppercase; margin-bottom:.75rem; }
.step-title { font-size:1rem; font-weight:900; margin-bottom:.5rem; }
.step-desc { font-size:.85rem; color:var(--muted-fg); line-height:1.65; }

/* CTA */
.cta-band { background:var(--hero-dark); padding:5rem 2rem; text-align:center; position:relative; overflow:hidden; }
.cta-band-orb { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:32rem; height:32rem; border-radius:50%; background:hsla(197,78%,61%,.06); filter:blur(60px); }
.cta-band h2 { font-size:clamp(1.8rem,4vw,2.8rem); font-weight:900; color:white; margin-bottom:1rem; position:relative; z-index:1; }
.cta-band p { color:rgba(255,255,255,.55); font-size:1rem; margin-bottom:2rem; position:relative; z-index:1; }
.cta-actions { display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; position:relative; z-index:1; }
.btn-primary { display:inline-flex; align-items:center; gap:.6rem; padding:.9rem 2rem; background:var(--primary); color:white; font-size:.95rem; font-weight:900; border:none; border-radius:12px; cursor:pointer; font-family:inherit; transition:background .2s,transform .15s; }
.btn-primary:hover { background:hsl(197,78%,50%); transform:translateY(-1px); }
.btn-outline { display:inline-flex; align-items:center; gap:.6rem; padding:.9rem 2rem; border:1px solid hsla(197,78%,61%,.35); color:var(--primary); font-size:.95rem; font-weight:900; background:transparent; border-radius:12px; transition:background .2s; }
.btn-outline:hover { background:hsla(197,78%,61%,.1); }

/* OTHER SERVICES */
.other-services { padding:5rem 0; background:var(--muted); }
.services-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; margin-top:2rem; }
.svc-card { background:white; border:1px solid var(--border); border-radius:14px; padding:1.25rem; display:flex; align-items:center; gap:.85rem; transition:border-color .3s,box-shadow .3s; text-decoration:none; color:var(--fg); }
.svc-card:hover { border-color:hsla(197,78%,61%,.3); box-shadow:0 4px 16px hsla(197,78%,61%,.08); }
.svc-icon { width:40px; height:40px; border-radius:10px; background:hsla(197,78%,61%,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--primary); }
.svc-name { font-size:.875rem; font-weight:900; }
.svc-sub  { font-size:.75rem; color:var(--muted-fg); }

/* FOOTER */
footer { background:var(--bg); border-top:1px solid var(--border); padding:1.5rem 2rem; text-align:center; }
footer p { font-size:.75rem; color:var(--muted-fg); }

@media(max-width:600px) { .content-max { padding:0 1.25rem; } .page-hero { padding:3.5rem 1.25rem 3rem; } .cta-band { padding:3.5rem 1.25rem; } }

/* Hero tags — each div is one row, tags wrap within it */
.hero-tags { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:.5rem; }
.hero-tags:last-child { margin-bottom:0; }
