/* 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:#ffffff; transition: color 0.25s ease; }
.navbar .nav-link:hover,
.navbar.navbar-scrolled .nav-link:hover,
.mobile-nav-overlay .nav-link:hover { color:#ffd700 !important; }
.navbar .nav-link.active,
.navbar.navbar-scrolled .nav-link.active,
.mobile-nav-overlay .nav-link.active { color:#ffd700 !important; font-weight: 600; }
.navbar .nav-link::after,
.mobile-nav-overlay .nav-link::after { background:#ffd700 !important; }
.navbar .nav-link.active::after,
.navbar .nav-link:hover::after,
.mobile-nav-overlay .nav-link.active::after,
.mobile-nav-overlay .nav-link:hover::after { background:#ffd700 !important; transform:scaleX(1) !important; }
.navbar .nav-cta.active,
.navbar .nav-cta:hover { color:#000000 !important; background-color:#ffd700 !important; border-color:#ffd700 !important; box-shadow:0 0 15px rgba(255, 215, 0, 0.4) !important; }
.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;
}

/* Case-study editorial rows: every uploaded visual stays with readable copy. */
.case-story-row {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  margin-bottom:clamp(3rem,7vw,7rem);
}
.case-story-row-reverse .case-story-media { order:2; }
.case-story-row-reverse .case-study-copy { order:1; }
.case-story-row > .case-study-copy:only-child { grid-column:1/-1; max-width:78ch; }
.case-story-media { margin:0; min-width:0; }
.case-story-media img,
.case-story-media .case-study-hero-image {
  display:block;
  width:100%;
  height:auto;
  max-height:680px;
  margin:0;
  border-radius:1.25rem;
  object-fit:contain;
  background:#f2f2f0;
}
#cs-gallery-grid figcaption {
  padding:.85rem 1rem;
  color:#45474d;
  font-size:.9rem;
  line-height:1.45;
  background:#f2f2f0;
}

/* Case-study pages use a dark footer; prevent page-copy color rules leaking in. */
.case-detail-tech-page .footer,
.case-detail-tech-page .footer :is(h2,h3,h4,p,strong,span,a) { color:#f7f7f7!important; }
.case-detail-tech-page .footer .footer-contact-info,
.case-detail-tech-page .footer .footer-contact-info :is(p,a,span,strong),
.case-detail-tech-page .footer .footer-link { color:#f7f7f7!important; opacity:1!important; }
.case-detail-tech-page .footer .footer-title { color:#fff!important; }
.case-detail-tech-page .footer .footer-copyright { color:rgba(255,255,255,.72)!important; }

@media (min-width:901px) {
  .home-mono-page .dept-scroll-block { padding-right:clamp(5rem,7vw,8rem); }
}

@media (max-width:900px) {
  .case-story-row { grid-template-columns:1fr; gap:1.5rem; }
  .case-story-row-reverse .case-story-media,
  .case-story-row-reverse .case-study-copy { order:initial; }
}

/* Final case-study listing: one coherent card with a compact action row. */
.case-studies-tech-page .case-study-card-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:clamp(1.25rem,2.5vw,2.25rem)!important;
}
.case-studies-tech-page .case-study-list-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  border:1px solid #dededb!important;
  border-radius:1.25rem!important;
  background:#fff!important;
  box-shadow:0 12px 35px rgba(11,12,16,.07)!important;
}
.case-studies-tech-page .case-study-list-card:hover {
  transform:translateY(-6px);
  border-color:#f18a27!important;
  box-shadow:0 22px 48px rgba(11,12,16,.13)!important;
}
.case-studies-tech-page .case-study-list-card .project-img-box {
  display:block;
  height:auto;
  aspect-ratio:16/10;
  background:#ececea;
}
.case-studies-tech-page .case-study-list-card .project-img { object-fit:cover; }
.case-studies-tech-page .case-study-list-card .project-info-box {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:clamp(1.25rem,2vw,1.75rem)!important;
  background:#fff!important;
}
.case-studies-tech-page .case-study-list-card .project-meta {
  gap:.55rem;
  margin-bottom:.8rem;
  color:#d74a22!important;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.case-studies-tech-page .case-study-list-card .project-title {
  margin:0 0 .85rem;
  font-size:clamp(1.25rem,1.7vw,1.65rem);
  line-height:1.12;
}
.case-studies-tech-page .case-study-list-card .project-summary {
  display:-webkit-box;
  margin:0 0 1.25rem;
  overflow:hidden;
  color:#5d5e63!important;
  line-height:1.65;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
}
.case-studies-tech-page .case-study-list-card .project-footer {
  margin-top:auto;
  padding-top:1rem;
  border-top:1px solid #e6e6e3;
}
.case-studies-tech-page .case-study-list-card .project-link {
  display:flex;
  width:100%;
  align-items:center;
  justify-content:space-between;
  color:#0b0c10!important;
  font-weight:800;
  text-decoration:none;
}
.case-studies-tech-page .case-study-list-card .project-link::after { content:none; }
.case-studies-tech-page .case-study-list-card .project-link:hover { color:#d74a22!important; }

/* Editorial case-study detail: brand-led, image-forward, and fully dynamic. */
.case-detail-tech-page .case-detail-editorial {
  padding:clamp(7rem,10vw,9rem) 0 clamp(4rem,8vw,7rem);
  color:#111318;
  background:#fff;
}
.case-detail-navline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:1.25rem;
  border-bottom:1px solid #dededb;
}
.case-detail-back,.case-detail-brand {
  color:#d74a22!important;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.case-detail-intro { padding-top:clamp(2.5rem,5vw,5rem); }
.case-detail-intro h1 {
  max-width:1100px;
  margin:.5rem 0 1.5rem;
  color:#0b0c10!important;
  font-size:clamp(2.4rem,5.7vw,5.8rem);
  line-height:.98;
  letter-spacing:-.05em;
}
.case-detail-deck {
  max-width:850px;
  margin:0 0 clamp(2rem,4vw,3.5rem);
  color:#55575d!important;
  font-size:clamp(1.05rem,1.6vw,1.35rem);
  line-height:1.65;
}
.case-detail-meta {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0;
  border-block:1px solid #dededb;
}
.case-detail-meta>div { padding:1.2rem 1rem 1.2rem 0; }
.case-detail-meta dt {
  margin-bottom:.35rem;
  color:#8a8b90;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.case-detail-meta dd { margin:0; color:#111318; font-weight:700; line-height:1.35; }
.case-detail-hero { padding-top:clamp(2rem,4vw,4rem); }
.case-detail-hero img {
  display:block;
  width:100%;
  max-height:760px;
  object-fit:contain;
  border-radius:1.25rem;
  background:#ececea;
}
.case-detail-story { padding-top:clamp(4rem,8vw,8rem); }
.case-detail-chapter {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:clamp(2rem,6vw,7rem);
  align-items:center;
  margin-bottom:clamp(4rem,8vw,8rem);
}
.case-detail-chapter.is-reversed figure { order:2; }
.case-detail-chapter.is-reversed .case-detail-copy { order:1; }
.case-detail-chapter.no-image { grid-template-columns:minmax(0,780px); justify-content:center; }
.case-detail-chapter figure { margin:0; }
.case-detail-chapter figure img {
  display:block;
  width:100%;
  max-height:620px;
  object-fit:contain;
  border-radius:1rem;
  background:#ececea;
}
.case-detail-copy>span {
  color:#d74a22!important;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.case-detail-copy h2 {
  margin:.55rem 0 1rem;
  color:#0b0c10!important;
  font-size:clamp(1.8rem,3vw,3.4rem);
  line-height:1.05;
}
.case-detail-copy p { margin:0; color:#55575d!important; font-size:1.05rem; line-height:1.85; }
.case-detail-gallery { padding-block:clamp(2rem,5vw,5rem); border-top:1px solid #dededb; }
.case-detail-section-head h2 { margin:.4rem 0 2rem; color:#0b0c10!important; font-size:clamp(2rem,4vw,4rem); }
.case-detail-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.case-detail-gallery-grid figure { margin:0; overflow:hidden; border-radius:1rem; background:#ececea; }
.case-detail-gallery-grid img { display:block; width:100%; height:auto; object-fit:contain; }
.case-detail-gallery-grid figcaption { padding:.8rem 1rem; color:#55575d; font-size:.85rem; }
.case-detail-next {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  margin-top:clamp(3rem,6vw,6rem);
  padding:clamp(2rem,4vw,4rem);
  border-radius:1.25rem;
  color:#fff;
  background:#0b0c10;
}
.case-detail-next span { color:#f18a27!important; font-size:.75rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.case-detail-next h2 { margin:.4rem 0 0; color:#fff!important; font-size:clamp(1.7rem,3vw,3rem); }

@media(max-width:1024px) {
  .case-studies-tech-page .case-study-card-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .case-detail-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:720px) {
  .case-studies-tech-page .case-study-card-grid { grid-template-columns:1fr!important; }
  .case-detail-brand { display:none; }
  .case-detail-meta { grid-template-columns:1fr; }
  .case-detail-meta>div { border-bottom:1px solid #ececea; }
  .case-detail-chapter,.case-detail-chapter.no-image { grid-template-columns:1fr; gap:1.5rem; }
  .case-detail-chapter.is-reversed figure,.case-detail-chapter.is-reversed .case-detail-copy { order:initial; }
  .case-detail-gallery-grid { grid-template-columns:1fr; }
  .case-detail-next { align-items:flex-start; flex-direction:column; }
}
