/* ==========================================================================
   V9 Tech — site footer. Every selector is prefixed (#v9f / .v9f-*) or scoped
   to body.v9f-on, so nothing here can affect the header or page content.
   ========================================================================== */
#v9f{
  --f-blue:#0871B6; --f-deep:#064A79; --f-deeper:#05395E;
  --f-cyan:#5FD0F5;
  --f-txt:#ffffff; --f-mut:rgba(255,255,255,.80); --f-line:rgba(255,255,255,.16);
  --f-container:1280px;
  background:linear-gradient(180deg,var(--f-blue) 0%,var(--f-deep) 62%,var(--f-deeper) 100%);
  color:var(--f-txt);
  font-size:16px;line-height:1.6;
}
#v9f *,#v9f *::before,#v9f *::after{box-sizing:border-box;}
#v9f img{max-width:100%;height:auto;display:block;}
#v9f .v9f-container{width:100%;max-width:var(--f-container);margin:0 auto;padding-left:24px;padding-right:24px;}
#v9f a{color:var(--f-mut);text-decoration:none;transition:color .17s ease,transform .17s ease;}
#v9f a:hover{color:#fff;}
#v9f a:focus-visible,#v9f summary:focus-visible{outline:2px solid var(--f-cyan);outline-offset:3px;border-radius:4px;}
#v9f .v9f-ico{width:18px;height:18px;flex:0 0 18px;color:var(--f-cyan);}

/* ---------- A. CTA ---------- */
#v9f .v9f-cta{background:rgba(255,255,255,.07);border-bottom:1px solid var(--f-line);}
#v9f .v9f-cta__inner{display:flex;flex-direction:column;gap:22px;padding-top:34px;padding-bottom:34px;}
/* slim brand accent so the copy reads as a designed block, not loose text */
#v9f .v9f-cta__text{position:relative;padding-left:16px;}
#v9f .v9f-cta__text::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;
  border-radius:2px;background:var(--f-cyan);}
#v9f .v9f-cta__title{
  font-size:clamp(1.25rem,2.5vw,1.72rem);font-weight:800;color:#fff;margin:0 0 8px;
  line-height:1.28;letter-spacing:-.015em;text-wrap:balance;
}
#v9f .v9f-cta__sub{color:rgba(255,255,255,.88);margin:0;font-size:1.02rem;line-height:1.55;max-width:56ch;}
#v9f .v9f-cta__actions{display:flex;flex-wrap:wrap;gap:12px;}
#v9f .v9f-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 24px;border-radius:999px;font-weight:800;font-size:.96rem;
  border:2px solid transparent;cursor:pointer;letter-spacing:.01em;line-height:1.15;white-space:nowrap;
}
#v9f .v9f-btn--primary{background:#fff;color:var(--f-deep);}
#v9f .v9f-btn--primary:hover{background:#eaf6fd;color:var(--f-deeper);transform:translateY(-2px);}
#v9f .v9f-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
#v9f .v9f-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;transform:translateY(-2px);}
#v9f .v9f-btn--ghost .v9f-ico{color:#fff;}

/* ---------- B. MAIN ---------- */
#v9f .v9f-main{padding:44px 0 30px;}
#v9f .v9f-grid{display:grid;grid-template-columns:1fr;gap:8px;}
#v9f .v9f-col{min-width:0;}

/* column heading + short accent rule (identical for every column) */
#v9f .v9f-h{
  display:inline-block;font-size:1.03rem;font-weight:700;color:#fff;
  letter-spacing:.02em;padding-bottom:9px;position:relative;
}
#v9f .v9f-h::after{content:"";position:absolute;left:0;bottom:0;width:34px;height:3px;
  background:var(--f-cyan);border-radius:2px;}
#v9f .v9f-sub{
  font-size:.79rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--f-cyan);margin:16px 0 8px;
}
#v9f .v9f-sub:first-of-type{margin-top:14px;}
#v9f .v9f-list{list-style:none;margin:0;padding:0;}
#v9f .v9f-list li{margin-bottom:9px;}
#v9f .v9f-list a{display:inline-block;font-size:.95rem;line-height:1.65;}
#v9f .v9f-list a:hover{transform:translateX(3px);}

/* brand column */
#v9f .v9f-logo{display:inline-block;margin-bottom:14px;}
#v9f .v9f-logo__img{width:200px;height:auto;max-width:100%;}
#v9f .v9f-company{font-weight:700;color:#fff;margin:0 0 12px;font-size:1.02rem;}
#v9f .v9f-contact{list-style:none;margin:0;padding:0;display:grid;gap:11px;}
#v9f .v9f-contact li{display:flex;align-items:flex-start;gap:10px;}
#v9f .v9f-contact a{font-size:.95rem;line-height:1.55;}

/* connect column */
#v9f .v9f-social{display:flex;flex-wrap:wrap;gap:10px;}
#v9f .v9f-social__btn{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;
  border-radius:10px;background:rgba(255,255,255,.10);border:1px solid var(--f-line);
  color:#fff;font-weight:600;font-size:.92rem;
}
#v9f .v9f-social__btn:hover{background:rgba(255,255,255,.18);color:#fff;transform:translateY(-2px);}
#v9f .v9f-social__btn .v9f-ico{width:17px;height:17px;flex:0 0 17px;}
#v9f .v9f-apps{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
#v9f .v9f-apps__badge{height:42px;width:auto;border-radius:6px;}

/* mobile accordion (details/summary = native keyboard + a11y support) */
#v9f .v9f-acc{border-top:1px solid var(--f-line);padding:14px 0 4px;}
#v9f .v9f-acc__head{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  gap:12px;min-height:44px;
}
#v9f .v9f-acc__head::-webkit-details-marker{display:none;}
#v9f .v9f-acc__head::after{
  content:"";width:10px;height:10px;flex:0 0 10px;margin-right:4px;
  border-right:2px solid var(--f-cyan);border-bottom:2px solid var(--f-cyan);
  transform:rotate(45deg) translateY(-2px);transition:transform .18s ease;
}
#v9f .v9f-acc[open] > .v9f-acc__head::after{transform:rotate(225deg) translateY(-2px);}
#v9f .v9f-acc__body{padding-bottom:8px;}

/* ---------- C. BOTTOM ---------- */
#v9f .v9f-bottom{border-top:1px solid var(--f-line);background:rgba(0,0,0,.12);}
#v9f .v9f-bottom__inner{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding-top:18px;padding-bottom:18px;text-align:center;
}
#v9f .v9f-copy{margin:0;color:var(--f-mut);font-size:.88rem;}
#v9f .v9f-policy{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;}
#v9f .v9f-policy a{font-size:.88rem;}
#v9f .v9f-policy a:hover{color:#fff;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media(min-width:768px){
  #v9f .v9f-logo__img{width:240px;}
  #v9f .v9f-grid{grid-template-columns:1fr 1fr;gap:34px 40px;}
  #v9f .v9f-main{padding:56px 0 34px;}
  #v9f .v9f-cta__inner{flex-direction:row;align-items:center;justify-content:space-between;gap:28px;}
  #v9f .v9f-cta__actions{flex:0 0 auto;}
  #v9f .v9f-bottom__inner{flex-direction:row;justify-content:space-between;text-align:left;}
  /* from tablet up the accordion is always open and behaves as a plain column */
  #v9f .v9f-acc{border-top:0;padding:0;}
  #v9f .v9f-acc__head{cursor:default;min-height:0;display:block;}
  #v9f .v9f-acc__head::after{display:none;}
}
@media(min-width:1200px){
  #v9f .v9f-grid{grid-template-columns:1.25fr 1.15fr 1fr .95fr;gap:44px;}
  #v9f .v9f-main{padding:64px 0 38px;}
  #v9f .v9f-container{padding-left:32px;padding-right:32px;}
}

/* Floating contact widgets (chatbiz / back-to-top) sit fixed at the bottom-right
   and would otherwise sit on top of the copyright and policy links. We do not
   move the shared widget; we simply reserve a safe area inside the bottom bar so
   nothing is ever covered. Scoped to body.v9f-on. */
body.v9f-on #v9f .v9f-bottom__inner{padding-bottom:88px;}
@media(min-width:768px){
  body.v9f-on #v9f .v9f-bottom__inner{padding-bottom:18px;padding-right:104px;}
}
body.v9f-on #back-to-top,
body.v9f-on .back-to-top{z-index:9980;}

@media(prefers-reduced-motion:reduce){
  #v9f *,#v9f a,#v9f .v9f-btn{transition:none!important;}
  #v9f a:hover,#v9f .v9f-btn:hover,#v9f .v9f-social__btn:hover{transform:none!important;}
}
