/* Viking Security — decorative extras.
   Paste into Appearance > Customize > Additional CSS.
   Purely cosmetic: nothing here is required for layout. */

:root{
  --vs-blue:#0057D9; --vs-blue-dark:#0041A8;
  --vs-ink:#0F1117; --vs-light:#F5F7FA; --vs-border:#E2E6EE;
}

/* Blueprint grid overlay on dark sections */
.vs-dark{ position:relative; }
.vs-dark > .e-con-inner, .vs-dark > .elementor-container{ position:relative; z-index:2; }
.vs-dark::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:64px 64px;
}

/* Square, sharp brand corners everywhere */
.elementor-button, .elementor-widget-image img{ border-radius:2px !important; }

/* Service & industry card hover lift */
.elementor-widget-image img{ transition:transform .7s cubic-bezier(.22,1,.36,1), opacity .5s ease; }
.e-con:hover > .e-con-inner .elementor-widget-image img{ transform:scale(1.04); }

/* Blue top-rule that draws in on hover (services / industries) */
.e-con.vs-card{ position:relative; overflow:hidden; }
.e-con.vs-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--vs-blue); transform:scaleX(0); transform-origin:left;
  transition:transform .5s ease; z-index:3;
}
.e-con.vs-card:hover::before{ transform:scaleX(1); }

/* Floating WhatsApp button */
.vs-whatsapp{
  position:fixed; right:20px; bottom:20px; z-index:9999;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px rgba(0,0,0,.28); transition:transform .25s ease;
}
.vs-whatsapp:hover{ transform:translateY(-3px) scale(1.05); color:#fff; }
.vs-whatsapp svg{ width:28px; height:28px; fill:currentColor; }

/* Sticky header polish */
.elementor-sticky--effects{ background:rgba(15,17,23,.95) !important; backdrop-filter:blur(10px); }

/* FAQ toggle */
.elementor-widget-toggle .elementor-toggle-title{ font-family:Montserrat,sans-serif; }
.elementor-widget-toggle .elementor-tab-title{ border-bottom:1px solid var(--vs-border); padding:22px 0; }

/* Mobile spacing safety */
@media (max-width:767px){
  .e-con{ --padding-inline-start:20px; --padding-inline-end:20px; }
}
