/* =====================================================
   NIHAR ENTERPRISE — Design System
   Palette drawn from brand mark: deep-space navy, electric
   blue, thruster orange. Signature motif: the "flight-path"
   diagonal streak used across dividers, underlines & badges.
===================================================== */

:root{
  --navy-950:#060f22;
  --navy-900:#0b1f3a;
  --navy-800:#0f2a4d;
  --blue-700:#0e4c92;
  --blue-600:#1467c9;
  --blue-500:#1e7fe0;
  --blue-300:#7ab8f5;
  --blue-100:#e7f2fd;
  --orange-600:#e06a12;
  --orange-500:#f5811f;
  --orange-400:#ffa149;
  --orange-100:#fff1e2;
  --white:#ffffff;
  --gray-50:#f5f8fc;
  --gray-100:#eef2f8;
  --gray-300:#c9d4e3;
  --gray-600:#57647c;
  --ink:#0e1626;

  --font-display:'Sora', sans-serif;
  --font-body:'Inter', sans-serif;

  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:8px;

  --shadow-soft: 0 10px 30px -12px rgba(11,31,58,.18);
  --shadow-strong: 0 20px 45px -15px rgba(11,31,58,.35);
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,.display-font{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-0.01em;
  color:var(--navy-900);
}

p{color:var(--gray-600); line-height:1.7; text-align:justify;}

a{text-decoration:none;}

::selection{background:var(--orange-400); color:var(--white);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

/* ---------- Utility: eyebrow label with streak ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--font-display);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--orange-500);
  margin-bottom:.9rem;
}
.eyebrow::before{
  content:"";
  display:inline-block;
  width:28px;
  height:3px;
  border-radius:3px;
  background:linear-gradient(90deg,var(--blue-500),var(--orange-500));
}

.section-pad{padding:2.5rem 0;}
@media (max-width:767.98px){ .section-pad{padding:2.25rem 0;} }

.bg-soft{background:var(--gray-50);}
.bg-navy{background:var(--navy-900);}

/* ---------- Buttons ---------- */
.btn-brand{
  background:linear-gradient(100deg,var(--orange-500),var(--orange-600));
  color:var(--white);
  border:none;
  font-family:var(--font-display);
  font-weight:600;
  padding:.85rem 1.9rem;
  border-radius:999px;
  box-shadow:0 10px 24px -8px rgba(245,129,31,.55);
  transition:transform .2s ease, box-shadow .2s ease;
}
.btn-brand:hover{
  color:var(--white);
  transform:translateY(-2px);
  box-shadow:0 14px 30px -8px rgba(245,129,31,.65);
}
.btn-outline-brand{
  background:transparent;
  color:var(--white);
  border:1.5px solid rgba(255,255,255,.5);
  font-family:var(--font-display);
  font-weight:600;
  padding:.8rem 1.85rem;
  border-radius:999px;
  transition:.2s ease;
}
.btn-outline-brand:hover{
  background:rgba(255,255,255,.12);
  border-color:#fff;
  color:#fff;
}
.btn-navy{
  background:var(--navy-900);
  color:#fff;
  font-family:var(--font-display);
  font-weight:600;
  padding:.85rem 1.9rem;
  border-radius:999px;
  border:none;
  transition:.2s ease;
}
.btn-navy:hover{background:var(--blue-700); color:#fff;}

/* ---------- Navbar ---------- */
.navbar-nihar{
  background:rgba(6,15,34,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:0;
  transition:background .3s ease, box-shadow .3s ease;
}
.navbar-nihar .container{
  height:75px;
  display:flex;
  align-items:center;
}
.navbar-nihar.scrolled{
  box-shadow:0 8px 26px -12px rgba(0,0,0,.5);
}
.navbar-nihar .navbar-brand{
  display:flex;
  align-items:center;
  gap:.85rem;
  font-family:var(--font-display);
  font-weight:700;
  color:#fff;
  font-size:1.15rem;
  line-height:1.15;
}
.navbar-nihar .navbar-brand img{
  height:70px;
  width:60px;
  object-fit:contain;
  border-radius:8px;
}
.navbar-nihar .brand-sub{
  display:block;
  font-family:var(--font-body);
  font-weight:400;
  font-size:.66rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--blue-300);
}
.navbar-nihar .nav-link{
  color:rgba(255,255,255,.82);
  font-weight:600;
  font-size:.92rem;
  padding:.5rem 1rem !important;
  border-radius:8px;
  transition:.2s ease;
  white-space:nowrap;
}
.navbar-nihar .nav-link:hover,
.navbar-nihar .nav-link.active{
  color:#fff;
  background:rgba(255,255,255,.08);
}
.navbar-nihar .nav-link.active{color:var(--orange-400);}
.navbar-nihar .btn-brand{padding:.6rem 1.4rem; font-size:.88rem; white-space:nowrap;}
.navbar-toggler{border:none; color:#fff;}
.navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(255,161,73,.4);}

/* Tighten the nav so items never wrap onto two lines between the
   lg breakpoint (992px) and xxl (1400px), where Bootstrap's fixed
   container width (960px, then 1140px) is too narrow for the full
   menu at default spacing. */
@media (min-width:992px) and (max-width:1399.98px){
  .navbar-nihar .navbar-brand{font-size:1rem;}
  .navbar-nihar .navbar-brand img{height:56px; width:48px;}
  .navbar-nihar .brand-sub{font-size:.6rem;}
  .navbar-nihar .navbar-nav.gap-lg-1{gap:0 !important;}
  .navbar-nihar .nav-link{
    padding:.5rem .55rem !important;
    font-size:.82rem;
  }
  .navbar-nihar li.nav-item.ms-lg-3{margin-left:.75rem !important;}
  .navbar-nihar .btn-brand{padding:.55rem 1.1rem; font-size:.8rem;}
}

/* Below 992px the menu collapses into a dropdown panel. The outer
   .navbar-nihar .container has a fixed height (75px) for the
   desktop row, so once the collapsed menu opens it overflows past
   that fixed height and falls outside the navbar's painted
   background, appearing transparent. Let the container grow and
   give the panel its own solid background. */
@media (max-width:991.98px){
  .navbar-nihar .container{
    height:auto;
    min-height:75px;
    flex-wrap:wrap;
    padding-top:.6rem;
    padding-bottom:.6rem;
  }
  .navbar-nihar .navbar-collapse{
    flex-basis:100%;
    background:var(--navy-950);
    margin-top:.75rem;
    padding:1rem 1rem 1.2rem;
    border-radius:var(--radius-md);
    border:1px solid rgba(255,255,255,.08);
  }
  .navbar-nihar .nav-link{padding:.65rem .9rem !important;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  color:#fff;
  padding:9.5rem 0 8rem;
  overflow:hidden;
  isolation:isolate;
}

/* The image sits in an oversized wrapper that slowly drifts, plus a
   faint film-grain layer so it reads as photography, not a screensaver. */
.hero-bg{
  position:absolute;
  inset:-20% 0 -20% 0;
  z-index:-2;
  overflow:hidden;
}
.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 30%;
  transform:translateY(-7%) scale(1.08);
  animation:panVertical 34s cubic-bezier(.45,0,.55,1) infinite alternate;
  filter:saturate(1.02) contrast(1.04) brightness(.96);
}
@keyframes panVertical{
  0%{ transform:translateY(-7%) scale(1.08); }
  100%{ transform:translateY(5%) scale(1.12); }
}
.hero-bg::after{
  content:"";
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
  opacity:.5;
}
@media (prefers-reduced-motion: reduce){
  .hero-bg img{ animation:none; transform:translateY(0) scale(1.04); }
}

/* Scrim: darkest at bottom-left where the headline sits, easing off
   toward the ISO card so the photo still reads on the right, plus a
   gentle vignette so the edges recede and the center photo detail carries. */
.hero-scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(120% 90% at 78% 20%, rgba(7,15,31,0) 0%, rgba(7,15,31,.25) 55%, rgba(7,15,31,.55) 100%),
    linear-gradient(100deg, rgba(7,15,31,.95) 0%, rgba(7,15,31,.86) 32%, rgba(12,26,48,.5) 58%, rgba(12,26,48,.28) 100%),
    linear-gradient(180deg, rgba(7,15,31,.2) 0%, rgba(7,15,31,0) 20%, rgba(7,15,31,0) 68%, var(--navy-950) 100%);
}

.hero .container{ position:relative; z-index:1; }

/* One deliberate load-in: the whole content block rises and settles
   once. Nothing else in the page animates on load — this is the
   single orchestrated moment, not a per-element scatter. */
.hero-reveal{
  animation:heroRise 1s cubic-bezier(.16,1,.3,1) both;
}
@keyframes heroRise{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){ .hero-reveal{ animation:none; } }

.hero-kicker{
  display:flex;
  align-items:center;
  gap:.7rem;
  font-size:.95rem;
  color:var(--blue-300);
  font-weight:500;
  margin-bottom:1.7rem;
}
.hero-kicker::before{
  content:"";
  width:28px; height:1px;
  background:linear-gradient(90deg, var(--orange-500), var(--blue-300));
  flex-shrink:0;
}

.hero h1{
  font-family:var(--font-display);
  color:#fff;
  line-height:1.08;
  letter-spacing:-.01em;
  margin-bottom:1.4rem;
  max-width:660px;
}
.hero h1 .line1{
  display:block;
  font-weight:700;
  font-size:clamp(2.3rem, 4.4vw, 3.7rem);
}
.hero h1 .line2{
  display:block;
  font-weight:400;
  font-size:clamp(1.7rem, 3.1vw, 2.6rem);
  color:rgba(255,255,255,.82);
  margin-top:.15em;
}

.hero p.lead{
  color:rgba(255,255,255,.75);
  font-size:1.12rem;
  max-width:540px;
  line-height:1.65;
}

.btn-brand{
  background:linear-gradient(95deg, var(--blue-500), var(--orange-500));
  color:#fff; border:none;
  padding:.85rem 1.6rem;
  border-radius:10px;
  font-weight:600;
  transition:filter .15s ease, transform .15s ease;
}
.btn-brand:hover{ color:#fff; filter:brightness(1.08); }
.btn-brand:active{ transform:scale(.98); }
.btn-outline-brand{
  border:1px solid rgba(255,255,255,.35);
  color:#fff;
  padding:.85rem 1.6rem;
  border-radius:10px;
  font-weight:600;
  transition:background-color .15s ease;
}
.btn-outline-brand:hover{ background:rgba(255,255,255,.1); color:#fff; }
.btn-brand:focus-visible, .btn-outline-brand:focus-visible{
  outline:2px solid var(--blue-300);
  outline-offset:3px;
}

.hero-stats{
  display:flex;
  margin-top:2.8rem;
  flex-wrap:wrap;
}
.hero-stats .stat{
  padding:1.5rem 1.8rem 0 0;
  margin-right:1.8rem;
  border-top:1px solid rgba(255,255,255,.16);
  flex:1 1 130px;
}
.hero-stats .stat b{
  display:block;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.6rem;
  color:#fff;
}
.hero-stats .stat span{
  font-size:.85rem;
  color:rgba(255,255,255,.55);
}

/* ISO card — glass panel that lets the photo show through slightly */
.iso-badge-card{
  background:rgba(12,26,48,.5);
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  padding:2.3rem 2rem;
  text-align:center;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  max-width:320px;
  box-shadow:0 25px 60px -20px rgba(0,0,0,.6);
}
.iso-badge-card .seal{
  width:84px; height:84px;
  border-radius:50%;
  margin:0 auto 1.1rem;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--blue-500),var(--orange-500));
  color:#fff;
  font-size:2.1rem;
  box-shadow:0 0 0 6px rgba(255,255,255,.08), 0 15px 30px -10px rgba(245,129,31,.5);
}
.iso-badge-card .standard{
  font-size:.82rem;
  font-weight:500;
  color:var(--blue-300);
  margin-bottom:.4rem;
}
.iso-badge-card h3{ font-family:var(--font-display); font-weight:600; color:#fff; font-size:1.45rem; margin-bottom:.5rem; }
.iso-badge-card p{ color:rgba(255,255,255,.65); font-size:.88rem; margin-bottom:1.2rem; }
.iso-badge-card .iso-tags{ display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; }
.iso-badge-card .iso-tag{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.85);
  font-size:.78rem;
  font-weight:500;
  padding:.35rem .8rem;
  border-radius:999px;
}

/* Compact ISO strip for mobile, where the full card doesn't fit well */
.iso-strip-mobile{
  display:flex;
  align-items:center;
  gap:.9rem;
  margin-top:2.4rem;
  padding-top:1.6rem;
  border-top:1px solid rgba(255,255,255,.16);
}
.iso-strip-mobile .seal-sm{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--blue-500),var(--orange-500));
  color:#fff; font-size:1.2rem;
}
.iso-strip-mobile div b{ display:block; font-size:.95rem; color:#fff; }
.iso-strip-mobile div span{ font-size:.8rem; color:rgba(255,255,255,.6); }

/* Bottom edge: a soft fade rather than a wave, so the panning photo
   feels like it continues into the page instead of getting clipped */
.hero-fade{
  position:absolute; left:0; right:0; bottom:0; height:140px;
  background:linear-gradient(180deg, rgba(7,15,31,0), var(--navy-950) 85%);
  z-index:0; pointer-events:none;
}

/* ---------- Cards ---------- */
.pillar-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:2.1rem 1.8rem;
  height:100%;
  border:1px solid var(--gray-100);
  box-shadow:var(--shadow-soft);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position:relative;
  overflow:hidden;
}
.pillar-card::before{
  content:"";
  position:absolute; left:0; top:0; height:4px; width:100%;
  background:linear-gradient(90deg,var(--blue-500),var(--orange-500));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.pillar-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-strong); border-color:transparent;}
.pillar-card:hover::before{transform:scaleX(1);}
.pillar-icon{
  width:56px; height:56px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--blue-100),var(--orange-100));
  color:var(--blue-700);
  font-size:1.5rem;
  margin-bottom:1.15rem;
}
.pillar-card h3{font-size:1.15rem; margin-bottom:.6rem;}
.pillar-card ul{margin:0; padding-left:1.1rem;}
.pillar-card ul li{color:var(--gray-600); font-size:.92rem; margin-bottom:.35rem;}

/* Product / spec list card */
.spec-card{
  background:#fff;
  border-radius:var(--radius-lg);
  border:1px solid var(--gray-100);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  height:100%;
}
.spec-card .spec-head{
  padding:1.6rem 1.6rem 1.1rem;
  background:linear-gradient(120deg,var(--navy-900),var(--blue-700));
  color:#fff;
  position:relative;
}
.spec-card .spec-head h3{color:#fff; margin:0 0 .25rem;}
.spec-card .spec-head p{color:rgba(255,255,255,.72); margin:0; font-size:.9rem;}
.spec-card .spec-body{padding:1.5rem 1.6rem;}
.spec-card .spec-body ul{list-style:none; margin:0; padding:0;}
.spec-card .spec-body ul li{
  display:flex; gap:.65rem; align-items:flex-start;
  padding:.55rem 0;
  border-bottom:1px dashed var(--gray-100);
  color:var(--ink);
  font-size:.94rem;
}
.spec-card .spec-body ul li:last-child{border-bottom:none;}
.spec-card .spec-body ul li i{color:var(--orange-500); margin-top:.2rem;}

/* Quote form */
.quote-form-card{
  background:#fff;
  border:1px solid var(--gray-100);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  padding:2.2rem;
}
@media (max-width:767.98px){ .quote-form-card{padding:1.5rem;} }

.quote-form-card .form-label{
  font-family:var(--font-display);
  font-size:.82rem;
  font-weight:600;
  color:var(--navy-900);
  margin-bottom:.4rem;
}

.quote-form-card .form-control,
.quote-form-card .form-select{
  border:1.5px solid var(--gray-100);
  border-radius:var(--radius-sm);
  padding:.7rem .9rem;
  font-size:.95rem;
  background:var(--gray-50);
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.quote-form-card .form-control:focus,
.quote-form-card .form-select:focus{
  border-color:var(--blue-500);
  background:#fff;
  box-shadow:0 0 0 4px rgba(30,127,224,.15);
}
.quote-form-card .form-control.is-invalid,
.quote-form-card .form-select.is-invalid{
  border-color:#e0453c;
}
.quote-form-card textarea.form-control{resize:vertical; min-height:120px;}

.quote-form-card .btn-brand{width:100%;}
@media (min-width:576px){ .quote-form-card .btn-brand{width:auto;} }

/* Ribbon badge — echoes brand banner shape */
.ribbon-badge{
  display:inline-block;
  background:linear-gradient(100deg,var(--orange-500),var(--orange-600));
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:.4rem 1rem .4rem .85rem;
  clip-path:polygon(0 0,100% 0,92% 50%,100% 100%,0 100%);
}

/* Sector cards */
.sector-card{
  border-radius:var(--radius-lg);
  padding:2rem 1.7rem;
  height:100%;
  background:var(--gray-50);
  border:1px solid var(--gray-100);
  transition:.25s ease;
}
.sector-card:hover{background:#fff; box-shadow:var(--shadow-strong); transform:translateY(-4px);}
.sector-card .num{
  font-family:var(--font-display);
  font-size:.78rem;
  font-weight:700;
  color:var(--blue-500);
  letter-spacing:.08em;
}

/* Process steps */
.process-step{
  position:relative;
  padding:1.9rem 1.6rem 1.6rem;
  background:#fff;
  border-radius:var(--radius-lg);
  border:1px solid var(--gray-100);
  box-shadow:var(--shadow-soft);
  height:100%;
}
.process-step .step-index{
  font-family:var(--font-display);
  font-size:2.6rem;
  font-weight:700;
  background:linear-gradient(135deg,var(--blue-500),var(--orange-500));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  line-height:1;
  margin-bottom:.6rem;
  display:block;
}

/* Timeline connector for process (desktop) */
.process-track{position:relative;}
.process-track::before{
  content:"";
  position:absolute;
  top:38px; left:6%; right:6%;
  height:2px;
  background:repeating-linear-gradient(90deg, var(--gray-300) 0 10px, transparent 10px 18px);
  z-index:0;
}
@media (max-width:991.98px){ .process-track::before{display:none;} }

/* Brand partners */
.brand-panel{
  background:#fff;
  border-radius:var(--radius-lg);
  border:1px solid var(--gray-100);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  height:100%;
}
.brand-panel .brand-panel-head{
  padding:1.4rem 1.6rem;
  display:flex;
  align-items:center;
  gap:.65rem;
  color:#fff;
}
.brand-panel .brand-panel-head.it{background:linear-gradient(120deg,var(--navy-900),var(--blue-700));}
.brand-panel .brand-panel-head.furniture{background:linear-gradient(120deg,var(--navy-900),var(--orange-600));}
.brand-panel .brand-panel-head i{font-size:1.3rem;}
.brand-panel .brand-panel-head h3{color:#fff; font-size:1.05rem; margin:0;}
.brand-panel .brand-panel-body{padding:1.5rem 1.6rem;}

.brand-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.85rem;
}
@media (min-width:576px){ .brand-grid{grid-template-columns:repeat(3,1fr);} }

.brand-chip{
  display:flex;
  align-items:center;
  gap:.6rem;
  background:linear-gradient(135deg,var(--blue-100),var(--orange-100));
  border:1px solid var(--gray-100);
  border-radius:var(--radius-sm);
  padding:.65rem .8rem;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.brand-chip:hover{
  background:#fff;
  border-color:transparent;
  box-shadow:var(--shadow-soft);
  transform:translateY(-2px);
}
.brand-chip .brand-mono{
  width:40px; height:40px;
  border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  background:#fff;
  border:1px solid var(--gray-100);
  padding:.35rem;
}
.brand-chip .brand-mono img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.brand-chip .brand-mono .mono-fallback{
  display:none;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.75rem;
  color:var(--blue-700);
}
.brand-chip .brand-mono img.img-failed{
  display:none;
}
.brand-chip .brand-mono img.img-failed + .mono-fallback{
  display:block;
}
.brand-chip .name{
  font-family:var(--font-display);
  font-weight:600;
  font-size:.85rem;
  color:var(--navy-900);
}

/* Product showcase grid — furniture page */
.product-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.5rem;
  margin-top:2.5rem;
}
@media (max-width:767.98px){ .product-grid{grid-template-columns:1fr;} }
@media (min-width:992px){ .product-grid{grid-template-columns:repeat(3,1fr);} }

.product-card{
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:#fff;
  border:1px solid var(--gray-100);
  box-shadow:var(--shadow-soft);
  transition:transform .25s ease, box-shadow .25s ease;
}
.product-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-strong);
}
.product-card .product-img{
  aspect-ratio:4/3;
  overflow:hidden;
}
.product-card .product-img img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}
.product-card:hover .product-img img{
  transform:scale(1.06);
}
.product-card .product-info{
  padding:1.1rem 1.3rem;
}
.product-card .product-info h4{
  font-size:1rem;
  margin-bottom:.3rem;
}
.product-card .product-info p{
  font-size:.85rem;
  margin:0;
}

/* Our Clients slider */
.client-slider{ padding-top:1rem; }
.client-slider .swiper{ padding:1.2rem .3rem 2.5rem; }
.client-slide-card{
  background:#fff;
  border:1px solid var(--gray-100);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
  height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.4rem;
  transition:transform .25s ease, box-shadow .25s ease;
}
.client-slide-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-strong);
}
.client-slide-card img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  filter:grayscale(0%);
  opacity:.85;
  transition:filter .25s ease, opacity .25s ease;
}
.client-slide-card:hover img{
  filter:grayscale(30%);
  opacity:1;
}

.client-nav{
  display:flex;
  gap:.6rem;
}
.client-nav .nav-btn{
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid var(--gray-300);
  background:#fff;
  color:var(--navy-900);
  display:flex; align-items:center; justify-content:center;
  transition:.2s ease;
  cursor:pointer;
}
.client-nav .nav-btn:hover{
  background:linear-gradient(120deg,var(--blue-500),var(--orange-500));
  border-color:transparent;
  color:#fff;
}
.client-nav .nav-btn.swiper-button-disabled{
  opacity:.35;
  cursor:default;
  pointer-events:none;
}

.client-slider .swiper-pagination-bullet{
  background:var(--gray-300);
  opacity:1;
}
.client-slider .swiper-pagination-bullet-active{
  background:linear-gradient(120deg,var(--blue-500),var(--orange-500));
}


/* Client logos / list */
/* Client list */
.client-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:.75rem;
  list-style:none;
  margin:0;
  padding:0;
}
@media (min-width:768px){
  .client-grid{grid-template-columns:repeat(3, 1fr);}
}
.client-grid li{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  background:var(--gray-50);
  border:1px solid var(--gray-100);
  border-radius:var(--radius-sm);
  padding:.85rem 1rem;
  font-size:.86rem;
  line-height:1.4;
  color:var(--ink);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.client-grid li:hover{
  background:#fff;
  border-color:transparent;
  box-shadow:var(--shadow-soft);
  transform:translateY(-3px);
}
.client-grid li i{
  color:var(--orange-500);
  font-size:1rem;
  margin-top:.15rem;
  flex-shrink:0;
}

/* Leadership section */
.leader-photo{
  position:relative;
  aspect-ratio:4/5;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:linear-gradient(135deg,var(--navy-900),var(--blue-700));
  box-shadow:var(--shadow-strong);
}
.leader-photo::after{
  content:"";
  position:absolute; left:0; bottom:0; width:100%; height:6px;
  background:linear-gradient(90deg,var(--blue-500),var(--orange-500));
}
.leader-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:top center;
}
.leader-photo .leader-initials{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display);
  font-size:3.5rem;
  font-weight:700;
  color:rgba(255,255,255,.85);
}
.leader-role{
  display:inline-block;
  font-family:var(--font-display);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--orange-500);
  margin-bottom:.4rem;
}
.leader-sub{
  font-size:1rem;
  margin:1.3rem 0 .4rem;
}
.leader-quote{
  border-left:4px solid var(--orange-500);
  background:#fff;
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:1rem 1.3rem;
  margin:1.3rem 0;
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:600;
  color:var(--navy-900);
  box-shadow:var(--shadow-soft);
}
.focus-list{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr;
  gap:.5rem;
}
@media (min-width:576px){ .focus-list{grid-template-columns:1fr 1fr;} }
.focus-list li{
  display:flex; gap:.6rem; align-items:flex-start;
  font-size:.92rem; color:var(--ink);
}
.focus-list li i{color:var(--orange-500); margin-top:.2rem;}

/* CTA banner */
.cta-band{
  background:
    radial-gradient(ellipse 700px 380px at 90% 0%, rgba(245,129,31,.35), transparent 60%),
    linear-gradient(120deg,var(--navy-900),var(--blue-700));
  border-radius:var(--radius-lg);
  padding:3.2rem;
  color:#fff;
  position:relative;
  overflow:hidden;
}
@media (max-width:767.98px){ .cta-band{padding:2.2rem 1.6rem;} }

/* Contact info cards */
.contact-tile{
  background:#fff;
  border:1px solid var(--gray-100);
  border-radius:var(--radius-md);
  padding:1.5rem;
  height:100%;
  box-shadow:var(--shadow-soft);
}
.contact-tile .pillar-icon{margin-bottom:.9rem;}

/* Footer */
.footer-nihar{
  background:var(--navy-950);
  color:rgba(255,255,255,.65);
  padding:3rem 0 1.6rem;
}
.footer-nihar h5{color:#fff; font-family:var(--font-display); font-size:1rem; margin-bottom:1.1rem;}
.footer-nihar p{color:#c7c7c7; transition:.2s ease; line-height: 1.7;}
.footer-nihar a{color:rgba(255,255,255,.6); transition:.2s ease;}
.footer-nihar a:hover{color:var(--orange-400);}
.footer-nihar .footer-brand{display:flex; align-items:center; gap:.6rem; margin-bottom:1rem;}
.footer-nihar .footer-brand img{height:38px; width:38px; object-fit:contain; border-radius:8px;}
.footer-nihar .footer-brand span{font-family:var(--font-display); font-weight:700; color:#fff; font-size:1.05rem;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:1.4rem;
  padding-top:1.4rem;
  font-size:.82rem;
}
.social-dot{
  width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  transition:.2s ease;
}
.social-dot:hover{background:linear-gradient(120deg,var(--blue-500),var(--orange-500)); border-color:transparent;}

/* Breadcrumb / page header (inner pages) */
.page-header{
  background:
    radial-gradient(ellipse 700px 400px at 100% 0%, rgba(245,129,31,.25), transparent 55%),
    linear-gradient(180deg,var(--navy-950),var(--navy-800));
  color:#fff;
  padding:7.5rem 0 3.5rem;
  position:relative;
  overflow:hidden;
}
.page-header .breadcrumb{
  --bs-breadcrumb-divider:'›';
  background:transparent;
  margin:0 0 1rem;
}
.page-header .breadcrumb-item, .page-header .breadcrumb-item a{
  color:rgba(255,255,255,.6);
  font-size:.85rem;
}
.page-header .breadcrumb-item.active{color:var(--orange-400);}
.page-header h1{color:#fff; margin:0; font-size:clamp(1.9rem,3.6vw,2.7rem);}
.page-header p{color:rgba(255,255,255,.68); max-width:640px; margin-top:.7rem;}

/* Back to top */
#backToTop{
  position:fixed; right:22px; bottom:22px;
  width:46px; height:46px; border-radius:50%;
  background:linear-gradient(120deg,var(--blue-500),var(--orange-500));
  color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-strong);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:.25s ease;
  z-index:999;
}
#backToTop.show{opacity:1; visibility:visible; transform:translateY(0);}

/* Certifications section */
.cert-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.4rem;
}
@media (min-width:576px){ .cert-grid{grid-template-columns:repeat(3,1fr);} }
@media (min-width:992px){ .cert-grid{grid-template-columns:repeat(5,1fr);} }

.cert-card{
  background:#fff;
  border:1px solid var(--gray-100);
  border-radius:var(--radius-lg);
  padding:1.8rem 1.2rem;
  text-align:center;
  box-shadow:var(--shadow-soft);
  transition:transform .25s ease, box-shadow .25s ease;
}
.cert-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-strong);
}
.cert-card .cert-seal{
  width:64px; height:64px;
  border-radius:50%;
  margin:0 auto .9rem;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--blue-500),var(--orange-500));
  color:#fff;
  font-size:1.5rem;
  box-shadow:0 12px 24px -10px rgba(30,127,224,.45);
}
.cert-card .cert-code{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.05rem;
  color:var(--navy-900);
  margin-bottom:.25rem;
}
.cert-card .cert-label{
  font-size:.78rem;
  color:var(--gray-600);
  line-height:1.4;
  margin:0;
}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* Sticky WhatsApp CTA */
.whatsapp-fab{
  position:fixed; left:22px; bottom:22px; z-index:999;
  width:52px; height:52px; border-radius:50%;
  background:#25D366;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.5rem;
  box-shadow:var(--shadow-strong);
}

/* Section title helper */
.section-title{max-width:640px;}
.section-title h2{font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:.9rem;}

/* Table-ish sector grid image alt */
.tag-soft{
  display:inline-block;
  background:var(--blue-100);
  color:var(--blue-700);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:.3rem .7rem;
  border-radius:999px;
  margin-bottom:.7rem;
}
.tag-soft.orange{background:var(--orange-100); color:var(--orange-600);}

/* Geospatial solutions page */
.app-list{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr; gap:.55rem;
}
@media (min-width:576px){ .app-list{grid-template-columns:1fr 1fr;} }
.app-list li{
  display:flex; gap:.55rem; align-items:flex-start;
  font-size:.9rem; color:var(--ink);
}
.app-list li i{ color:var(--orange-500); margin-top:.2rem; flex-shrink:0; }

.workflow-timeline{ max-width:520px; margin:0 auto; }
.workflow-step{
  background:#fff;
  border:1px solid var(--gray-100);
  border-radius:var(--radius-md);
  padding:.95rem 1.4rem;
  box-shadow:var(--shadow-soft);
  font-family:var(--font-display);
  font-weight:600;
  font-size:.92rem;
  color:var(--navy-900);
  text-align:center;
}
.workflow-arrow{
  text-align:center;
  color:var(--blue-500);
  font-size:1.25rem;
  padding:.25rem 0;
}

.ecosystem-strip{
  display:flex; flex-wrap:wrap;
  justify-content:center; align-items:center;
  gap:.7rem;
  padding:1.8rem;
  background:linear-gradient(120deg,var(--navy-900),var(--blue-700));
  border-radius:var(--radius-lg);
  color:#fff;
}
.ecosystem-strip .eco-chip{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  padding:.55rem 1.1rem;
  border-radius:999px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:.85rem;
}
.ecosystem-strip .plus{
  color:var(--orange-400);
  font-weight:800;
  font-size:1.1rem;
}