/* ===== base ===== */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:'Inter',sans-serif; background:#0A0E14; -webkit-font-smoothing:antialiased; }
::selection{ background:#A4CE4E; color:#0A0E14; }

/* ===== animations ===== */
@keyframes vxFloat{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-18px) } }
@keyframes vxFloat2{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(14px) } }
@keyframes vxSpin{ from{ transform:rotate(0) } to{ transform:rotate(360deg) } }
@keyframes vxPulse{ 0%,100%{ opacity:.35 } 50%{ opacity:.7 } }
@keyframes vxRise{ from{ opacity:0; transform:translateY(24px) } to{ opacity:1; transform:translateY(0) } }

/* ===== interactions ===== */
.vx-link{ position:relative; }
.vx-link::after{ content:''; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:#A4CE4E; transition:width .25s ease; border-radius:2px; }
.vx-link:hover::after{ width:100%; }
.vx-card-h{ transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.vx-card-h:hover{ transform:translateY(-6px); border-color:rgba(164,206,78,.45); box-shadow:0 24px 50px -20px rgba(0,0,0,.7); }
.vx-btn{ transition:transform .2s ease, box-shadow .25s ease, background .2s ease; }
.vx-btn:hover{ transform:translateY(-2px); }
.vx-drop{ opacity:0; visibility:hidden; transform:translateY(8px); transition:all .2s ease; }
.vx-has-drop:hover .vx-drop{ opacity:1; visibility:visible; transform:translateY(0); }
input::placeholder,textarea::placeholder{ color:#6B7686; }

/* hover states que antes eram onmouseover inline */
.vx-dropitem:hover{ background:rgba(164,206,78,.1); color:#A4CE4E !important; }
.vx-foot-link:hover{ color:#A4CE4E !important; }
.vx-social:hover{ background:rgba(164,206,78,.15) !important; }
.vx-credit:hover{ opacity:.7; }

/* abas de planos */
.vx-tab{ border:none; cursor:pointer; font-family:'Poppins',sans-serif; font-weight:600; font-size:15px; padding:11px 30px; border-radius:999px; background:transparent; color:#9AA3B0; transition:background .2s ease, color .2s ease; }
.vx-tab.active{ background:#A4CE4E; color:#0A0E14; }

/* toggles via [hidden] que precisam virar flex quando visíveis */
#vx-mobile-menu:not([hidden]){ display:flex; }
#vx-form-success:not([hidden]){ display:flex; }

/* ===== leaflet dark theme ===== */
.leaflet-container{ background:#0A0E14 !important; font-family:'Inter',sans-serif; }
.leaflet-popup-content-wrapper{ background:#12161F; color:#fff; border-radius:12px; box-shadow:0 14px 30px -10px rgba(0,0,0,.7); }
.leaflet-popup-tip{ background:#12161F; }
.leaflet-popup-content{ margin:12px 16px; font-size:13.5px; }
.leaflet-bar a{ background:#12161F; color:#A4CE4E; border-color:rgba(255,255,255,.1); }
.leaflet-bar a:hover{ background:#1b2230; }
.leaflet-control-attribution{ background:rgba(10,14,20,.7) !important; color:#5C6472 !important; }
.leaflet-control-attribution a{ color:#7C8696 !important; }

/* ===== responsivo ===== */
@media(max-width:980px){
  .vx-desktop-nav{ display:none !important; }
  #vx-burger{ display:flex !important; }
  .vx-hero-grid{ grid-template-columns:1fr !important; }
  .vx-diff-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .vx-plan-grid{ grid-template-columns:1fr !important; max-width:440px; margin:0 auto; }
  .vx-sobre-grid,.vx-mv-grid,.vx-area-grid,.vx-contact-grid{ grid-template-columns:1fr !important; }
  .vx-val-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .vx-app-grid{ grid-template-columns:1fr !important; max-width:440px; margin:0 auto; }
  .vx-foot-grid{ grid-template-columns:1fr 1fr !important; }
}
@media(max-width:560px){
  .vx-cookie{ left:12px !important; right:12px !important; max-width:none !important; bottom:12px !important; }
  .vx-central-btn{ display:none !important; }
  .vx-diff-grid,.vx-val-grid,.vx-foot-grid{ grid-template-columns:1fr !important; }
  .vx-form-row{ grid-template-columns:1fr !important; }
}
