/* Shared interaction and typography rules. */
.comparison-table .agency-icon svg{stroke:#0b2d44!important;color:#0b2d44!important}
html body :is(h1,h2,h3,h4) .outline-word,html body :is(h1,h2)>span:not(.icon-box){color:#0eafb3!important;-webkit-text-fill-color:#0eafb3!important;-webkit-text-stroke:0!important;text-shadow:none!important;background:none!important;background-clip:initial!important}
html body .button{box-sizing:border-box;height:54px;min-height:54px;padding:0 20px;line-height:1.3;flex-shrink:0;text-align:center;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s}
html body .button:hover{transform:translateY(-2px);box-shadow:0 5px 14px #071e3320}
html body .button.primary:hover{background:#078e94;color:#fff}
html body .button.navy:hover{background:#174960;color:#fff}
html body .button.navy-outline:hover{background:#0b2d44;color:#fff;border-color:#0b2d44}
html body .button.white-outline:hover{background:#ffffff18;border-color:currentColor}
html body .button.white:hover{background:#e7eff3;color:#0b2d44}
html body .button.outline:hover{background:#e7eff3;color:#0b2d44;border-color:#0b2d44}
html body .hero-description{font-size:16px!important;line-height:1.75!important;font-weight:500!important}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #46819b;outline-offset:4px}
.menu-toggle,.dialog-close,[data-carousel-prev],[data-carousel-next]{transition:background-color .2s,color .2s,transform .2s}
.menu-toggle:hover{background:#ffffff18}.dialog-close:hover{background:#e7eff3;color:#0b2d44}
[data-carousel-prev]:hover,[data-carousel-next]:hover{filter:brightness(1.2);transform:translateY(-2px)}
.social-links a:hover{background:#ffffff18;border-color:#fff}
.header nav a:hover,.footer a:not(.button):hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.text-link:hover,.plain-button:hover{opacity:.75}
@media(prefers-reduced-motion:reduce){html body .button{transition:none}html body .button:hover{transform:none}}

/* Shared shell logo proportions. */
.header .logo{height:auto;object-fit:contain;flex:0 0 auto}
.footer-brand>img{display:block;width:180px!important;height:auto!important;max-width:100%;object-fit:contain;flex:0 0 auto}
@media(max-width:760px){.footer-brand>img{width:140px!important}}


/* Prominent CTA portrait system */
.prominent-cta-card{position:relative!important;display:block!important;min-height:360px;padding:48px 400px 48px 55px!important;overflow:visible!important;background:linear-gradient(120deg,#08263d,#0b354d)!important;color:#fff!important}
.prominent-cta-card .cta-copy{position:relative;z-index:2;max-width:760px;padding:0!important}
.prominent-cta-card .cta-copy>p:not(.eyebrow):not(.micro){color:#bdd0da!important}
.prominent-cta-card .actions{display:flex!important;align-items:stretch!important;justify-content:flex-start!important;flex-wrap:wrap!important;gap:12px!important;width:auto!important;margin-top:26px!important}
.prominent-cta-card .actions .button{width:auto!important;min-width:210px!important}
.prominent-cta-person{position:absolute;z-index:3;right:18px;bottom:0;width:350px;height:440px;pointer-events:none}
.prominent-cta-person img{display:block!important;width:100%!important;max-width:none!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important;opacity:1!important;filter:drop-shadow(0 20px 24px #00111d66)}
.final-cta.prominent-cta-card{margin-top:72px;border:0!important}
.final-cta.prominent-cta-card h2,.final-cta.prominent-cta-card h2 span{color:#fff}
.final-cta.prominent-cta-card h2 span{color:#25c0c1}
.final-cta.prominent-cta-card .micro{color:#9fb9c6}
.cs-cta-card.prominent-cta-card .button{margin-top:0}

@media(max-width:1050px){
  .prominent-cta-card{padding-right:330px!important}
  .prominent-cta-person{right:4px;width:310px;height:410px}
}
@media(max-width:760px){
  .prominent-cta-card{min-height:0;padding:38px 25px 0!important;overflow:hidden!important}
  .prominent-cta-card .actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .prominent-cta-card .actions .button{width:100%!important;min-width:0!important}
  .prominent-cta-person{position:relative;right:auto;bottom:auto;width:100%;height:355px;margin-top:8px}
  .prominent-cta-person img{position:absolute;left:50%;bottom:0;width:300px!important;transform:translateX(-50%)}
}
@media(max-width:430px){
  .prominent-cta-person{height:325px}
  .prominent-cta-person img{width:275px!important}
}


/* Prominent CTA portrait system */
.prominent-cta-card{position:relative!important;display:block!important;min-height:360px;padding:48px 400px 48px 55px!important;overflow:visible!important;background:linear-gradient(120deg,#08263d,#0b354d)!important;color:#fff!important}
.prominent-cta-card .cta-copy{position:relative;z-index:2;max-width:760px;padding:0!important}
.prominent-cta-card .cta-copy>p:not(.eyebrow):not(.micro){color:#bdd0da!important}
.prominent-cta-card .actions{display:flex!important;align-items:stretch!important;justify-content:flex-start!important;flex-wrap:wrap!important;gap:12px!important;width:auto!important;margin-top:26px!important}
.prominent-cta-card .actions .button{width:auto!important;min-width:210px!important}
.prominent-cta-person{position:absolute;z-index:3;right:18px;bottom:0;width:350px;height:440px;pointer-events:none}
.prominent-cta-person img{display:block!important;width:100%!important;max-width:none!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important;opacity:1!important;filter:drop-shadow(0 20px 24px #00111d66)}
.final-cta.prominent-cta-card{margin-top:72px;border:0!important}
.final-cta.prominent-cta-card h2,.final-cta.prominent-cta-card h2 span{color:#fff}
.final-cta.prominent-cta-card h2 span{color:#25c0c1}
.final-cta.prominent-cta-card .micro{color:#9fb9c6}
.cs-cta-card.prominent-cta-card .button{margin-top:0}

@media(max-width:1050px){
  .prominent-cta-card{padding-right:330px!important}
  .prominent-cta-person{right:4px;width:310px;height:410px}
}
@media(max-width:760px){
  .prominent-cta-card{min-height:0;padding:38px 25px 0!important;overflow:hidden!important}
  .prominent-cta-card .actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .prominent-cta-card .actions .button{width:100%!important;min-width:0!important}
  .prominent-cta-person{position:relative;right:auto;bottom:auto;width:100%;height:355px;margin-top:8px}
  .prominent-cta-person img{position:absolute;left:50%;bottom:0;width:300px!important;transform:translateX(-50%)}
}
@media(max-width:430px){
  .prominent-cta-person{height:325px}
  .prominent-cta-person img{width:275px!important}
}

/* Shared dark section corners and contact details */
section.dark,section.pipeline-path-section,section.lead-section,section.service-final,section.assessment-close,section.sv2-collaboration,section.sv2-proof,section.ld-team,section.ld-ui,section.detail-related,section.case-archive-value{border-radius:60px 0 60px 0!important}
.contact-quick-links>a,.contact-info-card{display:flex;gap:16px;align-items:center;padding:18px 20px;border:1px solid #c8dce6;border-radius:8px;background:#fff;color:#0b2d44;box-shadow:0 10px 26px #0b2d4408}.contact-info-card small,.contact-info-card b,.contact-info-card div>span{display:block}.contact-info-card small{color:#607985;font-size:12px;letter-spacing:.1em}.contact-info-card b{font-size:13px;margin:5px 0}.contact-info-card div>span{font-size:12px;color:#607985}.contact-address-card{font-style:normal;line-height:1.8;margin:26px 0}.contact-info-card .icon-box{flex-shrink:0;background:#f1f5f7;color:#0b2d44}.prominent-cta-person{height:calc(100% + 75px)!important}
@media(max-width:760px){section.dark,section.pipeline-path-section,section.lead-section,section.service-final,section.assessment-close{border-radius:35px 0 35px 0!important}.prominent-cta-person{height:355px!important}}

.prominent-cta-person img[data-merch=white-tee]{mask-image:url(assets/cta-consultant-white-tee.webp);mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:url(assets/cta-consultant-white-tee.webp);-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.prominent-cta-person img[data-merch=navy-tracksuit]{mask-image:url(assets/cta-consultant-navy-tracksuit.webp);mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:url(assets/cta-consultant-navy-tracksuit.webp);-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.prominent-cta-person img[data-merch=white-tracksuit]{mask-image:url(assets/cta-consultant-white-tracksuit.webp);mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:url(assets/cta-consultant-white-tracksuit.webp);-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
/* Equal-height solid and outlined CTA controls */
html body a.button,html body button.button{display:inline-flex!important;box-sizing:border-box!important;align-items:center!important;justify-content:center!important;height:54px!important;min-height:54px!important;padding:0 20px!important;line-height:1.3!important;text-decoration:none!important;border-width:1px!important;border-style:solid!important;vertical-align:middle}
html body .button:before,html body .button:after{display:none!important}
html body .button.navy-outline{border-color:#0b2d44;background:transparent;color:#0b2d44}
html body .button.white-outline{border-color:#ffffff85;background:transparent;color:#fff}
.location-actions,.actions{align-items:center}

/* Hero exception: only the bottom-right corner is rounded. */
html body :is(.hero-shell,.contact-hero,.about-hero,.cs-hero,.case-archive-hero,.service-hero,.assessment-hero,.rp-hero,.brand-hero){border-radius:0 0 60px 0!important}
@media(max-width:760px){html body :is(.hero-shell,.contact-hero,.about-hero,.cs-hero,.case-archive-hero,.service-hero,.assessment-hero,.rp-hero,.brand-hero){border-radius:0 0 35px 0!important}}

.prominent-cta-person img[data-merch="location-consultant"]{mask-image:url(assets/location-consultant-mask.svg);-webkit-mask-image:url(assets/location-consultant-mask.svg);mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}
html body section.assessment-close{background:#f1f6f7!important;border-radius:0!important}.assessment-close .prominent-cta-card{border-radius:14px;background:#0b2d44;color:#fff}

html body section.service-final{background:#f1f6f7!important;border-radius:0!important}html body section.service-final .prominent-cta-card{background:#0b2d44;color:#fff;border-radius:14px}

/* One interaction system for every shared button variant. */
html body .button{
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease!important;
}
html body .button:is(:hover,:focus-visible){
  transform:translateY(-2px);
  box-shadow:0 10px 22px #071e3329;
}
html body .button.primary:is(:hover,:focus-visible){
  border-color:#078e94!important;
  background:#078e94!important;
  color:#fff!important;
}
html body .button.navy:is(:hover,:focus-visible){
  border-color:#174960!important;
  background:#174960!important;
  color:#fff!important;
}
html body .button.navy-outline:is(:hover,:focus-visible){
  border-color:#0b2d44!important;
  background:#0b2d44!important;
  color:#fff!important;
}
html body .button:is(.white-outline,.outline-white):is(:hover,:focus-visible){
  border-color:#fff!important;
  background:#fff!important;
  color:#0b2d44!important;
}
html body .button.outline:is(:hover,:focus-visible){
  border-color:#0b2d44!important;
  background:#e7eff3!important;
  color:#0b2d44!important;
}
html body .button:is(:disabled,[aria-disabled="true"]){
  transform:none!important;
  box-shadow:none!important;
  cursor:not-allowed;
}
@media(prefers-reduced-motion:reduce){
  html body .button{transition:none!important}
  html body .button:is(:hover,:focus-visible){transform:none}
}

/* Contextual sources inside FAQ answers */
.faq-list details p a[target="_blank"] {
  color: #087f85;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.faq-list details p a[target="_blank"]:hover,
.faq-list details p a[target="_blank"]:focus-visible {
  color: #0b5e66;
  text-decoration-thickness: 2px;
}

/* Responsive CTA refinement: tablet and mobile */
.pain-list > .text-link {
  display: inline-flex;
  margin-top: 28px;
}

html body.premium-service-page .service-delivery-actions {
  display: flex !important;
  align-items: stretch !important;
  flex-wrap: wrap !important;
  column-gap: 18px !important;
  row-gap: 14px !important;
  margin-top: 28px !important;
}

html body.premium-service-page .service-delivery-actions .button.navy {
  border-color: #0b2d44 !important;
  background: #0b2d44 !important;
  color: #fff !important;
}

@media (max-width: 1050px) {
  html body .prominent-cta-person {
    display: none !important;
  }

  html body .prominent-cta-card,
  html body .service-final-grid.prominent-cta-card {
    min-height: 0 !important;
    padding: 42px 36px !important;
  }
}

@media (max-width: 760px) {
  html body .prominent-cta-card,
  html body .service-final-grid.prominent-cta-card {
    padding: 34px 24px !important;
  }

  html body.premium-service-page .service-delivery-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  html body.premium-service-page .service-delivery-actions .button {
    width: 100% !important;
  }
}


/* Mobile CTA buttons fill their content column; header and footer controls stay intrinsic. */
@media (max-width: 760px) {
  html body main .actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    gap: 12px !important;
  }

  html body main .button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}


/* Responsive gutters for composite wrap/grid sections. */
@media (max-width: 1100px) {
  html body main .wrap.service-row {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
/* Keep global header and footer CTAs content-sized on phones and tablets. */
@media(max-width:1100px){
  html body main .header .header-cta{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    flex:0 0 auto!important;
  }
  html body .footer .footer-cta .button{
    display:inline-flex!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
  }
}

