:root{--p:#2563eb;--d:#0f172a;--m:#64748b;--b:#e2e8f0;--bg:#f8fafc}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.6 "Plus Jakarta Sans",Inter,system-ui,Segoe UI,sans-serif;color:var(--d);background:#fff}
a{color:inherit;text-decoration:none}.wrap{max-width:100%;margin:auto;padding:0 5%}
.nav{position:sticky;top:0;background:#ffffffee;backdrop-filter:blur(8px);border-bottom:1px solid var(--b);z-index:10}
.nav-in{display:flex;align-items:center;gap:24px;height:68px}.logo{font-weight:800;letter-spacing:.04em;color:var(--p)}.logo img{height:36px}
nav{display:flex;gap:22px;margin-left:auto;font-size:14px;color:var(--m)}nav a:hover{color:var(--p)}.burger{display:none;margin-left:auto;background:none;border:0;font-size:24px}
.btn{display:inline-block;background:var(--p);color:#fff;padding:11px 22px;border-radius:10px;font-weight:600;border:0;cursor:pointer;font-size:15px}.btn.ghost{background:#fff;color:var(--p);border:1px solid var(--b)}.btn.light{background:#fff;color:var(--p)}.btn.sm{padding:6px 14px;font-size:13px}
.hero{background:linear-gradient(180deg,#eff6ff,#fff);padding:70px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.badge,.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--p)}.badge{background:#dbeafe;padding:6px 12px;border-radius:99px}
h1{font-size:clamp(34px,5vw,56px);line-height:1.1;margin:16px 0}h1 em{font-style:normal;color:var(--p)}h2{font-size:clamp(26px,3.4vw,38px);line-height:1.2;margin:8px 0 12px}h3,h4{margin:6px 0}
.lead{color:var(--m);max-width:680px}.row{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.stats{display:flex;gap:36px;margin-top:28px}.stats b{display:block;font-size:26px;color:var(--p)}.stats span{font-size:13px;color:var(--m)}
.heroimg{aspect-ratio:4/3;border-radius:20px;background:linear-gradient(135deg,#2563eb,#0ea5e9) center/cover;box-shadow:0 30px 60px #2563eb33}
.sec{padding:80px 0}.alt{background:var(--bg)}.card{background:#fff;border:1px solid var(--b);border-radius:16px;padding:24px;box-shadow:0 2px 8px #0f172a08}.card p,.item p{color:var(--m);font-size:15px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:32px}.cards2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tag{display:inline-block;color:var(--p);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em}ul{padding-left:18px;color:var(--m);font-size:14px}.more{color:var(--p);font-weight:600;font-size:14px}
.item{padding:16px 0;border-bottom:1px solid var(--b)}.promise{background:#eff6ff;margin-top:20px}
.thumb{aspect-ratio:16/10;border-radius:12px;background:linear-gradient(135deg,#334155,#0f172a) center/cover;padding:12px;margin-bottom:10px}.thumb .tag{background:#fff;padding:2px 10px;border-radius:99px}
.metric{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--b);padding-top:12px;margin-top:12px}.metric b{color:var(--p)}.cta{background:var(--p);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:10px}.cta p{color:#dbeafe}
.tm{text-align:center}.avatar{width:96px;height:96px;border-radius:50%;margin:0 auto 10px;background:#dbeafe center/cover;color:var(--p);font-size:36px;font-weight:700;display:grid;place-items:center}.role{color:var(--p);font-size:13px;font-weight:600}
.nums{text-align:center}.nums b{display:block;font-size:40px;color:var(--p)}.nums span{display:block;color:var(--m);font-size:13px}
.banner{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border-radius:24px;padding:56px 40px;text-align:center}.banner p{color:#dbeafe;max-width:640px;margin:0 auto}.eyebrow.light{color:#bfdbfe}
.cform{display:grid;gap:12px;max-width:560px;margin:28px auto 0;text-align:left}.cform input,.cform textarea{padding:12px 14px;border-radius:10px;border:0;font:inherit}.cform textarea{min-height:110px}.hp{position:absolute;left:-9999px}.flash{background:#ffffff26;padding:10px;border-radius:10px;margin-top:16px}.direct{margin-top:20px;font-size:14px}
footer{background:var(--d);color:#cbd5e1;padding-top:56px}.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:32px}footer h5{color:#fff;letter-spacing:.08em;margin:0 0 10px}footer a,footer p{display:block;font-size:14px;margin:6px 0}footer .logo{color:#fff}.copy{border-top:1px solid #1e293b;margin-top:36px;padding-top:18px;padding-bottom:24px;font-size:13px}
@media(max-width:900px){.grid2,.grid3,.grid4,.fgrid{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}nav,.nav .btn{display:none}.burger{display:block}body.menu nav{display:flex;flex-direction:column;position:absolute;top:68px;left:0;right:0;background:#fff;padding:16px 20px;border-bottom:1px solid var(--b)}}
@media(max-width:600px){.grid3,.grid4,.fgrid,.cards2{grid-template-columns:1fr}.stats{gap:20px}}
/* admin */
.adm{display:flex;min-height:100vh;background:var(--bg)}.side{width:230px;background:var(--d);color:#cbd5e1;padding:20px;flex-shrink:0}.side a{display:block;padding:8px 10px;border-radius:8px;font-size:14px}.side a:hover,.side a.on{background:#1e293b;color:#fff}.side .logo{color:#fff;display:block;margin-bottom:16px}
.main{flex:1;padding:28px;max-width:980px}.panel{background:#fff;border:1px solid var(--b);border-radius:14px;padding:22px;margin-bottom:20px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--b);vertical-align:top}
.f label{display:block;font-weight:600;font-size:13px;margin:14px 0 4px}.f input[type=text],.f input[type=number],.f input[type=password],.f input[type=email],.f textarea,.f select{width:100%;padding:10px;border:1px solid var(--b);border-radius:8px;font:inherit}.f textarea{min-height:90px}
.btn.red{background:#dc2626}.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px}.ok{background:#dcfce7}.err{background:#fee2e2}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px}.kpi div{background:#fff;border:1px solid var(--b);border-radius:12px;padding:16px}.kpi b{font-size:28px;color:var(--p);display:block}
.thumbs{width:56px;height:40px;object-fit:cover;border-radius:6px}.login{max-width:380px;margin:12vh auto}
@media(max-width:700px){.adm{flex-direction:column}.side{width:auto}}
.pagehead{background:linear-gradient(135deg,#eff6ff,#dbeafe);padding:56px 0 48px;border-bottom:1px solid var(--b)}.pagehead h1{margin:0 0 8px}nav a.act{color:var(--p);font-weight:700}

/* ===== 1. FULL-WIDTH LAYOUT ===== */
.wrap{max-width:100%;margin:auto;padding:0 5%}

/* ===== 2. HEADER: bigger logo, color, hover effects ===== */
.nav{
  background:linear-gradient(90deg,#ffffffee 0%,#eff6ffee 100%);
  border-bottom:0;
  box-shadow:0 4px 20px rgba(37,99,235,.10);
  position:sticky;top:0;z-index:50;
}
.nav::after{ /* colored accent line under the header */
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,#2563eb,#0ea5e9,#6366f1);
}
.nav-in{height:84px}
.logo img{height:90px;width:auto;transition:transform .3s}   /* change 60px to make it bigger/smaller */
.logo:hover img{transform:scale(1.08)}
.logo{font-size:20px}

nav a{
  position:relative;padding:8px 2px;font-weight:600;color:#334155;
  transition:color .25s;
}
nav a::after{ /* animated underline */
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:linear-gradient(90deg,#2563eb,#0ea5e9);transition:width .3s;
}
nav a:hover,nav a.act{color:#2563eb}
nav a:hover::after,nav a.act::after{width:100%}

.btn{transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(37,99,235,.35);background:#1d4ed8}
.btn.ghost:hover{background:#eff6ff;box-shadow:0 10px 24px rgba(37,99,235,.15)}
.btn.light:hover{background:#eff6ff;box-shadow:0 10px 24px rgba(0,0,0,.2)}

/* ===== 3. CARD HOVER EFFECTS ===== */
.card{
  position:relative;overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.card::before{ /* top gradient bar that slides in */
  content:"";position:absolute;left:0;top:0;height:4px;width:100%;
  background:linear-gradient(90deg,#2563eb,#0ea5e9);
  transform:scaleX(0);transform-origin:left;transition:transform .4s ease;
}
.card:hover{
  transform:translateY(-10px);
  border-color:#bfdbfe;
  box-shadow:0 22px 45px rgba(37,99,235,.18);
}
.card:hover::before{transform:scaleX(1)}
.card h3,.card h4{transition:color .3s}
.card:hover h3,.card:hover h4{color:#2563eb}
.more{display:inline-block;transition:transform .25s}
.card:hover .more{transform:translateX(6px)}

/* project cards: zoom the image */
.thumb{transition:transform .5s ease}
.work:hover .thumb{transform:scale(1.04)}
.work .thumb{overflow:hidden}

/* team avatars */
.tm .avatar{transition:transform .4s,box-shadow .4s}
.tm:hover .avatar{transform:scale(1.1) rotate(3deg);box-shadow:0 10px 25px rgba(37,99,235,.35)}

/* blue CTA card keeps its color on hover */
.cta::before{display:none}
.cta:hover h3{color:#fff}
.cta:hover{background:#1d4ed8}

/* list items on About page */
.item{transition:padding-left .3s,background .3s,border-color .3s}
.item:hover{padding-left:14px;background:#eff6ff;border-radius:10px}

/* hero image */
.heroimg{transition:transform .5s,box-shadow .5s}
.heroimg:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 40px 80px rgba(37,99,235,.3)}

/* footer links */
footer a{transition:color .25s,padding-left .25s}
footer a:hover{color:#60a5fa;padding-left:6px}

/* ===== 4. HERO FILLS THE SCREEN (matches 84px header) ===== */
.hero{min-height:calc(100vh - 84px);display:flex;align-items:center}
.hero .wrap{width:100%}

/* ===== 5. MOBILE MENU POSITION for the taller header ===== */
@media(max-width:900px){
  body.menu nav{top:84px}
  .logo img{height:48px}
}
.mapbox{border-radius:20px;overflow:hidden;box-shadow:0 12px 40px rgba(37,99,235,.15);border:1px solid var(--b)}
.mapbox iframe{display:block;width:100%;height:420px;border:0}
.flash.f-ok{background:#16a34a;color:#fff;font-weight:600}
.flash.f-err{background:#dc2626;color:#fff;font-weight:600}
.formbox{background:#fff;border:1px solid var(--b);border-radius:20px;padding:36px;max-width:780px;margin:auto;box-shadow:0 12px 40px rgba(37,99,235,.12)}
.aform{display:grid;gap:6px;margin-top:18px}
.aform label{font-weight:600;font-size:14px;margin-top:10px}
.aform input,.aform textarea{padding:12px 14px;border:1px solid var(--b);border-radius:10px;font:inherit;width:100%}
.aform input:focus,.aform textarea:focus{outline:2px solid #bfdbfe;border-color:var(--p)}
.aform textarea{min-height:120px}
.aform .btn{margin-top:16px;width:fit-content}
.flash.f-ok,.flash.f-err{padding:12px 16px;border-radius:10px}

.formbox{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:36px;max-width:780px;margin:auto;box-shadow:0 12px 40px rgba(37,99,235,.12)}
.aform{display:grid;gap:6px;margin-top:18px}
.aform label{display:block;font-weight:600;font-size:14px;margin-top:10px}
.aform label small{font-weight:400;color:#64748b}
.aform input,.aform textarea{display:block;width:100%;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;font:inherit;background:#fff}
.aform input[type=file]{padding:10px;background:#f8fafc;cursor:pointer}
.aform input:focus,.aform textarea:focus{outline:2px solid #bfdbfe;border-color:#2563eb}
.aform textarea{min-height:120px;resize:vertical}
.aform .btn{margin-top:16px;width:fit-content}
.aform .hp{position:absolute;left:-9999px}
.flash.f-ok,.flash.f-err{padding:12px 16px;border-radius:10px;font-weight:600;margin:14px 0;color:#fff}
.flash.f-ok{background:#16a34a}
.flash.f-err{background:#dc2626}

.social{display:flex;gap:12px;margin-top:18px}
.social a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);color:#fff;transition:.2s}
.social a:hover{background:#fff;color:#111;transform:translateY(-2px)}
