*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --blue:#2563eb; --blue-dark:#1d4ed8; --blue-light:#eff6ff;
  --navy:#0f172a; --text:#1e293b; --muted:#64748b;
  --green:#16a34a; --teal:#0d9488; --orange:#f59e0b; --purple:#7c3aed;
  --bg:#f8fafc; --white:#ffffff; --border:#e2e8f0; --stat-bg:#f1f5f9;
}
html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; color:var(--text); background:var(--bg); overflow-x:hidden; }

/* ─── TOP BAR ─────────────────────────────────────────── */
.topbar { background:var(--navy); color:#94a3b8; font-size:.8rem; padding:8px 60px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:6px; }
.topbar-left { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.topbar a { color:#94a3b8; text-decoration:none; display:flex; align-items:center; gap:6px; }
.topbar a:hover { color:#fff; }
.topbar svg { width:14px; height:14px; flex-shrink:0; }
.topbar > span { display:none; }

/* ─── NAV ─────────────────────────────────────────────── */
nav { background:var(--white); border-bottom:1px solid var(--border); padding:0 60px; display:flex; align-items:center; justify-content:space-between; height:72px; position:sticky; top:0; z-index:200; box-shadow:0 1px 8px rgba(0,0,0,.06); }
.logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.logo-icon { width:46px; height:46px; background:var(--blue); border-radius:10px; display:grid; place-items:center; font-family:'Playfair Display',serif; color:#fff; font-size:1.1rem; font-weight:800; flex-shrink:0; }
.logo-text h1 { font-size:1.05rem; font-weight:700; color:var(--navy); line-height:1.2; }
.logo-text p  { font-size:.72rem; color:var(--muted); }
.nav-links { display:flex; gap:36px; list-style:none; }
.nav-links a { text-decoration:none; font-size:.88rem; font-weight:500; color:var(--text); transition:color .2s; }
.nav-links a:hover { color:var(--blue); }
.btn-primary { background:var(--blue); color:#fff; border:none; border-radius:8px; padding:10px 22px; font-size:.88rem; font-weight:600; cursor:pointer; transition:background .2s,transform .15s; font-family:'DM Sans',sans-serif; white-space:nowrap; }
.btn-primary:hover { background:var(--blue-dark); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--blue); border:2px solid var(--blue); border-radius:8px; padding:10px 22px; font-size:.88rem; font-weight:600; cursor:pointer; transition:all .2s; font-family:'DM Sans',sans-serif; }
.btn-outline:hover { background:var(--blue-light); }

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; border:none; background:none; z-index:300; }
.hamburger span { display:block; width:24px; height:2px; background:var(--navy); border-radius:2px; transition:all .3s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Mobile nav drawer */
.mobile-nav { display:none; position:fixed; inset:0; background:var(--white); z-index:150; flex-direction:column; align-items:center; justify-content:center; gap:32px; }
.mobile-nav.open { display:flex; }
.mobile-nav a { text-decoration:none; font-size:1.4rem; font-weight:700; color:var(--navy); transition:color .2s; }
.mobile-nav a:hover { color:var(--blue); }

/* ─── HERO ────────────────────────────────────────────── */
.hero { min-height:calc(100vh - 110px); padding:80px 60px 60px; display:flex; align-items:center; gap:60px; background:linear-gradient(135deg,#f8fafc 0%,#eff6ff 100%); position:relative; overflow:hidden; }
.hero::before { content:''; position:absolute; top:-120px; right:-120px; width:500px; height:500px; background:radial-gradient(circle,rgba(37,99,235,.08) 0%,transparent 70%); pointer-events:none; }
.hero-left  { flex:1; max-width:560px; animation:fadeUp .7s ease both; }
.hero-right { flex:1; max-width:560px; animation:fadeUp .7s .15s ease both; }
.badge { display:inline-flex; align-items:center; gap:8px; background:var(--white); border:1px solid var(--border); border-radius:999px; padding:6px 14px; font-size:.78rem; font-weight:600; color:var(--blue); margin-bottom:24px; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.badge svg { width:15px; height:15px; }
.hero-left h2 { font-family:'Playfair Display',serif; font-size:clamp(2rem,4vw,3.2rem); font-weight:800; color:var(--navy); line-height:1.12; margin-bottom:20px; }
.hero-left > p { font-size:1rem; color:var(--muted); line-height:1.7; margin-bottom:28px; max-width:460px; }
.check-list { list-style:none; display:flex; flex-direction:column; gap:12px; }
.check-list li { display:flex; align-items:flex-start; gap:10px; font-size:.9rem; font-weight:500; }
.check-list li svg { color:var(--green); flex-shrink:0; width:18px; height:18px; margin-top:1px; }
.hero-ctas { display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.stats-card { background:var(--white); border-radius:20px; padding:32px; box-shadow:0 4px 32px rgba(15,23,42,.1); display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.stat-item { background:var(--stat-bg); border-radius:14px; padding:28px 20px; text-align:center; transition:transform .2s,box-shadow .2s; }
.stat-item:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(37,99,235,.1); }
.stat-num { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:800; color:var(--blue); line-height:1; margin-bottom:6px; }
.stat-label { font-size:.8rem; color:var(--muted); font-weight:500; }
.stats-badges { grid-column:1/-1; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.mini-badge { display:inline-flex; align-items:center; gap:6px; background:var(--blue-light); border-radius:999px; padding:5px 12px; font-size:.72rem; font-weight:600; color:var(--blue); }
.mini-badge svg { width:13px; height:13px; }

/* ─── SECTION COMMON ──────────────────────────────────── */
.sec { padding:90px 60px; }
.sec-white { background:var(--white); }
.sec-bg    { background:var(--bg); }
.section-tag { text-align:center; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--blue); margin-bottom:12px; }
.section-title { text-align:center; font-family:'Playfair Display',serif; font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; color:var(--navy); margin-bottom:14px; }
.section-sub { text-align:center; color:var(--muted); font-size:.95rem; max-width:540px; margin:0 auto 48px; line-height:1.7; }

/* ─── ABOUT ───────────────────────────────────────────── */
.about-cards { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:60px; }
.about-card { border-radius:16px; padding:36px 32px; }
.about-card.vision  { background:#eff6ff; }
.about-card.mission { background:#f0fdf4; }
.about-card-header { display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.ac-icon { width:52px; height:52px; border-radius:12px; display:grid; place-items:center; flex-shrink:0; }
.about-card.vision  .ac-icon { background:var(--blue); }
.about-card.mission .ac-icon { background:var(--teal); }
.ac-icon svg { width:24px; height:24px; color:#fff; }
.about-card h3 { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:800; color:var(--navy); }
.about-card p  { color:var(--muted); font-size:.9rem; line-height:1.7; }

/* ─── VALUES ──────────────────────────────────────────── */
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.val-card { background:var(--white); border:1px solid var(--border); border-radius:16px; padding:32px 28px; transition:transform .2s,box-shadow .2s; }
.val-card:hover { transform:translateY(-3px); box-shadow:0 6px 24px rgba(37,99,235,.1); }
.val-icon { width:56px; height:56px; background:var(--blue-light); border-radius:12px; display:grid; place-items:center; margin-bottom:20px; }
.val-icon svg { width:24px; height:24px; color:var(--blue); }
.val-card h3 { font-size:1.05rem; font-weight:700; color:var(--navy); margin-bottom:8px; }
.val-card p  { font-size:.85rem; color:var(--muted); line-height:1.6; }

/* ─── SPEC STRIP ──────────────────────────────────────── */
.spec-strip { background:var(--white); padding:40px 60px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.spec-inner { background:var(--bg); border-radius:16px; padding:32px; display:grid; grid-template-columns:repeat(3,1fr); }
.spec-item { text-align:center; padding:20px; border-right:1px solid var(--border); }
.spec-item:last-child { border-right:none; }
.spec-big { font-family:'Playfair Display',serif; font-size:2.4rem; font-weight:800; margin-bottom:4px; }
.spec-big.c-blue   { color:var(--blue); }
.spec-big.c-teal   { color:var(--teal); }
.spec-big.c-orange { color:var(--orange); }
.spec-item h4 { font-size:.9rem; font-weight:700; color:var(--navy); margin-bottom:4px; }
.spec-item p  { font-size:.78rem; color:var(--muted); }

/* ─── SERVICES ────────────────────────────────────────── */
.svc-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.svc-card { background:var(--white); border:1px solid var(--border); border-radius:16px; padding:28px; transition:border-color .2s,box-shadow .2s,transform .2s; }
.svc-card:hover { border-color:#bfdbfe; box-shadow:0 6px 24px rgba(37,99,235,.08); transform:translateY(-2px); }
.svc-top { display:flex; align-items:flex-start; gap:16px; margin-bottom:18px; }
.svc-icon { width:52px; height:52px; background:var(--blue-light); border-radius:12px; display:grid; place-items:center; flex-shrink:0; }
.svc-icon svg { width:22px; height:22px; color:var(--blue); }
.svc-card h3 { font-size:1rem; font-weight:700; color:var(--navy); margin-bottom:6px; }
.svc-card p  { font-size:.84rem; color:var(--muted); line-height:1.6; }
.vd-btn { display:flex; align-items:center; gap:6px; color:var(--blue); font-size:.84rem; font-weight:600; background:none; border:none; cursor:pointer; padding:0; font-family:'DM Sans',sans-serif; margin-top:16px; transition:gap .2s; }
.vd-btn:hover { gap:10px; }
.vd-btn svg { width:16px; height:16px; transition:transform .2s; }
.svc-card.open .vd-btn svg { transform:rotate(180deg); }
.svc-detail { display:none; margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.svc-card.open .svc-detail { display:block; }
.svc-detail ul { list-style:none; display:flex; flex-direction:column; gap:6px; }
.svc-detail li { font-size:.82rem; color:var(--muted); display:flex; align-items:flex-start; gap:8px; line-height:1.5; }
.svc-detail li::before { content:'→'; color:var(--blue); font-size:.75rem; margin-top:2px; flex-shrink:0; }

/* ─── PUBLICATIONS ────────────────────────────────────── */
.pub-section { padding:90px 60px; background:var(--white); }
.pub-section h3 { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:800; color:var(--navy); margin:40px 0 24px; }
.pub-container { display:flex; flex-wrap:wrap; gap:24px; max-width:1100px; margin:0 auto 16px; }
.pub-card { display:flex; align-items:flex-start; gap:24px; background:var(--bg); border:1px solid var(--border); border-radius:16px; padding:24px; flex:1 1 420px; min-width:0; transition:box-shadow .2s,transform .2s; }
.pub-card:hover { box-shadow:0 6px 24px rgba(37,99,235,.08); transform:translateY(-2px); }
.pub-card img { width:110px; height:80px; object-fit:cover; border-radius:10px; flex-shrink:0; }
.pub-content { flex:1; min-width:0; }
.pub-title { font-size:.95rem; font-weight:700; color:var(--navy); margin-bottom:8px; line-height:1.4; }
.pub-authors { font-size:.82rem; color:var(--muted); margin-bottom:4px; }
.pub-journal  { font-size:.82rem; color:var(--muted); margin-bottom:10px; }
.btn-sm { display:inline-block; background:var(--blue); color:#fff; padding:6px 14px; border-radius:6px; font-size:.78rem; font-weight:600; text-decoration:none; transition:background .2s; }
.btn-sm:hover { background:var(--blue-dark); }

/* ─── CTA BANNER ──────────────────────────────────────── */
.cta-wrap { padding:0 60px 80px; }
.cta-banner { border-radius:20px; background:linear-gradient(135deg,#1d4ed8 0%,#3730a3 100%); padding:64px 60px; text-align:center; color:#fff; }
.cta-banner h2 { font-family:'Playfair Display',serif; font-size:clamp(1.6rem,3vw,2.6rem); font-weight:800; margin-bottom:12px; }
.cta-banner p  { font-size:1rem; opacity:.85; margin-bottom:32px; }
.btn-white { background:#fff; color:var(--blue); border:none; border-radius:8px; padding:12px 28px; font-size:.9rem; font-weight:700; cursor:pointer; transition:transform .2s; font-family:'DM Sans',sans-serif; }
.btn-white:hover { transform:translateY(-2px); }

/* ─── TEAM ────────────────────────────────────────────── */
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-bottom:48px; }
.team-card { border:1px solid var(--border); border-radius:16px; overflow:hidden; transition:transform .2s,box-shadow .2s; }
.team-card:hover { transform:translateY(-4px); box-shadow:0 10px 32px rgba(15,23,42,.1); }
.team-avatar { width:100%; aspect-ratio:3/3.5; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.team-avatar img { width:100%; height:100%; object-fit:cover; }
.team-avatar span { font-family:'Playfair Display',serif; font-size:3rem; font-weight:800; }
.team-info { padding:20px; }
.team-info h3 { font-size:1rem; font-weight:700; color:var(--navy); margin-bottom:2px; }
.team-role { font-size:.8rem; font-weight:600; margin-bottom:12px; }
.team-meta { font-size:.78rem; color:var(--muted); line-height:1.6; }
.team-meta strong { color:var(--text); }
.team-why { background:var(--bg); border-radius:16px; padding:40px; display:grid; grid-template-columns:1fr repeat(3,1fr); gap:0; align-items:center; }
.tw-head { padding-right:32px; border-right:1px solid var(--border); }
.tw-head h3 { font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:800; color:var(--navy); margin-bottom:6px; }
.tw-head p  { font-size:.84rem; color:var(--muted); }
.tw-item { text-align:center; padding:20px; border-right:1px solid var(--border); }
.tw-item:last-child { border-right:none; }
.tw-num { font-family:'Playfair Display',serif; font-size:2.4rem; font-weight:800; margin-bottom:4px; }
.tw-num.c-blue   { color:var(--blue); }
.tw-num.c-teal   { color:var(--teal); }
.tw-num.c-orange { color:var(--orange); }
.tw-label { font-size:.82rem; color:var(--muted); }

/* ─── CLIENTS ─────────────────────────────────────────── */
.logo-row { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin:30px 0 40px; }
.client-button-item { display:flex; align-items:center; padding:10px 18px; background:#fff; border:1px solid var(--border); border-radius:10px; text-decoration:none; transition:all .3s; min-width:160px; }
.client-button-item:hover { border-color:var(--blue); transform:translateY(-3px); box-shadow:0 5px 15px rgba(37,99,235,.1); }
.logo-box { display:flex; justify-content:center; align-items:center; width:40px; height:32px; margin-right:12px; flex-shrink:0; }
.client-logo { max-width:100%; max-height:100%; object-fit:contain; }
.client-name-text { font-weight:600; font-size:.88rem; color:var(--navy); white-space:nowrap; }
.client-types { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.ct { border-radius:14px; padding:28px 20px; text-align:center; }
.ct.mnc     { background:#eff6ff; }
.ct.gov     { background:#f0fdf4; }
.ct.sme     { background:#fffbeb; }
.ct.startup { background:#faf5ff; }
.ct-lbl { font-family:'Playfair Display',serif; font-size:2rem; font-weight:800; margin-bottom:8px; }
.ct.mnc     .ct-lbl { color:var(--blue); }
.ct.gov     .ct-lbl { color:var(--teal); }
.ct.sme     .ct-lbl { color:var(--orange); }
.ct.startup .ct-lbl { color:var(--purple); }
.ct h4 { font-size:.85rem; font-weight:700; color:var(--navy); margin-bottom:4px; }
.ct p  { font-size:.78rem; color:var(--muted); }

/* ─── CONTACT ─────────────────────────────────────────── */
.contact-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:60px; align-items:start; }
.contact-info h3 { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:800; color:var(--navy); margin-bottom:28px; }
.ci { display:flex; gap:16px; margin-bottom:22px; }
.ci-icon { width:48px; height:48px; border-radius:12px; display:grid; place-items:center; flex-shrink:0; }
.ci-icon.blue   { background:var(--blue-light); }
.ci-icon.green  { background:#d1fae5; }
.ci-icon.yellow { background:#fef3c7; }
.ci-icon.purple { background:#ede9fe; }
.ci-icon.blue   svg { color:var(--blue); }
.ci-icon.green  svg { color:var(--teal); }
.ci-icon.yellow svg { color:var(--orange); }
.ci-icon.purple svg { color:var(--purple); }
.ci-icon svg { width:20px; height:20px; }
.ci-text h4 { font-size:.9rem; font-weight:700; color:var(--navy); margin-bottom:4px; }
.ci-text p  { font-size:.82rem; color:var(--muted); line-height:1.6; }
.map-box { margin-top:28px; border-radius:14px; overflow:hidden; border:1px solid var(--border); height:220px; }
.map-box iframe { width:100%; height:100%; border:none; display:block; }
.form-card { background:var(--white); border:1px solid var(--border); border-radius:20px; padding:36px; box-shadow:0 4px 24px rgba(15,23,42,.06); }
.form-card h3 { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:800; color:var(--navy); margin-bottom:24px; }
.fg { margin-bottom:18px; }
.fg label { display:block; font-size:.82rem; font-weight:600; color:var(--text); margin-bottom:6px; }
.fg label span { color:var(--blue); }
.fg input, .fg textarea { width:100%; border:1px solid var(--border); border-radius:8px; padding:10px 14px; font-size:.88rem; color:var(--text); font-family:'DM Sans',sans-serif; background:var(--bg); transition:border-color .2s,box-shadow .2s; outline:none; }
.fg input:focus, .fg textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,235,.08); }
.fg textarea { resize:vertical; min-height:110px; }
.btn-send { width:100%; background:var(--blue); color:#fff; border:none; border-radius:8px; padding:13px; font-size:.92rem; font-weight:700; cursor:pointer; font-family:'DM Sans',sans-serif; display:flex; align-items:center; justify-content:center; gap:8px; transition:background .2s,transform .15s; }
.btn-send:hover { background:var(--blue-dark); transform:translateY(-1px); }
.btn-send svg { width:18px; height:18px; }

/* ─── FOOTER ──────────────────────────────────────────── */
footer { background:var(--navy); color:#94a3b8; padding:60px 60px 28px; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.07); margin-bottom:24px; }
.fb-row { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.fb-icon { width:42px; height:42px; background:var(--blue); border-radius:9px; display:grid; place-items:center; font-family:'Playfair Display',serif; color:#fff; font-size:1rem; font-weight:800; flex-shrink:0; }
.fb-row h3 { color:#f1f5f9; font-size:1rem; font-weight:700; }
.fb-row p  { font-size:.72rem; color:#64748b; }
.footer-brand > p { font-size:.82rem; line-height:1.7; max-width:260px; margin-bottom:20px; }
.social-row { display:flex; gap:10px; }
.soc { width:34px; height:34px; border:1px solid rgba(255,255,255,.12); border-radius:8px; display:grid; place-items:center; color:#94a3b8; text-decoration:none; transition:background .2s,color .2s; }
.soc:hover { background:var(--blue); color:#fff; border-color:var(--blue); }
.soc svg { width:16px; height:16px; }
.footer-col h4 { color:#e2e8f0; font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:18px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col ul li a { text-decoration:none; color:#94a3b8; font-size:.82rem; transition:color .2s; }
.footer-col ul li a:hover { color:#fff; }
.fci { display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; }
.fci svg { width:15px; height:15px; color:var(--blue); flex-shrink:0; margin-top:2px; }
.fci span { font-size:.82rem; color:#94a3b8; line-height:1.5; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; font-size:.76rem; color:#475569; flex-wrap:wrap; gap:12px; }
.footer-bottom a { color:#475569; text-decoration:none; }
.footer-bottom a:hover { color:#94a3b8; }
.fbl { display:flex; gap:20px; }

/* ─── ANIMATION ───────────────────────────────────────── */
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }

/* ════════════════════════════════════════════════════════
   RESPONSIVE BREAKPOINTS
   ════════════════════════════════════════════════════════ */

/* ── 1100px: Large tablet ─────────────────────────────── */
@media(max-width:1100px){
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .values-grid { grid-template-columns:repeat(2,1fr); }
  .spec-inner { grid-template-columns:repeat(3,1fr); }
}

/* ── 900px: Tablet ────────────────────────────────────── */
@media(max-width:900px){
  nav { padding:0 24px; }
  .topbar { padding:8px 24px; }
  .topbar > span { display:none; }

  .nav-links, nav > .btn-primary { display:none; }
  .hamburger { display:flex; }

  .hero { flex-direction:column; padding:48px 24px 48px; min-height:auto; gap:40px; }
  .hero-right { width:100%; max-width:100%; }
  .stats-card { padding:24px; }

  .sec { padding:60px 24px; }
  .spec-strip { padding:32px 24px; }
  .cta-wrap { padding:0 24px 60px; }
  .cta-banner { padding:40px 24px; }

  .about-cards { grid-template-columns:1fr; }
  .values-grid { grid-template-columns:1fr 1fr; }
  .svc-grid { grid-template-columns:1fr; }
  .contact-layout { grid-template-columns:1fr; gap:40px; }
  .client-types { grid-template-columns:1fr 1fr; }

  .spec-inner { grid-template-columns:repeat(2,1fr); }
  .spec-item { border-right:none; border-bottom:1px solid var(--border); }
  .spec-item:nth-child(odd) { border-right:1px solid var(--border); }
  .spec-item:last-child { border-bottom:none; }

  footer { padding:48px 24px 24px; }
  .footer-grid { grid-template-columns:1fr 1fr; }

  .tw-head { padding-right:0; border-right:none; border-bottom:1px solid var(--border); padding-bottom:20px; }
  .team-why { grid-template-columns:1fr; }
  .tw-item { border-right:none; border-bottom:1px solid var(--border); padding:16px 0; }
  .tw-item:last-child { border-bottom:none; }

  .pub-section { padding:60px 24px; }
  .pub-card { flex-direction:column; flex:1 1 100%; }
  .pub-card img { width:100%; height:160px; }
}

/* ── 640px: Mobile ────────────────────────────────────── */
@media(max-width:640px){
  .topbar { padding:8px 16px; font-size:.72rem; }
  .topbar-left { gap:10px; }
  nav { padding:0 16px; height:64px; }
  .logo-text h1 { font-size:.9rem; }

  .hero { padding:36px 16px 40px; }
  .hero-left h2 { font-size:1.9rem; }
  .hero-ctas { flex-direction:column; }
  .hero-ctas .btn-primary,
  .hero-ctas .btn-outline { width:100%; text-align:center; }
  .stats-card { grid-template-columns:1fr 1fr; gap:12px; padding:16px; }
  .stat-num { font-size:1.8rem; }
  .stats-badges { gap:8px; }
  .mini-badge { font-size:.66rem; padding:4px 10px; }

  .sec { padding:48px 16px; }
  .spec-strip { padding:24px 16px; }
  .cta-wrap { padding:0 16px 48px; }
  .cta-banner { padding:32px 16px; border-radius:14px; }

  .about-card { padding:24px 20px; }
  .values-grid { grid-template-columns:1fr; }

  .spec-inner { grid-template-columns:1fr; border-radius:12px; padding:16px; }
  .spec-item { border-right:none !important; border-bottom:1px solid var(--border); }
  .spec-item:last-child { border-bottom:none; }

  .svc-grid { grid-template-columns:1fr; }
  .svc-card { padding:20px; }

  .team-grid { grid-template-columns:1fr 1fr; gap:16px; }
  .team-avatar { aspect-ratio:1/1; }
  .team-info { padding:14px; }
  .team-info h3 { font-size:.88rem; }
  .team-meta { font-size:.72rem; }

  .pub-section { padding:48px 16px; }
  .pub-card { padding:16px; }
  .pub-card img { height:140px; }

  .client-button-item { min-width:140px; padding:8px 12px; }
  .client-name-text { font-size:.8rem; }

  .client-types { grid-template-columns:1fr 1fr; gap:12px; }
  .ct { padding:20px 14px; }
  .ct-lbl { font-size:1.5rem; }

  .contact-layout { gap:28px; }
  .form-card { padding:24px 16px; }
  .map-box { height:180px; }

  footer { padding:40px 16px 20px; }
  .footer-grid { grid-template-columns:1fr; gap:28px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:8px; }
  .fbl { gap:14px; }
}

/* ── 420px: Small phones ──────────────────────────────── */
@media(max-width:420px){
  .hero-left h2 { font-size:1.65rem; }
  .team-grid { grid-template-columns:1fr; }
  .stats-card { grid-template-columns:1fr 1fr; }
  .client-types { grid-template-columns:1fr; }
  .topbar-left a:last-child { display:none; } /* hide email on tiny screens */
  .badge { font-size:.7rem; padding:5px 10px; }
  .logo-text p { display:none; }
}
