:root{
  --blue:#0077FF;
  --blue-tint:#EAF3FF;
  --navy:#0B2545;
  --green:#22C55E;
  --green-tint:#E8FBF0;
  --orange:#FF6B00;
  --gray:#374151;
  --gray-light:#6B7280;
  --border:#E5E7EB;
  --white:#FFFFFF;
  --display: 'Sora', sans-serif;
  --body: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:var(--body); color:var(--gray); background:var(--white); line-height:1.6; -webkit-font-smoothing:antialiased;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
ul{list-style:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
h1,h2,h3,h4{font-family:var(--display); color:var(--navy); line-height:1.15; letter-spacing:-0.01em;}
.eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue); font-weight:500;}

/* Buttons */
.btn{display:inline-flex; align-items:center; gap:8px; font-family:var(--body); font-weight:600; font-size:15px; padding:14px 26px; border-radius:8px; transition:transform .15s ease, box-shadow .15s ease; cursor:pointer; border:none;}
.btn:focus-visible{outline:3px solid var(--navy); outline-offset:2px;}
.btn-primary{background:var(--orange); color:var(--white); box-shadow:0 4px 14px rgba(255,107,0,0.28);}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(255,107,0,0.35);}
.btn-secondary{background:transparent; color:var(--blue); border:1.5px solid var(--blue);}
.btn-secondary:hover{background:var(--blue-tint);}

/* Nav (shared header, identical on every page) */
header{position:sticky; top:0; background:rgba(255,255,255,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--border); z-index:100;}
nav{display:flex; align-items:center; justify-content:space-between; padding:18px 24px;}
.logo{font-family:var(--display); font-weight:700; font-size:20px; color:var(--blue); letter-spacing:0.01em;}
.logo span{color:var(--navy);}
.nav-links{display:flex; gap:32px; font-size:14px; font-weight:500; color:var(--gray);}
.nav-links a:hover{color:var(--blue);}
.nav-cta{display:flex; align-items:center; gap:20px;}
.nav-links, .nav-cta .btn-secondary{display:none;}
@media(min-width:860px){ .nav-links{display:flex;} .nav-cta .btn-secondary{display:inline-flex;} }

/* Mobile menu (hamburger) */
.menu-toggle{display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:36px; height:36px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0;}
.menu-toggle span{display:block; width:22px; height:2px; background:var(--navy); border-radius:2px; transition:transform .2s ease, opacity .2s ease;}
.menu-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.active span:nth-child(2){opacity:0;}
.menu-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{display:none; flex-direction:column; padding:8px 24px 20px;}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:13px 2px; font-size:14.5px; font-weight:500; color:var(--gray); border-bottom:1px solid var(--border);}
.mobile-menu a.btn{margin-top:12px; justify-content:center; border-bottom:none;}
.mobile-menu a.btn-secondary{margin-top:12px;}
@media(max-width:859px){ .menu-toggle{display:flex;} }
@media(min-width:860px){ .mobile-menu{display:none !important;} }

/* Homepage hero */
.hero{background:linear-gradient(180deg, var(--blue-tint) 0%, #ffffff 100%); padding:76px 0 60px; text-align:center;}
.hero .eyebrow{background:var(--white); display:inline-block; padding:7px 16px; border-radius:20px; border:1px solid var(--border); margin-bottom:22px;}
.hero h1{font-size:clamp(32px, 5vw, 52px); max-width:780px; margin:0 auto 20px;}
.hero p{font-size:17px; color:var(--gray); max-width:560px; margin:0 auto 34px;}
.hero-ctas{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:56px;}

/* Flow diagram - signature element */
.flow{display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; max-width:900px; margin:0 auto;}
.flow-node{background:var(--white); border:1px solid var(--border); border-radius:10px; padding:12px 18px; font-size:13px; font-weight:600; color:var(--navy); box-shadow:0 2px 8px rgba(11,37,69,0.06); display:flex; align-items:center; gap:8px;}
.flow-node.hub{background:var(--navy); color:var(--white); border:none;}
.flow-node.result{background:var(--green); color:var(--white); border:none;}
.flow-arrow{color:var(--gray-light); font-size:18px;}
@media(max-width:640px){ .flow{gap:6px;} .flow-node{font-size:11px; padding:9px 12px;} }

/* Trust bar */
.trust{padding:36px 0; border-bottom:1px solid var(--border);}
.trust-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; text-align:center;}
.trust-stat{flex:1; min-width:140px;}
.trust-stat .num{font-family:var(--mono); font-size:26px; color:var(--blue); font-weight:500;}
.trust-stat .label{font-size:13px; color:var(--gray-light); margin-top:4px;}

/* Section shell (used on every page) */
section{padding:76px 0;}
.section-head{max-width:620px; margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3vw,36px); margin-top:10px;}
.section-head p{color:var(--gray-light); margin-top:12px; font-size:15px;}

/* Breadcrumb (interior pages) */
.breadcrumb{font-size:13px; color:var(--gray-light); padding:20px 0 0;}
.breadcrumb a{color:var(--blue);}
.breadcrumb span{margin:0 6px;}

/* Page hero (service/company/contact pages - smaller sibling of .hero) */
.page-hero{background:linear-gradient(180deg, var(--blue-tint) 0%, #ffffff 100%); padding:36px 0 52px;}
.page-hero .icon-badge{width:52px; height:52px; border-radius:12px; background:var(--white); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:18px;}
.page-hero h1{font-size:clamp(28px,4vw,42px); max-width:680px; margin-bottom:14px;}
.page-hero p.lead{font-size:16.5px; color:var(--gray); max-width:560px; margin-bottom:28px;}
.page-hero .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:0;}

/* What it is / who it's for - two column (service pages) */
.two-col{display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:start;}
@media(max-width:820px){ .two-col{grid-template-columns:1fr;} }
.info-card{background:var(--blue-tint); border-radius:14px; padding:26px;}
.info-card h3{font-size:16px; margin-bottom:12px;}
.info-card ul li{font-size:14px; color:var(--gray); margin-bottom:8px; padding-left:18px; position:relative;}
.info-card ul li::before{content:"\2192"; position:absolute; left:0; color:var(--blue); font-weight:700;}

/* Deliverables (service pages) */
.deliver-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:16px;}
.deliver-item{border:1px solid var(--border); border-radius:12px; padding:20px; display:flex; gap:12px; align-items:flex-start;}
.deliver-item .check{color:var(--green); font-weight:700; font-size:16px; flex-shrink:0;}
.deliver-item p{font-size:14px; color:var(--gray);}

/* Connect banner (service pages - cross-links) */
.connect-banner{background:var(--navy); color:var(--white); border-radius:16px; padding:32px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.connect-banner p{font-size:15px; color:#B9C6DA; max-width:520px;}
.connect-banner a.btn-primary{background:var(--orange);}

/* Service pillars (homepage + category refs) */
.pillars{display:grid; grid-template-columns:repeat(auto-fit, minmax(210px,1fr)); gap:16px;}
.pillar{background:var(--white); border:1px solid var(--border); border-radius:14px; padding:24px; transition:border-color .15s ease, transform .15s ease;}
.pillar:hover{border-color:var(--blue); transform:translateY(-3px);}
.pillar .icon{width:40px; height:40px; border-radius:10px; background:var(--blue-tint); display:flex; align-items:center; justify-content:center; font-size:18px; margin-bottom:16px;}
.pillar h3{font-size:17px; margin-bottom:8px;}
.pillar p{font-size:13.5px; color:var(--gray-light); margin-bottom:14px;}
.pillar .see{font-size:13px; font-weight:600; color:var(--blue); display:inline-flex; align-items:center; gap:5px;}

/* Differentiator (homepage) */
.differentiator{background:var(--navy); color:var(--white); border-radius:20px; padding:56px 32px; text-align:center;}
.differentiator .eyebrow{color:#7FB6FF; background:rgba(255,255,255,0.08);}
.differentiator h2{color:var(--white); margin:14px auto 16px; max-width:640px;}
.differentiator p{color:#B9C6DA; max-width:560px; margin:0 auto 44px; font-size:15px;}

/* Results / stat cards (homepage + case studies) */
.results-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:16px;}
.result-card{border:1px solid var(--border); border-radius:14px; padding:26px; background:var(--green-tint);}
.result-card .num{font-family:var(--mono); font-size:32px; color:var(--green); font-weight:500;}
.result-card .label{font-size:14px; color:var(--gray); margin-top:8px;}
.result-card .who{font-size:12.5px; color:var(--gray-light); margin-top:14px;}

/* Process (homepage + service pages) */
.process-list{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:20px;}
.process-step{border-left:3px solid var(--blue); padding-left:16px;}
.process-step .n{font-family:var(--mono); color:var(--blue); font-size:13px; font-weight:600;}
.process-step h3{font-size:16px; margin:6px 0 6px;}
.process-step p{font-size:13.5px; color:var(--gray-light);}

/* FAQ (service pages) */
.faq-item{border-bottom:1px solid var(--border); padding:18px 0;}
.faq-item h3{font-size:15.5px; font-weight:600; color:var(--navy); margin-bottom:8px;}
.faq-item p{font-size:14px; color:var(--gray-light);}

/* Testimonials */
.testimonial{background:var(--blue-tint); border-radius:16px; padding:34px; max-width:720px; margin:0 auto; text-align:center;}
.testimonial p{font-size:18px; color:var(--navy); font-family:var(--display); font-weight:500; line-height:1.5;}
.testimonial .who{margin-top:18px; font-size:13.5px; color:var(--gray-light); font-family:var(--body);}

/* Final CTA (every page) */
.final-cta{background:var(--orange); border-radius:20px; padding:56px 32px; text-align:center; color:var(--white);}
.final-cta h2{color:var(--white); margin-bottom:12px;}
.final-cta p{color:rgba(255,255,255,0.9); max-width:480px; margin:0 auto 28px; font-size:15px;}
.final-cta .btn-primary{background:var(--white); color:var(--orange); box-shadow:none;}
.final-cta .btn-primary:hover{background:#fff7f0;}

/* Contact form (contact page) */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
@media(max-width:820px){ .contact-grid{grid-template-columns:1fr;} }
.form-field{margin-bottom:18px;}
.form-field label{display:block; font-size:13px; font-weight:600; color:var(--navy); margin-bottom:6px;}
.form-field input, .form-field select, .form-field textarea{width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:8px; font-family:var(--body); font-size:14px; color:var(--gray);}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{outline:2px solid var(--blue); border-color:var(--blue);}
.contact-info-card{background:var(--navy); color:var(--white); border-radius:16px; padding:32px;}
.contact-info-card h3{color:var(--white); font-size:16px; margin-bottom:16px;}
.contact-info-card .row{display:flex; gap:12px; margin-bottom:16px; font-size:14px; color:#B9C6DA;}
.contact-info-card .row strong{color:var(--white); display:block; font-size:13px; margin-bottom:2px;}

/* About page */
.value-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:16px;}
.value-card{border:1px solid var(--border); border-radius:12px; padding:22px;}
.value-card h3{font-size:16px; margin-bottom:8px;}
.value-card p{font-size:13.5px; color:var(--gray-light);}

/* Case studies page */
.filter-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px;}
.filter-chip{font-size:13px; font-weight:600; padding:8px 16px; border-radius:20px; border:1px solid var(--border); color:var(--gray);}
.filter-chip.active{background:var(--blue); color:var(--white); border-color:var(--blue);}
.case-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:20px;}
.case-card{border:1px solid var(--border); border-radius:14px; overflow:hidden;}
.case-card .tag{display:inline-block; background:var(--blue-tint); color:var(--blue); font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:12px; margin-bottom:12px;}
.case-card .body{padding:22px;}
.case-card h3{font-size:16px; margin-bottom:8px;}
.case-card p{font-size:13.5px; color:var(--gray-light); margin-bottom:14px;}
.case-card .metric{font-family:var(--mono); color:var(--green); font-weight:600; font-size:15px;}

/* Footer (shared, identical on every page) */
footer{background:var(--navy); color:#B9C6DA; padding:56px 0 28px; font-size:13.5px;}
.footer-grid{display:grid; grid-template-columns:1.4fr repeat(4, 1fr); gap:24px; margin-bottom:40px;}
.footer-grid h4{font-family:var(--body); color:var(--white); font-size:13px; margin-bottom:14px; font-weight:600;}
.footer-grid a{display:block; color:#8FA3BE; margin-bottom:9px;}
.footer-grid a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1); padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color:#7B8FA8;}
@media(max-width:760px){ .footer-grid{grid-template-columns:repeat(2,1fr);} }

@media (prefers-reduced-motion: reduce){ *{transition:none !important;} }
