/* ------------------------------------------------------------------
   M2 Recharge - professional refresh layer for the public website.
   Loaded last, so it refines the existing template's typography,
   colour, spacing and card styling without changing page structure.
   Intentionally does not touch the Revolution Slider (.rev_slider,
   .tp-*) so the banner keeps working exactly as before.
------------------------------------------------------------------- */

:root{
  --brand:#039ee3;
  --brand-dark:#027cb4;
  --brand-soft:#e8f6fd;
  --ink:#0f2438;
  --ink-soft:#44566c;
  --muted:#7b8a9a;
  --line:#e4eaf0;
  --surface:#f6f9fc;
}

/* ---------- Typography ---------- */
body{
  font-family:'Inter','Source Sans Pro',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink-soft);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,
.main_heading h2,
.contact_us_section h2{
  font-family:'Poppins','Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.25;
}
p{color:var(--ink-soft)}
a{transition:color .2s ease}

/* ---------- Section rhythm ---------- */
.section.padding_layout_1{padding-top:76px;padding-bottom:76px}
.section.light_silver{background:var(--surface)}

/* ---------- Section headings ---------- */
.main_heading{margin-bottom:46px}
.main_heading h2{
  margin:0 0 12px;
  font-size:34px;
}
.main_heading p.large{
  max-width:640px;
  margin:0 auto;
  color:var(--muted);
  font-size:16.5px;
  line-height:1.7;
}
.main_heading.text_align_left p.large{margin-left:0}
.main_heading.text_align_right p.large{margin-right:0}
.main_heading::after{
  margin-top:18px;
  width:56px;
  height:4px;
  border-radius:4px;
  background:linear-gradient(90deg,var(--brand),var(--brand-dark));
}

/* ---------- Top navigation ---------- */
.header_bottom{
  background:#fff;
  box-shadow:0 1px 0 var(--line),0 6px 24px rgba(15,36,56,.06);
}
.header_bottom .logo img{max-height:56px;width:auto}
#navbar_menu ul.first-ul > li > a{
  padding:10px 15px;
  border-radius:8px;
  color:var(--ink);
  font-size:15px;
  font-weight:600;
  transition:color .2s ease,background .2s ease;
}
#navbar_menu ul.first-ul > li > a:hover,
#navbar_menu ul.first-ul > li > a.active{
  color:var(--brand-dark);
  background:var(--brand-soft);
}
/* Register + Log In read as actions, not just more menu links */
#navbar_menu ul.first-ul > li > a.nav_cta_outline{
  margin-left:6px;
  border:1px solid var(--brand);
  color:var(--brand-dark);
}
#navbar_menu ul.first-ul > li > a.nav_cta_outline:hover{
  background:var(--brand-soft);
  color:var(--brand-dark);
}
#navbar_menu ul.first-ul > li > a.nav_cta{
  margin-left:8px;
  background:linear-gradient(120deg,var(--brand),var(--brand-dark));
  color:#fff;
  box-shadow:0 8px 18px rgba(3,158,227,.28);
}
#navbar_menu ul.first-ul > li > a.nav_cta:hover{
  background:linear-gradient(120deg,var(--brand-dark),var(--brand-dark));
  color:#fff;
  transform:translateY(-1px);
}

/* ---------- Buttons ---------- */
.btn.dark_gray_bt,
a.btn.dark_gray_bt{
  padding:13px 30px;
  border:0;
  border-radius:10px;
  font-weight:650;
  letter-spacing:.01em;
  box-shadow:0 10px 22px rgba(15,36,56,.16);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.btn.dark_gray_bt:hover,
a.btn.dark_gray_bt:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 26px rgba(15,36,56,.22);
  filter:brightness(1.05);
}

/* ---------- "Why choose us" feature blocks ---------- */
.section.padding_layout_1 .text_align_center.margin_bottom_30,
.section.padding_layout_1 .full.text_align_center.margin_bottom_30{
  height:100%;
  padding:32px 24px 28px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.section.padding_layout_1 .text_align_center.margin_bottom_30:hover,
.section.padding_layout_1 .full.text_align_center.margin_bottom_30:hover{
  transform:translateY(-4px);
  border-color:rgba(3,158,227,.35);
  box-shadow:0 18px 38px rgba(15,36,56,.10);
}
.section .icon img{
  width:66px;
  height:66px;
  object-fit:contain;
}
.section .text_align_center h4.theme_color{
  margin:18px 0 10px;
  color:var(--ink) !important;
  font-size:19px;
}
.section .text_align_center.margin_bottom_30 p{
  margin:0;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.72;
}

/* ---------- Service process cards ---------- */
.service_blog_inner{
  height:100%;
  margin-bottom:28px;
  padding:34px 26px 30px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.service_blog_inner:hover{
  transform:translateY(-4px);
  border-color:rgba(3,158,227,.35);
  box-shadow:0 18px 38px rgba(15,36,56,.10);
}
.service_blog_inner .icon img{width:58px;height:58px;object-fit:contain}
.service_blog_inner h4.service-heading{
  margin:18px 0 10px;
  font-size:19px;
  color:var(--ink);
}
.service_blog_inner p{
  margin:0;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.72;
  text-align:center !important;
}

/* ---------- Our services cards ---------- */
.product_list{
  height:100%;
  margin-bottom:30px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.product_list:hover,
.product_list:focus{
  transform:translateY(-4px);
  border-color:rgba(3,158,227,.35);
  box-shadow:0 18px 38px rgba(15,36,56,.10);
}
/* Service tiles are square logo graphics, so contain them rather than
   crop -- object-fit:cover would cut the logos off at top and bottom. */
.product_list .product_img{
  overflow:hidden;
  padding:18px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.product_list .product_img img{
  display:block;
  width:100%;
  height:170px;
  object-fit:contain;
  transition:transform .35s ease;
}
.product_list:hover .product_img img{transform:scale(1.04)}
.product_list .product_detail_btm{padding:22px 20px 24px}
.product_list .product_detail_btm h4{margin:0 0 10px;font-size:18px}
.product_list .product_detail_btm h4 a{color:var(--ink)}
.product_list .product_detail_btm h4 a:hover{color:var(--brand-dark)}
.product_list .starratin .center{
  color:var(--muted) !important;
  font-size:14.5px;
  line-height:1.7;
  text-align:left !important;
}

/* ---------- Stats band ---------- */
.section .row.counter{margin-top:8px}
.counter .stat_card{
  padding:26px 20px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,36,56,.06);
  text-align:center;
}
.counter i{
  font-size:30px;
  color:var(--brand);
}
.counter-heading,
.counter .counter-heading.text_align_right{
  margin:14px 0 4px;
  color:var(--muted) !important;
  font-size:14.5px;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
  text-align:center !important;
}
.counter-count{
  font-size:38px;
  font-weight:800;
  color:var(--ink) !important;
  text-align:center !important;
  letter-spacing:-.02em;
}

/* ---------- Call-to-action band ---------- */
.contact_us_section{
  padding:40px 46px !important;
  border-radius:18px;
  background:linear-gradient(120deg,#0f2438 0%,#0b3c5d 55%,var(--brand-dark) 100%) !important;
  box-shadow:0 22px 50px rgba(15,36,56,.22);
}
.contact_us_section h2{
  font-size:29px !important;
  color:#fff !important;
  letter-spacing:-.02em;
}
.contact_us_section .inner_cont p{
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:15.5px;
}
.contact_us_section .call_icon img{width:52px;height:auto}
.contact_us_section a.btn.dark_gray_bt{
  background:#fff;
  color:var(--ink);
}
.contact_us_section a.btn.dark_gray_bt:hover{
  background:#fff;
  color:var(--brand-dark);
}

/* ---------- Brand / partner logo strip ---------- */
ul.brand_list li img{
  max-height:52px;
  width:auto;
  opacity:.55;
  filter:grayscale(100%);
  transition:opacity .25s ease,filter .25s ease;
}
ul.brand_list li img:hover{opacity:1;filter:grayscale(0)}

/* ---------- Footer ---------- */
.footer_style_2{background:#0f2438}
.footer_style_2 .map_section iframe{
  display:block;
  height:320px;
  filter:grayscale(18%);
}
.footer_style_2 .footer_blog{padding:56px 4% 30px}
.footer_style_2 .main-heading.left_text h2{
  margin:0 0 18px;
  color:#fff;
  font-size:18px;
  letter-spacing:.01em;
}
.footer_style_2 .footer_blog p,
.footer_style_2 .footer_blog li a{
  color:#a9bccd;
  font-size:14.5px;
  line-height:1.8;
}
.footer_style_2 .footer-menu li a:hover,
.footer_style_2 .footer_blog p a:hover{color:#fff}
.footer_style_2 .footer-menu li{margin-bottom:4px}
.footer_style_2 .footer-menu li a i{margin-right:6px;color:var(--brand)}
.footer_style_2 ul.social_icons li a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:10px;
  background:rgba(255,255,255,.08);
  color:#cfe0ee;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.footer_style_2 ul.social_icons li a:hover{
  background:var(--brand);
  color:#fff;
  transform:translateY(-2px);
}
.footer_style_2 .cprt{
  margin-top:10px;
  padding:20px 4%;
  border-top:1px solid rgba(255,255,255,.1);
}
.footer_style_2 .cprt p{
  margin:0;
  color:#8ba2b6;
  font-size:13.5px;
}

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .main_heading h2{font-size:28px}
  .section.padding_layout_1{padding-top:56px;padding-bottom:56px}
  .contact_us_section{padding:30px 26px !important;text-align:center}
  .contact_us_section .call_icon,
  .contact_us_section .inner_cont,
  .contact_us_section .button_Section_cont{float:none !important;width:100% !important}
  .contact_us_section .inner_cont{margin:14px 0 18px}
  .contact_us_section .call_icon img{margin:0 auto}
  .footer_style_2 .footer_blog{padding:42px 6% 24px}
}
@media (max-width:767px){
  .main_heading{margin-bottom:34px}
  .main_heading h2{font-size:24px}
  .main_heading.text_align_right,
  .main_heading.text_align_right p.large{text-align:center !important}
  .main_heading.text_align_right::after{margin-left:auto;margin-right:auto}
  .counter-count{font-size:32px}
  .footer_style_2 .map_section iframe{height:240px}
}
