/* =========================================================
   VELTRIX UNIVERSAL SITE SHELL
   Shared header, navigation, footer and WhatsApp button.
   Load this file AFTER each page stylesheet.
========================================================= */

:root{
  --vh-ink:#071a2b;
  --vh-navy:#082944;
  --vh-navy-2:#0b3657;
  --vh-mint:#8bf0c6;
  --vh-cyan:#59d7e6;
  --vh-paper:#fbfcfa;
  --vh-muted:#9db9c7;
  --vh-line:rgba(7,26,43,.12);
  --vh-shell:min(1180px,calc(100% - 40px));
}

.vh-shell{width:var(--vh-shell);margin-inline:auto}

#site-header,
#site-footer{position:relative;z-index:100}

.vh-topbar{
  background:var(--vh-ink);
  color:#cce8ef;
  font-size:.76rem;
  letter-spacing:.02em;
}
.vh-topbar__inner{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.vh-topbar__links{
  display:flex;
  align-items:center;
  gap:20px;
}
.vh-topbar a{
  min-height:42px;
  display:inline-flex;
  align-items:center;
}
.vh-topbar a:hover{color:var(--vh-mint)}

.vh-header{
  position:sticky;
  top:0;
  z-index:1500;
  border-bottom:1px solid rgba(7,26,43,.08);
  background:rgba(251,252,250,.96);
  box-shadow:0 8px 26px rgba(7,26,43,.045);
}
@supports(backdrop-filter:blur(14px)){
  .vh-header{
    background:rgba(251,252,250,.90);
    backdrop-filter:blur(14px);
  }
}
.vh-header__inner{
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.vh-brand{
  display:flex;
  align-items:center;
  min-width:140px;
  min-height:52px;
}
.vh-brand img{
  width:124px;
  height:auto;
  object-fit:contain;
}

.vh-desktop-nav{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:.86rem;
  font-weight:700;
}
.vh-nav-group{position:relative}
.vh-desktop-nav .vh-nav-group[open]{z-index:1651}
.vh-nav-group>summary,
.vh-nav-link{
  list-style:none;
  cursor:pointer;
  display:flex;
  min-height:48px;
  align-items:center;
  border-radius:12px;
  padding:0 11px;
}
.vh-nav-group>summary::-webkit-details-marker{display:none}
.vh-nav-group>summary::after{
  content:"+";
  margin-left:7px;
  color:#5c7c8e;
  font-size:1rem;
  line-height:1;
}
.vh-nav-group[open]>summary::after{content:"−"}
.vh-nav-group>summary:hover,
.vh-nav-link:hover{background:#edf7f8}

.vh-mega{
  position:absolute;
  top:calc(100% - 1px);
  left:50%;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:min(720px,90vw);
  gap:7px;
  padding:12px;
  border:1px solid var(--vh-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 26px 68px rgba(7,26,43,.18);
  z-index:1650;
  pointer-events:auto;
}
.vh-mega::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:100%;
  height:12px;
}
.vh-mega a{
  display:flex;
  min-height:56px;
  flex-direction:column;
  justify-content:center;
  border-radius:11px;
  padding:10px 12px;
}
.vh-mega a:hover{background:#eef9f8}
.vh-mega strong{font-size:.84rem}
.vh-mega span{
  margin-top:3px;
  color:#536575;
  font-size:.7rem;
  font-weight:500;
  line-height:1.4;
}
.vh-mega--compact{
  width:min(360px,88vw);
  grid-template-columns:1fr;
}
.vh-mega--specialties{
  width:min(820px,92vw);
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.vh-nav-cta{
  display:inline-flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  margin-left:6px;
  padding:0 20px;
  border-radius:999px;
  background:var(--vh-ink);
  color:#fff;
  transition:transform .2s ease,background .2s ease;
}
.vh-nav-cta:hover{
  transform:translateY(-2px);
  background:var(--vh-navy-2);
}

.vh-mobile-nav{display:none}

/* universal footer */
.vh-footer{
  background:var(--vh-ink);
  color:#a8c2cf;
}
.vh-footer__grid{
  display:grid;
  grid-template-columns:1.1fr .78fr .9fr 1.35fr .9fr;
  gap:30px;
  padding:48px 0 34px;
}
.vh-footer__brand{min-width:0}
.vh-footer__logo{
  display:inline-flex;
  min-height:54px;
  align-items:center;
}
.vh-footer__logo img{
  width:142px;
  height:auto;
  object-fit:contain;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
  /* makes the dark logo readable on navy without a white box */
  filter:brightness(0) invert(1);
  opacity:.92;
}
.vh-footer__brand p{
  max-width:275px;
  margin:18px 0 14px;
  color:#9db9c7;
  font-size:.9rem;
  line-height:1.72;
}
.vh-footer__brand>a:last-child{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  color:var(--vh-mint);
  font-size:.84rem;
  font-weight:800;
}
.vh-footer__group{border:0}
.vh-footer__group>summary{
  pointer-events:none;
  list-style:none;
  display:flex;
  min-height:42px;
  align-items:center;
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.vh-footer__group>summary::-webkit-details-marker{display:none}
.vh-footer__links{
  display:grid!important;
  gap:4px;
}
.vh-footer__links a,
.vh-footer__links address{
  min-height:44px;
  color:#9db9c7;
  font-size:.78rem;
  line-height:1.5;
}
.vh-footer__links a{
  display:flex;
  align-items:center;
}
.vh-footer__links a:hover{color:var(--vh-mint)}
.vh-footer__specialties .vh-footer__links{
  grid-template-columns:1fr 1fr;
  column-gap:14px;
}
.vh-footer__bottom{
  display:flex;
  min-height:66px;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid rgba(255,255,255,.10);
  color:#9db9c7;
  font-size:.76rem;
}
.vh-footer__bottom a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
}

/* shared floating WhatsApp */
.vh-whatsapp{
  position:fixed;
  z-index:1700;
  right:20px;
  bottom:20px;
  display:grid;
  width:56px;
  height:56px;
  place-items:center;
  border:1px solid rgba(255,255,255,.8);
  border-radius:50%;
  background:#25d366;
  color:#fff;
  box-shadow:0 14px 34px rgba(7,26,43,.23);
  transition:transform .25s ease,box-shadow .25s ease;
}
.vh-whatsapp:hover{
  transform:translateY(-3px) scale(1.035);
  box-shadow:0 18px 40px rgba(7,26,43,.28);
}
.vh-whatsapp svg{
  width:28px;
  height:28px;
  fill:currentColor;
}

@media(max-width:1050px){
  .vh-desktop-nav{display:none}
  .vh-mobile-nav{
    display:block;
    position:relative;
  }
  .vh-mobile-nav>summary{
    list-style:none;
    cursor:pointer;
    display:grid;
    width:48px;
    height:48px;
    place-items:center;
    border:1px solid var(--vh-line);
    border-radius:50%;
    background:#fff;
  }
  .vh-mobile-nav>summary::-webkit-details-marker{display:none}
  .vh-burger,
  .vh-burger::before,
  .vh-burger::after{
    content:"";
    display:block;
    position:relative;
    width:20px;
    height:2px;
    background:var(--vh-ink);
  }
  .vh-burger::before{position:absolute;top:-6px}
  .vh-burger::after{position:absolute;top:6px}
  .vh-mobile-nav>nav{
    position:absolute;
    top:58px;
    right:0;
    width:min(380px,calc(100vw - 28px));
    max-height:76vh;
    overflow:auto;
    padding:12px;
    border:1px solid var(--vh-line);
    border-radius:18px;
    background:#fff;
    box-shadow:0 24px 60px rgba(7,26,43,.18);
  }
  .vh-mobile-nav .vh-nav-group{
    border-bottom:1px solid var(--vh-line);
  }
  .vh-mobile-nav .vh-nav-group>summary,
  .vh-mobile-nav .vh-nav-link{
    width:100%;
    justify-content:space-between;
  }
  .vh-mobile-nav .vh-mega{
    position:static;
    transform:none;
    width:100%;
    grid-template-columns:1fr;
    border:0;
    box-shadow:none;
    padding:6px 0 10px;
  }
  .vh-mobile-nav .vh-nav-cta{
    width:100%;
    margin:10px 0 0;
  }
  .vh-footer__grid{
    grid-template-columns:1.1fr 1fr 1fr;
  }
  .vh-footer__specialties{grid-column:span 2}
}

@media(max-width:720px){
  :root{--vh-shell:min(100% - 28px,1180px)}
  .vh-topbar__inner>span{display:none}
  .vh-topbar__inner{justify-content:center}
  .vh-topbar__links{
    width:100%;
    justify-content:space-between;
    gap:10px;
  }
  .vh-topbar{font-size:.66rem}
  .vh-header__inner{min-height:68px}
  .vh-brand img{width:112px}

  .vh-footer__grid{
    grid-template-columns:1fr;
    gap:0;
    padding:38px 0 24px;
  }
  .vh-footer__brand{padding-bottom:20px}
  .vh-footer__logo img{width:132px}
  .vh-footer__group{
    border-top:1px solid rgba(255,255,255,.10);
  }
  .vh-footer__group>summary{
    pointer-events:auto;
    cursor:pointer;
    justify-content:space-between;
    min-height:54px;
  }
  .vh-footer__group>summary::after{
    content:"+";
    color:var(--vh-mint);
    font-size:1.18rem;
  }
  .vh-footer__group[open]>summary::after{content:"−"}
  .vh-footer__group:not([open])>.vh-footer__links{display:none!important}
  .vh-footer__group[open]>.vh-footer__links{
    display:grid!important;
    padding:0 0 16px;
  }
  .vh-footer__specialties{grid-column:auto}
  .vh-footer__specialties .vh-footer__links{grid-template-columns:1fr}
  .vh-footer__bottom{
    min-height:0;
    flex-direction:column;
    align-items:flex-start;
    padding:15px 0 20px;
  }
  .vh-whatsapp{
    right:15px;
    bottom:15px;
    width:52px;
    height:52px;
  }
  .vh-whatsapp svg{width:26px;height:26px}
}

@media(max-width:1050px){
  .vh-mobile-nav .vh-mega a,
  .vh-mobile-nav .vh-nav-link{
    min-height:48px;
  }
}
/* =========================================
   FOOTER MENU SPACING FIX — DESKTOP
========================================= */

@media (min-width: 721px) {

  .vh-footer__links {
    gap: 2px;
  }

  .vh-footer__links a,
  .vh-footer__links address {
    min-height: 32px;
    line-height: 1.45;
  }

  .vh-footer__group > summary {
    min-height: 36px;
    margin-bottom: 6px;
  }

  .vh-footer__grid {
    padding-top: 42px;
    padding-bottom: 28px;
  }
}
/* =========================================
   SERVICES MENU — REQUEST A DEMO CTA
========================================= */

@media (min-width: 1051px) {

  /* Last link inside Services mega menu */
  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child {
    grid-column: 1 / -1;

    width: min(100%, 460px);
    min-height: 68px;

    justify-self: center;
    align-items: center;
    justify-content: center;

    margin-top: 8px;
    padding: 13px 26px;

    border: 1px solid rgba(17, 125, 143, 0.12);
    border-radius: 16px;

    background:
      linear-gradient(
        135deg,
        #dff9ef 0%,
        #8bf0c6 100%
      );

    text-align: center;

    box-shadow:
      0 12px 28px rgba(7, 26, 43, 0.08);

    transition:
      transform 0.22s ease,
      box-shadow 0.22s ease,
      background 0.22s ease;
  }

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child strong {
    color: #071a2b;
    font-size: 0.95rem;
    font-weight: 800;
  }

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child span {
    margin-top: 4px;

    color: #315e68;

    font-size: 0.72rem;
    font-weight: 600;
  }

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child:hover {
    background:
      linear-gradient(
        135deg,
        #c9f5e3 0%,
        #7483e6 100%
      );

    transform: translateY(-2px);

    box-shadow:
      0 17px 34px rgba(7, 26, 43, 0.12);
  }
}
/* =========================================
   SERVICES MENU — REQUEST A DEMO CTA
========================================= */

@media (min-width: 1051px) {

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child {
    grid-column: 1 / -1;

    width: min(100%, 460px);
    min-height: 68px;

    justify-self: center;
    align-items: center;
    justify-content: center;

    margin-top: 8px;
    padding: 13px 26px;

    border: 1px solid rgba(89, 215, 230, 0.22);
    border-radius: 16px;

    background: #082944;

    text-align: center;

    box-shadow:
      0 12px 28px rgba(7, 26, 43, 0.14);

    transition:
      transform 0.22s ease,
      background 0.22s ease,
      box-shadow 0.22s ease;
  }

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child strong {
    color: #ffffff;

    font-size: 0.95rem;
    font-weight: 800;
  }

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child span {
    margin-top: 4px;

    color: #c8dce6;

    font-size: 0.72rem;
    font-weight: 500;
  }

  .vh-desktop-nav
  .vh-nav-group:first-child
  > .vh-mega
  > a:last-child:hover {
    background: #0b3657;

    border-color: rgba(139, 240, 198, 0.35);

    transform: translateY(-2px);

    box-shadow:
      0 17px 36px rgba(7, 26, 43, 0.20);
  }
}