/* About / services: full-width hero under cmn-banner (replaces template video block) */
.about-page-banner-image,
.services-page-banner-image {
  position: relative;
  width: 100%;
  overflow: hidden;
  line-height: 0;
}

.about-page-banner-image img,
.services-page-banner-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  max-height: min(85vh, 900px);
}

/* Service detail: imagery in content area */
.service-details .poster img,
.service-details .poster-small img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 6px;
}

/* WYD brand palette — load after main.min.css */
:root {
  --primary-color: #464c9a;
  --wyd-blue: #2d60a5;
  --wyd-purple: #684695;
}

/* Do not force solid fills on .btn--primary (breaks default outline + hover fill from theme). */

.text-stroke {
  -webkit-text-stroke-color: var(--primary-color);
}

/* Homepage hero: “creative” outline color */
.banner .text-stroke {
  -webkit-text-stroke-color: #9837d1;
}

/* Homepage hero: arrow beside title (theme uses stroke on the icon) */
.banner .interval i {
  -webkit-text-stroke: 1px #9837d1;
}

.sub-title i,
.section__header .sub-title i,
.offer__cta-single h2 a i,
.portfolio__single-content a i {
  color: var(--primary-color);
}


/* Portfolio tile images: drop theme min-height:300px so photos size naturally */
.portfolio .portfolio__single > a img {
  min-height: unset;
  height: auto;
}

/* Non-clickable Who we work with cards use default cursor */
.portfolio .portfolio__single > a[href="javascript:void(0)"],
.portfolio .portfolio__single .portfolio__single-content a[href="javascript:void(0)"] {
  cursor: default;
}

/* Emblem + title stack: theme default gap is 60px */
.portfolio .portfolio__single .portfolio__single-content {
  gap: 30px;
}

/*
 * Emblem replaces FA arrow in .portfolio__single-content a i (same slot as theme’s font-size:56px icon).
 * No min-height — match old icon behavior; size via em like text.
 */
.portfolio .portfolio__single-content a .portfolio__emblem-icon {
  display: inline-block;
  vertical-align: middle;
  font-size: 56px;
  width: 1em;
  height: auto;
  line-height: 1;
  object-fit: contain;
  min-height: 30px;
}


/* Work steps / services hover accents (hard-coded orange in theme SCSS) */
.work-steps .work-steps__single h5::before {
  background: linear-gradient(
    90deg,
    var(--wyd-purple) 0%,
    rgba(104, 70, 149, 0) 60.08%
  ) !important;
}

.service-t-single-wrapper::before {
  background-image: linear-gradient(to bottom, var(--wyd-blue), transparent) !important;
}

/* Disable What-We-Do hover image popups */
.offer .offer-thumb-hover {
  display: none !important;
}

/* Team / team-detail side social strip */
.social-alt {
  background: linear-gradient(90deg, var(--wyd-purple) 0%, var(--primary-color) 100%) !important;
}

/* Footer v1 social pill hover fill */
.footer .social a::before {
  background-image: linear-gradient(
    180deg,
    var(--wyd-purple) 0%,
    var(--primary-color) 100%
  ) !important;
}

/* Footer-two large social buttons — icon circle gradient */
.footer-two .social a i {
  background-image: linear-gradient(
    180deg,
    var(--wyd-purple) 0%,
    var(--primary-color) 100%
  ) !important;
}

/* Compact social rows (offcanvas / mobile menu) */
.mobile-menu__social.social a:hover,
.offcanvas-menu__social.social a:hover {
  background-color: var(--primary-color) !important;
  color: var(--white) !important;
}

/* Home sponsors heading with same style as next row */
.sponsor .clients-heading-slider {
  margin-bottom: 44px;
  padding-top: 6px;
}

.sponsor .clients-heading-slider a,
.next-page .next__text-slider-single a {
  cursor: default;
}

.sponsor .clients-heading-slider .next__text-slider-single h2,
.next-page .next__text-slider-single h2 {
  margin-top: -10px;
  margin-bottom: -10px;
}

.sponsor .clients-heading-slider .next__text-slider-single h2 a,
.next-page .next__text-slider-single h2 a {
  font-weight: 900;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 20px;
  white-space: nowrap;
}

.sponsor .clients-heading-slider .next__text-slider-single h2 a i,
.next-page .next__text-slider-single h2 a i {
  color: var(--primary-color);
}

.sponsor .clients-heading-slider .next__text-slider-single:nth-of-type(even) h2 a,
.next-page .next__text-slider-single:nth-of-type(even) h2 a {
  font-family: sans-serif;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 2px var(--white);
  color: transparent;
}

.sponsor .clients-heading-slider .next__text-slider-single:nth-of-type(even) h2 a i,
.next-page .next__text-slider-single:nth-of-type(even) h2 a i {
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 2px var(--primary-color);
}

.sponsor .clients-heading-slider .next__text-slider-single:nth-of-type(even) h2 a:hover,
.next-page .next__text-slider-single:nth-of-type(even) h2 a:hover {
  -webkit-text-stroke-color: var(--primary-color);
}

@media (min-width: 1200px) {
  .sponsor .clients-heading-slider .next__text-slider-single .h1,
  .next-page .next__text-slider-single .h1 {
    font-size: 74px;
    line-height: 1.05;
  }
}

/* Normalize client logo alignment regardless of source image dimensions */
.sponsor .sponsor__slider-item {
  min-height: 88px;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.sponsor .sponsor__slider-item img {
  width: 250px;
  height: 250px;
  object-fit: contain;
  display: block;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 767px) {
  .sponsor .sponsor__slider-item img {
    width: 125px;
    height: 125px;
  }
}

/* Very narrow viewports: keep logo + menu control on one row (theme uses flex-wrap + large gap). */
@media (max-width: 404px) {
  .primary-navbar .navbar {
    flex-wrap: nowrap;
    gap: 10px;
    align-items: center;
  }

  .primary-navbar .navbar__logo {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 90px);
  }

  .primary-navbar .navbar__logo img {
    max-width: 100%;
    height: auto;
    display: block;
  }

  .primary-navbar .navbar__options {
    flex-shrink: 0;
  }
}

/*
 * Contact hCaptcha:
 * - Theme stacks 40px margin under .group-input + 40px above .form-cta — neutralize for this row only.
 * - Match form rhythm: full-width row, left-aligned like Subject/Message (normal size = wide checkbox, not compact column).
 */
#contactForm .contact-hcaptcha {
  display: block;
  width: 100%;
  max-height: 100px;
  overflow: hidden;
  margin-top: 0;
  margin-bottom: 0 !important;
  padding: 2px 16px 6px 0;
  border-top: 0;
  border-bottom: 2px solid #414141;
  text-align: left;
}

#contactForm .contact-hcaptcha .h-captcha {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  min-height: 0;
}

#contactForm .contact-hcaptcha .h-captcha iframe {
  display: block;
  box-sizing: border-box;
  width: min(308px, 100%) !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

#contactForm .form-cta {
  margin-top: 35px !important;
}

/* Mobile: align with field edges; iframe uses max-width so it never overflows the column */
@media (max-width: 767px) {
  #contactForm .contact-hcaptcha {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
  }

  #contactForm .contact-hcaptcha .h-captcha {
    max-width: 100%;
  }
}

