/* =========================================================
   Vibhav Enterprise Solutions — site-wide custom additions
   (Products mega-dropdown + product landing page layout)
   ========================================================= */

/* ---- Floating WhatsApp chat button ---- */
.whatsapp-float {
  position: fixed;
  bottom: 22px;
  left: 22px;
  z-index: 99;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25d366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(37, 211, 102, 0.4);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.whatsapp-float:hover,
.whatsapp-float:focus {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(37, 211, 102, 0.5);
}
.whatsapp-float .fa {
  color: #fff;
  font-size: 28px;
  line-height: 1;
}
@media (max-width: 480px) {
  .whatsapp-float {
    width: 50px;
    height: 50px;
    bottom: 16px;
    left: 16px;
  }
  .whatsapp-float .fa {
    font-size: 24px;
  }
}

/* ---- Products dropdown menu ---- */
.navbar .dropdown-menu {
  border: none;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(44, 48, 56, 0.16);
  padding: 10px;
  min-width: 300px;
  margin-top: 14px;
}

.dropdown-menu-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-color);
  padding: 6px 12px 8px;
}

.dropdown-item.product-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  white-space: normal;
}

.dropdown-item.product-link:hover,
.dropdown-item.product-link:focus {
  background: var(--light-bg-color);
}

.dropdown-item.product-link img {
  width: 42px;
  height: 42px;
  flex: none;
}

.dropdown-item.product-link .product-name {
  display: block;
  font-weight: 700;
  color: var(--title-color);
  font-size: 15px;
  line-height: 1.3;
}

.dropdown-item.product-link .product-tag {
  display: block;
  font-size: 12.5px;
  color: var(--text-color);
  font-weight: 400;
  white-space: normal;
  line-height: 1.3;
}

@media (min-width: 992px) {
  .navbar-nav .dropdown:hover > .dropdown-menu {
    display: block;
  }
}

/* ---- Shared product-page building blocks ---- */
.product-hero {
  padding: 150px 0 70px;
  overflow: hidden;
  position: relative;
}

.product-hero.theme-rose { background: linear-gradient(180deg, #fff7f9 0%, #ffffff 100%); }
.product-hero.theme-mint { background: linear-gradient(180deg, #f3fbf6 0%, #ffffff 100%); }

.product-hero .eyebrow-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 30px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 18px;
}

.theme-rose .eyebrow-pill { background: rgba(220, 79, 114, 0.12); color: var(--primary); }
.theme-mint .eyebrow-pill { background: rgba(31, 122, 67, 0.12); color: #1f7a43; }

.product-hero .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}
.theme-rose .dot { background: var(--primary); }
.theme-mint .dot { background: #1f7a43; }

.product-hero-art {
  filter: drop-shadow(0 24px 40px rgba(44, 48, 56, 0.12));
}

.stat-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 34px;
}

.stat-pill h4 {
  font-size: 26px;
  font-weight: 800;
  margin-bottom: 2px;
  color: var(--title-color);
}

.stat-pill p {
  font-size: 13.5px;
  color: var(--text-color);
  margin: 0;
}

.theme-rose .stat-pill h4 { color: var(--primary); }
.theme-mint .stat-pill h4 { color: #1f7a43; }

/* feature cards */
.feature-card {
  background: #ffffff;
  border: 1px solid #f1eef0;
  border-radius: var(--card-curve);
  padding: 30px 26px;
  height: 100%;
  transition: 0.3s ease;
  box-shadow: 0 6px 20px rgba(44, 48, 56, 0.04);
}

.feature-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(44, 48, 56, 0.1);
}

.feature-card .feature-card-icon {
  width: 60px;
  height: 60px;
  margin-bottom: 18px;
}

.feature-card h5 {
  font-weight: 700;
  color: var(--title-color);
  margin-bottom: 10px;
}

.feature-card p {
  color: var(--text-color);
  font-size: 15px;
  margin-bottom: 0;
}

.section-soft-rose { background: #fdf5f7; }
.section-soft-mint { background: #f2faf5; }
.section-soft-blue { background: #f5f9fd; }

/* numbered step rows (used by Vaidhika workflow) */
.step-row {
  display: flex;
  gap: 18px;
  margin-bottom: 30px;
}

.step-num {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: #fff;
}

.theme-rose .step-num { background: var(--primary); }
.theme-mint .step-num { background: #1f7a43; }

.step-row h6 { font-weight: 700; margin-bottom: 6px; color: var(--title-color); }
.step-row p { color: var(--text-color); margin-bottom: 0; }

/* CTA banner */
.cta-banner {
  border-radius: 18px;
  padding: 50px 40px;
  color: #fff;
  position: relative;
  overflow: hidden;
}

.cta-banner.theme-rose { background: linear-gradient(120deg, #dc4f72, #b13a58); }
.cta-banner.theme-mint { background: linear-gradient(120deg, #3fb673, #1f7a43); }

.cta-banner h3 { color: #fff; margin-bottom: 10px; }
.cta-banner p { color: rgba(255,255,255,0.9); margin-bottom: 0; }

.cta-banner .btn-light {
  font-weight: 700;
  border-radius: 30px;
}

/* pill tag list */
.tag-pill-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.tag-pill-list span {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 30px;
  padding: 7px 16px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--title-color);
}

@media (max-width: 991px) {
  .product-hero { padding: 120px 0 50px; text-align: center; }
  .stat-pill-row { justify-content: center; }
  .product-hero-art { margin-top: 40px; max-width: 80%; }
}

/* ---- Weekly schedule mock-up (Vaidhika "how it works") ---- */
.weekly-mock {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(44, 48, 56, 0.1);
  padding: 22px;
  border: 1px solid #f6eef1;
}

.weekly-mock-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid #f3edf0;
  margin-bottom: 16px;
  font-weight: 700;
  color: var(--title-color);
}

.weekly-mock-badge {
  background: rgba(220, 79, 114, 0.12);
  color: var(--primary);
  border-radius: 30px;
  padding: 5px 14px;
  font-size: 12.5px;
  font-weight: 700;
}

.weekly-mock-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(72px, 1fr));
  gap: 8px;
  overflow-x: auto;
}

.weekly-mock-day {
  background: var(--light-bg-color);
  border-radius: 10px;
  padding: 8px 6px;
  min-height: 130px;
}

.weekly-mock-day p {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #a9adb4;
  margin-bottom: 8px;
  text-align: center;
}

.weekly-mock-slot {
  border-radius: 8px;
  padding: 6px 6px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  margin-bottom: 6px;
  line-height: 1.25;
}

.weekly-mock-slot.rose { background: var(--primary); }
.weekly-mock-slot.blue { background: var(--secondary); }
.weekly-mock-slot.gold { background: #d99a2b; }
.weekly-mock-slot.green { background: #1f7a43; }

@media (max-width: 575px) {
  .weekly-mock-grid { grid-template-columns: repeat(7, minmax(90px, 1fr)); }
}

/* ---- Mint+ app-store style buttons ---- */
.store-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.store-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--title-color);
  color: #fff;
  border-radius: 10px;
  padding: 10px 18px;
  transition: 0.25s ease;
}
.store-btn:hover { transform: translateY(-3px); color: #fff; }
.store-btn.disabled { opacity: 0.55; cursor: default; }
.store-btn .store-btn-icon { width: 26px; height: 26px; flex: none; }
.store-btn small { display: block; font-size: 10.5px; opacity: 0.8; line-height: 1; }
.store-btn strong { display: block; font-size: 15px; line-height: 1.3; }

.weekly-mock-badge.mint { background: rgba(31, 122, 67, 0.12); color: #1f7a43; }

/* ---- Basket summary mock-up (Mint+ "how it works") ---- */
.cart-mock-list { margin-top: 4px; }

.cart-mock-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #eef6f0;
}

.cart-mock-row:first-child { padding-top: 2px; }

.cart-mock-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex: none;
}

.cart-mock-info { flex: 1 1 auto; }
.cart-mock-info strong { display: block; font-size: 14.5px; color: var(--title-color); }
.cart-mock-info small { color: #a9adb4; font-size: 12px; }

.cart-mock-price { font-weight: 700; color: var(--title-color); }

.cart-mock-total {
  display: flex;
  justify-content: space-between;
  font-weight: 800;
  color: var(--title-color);
  padding-top: 14px;
  margin-top: 6px;
  font-size: 16px;
}

/* ---- Values card (no icon, accent border) ---- */
.value-card {
  background: #ffffff;
  border: 1px solid #eef6f0;
  border-left: 4px solid #3fb673;
  border-radius: var(--card-curve);
  padding: 24px 26px;
  height: 100%;
}

.value-card h5 {
  font-weight: 700;
  color: var(--title-color);
  margin-bottom: 8px;
}

.value-card p {
  color: var(--text-color);
  font-size: 15px;
  margin-bottom: 0;
}

/* =========================================================
   Homepage redesign
   ========================================================= */

/* brand (blue+rose) theme variants for shared components */
.theme-brand .eyebrow-pill { background: rgba(13, 95, 168, 0.1); color: var(--secondary); }
.theme-brand .dot { background: var(--secondary); }
.theme-brand .stat-pill h4 { color: var(--secondary); }
.theme-brand .step-num { background: var(--secondary); }

.cta-banner.theme-brand { background: linear-gradient(120deg, #0d5fa8, #dc4f72); }

/* ---- Home hero ---- */
.home-hero {
  padding: 150px 0 80px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(180deg, #f5f9fd 0%, #ffffff 100%);
}

.home-hero h1 {
  font-size: 46px;
  line-height: 1.2;
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .home-hero h1 { font-size: 32px; }
}

/* ---- Logo / trusted-by strip ---- */
.logo-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 46px;
  margin-top: 10px;
}

.logo-strip img {
  height: 34px;
  max-width: 120px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.55;
  transition: 0.3s ease;
}

.logo-strip img:hover {
  filter: grayscale(0);
  opacity: 1;
}

/* ---- Vertical timeline ---- */
.timeline {
  position: relative;
  padding-left: 46px;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: #f0eef1;
}

.timeline-item {
  position: relative;
  padding-bottom: 34px;
}

.timeline-item:last-child { padding-bottom: 0; }

.timeline-dot {
  position: absolute;
  left: -46px;
  top: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 12.5px;
  box-shadow: 0 0 0 5px #fff;
}

.timeline-item h6 {
  font-weight: 700;
  color: var(--title-color);
  margin-bottom: 6px;
}

.timeline-item p {
  color: var(--text-color);
  margin-bottom: 0;
}

/* ---- Testimonial avatar (initials, no stock photos) ---- */
.avatar-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 26px;
  color: #fff;
  flex: none;
  margin: 0 auto;
}

.testimonial-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  background: #f3f6f9;
  border: 1px solid #eee;
  margin: 0 auto;
}

.testimonial-avatar img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 12px;
}

/* Testimonials: swap the stock b2.jpg parallax photo for a flat brand tint */
.w3l-testimonials .testimonials {
  background-image: none;
  background-color: var(--light-bg-color);
}

/* ---- Product grid card (homepage "Our Products") ---- */
.product-grid-card {
  background: #ffffff;
  border: 1px solid #f1eef0;
  border-radius: var(--card-curve);
  padding: 28px 24px;
  height: 100%;
  transition: 0.3s ease;
  box-shadow: 0 6px 20px rgba(44, 48, 56, 0.04);
  display: flex;
  flex-direction: column;
}

.product-grid-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(44, 48, 56, 0.1);
}

.product-grid-card img.feature-card-icon { width: 54px; height: 54px; margin-bottom: 16px; }

.product-grid-card h5 { font-weight: 700; color: var(--title-color); margin-bottom: 8px; }

.product-grid-card p { color: var(--text-color); font-size: 14.5px; flex: 1 1 auto; }

.product-grid-card .card-link {
  font-weight: 700;
  font-size: 13.5px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--primary);
  margin-top: 12px;
  display: inline-block;
}

.product-grid-card .card-link span { transition: 0.2s ease; display: inline-block; }
.product-grid-card:hover .card-link span { transform: translateX(3px); }

/* ---- Full-bleed brand banner (replaces stock bg.jpg parallax) ---- */
.brand-banner {
  background: linear-gradient(120deg, #0d5fa8, #6a3f8f 55%, #dc4f72);
  min-height: 380px;
  display: grid;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.brand-banner::before,
.brand-banner::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
}

.brand-banner::before { width: 340px; height: 340px; top: -120px; right: -80px; }
.brand-banner::after { width: 220px; height: 220px; bottom: -100px; left: 8%; }

.brand-banner .middle-section { max-width: 620px; position: relative; z-index: 1; }
.brand-banner h2 { color: #ffffff; font-size: 32px; line-height: 1.35; font-weight: 700; }
.brand-banner p { font-size: 16px; color: rgba(255, 255, 255, 0.85); line-height: 24.5px; }

@media (max-width: 767px) {
  .brand-banner { min-height: auto; padding: 3.5rem 0; }
  .brand-banner h2 { font-size: 26px; }
}

/* =========================================================
   Voice Bot product page (violet/indigo theme)
   ========================================================= */
.theme-violet .eyebrow-pill { background: rgba(75, 63, 158, 0.1); color: #4b3f9e; }
.theme-violet .dot { background: #4b3f9e; }
.theme-violet .stat-pill h4 { color: #4b3f9e; }
.theme-violet .step-num { background: #4b3f9e; }
.cta-banner.theme-violet { background: linear-gradient(120deg, #6a5fcf, #4b3f9e); }

.product-hero.theme-violet { background: linear-gradient(180deg, #f7f6fd 0%, #ffffff 100%); }
.section-soft-violet { background: #f7f6fd; }

/* Outbound / Inbound intro pair */
.mode-card {
  background: #ffffff;
  border: 1px solid #ece8fb;
  border-radius: var(--card-curve);
  padding: 30px 28px;
  height: 100%;
  box-shadow: 0 6px 20px rgba(44, 48, 56, 0.04);
}

.mode-card img.feature-card-icon { width: 56px; height: 56px; margin-bottom: 16px; }
.mode-card h4 { font-weight: 700; color: var(--title-color); margin-bottom: 10px; }
.mode-card p { color: var(--text-color); font-size: 15px; }

.mode-card ul {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}

.mode-card ul li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 10px;
  font-size: 14.5px;
  color: var(--title-color);
}

.mode-card ul li::before {
  content: '\2713';
  position: absolute;
  left: 0;
  top: 0;
  color: #4b3f9e;
  font-weight: 700;
}

/* ---- Call console mock-up (chat-style transcript preview) ---- */
.call-console-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid #ece8fb;
  margin-bottom: 16px;
  font-weight: 700;
  color: var(--title-color);
}

.call-console-badge {
  background: rgba(63, 182, 115, 0.12);
  color: #1f7a43;
  border-radius: 30px;
  padding: 5px 14px;
  font-size: 12.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.call-console-badge .dot-live {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1f7a43;
  display: inline-block;
  animation: pulseLive 1.4s ease-in-out infinite;
}

@keyframes pulseLive {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

.call-line {
  max-width: 82%;
  margin-bottom: 14px;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.45;
}

.call-line.bot {
  background: #f1eefc;
  color: var(--title-color);
  border-bottom-left-radius: 3px;
}

.call-line.caller {
  background: #4b3f9e;
  color: #ffffff;
  margin-left: auto;
  border-bottom-right-radius: 3px;
}

.call-line small {
  display: block;
  font-size: 11px;
  opacity: 0.6;
  margin-bottom: 3px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* =========================================================
   GPS Parser / Fleet Tracking page (blue theme, reuses theme-brand)
   ========================================================= */
.raw-line {
  background: #0f335a;
  color: #7fc0ea;
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12.5px;
  padding: 12px 16px;
  border-radius: 10px;
  overflow-x: auto;
  white-space: nowrap;
}

.parse-arrow {
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: #a9adb4;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 14px 0;
}

.parsed-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.parsed-field {
  background: var(--light-bg-color);
  border-radius: 10px;
  padding: 12px 14px;
}

.parsed-field small {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #a9adb4;
  margin-bottom: 4px;
}

.parsed-field strong {
  font-size: 15px;
  color: var(--title-color);
}

/* ---- Form feedback (subscribe + contact forms) ---- */
.form-feedback {
  margin-top: 10px;
  font-size: 13.5px;
  font-weight: 600;
  display: none;
}

/* ---- Honeypot spam trap: off-screen, never seen or tabbed into by real visitors ---- */
.hp-field {
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ---- Simple math check (contact form spam prevention) ---- */
.captcha-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}
.captcha-label {
  font-size: 14px;
  color: var(--text-color);
  white-space: nowrap;
  margin: 0;
}
.captcha-input {
  max-width: 80px;
  text-align: center;
}

.form-feedback.is-success { color: #1f7a43; display: block; }
.form-feedback.is-error { color: #b13a58; display: block; }

.subscribe button[disabled],
.contact-submit-btn[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* =========================================================
   BOLD GRADIENT MESH THEME
   Soft multi-color mesh backgrounds, glassmorphic floating
   cards, gradient buttons, rounded-2xl everything. Leans into
   the existing rose/mint/violet/blue product palette rather
   than flattening it. CSS-only — no markup or logo changes.
   ========================================================= */

body {
  background:
    radial-gradient(900px 600px at 8% -5%, rgba(234, 106, 140, 0.16), transparent 60%),
    radial-gradient(800px 600px at 95% 8%, rgba(79, 159, 224, 0.14), transparent 55%),
    radial-gradient(900px 700px at 50% 30%, rgba(139, 127, 245, 0.10), transparent 60%),
    radial-gradient(800px 600px at 5% 55%, rgba(63, 182, 115, 0.12), transparent 55%),
    radial-gradient(900px 700px at 100% 75%, rgba(245, 185, 66, 0.10), transparent 55%),
    radial-gradient(800px 600px at 15% 100%, rgba(234, 106, 140, 0.12), transparent 55%),
    #fffefd;
  background-attachment: scroll;
}

/* ---- Rounded-2xl everything ---- */
.feature-card,
.mode-card,
.value-card,
.product-grid-card,
.weekly-mock,
.contact-form,
.w3l-contact .contact-info,
.w3l-testimonials .slider-info,
.w3l-index5 .grids5-info,
.w3l-stats .stats_info,
.navbar .dropdown-menu,
.modal-content {
  border-radius: 22px !important;
}

.cta-banner { border-radius: 28px; }
.brand-banner { border-radius: 0; } /* full-bleed section, stays square */
.testimonial-avatar, .avatar-circle { border-radius: 50%; } /* stay circular */

/* ---- Glassmorphic cards ---- */
.feature-card,
.mode-card,
.value-card,
.product-grid-card,
.weekly-mock,
.contact-form,
.w3l-contact .contact-info,
.w3l-testimonials .slider-info,
.w3l-index5 .grids5-info,
.w3l-stats .stats_info {
  background: rgba(255, 255, 255, 0.68) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 8px 32px rgba(80, 60, 120, 0.10) !important;
}

.feature-card:hover,
.mode-card:hover,
.product-grid-card:hover {
  background: rgba(255, 255, 255, 0.85) !important;
  box-shadow: 0 24px 48px rgba(80, 60, 120, 0.16) !important;
  transform: translateY(-8px);
}

.navbar .dropdown-menu {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
}

/* ---- Gradient buttons, contextual to each product theme ---- */
.btn-primary {
  background: linear-gradient(120deg, #ea6a8c, #8b7ff5) !important;
  border: none !important;
  border-radius: 30px !important;
  box-shadow: 0 10px 24px rgba(139, 90, 170, 0.28);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary.focus {
  filter: brightness(1.06);
  box-shadow: 0 14px 30px rgba(139, 90, 170, 0.36);
}

.btn-outline-primary {
  border-radius: 30px !important;
  border-width: 2px !important;
}

.theme-button { border-radius: 30px; }

.theme-rose .btn-primary { background: linear-gradient(120deg, #ea6a8c, #b13a58) !important; box-shadow: 0 10px 24px rgba(220, 79, 114, 0.3); }
.theme-mint .btn-primary { background: linear-gradient(120deg, #3fb673, #1f7a43) !important; box-shadow: 0 10px 24px rgba(63, 182, 115, 0.3); }
.theme-violet .btn-primary { background: linear-gradient(120deg, #8b7ff5, #4b3f9e) !important; box-shadow: 0 10px 24px rgba(139, 127, 245, 0.3); }
.theme-brand .btn-primary, .home-hero .btn-primary { background: linear-gradient(120deg, #4f9fe0, #0d5fa8) !important; box-shadow: 0 10px 24px rgba(79, 159, 224, 0.3); }

.theme-rose .btn-outline-primary { color: var(--primary); border-color: var(--primary); }
.theme-mint .btn-outline-primary { color: #1f7a43; border-color: #1f7a43; }
.theme-violet .btn-outline-primary { color: #4b3f9e; border-color: #4b3f9e; }
.theme-brand .btn-outline-primary, .home-hero .btn-outline-primary { color: var(--secondary); border-color: var(--secondary); }
.theme-rose .btn-outline-primary:hover { background: var(--primary); }
.theme-mint .btn-outline-primary:hover { background: #1f7a43; }
.theme-violet .btn-outline-primary:hover { background: #4b3f9e; }
.theme-brand .btn-outline-primary:hover, .home-hero .btn-outline-primary:hover { background: var(--secondary); }

/* ---- Product hero art: soft glow instead of flat shadow ---- */
.product-hero-art {
  filter: drop-shadow(0 30px 50px rgba(139, 90, 170, 0.18));
}

/* ---- Section washes stay soft/translucent (mesh already provides color) ---- */
.section-soft-rose { background: rgba(234, 106, 140, 0.05); }
.section-soft-mint { background: rgba(63, 182, 115, 0.05); }
.section-soft-violet { background: rgba(139, 127, 245, 0.05); }
.section-soft-blue { background: rgba(79, 159, 224, 0.05); }

/* ---- Forms: clearly visible inputs (not glass - transparent-on-light
   backgrounds made field boundaries invisible to real users) ---- */
.subscribe input,
.w3l-contact input.contact-input,
.w3l-contact textarea,
.form-control {
  border-radius: 14px !important;
  background: #ffffff !important;
  border: 1.5px solid rgba(21, 23, 28, 0.22) !important;
  color: #15171c !important;
}

.subscribe input:focus,
.w3l-contact input.contact-input:focus,
.w3l-contact textarea:focus,
.form-control:focus {
  border: 1.5px solid var(--primary) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(220, 79, 114, 0.12) !important;
}

/* =========================================================
   POLISH PASS: motion, easing, tactile feedback
   ========================================================= */

/* Smooth in-page anchor scrolling (respects reduced-motion) */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Refined, springier easing on card + icon interactions */
.feature-card,
.mode-card,
.product-grid-card {
  transition: transform 0.45s cubic-bezier(.16,1,.3,1),
              background 0.3s ease,
              box-shadow 0.45s cubic-bezier(.16,1,.3,1);
}

.feature-card .feature-card-icon,
.mode-card .feature-card-icon,
.product-grid-card .feature-card-icon {
  transition: transform 0.4s cubic-bezier(.34,1.56,.64,1);
}

.feature-card:hover .feature-card-icon,
.mode-card:hover .feature-card-icon,
.product-grid-card:hover .feature-card-icon {
  transform: scale(1.08) rotate(-3deg);
}

/* Tactile press feedback on buttons */
.theme-button {
  transition: transform 0.15s ease, filter 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.theme-button:active { transform: scale(0.97); }

/* Nav link underline: smoother, slightly springy */
.navbar-expand-lg .navbar-nav .nav-link:before {
  transition: width 0.35s cubic-bezier(.16,1,.3,1);
}

/* Scroll-reveal (progressive enhancement — see assets/js/scroll-reveal.js).
   Only applies once JS confirms IntersectionObserver support by adding
   .reveal-ready to <html>; otherwise content stays visible by default. */
@media (prefers-reduced-motion: no-preference) {
  html.reveal-ready .feature-card,
  html.reveal-ready .mode-card,
  html.reveal-ready .value-card,
  html.reveal-ready .product-grid-card,
  html.reveal-ready .weekly-mock,
  html.reveal-ready .timeline-item {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.7s cubic-bezier(.16,1,.3,1), transform 0.7s cubic-bezier(.16,1,.3,1);
  }

  html.reveal-ready .feature-card.in-view,
  html.reveal-ready .mode-card.in-view,
  html.reveal-ready .value-card.in-view,
  html.reveal-ready .product-grid-card.in-view,
  html.reveal-ready .weekly-mock.in-view,
  html.reveal-ready .timeline-item.in-view {
    opacity: 1;
    transform: translateY(0);
  }

  /* stagger cards within the same row for a nicer cascade */
  html.reveal-ready .row > [class*="col-"]:nth-child(2) .feature-card,
  html.reveal-ready .row > [class*="col-"]:nth-child(2) .product-grid-card { transition-delay: 0.08s; }
  html.reveal-ready .row > [class*="col-"]:nth-child(3) .feature-card,
  html.reveal-ready .row > [class*="col-"]:nth-child(3) .product-grid-card { transition-delay: 0.16s; }
  html.reveal-ready .row > [class*="col-"]:nth-child(4) .feature-card { transition-delay: 0.24s; }
  html.reveal-ready .row > [class*="col-"]:nth-child(5) .feature-card { transition-delay: 0.32s; }
  html.reveal-ready .row > [class*="col-"]:nth-child(6) .feature-card { transition-delay: 0.4s; }
}

/* =========================================================
   Products & Solutions showcase carousel (homepage)
   ========================================================= */
.owl-products.owl-carousel,
.owl-fleet.owl-carousel,
.owl-parser.owl-carousel,
.owl-vaidhika.owl-carousel,
.owl-mintplus.owl-carousel,
.owl-voicebot.owl-carousel { display: block; }

.owl-products .item,
.owl-fleet .item,
.owl-parser .item,
.owl-vaidhika .item,
.owl-mintplus .item,
.owl-voicebot .item { padding: 6px; }

.product-slide {
  padding: 48px 40px;
  border-radius: 24px;
  min-height: 380px;
  display: flex;
  align-items: center;
}

.product-slide .product-hero-art {
  max-width: 320px;
  filter: drop-shadow(0 20px 34px rgba(80, 60, 120, 0.14));
}

/* The fleet/parser showcase illustrations have more canvas whitespace
   around their (simpler, single-concept) content than the main product
   hero art, so they need a larger max-width to read at a similar scale. */
.owl-fleet .product-hero-art,
.owl-parser .product-hero-art,
.owl-vaidhika .product-hero-art,
.owl-mintplus .product-hero-art,
.owl-voicebot .product-hero-art {
  max-width: 460px;
  width: 100%;
}

/* The vendor stylesheet has a sitewide bug: .owl-nav.disabled resolves
   to display:block instead of none, so any carousel configured with
   nav:false (testimonials included) still shows unusable nav arrows
   unless overridden here. */
.owl-carousel .owl-nav.disabled {
  display: none !important;
}

.owl-products .owl-dots,
.owl-fleet .owl-dots,
.owl-parser .owl-dots,
.owl-vaidhika .owl-dots,
.owl-mintplus .owl-dots,
.owl-voicebot .owl-dots {
  text-align: center;
  margin-top: 26px;
}

.owl-products .owl-dots .owl-dot span,
.owl-fleet .owl-dots .owl-dot span,
.owl-parser .owl-dots .owl-dot span,
.owl-vaidhika .owl-dots .owl-dot span,
.owl-mintplus .owl-dots .owl-dot span,
.owl-voicebot .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  margin: 0 5px;
  background: rgba(21, 23, 28, 0.15);
  display: block;
  border-radius: 50%;
  transition: 0.25s ease;
}

.owl-products .owl-dots .owl-dot.active span,
.owl-products .owl-dots .owl-dot:hover span,
.owl-fleet .owl-dots .owl-dot.active span,
.owl-fleet .owl-dots .owl-dot:hover span,
.owl-parser .owl-dots .owl-dot.active span,
.owl-parser .owl-dots .owl-dot:hover span,
.owl-vaidhika .owl-dots .owl-dot.active span,
.owl-vaidhika .owl-dots .owl-dot:hover span,
.owl-mintplus .owl-dots .owl-dot.active span,
.owl-mintplus .owl-dots .owl-dot:hover span,
.owl-voicebot .owl-dots .owl-dot.active span,
.owl-voicebot .owl-dots .owl-dot:hover span {
  background: var(--primary);
  transform: scale(1.15);
}

@media (max-width: 767px) {
  .product-slide {
    padding: 34px 22px;
    text-align: center;
    flex-direction: column;
  }
  .product-slide .row { flex-direction: column-reverse; }
  .product-slide .product-hero-art { max-width: 220px; margin: 0 auto 24px; }
}
