/* ================================================================
   common.css  –  Shivap Solutions  |  Shared Base Styles
   Used on EVERY page (home, about, contact, products).
   Page-specific CSS files only contain styles unique to that page.
   ================================================================ */

/* ── Base reset ── */
* { font-family: 'Poppins', sans-serif; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: #fff; color: #1e293b; -webkit-font-smoothing: antialiased; }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #1d4ed8; border-radius: 10px; }

/* ── Gradient text (used as .grad / .gt on different pages — both supported) ── */
.grad, .gt {
  background: linear-gradient(135deg, #1d4ed8, #0d9488);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.grad-orange, .gto {
  background: linear-gradient(135deg, #f97316, #dc2626);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Pulse dot (used as .pulse / .pd) ── */
@keyframes pulse-green { 0%,100%{opacity:1} 50%{opacity:.35} }
.pulse { animation: pulse-green 1.6s infinite; }
@keyframes pd { 0%,100%{opacity:1} 50%{opacity:.25} }
.pd { animation: pd 1.5s infinite; }

/* ── Reveal-on-scroll utilities (driven by js/site.js IntersectionObserver) ── */
.reveal, .rv {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .65s ease, transform .65s ease;
}
.reveal.vis, .rv.vis { opacity: 1; transform: translateY(0); }

.rv2 { opacity: 0; transform: translateY(28px); transition: opacity .65s ease .12s, transform .65s ease .12s; }
.rv2.vis { opacity: 1; transform: translateY(0); }

.rv3 { opacity: 0; transform: translateY(28px); transition: opacity .65s ease .24s, transform .65s ease .24s; }
.rv3.vis { opacity: 1; transform: translateY(0); }

/* ── Card hover-lift (used as .card-lift / .lift) ── */
.card-lift, .lift {
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.card-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(29,78,216,.11);
}
.lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px rgba(29,78,216,.1);
}

/* ── Testimonial / quote big-quotation-mark decoration (.testi / .tq) ── */
.testi::before {
  content: '\201C';
  position: absolute; top: -8px; left: 18px;
  font-size: 72px; color: #dbeafe;
  line-height: 1; font-weight: 800;
}
.tq::before {
  content: '"';
  position: absolute; top: -8px; left: 16px;
  font-size: 70px; color: #dbeafe;
  line-height: 1; font-weight: 800;
}
