/*
Theme Name: AirAgent Theme
Theme URI: https://airagent.fr
Author: Web Team
Description: Airagent.
Version: 1.0.0
Text Domain: airagent
*/

/* Core Reset and Variables */
:root {
  /* Colors properly mapped to Shadcn/Tailwind HSL specs */
  --primary: 24 95% 53%;
  --primary-foreground: 0 0% 100%;
  --background: 0 0% 100%;
  --foreground: 230 25% 10%;
  --accent: 24 95% 53%;
  --accent-foreground: 0 0% 100%;
  --border: 230 15% 92%;
  
  --primary-glow: 24 100% 60%;
  --hero-bg: 230 30% 6%;
  --hero-fg: 0 0% 98%;
  
  /* Typography */
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --font-heading: 'Inter', system-ui, -apple-system, sans-serif;
  
  /* Layout */
  --container-max-width: 1200px;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  background-color: var(--background);
  color: var(--foreground);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Sub-menus hidden by default on mobile */
#aa-mobile-menu-overlay .aa-mobile-menu-list li ul.sub-menu {
    padding-left: 1rem;
    display: none; /* Replaced flex with none */
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
    list-style: none;
}

/* Open state for accordion */
#aa-mobile-menu-overlay .aa-mobile-menu-list li.mobile-menu-open > ul.sub-menu {
    display: flex;
}

/* Add a visual indicator (chevron) to parent items */
#aa-mobile-menu-overlay .aa-mobile-menu-list li.menu-item-has-children > a {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#aa-mobile-menu-overlay .aa-mobile-menu-list li.menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%2364748b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.2s ease;
}
#aa-mobile-menu-overlay .aa-mobile-menu-list li.mobile-menu-open > a::after {
    transform: rotate(180deg);
}

#aa-mobile-menu-overlay .aa-mobile-menu-list li ul.sub-menu li a {
    display: block;
    font-size: 0.95rem;
    padding: 0.5rem 1rem;
    font-weight: 400;
    color: #64748b;
    border-radius: 0.375rem;
    text-decoration: none;
}

/* =========================================================================
   Mobile Navigation Styling (Lovable Exact Match)
   ========================================================================= */
#aa-mobile-menu-overlay .aa-mobile-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

#aa-mobile-menu-overlay .aa-mobile-menu-list > li {
    border-bottom: 1px solid #f1f5f9;
}
#aa-mobile-menu-overlay .aa-mobile-menu-list > li:last-child {
    border-bottom: none;
}

#aa-mobile-menu-overlay .aa-mobile-menu-list > li > a,
#aa-mobile-menu-overlay .aa-mobile-menu-list > li > button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0.5rem;
    font-size: 0.9375rem; /* 15px */
    font-weight: 500;
    color: #475569;
    background-color: transparent;
    border-radius: 0.5rem;
    text-decoration: none;
    transition: all 0.2s;
    width: 100%;
}

#aa-mobile-menu-overlay .aa-mobile-menu-list > li > a:hover,
#aa-mobile-menu-overlay .aa-mobile-menu-list > li > button:hover {
    color: #0f172a;
}

/* Mobile active top level item */
#aa-mobile-menu-overlay .aa-mobile-menu-list > li.current-menu-item > a {
    background-color: #f8fafc;
    color: #f97316 !important;
    font-weight: 600;
    margin: 0.25rem 0;
}

/* Sub-menus hidden by default on mobile */
#aa-mobile-menu-overlay .aa-mobile-menu-list li ul.sub-menu {
    padding-left: 1rem;
    display: none; 
    flex-direction: column;
    gap: 0;
    margin-top: 0;
    margin-bottom: 0.5rem;
    list-style: none;
}

/* Open state for accordion */
#aa-mobile-menu-overlay .aa-mobile-menu-list li.mobile-menu-open > ul.sub-menu {
    display: flex;
}

/* Add a visual indicator (chevron) to parent items */
#aa-mobile-menu-overlay .aa-mobile-menu-list li.menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%2364748b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>');
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.2s ease;
}
#aa-mobile-menu-overlay .aa-mobile-menu-list li.mobile-menu-open > a::after {
    transform: rotate(180deg);
}

#aa-mobile-menu-overlay .aa-mobile-menu-list li ul.sub-menu li a {
    display: block;
    font-size: 0.875rem; /* 14px */
    padding: 0.75rem 1rem;
    font-weight: 400;
    color: #64748b;
    border-radius: 0.375rem;
    text-decoration: none;
}

#aa-mobile-menu-overlay .aa-mobile-menu-list li ul.sub-menu li a:hover {
    color: #0f172a;
    background-color: #f1f5f9;
}

/* Hide desktop mega-menu nested structures on the raw mobile view if generated by walker */
#aa-mobile-menu-overlay .menu-item-has-mega > div {
    display: none !important;
}

/* Enforce visibility of Mobile Hamburger Menu strictly via media queries against extracted CSS conflicts */
@media (min-width: 768px) {
    .aa-mobile-toggle-btn {
        display: none !important;
    }
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  margin-top: 0;
  font-weight: 600;
  color: var(--foreground);
}

.container {
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Button Reset */
button {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  font: inherit;
  color: inherit;
}

/* Lovable Custom Widget Styles */
:root {
  --hero-bg: 230 30% 6%;
  --hero-fg: 0 0% 98%;
  --primary-glow: 24.6 95% 53.1%;
}

.mesh-gradient {
  background-color: #0b0d14;
  background-image: radial-gradient(ellipse 80% 60% at 10% 20%, rgba(240, 98, 23, 0.15) 0%, transparent 60%),
                    radial-gradient(ellipse 60% 80% at 90% 80%, rgba(255, 126, 77, 0.1) 0%, transparent 60%),
                    radial-gradient(ellipse 50% 50% at 50% 50%, rgba(18, 20, 33, 0.8) 0%, transparent 80%),
                    linear-gradient(135deg, #0b0d14, #0f111a);
  background-size: 200% 200%, 200% 200%, 100% 100%, 100% 100%;
  animation: meshMove 12s ease-in-out infinite alternate;
}

@keyframes meshMove {
  0% { background-position: 0% 0%, 100% 100%, 0% 0%, 0% 0%; }
  to { background-position: 100% 100%, 0% 0%, 0% 0%, 0% 0%; }
}

.hero-grid {
  background-image: linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size: 60px 60px;
}

@media (min-width: 1024px) {
  .hero-title-responsive {
    font-size: 80px !important;
    line-height: 0.95 !important;
  }
}

.gradient-text {
  background: linear-gradient(135deg, #f97316, #fa8f3a, #ffa366);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  background-size: 200% 200%;
  color: #f97316; /* Fallback just in case */
  animation: gradientShift 4s ease-in-out infinite alternate;
}

.float-animation { animation: float 6s ease-in-out infinite; }
.float-slow { animation: float 8s ease-in-out infinite; }
.float-delayed { animation: float 7s ease-in-out 2s infinite; }

.shimmer {
  position: relative;
  overflow: hidden;
}

.shimmer:after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(90deg, transparent 0%, hsl(0 0% 100% / .15) 50%, transparent 100%);
  animation: shimmerMove 2.5s ease-in-out infinite;
}

@keyframes shimmerMove {
  0% { transform: translate(-100%); }
  to { transform: translate(100%); }
}

.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}

.reveal[data-visible=true] {
  opacity: 1;
  transform: translateY(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(.95);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
}

.reveal-scale[data-visible=true] {
  opacity: 1;
  transform: scale(1);
}

.section-padding { padding-top: 8rem; padding-bottom: 8rem; }
@media (min-width: 1024px) {
  .section-padding { padding-top: 10rem; padding-bottom: 10rem; }
}

.stagger-children > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);
}

.stagger-children[data-visible=true] > *:nth-child(1) { transition-delay: 0ms; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(2) { transition-delay: 80ms; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(3) { transition-delay: .16s; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(4) { transition-delay: .24s; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(5) { transition-delay: .32s; opacity: 1; transform: translateY(0); }
.shimmer:after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(90deg, transparent 0%, hsl(0 0% 100% / .15) 50%, transparent 100%);
  animation: shimmerMove 2.5s ease-in-out infinite;
}

@keyframes shimmerMove {
  0% { transform: translate(-100%); }
  to { transform: translate(100%); }
}

.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}

.reveal[data-visible=true] {
  opacity: 1;
  transform: translateY(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(.95);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
}

.reveal-scale[data-visible=true] {
  opacity: 1;
  transform: scale(1);
}

.section-padding { padding-top: 8rem; padding-bottom: 8rem; }
@media (min-width: 1024px) {
  .section-padding { padding-top: 10rem; padding-bottom: 10rem; }
}

.stagger-children > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);
}

.stagger-children[data-visible=true] > *:nth-child(1) { transition-delay: 0ms; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(2) { transition-delay: 80ms; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(3) { transition-delay: .16s; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(4) { transition-delay: .24s; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(5) { transition-delay: .32s; opacity: 1; transform: translateY(0); }
.stagger-children[data-visible=true] > *:nth-child(n+6) { transition-delay: .4s; opacity: 1; transform: translateY(0); }
@keyframes float {
  0%, to { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}

@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  to { background-position: 100% 50%; }
}

.card-hover-glow {
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid rgba(255, 255, 255, 0.03);
}

.card-hover-glow:hover {
  border-color: rgba(249, 115, 22, 0.2);
  transform: translateY(-4px);
  box-shadow: 0 10px 40px -10px rgba(249, 115, 22, 0.15);
}

.target-icon-box {
  position: relative;
  background: linear-gradient(to bottom right, rgba(249, 115, 22, 0.15), rgba(249, 115, 22, 0.05));
  transition: all 0.5s ease;
  z-index: 1;
  color: #f97316;
}

.target-icon-box::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(to bottom right, #f97316, rgba(249, 115, 22, 0.8));
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: -1;
}

.target-card:hover .target-icon-box {
  transform: scale(1.1);
  color: #ffffff !important;
}

.target-card:hover .target-icon-box::before {
  opacity: 1;
}

/* Fix for Elementor Editor: Ensure animated elements are visible */
body.elementor-editor-active .reveal,
body.elementor-editor-active .reveal-scale,
body.elementor-editor-active .stagger-children > * {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
