/* Kaivalya Guru — Custom theme on top of Bootstrap 5 */
:root {
  /* Logo-derived palette — 3 colors total: red (primary), saffron (secondary), ink (text) */
  --kg-ink: #1A1A1A;
  --kg-ink-soft: #3A3A3A;
  --kg-red: #D93124;          /* primary from logo petals */
  --kg-red-deep: #A8241A;
  --kg-saffron: #F5B81F;       /* yellow/saffron from logo */
  --kg-saffron-soft: #FCE9B3;
  --kg-green: #5A8A35;         /* green from logo leaf petals */
  --kg-green-soft: rgba(90,138,53,0.12);
  --kg-green-deep: #3D6B22;
  --kg-cream: #FAF6EF;
  --kg-cream-2: #F4EDE0;
  --kg-stone: #E8DFD1;
  /* Legacy aliases — map old vars to new palette so the rest of the CSS keeps working */
  --kg-terracotta: var(--kg-red);
  --kg-sage: var(--kg-green);
  --bs-body-font-family: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --bs-body-color: #1A1A1A;
  --bs-body-bg: #FAF6EF;
  --bs-primary: #D93124;
  --bs-primary-rgb: 217, 49, 36;
  --bs-link-color: #1A1A1A;
  --bs-link-hover-color: #D93124;
}

body { -webkit-font-smoothing: antialiased; line-height: 1.6; }
h1, h2, h3, h4, h5, h6 {
  font-family: "Montserrat", system-ui, sans-serif;
  letter-spacing: -0.02em;
  color: var(--kg-ink);
  font-weight: 600;
}

.display-1, .display-2, .display-3, .display-4 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 500;
  letter-spacing: -0.035em;
}

.text-saffron { color: var(--kg-saffron) !important; }
.text-sage { color: var(--kg-sage) !important; }
.text-terracotta { color: var(--kg-terracotta) !important; }
.text-ink { color: var(--kg-ink) !important; }
.text-muted-ink { color: rgba(11,28,59,0.6) !important; }

.bg-ink { background: var(--kg-ink) !important; color: #fff; }
.bg-cream { background: var(--kg-cream) !important; }
.bg-cream-2 { background: var(--kg-cream-2) !important; }

.italic-serif { font-style: italic; font-weight: 300; color: var(--kg-saffron); }

.mono {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(11,28,59,0.6);
}

.eyebrow {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(11,28,59,0.6);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content:"";
  width: 24px; height: 1px;
  background: var(--kg-green);
}
.eyebrow-light { color: rgba(255,255,255,0.7); }

/* Nav */
.navbar {
  background: rgba(250,246,239,0.9);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(11,28,59,0.08);
  padding: 14px 0;
}
.navbar-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
.navbar-brand img { height: 64px; width: auto; object-fit: contain; }
@media (max-width: 576px) { .navbar-brand img { height: 52px; } }
.navbar-nav .nav-link {
  padding: 8px 16px !important;
  font-size: 14px;
  font-weight: 500;
  color: var(--kg-ink);
  border-radius: 999px;
  margin: 0 2px;
}
.navbar-nav .nav-link:hover { background: rgba(11,28,59,0.06); color: var(--kg-ink); }
.navbar-nav .nav-link.active { background: var(--kg-red); color: #fff !important; }

/* Buttons */
.btn {
  border-radius: 999px;
  padding: 12px 24px;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-size: 14px;
}
.btn-primary {
  background: var(--kg-red);
  border-color: var(--kg-red);
  color: #fff;
}
.btn-primary:hover, .btn-primary:focus { background: var(--kg-red-deep); border-color: var(--kg-red-deep); color: #fff; }
.btn-accent { background: var(--kg-saffron); border-color: var(--kg-saffron); color: var(--kg-ink); }
.btn-accent:hover { background: var(--kg-red); color: #fff; border-color: var(--kg-red); }
.btn-outline-ink { background: transparent; color: var(--kg-ink); border: 1px solid rgba(11,28,59,0.15); }
.btn-outline-ink:hover { background: var(--kg-ink); color: #fff; border-color: var(--kg-ink); }
.btn-outline-light-kg { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.2); }
.btn-outline-light-kg:hover { background: #fff; color: var(--kg-ink); }

.btn .arrow { display: inline-block; transition: transform 0.25s; margin-left: 6px; }
.btn:hover .arrow { transform: translateX(4px); }

/* Cards */
.kg-card {
  background: #fff;
  border: 1px solid rgba(11,28,59,0.08);
  border-radius: 16px;
  padding: 32px;
  height: 100%;
  transition: all 0.3s ease;
}
.kg-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(11,28,59,0.1), 0 28px 60px rgba(11,28,59,0.06);
  border-color: transparent;
}

/* Placeholder image */
.placeholder-img {
  background: repeating-linear-gradient(135deg, var(--kg-stone) 0 1px, transparent 1px 14px), var(--kg-cream-2);
  border: 1px solid rgba(11,28,59,0.08);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(11,28,59,0.6);
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  text-align: center;
  padding: 24px;
  position: relative;
  overflow: hidden;
}
.placeholder-dark {
  background: repeating-linear-gradient(135deg, rgba(255,255,255,0.06) 0 1px, transparent 1px 14px), #16253F;
  color: rgba(255,255,255,0.55);
  border-color: rgba(255,255,255,0.08);
}
.ratio-4-3 { aspect-ratio: 4/3; }
.ratio-16-10 { aspect-ratio: 16/10; }
.ratio-21-9 { aspect-ratio: 21/9; }
.ratio-4-5 { aspect-ratio: 4/5; }

/* Chips */
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 999px;
  background: var(--kg-cream-2); font-size: 12px; font-weight: 500;
  color: rgba(11,28,59,0.7);
}
.chip-saffron { background: rgba(245,184,31,0.18); color: #7A5300; }
.chip-sage { background: var(--kg-green-soft); color: var(--kg-green-deep); }
.chip-green { background: var(--kg-green-soft); color: var(--kg-green-deep); }
.chip-terracotta { background: rgba(217,49,36,0.10); color: var(--kg-red-deep); }
.chip-red { background: rgba(217,49,36,0.10); color: var(--kg-red-deep); }

/* Service icon */
.svc-icon {
  width: 48px; height: 48px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
}
.svc-icon-saffron { background: rgba(245,184,31,0.18); color: #B8851A; }
.svc-icon-sage { background: rgba(217,49,36,0.10); color: var(--kg-red); }
.svc-icon-terracotta { background: rgba(217,49,36,0.10); color: var(--kg-red); }
.svc-icon-ink { background: rgba(26,26,26,0.06); color: var(--kg-ink); }
.svc-icon-red { background: rgba(217,49,36,0.10); color: var(--kg-red); }

/* Page head */
.page-head {
  padding: 96px 0 64px;
  border-bottom: 1px solid rgba(11,28,59,0.08);
  position: relative; overflow: hidden;
}
.page-head h1 {
  font-size: clamp(44px, 5.5vw, 64px);
  font-weight: 500;
  line-height: 1.02;
  margin: 18px 0 16px;
}
.crumbs {
  display: flex; gap: 10px; align-items: center;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em;
  color: rgba(11,28,59,0.6);
}
.crumbs .sep { opacity: 0.4; }

/* Hero */
.hero {
  padding: 96px 0 120px;
  position: relative;
  overflow: hidden;
}
.hero-title {
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  font-weight: 500;
}

.lead-kg {
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  color: rgba(11,28,59,0.6);
  max-width: 640px;
}

/* Mandala backdrop */
.mandala-bg {
  position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0;
  opacity: 0.05;
}
.mandala-bg svg { position: absolute; right: -200px; top: -200px; }

.pos-rel { position: relative; z-index: 1; }

/* Dark section */
.section-dark { background: var(--kg-ink); color: #fff; }
.section-dark h2, .section-dark h3 { color: #fff; }
.section-dark .mono, .section-dark .eyebrow { color: rgba(255,255,255,0.7); }
.section-dark .kg-card-dark {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  padding: 24px;
  height: 100%;
  transition: all 0.3s;
  color: #fff;
}
.section-dark .kg-card-dark:hover { background: rgba(245,184,31,0.08); }

/* Stat row */
.stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(11,28,59,0.08);
  border-bottom: 1px solid rgba(11,28,59,0.08);
}
.stat-row > div {
  padding: 32px 24px;
  border-right: 1px solid rgba(11,28,59,0.08);
}
.stat-row > div:last-child { border-right: none; }
.big-num {
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  font-size: clamp(48px, 5vw, 72px);
  line-height: 1; letter-spacing: -0.04em;
}
@media (max-width: 768px) {
  .stat-row { grid-template-columns: 1fr 1fr; }
  .stat-row > div:nth-child(2) { border-right: none; }
}

/* Bullet list */
ul.bullet { list-style: none; padding-left: 0; display: grid; gap: 10px; }
ul.bullet li {
  display: flex; gap: 12px;
  font-size: 15px; color: var(--kg-ink-soft); line-height: 1.55;
}
ul.bullet li::before {
  content:""; width: 6px; height: 6px; border-radius: 999px;
  background: var(--kg-saffron); margin-top: 10px; flex-shrink: 0;
}

/* Footer */
.site-footer {
  background: var(--kg-ink); color: rgba(255,255,255,0.75);
  padding: 96px 0 40px;
}
.site-footer h5 { color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: 0.14em; font-weight: 500; margin-bottom: 20px; }
.site-footer a { color: rgba(255,255,255,0.75); text-decoration: none; }
.site-footer a:hover { color: var(--kg-saffron); }
.site-footer ul { list-style: none; padding: 0; }
.site-footer ul li { margin-bottom: 12px; font-size: 14px; }
.site-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  margin-top: 72px; padding-top: 28px;
  font-size: 12px; color: rgba(255,255,255,0.5);
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 16px;
}
.social-dot {
  width: 36px; height: 36px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.15);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 500; letter-spacing: 0.1em;
  margin-right: 8px;
}

/* Section spacing */
.section-pad { padding: 120px 0; }
.section-pad-sm { padding: 80px 0; }

/* Section head */
.section-head { margin-bottom: 56px; }
.section-head h2 {
  font-size: clamp(32px, 3.8vw, 52px);
  font-weight: 500;
  max-width: 18ch;
  margin-top: 14px;
}

/* Form */
.form-label-kg {
  font-size: 12px;
  font-family: "JetBrains Mono", monospace;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(11,28,59,0.6);
  margin-bottom: 8px;
}
.form-control, .form-select {
  border: 1px solid rgba(11,28,59,0.15);
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 15px;
}
.form-control:focus, .form-select:focus {
  border-color: var(--kg-ink);
  box-shadow: none;
}

/* FAQ accordion */
.accordion-kg .accordion-item {
  border: 0;
  border-top: 1px solid rgba(11,28,59,0.08);
  background: transparent;
}
.accordion-kg .accordion-item:last-child { border-bottom: 1px solid rgba(11,28,59,0.08); }
.accordion-kg .accordion-button {
  background: transparent;
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 500;
  color: var(--kg-ink);
  padding: 28px 0;
  box-shadow: none;
}
.accordion-kg .accordion-button:not(.collapsed) { background: transparent; color: var(--kg-ink); }
.accordion-kg .accordion-button:focus { box-shadow: none; }
.accordion-kg .accordion-body {
  padding: 0 0 28px 0;
  font-size: 16px;
  line-height: 1.7;
  color: var(--kg-ink-soft);
  max-width: 640px;
}

/* Video thumb */
.video-thumb { position: relative; border-radius: 14px; overflow: hidden; cursor: pointer; }
.video-play {
  width: 52px; height: 52px; border-radius: 999px;
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center;
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
}
.video-dur {
  position: absolute; right: 10px; bottom: 10px;
  background: rgba(0,0,0,0.7); color: #fff;
  padding: 3px 8px; border-radius: 4px;
  font-size: 10px; font-family: "JetBrains Mono", monospace;
}

/* Big CTA banner */
.cta-banner {
  background: var(--kg-ink);
  border-radius: 24px;
  padding: 80px 64px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.cta-banner h2 { color: #fff; font-size: clamp(32px, 4vw, 52px); font-weight: 500; }

/* Misc */
.divider { height: 1px; background: rgba(11,28,59,0.08); border: 0; }
.stamp-saffron {
  position: absolute;
  width: 110px; height: 110px; border-radius: 999px;
  background: var(--kg-green);
  display: flex; align-items: center; justify-content: center;
  transform: rotate(-8deg);
  box-shadow: 0 12px 32px rgba(11,28,59,0.1);
  color: #fff;
}
.stamp-saffron .num { font-family: "Montserrat", sans-serif; font-size: 24px; font-weight: 600; line-height: 1; }
.stamp-saffron .lbl { font-size: 9px; text-transform: uppercase; letter-spacing: 0.14em; margin-top: 4px; text-align: center; }

/* Floating card (hero) */
.floating-card {
  position: absolute; right: -30px; top: 40px; width: 220px;
  background: #fff; border-radius: 14px; padding: 18px;
  box-shadow: 0 12px 32px rgba(11,28,59,0.1), 0 28px 60px rgba(11,28,59,0.06);
}
@media (max-width: 992px) {
  .floating-card, .stamp-saffron { display: none; }
}

/* Trust bar */
.trust-bar {
  padding: 32px 0;
  border-top: 1px solid rgba(11,28,59,0.08);
  border-bottom: 1px solid rgba(11,28,59,0.08);
}
.trust-bar .trust-item {
  font-family: "Montserrat", sans-serif;
  font-size: 15px; font-weight: 500; color: var(--kg-ink-soft);
}

/* Category filter */
.cat-btn {
  padding: 10px 20px; border-radius: 999px;
  border: 1px solid rgba(11,28,59,0.15);
  background: transparent;
  font-family: "Montserrat", sans-serif; font-size: 13px; font-weight: 500;
  color: var(--kg-ink);
  margin-right: 8px; margin-bottom: 8px;
  cursor: pointer; transition: all 0.2s;
}
.cat-btn:hover { border-color: var(--kg-ink); }
.cat-btn.active { background: var(--kg-ink); color: #fff; border-color: var(--kg-ink); }

.industry-tile:hover img { filter: grayscale(0) brightness(0.7) !important; transform: scale(1.05); }

/* Smaller responsive */
@media (max-width: 767px) {
  .section-pad { padding: 80px 0; }
  .cta-banner { padding: 48px 28px; }
  .page-head { padding: 64px 0 48px; }
}

/* Under-accent heading */
.under-accent { position: relative; display: inline-block; }
.under-accent::after {
  content:""; position: absolute; left: 0; bottom: -6px;
  width: 40%; height: 2px; background: var(--kg-saffron);
}

/* ================================================================
   ANIMATION SYSTEM — Kaivalya Guru
   ================================================================ */

/* Prefers-reduced-motion safety */
@media (prefers-reduced-motion: reduce) {
  .mandala-bg svg, .floating-card, .stamp-saffron,
  .trust-marquee-track, .particle, .cta-orb,
  .video-play, figure svg,
  .mandala-rings, .mandala-petals, .mandala-spokes,
  .mandala-center, .mandala-glow-rect,
  .hero-anim-1, .hero-anim-2, .hero-anim-3, .hero-anim-4, .hero-anim-5 {
    animation: none !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.in-view { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.1s; }
.reveal-d2 { transition-delay: 0.22s; }
.reveal-d3 { transition-delay: 0.34s; }
.reveal-d4 { transition-delay: 0.46s; }

/* ── Hero entrance ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0);    }
}
.hero-anim-1 { animation: fadeUp 0.75s cubic-bezier(0.16,1,0.3,1) 0.05s both; }
.hero-anim-2 { animation: fadeUp 0.75s cubic-bezier(0.16,1,0.3,1) 0.17s both; }
.hero-anim-3 { animation: fadeUp 0.75s cubic-bezier(0.16,1,0.3,1) 0.27s both; }
.hero-anim-4 { animation: fadeUp 0.75s cubic-bezier(0.16,1,0.3,1) 0.37s both; }
.hero-anim-5 { animation: fadeUp 0.85s cubic-bezier(0.16,1,0.3,1) 0.20s both; }

/* ── Mandala background rotation ── */
@keyframes mandalaRotate { to { transform: rotate(360deg); } }
.mandala-bg svg {
  animation: mandalaRotate 100s linear infinite;
  transform-box: fill-box;
  transform-origin: center;
}

/* ── Floating card & stamp ── */
@keyframes floatBob {
  0%, 100% { transform: translateY(0);     }
  50%       { transform: translateY(-10px); }
}
.floating-card { animation: floatBob 5s ease-in-out infinite; }

@keyframes stampWobble {
  0%, 100% { transform: rotate(-8deg) scale(1);    }
  50%       { transform: rotate(-6deg) scale(1.05); }
}
.stamp-saffron { animation: stampWobble 4.5s ease-in-out infinite; }

/* ── Golden particles ── */
.hero-particles {
  position: absolute; inset: 0;
  pointer-events: none; overflow: hidden; z-index: 0;
}
.particle {
  position: absolute;
  width: var(--size, 4px); height: var(--size, 4px);
  border-radius: 50%;
  background: var(--kg-saffron);
  opacity: 0;
  animation: particleDrift var(--dur, 9s) ease-out var(--delay, 0s) infinite;
}
@keyframes particleDrift {
  0%   { opacity: 0;    transform: translate(0,0) scale(0.4);                              }
  15%  { opacity: 0.65;                                                                     }
  85%  { opacity: 0.35;                                                                     }
  100% { opacity: 0;    transform: translate(var(--dx,40px), var(--dy,-90px)) scale(1.3);  }
}

/* ── Trust bar marquee ── */
.trust-marquee-wrap {
  overflow: hidden; flex: 1;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
}
@keyframes marqueeScroll {
  from { transform: translateX(0);    }
  to   { transform: translateX(-50%); }
}
.trust-marquee-track {
  display: flex; align-items: center;
  width: max-content;
  animation: marqueeScroll 22s linear infinite;
}
.trust-marquee-track:hover { animation-play-state: paused; }
.trust-marquee-item {
  display: flex; align-items: center; gap: 14px;
  padding: 0 22px; white-space: nowrap;
}
.trust-marquee-sep {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--kg-saffron); opacity: 0.55; flex-shrink: 0;
}

/* ── CTA floating orbs ── */
@keyframes orbFloat {
  0%, 100% { transform: translate(0,0) scale(1);         }
  33%       { transform: translate(16px,-12px) scale(1.06); }
  66%       { transform: translate(-10px,7px) scale(0.95);  }
}
.cta-orb { position: absolute; border-radius: 50%; pointer-events: none; }
.cta-orb-1 {
  width: 340px; height: 340px; top: -90px; right: -50px;
  background: radial-gradient(circle, rgba(245,184,31,0.22) 0%, transparent 70%);
  animation: orbFloat 9s ease-in-out infinite;
}
.cta-orb-2 {
  width: 230px; height: 230px; bottom: -70px; left: 6%;
  background: radial-gradient(circle, rgba(217,49,36,0.15) 0%, transparent 70%);
  animation: orbFloat 12s ease-in-out infinite reverse;
}
.cta-orb-3 {
  width: 170px; height: 170px; top: 25%; right: 26%;
  background: radial-gradient(circle, rgba(245,184,31,0.11) 0%, transparent 70%);
  animation: orbFloat 7.5s ease-in-out infinite 1.8s;
}

/* ── Card shimmer hover ── */
.kg-card { position: relative; overflow: hidden; }
.kg-card::before {
  content: ''; position: absolute;
  top: 0; left: -80%; width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(245,184,31,0.07), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}
@keyframes cardShimmer { to { left: 180%; } }
.kg-card:hover::before { animation: cardShimmer 0.65s ease forwards; }

/* ── Video play pulse ── */
@keyframes playPulse {
  0%, 100% { transform: translate(-50%,-50%) scale(1);   box-shadow: 0 0 0 0   rgba(255,255,255,0.3); }
  60%       { transform: translate(-50%,-50%) scale(1.1); box-shadow: 0 0 0 14px rgba(255,255,255,0);   }
}
.video-play { animation: playPulse 2.5s ease-in-out infinite; }

/* ── Quote icon breathe ── */
@keyframes quoteBreathe {
  0%, 100% { transform: scale(1);    opacity: 0.75; }
  50%       { transform: scale(1.08); opacity: 1;    }
}
figure svg { animation: quoteBreathe 3.5s ease-in-out infinite; display: block; }

/* ── Stat row highlight ── */
.stat-row > div { transition: background 0.3s; cursor: default; }
.stat-row > div:hover { background: rgba(245,184,31,0.07); }
.stat-row > div:hover .big-num { color: var(--kg-saffron); }
.big-num { transition: color 0.4s; }

/* ── Animated section divider ── */
.anim-divider {
  height: 1px; border: 0; margin: 0;
  background: linear-gradient(90deg, transparent, var(--kg-saffron) 40%, var(--kg-red) 60%, transparent);
  background-size: 300% 100%;
  animation: dividerSweep 4s ease-in-out infinite;
  opacity: 0.4;
}
@keyframes dividerSweep {
  0%   { background-position:  120% 0; }
  100% { background-position: -120% 0; }
}

/* ── Hero visual glow ── */
@keyframes heroVisualGlow {
  0%, 100% { box-shadow: 0 0 0 0    rgba(232,163,61,0);    }
  50%       { box-shadow: 0 0 60px 8px rgba(232,163,61,0.22); }
}
.hero-visual-card {
  animation: heroVisualGlow 5s ease-in-out infinite;
  border-radius: 24px;
}

/* ── Mandala hero card — rotating layers ── */
@keyframes mandalaSpin { to { transform: rotate(360deg); } }

/* Shared: each group rotates around its own bbox center */
.mandala-rings,
.mandala-petals,
.mandala-spokes,
.mandala-center {
  transform-box: fill-box;
  transform-origin: center;
}

/* Outer rings — slow counter-clockwise */
.mandala-rings {
  animation: mandalaSpin 28s linear infinite reverse;
}

/* Petals — medium clockwise, brighter on hover */
.mandala-petals {
  animation: mandalaSpin 18s linear infinite;
}

/* Spokes — very slow clockwise */
.mandala-spokes {
  animation: mandalaSpin 40s linear infinite;
}

/* Center dot — breathe pulse */
@keyframes centerDotPulse {
  0%, 100% { transform: scale(1);   opacity: 1;   }
  50%       { transform: scale(2.2); opacity: 0.5; }
}
.mandala-center { animation: centerDotPulse 3s ease-in-out infinite; }

/* Glow rect — breathe in/out */
@keyframes glowBreath {
  0%, 100% { opacity: 0.7; }
  50%       { opacity: 1;   }
}
.mandala-glow-rect { animation: glowBreath 4s ease-in-out infinite; }

/* Hover: speed up petals when card is hovered */
.hero-visual-card:hover .mandala-petals  { animation-duration: 6s;  }
.hero-visual-card:hover .mandala-rings   { animation-duration: 12s; }
.hero-visual-card:hover .mandala-spokes  { animation-duration: 20s; }

/* ── Industry tile hover lift ── */
.industry-tile {
  cursor: pointer;
  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1),
              box-shadow 0.4s cubic-bezier(0.16,1,0.3,1);
}
.industry-tile:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(0,0,0,0.28);
}

/* ── Blog image hover zoom ── */
.blog-img { overflow: hidden; border-radius: 16px; aspect-ratio: 16/10; margin-bottom: 12px; }
.blog-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.55s cubic-bezier(0.16,1,0.3,1);
  display: block;
}
.blog-img:hover img { transform: scale(1.05); }

/* ── Video thumbnail real image ── */
.video-thumb { position: relative; border-radius: 14px; overflow: hidden; cursor: pointer; }
.video-thumb img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.55s cubic-bezier(0.16,1,0.3,1);
}
.video-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.4);
  transition: background 0.3s;
}
.video-thumb:hover img { transform: scale(1.05); }
.video-thumb:hover .video-overlay { background: rgba(0,0,0,0.28); }

/* ── Services dropdown ── */
.kg-dropdown {
  min-width: 300px;
  border: 1px solid rgba(11,28,59,0.1);
  border-radius: 14px;
  padding: 12px 0;
  box-shadow: 0 12px 40px rgba(11,28,59,0.14);
  background: #fff;
  margin-top: 8px !important;
  animation: dropdownOpen 0.22s cubic-bezier(0.16,1,0.3,1) both;
}
@keyframes dropdownOpen {
  from { opacity: 0; transform: translateY(-8px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.kg-dropdown .dropdown-item {
  font-family: Inter, sans-serif;
  font-size: 15px;
  color: var(--kg-ink);
  padding: 10px 20px;
  border-radius: 0;
  transition: background 0.15s, color 0.15s, padding-left 0.15s;
}
.kg-dropdown .dropdown-item:hover,
.kg-dropdown .dropdown-item:focus {
  background: rgba(232,163,61,0.1);
  color: var(--kg-ink);
  padding-left: 26px;
}
.kg-dropdown-all {
  font-size: 18px !important;
  font-weight: 700;
  color: var(--kg-red) !important;
  padding: 10px 20px 12px !important;
}
.kg-dropdown-all:hover { color: var(--kg-red) !important; padding-left: 20px !important; }
.kg-dropdown-group {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kg-saffron);
  padding: 12px 20px 6px;
  font-weight: 700;
}
/* Clickable section links (group parents + standalone pages like Numerology, Tarot) */
.kg-section-link {
  color: var(--kg-red) !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-family: Inter, sans-serif !important;
  padding: 10px 20px !important;
}
.kg-section-link:hover { color: var(--kg-red-deep) !important; background: rgba(217,49,36,0.06) !important; }
.kg-dropdown-sub {
  padding-left: 16px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  font-size: 15px !important;
  color: rgba(11,28,59,0.65) !important;
  display: flex !important;
  align-items: center;
  gap: 8px;
}
.kg-dropdown-sub .kg-arrow {
  color: var(--kg-saffron);
  font-weight: 700;
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}
.kg-dropdown-sub:hover { color: var(--kg-ink) !important; }
/* Section overview links (depth-2 items) win over the muted sub-item colour */
.kg-dropdown-sub.kg-section-link { color: var(--kg-red) !important; font-weight: 600 !important; }
.kg-dropdown-sub.kg-section-link:hover { color: var(--kg-red-deep) !important; }
.kg-dropdown .dropdown-divider {
  margin: 8px 16px;
  border-color: rgba(11,28,59,0.1);
}
/* Caret styling */
.nav-link.dropdown-toggle::after {
  border: none;
  content: '⌄';
  font-size: 12px;
  vertical-align: middle;
  margin-left: 3px;
  line-height: 1;
  transition: transform 0.2s;
  display: inline-block;
}
.nav-item.dropdown.show .nav-link.dropdown-toggle::after {
  transform: rotate(180deg);
}
/* Mobile: full-width dropdown */
@media (max-width: 991px) {
  .kg-dropdown {
    border: none;
    box-shadow: none;
    border-radius: 0;
    background: rgba(11,28,59,0.04);
    margin: 4px 0 !important;
    animation: none;
  }
}

/* ── About Founder section ── */
.about-founder-img-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 420px;
}
.about-founder-img-wrap img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  object-position: top center;
  border-radius: 50%;
  display: block;
  position: relative;
  z-index: 2;
  box-shadow: 0 24px 64px rgba(11,28,59,0.18);
  transition: transform 0.6s cubic-bezier(0.16,1,0.3,1);
}
.about-founder-img-wrap:hover img {
  transform: scale(1.03);
}
.about-founder-ring {
  position: absolute;
  border-radius: 50%;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  z-index: 1;
  pointer-events: none;
}
.about-founder-ring-1 {
  width: calc(100% + 28px);
  height: calc(100% + 28px);
  border: 2px solid rgba(232,163,61,0.35);
  animation: aboutRingPulse 3s ease-in-out infinite;
}
.about-founder-ring-2 {
  width: calc(100% + 56px);
  height: calc(100% + 56px);
  border: 1px solid rgba(232,163,61,0.18);
  animation: aboutRingPulse 3s ease-in-out infinite 0.5s;
}
@keyframes aboutRingPulse {
  0%, 100% { opacity: 0.6; transform: translate(-50%,-50%) scale(1); }
  50%       { opacity: 1;   transform: translate(-50%,-50%) scale(1.03); }
}
.about-founder-badge {
  position: absolute;
  bottom: 12px;
  right: -8px;
  background: #fff;
  border-radius: 14px;
  padding: 10px 18px;
  box-shadow: 0 8px 28px rgba(11,28,59,0.14);
  z-index: 3;
  text-align: center;
  animation: aboutBadgeFloat 4s ease-in-out infinite;
}
@keyframes aboutBadgeFloat {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-6px); }
}
.about-chip {
  display: inline-block;
  padding: 5px 14px;
  border-radius: 999px;
  background: rgba(232,163,61,0.1);
  border: 1px solid rgba(232,163,61,0.35);
  color: var(--kg-ink);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background 0.2s, border-color 0.2s;
}
.about-chip:hover {
  background: rgba(232,163,61,0.2);
  border-color: rgba(232,163,61,0.6);
}
@media (max-width: 767px) {
  .about-founder-img-wrap { max-width: 280px; margin: 0 auto 40px; }
  .about-founder-badge { right: 0; }
}

/* ── Logo animations ── */
@keyframes logoEntrance {
  0%   { opacity: 0; transform: scale(0.45) rotate(-40deg); }
  70%  { opacity: 1; transform: scale(1.08) rotate(6deg); }
  100% { opacity: 1; transform: scale(1) rotate(0deg); }
}
@keyframes logoGlow {
  0%, 100% { filter: drop-shadow(0 0 3px rgba(232,163,61,0.3)) drop-shadow(0 0 0px rgba(217,49,36,0)); }
  50%       { filter: drop-shadow(0 0 10px rgba(232,163,61,0.75)) drop-shadow(0 0 22px rgba(232,163,61,0.28)); }
}
@keyframes logoSpin {
  from { transform: rotate(0deg) scale(1); }
  to   { transform: rotate(360deg) scale(1); }
}
.logo-wrap {
  display: inline-block;
  animation: logoEntrance 0.85s cubic-bezier(0.16,1,0.3,1) both;
}
.logo-wrap img {
  display: block;
  animation: logoGlow 3.5s ease-in-out infinite 0.85s;
  transition: filter 0.3s;
}
.navbar-brand:hover .logo-wrap {
  animation: logoSpin 0.85s cubic-bezier(0.34,1.56,0.64,1) forwards;
}
.navbar-brand:hover .logo-wrap img {
  filter: drop-shadow(0 0 14px rgba(232,163,61,0.9)) drop-shadow(0 0 30px rgba(232,163,61,0.45));
}
@media (prefers-reduced-motion: reduce) {
  .logo-wrap { animation: none !important; }
  .logo-wrap img { animation: none !important; }
}

/* ── Tarot card cycling flip ── */
@keyframes tarotFlip {
  0%    { opacity: 1; transform: scaleX(1); }
  20%   { opacity: 1; transform: scaleX(1); }
  24%   { opacity: 0; transform: scaleX(0.05); }
  96%   { opacity: 0; transform: scaleX(0.05); }
  100%  { opacity: 1; transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
  .tarot-card-face { animation: none !important; }
  .tarot-card-face:not(:first-child) { opacity: 0 !important; }
  .tarot-card-face:first-child { opacity: 1 !important; }
}

/* ── Featured video banner (CSS Grid stacking) ── */
.feat-video {
  display: grid;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  margin-bottom: 2rem;
  background: #16253F;
}
.feat-video > * { grid-row: 1; grid-column: 1; }
.feat-video-thumb {
  width: 100%;
  aspect-ratio: 21/9;
  object-fit: cover;
  display: block;
  transition: transform 0.55s cubic-bezier(0.16,1,0.3,1);
}
.feat-video:hover .feat-video-thumb { transform: scale(1.04); }
.feat-video-overlay {
  background: linear-gradient(to top, rgba(11,28,59,0.82) 0%, rgba(11,28,59,0.22) 50%, transparent 100%);
  pointer-events: none;
  transition: background 0.3s;
}
.feat-video:hover .feat-video-overlay {
  background: linear-gradient(to top, rgba(11,28,59,0.92) 0%, rgba(11,28,59,0.32) 55%, transparent 100%);
}
.feat-video-play {
  align-self: center;
  justify-self: center;
  width: 84px; height: 84px; border-radius: 999px;
  background: var(--kg-saffron);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
  transition: transform 0.3s cubic-bezier(0.16,1,0.3,1), box-shadow 0.3s;
  position: relative; z-index: 1;
}
.feat-video:hover .feat-video-play {
  transform: scale(1.1);
  box-shadow: 0 18px 52px rgba(0,0,0,0.5);
}
.feat-video-info {
  align-self: end;
  padding: 0 40px 36px;
  color: #fff;
  z-index: 1;
  pointer-events: none;
}
.feat-video-title {
  color: #fff;
  font-size: clamp(20px, 2.4vw, 32px);
  max-width: 620px;
  margin: 8px 0 0;
  line-height: 1.25;
}
@media (max-width: 576px) {
  .feat-video-thumb { aspect-ratio: 16/9; }
  .feat-video-info { padding: 0 20px 24px; }
  .feat-video-play { width: 60px; height: 60px; }
  .feat-video-play svg { width: 22px; height: 22px; }
}

/* ── Video card thumbnail (CSS Grid stacking) ── */
.video-thumb {
  display: grid;
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  margin-bottom: 12px;
}
.video-thumb > * { grid-row: 1; grid-column: 1; }
.video-thumb img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  position: static;
  transition: transform 0.55s cubic-bezier(0.16,1,0.3,1);
}
.video-thumb:hover img { transform: scale(1.05); }
.video-overlay {
  background: rgba(0,0,0,0.35);
  pointer-events: none;
  transition: background 0.3s;
}
.video-thumb:hover .video-overlay { background: rgba(0,0,0,0.22); }
.video-thumb .video-play {
  align-self: center;
  justify-self: center;
  animation: none;
  position: relative; z-index: 1;
  top: auto; left: auto; transform: none;
}
.video-thumb .video-dur {
  align-self: end;
  justify-self: end;
  margin: 0 10px 10px 0;
  z-index: 1;
  position: relative;
}

/* ── Video lightbox ── */
.kg-lightbox {
  display: none;
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(0,0,0,0.88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  align-items: center; justify-content: center;
}
.kg-lightbox.is-open {
  display: flex;
  animation: lbFadeIn 0.22s ease both;
}
@keyframes lbFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.kg-lightbox-close {
  position: absolute; top: 20px; right: 24px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 999px;
  color: #fff; cursor: pointer;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s;
  z-index: 2;
}
.kg-lightbox-close:hover { background: rgba(255,255,255,0.24); }
.kg-lightbox-inner {
  width: 90vw; max-width: 1100px;
  padding: 0 16px;
  position: relative; z-index: 1;
}
.kg-lightbox-video {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 32px 80px rgba(0,0,0,0.6);
  animation: lbSlideUp 0.3s cubic-bezier(0.16,1,0.3,1) both;
}
@keyframes lbSlideUp {
  from { opacity: 0; transform: translateY(24px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.kg-lightbox-video iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
}

/* ── Contact Form 7 overrides ── */
.wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid-tip {
  font-size: 12px;
  color: #C5342A;
  font-family: "JetBrains Mono", monospace;
  margin-top: 4px;
  display: block;
}
.wpcf7-response-output {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-radius: 10px;
  font-size: 14px;
  border: 1px solid rgba(11,28,59,0.15);
  font-family: "JetBrains Mono", monospace;
}
.wpcf7-mail-sent-ok {
  background: rgba(90,138,53,0.08);
  border-color: rgba(90,138,53,0.35) !important;
  color: #3d6b25;
}
.wpcf7-mail-sent-ng,
.wpcf7-spam-blocked,
.wpcf7-validation-errors {
  background: rgba(197,52,42,0.06);
  border-color: rgba(197,52,42,0.25) !important;
  color: #C5342A;
}
.wpcf7 input[type="submit"] { cursor: pointer; }
.wpcf7 input[type="submit"]:hover { opacity: 0.88; }


.social-dot svg {
  width: 17px;
  height: 17px;
  fill: rgba(255, 255, 255, 0.8);
  display: block;
  transition: fill 0.2s ease;
}

.social-dot:hover svg { fill: #fff; }

.social-dot {
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.social-ig:hover { background-color: #E1306C; border-color: #E1306C; }
.social-yt:hover { background-color: #FF0000; border-color: #FF0000; }
.social-fb:hover { background-color: #1877F2; border-color: #1877F2; }
.social-wa:hover { background-color: #25D366; border-color: #25D366; }
