:root{
  --brand-900:#0b1f3a;
  --brand-800:#0d2a4f;
  --brand-700:#123a6d;
  --brand-100:#eaf2ff;
}

body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color:#111827;
}

.btn-brand{
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand-900);
  --bs-btn-border-color: var(--brand-900);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-800);
  --bs-btn-hover-border-color: var(--brand-800);
  --bs-btn-focus-shadow-rgb: 11, 31, 58;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-700);
  --bs-btn-active-border-color: var(--brand-700);
  border-radius: 999px;
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}
.btn-brand:hover{
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
}

.site-topbar{
  background: linear-gradient(135deg, #061428 0%, #0b1f3a 55%, #061428 100%);
  border-bottom-color: rgba(255,255,255,.08) !important;
  color:#fff;
}
.site-topbar .text-muted{
  color: rgba(255,255,255,.72) !important;
}
.site-topbar .topbar-item{
  display:inline-flex;
  align-items:center;
  gap: .45rem;
  color: rgba(255,255,255,.72);
  text-decoration:none;
  line-height: 1.2;
  white-space: nowrap;
}
.site-topbar .topbar-item i{
  color: rgba(255,255,255,.82);
  font-size: 1rem;
}
.site-topbar .topbar-item:hover{
  color:#fff;
}
.site-topbar .topbar-text{
  max-width: 56ch;
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display:inline-block;
  vertical-align: bottom;
}
.site-topbar .topbar-left{
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  flex-wrap: nowrap;
}
.site-topbar .topbar-item--address{
  min-width: 0;
  flex: 1 1 auto;
}
.site-topbar .topbar-item--address .topbar-text{
  max-width: 100%;
}

.site-social a{
  display:inline-flex;
  width: 34px;
  height: 34px;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.92);
  background: rgba(255,255,255,.06);
  text-decoration:none;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.site-social a:hover{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.28);
  transform: translateY(-1px);
}

.btn-icon{
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border: 1px solid #e5e7eb;
  background:#fff;
  color:#111827;
  box-shadow: 0 10px 25px rgba(0,0,0,.08);
  transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn-icon:hover{
  background: var(--brand-100);
  border-color: var(--brand-100);
  color: var(--brand-900);
  transform: translateY(-1px);
  box-shadow: 0 14px 32px rgba(0,0,0,.10);
}

.btn-nav-cta{
  padding: 10px 16px;
  font-weight: 800;
  white-space: nowrap;
  box-shadow: 0 12px 26px rgba(0,0,0,.14);
}
.btn-nav-cta:hover{
  box-shadow: 0 14px 32px rgba(0,0,0,.16);
}
.navbar-brand .brand-text{
  font-weight: 850;
  letter-spacing: .2px;
  display: inline-block;
  max-width: clamp(180px, 22vw, 420px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.navbar{
  transition: box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.navbar.is-scrolled{
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
}
.navbar .navbar-nav{
  flex-wrap: nowrap;
}
.navbar .navbar-nav .nav-item{
  flex: 0 0 auto;
}
.navbar .nav-link{
  font-weight: 700;
  position: relative;
  padding: .55rem .8rem;
  border-radius: 999px;
  color:#111827;
  white-space: nowrap;
  transition: background .18s ease, color .18s ease;
}
.navbar .nav-link:hover{
  background: rgba(234,242,255,.8);
  color: var(--brand-900);
}
.navbar .nav-link.active{
  background: rgba(234,242,255,1);
  color: var(--brand-900) !important;
}
.navbar .dropdown-menu{
  border: 0;
  border-radius: 16px;
  padding: 10px;
  background: var(--brand-900);
  box-shadow: 0 22px 60px rgba(0,0,0,.24);
  min-width: 280px;
}
.navbar .dropdown-item{
  color: rgba(255,255,255,.92);
  font-weight: 650;
  border-radius: 12px;
  padding: 10px 12px;
  transition: background .18s ease, transform .18s ease, color .18s ease;
}
.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus{
  background: rgba(255,255,255,.10);
  color: #fff;
  transform: translateX(2px);
}
.navbar .dropdown-item.active{
  background: rgba(255,255,255,.16);
  color: #fff;
}

.pagination-modern{
  gap: 8px;
}
.pagination-modern .page-item .page-link{
  border-radius: 12px;
  border: 1px solid #eef2f7;
  color: #111827;
  padding: .55rem .85rem;
  box-shadow: 0 10px 25px rgba(0,0,0,.06);
}
.pagination-modern .page-item .page-link:hover{
  background: var(--brand-100);
  border-color: var(--brand-100);
  color: var(--brand-900);
}
.pagination-modern .page-item.active .page-link{
  background: var(--brand-900);
  border-color: var(--brand-900);
  color:#fff;
}
.pagination-modern .page-link:focus{
  box-shadow: 0 0 0 .25rem rgba(11,31,58,.20);
}

@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))){
  .navbar{
    background-color: rgba(255,255,255,.86) !important;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
  }
}

html.js [data-reveal], html.js [data-tilt]{
  --reveal-y:0px;
  --reveal-o:1;
  --tilt-rx:0deg;
  --tilt-ry:0deg;
  --lift-y:0px;
  --lift-s:1;
  opacity: var(--reveal-o);
  transform: perspective(900px) translate3d(0,var(--reveal-y),0) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry)) translate3d(0,var(--lift-y),0) scale(var(--lift-s));
  transition: opacity .55s ease, transform .65s cubic-bezier(.2,.8,.2,1);
  transform-origin: center;
}
html.js [data-tilt]{ will-change: transform; }
html.js [data-reveal]{
  --reveal-y:14px;
  --reveal-o:0;
}
html.js [data-reveal].is-revealed{
  --reveal-y:0px;
  --reveal-o:1;
}
@media (hover:hover){
  [data-tilt]:hover{
    --lift-y:-6px;
    --lift-s:1.01;
  }
}

.hero{
  position:relative;
  border-radius: 18px;
  overflow:hidden;
  background: linear-gradient(135deg, var(--brand-900), var(--brand-700));
  min-height: 420px;
}
.hero.hero-full{
  border-radius: 0;
  min-height: clamp(420px, 72vh, 760px);
  display:flex;
  align-items: flex-end;
}
.hero.hero-full .hero-content{
  padding: 120px 0 70px;
}
.hero.has-bg{ background-size: cover; background-position: calc(50% + var(--bg-x, 0px)) calc(50% + var(--bg-y, 0px)); }
.hero.hero-full.has-bg{ background-attachment: fixed; }
.hero::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.05));
}
.hero-content{
  position:relative;
  z-index:2;
  padding: 72px 56px;
  color:#fff;
  transform: translate3d(var(--fg-x, 0px), var(--fg-y, 0px), 0);
  transition: transform .7s cubic-bezier(.2,.8,.2,1);
}
.hero-content h1{ font-weight:800; letter-spacing:.2px; }
.hero-content p{ color: rgba(255,255,255,.9); max-width: 56ch; }

.section{
  padding: 56px 0;
}
.section-title{
  font-weight:800;
  letter-spacing:.2px;
}
.section-subtitle{
  color:#6b7280;
}

.section-dark{
  background: #061428;
  color:#fff;
}
.section-dark .section-title{ color:#fff; }
.section-dark .section-subtitle{ color: rgba(255,255,255,.72); }

.page-hero{
  position: relative;
  background:
    radial-gradient(1200px circle at 18% 0%, rgba(59,130,246,.36), transparent 58%),
    radial-gradient(900px circle at 85% 18%, rgba(139,92,246,.22), transparent 55%),
    linear-gradient(135deg, #061428 0%, var(--brand-900) 55%, #061428 100%);
  color:#fff;
  padding: 52px 0 0;
  overflow:hidden;
}
.page-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,0));
  pointer-events:none;
}
.page-hero-inner{
  position:relative;
  z-index:1;
  padding: 40px 0 52px;
}
.page-title{
  font-weight: 900;
  letter-spacing: .2px;
}
.page-lead{
  max-width: 70ch;
  color: rgba(255,255,255,.86);
}

.content-card{
  margin-top: -34px;
  background:#fff;
  border: 1px solid #eef2f7;
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 18px 46px rgba(0,0,0,.10);
}
@media (min-width: 992px){
  .content-card{ padding: 34px; }
}

.prose{
  font-size: 1.02rem;
  line-height: 1.8;
  color:#111827;
}
.prose p{ margin: 0 0 1.05rem; }
.prose p:last-child{ margin-bottom: 0; }
.prose h2{
  margin: 1.9rem 0 .85rem;
  font-weight: 900;
  color: var(--brand-900);
  font-size: 1.45rem;
}
.prose h3{
  margin: 1.5rem 0 .75rem;
  font-weight: 900;
  color: var(--brand-900);
  font-size: 1.20rem;
}
.prose h4{
  margin: 1.2rem 0 .65rem;
  font-weight: 900;
  color: var(--brand-900);
  font-size: 1.05rem;
}
.prose ul, .prose ol{
  padding-left: 1.2rem;
  margin: 0 0 1.15rem;
}
.prose li{ margin-bottom: .45rem; }
.prose hr{
  border: 0;
  height: 1px;
  background: #eef2f7;
  margin: 1.6rem 0;
}
.prose a{
  color: #0ea5e9;
  text-underline-offset: 3px;
}
.prose a:hover{ color:#0284c7; }

.aside-card{
  border-radius: 18px;
}
.aside-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap: 10px;
}
.aside-list li{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  color:#111827;
}
.aside-list i{
  color: var(--brand-900);
  margin-top: 2px;
  font-size: 16px;
}

.org-chart{
  overflow-x: auto;
  overflow-y: visible;
  padding: 14px 16px 8px;
}
.org-tree{
  list-style:none;
  padding: 0;
  margin: 0;
  display:flex;
  justify-content:center;
  gap: 22px;
}
.org-tree .org-tree{
  margin-top: 34px;
}
.org-node{
  position: relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 0;
}
.org-node.has-kids > .team-card::after{
  content:"";
  position:absolute;
  left:50%;
  transform: translateX(-50%);
  bottom: -26px;
  width: 2px;
  height: 26px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .16);
}

.team-card{
  position: relative;
  width: clamp(140px, 22vw, 190px);
  border-radius: 18px;
  overflow:hidden;
  background: #fff;
  border: 1px solid #eef2f7;
  box-shadow: 0 18px 46px rgba(0,0,0,.10);
}
.team-card-media{
  aspect-ratio: 3 / 4;
  background: radial-gradient(700px circle at 30% 20%, rgba(59,130,246,.12), transparent 58%),
              linear-gradient(135deg, #f8fafc, #eef2f7);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.team-card-media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
.team-card-placeholder{
  width: 100%;
  height: 100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  font-size: 36px;
  letter-spacing: .5px;
  color: var(--brand-900);
}
.team-card-label{
  padding: 12px 12px 14px;
  background: linear-gradient(135deg, rgba(11,31,58,.96), rgba(18,58,109,.96));
  color:#fff;
  text-align:center;
}
.team-card-name{
  font-weight: 900;
  letter-spacing: .2px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.team-card-role{
  margin-top: 3px;
  font-size: 13px;
  color: rgba(255,255,255,.82);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 992px){
  .org-tree{ flex-wrap: wrap; gap: 14px; }
  .org-tree .org-tree{ margin-top: 18px; }
  .org-node.has-kids > .team-card::after{ display:none; }
}
@media (max-width: 576px){
  .org-chart{ padding: 12px 10px 6px; }
  .org-tree{ gap: 12px; }
}

.service-tier{
  position:relative;
  border-radius: 24px;
  overflow:hidden;
  background: var(--tier-bg, #0b1f3a);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 22px 60px rgba(0,0,0,.26);
  display:flex;
  flex-direction:column;
}
.service-tier::before{
  content:"";
  position:absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 3px;
  background: var(--accent, #3b82f6);
  opacity: .95;
}
.service-tier.accent-1{ --accent: #3b82f6; --tier-bg: #0b1f3a; }
.service-tier.accent-2{ --accent: #0ea5e9; --tier-bg: #0d2a4f; }
.service-tier.accent-3{ --accent: #8b5cf6; --tier-bg: #123a6d; }

.service-tier-media{
  position:relative;
  height: 170px;
  background: rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.10);
  overflow:hidden;
}
.service-tier-media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
.service-tier-media-image::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.55));
}
.service-tier-media-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  color: rgba(255,255,255,.88);
  font-size: 46px;
}

.service-tier-body{
  flex: 1 1 auto;
  padding: 20px 22px 0;
}
.service-tier-eyebrow{
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .2px;
  color: rgba(255,255,255,.72);
}
.service-tier-title{
  margin-top: 10px;
  font-weight: 850;
  letter-spacing: .2px;
  font-size: clamp(22px, 1.65vw, 30px);
  line-height: 1.18;
  color:#fff;
}
.service-tier-desc{
  margin-top: 10px;
  color: rgba(255,255,255,.78);
}
.service-tier-divider{
  height: 1px;
  background: rgba(255,255,255,.14);
  margin: 18px 0 14px;
}
.service-tier-list{
  margin: 0;
  padding: 0;
  list-style:none;
  display:grid;
  gap: 10px;
}
.service-tier-list li{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  color: rgba(255,255,255,.84);
}
.service-tier-list i{
  color: var(--accent, #60a5fa);
  margin-top: 2px;
  font-size: 18px;
}

.service-tier-footer{
  margin-top: 22px;
  padding: 0 22px 22px;
}
.btn-tier{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid var(--accent, #3b82f6);
  background: var(--accent, #3b82f6);
  color:#fff;
  text-decoration:none;
  transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn-tier:hover{
  filter: brightness(.92);
  color:#fff;
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(0,0,0,.25);
}

.pill-title{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 8px 18px;
  border-radius: 999px;
  background: var(--brand-900);
  color:#fff;
  font-weight:800;
  letter-spacing:.6px;
}

.client-marquee{
  overflow:hidden;
  padding: 14px 6px;
}
.client-track{
  display:flex;
  width: max-content;
  --marquee-shift: -50%;
  animation: client-marquee var(--marquee-duration, 28s) linear infinite;
  will-change: transform;
}
.client-set{
  display:flex;
  gap: 18px;
  padding-right: 18px;
}
.client-marquee:hover .client-track,
.client-marquee:focus-within .client-track{
  animation-play-state: paused;
}
@keyframes client-marquee{
  from{ transform: translate3d(0,0,0); }
  to{ transform: translate3d(var(--marquee-shift),0,0); }
}

.client-scroller{
  display:flex;
  gap: 18px;
  overflow-x:auto;
  padding: 14px 6px;
  scroll-snap-type: x mandatory;
  cursor: grab;
  scrollbar-width: none;
}
.client-scroller::-webkit-scrollbar{ display:none; }
.client-scroller.is-dragging{ cursor: grabbing; }
.client-item{
  flex: 0 0 auto;
  width: 220px;
  height: 110px;
  background:#fff;
  border: 1px solid #eef2f7;
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  scroll-snap-align: start;
  transition: transform .25s ease, box-shadow .25s ease;
}
@media (hover:hover){
  .client-item:hover{
    transform: translateY(-3px);
    box-shadow: 0 16px 35px rgba(0,0,0,.08);
  }
}
.client-item img{ max-width: 160px; max-height: 70px; object-fit: contain; }

.testimonial-carousel{
  position: relative;
}
.testimonial-controls{
  display:flex;
  justify-content:flex-end;
  gap: 10px;
  margin-bottom: 10px;
}
.btn-testimonial{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.16);
  color: rgba(255,255,255,.92);
  box-shadow: 0 14px 38px rgba(0,0,0,.20);
}
.btn-testimonial:hover{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.28);
  color: #fff;
}
.testimonial-scroller{
  display:flex;
  gap: 18px;
  overflow-x:auto;
  padding: 8px 6px 14px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.testimonial-scroller::-webkit-scrollbar{ display:none; }
.testimonial-card{
  flex: 0 0 auto;
  width: clamp(280px, 32vw, 390px);
  scroll-snap-align: start;
  border-radius: 18px;
  padding: 18px 18px 16px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 18px 55px rgba(0,0,0,.28);
  position: relative;
  overflow:hidden;
}
.testimonial-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height: 3px;
  background: linear-gradient(90deg, rgba(59,130,246,.85), rgba(14,165,233,.70), rgba(139,92,246,.70));
  opacity: .9;
}
.testimonial-stars{
  display:flex;
  gap: 4px;
  color: #fbbf24;
}
.testimonial-stars .bi-star{ color: rgba(251,191,36,.35); }
.testimonial-quote{
  margin: 12px 0 14px;
  color: rgba(255,255,255,.92);
  line-height: 1.6;
  font-size: 15px;
}
.testimonial-author{
  display:flex;
  align-items:center;
  gap: 12px;
  margin-top: 8px;
}
.testimonial-avatar{
  width: 46px;
  height: 46px;
  border-radius: 999px;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}
.testimonial-avatar.placeholder{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  letter-spacing: .4px;
  color:#fff;
}
.testimonial-name{
  font-weight: 850;
  color:#fff;
  line-height: 1.2;
}
.testimonial-title{
  color: rgba(255,255,255,.68);
  font-size: 13px;
  margin-top: 2px;
}

.card-soft{
  border: 1px solid #eef2f7;
  border-radius: 16px;
  overflow:hidden;
  background:#fff;
  transition: box-shadow .25s ease;
}
.card-soft:hover{ box-shadow: 0 18px 45px rgba(0,0,0,.08); }

.service-card .card-img-top{
  height: 190px;
  object-fit: cover;
}

.cta{
  background: #f4f6f9;
  border-radius: 18px;
  padding: 42px 24px;
  border: 1px solid #eef2f7;
}

.stat-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 0;
  border: 1px solid #eef2f7;
  border-radius: 14px;
  overflow:hidden;
  background:#fff;
}
.stat-item{
  padding: 22px 16px;
  text-align:center;
  border-right:1px solid #eef2f7;
  border-bottom:1px solid #eef2f7;
}
.stat-item:nth-child(2n){ border-right:0; }
.stat-item:nth-last-child(-n+2){ border-bottom:0; }
.stat-item .value{ font-size: 34px; font-weight: 900; color:#111827; }
.stat-item .label{ font-weight: 700; color:#374151; }

.map-card{
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid #eef2f7;
  background:#fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.06);
}
.map-card--full{
  border-radius: 0;
  border-left: 0;
  border-right: 0;
}
.embed-map-responsive{
  position:relative;
  width:100%;
  height: clamp(320px, 60vh, 520px);
}
.embed-map-container{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:none !important;
}
.embed-map-frame{
  width:100% !important;
  height:100% !important;
  position:absolute;
  inset:0;
  border:0;
}

.scope-detail-table th{
  background:#f9fafb;
  font-weight: 800;
  color:#374151;
}
.scope-detail-table td{
  color:#111827;
}
.pdf-embed{
  border: 1px solid #eef2f7;
  border-radius: 16px;
  overflow:hidden;
  background:#fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.06);
}
.pdf-frame{
  width: 100%;
  height: clamp(520px, 75vh, 920px);
  border: 0;
  display:block;
}

@media (min-width: 992px){
  .stat-grid{ grid-template-columns: repeat(4, minmax(0,1fr)); }
  .stat-item{ border-bottom:0; }
  .stat-item{ border-right:1px solid #eef2f7; }
  .stat-item:last-child{ border-right:0; }
}

.footer{
  position: relative;
  padding: 56px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(135deg, #061428 0%, #0b1f3a 55%, #061428 100%);
  color:#fff;
  overflow:hidden;
}
.footer::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height: 3px;
  background: linear-gradient(90deg, rgba(59,130,246,.35), rgba(14,165,233,.28), rgba(139,92,246,.28));
}
.footer::after{
  content:"";
  position:absolute;
  inset:-20%;
  background:
    radial-gradient(ellipse at 15% 20%, rgba(59,130,246,.18), transparent 55%),
    radial-gradient(ellipse at 85% 10%, rgba(139,92,246,.14), transparent 50%);
  pointer-events:none;
}
.footer > .container{
  position:relative;
  z-index: 1;
}
.footer .text-muted{
  color: rgba(255,255,255,.72) !important;
}
.footer-contact i{
  color: rgba(255,255,255,.78);
}
.footer-meta{
  line-height: 1.55;
}
.social-icons{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}
.social-icons a{
  display:inline-flex;
  width: 40px;
  height: 40px;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.92);
  text-decoration:none;
  margin-right: 0;
  background: rgba(255,255,255,.06);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.social-icons a:hover{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.28);
  transform: translateY(-1px);
}
.footer-link{
  color: rgba(255,255,255,.72);
  text-decoration:none;
}
.footer-link:hover{
  color: #fff;
  text-decoration: underline;
}

.wa-float{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 999;
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow: 0 10px 25px rgba(0,0,0,.12);
  text-decoration:none;
  color:#111827;
  transition: transform .2s ease, box-shadow .2s ease;
}
@media (hover:hover){
  .wa-float:hover{
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(0,0,0,.14);
  }
}
.wa-float .badge{
  background:#25D366;
  color:#fff;
  border-radius: 999px;
  width: 42px;
  height: 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: 20px;
}

@media (max-width: 575px){
  .hero-content{ padding: 56px 22px; }
}

@media (max-width: 991px){
  .hero.hero-full .hero-content{ padding: 92px 0 56px; }
  .hero.hero-full.has-bg{ background-attachment: scroll; }
}

@media (prefers-reduced-motion: reduce){
  .client-track{
    animation: none !important;
    transform: none !important;
    will-change: auto;
  }
  .client-set[aria-hidden="true"]{ display:none; }
  .client-marquee{
    overflow-x:auto;
    scroll-snap-type: x mandatory;
  }
  html.js [data-reveal], html.js [data-tilt]{
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
  .navbar{ transition: none !important; }
  .hero-content{ transition: none !important; transform: none !important; }
}
