
.cs-v41-footer{
  --f-purple:#8d1d92;
  --f-deep:#42115f;
  --f-orange:#f25722;
  --f-muted:#6e6975;
  --f-bg:#f7effb;
  --f-line:#e5d9e8;
  margin:0;
  color:#14131a;
  background:var(--f-bg);
}
.cs-v41-wrap{
  width:min(1220px,calc(100% - 44px));
  margin-inline:auto;
}

/* Offices */
.cs-v41-offices{
  padding:58px 0 70px;
  background:var(--f-bg);
}
.cs-v41-office-head{
  text-align:center;
  margin-bottom:28px;
}
.cs-v41-office-head h2{
  margin:0 0 12px;
  font-size:clamp(38px,3.3vw,50px);
  line-height:1.05;
  letter-spacing:-.045em;
  font-weight:850;
}
.cs-v41-office-head p{
  margin:0;
  color:var(--f-muted);
  font-size:17px;
  line-height:1.6;
}
.cs-v41-office-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  max-width:980px;
  margin:0 auto;
}
.cs-v41-office{
  position:relative;
  min-height:190px;
  overflow:hidden;
  padding:24px 205px 24px 20px;
  border:1px solid var(--f-line);
  border-radius:17px;
  background:#fff;
}
.cs-v41-country{
  font-size:15px;
  font-weight:850;
}
.cs-v41-company{
  margin:9px 0 11px;
  color:var(--f-purple);
  font-size:15px;
  font-weight:850;
}
.cs-v41-office address{
  margin:0;
  color:var(--f-muted);
  font-style:normal;
  font-size:14px;
  line-height:1.55;
}
.cs-v41-office-label{
  display:inline-flex;
  margin-top:10px;
  padding:5px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:850;
}
.cs-v41-office-label.orange{
  color:var(--f-orange);
  background:#fff0e3;
}
.cs-v41-office-label.purple{
  color:var(--f-purple);
  background:#f2e2f5;
}

/* decorative office art */
.cs-v41-city-art{
  position:absolute;
  right:13px;
  bottom:14px;
  width:180px;
  height:120px;
  opacity:.16;
  color:var(--f-purple);
}
.cs-v41-city-us i{
  position:absolute;
  bottom:0;
  width:15px;
  border:1px solid currentColor;
  border-bottom:0;
}
.cs-v41-city-us i:nth-child(1){left:12px;height:28px}
.cs-v41-city-us i:nth-child(2){left:34px;height:50px}
.cs-v41-city-us i:nth-child(3){left:57px;height:37px}
.cs-v41-city-us i:nth-child(4){left:82px;height:73px}
.cs-v41-city-us i:nth-child(5){left:111px;height:45px}
.cs-v41-city-us i:nth-child(6){left:140px;height:62px}
.cs-v41-city-art::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  border-bottom:1px solid currentColor;
}
.cs-v41-city-pk .dome{
  position:absolute;
  left:46px;
  bottom:20px;
  width:88px;
  height:48px;
  border:1px solid currentColor;
  border-radius:90px 90px 0 0;
}
.cs-v41-city-pk .minaret{
  position:absolute;
  bottom:20px;
  width:12px;
  height:74px;
  border:1px solid currentColor;
}
.cs-v41-city-pk .minaret.one{left:22px}
.cs-v41-city-pk .minaret.two{right:20px}

/* Footer main */
.cs-v41-footer-main{
  padding:0 0 46px;
}
.cs-v41-footer-grid{
  display:grid;
  grid-template-columns:1.2fr .72fr .86fr .92fr;
  gap:38px;
  align-items:start;
  padding-top:28px;
  border-top:1px solid var(--f-line);
}
.cs-v41-footer-brand{
  padding-right:28px;
  border-right:1px solid var(--f-line);
}
.cs-v41-footer-logo{
  display:inline-flex;
  align-items:center;
}
.cs-v41-footer-logo img{
  display:block;
  width:245px;
  max-width:100%;
  max-height:66px;
  object-fit:contain;
  object-position:left center;
}
.cs-v41-footer-brand p{
  max-width:430px;
  margin:15px 0 18px;
  color:var(--f-muted);
  font-size:15px;
  line-height:1.65;
}
.cs-v41-socials{
  display:flex;
  gap:10px;
}
.cs-v41-socials a{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:6px;
  background:var(--f-purple);
  color:#fff;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
  transition:.24s ease;
}
.cs-v41-socials a:hover{
  transform:translateY(-3px);
  background:var(--f-orange);
}

.cs-v41-footer-column{
  min-height:150px;
  padding-right:24px;
  border-right:1px solid var(--f-line);
}
.cs-v41-contact-column{
  padding-right:0;
  border-right:0;
}
.cs-v41-footer-column h4{
  margin:0 0 18px;
  color:#17151b;
  font-size:17px;
  line-height:1.2;
  font-weight:850;
}
.cs-v41-footer-column h4::after{
  content:"";
  display:block;
  width:38px;
  height:2px;
  margin-top:9px;
  background:var(--f-purple);
}
.cs-v41-footer-links{
  display:grid;
  gap:9px;
  margin:0;
  padding:0;
  list-style:none;
}
.cs-v41-footer-links li{
  margin:0;
  padding:0;
  list-style:none;
}
.cs-v41-footer-links a{
  color:var(--f-muted);
  font-size:14px;
  line-height:1.5;
  text-decoration:none;
}
.cs-v41-footer-links a:hover{
  color:var(--f-purple);
}
.cs-v41-contact-email{
  display:inline-block;
  color:var(--f-purple);
  font-size:14px;
  line-height:1.45;
  font-weight:850;
  text-decoration:none;
}
.cs-v41-registered{
  margin:10px 0 15px;
  color:var(--f-muted);
  font-size:14px;
  line-height:1.55;
}
.cs-v41-contact-links{
  margin-top:12px;
}

/* Legal bottom */
.cs-v41-footer-bottom{
  padding:18px 0;
  color:#fff;
  background:linear-gradient(105deg,#34104f 0%,#71166f 45%,#c52b59 73%,#f05a1f 100%);
}
.cs-v41-footer-bottom-inner{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:22px;
  font-size:12px;
  line-height:1.45;
}
.cs-v41-copyright{
  white-space:nowrap;
  font-weight:650;
}
.cs-v41-legal-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.cs-v41-legal-links li{
  display:flex;
  align-items:center;
  margin:0;
  padding:0;
  list-style:none;
}
.cs-v41-legal-links li:not(:last-child)::after{
  content:"•";
  margin:0 8px;
  color:rgba(255,255,255,.8);
}
.cs-v41-legal-links a{
  color:#fff;
  text-decoration:none;
  white-space:nowrap;
}
.cs-v41-legal-links a:hover{
  text-decoration:underline;
}
.cs-v41-ai-line{
  white-space:nowrap;
  font-weight:700;
}
.cs-v41-back-top{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:999px;
  color:#fff;
  white-space:nowrap;
  text-decoration:none;
  font-weight:700;
}

@media(max-width:1050px){
  .cs-v41-footer-grid{
    grid-template-columns:1fr 1fr;
  }
  .cs-v41-footer-brand{
    grid-column:1/-1;
    padding-right:0;
    padding-bottom:25px;
    border-right:0;
    border-bottom:1px solid var(--f-line);
  }
  .cs-v41-footer-bottom-inner{
    grid-template-columns:1fr 1fr;
  }
  .cs-v41-legal-links{
    justify-content:flex-start;
  }
}
@media(max-width:760px){
  .cs-v41-wrap{
    width:calc(100% - 26px);
  }
  .cs-v41-office-grid{
    grid-template-columns:1fr;
  }
  .cs-v41-office{
    padding-right:160px;
  }
  .cs-v41-city-art{
    width:140px;
  }
  .cs-v41-footer-grid{
    grid-template-columns:1fr;
  }
  .cs-v41-footer-brand,
  .cs-v41-footer-column{
    grid-column:auto;
    min-height:0;
    padding-right:0;
    padding-bottom:22px;
    border-right:0;
    border-bottom:1px solid var(--f-line);
  }
  .cs-v41-contact-column{
    border-bottom:0;
  }
  .cs-v41-footer-bottom-inner{
    grid-template-columns:1fr;
    align-items:start;
    gap:11px;
  }
  .cs-v41-legal-links{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .cs-v41-copyright,
  .cs-v41-ai-line{
    white-space:normal;
  }
}
@media(max-width:440px){
  .cs-v41-office{
    padding:20px;
  }
  .cs-v41-city-art{
    display:none;
  }
}


/* ============================================================
   V3.7 — FOOTER MARKET IMAGES + FLAGS
============================================================ */
.cs-v41-country{
  display:flex;
  align-items:center;
  gap:8px;
}

.cs-v41-flag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:25px;
  height:25px;
  flex:0 0 25px;
  font-size:19px;
  line-height:1;
  border-radius:50%;
  background:#fff;
  box-shadow:0 3px 10px rgba(55,25,65,.08);
}

.cs-v41-office{
  padding-right:215px;
}

.cs-v41-market-image{
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:205px;
  overflow:hidden;
  opacity:.78;
  pointer-events:none;
}

.cs-v41-market-image::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.70) 16%,rgba(255,255,255,0) 56%);
}

.cs-v41-market-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.75) contrast(.96);
}

.cs-v41-market-image-us img{
  object-position:center 48%;
}

.cs-v41-market-image-pk img{
  object-position:center 46%;
}

/* Legal bar now has copyright, legal menu and Back to Top only. */
.cs-v41-footer-bottom-inner{
  grid-template-columns:auto 1fr auto !important;
}

.cs-v41-ai-line{
  display:none !important;
}

@media(max-width:1050px){
  .cs-v41-footer-bottom-inner{
    grid-template-columns:1fr 1fr !important;
  }
}

@media(max-width:760px){
  .cs-v41-office{
    padding-right:145px;
  }

  .cs-v41-market-image{
    width:138px;
    opacity:.58;
  }

  .cs-v41-footer-bottom-inner{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:440px){
  .cs-v41-office{
    padding-right:20px;
  }

  .cs-v41-market-image{
    position:relative;
    width:calc(100% + 40px);
    height:145px;
    margin:18px -20px -20px;
    opacity:.70;
  }

  .cs-v41-market-image::before{
    background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.25) 42%,rgba(255,255,255,0) 100%);
  }
}


/* ============================================================
   V4.5 — FOOTER MARKET CARD + LOGO ANIMATIONS
============================================================ */

/* Only hide/offset elements after JS confirms animation support. */
.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office{
  opacity:0;
  will-change:transform,opacity;
  transition:
    transform .82s cubic-bezier(.16,1,.3,1),
    opacity .62s ease,
    box-shadow .45s ease,
    border-color .45s ease;
}

/* US card enters from the left. */
.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office:nth-child(1){
  transform:translate3d(-54px,28px,0) rotateY(3deg);
}

/* Pakistan card enters from the right. */
.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office:nth-child(2){
  transform:translate3d(54px,28px,0) rotateY(-3deg);
}

.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office.is-visible{
  opacity:1;
  transform:translate3d(0,0,0) rotateY(0);
}

/* Subtle image zoom resolves as each card arrives. */
.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office .cs-v41-market-image img{
  transform:scale(1.075);
  transition:
    transform 1.18s cubic-bezier(.16,1,.3,1),
    filter .45s ease;
}

.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office.is-visible .cs-v41-market-image img{
  transform:scale(1);
}

/* Elegant hover lift after reveal. */
@media(pointer:fine){
  .cs-v41-footer .cs-v41-office.is-visible:hover{
    transform:translateY(-7px);
    box-shadow:0 22px 46px rgba(75,28,88,.12);
    border-color:rgba(141,29,146,.18);
  }

  .cs-v41-footer .cs-v41-office.is-visible:hover .cs-v41-market-image img{
    transform:scale(1.025);
  }
}

/* Footer logo reveal. */
.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-footer-logo{
  position:relative;
  display:inline-flex;
  overflow:hidden;
  border-radius:10px;
  opacity:0;
  transform:translate3d(0,18px,0) scale(.92);
  filter:blur(4px);
  transition:
    opacity .55s ease,
    transform .82s cubic-bezier(.16,1,.3,1),
    filter .65s ease;
}

.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-footer-logo.is-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
}

/* One restrained shine pass when logo becomes visible. */
.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-footer-logo::after{
  content:"";
  position:absolute;
  inset:-25% auto -25% -45%;
  width:30%;
  transform:skewX(-18deg);
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.82),
    transparent
  );
  pointer-events:none;
  opacity:0;
}

.cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-footer-logo.is-visible::after{
  animation:csV45FooterLogoShine 1.05s .38s ease forwards;
}

/* Keep existing logo hover interaction premium rather than bouncy. */
@media(pointer:fine){
  .cs-v41-footer .cs-v41-footer-logo-image{
    transition:
      transform .35s cubic-bezier(.16,1,.3,1),
      filter .35s ease;
  }

  .cs-v41-footer .cs-v41-footer-logo:hover .cs-v41-footer-logo-image{
    transform:translateY(-2px) scale(1.025);
    filter:drop-shadow(0 8px 15px rgba(103,26,119,.15));
  }
}

@keyframes csV45FooterLogoShine{
  0%{
    left:-45%;
    opacity:0;
  }
  20%{
    opacity:.75;
  }
  100%{
    left:125%;
    opacity:0;
  }
}

/* Mobile uses vertical motion only — avoids horizontal overflow. */
@media(max-width:760px){
  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office:nth-child(1),
  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office:nth-child(2){
    transform:translate3d(0,34px,0) scale(.97);
  }

  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office.is-visible{
    transform:translate3d(0,0,0) scale(1);
  }
}

/* Accessibility: no movement for reduced-motion users. */
@media(prefers-reduced-motion:reduce){
  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office,
  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-footer-logo,
  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-office .cs-v41-market-image img{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
    animation:none !important;
  }

  .cs-v41-footer.cs-v45-footer-anim-ready .cs-v41-footer-logo::after{
    display:none !important;
  }
}


/* ============================================================
   V4.6 — FOOTER LOGO HOVER CLIP FIX
============================================================ */

/*
 * The logo hover scale from v4.5 was being clipped by the logo link box.
 * Give the image a small safe area and allow the scaled artwork to render
 * beyond its original bounds.
 */
.cs-v41-footer .cs-v41-footer-logo{
  overflow:visible !important;
  padding:6px !important;
  margin:-6px !important;
  border-radius:12px !important;
}

/* Keep the image itself fully visible during hover / entrance animation. */
.cs-v41-footer .cs-v41-footer-logo-image{
  display:block !important;
  max-width:100% !important;
  height:auto !important;
  transform-origin:center center !important;
  overflow:visible !important;
}

/*
 * The shine sweep no longer relies on the anchor clipping its edges.
 * Restrict it visually to the logo area with clip-path instead.
 */
.cs-v41-footer .cs-v41-footer-logo::after{
  clip-path:inset(0 round 10px);
}

/* Slightly reduce the hover enlargement to keep the effect elegant. */
@media(pointer:fine){
  .cs-v41-footer .cs-v41-footer-logo:hover .cs-v41-footer-logo-image{
    transform:translateY(-2px) scale(1.018) !important;
  }
}


/* ============================================================
   V4.1 FOOTER CONTACT / ADDRESS ALIGNMENT UPDATE
   ACF and CMS configuration intentionally untouched.
============================================================ */

/* Make office cards use matching vertical content geometry */
.cs-v41-office-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:100%;
}
.cs-v41-country{
  display:flex;
  align-items:center;
  gap:7px;
}
.cs-v41-office address{
  min-height:calc(4 * 1.55em);
}
.cs-v41-office-label{
  margin-top:12px;
}

/* Proper brand SVGs instead of text approximations */
.cs-v41-socials a{
  padding:0;
}
.cs-v41-socials svg{
  display:block;
  width:16px;
  height:16px;
  fill:currentColor;
}
.cs-v41-socials svg rect,
.cs-v41-socials svg circle{
  vector-effect:non-scaling-stroke;
}

/* Full Contact address requested for the global footer */
.cs-v41-contact-details{
  max-width:300px;
}
.cs-v41-contact-company{
  display:block;
  margin:0 0 10px;
  color:var(--f-purple);
  font-size:15px;
  line-height:1.35;
  font-weight:850;
}
.cs-v41-contact-address{
  margin:0;
  color:var(--f-muted);
  font-style:normal;
  font-size:14px;
  line-height:1.55;
}
.cs-v41-contact-emails{
  display:grid;
  gap:5px;
  margin-top:14px;
}
.cs-v41-contact-emails a{
  color:var(--f-purple);
  font-size:14px;
  line-height:1.45;
  font-weight:850;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.cs-v41-contact-emails a:hover{
  color:var(--f-orange);
}
.cs-v41-contact-links{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--f-line);
}

@media(max-width:760px){
  .cs-v41-office address{
    min-height:0;
  }
}


/* ============================================================
   V10.0 — FOOTER EMAIL + FLOATING BACK-TO-TOP
============================================================ */

/* Contact emails should not be bold. */
.cs-v41-contact-emails a,
.cs-global-contact-emails a{
  font-weight:500 !important;
}

/* Remove legacy rectangular back-to-top controls if stale markup remains. */
.cs-v41-back-to-top,
.cs-global-footer-bottom .back-to-top,
.cs-global-footer-bottom [href="#top"]:not(.cs-global-back-to-top-round){
  display:none !important;
}

/* Sticky round control */
.cs-global-back-to-top-round{
  position:fixed !important;
  z-index:9998 !important;
  right:22px !important;
  bottom:22px !important;
  width:48px !important;
  height:48px !important;
  display:grid !important;
  place-items:center !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.35) !important;
  border-radius:50% !important;
  color:#fff !important;
  background:linear-gradient(135deg,#7b1688,#b5288e 55%,#f05b20) !important;
  box-shadow:0 12px 28px rgba(80,25,91,.24) !important;
  text-decoration:none !important;
  cursor:pointer;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    filter .22s ease !important;
}

.cs-global-back-to-top-round:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 17px 34px rgba(80,25,91,.30) !important;
  filter:saturate(1.08);
}

.cs-global-back-to-top-round:focus-visible{
  outline:3px solid rgba(240,91,32,.30);
  outline-offset:4px;
}

.cs-global-back-to-top-round svg{
  display:block;
  width:21px;
  height:21px;
  fill:currentColor;
}

@media(max-width:720px){
  .cs-global-back-to-top-round{
    right:15px !important;
    bottom:15px !important;
    width:44px !important;
    height:44px !important;
  }
}


/* ============================================================
   V10.1 — REMOVE LEGACY FOOTER BACK TO TOP
============================================================ */
.cs-v41-back-top{
  display:none !important;
}
