/* =====================================================================
   Vaulta — subtle / institutional motion pass
   CSS-only micro-interactions. No libraries. Respects reduced-motion.
   ===================================================================== */
:root { --vaulta-green: #2CDB3E; }

/* Consistent, calm easing on interactive elements */
.elementor-button,
.sbmt, input[type=submit], button.sbmt, .btn-success, .btn-primary,
.elementor-element-ffec643 > .elementor-element,
.elementor-widget-icon-box.elementor-view-stacked.elementor-shape-rounded.elementor-position-top,
.elementor-icon-list-item a,
.elementor-nav-menu--main .elementor-item {
  transition: transform .25s ease-out, box-shadow .25s ease-out,
              color .2s ease-out, background-color .2s ease-out, border-color .25s ease-out;
}

/* --- Buttons: gentle lift (theme already supplies the accent glow) --- */
.elementor-button:hover,
.sbmt:hover, input[type=submit]:hover, button.sbmt:hover {
  transform: translateY(-2px);
}
.elementor-button:active { transform: translateY(0); }

/* --- Cards: pricing plans (scoped to the pricing grid) --- */
.elementor-element-ffec643 > .elementor-element:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 38px rgba(0, 0, 0, .30);
}

/* --- Cards: framed value / service icon-boxes (top icon).
       Footer "Free Consultations" box is position-left, so it's excluded. --- */
.elementor-widget-icon-box.elementor-view-stacked.elementor-shape-rounded.elementor-position-top:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 32px rgba(0, 0, 0, .22);
}

/* --- Links: animated underline (footer lists) --- */
.elementor-icon-list-item a .elementor-icon-list-text {
  background-image: linear-gradient(var(--vaulta-green), var(--vaulta-green));
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size .25s ease-out;
  padding-bottom: 2px;
}
.elementor-icon-list-item a:hover .elementor-icon-list-text { background-size: 100% 1px; }

/* --- Hero "wow" moment: gentle float on the dashboard mockup (home) --- */
img[src*="Dashboard_img"], img[data-src*="Dashboard_img"] {
  animation: vaultaFloat 5.5s ease-in-out infinite;
  will-change: transform;
}
@keyframes vaultaFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

/* --- Accessibility: honor reduced-motion --- */
@media (prefers-reduced-motion: reduce) {
  .elementor-button, .sbmt, input[type=submit], button.sbmt,
  .elementor-element-ffec643 > .elementor-element,
  .elementor-widget-icon-box.elementor-view-stacked.elementor-shape-rounded.elementor-position-top,
  .elementor-icon-list-item a .elementor-icon-list-text {
    transition: none !important;
  }
  .elementor-button:hover,
  .elementor-element-ffec643 > .elementor-element:hover,
  .elementor-widget-icon-box.elementor-view-stacked.elementor-shape-rounded.elementor-position-top:hover {
    transform: none !important;
  }
  img[src*="Dashboard_img"], img[data-src*="Dashboard_img"] { animation: none !important; transform: none !important; }
}

/* ===================================================================
   Vaulta — content / legal / utility pages (faq, rules, news, reviews)
   Dark, readable wrapper matching the marketing theme.
   =================================================================== */
.vaulta-page-hero{ background:#0d1015; padding:120px 24px 56px; text-align:center; border-bottom:1px solid rgba(255,255,255,.06); }
.vaulta-page-hero .kick{ font-family:'Poppins',Arial,sans-serif; text-transform:uppercase; letter-spacing:3px; font-size:12px; color:#22c43a; margin-bottom:14px; }
.vaulta-page-hero h1{ font-family:'Poppins',Arial,sans-serif; color:#fff; font-size:44px; font-weight:700; letter-spacing:-.5px; margin:0; }
.vaulta-page-body{ background:#15171b; padding:56px 24px 96px; }
.vaulta-content{ max-width:980px; margin:0 auto; color:#aeb6c0; font-size:16px; line-height:1.85; font-family:Georgia,'Times New Roman',serif; }
.vaulta-content h1,.vaulta-content h2,.vaulta-content h3,.vaulta-content h4{ color:#fff; font-family:'Poppins',Arial,sans-serif; font-weight:600; margin:30px 0 12px; }
.vaulta-content h3{ font-size:22px; } .vaulta-content h4{ font-size:18px; }
.vaulta-content a{ color:#3ee85a; text-decoration:none; } .vaulta-content a:hover{ text-decoration:underline; }
.vaulta-content table{ width:100%; border-collapse:collapse; margin:18px 0; }
.vaulta-content td,.vaulta-content th{ padding:11px 12px; border-bottom:1px solid rgba(255,255,255,.08); text-align:left; vertical-align:top; }
.vaulta-content th{ color:#fff; font-family:'Poppins',Arial,sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:.5px; }
.vaulta-content input[type=text],.vaulta-content input[type=password],.vaulta-content input[type=email],.vaulta-content textarea,.vaulta-content select{
  width:100%; padding:12px 14px; background:#0f1216; border:1px solid rgba(255,255,255,.14); border-radius:8px; color:#fff; font-family:inherit; font-size:15px; margin:4px 0; box-sizing:border-box; }
.vaulta-content textarea{ min-height:120px; }
.vaulta-content input[type=submit],.vaulta-content button,.vaulta-content .sbmt,.vaulta-content .btn{
  display:inline-block; background:#22c43a; color:#0b0e12; border:none; padding:12px 26px; border-radius:8px;
  font-family:'Poppins',Arial,sans-serif; font-weight:700; cursor:pointer; text-transform:uppercase; letter-spacing:.5px; }
.vaulta-content input[type=submit]:hover,.vaulta-content .sbmt:hover,.vaulta-content .btn:hover{ background:#1fae2e; }
.vaulta-content small,.vaulta-content .small{ color:#7b8794; }
.vaulta-content ul{ padding-left:20px; } .vaulta-content li{ margin:6px 0; }

/* ===================================================================
   Vaulta — FAQ accordion (click-to-expand)
   =================================================================== */
.vfaq{ max-width:860px; margin:0 auto; }
.vfaq-intro{ max-width:860px; margin:0 auto 22px; color:#aeb6c0; font-size:16px; line-height:1.8; }
.vfaq-outro{ max-width:860px; margin:26px auto 0; color:#7b8794; font-size:14.5px; font-style:italic; }
.vfaq-item{
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:#171a1f;
  margin:12px 0;
  overflow:hidden;
  transition:border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
}
.vfaq-item:hover{ border-color:rgba(34,196,58,.35); }
.vfaq-item.open{
  border-color:rgba(34,196,58,.55);
  background:#191d22;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
.vaulta-content .vfaq-q{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  width:100%; margin:0; text-align:left; cursor:pointer;
  background:transparent; border:none; outline:none; border-radius:0;
  padding:20px 22px;
  font-family:'Poppins',Arial,sans-serif; font-weight:600; font-size:16.5px;
  color:#eef1f4; line-height:1.5;
  text-transform:none; letter-spacing:normal;
  transition:color .2s ease;
}
.vaulta-content .vfaq-q:hover{ background:transparent; color:#fff; }
.vfaq-item.open .vfaq-q{ color:#fff; }
/* plus / minus icon */
.vfaq-ico{ position:relative; flex:0 0 20px; width:20px; height:20px; }
.vfaq-ico::before,.vfaq-ico::after{
  content:""; position:absolute; background:#22c43a; border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
.vfaq-ico::before{ top:9px; left:0; width:20px; height:2px; }
.vfaq-ico::after{ left:9px; top:0; width:2px; height:20px; }
.vfaq-item.open .vfaq-ico::before{ transform:rotate(180deg); }
.vfaq-item.open .vfaq-ico::after{ transform:rotate(90deg); opacity:0; }
/* answer panel */
.vfaq-a{ max-height:0; overflow:hidden; transition:max-height .38s ease; }
.vfaq-a-in{
  padding:0 22px 22px; color:#aeb6c0; font-size:15.5px; line-height:1.85;
  font-family:Georgia,'Times New Roman',serif;
}
.vfaq-a-in a{ color:#3ee85a; text-decoration:none; }
.vfaq-a-in a:hover{ text-decoration:underline; }
@media (prefers-reduced-motion: reduce){
  .vfaq-a{ transition:none; }
  .vfaq-ico::before,.vfaq-ico::after{ transition:none; }
}
