/* ── CSS Custom Properties (Design Tokens) ────────────────── */
:root {
  /* Primary Brand Colors */
  --davv-navy: #002147;
  --davv-navy-dark: #001833;
  --davv-gold: #f2a900;

  /* Dynamic Theme (overridden by FloatingBar JS) */
  --primary-color: #002147;
  --primary-color-dark: #001833;
  --color-primary: #002147;

  /* Accent / Semantic Colors */
  --davv-blue: #2563eb;
  --davv-blue-200: #bfdbfe;
  --davv-blue-700: #1d4ed8;
  --davv-emerald: #059669;
  --davv-emerald-200: #a7f3d0;
  --davv-emerald-500: #10b981;
  --davv-emerald-700: #047857;
  --davv-emerald-800: #065f46;
  --davv-emerald-light: #34d399;
  --davv-purple: #7c3aed;
  --davv-purple-50: #f5f3ff;
  --davv-purple-200: #c4b5fd;
  --davv-purple-600: #9333ea;
  --davv-purple-700: #6d28d9;
  --davv-purple-800: #5b21b6;
  --davv-teal: #0d9488;
  --davv-teal-700: #0f766e;
  --davv-teal-dark: #054751;
  --davv-amber: #d97706;
  --davv-amber-50: #fffbeb;
  --davv-amber-100: #fef3c7;
  --davv-amber-500: #f59e0b;
  --davv-amber-light: #fbbf24;
  --davv-amber-dark: #b45309;
  --davv-yellow: #facc15;
  --davv-yellow-200: #fef08a;
  --davv-yellow-500: #eab308;
  --davv-green-600: #16a34a;
  --davv-green-700: #15803d;
  --davv-indigo: #4f46e5;
  --davv-indigo-50: #eef2ff;
  --davv-indigo-100: #e0e7ff;
  --davv-indigo-200: #c7d2fe;
  --davv-indigo-400: #818cf8;
  --davv-indigo-700: #4338ca;
  --davv-indigo-800: #3730a3;
  --davv-indigo-85: rgba(79, 70, 229, 0.85);
  --davv-rose: #e11d48;
  --davv-rose-50: #fff1f2;
  --davv-rose-200: #fecdd3;
  --davv-rose-700: #be123c;
  --davv-rose-800: #9f1239;
  --davv-red: #dc2626;
  --davv-cyan: #0891b2;
  --davv-cyan-light: #06b6d4;
  --davv-orange: #ea580c;
  --davv-orange-300: #fdba74;
  --davv-orange-800: #9a3412;
  --davv-orange-light: #f97316;
  --davv-terracotta: #7c2d12;
  --davv-pink: #db2777;
  --davv-pink-700: #be185d;
  --davv-pink-light: #ec4899;
  --davv-amber-900: #78350f;
  --davv-parchment-bg: #fffdf5;
  --davv-navy-950: #0b1120;
  --davv-stone-300: #d6d3d1;
  --davv-stone-800: #292524;
  --davv-stone-900: #1c1917;

  /* Grays / Slate Palette */
  --davv-slate-50: #f8fafc;
  --davv-slate-100: #f1f5f9;
  --davv-slate-150: #edf0f4;
  --davv-slate-200: #e2e8f0;
  --davv-slate-300: #cbd5e1;
  --davv-slate-400: #94a3b8;
  --davv-slate-500: #64748b;
  --davv-slate-600: #475569;
  --davv-slate-700: #334155;
  --davv-slate-800: #1e293b;
  --davv-slate-900: #0f172a;
  --davv-slate-950: #020617;

  /* Base / Neutrals */
  --davv-white: #ffffff;
  --davv-black: #000000;
  --davv-text-primary: #002147;
  --davv-text-muted: #64748b;

  /* Transparency & Alpha Tints (Overlays & Glassmorphism) */
  --davv-white-5: rgba(255, 255, 255, 0.05);
  --davv-white-8: rgba(255, 255, 255, 0.08);
  --davv-white-10: rgba(255, 255, 255, 0.1);
  --davv-white-15: rgba(255, 255, 255, 0.15);
  --davv-white-20: rgba(255, 255, 255, 0.2);
  --davv-white-30: rgba(255, 255, 255, 0.3);
  --davv-white-40: rgba(255, 255, 255, 0.4);
  --davv-white-50: rgba(255, 255, 255, 0.5);
  --davv-white-60: rgba(255, 255, 255, 0.6);
  --davv-white-70: rgba(255, 255, 255, 0.7);
  --davv-white-80: rgba(255, 255, 255, 0.8);
  --davv-white-85: rgba(255, 255, 255, 0.85);
  --davv-white-90: rgba(255, 255, 255, 0.9);
  --davv-black-5: rgba(0, 0, 0, 0.05);
  --davv-black-10: rgba(0, 0, 0, 0.1);
  --davv-black-15: rgba(0, 0, 0, 0.15);
  --davv-black-20: rgba(0, 0, 0, 0.2);
  --davv-black-30: rgba(0, 0, 0, 0.3);
  --davv-black-40: rgba(0, 0, 0, 0.4);
  --davv-black-50: rgba(0, 0, 0, 0.5);
  --davv-black-60: rgba(0, 0, 0, 0.6);
  --davv-black-80: rgba(0, 0, 0, 0.8);
  --davv-black-85: rgba(0, 0, 0, 0.85);
  --davv-navy-6: rgba(0, 33, 71, 0.06);
  --davv-navy-8: rgba(0, 33, 71, 0.08);
  --davv-navy-12: rgba(0, 33, 71, 0.12);
  --davv-navy-15: rgba(0, 33, 71, 0.15);
  --davv-navy-30: rgba(0, 33, 71, 0.3);
  --davv-navy-50: rgba(0, 33, 71, 0.5);
  --davv-navy-90: rgba(0, 33, 71, 0.9);
  --davv-gold-50: rgba(242, 169, 0, 0.5);
  --davv-blue-5: rgba(37, 99, 235, 0.05);
  --davv-blue-10: rgba(37, 99, 235, 0.1);
  --davv-blue-20: rgba(37, 99, 235, 0.2);
  --davv-blue-30: rgba(37, 99, 235, 0.3);
  --davv-emerald-5: rgba(5, 150, 105, 0.05);
  --davv-emerald-10: rgba(5, 150, 105, 0.1);
  --davv-emerald-20: rgba(5, 150, 105, 0.2);
  --davv-emerald-30: rgba(16, 185, 129, 0.3);
  --davv-purple-5: rgba(124, 58, 237, 0.05);
  --davv-purple-10: rgba(124, 58, 237, 0.1);
  --davv-purple-20: rgba(124, 58, 237, 0.2);
  --davv-purple-30: rgba(147, 51, 234, 0.3);
  --davv-teal-5: rgba(13, 148, 136, 0.05);
  --davv-teal-10: rgba(13, 148, 136, 0.1);
  --davv-teal-20: rgba(13, 148, 136, 0.2);
  --davv-cyan-5: rgba(6, 182, 212, 0.05);
  --davv-cyan-10: rgba(8, 145, 178, 0.1);
  --davv-cyan-20: rgba(8, 145, 178, 0.2);
  --davv-cyan-30: rgba(6, 182, 212, 0.3);
  --davv-orange-5: rgba(249, 115, 22, 0.05);
  --davv-orange-10: rgba(234, 88, 12, 0.1);
  --davv-orange-20: rgba(234, 88, 12, 0.2);
  --davv-orange-30: rgba(249, 115, 22, 0.3);
  --davv-rose-5: rgba(225, 29, 72, 0.05);
  --davv-rose-10: rgba(225, 29, 72, 0.1);
  --davv-rose-20: rgba(225, 29, 72, 0.2);
  --davv-rose-30: rgba(225, 29, 72, 0.3);
  --davv-amber-5: rgba(217, 119, 6, 0.05);
  --davv-amber-10: rgba(217, 119, 6, 0.1);
  --davv-amber-20: rgba(217, 119, 6, 0.2);
  --davv-amber-30: rgba(217, 119, 6, 0.3);
  --davv-yellow-5: rgba(250, 204, 21, 0.05);
  --davv-pink-5: rgba(219, 39, 119, 0.05);
  --davv-pink-10: rgba(219, 39, 119, 0.1);
  --davv-pink-20: rgba(219, 39, 119, 0.2);
  --davv-pink-30: rgba(236, 72, 153, 0.3);
  --davv-subtle-bg: rgba(248, 250, 252, 0.6);
  --davv-subtle-border: rgba(226, 232, 240, 0.8);
  --davv-slate-100-50: rgba(241, 245, 249, 0.5);
  --davv-slate-200-60: rgba(226, 232, 240, 0.6);
  --davv-slate-200-85: rgba(226, 232, 240, 0.85);
  --davv-slate-200-90: rgba(226, 232, 240, 0.9);
  --davv-slate-300-50: rgba(203, 213, 225, 0.5);
  --davv-slate-900-95: rgba(15, 23, 42, 0.95);

  /* Layout */
  --davv-max-width: 1400px;
  --davv-radius-sm: 0.5rem;
  --davv-radius-md: 0.75rem;
  --davv-radius-lg: 1rem;
  --davv-radius-xl: 1.25rem;
  --davv-radius-2xl: 1.5rem;
  --davv-radius-full: 9999px;

  /* Shadows */
  --davv-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --davv-shadow:
    0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  --davv-shadow-md:
    0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --davv-shadow-lg:
    0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  --davv-shadow-xl:
    0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --davv-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);

  /* Transitions */
  --davv-transition: all 0.3s ease;
  --davv-transition-fast: all 0.15s ease;
  --davv-transition-slow: all 0.5s ease;

  /* Typography */
  --davv-font-sans:
    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-family: var(--davv-font-sans);
  color: var(--davv-text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Root Wrapper ─────────────────────────────────────────── */
.davv-cms-root {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  position: relative;
}

/* ── Fixed Background Layer ───────────────────────────────── */
.davv-cms-bg-fixed {
  position: fixed;
  inset: 0;
  z-index: -10;
  background-color: var(--davv-navy);
  background-image: url("/davv-cms/DAVV_Uni.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: translateZ(0);
  will-change: transform;
  pointer-events: none;
}

/* ── Utility: Max-Width Container ─────────────────────────── */
.davv-container {
  max-width: var(--davv-max-width);
  margin-inline: auto;
  padding-inline: 1rem;
}

@media (min-width: 640px) {
  .davv-container {
    padding-inline: 1.5rem;
  }
}

/* ── Section Heading ──────────────────────────────────────── */
.davv-section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 2rem;
}

.davv-section-heading h2,
.davv-section-heading h3 {
  font-weight: 900;
  color: var(--primary-color);
  font-size: 1.25rem;
  letter-spacing: 0.025em;
  margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
  .davv-section-heading h2,
  .davv-section-heading h3 {
    font-size: 1.5rem;
  }
}

.davv-section-divider {
  width: 3rem;
  height: 0.25rem;
  background-color: var(--davv-gold);
  border-radius: var(--davv-radius-full);
}

/* ── Card Base ────────────────────────────────────────────── */
.davv-card {
  background: var(--davv-white);
  border: 1px solid var(--davv-slate-200);
  border-radius: var(--davv-radius-md);
  box-shadow: var(--davv-shadow-sm);
  transition: var(--davv-transition);
}

.davv-card:hover {
  box-shadow: var(--davv-shadow-lg);
}

/* ── Scroll to Top Button ─────────────────────────────────── */
.davv-scroll-top-btn {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 50;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--davv-radius-full);
  background-color: var(--primary-color);
  color: var(--davv-white);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: var(--davv-shadow-lg);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--davv-transition);
  opacity: 0;
  pointer-events: none;
  transform: translateY(1rem);
}

.davv-scroll-top-btn.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.davv-scroll-top-btn:hover {
  background-color: var(--davv-blue);
  transform: scale(1.1);
}

.davv-scroll-top-btn:active {
  transform: scale(0.95);
}

@media (min-width: 640px) {
  .davv-scroll-top-btn {
    bottom: 1.5rem;
    right: 1.5rem;
    width: 2.75rem;
    height: 2.75rem;
  }
}

/* ── Custom Scrollbar (Global: Window & All Inner Containers) ── */
*,
html {
  scrollbar-width: thin;
  scrollbar-color: #94a3b8 transparent;
}

*::-webkit-scrollbar,
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

*::-webkit-scrollbar-track,
::-webkit-scrollbar-track {
  background: transparent;
}

*::-webkit-scrollbar-thumb,
::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 9999px;
}

*::-webkit-scrollbar-thumb:hover,
::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}

*::-webkit-scrollbar-thumb:active,
::-webkit-scrollbar-thumb:active {
  background: #475569;
}

.dark ::-webkit-scrollbar-track,
[data-theme="dark"] ::-webkit-scrollbar-track {
  background: transparent;
}

.dark ::-webkit-scrollbar-thumb,
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: #64748b;
}

.dark ::-webkit-scrollbar-thumb:hover,
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* ── Section Block Backgrounds ───────────────────────────── */
.davv-bg-light {
  background-color: var(--davv-slate-100);
  transition: var(--davv-transition);
}
.davv-bg-white {
  background-color: var(--davv-white);
  transition: var(--davv-transition);
}
.davv-bg-dark {
  background-color: var(--davv-slate-950);
  transition: var(--davv-transition);
}
.davv-bg-navy {
  background-color: var(--primary-color);
  transition: var(--davv-transition);
}
.davv-border-y {
  border-top: 1px solid var(--davv-slate-100);
  border-bottom: 1px solid var(--davv-slate-100);
}

/* ── Typography Helpers ───────────────────────────────────── */
.davv-hindi {
  font-family: "Noto Sans Devanagari", sans-serif;
}
.davv-text-gold {
  color: var(--davv-gold);
}
.davv-text-navy {
  color: var(--primary-color);
}
.davv-text-blue {
  color: var(--davv-blue);
}

/* ── Section Overlay (News & Events) ─────────────────────── */
.davv-news-section {
  position: relative;
  border-top: 1px solid var(--primary-color);
  border-bottom: 1px solid var(--primary-color);
  padding-block: 2rem;
  overflow: hidden;
}

@media (min-width: 640px) {
  .davv-news-section {
    padding-block: 3rem;
  }
}

.davv-news-section-bg {
  position: absolute;
  inset: 0;
  background-color: var(--primary-color);
  transition: background-color 0.3s;
}

.davv-news-section-overlay {
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-image: url("/davv-cms/DAVV_Uni.jpg");
  background-size: cover;
  background-position: center;
  pointer-events: none;
}

.davv-news-section-content {
  position: relative;
  z-index: 10;
}

/* ── Animations ───────────────────────────────────────────── */
@keyframes davv-fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes davv-slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes davv-zoomIn {
  from {
    transform: scale(0.92);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes davv-ping {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.75;
  }
  50% {
    transform: scale(1.5);
    opacity: 0;
  }
}

@keyframes davv-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.davv-animate-fade-in {
  animation: davv-fadeIn 0.3s ease forwards;
}
.davv-animate-slide-right {
  animation: davv-slideInRight 0.3s ease forwards;
}
.davv-animate-zoom-in {
  animation: davv-zoomIn 0.3s ease forwards;
}
.davv-animate-ping {
  animation: davv-ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
}
.davv-animate-ping-slow {
  animation: davv-ping 3s cubic-bezier(0, 0, 0.2, 1) infinite;
}
.davv-animate-pulse {
  animation: davv-pulse 2s ease infinite;
}

/* ── Bootstrap Icon Sizes ─────────────────────────────────── */
.bi-xs {
  font-size: 0.75rem;
}
.bi-sm {
  font-size: 0.875rem;
}
.bi-md {
  font-size: 1rem;
}
.bi-lg {
  font-size: 1.25rem;
}
.bi-xl {
  font-size: 1.5rem;
}
.bi-2xl {
  font-size: 2rem;
}

/* ── Theme-Aware Color Overrides (controlled by FloatingBar) ─ */
.davv-cms-root [data-theme-target="text"] {
  color: var(--primary-color) !important;
}
.davv-cms-root [data-theme-target="bg"] {
  background-color: var(--primary-color) !important;
}
.davv-cms-root [data-theme-target="border"] {
  border-color: var(--primary-color) !important;
}
