/* ================================================================
   VIDIT TECHNOLOGIES — Main Stylesheet
   Design: Artificial Intelligence Research & Development Ltd, UK
   ================================================================ */

/* ── Reset & Variables ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

/* ── Global rendering safeguards ── */
html,body{width:100%;min-height:100%;overflow-x:hidden;}
img{display:block;max-width:100%;}
svg{display:block;max-width:100%;}
button,input,select,textarea{max-width:100%;}
table{max-width:100%;}

:root {
  --navy:       #0A1628;
  --navy-mid:   #0C1A38;
  --navy-light: #1A3A6B;
  --accent:     #0EA5E9;
  --accent-dark:#0284C7;
  --violet:     #7C3AED;
  --cyan:       #06B6D4;
  --emerald:    #10B981;
  --fuchsia:    #A855F7;
  --gold:       #F59E0B;

  --white:      #FFFFFF;
  --surface:    #F8FAFC;
  --muted:      #F1F5F9;
  --border:     #E2E8F0;
  --border-md:  #CBD5E1;

  --text:       #0F172A;
  --text-2:     #334155;
  --text-3:     #64748B;
  --text-4:     #94A3B8;

  --radius:     1rem;
  --radius-sm:  0.625rem;
  --radius-btn: 0.625rem;

  --shadow:     0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:  0 12px 32px rgba(0,0,0,.10);
  --shadow-xl:  0 20px 48px rgba(0,0,0,.14);

  --font: 'Inter', system-ui, -apple-system, sans-serif;
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}

body{
  font-family:var(--font);
  color:var(--text);
  background:#fff;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"cv02","cv03","cv04","cv11";
}

h1,h2,h3,h4,h5,h6{font-weight:800;line-height:1.15;letter-spacing:-.025em;color:var(--text);}
a{color:inherit;text-decoration:none;}
img,svg{max-width:100%;height:auto;}
ul,ol{list-style:none;}
button{cursor:pointer;font-family:var(--font);}
input,select,textarea,button{font-family:var(--font);}

/* ── Skip link ── */
.skip-link{position:absolute;top:-100%;left:1rem;z-index:9999;
  background:var(--navy);color:#fff;padding:.75rem 1.5rem;
  border-radius:0 0 var(--radius-btn) var(--radius-btn);font-weight:700;font-size:.875rem;}
.skip-link:focus{top:0;}

/* ── Focus ── */
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px;}

/* ── Container ── */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.25rem;}
@media(min-width:640px){.container{padding:0 1.5rem;}}
@media(min-width:1024px){.container{padding:0 2rem;}}

/* ── Utilities ── */
.mt-3{margin-top:.75rem;} .mt-4{margin-top:1rem;} .mt-6{margin-top:1.5rem;}
.mb-4{margin-bottom:1rem;} .mb-6{margin-bottom:1.5rem;} .mb-8{margin-bottom:2rem;}
.text-center{text-align:center;}
.w-full{width:100%;}
.flex{display:flex;} .flex-col{flex-direction:column;}
.items-center{align-items:center;} .justify-center{justify-content:center;}
.gap-2{gap:.5rem;} .gap-3{gap:.75rem;} .gap-4{gap:1rem;}
.hidden{display:none;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ── Gradient text ── */
.text-gradient{background:linear-gradient(135deg,#38BDF8 0%,#818CF8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.text-gradient-fuchsia{background:linear-gradient(135deg,#E879F9 0%,#818CF8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ── Buttons ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.75rem 1.5rem;border-radius:var(--radius-btn);font-weight:700;font-size:.875rem;
  transition:all .2s ease;text-decoration:none;border:none;cursor:pointer;
}
.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.btn:active{transform:scale(.97);}

.btn-primary{
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);
  color:#fff;box-shadow:0 2px 10px rgba(14,165,233,.35);
}
.btn-primary:hover{box-shadow:0 6px 20px rgba(14,165,233,.45);transform:translateY(-2px);}

.btn-secondary{
  background:transparent;color:var(--accent);
  border:2px solid var(--accent);
}
.btn-secondary:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}

.btn-white{
  background:#fff;color:var(--navy);
  box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.btn-white:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);}

.btn-ghost-white{
  background:transparent;color:rgba(255,255,255,.9);
  border:2px solid rgba(255,255,255,.3);
}
.btn-ghost-white:hover{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.1);}

.btn-sm{padding:.625rem 1.25rem;font-size:.8125rem;}
.btn-lg{padding:1rem 2.5rem;font-size:1rem;}

/* ── Form inputs ── */
.form-group{margin-bottom:1.25rem;}
.form-label{display:block;font-size:.8125rem;font-weight:700;color:var(--text-2);margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.05em;}
.form-input,.form-select,.form-textarea{
  width:100%;padding:.75rem 1rem;
  border:1.5px solid var(--border);border-radius:var(--radius-btn);
  font-size:.875rem;color:var(--text);background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-4);}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(14,165,233,.15);
}
.form-input.error,.form-select.error,.form-textarea.error{border-color:#EF4444;}
.form-textarea{resize:vertical;min-height:130px;}
.form-error{font-size:.75rem;color:#EF4444;margin-top:.375rem;display:flex;align-items:center;gap:.25rem;}
.form-required{color:#EF4444;}
.form-hint{font-size:.75rem;color:var(--text-3);margin-top:.25rem;}

/* Checkbox/Radio styled */
.form-check{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;
  border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);
  cursor:pointer;transition:border-color .15s,background .15s;}
.form-check:hover{border-color:rgba(14,165,233,.4);}
.form-check.checked{border-color:rgba(16,185,129,.5);background:rgba(16,185,129,.04);}
.form-check input{margin-top:.1rem;width:1rem;height:1rem;accent-color:var(--accent);flex-shrink:0;}
.form-check-label{font-size:.8125rem;color:var(--text-2);line-height:1.5;}

/* Alert boxes */
.alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;
  border-radius:var(--radius-sm);border:1.5px solid;margin-bottom:1.25rem;font-size:.875rem;}
.alert-success{background:#ECFDF5;border-color:#A7F3D0;color:#065F46;}
.alert-error{background:#FEF2F2;border-color:#FECACA;color:#991B1B;}
.alert-info{background:#EFF6FF;border-color:#BFDBFE;color:#1E40AF;}

/* ================================================================
   HEADER / NAV
   ================================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:#fff;transition:box-shadow .2s;
}
.site-header.scrolled{box-shadow:0 2px 24px rgba(0,0,0,.10);}
.header-accent{height:4px;background:linear-gradient(90deg,#0EA5E9,#7C3AED,#A855F7);}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:5rem;
  height:5rem;
  gap:1rem;
}

/* ================================================================
   RESPONSIVE LOGO
   Source: logo.png
   Strategy: height-based sizing + width:auto.
   This preserves the original image aspect ratio without distortion.
   ================================================================ */

.header-logo,
.footer-logo{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
  min-width:0;
  text-decoration:none;
  line-height:0;
  border-radius:.5rem;
  outline-offset:5px;
  -webkit-tap-highlight-color:transparent;
}

.header-logo:focus-visible,
.footer-logo:focus-visible{
  outline:3px solid var(--accent);
}

/* Header logo — desktop default */
.header-logo .logo-img{
  display:block;
  width:auto;
  height:150px;
  max-width:min(400px,100%);
  max-height:none;
  object-fit:contain;
  object-position:left center;
  background:transparent;
  flex:0 0 auto;
  image-rendering:auto;
  /* Rich drop-shadow to make logo pop on the white header */
  filter:
    drop-shadow(0 1px 3px rgba(10,22,40,.12))
    drop-shadow(0 0 1px rgba(10,22,40,.06));
  transition:
    transform .22s cubic-bezier(.34,1.56,.64,1),
    opacity .18s ease,
    filter .18s ease;
}

@media (hover:hover){
  .header-logo:hover .logo-img{
    transform:scale(1.04);
    opacity:.94;
    filter:
      drop-shadow(0 2px 6px rgba(14,165,233,.2))
      drop-shadow(0 0 1px rgba(10,22,40,.06));
  }
}

/* Footer logo */
.footer-logo .logo-img,
.logo-img-footer{
  display:block;
  width:auto;
  height:46px;
  max-width:min(200px,100%);
  max-height:46px;
  object-fit:contain;
  object-position:left center;
  background:transparent;
  flex:0 0 auto;
  filter:
    brightness(1.08)
    contrast(1.04)
    drop-shadow(0 0 8px rgba(14,165,233,.18));
  transition:
    transform .22s cubic-bezier(.34,1.56,.64,1),
    opacity .18s ease,
    filter .18s ease;
}

@media (hover:hover){
  .footer-logo:hover .logo-img,
  .footer-logo:hover .logo-img-footer{
    transform:scale(1.04);
    filter:
      brightness(1.16)
      contrast(1.06)
      drop-shadow(0 0 12px rgba(14,165,233,.28));
  }
}

/* Laptop */
@media (max-width:1199px){
  .header-logo .logo-img{
    height:52px;
    max-height:52px;
    max-width:210px;
  }

  .footer-logo .logo-img,
  .logo-img-footer{
    height:44px;
    max-height:44px;
  }
}

/* Tablet */
@media (max-width:1023px){
  .header-logo .logo-img{
    height:48px;
    max-height:48px;
    max-width:190px;
  }

  .footer-logo .logo-img,
  .logo-img-footer{
    height:42px;
    max-height:42px;
    max-width:180px;
  }
}

/* Mobile */
@media (max-width:767px){
  .header-logo .logo-img{
    height:42px;
    max-height:42px;
    max-width:170px;
  }

  .footer-logo .logo-img,
  .logo-img-footer{
    height:38px;
    max-height:38px;
    max-width:165px;
  }
}

/* Small mobile */
@media (max-width:480px){
  .header-logo .logo-img{
    height:39px;
    max-height:39px;
    max-width:155px;
  }

  .footer-logo .logo-img,
  .logo-img-footer{
    height:35px;
    max-height:35px;
    max-width:150px;
  }
}

/* Very small mobile */
@media (max-width:360px){
  .header-logo .logo-img{
    height:35px;
    max-height:35px;
    max-width:140px;
  }

  .footer-logo .logo-img,
  .logo-img-footer{
    height:32px;
    max-height:32px;
    max-width:135px;
  }
}

/* Keep logo vertically centred inside the fixed header. */
.header-inner{
  display:flex;
  align-items:center;
}

/* Desktop nav */
.main-nav{display:none;align-items:center;gap:.125rem;}
@media(min-width:1024px){.main-nav{display:flex;}}

.nav-link{
  padding:.5rem .875rem;border-radius:.625rem;font-size:.875rem;font-weight:600;
  color:var(--text-2);text-decoration:none;transition:all .15s;white-space:nowrap;
  background:transparent;border:none;display:inline-flex;align-items:center;gap:.25rem;
  position:relative;
}
.nav-link:hover{background:rgba(14,165,233,.07);color:var(--accent-dark);}
/* Active state — clearly highlighted with filled pill */
.nav-link.active{
  background:rgba(14,165,233,.12);
  color:#0284C7;
  font-weight:700;
  box-shadow:inset 0 0 0 1.5px rgba(14,165,233,.25);
}
.nav-careers{color:#0D9488;}
.nav-careers:hover{background:rgba(13,148,136,.07);color:#0D9488;}
.nav-careers.active{
  background:rgba(13,148,136,.12);
  color:#0D9488;
  font-weight:700;
  box-shadow:inset 0 0 0 1.5px rgba(13,148,136,.25);
}

/* Active dropdown item inside Services menu */
.dropdown-item-active{
  background:rgba(14,165,233,.07) !important;
  color:var(--accent) !important;
  font-weight:700;
}
.dropdown-item-active .dot{
  box-shadow:0 0 0 3px rgba(14,165,233,.15);
}

/* Services dropdown */
.nav-dropdown-wrap{position:relative;}
.nav-dropdown-btn{cursor:pointer;}
.nav-dropdown-btn .chevron{width:14px;height:14px;transition:transform .2s;}
.nav-dropdown-btn[aria-expanded="true"] .chevron{transform:rotate(180deg);}

.nav-dropdown{
  position:absolute;top:calc(100% + .5rem);left:50%;transform:translateX(-50%);
  width:260px;background:#fff;border-radius:1.25rem;
  border:1px solid var(--border);box-shadow:var(--shadow-xl);
  padding:.5rem 0;z-index:200;
  opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-8px);
  transition:opacity .2s,transform .2s,visibility .2s;
}
.nav-dropdown.open{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}

/* Dropdown arrow */
.nav-dropdown::before{
  content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  width:16px;height:16px;background:#fff;border-left:1px solid var(--border);
  border-top:1px solid var(--border);rotate:45deg;
}

.dropdown-all{
  display:flex;align-items:center;gap:.625rem;
  margin:.25rem .5rem;padding:.625rem .75rem;border-radius:.75rem;
  font-size:.875rem;font-weight:800;color:var(--accent);
  text-decoration:none;transition:background .15s;
}
.dropdown-all:hover{background:rgba(14,165,233,.08);}
.dropdown-divider{height:1px;background:var(--border);margin:.375rem .75rem;}
.dropdown-item{
  display:flex;align-items:center;gap:.75rem;
  margin:.125rem .5rem;padding:.5rem .75rem;border-radius:.75rem;
  font-size:.8125rem;color:var(--text-2);text-decoration:none;transition:background .15s;
}
.dropdown-item:hover{background:var(--surface);color:var(--text);}

/* Colour dots */
.dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0;}
.dot-sky{background:#0EA5E9;} .dot-violet{background:#7C3AED;} .dot-emerald{background:#10B981;}
.dot-cyan{background:#06B6D4;} .dot-red{background:#EF4444;} .dot-amber{background:#F59E0B;}
.dot-pink{background:#EC4899;} .dot-indigo{background:#6366F1;} .dot-fuchsia{background:#A855F7;}

.badge-new{
  font-size:.6rem;font-weight:900;padding:.125rem .4rem;border-radius:99px;
  background:rgba(168,85,247,.12);color:#7C3AED;border:1px solid rgba(168,85,247,.25);
  text-transform:uppercase;letter-spacing:.06em;
}

/* Burger */
.burger-btn{
  display:flex;flex-direction:column;gap:.3rem;padding:.625rem;
  background:transparent;border:none;border-radius:.625rem;
  transition:background .15s;
}
.burger-btn:hover{background:var(--muted);}
.burger-btn span{display:block;width:1.25rem;height:2px;background:var(--text-2);border-radius:2px;transition:all .25s;}
.burger-btn[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.burger-btn[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger-btn[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
@media(min-width:1024px){.burger-btn{display:none;}}

.header-actions{display:flex;align-items:center;gap:.75rem;}
@media(min-width:640px){.header-actions .btn-sm{display:inline-flex;}}
@media(max-width:639px){.header-actions .btn-sm{display:none;}}

/* Mobile menu */
.mobile-menu{
  display:none;background:#fff;border-top:1px solid var(--border);
  padding:1rem 1.25rem 1.5rem;
}
.mobile-menu.open{display:block;}
.mobile-link{
  display:block;padding:.75rem 1rem;border-radius:.75rem;
  font-size:.875rem;font-weight:600;color:var(--text-2);text-decoration:none;
  transition:background .15s;
}
.mobile-link:hover{background:var(--surface);}
.mobile-link.active{
  background:rgba(14,165,233,.10);
  color:#0284C7;
  font-weight:700;
  box-shadow:inset 0 0 0 1.5px rgba(14,165,233,.2);
}
.mobile-sub{margin:.25rem 0 .5rem 1rem;display:grid;grid-template-columns:1fr 1fr;gap:.25rem;}
.mobile-sub-link{
  display:flex;align-items:center;gap:.5rem;
  padding:.5rem .75rem;border-radius:.625rem;
  font-size:.75rem;font-weight:600;color:var(--text-3);text-decoration:none;
  transition:background .15s;
}
.mobile-sub-link:hover{background:var(--surface);color:var(--text);}
.mobile-sub-active{
  background:rgba(14,165,233,.08) !important;
  color:var(--accent) !important;
  font-weight:700;
}

/* Main content offset — matches header height */
.main-content{padding-top:5rem;}

/* ================================================================
   PAGE HEADER
   ================================================================ */
.page-header{
  position:relative;overflow:hidden;
  padding:4rem 0 5rem;
  background:linear-gradient(160deg,#080F1E 0%,#0C1A38 55%,#080F1E 100%);
}
.page-header::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:32px 32px;
}
.page-header-accent{
  position:absolute;top:0;left:0;right:0;height:4px;
}
.accent-blue   {background:linear-gradient(90deg,#0EA5E9,#3B82F6,#6366F1);}
.accent-violet {background:linear-gradient(90deg,#7C3AED,#8B5CF6,#6366F1);}
.accent-emerald{background:linear-gradient(90deg,#10B981,#059669,#0D9488);}
.accent-fuchsia{background:linear-gradient(90deg,#A855F7,#8B5CF6,#6366F1);}

/* Glow orbs */
.page-header-glow1,.page-header-glow2{
  position:absolute;border-radius:50%;pointer-events:none;
}
.page-header-glow1{
  top:-20%;right:-5%;width:320px;height:320px;opacity:.15;
  background:radial-gradient(circle,#0EA5E9 0%,transparent 70%);
}
.page-header-glow2{
  bottom:-10%;left:-5%;width:240px;height:240px;opacity:.10;
  background:radial-gradient(circle,#7C3AED 0%,transparent 70%);
}

.page-header-inner{position:relative;z-index:2;}

.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;}
.breadcrumb a{color:rgba(255,255,255,.50);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;}
.breadcrumb a:hover{color:rgba(255,255,255,.85);}
.breadcrumb-sep{color:rgba(255,255,255,.25);}
.breadcrumb-current{color:rgba(255,255,255,.85);font-size:.875rem;font-weight:600;}

.page-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  color:#7DD3FC;font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.18em;margin-bottom:1rem;
}
.eyebrow-line{display:inline-block;width:2rem;height:2px;border-radius:1px;background:currentColor;}

.page-header h1{
  font-size:clamp(1.875rem,4vw,3rem);font-weight:900;
  color:#fff;letter-spacing:-.025em;line-height:1.1;margin-bottom:1.25rem;
  text-shadow:0 2px 20px rgba(0,0,0,.4);
}
.page-header p{
  font-size:1.125rem;line-height:1.65;
  color:rgba(255,255,255,.80);max-width:640px;
}

/* ================================================================
   HERO (Homepage)
   ================================================================ */
.hero{
  position:relative;overflow:hidden;
  min-height:92vh;display:flex;align-items:center;
  background:linear-gradient(160deg,#0A1628 0%,#0D1F3C 45%,#0A1628 100%);
  padding:6rem 0 4rem;
}
.hero-bg-dot{
  position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:36px 36px;
}
.hero-glow1,.hero-glow2{position:absolute;border-radius:50%;pointer-events:none;}
.hero-glow1{top:-20%;right:-8%;width:500px;height:500px;opacity:.2;
  background:radial-gradient(circle,#0EA5E9 0%,transparent 70%);}
.hero-glow2{bottom:-15%;left:-8%;width:400px;height:400px;opacity:.15;
  background:radial-gradient(circle,#7C3AED 0%,transparent 70%);}
.hero-accent{position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--accent),var(--violet),var(--cyan));}

.hero-inner{position:relative;z-index:2;}
.hero-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;}
@media(min-width:1024px){.hero-grid{grid-template-columns:1fr 1fr;gap:4rem;}}

.hero-badge{
  display:inline-flex;align-items:center;gap:.625rem;
  padding:.5rem 1rem;border-radius:99px;margin-bottom:1.75rem;
  background:rgba(14,165,233,.12);border:1px solid rgba(14,165,233,.3);
}
.hero-badge-dot{width:.5rem;height:.5rem;border-radius:50%;background:#38BDF8;animation:pulse 2s infinite;}
.hero-badge-text{color:#7DD3FC;font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;}
@keyframes pulse{0%,100%{opacity:.6;}50%{opacity:1;}}

.hero h1{
  font-size:clamp(2.25rem,4.5vw,3.75rem);font-weight:900;
  color:#fff;line-height:1.07;letter-spacing:-.025em;margin-bottom:1.25rem;
}
.hero-sub{
  font-size:clamp(1rem,2vw,1.25rem);line-height:1.65;
  color:rgba(255,255,255,.82);margin-bottom:2rem;max-width:36rem;
}
.hero-pills{display:flex;flex-wrap:wrap;gap:.625rem;margin-bottom:2.25rem;}
.hero-pill{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.5rem .875rem;border-radius:99px;font-size:.875rem;font-weight:600;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.85);
  transition:background .2s,border-color .2s,transform .2s;
}
.hero-pill svg{color:#7DD3FC;flex-shrink:0;}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;}
.hero-trust{display:flex;align-items:center;gap:.5rem;color:rgba(255,255,255,.45);font-size:.8125rem;}
.hero-trust svg{color:#10B981;width:1rem;height:1rem;flex-shrink:0;}

/* Hero card */
.hero-card{
  border-radius:1.25rem;padding:1.75rem;position:relative;overflow:hidden;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(16px);
}
.hero-card-header{
  display:flex;align-items:center;gap:.75rem;
  padding-bottom:1.25rem;margin-bottom:1.25rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.hero-card-icon{
  width:2.75rem;height:2.75rem;border-radius:.875rem;
  background:linear-gradient(135deg,#0EA5E9,#7C3AED);
  color:#fff;font-weight:900;font-size:.875rem;
  display:flex;align-items:center;justify-content:center;
}
.hero-card-title{color:#fff;font-weight:800;font-size:.9375rem;}
.hero-card-sub{color:rgba(255,255,255,.4);font-size:.75rem;}
.hero-checklist{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;}
.hero-check{display:flex;align-items:center;gap:.75rem;}
.hero-check-icon{
  width:1.25rem;height:1.25rem;border-radius:50%;flex-shrink:0;
  background:rgba(16,185,129,.2);border:1px solid rgba(16,185,129,.4);
  display:flex;align-items:center;justify-content:center;
}
.hero-check-icon svg{color:#34D399;width:.75rem;height:.75rem;}
.hero-check-text{color:rgba(255,255,255,.75);font-size:.8125rem;}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.25rem;}
.hero-stat{
  text-align:center;padding:.75rem .5rem;border-radius:.75rem;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);
}
.hero-stat-val{color:#fff;font-weight:900;font-size:.9375rem;}
.hero-stat-lbl{color:rgba(255,255,255,.4);font-size:.6rem;margin-top:.25rem;}
.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem;}
.hero-tag{
  padding:.375rem .75rem;border-radius:99px;font-size:.75rem;font-weight:600;
  background:rgba(14,165,233,.1);border:1px solid rgba(14,165,233,.2);color:#7DD3FC;
}
@media(max-width:1023px){.hero-card-wrap{display:none;}}

/* ================================================================
   SECTION COMMON
   ================================================================ */
.section{padding:5rem 0;}
.section-sm{padding:3.5rem 0;}
.section-dark{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,#0A1628 0%,#0D1F3C 55%,#0A1628 100%);
}
.section-dark::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:32px 32px;
}
.section-dark .container{position:relative;z-index:2;}
.section-alt{background:var(--surface);}

.section-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.75rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.18em;color:var(--accent);margin-bottom:1rem;
}
.section-eyebrow-dark{color:#7DD3FC;}
.eyebrow-bar{display:inline-block;width:1.5rem;height:2px;border-radius:1px;background:currentColor;}

.section-title{
  font-size:clamp(1.625rem,3.5vw,2.5rem);font-weight:900;
  color:var(--text);letter-spacing:-.025em;margin-bottom:1rem;
}
.section-title-white{color:#fff;}
.section-sub{font-size:1.125rem;color:var(--text-2);line-height:1.65;max-width:640px;}
.section-sub-white{color:rgba(255,255,255,.75);}
.section-header{text-align:center;margin-bottom:3.5rem;}
.section-header .section-sub{margin:0 auto;}
.section-header-left{text-align:left;margin-bottom:3rem;}

/* ================================================================
   STATS BAR
   ================================================================ */
.stats-bar{background:#fff;border-bottom:1px solid var(--border);padding:2.5rem 0;}
.stats-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1px;background:var(--border);
  border-radius:1rem;overflow:hidden;box-shadow:var(--shadow);
}
@media(min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr);}}
.stat-item{
  background:#fff;padding:1.75rem 2rem;text-align:center;
  transition:background .15s;
}
.stat-item:hover{background:var(--surface);}
.stat-value{
  font-size:clamp(1.5rem,3vw,2.25rem);font-weight:900;
  background:linear-gradient(135deg,#0EA5E9 0%,#818CF8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  line-height:1;margin-bottom:.25rem;
}
.stat-label{font-weight:700;color:var(--text);font-size:.9375rem;}
.stat-sub{font-size:.75rem;color:var(--text-3);margin-top:.25rem;}

/* ================================================================
   CAPABILITIES STRIP
   ================================================================ */
.capabilities{background:#fff;border-bottom:1px solid var(--border);padding:3rem 0;}
.capabilities-label{
  text-align:center;font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.2em;color:var(--text-3);margin-bottom:2rem;
}
.capabilities-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;
}
@media(min-width:480px){.capabilities-grid{grid-template-columns:repeat(4,1fr);}}
@media(min-width:1024px){.capabilities-grid{grid-template-columns:repeat(8,1fr);}}
.cap-item{
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  padding:1rem;border-radius:1rem;border:1.5px solid transparent;
  text-decoration:none;transition:all .2s;
}
.cap-item:hover{border-color:var(--border);background:var(--surface);box-shadow:var(--shadow);}
.cap-icon{
  width:2.75rem;height:2.75rem;border-radius:.875rem;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);transition:transform .2s;
}
.cap-icon svg{color:#fff;display:block;flex-shrink:0;}
.cap-item:hover .cap-icon{transform:scale(1.1);}
.cap-label{font-size:.75rem;font-weight:600;color:var(--text-2);text-align:center;line-height:1.3;transition:color .15s;}
.cap-item:hover .cap-label{color:var(--text);}

/* Gradient backgrounds for icons */
.bg-sky   {background:linear-gradient(135deg,#0EA5E9,#2563EB);}
.bg-violet{background:linear-gradient(135deg,#7C3AED,#5B21B6);}
.bg-emerald{background:linear-gradient(135deg,#10B981,#0D9488);}
.bg-cyan  {background:linear-gradient(135deg,#06B6D4,#0284C7);}
.bg-red   {background:linear-gradient(135deg,#EF4444,#DC2626);}
.bg-amber {background:linear-gradient(135deg,#F59E0B,#D97706);}
.bg-pink  {background:linear-gradient(135deg,#EC4899,#DB2777);}
.bg-indigo{background:linear-gradient(135deg,#6366F1,#4F46E5);}
.bg-fuchsia{background:linear-gradient(135deg,#A855F7,#7C3AED);}
.bg-teal  {background:linear-gradient(135deg,#14B8A6,#0D9488);}
.bg-slate {background:linear-gradient(135deg,#64748B,#475569);}

/* ================================================================
   CARDS
   ================================================================ */
.card{
  background:#fff;border:1.5px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  transition:box-shadow .25s,transform .25s,border-color .25s;
  overflow:hidden;
}
.card:hover{
  box-shadow:var(--shadow-lg);
  border-color:rgba(14,165,233,.3);
  transform:translateY(-3px);
}

.service-card{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:1.75rem;
  text-decoration:none;
}
.service-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.card-icon{
  width:3rem;height:3rem;border-radius:.875rem;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.25rem;box-shadow:var(--shadow-md);
  transition:transform .2s;
}
.card-icon svg{color:#fff;display:block;flex-shrink:0;}
.card:hover .card-icon{transform:scale(1.1);}
.card-title{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:.625rem;transition:color .15s;}
.card:hover .card-title{color:var(--accent);}
.card-desc{font-size:.875rem;color:var(--text-3);line-height:1.65;flex:1;}
.card-link{
  display:inline-flex;align-items:center;gap:.375rem;
  color:var(--accent);font-size:.875rem;font-weight:700;
  margin-top:1rem;transition:gap .2s;
}
.card:hover .card-link{gap:.625rem;}
.card-link svg{width:1rem;height:1rem;}

/* Dark card */
.card-dark{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  transition:background .2s,border-color .2s,transform .2s;
}
.card-dark:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(14,165,233,.3);
  transform:translateY(-3px);
}
.card-dark .card-title{color:#fff;}
.card-dark:hover .card-title{color:#7DD3FC;}
.card-dark .card-desc{color:rgba(255,255,255,.55);}
.card-dark .card-link{color:#7DD3FC;}

/* ================================================================
   GRID LAYOUTS
   ================================================================ */
.grid-2{display:grid;grid-template-columns:1fr;gap:1.5rem;}
.grid-3{display:grid;grid-template-columns:1fr;gap:1.5rem;}
.grid-4{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media(min-width:640px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media(min-width:1024px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-4{grid-template-columns:repeat(4,1fr);}
}

/* ================================================================
   PROCESS STEPS
   ================================================================ */
.process-grid{display:grid;grid-template-columns:1fr;gap:1.75rem;}
@media(min-width:640px){.process-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.process-grid{grid-template-columns:repeat(3,1fr);}}
.process-step{
  background:var(--surface);border:1.5px solid var(--border);
  border-radius:var(--radius);padding:1.75rem;
  transition:box-shadow .25s,transform .25s,border-color .25s;
}
.process-step:hover{box-shadow:var(--shadow-lg);border-color:rgba(14,165,233,.3);transform:translateY(-3px);}
.step-num{
  width:2.75rem;height:2.75rem;border-radius:.875rem;
  display:flex;align-items:center;justify-content:center;
  font-size:.875rem;font-weight:900;color:#fff;margin-bottom:1.25rem;
  box-shadow:var(--shadow-md);transition:transform .2s;
}
.process-step:hover .step-num{transform:scale(1.1);}
.step-title{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:.5rem;}
.step-desc{font-size:.875rem;color:var(--text-3);line-height:1.65;}

/* ================================================================
   CTA BANNER
   ================================================================ */
.cta-section{
  position:relative;overflow:hidden;padding:5rem 0;
  background:linear-gradient(135deg,#0EA5E9 0%,#0284C7 35%,#7C3AED 100%);
}
.cta-section::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:32px 32px;pointer-events:none;
}
.cta-glow{position:absolute;top:0;right:0;width:384px;height:384px;border-radius:50%;
  background:rgba(255,255,255,.05);filter:blur(3rem);pointer-events:none;}
.cta-inner{position:relative;z-index:2;text-align:center;}
.cta-icon{
  width:4rem;height:4rem;border-radius:1rem;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.5rem;font-size:1.75rem;
}
.cta-title{font-size:clamp(1.75rem,4vw,3rem);font-weight:900;color:#fff;margin-bottom:1.25rem;letter-spacing:-.025em;}
.cta-sub{font-size:1.125rem;color:rgba(255,255,255,.80);max-width:600px;margin:0 auto 2.5rem;line-height:1.65;}
.cta-btns{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;}

/* ================================================================
   FOOTER
   ================================================================ */
.site-footer{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#080F1E 0%,#050A14 100%);
  padding-top:3.5rem;
}
.site-footer::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.15;
  background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:32px 32px;
}
.footer-top-line{
  position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(14,165,233,.5),transparent);
}
.footer-inner{position:relative;z-index:2;}
.footer-grid{
  display:grid;grid-template-columns:1fr;gap:2.5rem;
  padding-bottom:3rem;
}
@media(min-width:640px){.footer-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;}}

.footer-brand{grid-column:1;}
@media(min-width:1024px){.footer-brand{grid-column:1;}}

/* footer-logo colours already set in the Logo block above */
.footer-tagline{color:rgba(255,255,255,.55);font-size:.875rem;line-height:1.65;margin:1.25rem 0;}

.footer-address{font-style:normal;}
.address-row{
  display:flex;gap:.625rem;align-items:flex-start;
  color:rgba(255,255,255,.50);font-size:.875rem;line-height:1.6;margin-bottom:.75rem;
}
.address-row svg{width:1rem;height:1rem;flex-shrink:0;margin-top:.2rem;color:#38BDF8;}
.address-row a{color:#7DD3FC;text-decoration:none;transition:color .15s;}
.address-row a:hover{color:#fff;}

.footer-col{}
.footer-heading{
  color:#fff;font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.15em;margin-bottom:1.25rem;
}
.footer-links{display:flex;flex-direction:column;gap:.625rem;}
.footer-links a{
  color:rgba(255,255,255,.5);font-size:.875rem;text-decoration:none;
  transition:color .15s;
}
.footer-links a:hover{color:#fff;}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:1.5rem 0;margin-top:2rem;
  display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;
}
@media(min-width:640px){.footer-bottom{flex-direction:row;justify-content:space-between;text-align:left;}}
.footer-bottom p{color:rgba(255,255,255,.3);font-size:.75rem;}
.footer-credit{color:rgba(255,255,255,.25);font-size:.75rem;}
.footer-credit a{color:rgba(56,189,248,.7);text-decoration:none;font-weight:600;transition:color .15s;}
.footer-credit a:hover{color:#7DD3FC;}

/* ================================================================
   SCROLL TO TOP
   ================================================================ */
.scroll-top{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:100;
  width:2.75rem;height:2.75rem;border-radius:.875rem;
  background:linear-gradient(135deg,#0EA5E9,#7C3AED);
  color:#fff;border:none;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(14,165,233,.4);
  transition:all .2s;cursor:pointer;
}
.scroll-top:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(14,165,233,.5);}
.scroll-top svg{width:1.25rem;height:1.25rem;}

/* ================================================================
   ICON SIZE HELPERS
   ================================================================ */
.icon-sm{width:1rem;height:1rem;}
.icon-md{width:1.25rem;height:1.25rem;}
.icon-lg{width:1.5rem;height:1.5rem;}

/* ================================================================
   ALERTS / NOTICES
   ================================================================ */
.notice{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:.875rem 1.25rem;border-radius:.875rem;
  font-size:.875rem;margin-bottom:1.5rem;
}
.notice-info{background:#EFF6FF;border:1px solid #BFDBFE;color:#1E40AF;}
.notice-warning{background:#FFFBEB;border:1px solid #FDE68A;color:#92400E;}
.notice-success{background:#ECFDF5;border:1px solid #A7F3D0;color:#065F46;}

/* ================================================================
   CONTACT PAGE
   ================================================================ */
.contact-grid{display:grid;grid-template-columns:1fr;gap:3rem;}
@media(min-width:1024px){.contact-grid{grid-template-columns:1fr 2fr;}}
.contact-info{display:flex;flex-direction:column;gap:1.25rem;}
.contact-card{
  background:#fff;border:1.5px solid var(--border);
  border-radius:var(--radius);padding:1.25rem;
  display:flex;align-items:flex-start;gap:1rem;
  transition:box-shadow .2s,transform .2s;
}
.contact-card:hover{
  box-shadow:var(--shadow-xl);
  border-color:rgba(14,165,233,.25);
  transform:translateY(-3px);
}
.contact-card-icon{
  width:2.5rem;height:2.5rem;border-radius:.75rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-size:1rem;
}
.contact-card-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);margin-bottom:.375rem;}
.contact-form-wrap{
  background:#fff;border:1.5px solid var(--border);
  border-radius:var(--radius);padding:2rem;
  box-shadow:var(--shadow-md);
}

/* ================================================================
   CAREERS
   ================================================================ */
.job-card{
  background:#fff;border:1.5px solid var(--border);
  border-radius:var(--radius);padding:1.75rem;
  transition:box-shadow .25s,transform .25s,border-color .25s;
}
.job-card:hover{box-shadow:var(--shadow-lg);border-color:rgba(14,165,233,.3);transform:translateY(-2px);}
.job-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;}
.job-meta-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-3);}
.job-meta-item svg{width:.875rem;height:.875rem;color:var(--accent);}
.job-status-open{
  display:inline-flex;align-items:center;gap:.375rem;
  padding:.25rem .625rem;border-radius:99px;font-size:.75rem;font-weight:700;
  background:#ECFDF5;color:#059669;border:1px solid #A7F3D0;
}

/* ================================================================
   ADMIN
   ================================================================ */
.admin-layout{display:flex;min-height:100vh;}
.admin-sidebar{
  width:15rem;flex-shrink:0;
  background:#0C1A38;display:flex;flex-direction:column;
}
.admin-sidebar-logo{padding:1.25rem;border-bottom:1px solid rgba(255,255,255,.1);}
.admin-nav{flex:1;padding:.75rem;}
.admin-nav-link{
  display:flex;align-items:center;gap:.75rem;
  padding:.625rem .875rem;border-radius:.75rem;
  font-size:.875rem;font-weight:600;color:rgba(255,255,255,.6);
  text-decoration:none;transition:all .15s;margin-bottom:.25rem;
}
.admin-nav-link:hover,.admin-nav-link.active{background:rgba(255,255,255,.1);color:#fff;}
.admin-nav-link.danger{color:rgba(239,68,68,.7);}
.admin-nav-link.danger:hover{background:rgba(239,68,68,.1);color:#EF4444;}
.admin-main{flex:1;overflow-y:auto;padding:2rem;background:#F1F5F9;}
.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2rem;}
.admin-stat-card{
  background:#fff;border-radius:var(--radius);border:1.5px solid var(--border);
  padding:1.25rem;display:flex;align-items:center;gap:1rem;
  box-shadow:var(--shadow);
}
.admin-stat-icon{width:3rem;height:3rem;border-radius:.875rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;}
.admin-stat-val{font-size:1.5rem;font-weight:900;color:var(--text);}
.admin-stat-lbl{font-size:.75rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;}
.admin-table-wrap{background:#fff;border-radius:var(--radius);border:1.5px solid var(--border);box-shadow:var(--shadow);overflow:hidden;margin-bottom:1.5rem;}
.admin-table-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);}
.admin-table-title{font-weight:900;font-size:1rem;color:var(--text);}
.admin-table{width:100%;border-collapse:collapse;}
.admin-table th{text-align:left;padding:.75rem 1.5rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);background:var(--surface);border-bottom:1px solid var(--border);}
.admin-table td{padding:.875rem 1.5rem;font-size:.875rem;color:var(--text-2);border-bottom:1px solid var(--border);}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table tr:hover td{background:var(--surface);}
.admin-badge-open{padding:.25rem .625rem;border-radius:99px;font-size:.7rem;font-weight:700;background:#ECFDF5;color:#059669;border:1px solid #A7F3D0;}
.admin-badge-closed{padding:.25rem .625rem;border-radius:99px;font-size:.7rem;font-weight:700;background:var(--muted);color:var(--text-3);border:1px solid var(--border);}

/* Admin form */
.admin-form-section{background:#fff;border-radius:var(--radius);border:1.5px solid var(--border);box-shadow:var(--shadow);padding:1.75rem;margin-bottom:1.5rem;}
.admin-form-title{font-weight:900;font-size:1rem;color:var(--text);padding-bottom:.875rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem;}

/* Dynamic list */
.list-row{display:flex;gap:.5rem;margin-bottom:.5rem;}
.list-row input{flex:1;}
.btn-remove-row{
  width:2.25rem;height:2.25rem;border-radius:.625rem;
  background:transparent;border:1.5px solid var(--border);
  color:var(--text-3);transition:all .15s;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.btn-remove-row:hover{border-color:#FCA5A5;color:#EF4444;background:#FEF2F2;}
.btn-add-row{
  display:inline-flex;align-items:center;gap:.375rem;
  font-size:.8125rem;font-weight:700;color:var(--accent);
  background:transparent;border:none;padding:.25rem 0;
  transition:color .15s;
}
.btn-add-row:hover{color:var(--accent-dark);}


/* ── Additional responsive safeguards ── */
@media(max-width:1023px){
  .header-inner{min-height:4.75rem;height:4.75rem;}
  .main-content{padding-top:4.75rem;}
  .hero{min-height:auto;}
  .service-detail-grid{grid-template-columns:1fr;}
  .service-detail-grid > aside{position:static;}
}

@media(max-width:767px){
  .container{padding-left:1rem;padding-right:1rem;}
  .section-sm{padding:2.5rem 0;}
  .page-header{padding:3rem 0 3.5rem;}
  .hero{padding:4rem 0 3rem;}
  .hero-actions,.cta-btns{flex-direction:column;align-items:stretch;}
  .hero-actions .btn,.cta-btns .btn{width:100%;}
  .hero-pills{gap:.5rem;}
  .hero-pill{font-size:.8125rem;padding:.45rem .75rem;}
  .section-header{margin-bottom:2.5rem;}
  .section-sub{font-size:1rem;}
  .contact-grid{gap:1.5rem;}
  .contact-form-wrap{padding:1.25rem;}
  .footer-grid{gap:2rem;}
}

@media(max-width:560px){
  .form-row-2{grid-template-columns:1fr !important;}
  .stats-bar{padding:2rem 0;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .stat-item{padding:1.25rem .75rem;}
  .capabilities{padding:2.25rem 0;}
  .capabilities-grid{gap:.5rem;}
  .cap-item{padding:.75rem .5rem;}
  .cap-icon{width:2.5rem;height:2.5rem;}
  .card,.process-step,.why-card,.job-card{border-radius:.875rem;}
}

@media(max-width:380px){
  .stats-grid{grid-template-columns:1fr;}
  .mobile-sub{grid-template-columns:1fr;}
  .btn-lg{padding:.875rem 1.25rem;}
}

/* ── sol-grid: two-column cards (solutions, industries, service detail) ── */
.sol-grid{display:grid;grid-template-columns:1fr 1fr;}

@media(max-width:860px){
  /* Stack sol-grid cards (solutions.php, industries.php) */
  .sol-grid{grid-template-columns:1fr !important;}
  .sol-grid > div[style*="border-right"]{border-right:none !important;border-bottom:1.5px solid var(--border);}

  /* About page split sections */
  [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important;}
}

@media(max-width:767px){
  /* Careers culture grid */
  .culture-grid{grid-template-columns:1fr !important;}

  /* Insight article meta bar wrapping */
  .article-meta{flex-wrap:wrap;}

  /* Why-vidit comparison table — hide on very small, show scrollable */
  .compare-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .compare-table-wrap > div{min-width:560px;}
}

@media(max-width:640px){
  /* Service area tags two-column grid on solution pages */
  [style*="grid-template-columns:1fr 1fr"][style*="gap:3rem"]{
    grid-template-columns:1fr !important;
    gap:2rem !important;
  }

  /* Careers job card — stack button below meta */
  .job-card-inner{flex-direction:column !important;}

  /* Process grid compact on mobile */
  .process-grid{grid-template-columns:1fr 1fr !important;}
}

@media(max-width:480px){
  .process-grid{grid-template-columns:1fr !important;}
}
