/* ==========================================================
   U Shanker & Associates — Custom styles layered on Tailwind
   ========================================================== */

html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
}

/* Nav underline */
.nav-link {
  position: relative;
  color: #09182c;
  transition: color .2s ease;
}
.nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0;
  height: 2px;
  background: #B8922C;
  transition: width .25s ease;
}
.nav-link:hover {
  color: #0d284e;
}
.nav-link:hover::after {
  width: 100%;
}

/* Sticky header shadow on scroll */
#site-header.scrolled {
  box-shadow: 0 6px 18px rgba(15,43,82,.08);
}

/* Mobile menu icon -> X */
#menu-toggle.open .menu-bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
#menu-toggle.open .menu-bar:nth-child(2) { opacity: 0; }
#menu-toggle.open .menu-bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Floating whatsapp button */
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
.animate-float {
  animation: floatY 2.6s ease-in-out infinite;
}

/* Scroll reveal */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease, transform .7s ease;
}
[data-reveal].revealed {
  opacity: 1;
  transform: translateY(0);
}
[data-reveal="left"] { transform: translateX(-32px); }
[data-reveal="left"].revealed { transform: translateX(0); }
[data-reveal="right"] { transform: translateX(32px); }
[data-reveal="right"].revealed { transform: translateX(0); }
[data-reveal="scale"] { transform: scale(.94); }
[data-reveal="scale"].revealed { transform: scale(1); }

/* Stagger children */
[data-reveal-group] > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
[data-reveal-group].revealed > * {
  opacity: 1;
  transform: translateY(0);
}
[data-reveal-group].revealed > *:nth-child(1) { transition-delay: 0ms; }
[data-reveal-group].revealed > *:nth-child(2) { transition-delay: 80ms; }
[data-reveal-group].revealed > *:nth-child(3) { transition-delay: 160ms; }
[data-reveal-group].revealed > *:nth-child(4) { transition-delay: 240ms; }
[data-reveal-group].revealed > *:nth-child(5) { transition-delay: 320ms; }
[data-reveal-group].revealed > *:nth-child(6) { transition-delay: 400ms; }
[data-reveal-group].revealed > *:nth-child(7) { transition-delay: 480ms; }
[data-reveal-group].revealed > *:nth-child(8) { transition-delay: 560ms; }
[data-reveal-group].revealed > *:nth-child(9) { transition-delay: 640ms; }
[data-reveal-group].revealed > *:nth-child(10) { transition-delay: 720ms; }
[data-reveal-group].revealed > *:nth-child(11) { transition-delay: 800ms; }
[data-reveal-group].revealed > *:nth-child(12) { transition-delay: 880ms; }
[data-reveal-group].revealed > *:nth-child(13) { transition-delay: 960ms; }
[data-reveal-group].revealed > *:nth-child(14) { transition-delay: 1040ms; }

/* Glassmorphism card */
.glass {
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,.22);
}

/* Service card hover lift + gold border */
.service-card {
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  border: 1px solid #E9EDF2;
}
.service-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 35px rgba(15,43,82,.12);
  border-color: #D0AE55;
}

/* ---------------------------------------------------------
   Service "flip" card — content shown by default; on hover
   the content layer slides up and out while the image layer
   slides up from below to take its place.
   --------------------------------------------------------- */
.service-flip-card {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  isolation: isolate; /* keep child stacking contained */
}
.service-flip-layer {
  position: absolute;
  inset: 0;
  transition: transform .55s cubic-bezier(.65, 0, .35, 1);
  will-change: transform;
}
.service-flip-content {
  transform: translateY(0%);
  z-index: 2;
}
.service-flip-image {
  transform: translateY(100%);
  z-index: 1;
}
.service-flip-card:hover .service-flip-content,
.service-flip-card:focus-within .service-flip-content {
  transform: translateY(-100%);
}
.service-flip-card:hover .service-flip-image,
.service-flip-card:focus-within .service-flip-image {
  transform: translateY(0%);
}
/* Touch devices: no hover, so tapping toggles via .is-flipped (see main.js) */
.service-flip-card.is-flipped .service-flip-content {
  transform: translateY(-100%);
}
.service-flip-card.is-flipped .service-flip-image {
  transform: translateY(0%);
}

/* Image zoom container */
.img-zoom { overflow: hidden; }
.img-zoom img { transition: transform .5s ease; }
.img-zoom:hover img { transform: scale(1.08); }

/* Button ripple */
.btn-ripple {
  position: relative;
  overflow: hidden;
}
.btn-ripple::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle, rgba(255,255,255,.55) 0%, transparent 60%);
  opacity: 0;
  transform: scale(0);
  transition: transform .5s ease, opacity .6s ease;
}
.btn-ripple:active::after {
  opacity: 1;
  transform: scale(2.2);
  transition: 0s;
}

/* Floating abstract shapes (hero) */
.shape-blob {
  position: absolute;
  border-radius: 999px;
  filter: blur(2px);
  opacity: .5;
  animation: floatY 8s ease-in-out infinite;
}

/* FAQ accordion */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, padding .35s ease;
}
.faq-item.open .faq-answer {
  max-height: 300px;
}
.faq-item .faq-chevron {
  transition: transform .3s ease;
}
.faq-item.open .faq-chevron {
  transform: rotate(180deg);
}

/* Testimonial slider */
.testimonial-track {
  display: flex;
  transition: transform .5s ease;
}
.testimonial-slide {
  flex: 0 0 100%;
}
@media (min-width: 768px) {
  .testimonial-slide { flex: 0 0 50%; }
}
@media (min-width: 1024px) {
  .testimonial-slide { flex: 0 0 33.3333%; }
}

/* Counter number */
.counter-num { font-variant-numeric: tabular-nums; }

/* Utility: gold underline accent */
.accent-underline {
  position: relative;
  display: inline-block;
}
.accent-underline::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, #B8922C, #D0AE55);
  border-radius: 999px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-reveal], [data-reveal-group] > *, .animate-float, .shape-blob {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
