/* Loaded after style.css to keep the footer compact on every page. */
.footer { padding: 0 0 .75rem; }
.footer-cta { display:flex; align-items:center; min-height:0; padding:1.1rem 0; margin:0 0 1.25rem; border-bottom-color:rgba(255,255,255,.12); }
.footer-cta-label { display:none; }
.footer-cta-title { max-width:none; margin:0; font-size:clamp(1.3rem,2.25vw,2rem); line-height:1.12; letter-spacing:-.025em; }
.footer-grid { grid-template-columns:1.15fr .8fr 1fr .72fr; gap:1.25rem; margin-bottom:1.25rem; }
.footer-logo { height:48px; width:auto; max-width:min(100%,260px); }
.footer-desc { display:none; }
.footer-col-brand { gap:.45rem; }
.footer-title { margin-bottom:.65rem; font-size:.86rem; }
.footer-links { gap:.42rem; }
.footer-link,.footer-contact-info { font-size:.8rem; }
.footer-contact-info { gap:.35rem; line-height:1.45; }
.footer-social-links { margin-top:.45rem; }
.social-icon-btn { width:30px; height:30px; }
.social-icon-btn svg { width:15px; height:15px; }
.footer .btn { min-height:36px; padding:.45rem .8rem; font-size:.75rem; }
.footer-bottom { padding-top:.75rem; }

@media (max-width:768px) {
  .footer-cta { padding:.9rem 0; margin-bottom:1rem; }
  .footer-cta-title { font-size:1.25rem; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem .9rem; margin-bottom:1rem; }
  .footer-contact-info { font-size:.75rem; }
  .footer-logo { height:54px; max-width:min(100%,280px); }
}

/* Persistent black navigation with the supplied responsive logo artwork. */
.navbar,
.navbar.navbar-scrolled {
  background:#08090c;
  border-color:rgba(255,255,255,.14);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
}
.navbar-logo picture { display:flex; align-items:center; }
.navbar-logo img,
.navbar-scrolled .navbar-logo img { height:34px; width:auto; max-width:230px; filter:none; }
.navbar .nav-link,
.navbar.navbar-scrolled .nav-link { color:#fff; }
.navbar .nav-link:hover { color:#f18a27; }
.mobile-nav-toggle { background:#000 !important; border-color:#000 !important; }
.mobile-nav-toggle span,
.navbar-scrolled .mobile-nav-toggle span { background:#fff; }
@media (max-width:1024px) {
  .navbar,
  .navbar.navbar-scrolled { background:#ffffff; }
  .navbar-logo img,
  .navbar-scrolled .navbar-logo img { height:30px; max-width:155px; }
}

/* Case-study Global Reach map. */
.home-mono-page .featured-section { background:#1d1f20; color:#f5f6f6; }
.home-mono-page .featured-section > .container > .section-label { color:#00a99d !important; }
.home-mono-page .featured-section > .container > .section-title { color:#fff !important; }
.legacy-featured-grid { display:none !important; }
.global-reach-layout { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr); gap:clamp(2rem,5vw,5.5rem); align-items:start; margin-top:2.5rem; }
.global-map-copy { padding:1rem 0; }
.global-map-copy h3 { margin:.8rem 0 1rem; font-size:clamp(2rem,3.8vw,4rem); line-height:.93; }
.global-map-copy p { max-width:30ch; color:#000000; line-height:1.6; }
.global-map-stage { grid-column:2; grid-row:1 / span 2; position:sticky; top:94px; height:min(72vh,670px); min-height:460px; overflow:hidden; border:1px solid #26383b; border-radius:1.15rem; background:#101416; box-shadow:0 22px 55px rgba(12,18,28,.22); }
#case-study-map { width:100%; height:100%; background:#101416; }
.global-country-steps { grid-column:1; display:flex; flex-direction:column; gap:0; }
.global-country-step { min-height:31vh; display:flex; flex-direction:column; justify-content:center; border-bottom:1px solid rgba(255,255,255,.16); }
.global-country-step span { display:none; }
.global-country-step h3 { margin:.4rem 0 0; color:#859093; font-size:clamp(1.15rem,2vw,1.7rem); transition:color .2s,transform .2s; }
.global-country-step.active h3 { color:#fff; transform:translateX(.35rem); }
.case-leaflet-marker { width:22px!important; height:22px!important; border:3px solid #e9fffd; border-radius:50%; background:#009c91; box-shadow:0 0 0 7px rgba(0,156,145,.22); transition:transform .2s,background .2s; }
.case-leaflet-marker span { position:absolute; top:24px; left:50%; color:#d8fffb; font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transform:translateX(-50%); white-space:nowrap; text-shadow:0 1px 3px #000; }
.case-leaflet-marker.active { background:#00d8c6; transform:scale(1.4); box-shadow:0 0 0 10px rgba(0,216,198,.2),0 0 24px rgba(0,216,198,.85); }
@media (max-width:1100px) { .global-reach-layout { grid-template-columns:minmax(260px,.72fr) minmax(300px,1fr); } .global-map-copy { grid-column:1; } .global-map-stage { grid-column:2; } .global-country-steps { grid-column:1; } }
@media (max-width:700px) { .global-reach-layout { display:flex; flex-direction:column; gap:1.25rem; } .global-map-copy { padding:0; } .global-map-copy p { max-width:100%; } .global-map-stage { position:relative; top:auto; width:100%; height:55vh; min-height:360px; } .global-country-steps { width:100%; } .global-country-step { min-height:22vh; } }

/* Final responsive case-study card; this file loads after the main stylesheet. */
@media (max-width:1024px) {
  .global-map-event { position:relative!important; overflow:visible!important; padding:1rem!important; }
  .global-map-event-image-link { position:relative; display:block!important; width:min(78%,520px)!important; margin:0 auto!important; opacity:1!important; visibility:visible!important; }
  .global-map-event-image { display:block!important; width:100%!important; height:auto!important; margin:0!important; aspect-ratio:16/9!important; object-fit:cover; }
  .global-map-event-actions { display:block!important; padding:.85rem 3.5rem 0!important; text-align:center; }
  .global-map-event-copy,.global-map-event-title { display:block!important; width:100%!important; opacity:1!important; visibility:visible!important; }
  .global-map-event-title { margin:0!important; color:#fff!important; font-size:clamp(1rem,3.4vw,1.45rem)!important; line-height:1.15!important; overflow:visible!important; -webkit-line-clamp:unset!important; -webkit-box-orient:initial!important; }
  .global-map-event-nav { position:absolute!important; top:16px!important; z-index:50!important; display:inline-grid!important; place-items:center; width:46px!important; height:46px!important; min-width:46px!important; margin:0!important; padding:0!important; color:#fff!important; background:#ef3327!important; border:2px solid #ff9a32!important; border-radius:50%!important; box-shadow:0 5px 18px rgba(0,0,0,.5)!important; font-size:1.4rem!important; line-height:1!important; opacity:1!important; visibility:visible!important; transform:none!important; -webkit-appearance:none; appearance:none; }
  .global-map-event-prev { left:8px!important; }
  .global-map-event-next { right:8px!important; }
}
@media (max-width:560px) {
  .global-map-event-image-link { width:74%!important; max-width:300px!important; }
  .global-map-event-actions { padding-inline:.25rem!important; }
  .global-map-event-title { font-size:clamp(.50rem,1.5vw,1.0rem)!important; }
  .global-map-event-nav { width:42px!important; height:42px!important; min-width:42px!important; }
}

/* Accessibility text must not become visible inside service brand cards. */
.services-mono-page .services-brand-card-head .sr-only {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
