/* Vali Elementor Pro Addon - Pure Compiled Tailwind & Custom Stylesheet */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
  --color-brand-900: #052246;
  --color-brand-800: #0C3867;
  --color-brand-700: #154D84;
  --color-brand-gray: #7A7A7A;
  --color-brand-50: #f0f7ff;
  --color-primary: #0C3867;
  --color-primary-hover: #154D84;

  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --font-display: 'Outfit', system-ui, -apple-system, sans-serif;
}

body, .font-sans {
  font-family: var(--font-sans);
}

h1, h2, h3, h4, h5, h6, .font-display {
  font-family: var(--font-display);
}

/* ==========================================================================
   Full Width Page Layout (Prevents Boxed Site Constraint)
   ========================================================================== */
.elementor-section-wrap,
.elementor-page,
.elementor-top-section,
.site-main,
#content {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ==========================================================================
   Header Logo & Navigation Strict Styling
   ========================================================================== */

/* Logo Height Constraints */
.vali-header-logo,
.vali-navbar-header img,
.site-branding img,
header img {
  height: 40px !important;
  max-height: 40px !important;
  width: auto !important;
  max-width: 220px !important;
  object-fit: contain !important;
  display: block !important;
}

/* Reset WordPress Navigation List Bullets & Enforce Horizontal Layout */
header ul,
.vali-navbar-header ul,
.vali-nav-wrapper ul,
.vali-menu-list,
.menu-vali-main-menu-container ul,
ul#menu-vali-main-menu {
  list-style: none !important;
  list-style-type: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 2rem !important;
}

header li,
.vali-navbar-header li,
.vali-nav-wrapper li,
.menu-vali-main-menu-container li {
  list-style: none !important;
  list-style-type: none !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
}

header li a,
.vali-navbar-header li a,
.vali-nav-wrapper li a {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  color: #334155 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
}

header li a:hover,
.vali-navbar-header li a:hover,
.vali-nav-wrapper li a:hover {
  color: #052246 !important;
}

/* ==========================================================================
   Submenu / Dropdown Styling (CLOSED BY DEFAULT, OPENS ON CLICK OR HOVER)
   ========================================================================== */
header ul.sub-menu,
.vali-navbar-header ul.sub-menu,
.vali-nav-wrapper ul.sub-menu,
.sub-menu,
.vali-dropdown-menu {
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  flex-direction: column !important;
  min-width: 220px !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12) !important;
  padding: 8px !important;
  gap: 4px !important;
  z-index: 99999 !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
}

/* Open Submenu on Hover, Focus, or Active Toggle */
header li.menu-item-has-children:hover > ul.sub-menu,
header li.menu-item-has-children:focus-within > ul.sub-menu,
header li.menu-item-has-children.open > ul.sub-menu,
.group:hover .vali-dropdown-menu,
.group:focus-within .vali-dropdown-menu,
.vali-dropdown-menu.is-active,
ul.sub-menu.is-active {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

header ul.sub-menu li,
.vali-navbar-header ul.sub-menu li,
.vali-nav-wrapper ul.sub-menu li {
  width: 100% !important;
}

header ul.sub-menu li a,
.vali-navbar-header ul.sub-menu li a,
.vali-nav-wrapper ul.sub-menu li a {
  display: block !important;
  padding: 10px 16px !important;
  border-radius: 10px !important;
  color: #475569 !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

header ul.sub-menu li a:hover,
.vali-navbar-header ul.sub-menu li a:hover,
.vali-nav-wrapper ul.sub-menu li a:hover {
  background-color: #f1f5f9 !important;
  color: #052246 !important;
}

/* ==========================================================================
   Tailwind Utilities
   ========================================================================== */

.bg-brand-900, .bg-\[\#052246\] { background-color: #052246 !important; }
.bg-brand-800, .bg-\[\#0c3867\] { background-color: #0C3867 !important; }
.bg-brand-700 { background-color: #154D84 !important; }
.bg-brand-50 { background-color: #f0f7ff !important; }
.bg-slate-50, .bg-gray-50 { background-color: #f8fafc !important; }
.bg-white { background-color: #ffffff !important; }

.text-brand-900 { color: #052246 !important; }
.text-brand-800 { color: #0C3867 !important; }
.text-blue-300 { color: #93c5fd !important; }
.text-blue-100 { color: #dbeafe !important; }
.text-white { color: #ffffff !important; }
.text-gray-900 { color: #111827 !important; }
.text-gray-700 { color: #374151 !important; }
.text-gray-600 { color: #4b5563 !important; }
.text-gray-500 { color: #6b7280 !important; }
.text-gray-400 { color: #9ca3af !important; }

.flex { display: flex !important; }
.inline-flex { display: inline-flex !important; }
.grid { display: grid !important; }
.hidden { display: none !important; }
.block { display: block !important; }
.inline-block { display: inline-block !important; }

.flex-col { flex-direction: column !important; }
.flex-row { flex-direction: row !important; }
.items-center { align-items: center !important; }
.justify-center { justify-content: center !important; }
.justify-between { justify-content: space-between !important; }

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }

@media (min-width: 768px) {
  .md\:flex { display: flex !important; }
  .md\:hidden { display: none !important; }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .md\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
  .md\:col-span-3 { grid-column: span 3 / span 3 !important; }
  .md\:col-span-4 { grid-column: span 4 / span 4 !important; }
  .md\:col-span-5 { grid-column: span 5 / span 5 !important; }
  .md\:text-4xl { font-size: 2.25rem !important; line-height: 2.5rem !important; }
  .md\:text-5xl { font-size: 3rem !important; line-height: 1.15 !important; }
}

@media (min-width: 1024px) {
  .lg\:py-32 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
  .lg\:text-6xl { font-size: 3.75rem !important; line-height: 1.15 !important; }
  .lg\:text-7xl { font-size: 4.5rem !important; line-height: 1.1 !important; }
}

.gap-2 { gap: 0.5rem !important; }
.gap-3 { gap: 0.75rem !important; }
.gap-4 { gap: 1rem !important; }
.gap-6 { gap: 1.5rem !important; }
.gap-8 { gap: 2rem !important; }
.gap-12 { gap: 3rem !important; }

.py-2.5 { padding-top: 0.625rem !important; padding-bottom: 0.625rem !important; }
.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-16 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.py-20 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
.py-24 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.py-28 { padding-top: 7rem !important; padding-bottom: 7rem !important; }

.px-4 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-5 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
.px-8 { padding-left: 2rem !important; padding-right: 2rem !important; }

.p-4 { padding: 1rem !important; }
.p-6 { padding: 1.5rem !important; }
.p-8 { padding: 2rem !important; }

.mb-3 { margin-bottom: 0.75rem !important; }
.mb-4 { margin-bottom: 1rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }
.mb-8 { margin-bottom: 2rem !important; }
.mb-12 { margin-bottom: 3rem !important; }
.mb-16 { margin-bottom: 4rem !important; }
.mt-4 { margin-top: 1rem !important; }

.max-w-3xl { max-width: 48rem !important; }
.max-w-7xl { max-width: 80rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

.text-xs { font-size: 0.75rem !important; }
.text-sm { font-size: 0.875rem !important; }
.text-base { font-size: 1rem !important; }
.text-lg { font-size: 1.125rem !important; }
.text-xl { font-size: 1.25rem !important; }
.text-2xl { font-size: 1.5rem !important; }
.text-3xl { font-size: 1.875rem !important; }
.text-4xl { font-size: 2.25rem !important; }

.font-light { font-weight: 300 !important; }
.font-normal { font-weight: 400 !important; }
.font-medium { font-weight: 500 !important; }
.font-semibold { font-weight: 600 !important; }
.font-bold { font-weight: 700 !important; }

.uppercase { text-transform: uppercase !important; }
.tracking-tight { letter-spacing: -0.025em !important; }
.tracking-wide { letter-spacing: 0.025em !important; }

.rounded-full { border-radius: 9999px !important; }
.rounded-xl { border-radius: 0.75rem !important; }
.rounded-2xl { border-radius: 1rem !important; }
.rounded-3xl { border-radius: 1.5rem !important; }
.rounded-\[28px\] { border-radius: 28px !important; }

.border { border-width: 1px !important; }
.border-transparent { border-color: transparent !important; }
.border-gray-100 { border-color: #f3f4f6 !important; }
.border-gray-200 { border-color: #e5e7eb !important; }

.shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important; }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1) !important; }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1) !important; }

.aspect-video { aspect-ratio: 16 / 9 !important; }

.vali-glass-panel {
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.10);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  box-shadow: 0 24px 100px rgba(0, 0, 0, 0.35);
  padding: 1rem;
}

.vali-pillar-card {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(226, 232, 240, 0.8);
  background: #ffffff;
  padding: 2rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.vali-pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -15px rgba(12, 56, 103, 0.12);
  border-color: #93c5fd;
}

.vali-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  border-radius: 9999px;
  background-color: #ffffff;
  color: #052246;
  font-weight: 600;
  transition: background-color 0.2s ease, transform 0.2s ease;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2);
  text-decoration: none;
}

.vali-btn-primary:hover {
  background-color: #f8fafc;
  transform: translateY(-1px);
}

.vali-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2rem;
  border-radius: 9999px;
  border: 1px solid rgba(147, 197, 253, 0.4);
  color: #ffffff;
  font-weight: 500;
  transition: background-color 0.2s ease;
  text-decoration: none;
}

.vali-btn-outline:hover {
  background-color: rgba(255, 255, 255, 0.08);
}
