/* ===== DECISIONE LUCIDA — Custom Effects ===== */

/* Grain Overlay */
.grain { position: relative; }
.grain::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  background-size: 256px;
  pointer-events: none;
  z-index: 1;
}
.grain > * { position: relative; z-index: 2; }

/* Gold Glow Pulse on CTA */
@keyframes goldPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(184,153,104,0.25); }
  50% { box-shadow: 0 4px 40px rgba(184,153,104,0.55), 0 0 60px rgba(184,153,104,0.15); }
}
.cta-glow { animation: goldPulse 3s ease-in-out infinite; }
.cta-glow:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 40px rgba(184,153,104,0.5) !important;
}

/* Float Animation */
@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-12px) rotate(1deg); }
}
.float { animation: float 6s ease-in-out infinite; }
.float-slow { animation: float 8s ease-in-out infinite; }
.float-delay { animation: float 6s ease-in-out 2s infinite; }

/* Scroll Reveal */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s cubic-bezier(0.25,0.4,0.25,1), transform 0.7s cubic-bezier(0.25,0.4,0.25,1);
}
.reveal.active { opacity: 1; transform: translateY(0); }
.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s cubic-bezier(0.25,0.4,0.25,1), transform 0.7s cubic-bezier(0.25,0.4,0.25,1);
}
.reveal-left.active { opacity: 1; transform: translateX(0); }

.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }
.stagger-5 { transition-delay: 0.5s; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-left { opacity: 1; transform: none; transition: none; }
  .float, .float-slow, .float-delay { animation: none; }
  .cta-glow { animation: none; }
}

/* Glass Card */
.glass {
  background: rgba(245,241,234,0.05);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(184,153,104,0.12);
}
.glass-cream {
  background: rgba(255,255,255,0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(184,153,104,0.15);
}

/* Gradient Border Card */
.gradient-border {
  position: relative;
  background: #1A2332;
  border-radius: 20px;
}
.gradient-border::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 21px;
  background: linear-gradient(135deg, rgba(184,153,104,0.6), rgba(184,153,104,0.05), rgba(184,153,104,0.3));
  z-index: -1;
}

/* Hero Background Mesh */
.hero-bg {
  background:
    radial-gradient(ellipse 60% 50% at 80% 50%, rgba(184,153,104,0.08) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 20% 30%, rgba(36,48,68,0.9) 0%, transparent 70%),
    radial-gradient(ellipse 80% 80% at 50% 100%, rgba(17,24,39,0.95) 0%, transparent 50%),
    #1A2332;
}

/* Section Mesh Backgrounds */
.mesh-navy {
  background:
    radial-gradient(ellipse 50% 50% at 10% 90%, rgba(184,153,104,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 90% 20%, rgba(36,48,68,0.8) 0%, transparent 50%),
    #1A2332;
}
.mesh-cream {
  background:
    radial-gradient(ellipse 50% 50% at 80% 80%, rgba(184,153,104,0.07) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 10% 20%, rgba(232,226,216,0.5) 0%, transparent 50%),
    #F5F1EA;
}

/* Diagonal cut between sections */
.diagonal-top {
  clip-path: polygon(0 4vw, 100% 0, 100% 100%, 0 100%);
  margin-top: -4vw;
  padding-top: calc(4vw + 5rem);
}

/* Hero Image Treatment */
.hero-image-wrapper {
  position: relative;
}
.hero-image-wrapper::before {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(184,153,104,0.4), transparent 50%, rgba(184,153,104,0.2));
  z-index: 0;
}
.hero-image-wrapper img {
  position: relative;
  z-index: 1;
}

/* FAQ Accordion */
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.25,0.4,0.25,1), padding 0.4s cubic-bezier(0.25,0.4,0.25,1);
}
.faq-answer.open {
  max-height: 200px;
  padding-bottom: 1.5rem;
}

/* Modal */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17,24,39,0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.modal-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.modal-content {
  transform: translateY(20px);
  transition: transform 0.4s cubic-bezier(0.25,0.4,0.25,1);
}
.modal-overlay.open .modal-content {
  transform: translateY(0);
}

/* Selection */
::selection { background: #B89968; color: #1A2332; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #111827; }
::-webkit-scrollbar-thumb { background: #9A7D52; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #B89968; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Decorative ring */
.deco-ring {
  border: 1px solid rgba(184,153,104,0.15);
  border-radius: 50%;
  position: absolute;
}
