/* ==========================================================================
   GVI Consulting — Minimal CSS
   Only styles that Elementor Free CANNOT handle natively:
   hover states, pseudo-elements, navbar, contact form, footer, transitions
   ========================================================================== */

:root {
  --gvi-navy:        #002244;
  --gvi-navy-deep:   #001530;
  --gvi-silver:      #869397;
  --gvi-light-gray:  #F0F2F4;
  --gvi-white:       #FFFFFF;
  --gvi-transition:  0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

html { scroll-padding-top: 80px; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }

/* ==========================================================================
   NAVIGATION — Can't be built in Elementor Free
   ========================================================================== */
.gvi-navbar {
  background: var(--gvi-navy);
  border-bottom: 1px solid rgba(134,147,151,0.2);
  z-index: 1050;
  backdrop-filter: blur(12px);
}
.gvi-navbar .container {
  display: flex; align-items: center; justify-content: space-between; min-height: 72px;
}
.gvi-navbar .navbar-brand {
  display: flex; align-items: center; gap: 0.65rem;
  color: #fff; font-family: 'DM Sans', sans-serif;
  font-size: 14px; font-weight: 500; text-decoration: none; letter-spacing: 0.02em;
}
.gvi-navbar .navbar-brand img { height: 42px; width: auto; }
.gvi-navbar .nav-link {
  color: rgba(255,255,255,0.65); font-family: 'DM Sans', sans-serif;
  font-size: 17px; font-weight: 400; padding: 0.5rem 0.9rem !important;
  transition: color var(--gvi-transition);
}
.gvi-navbar .nav-link:hover, .gvi-navbar .nav-link:focus, .gvi-navbar .nav-link.active { color: #fff; }
.gvi-navbar .btn-cta {
  background: #fff; color: var(--gvi-navy);
  font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 600;
  padding: 0.55rem 1.5rem; border-radius: 6px; border: none;
  transition: all var(--gvi-transition); white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.gvi-navbar .btn-cta:hover {
  background: var(--gvi-light-gray); transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}
.gvi-navbar .navbar-toggler { border-color: rgba(255,255,255,0.2); padding: 0.4rem 0.6rem; }
.gvi-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.elementor-page .gvi-navbar { position: fixed; top: 0; left: 0; right: 0; }
body.elementor-page { padding-top: 72px; }
@media (max-width: 991.98px) {
  .gvi-navbar .navbar-collapse { background: var(--gvi-navy); padding: 1rem 0; margin-top: 0.5rem; }
}

/* ==========================================================================
   HOVER & TRANSITION EFFECTS — Elementor Free can't do hover states
   ========================================================================== */

/* Card hover lift + shadow */
.gvi-hover-lift { transition: all var(--gvi-transition); }
.gvi-hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,34,68,0.12) !important;
}

/* Subtle hover lift for smaller cards */
.gvi-hover-lift-sm { transition: all var(--gvi-transition); }
.gvi-hover-lift-sm:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px rgba(0,34,68,0.1) !important;
}

/* Card top accent line via pseudo-element */
.gvi-accent-top-silver { position: relative; overflow: hidden; }
.gvi-accent-top-silver::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--gvi-silver); transition: background var(--gvi-transition);
}
.gvi-accent-top-silver:hover::before { background: var(--gvi-navy); }

.gvi-accent-top-navy { position: relative; overflow: hidden; }
.gvi-accent-top-navy::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--gvi-navy), #003366);
}

/* Hero radial gradient overlay */
.gvi-hero-overlay { position: relative; overflow: hidden; }
.gvi-hero-overlay::before {
  content: ''; position: absolute; top: -30%; right: -15%; width: 65%; height: 160%;
  background: radial-gradient(ellipse at center, rgba(134,147,151,0.04) 0%, transparent 60%);
  pointer-events: none;
}
.gvi-hero-overlay::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(134,147,151,0.15), transparent);
}

/* Network panel inner glow */
.gvi-panel-glow { position: relative; overflow: hidden; }
.gvi-panel-glow::before {
  content: ''; position: absolute; top: -50%; right: -25%; width: 60%; height: 200%;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.02) 0%, transparent 60%);
  pointer-events: none;
}

/* Partner chip hover */
.gvi-chip { transition: all var(--gvi-transition); display: inline-block; cursor: default; }
.gvi-chip:hover { background: rgba(255,255,255,0.12) !important; border-color: rgba(255,255,255,0.2) !important; transform: translateY(-1px); }

/* CTA button hover */
.gvi-btn-cta .elementor-button { transition: all var(--gvi-transition) !important; }
.gvi-btn-cta .elementor-button:hover {
  background-color: var(--gvi-light-gray) !important;
  transform: translateY(-3px); box-shadow: 0 12px 36px rgba(0,0,0,0.3) !important;
}

/* Section top divider */
.gvi-divider-top { position: relative; }
.gvi-divider-top::before {
  content: ''; position: absolute; top: 0; left: 10%; right: 10%; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,34,68,0.08), transparent);
}

/* Icon scale on card hover */
.gvi-hover-lift:hover .elementor-icon { transform: scale(1.1); }
.gvi-hover-lift-sm:hover .elementor-icon { transform: scale(1.08); }
.elementor-icon { transition: transform var(--gvi-transition); }

 

/* ==========================================================================
   FOOTER — Hard-coded in theme PHP
   ========================================================================== */
.gvi-footer {
  background: var(--gvi-navy-deep); color: rgba(255,255,255,0.4);
  padding: 1.75rem 0; font-size: 1rem;
  border-top: 1px solid rgba(134,147,151,0.08);
}
.gvi-footer img { height: 28px; width: auto; opacity: 0.5; }
.gvi-footer a { color: rgba(255,255,255,0.4); text-decoration: none; transition: color var(--gvi-transition); }
.gvi-footer a:hover { color: rgba(255,255,255,0.8); }
.gvi-footer-legal { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
 
@media (max-width: 575.98px) {
  .gvi-footer-legal { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
}
