body {
  padding: 0 !important;
}

#particles-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
#particles-bg canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/* Homepage only: slide the hero up under the header so particles reach the top edge.
   --mm-header-h is the measured header height (WpChrome). Extra padding keeps the
   headline in the same place it sat when the header was in normal flow. */
body:has(.mm-hero) header.wp-block-template-part,
body:has(.mm-hero) header.wp-block-template-part .desktop-header {
  background: transparent !important;
  background-image: none !important;
}
body:has(.mm-hero) .mm-hero {
  margin-top: calc(-1 * var(--mm-header-h, 0px));
  padding-top: calc(120px + var(--mm-header-h, 0px));
}
@media (max-width: 768px) {
  body:has(.mm-hero) .mm-hero {
    padding-top: calc(110px + var(--mm-header-h, 0px));
  }
}

/* Desktop nav sits on the logo image box. The mark's visual weight is lower
   (network sphere over the letters), so drop the links and login to match it. */
@media (min-width: 782px) {
  header.wp-block-template-part .desktop-header:not(.uag-hide-desktop) nav.wp-block-navigation,
  header.wp-block-template-part .desktop-header:not(.uag-hide-desktop) .header-contact-btn {
    position: relative;
    top: 12px;
  }
}

header.wp-block-template-part .wp-block-navigation-item__content,
header.wp-block-template-part .wp-block-navigation-item__content strong {
  transition: color 0.2s ease;
}
header.wp-block-template-part .wp-block-navigation-item__content:hover,
header.wp-block-template-part .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,
header.wp-block-template-part .wp-block-navigation-item__content:hover strong {
  color: #ff808b;
}

/* Sit the "We create…" line halfway between the logo row and the copy below.
   Negative margin keeps the about block where it is. */
.we-create-section {
  margin-top: 167px;
  margin-bottom: -167px;
}
@media (max-width: 760px) {
  .we-create-section {
    margin-top: 55px;
    margin-bottom: -55px;
  }
}

.mm-typed-wrap {
  max-width: 1100px;
  margin: 40px auto 10px;
  padding: 0 24px;
  text-align: center;
  min-height: 90px;
}
.mm-typed {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 600;
  color: #ff808b;
  line-height: 1.35;
  min-height: 1.4em;
}
.mm-typed::after {
  content: "|";
  margin-left: 2px;
  animation: typingCursorBlink 0.7s infinite;
}

.mm-values-item.mm-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.mm-site-footer {
  padding: 40px 24px 70px;
  text-align: center;
}
.mm-footer-logo-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 18px;
}
.mm-footer-logo {
  width: 200px;
  height: auto;
}
.mm-footer-experts {
  max-width: 980px;
  margin: 0 auto 48px;
  color: #cfcfcf;
  line-height: 1.7;
}
.mm-newsletter {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.mm-newsletter h2 {
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  margin: 0 0 22px;
  color: #fff;
}
.mm-newsletter label {
  display: block;
  text-align: left;
  margin-bottom: 8px;
  font-family: "Glacial Indifference", Arial, sans-serif;
}
.mm-newsletter-row {
  display: flex;
  gap: 12px;
  align-items: stretch;
  justify-content: center;
}
.mm-newsletter-row input {
  flex: 1;
  min-width: 0;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.2);
  background: #111;
  color: #fff;
  font-size: 16px;
}
.mm-newsletter-row button {
  border: 0;
  border-radius: 999px;
  background: #ff808b;
  color: #fff;
  font-weight: 700;
  padding: 0 28px;
  min-height: 52px;
  cursor: pointer;
  font-family: "Glacial Indifference", Arial, sans-serif;
}
.mm-newsletter-row button:hover {
  background: #fff;
  color: #000;
}
@media (max-width: 640px) {
  .mm-newsletter-row {
    flex-direction: column;
  }
}
.mm-footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px 28px;
  max-width: 980px;
  margin: 36px auto 28px;
  padding: 0 16px;
  font-family: "Glacial Indifference", Arial, sans-serif;
  font-size: 0.95rem;
}
.mm-footer-nav a {
  color: #fff;
  text-decoration: none;
}
.mm-footer-nav a:hover {
  color: #ff808b;
}
.mm-footer-social {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 10px auto 36px;
}
.mm-social {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.85rem;
}
.mm-social-facebook { background: #ff808b; }
.mm-social-instagram { background: #ff808b; }
.mm-social-linkedin { background: #ff808b; }
.stk-mm-tiktok .stk-button {
  background: #ff808b !important;
  box-shadow: none !important;
}
.mm-social-email { background: #ff808b; color: #fff; }
.mm-social-phone { background: #ff808b; }
.mm-footer-legal {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 16px 10px;
  border-top: 1px solid #cccccca6;
  text-align: center;
  color: #cfcfcf;
  font-size: 0.9rem;
  line-height: 1.7;
  font-family: "Glacial Indifference", Arial, sans-serif;
}
.mm-footer-legal p { margin: 0 0 12px; }

footer.wp-block-template-part {
  padding-bottom: 40px;
  text-align: center;
}
footer.wp-block-template-part .custom-logo,
footer.wp-block-template-part .wp-image-1884 {
  width: 200px !important;
  height: auto !important;
  margin: 0 auto;
  display: block;
}
footer.wp-block-template-part .wp-block-navigation__responsive-container-open,
footer.wp-block-template-part .wp-block-navigation__responsive-container-close {
  display: none !important;
}
footer.wp-block-template-part .wp-block-navigation__responsive-container,
footer.wp-block-template-part .wp-block-navigation__responsive-close,
footer.wp-block-template-part .wp-block-navigation__responsive-dialog,
footer.wp-block-template-part .wp-block-navigation__responsive-container-content {
  display: block !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  background: transparent !important;
  padding: 0 !important;
}
footer.wp-block-template-part .wp-block-navigation__container {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 22px;
  list-style: none;
  margin: 20px auto;
  padding: 0;
}
footer.wp-block-template-part .wp-block-navigation-item__content {
  color: #fff;
  text-decoration: none;
  font-family: "Glacial Indifference", Arial, sans-serif;
}
footer.wp-block-template-part .wp-block-columns:has(#want-our-updates-in-your-inbox) {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}
footer.wp-block-template-part .wp-block-columns:has(#want-our-updates-in-your-inbox) > .wp-block-column:first-child,
footer.wp-block-template-part .wp-block-columns:has(#want-our-updates-in-your-inbox) > .wp-block-column:last-child {
  display: none !important;
}
footer.wp-block-template-part .wp-block-columns:has(#want-our-updates-in-your-inbox) > .wp-block-column:nth-child(2) {
  flex: 0 1 520px !important;
  max-width: 520px !important;
  width: 100% !important;
  margin: 0 auto !important;
  text-align: center;
}
footer.wp-block-template-part .kb-advanced-form,
footer.wp-block-template-part .kb-row-layout-wrap,
footer.wp-block-template-part .kt-row-column-wrap,
footer.wp-block-template-part .kt-has-2-columns {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-end !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
  max-width: 480px !important;
  width: 100% !important;
  margin: 0 auto !important;
  float: none !important;
}
footer.wp-block-template-part .kadence-columnextendable__footer_ec63be-2b,
footer.wp-block-template-part .kadence-columnextendable__footer_d79be6-9e {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}
footer.wp-block-template-part .kb-adv-form-label {
  display: block;
  text-align: left;
  margin-bottom: 6px;
}
footer.wp-block-template-part .kb-email-field {
  min-width: 280px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.2);
  background: #111;
  color: #fff;
}
footer.wp-block-template-part .kb-adv-form-submit-button {
  min-height: 52px;
  padding: 0 26px;
  border: 0;
  border-radius: 999px;
  background: #ff808b !important;
  color: #fff !important;
  font-weight: 700;
  cursor: pointer;
}
footer.wp-block-template-part .stk-block-button-group .stk-block-content {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}
footer.wp-block-template-part .stk-block-icon-button .stk-button {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: grid;
  place-items: center;
}
footer.wp-block-template-part .stk-6ad4b12 {
  display: none;
}

.mm-form {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}
.mm-form label {
  display: block;
  width: 100%;
  margin-bottom: 20px;
  font-size: 16px;
  line-height: 1.5;
  color: #fff;
  font-family: "Glacial Indifference", Arial, sans-serif;
}
.mm-form input,
.mm-form select,
.mm-form textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  display: block;
  margin-top: 8px;
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 12px;
  background: #111;
  color: #fff;
  font-size: 16px;
  line-height: 1.4;
  appearance: none;
}
.mm-form textarea {
  min-height: 130px;
  resize: vertical;
}
.mm-form .wpcf7-list-item {
  display: block;
  margin: 0 0 10px 0;
}
.mm-form .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 0;
  font-size: 15px;
}
.mm-form input[type="checkbox"] {
  width: 18px !important;
  min-width: 18px;
  height: 18px;
  margin: 3px 0 0 0;
  padding: 0;
}
.mm-form input[type="submit"] {
  width: 100% !important;
  border: none;
  border-radius: 999px;
  background: #ff808b;
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  padding: 16px 22px;
}
.mm-form input[type="submit"]:hover {
  background: #fff;
  color: #000;
}

.uagb-faq-item .uagb-faq-content {
  display: none;
  padding: 0 18px 18px;
  color: #cfcfcf;
  font-family: "Glacial Indifference", Arial, sans-serif;
  line-height: 1.7;
}
.uagb-faq-item.uagb-faq-item-active .uagb-faq-content {
  display: block;
}
.uagb-faq-questions {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  font-family: "Libre Baskerville", Georgia, serif;
}
.uagb-faq-item .uagb-icon-active {
  display: none;
}
.uagb-faq-item.uagb-faq-item-active .uagb-icon-active {
  display: inline;
}
.uagb-faq-item.uagb-faq-item-active .uagb-icon:not(.uagb-icon-active) {
  display: none;
}
.uagb-faq__outer-wrap {
  max-width: 900px;
  margin: 0 auto 40px;
}
.wpcf7-turnstile {
  display: none;
}

.case-card {
  position: relative;
}
.wp-block-column .case-card {
  margin-bottom: 24px;
}

.mm-live-report-section,
.mm-live-report-wrap,
.mm-live-report-card {
  width: 100%;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}
.mm-live-report-card {
  overflow: hidden;
  border-radius: 28px;
  background: #fff;
}
iframe.mm-live-report-frame,
.mm-live-report-frame {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 1100px !important;
  height: 1200px !important;
  border: 0 !important;
  background: #ffffff;
}
@media (max-width: 640px) {
  iframe.mm-live-report-frame,
  .mm-live-report-frame {
    min-height: 900px !important;
    height: 1000px !important;
  }
}

.mm-service-card {
  flex: 0 0 calc((100% - 40px) / 3) !important;
}
@media (max-width: 1024px) {
  .mm-service-card {
    flex: 0 0 calc((100% - 20px) / 2) !important;
  }
}
@media (max-width: 768px) {
  .mm-service-card {
    flex: 0 0 100% !important;
  }
}

.mm-reviews-slider {
  position: relative;
  display: block;
  align-items: center;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 150px 90px 42px;
  box-sizing: border-box;
}
.mm-reviews-viewport {
  overflow: hidden;
  max-width: 1180px;
  margin: 0 auto;
  width: 100%;
}
.mm-reviews-track {
  display: flex;
  gap: 0;
  transition: transform 0.45s ease;
}
.mm-review-card {
  position: relative;
  flex: 0 0 100%;
  margin: 0;
  padding: 48px 7% 20px;
  min-height: 250px;
  box-sizing: border-box;
  text-align: center;
  background: transparent;
  border: 0;
}
.mm-review-card::before {
  content: "★★★★★";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  color: #ff808b;
  font-family: Arial, sans-serif;
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: 0.08em;
}
.mm-review-card p {
  max-width: 1080px;
  color: #fff;
  font-family: "Glacial Indifference", Arial, sans-serif;
  font-size: clamp(1.1rem, 1.45vw, 1.45rem);
  line-height: 1.32;
  margin: 0 auto 30px;
}
.mm-review-card footer {
  color: #fff;
  font-size: 1rem;
  font-weight: 400;
  font-family: "Glacial Indifference", Arial, sans-serif;
}
.mm-reviews-arrow {
  position: absolute;
  z-index: 2;
  top: 66%;
  transform: translateY(-50%);
  width: 48px;
  height: 64px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #ff808b;
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}
.mm-reviews-prev { left: 16px; }
.mm-reviews-next { right: 16px; }
.mm-services-arrow {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.04);
  color: #ff808b;
  font-size: 22px;
  cursor: pointer;
}
.mm-reviews-arrow:disabled,
.mm-services-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}
@media (max-width: 1100px) {
  .mm-reviews-slider { padding: 90px 56px 20px; }
  .mm-review-card { flex: 0 0 100%; padding-left: 4%; padding-right: 4%; }
  .mm-reviews-arrow { font-size: 34px; }
  .mm-reviews-prev { left: 8px; }
  .mm-reviews-next { right: 8px; }
}
@media (max-width: 640px) {
  .mm-reviews-slider { padding: 64px 42px 10px; }
  .mm-review-card { min-height: 360px; padding: 42px 0 10px; }
  .mm-review-card p { font-size: 1rem; line-height: 1.45; }
  .mm-review-card::before { font-size: 1.25rem; }
  .mm-reviews-arrow { top: 58%; font-size: 30px; }
}

.wp-block-columns.has-primary-background-color {
  max-width: 1360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.wp-block-columns:has(#contact-us):not(.mm-contact-columns) {
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  display: block !important;
}
.wp-block-columns:has(#contact-us) > .wp-block-column {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
}
.screen-reader-response,
.wpcf7-form .hidden-fields-container,
.wpcf7-response-output:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

.uagb-faq-item {
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  margin: 0 16px 12px;
  overflow: hidden;
}
.uagb-faq-questions {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 20px;
  color: #fff;
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.05rem;
  border: 0;
}
.uagb-faq-questions::before {
  content: "+";
  color: #ff808b;
  font-size: 1.6rem;
  line-height: 1;
  width: 24px;
  flex: 0 0 24px;
}
.uagb-faq-item-active .uagb-faq-questions::before {
  content: "–";
}
.uagb-faq-icon-wrap {
  display: none !important;
}
.uagb-faq-item .uagb-faq-content {
  display: none;
  padding: 0 20px 18px 56px;
  color: #cfcfcf;
  font-family: "Glacial Indifference", Arial, sans-serif;
  line-height: 1.7;
}
.uagb-faq-item.uagb-faq-item-active .uagb-faq-content {
  display: block;
}

.wp-block-column {
  overflow: visible;
}

.mm-ti-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: #ff808b;
  color: #fff;
  font-size: 22px;
  cursor: pointer;
  z-index: 6;
  line-height: 1;
}
.mm-ti-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}
.mm-ti-prev { left: 0; }
.mm-ti-next { right: 0; }

.mm-google-reviews {
  max-width: 1240px;
  margin: 40px auto 10px;
  padding: 0 16px;
  color: #111;
}
.mm-google-head {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 20px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.mm-google-excellent {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  color: #fff;
}
.mm-google-count {
  color: #cfcfcf;
  font-size: 0.95rem;
}
.mm-google-stars {
  color: #f6bb06;
  letter-spacing: 2px;
  font-size: 1.15rem;
  line-height: 1;
  margin: 4px 0;
}
.mm-google-slider {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 8px;
}
.mm-google-viewport {
  overflow: hidden;
  flex: 1;
}
.mm-google-track {
  display: flex;
  gap: 16px;
  transition: transform 0.4s ease;
}
.mm-google-card {
  flex: 0 0 calc((100% - 48px) / 4);
  background: #f4f4f4;
  color: #111;
  border-radius: 12px;
  padding: 20px;
  min-height: 280px;
  box-sizing: border-box;
}
.mm-google-card header {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  padding-right: 28px;
}
.mm-google-card header img:first-child {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}
.mm-google-name {
  font-weight: 700;
  font-size: 15px;
}
.mm-google-icon {
  position: absolute;
  top: 0;
  right: 0;
  width: 18px;
  height: 18px;
}
.mm-google-card p {
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.55;
  color: #222;
}
.mm-google-card p.mm-review-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mm-review-toggle-input:checked ~ p.mm-review-clamp {
  -webkit-line-clamp: unset;
  overflow: visible;
}
.mm-review-more {
  display: inline-block;
  margin-top: 8px;
  color: #ff808b;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
}
.mm-review-more::after {
  content: "Read more";
}
.mm-review-toggle-input:checked ~ .mm-review-more::after {
  content: "Show less";
}
.mm-google-slider .mm-ti-arrow {
  position: static;
  transform: none;
  align-self: center;
  flex: 0 0 44px;
}
@media (max-width: 1100px) {
  .mm-google-card {
    flex-basis: calc((100% - 16px) / 2);
  }
}
@media (max-width: 640px) {
  .mm-google-card {
    flex-basis: 100%;
    min-height: 0;
  }
}
.logo-marquee-section,
.logo-marquee-track-wrap,
.mm-services-viewport,
.mm-reviews-viewport,
.mm-services-slider,
.mm-reviews-slider {
  overflow: hidden !important;
  max-width: 100%;
}

/* Hero headline: "From" and "To" stay white; "Concept" and "Conversion" stay pink. */
.mm-hero-title .mm-hero-plain {
  color: #fff;
}
.mm-hero-title .mm-hero-accent {
  color: #ff808b;
}

/* Service photos fill the card as a soft backdrop. No solid black band. */
.mm-service-card {
  position: relative;
  padding: 22px 22px 26px !important;
  overflow: hidden;
  background: #0a0a0a !important;
}
.mm-service-photo {
  position: absolute;
  inset: -16px;
  width: calc(100% + 32px);
  height: calc(100% + 32px);
  margin: 0;
  object-fit: cover;
  object-position: center;
  filter: blur(3px) brightness(0.95) saturate(1);
  pointer-events: none;
  z-index: 0;
}
.mm-service-card::after {
  content: "";
  position: absolute;
  inset: 0;
  height: auto;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.18) 0%,
    rgba(0, 0, 0, 0.28) 50%,
    rgba(0, 0, 0, 0.5) 100%
  );
  pointer-events: none;
  z-index: 1;
}
.mm-service-icon-wrap,
.mm-service-title,
.mm-service-text {
  position: relative;
  z-index: 2;
}
.mm-service-icon-wrap {
  width: 64px !important;
  height: 64px !important;
  margin: 0 0 12px !important;
}
.mm-service-title,
.mm-service-text {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.75);
}
.mm-service-text {
  color: #fff !important;
}
@media (max-width: 768px) {
  .mm-service-card {
    padding: 20px 18px 22px !important;
  }
  .mm-service-icon-wrap {
    width: 58px !important;
    height: 58px !important;
    margin: 0 0 10px !important;
  }
}

/* Revenue rings match the pink circles on Mission, Vision and Values. */
.stats-ring-hero {
  width: min(280px, 78%);
  max-width: 280px;
  aspect-ratio: 1;
  margin: 0 auto 28px;
  border-radius: 50%;
  border: 3px solid #ff808b;
  background:
    radial-gradient(circle at center, rgba(255,128,139,0.2) 0%, rgba(255,128,139,0.05) 42%, #070707 68%);
  box-shadow:
    0 0 0 10px rgba(255,128,139,0.16),
    0 0 42px 12px rgba(255,128,139,0.42);
  display: flex;
  align-items: center;
  justify-content: center;
}

.stats-ring-image {
  display: none;
}

.stats-ring-center {
  position: static;
  transform: none;
  width: 78%;
}

.stats-ring-number,
.stat-value {
  font-variant-numeric: tabular-nums;
}

.stats-ring-number.is-landed,
.stat-value.is-landed {
  animation: mmStatsLand 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes mmStatsLand {
  0% { transform: scale(1); }
  45% { transform: scale(1.06); }
  100% { transform: scale(1); }
}

@media (max-width: 640px) {
  .stats-ring-hero {
    width: min(230px, 70%);
    max-width: 230px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stats-ring-number.is-landed,
  .stat-value.is-landed {
    animation: none;
  }
}

/* Footer social buttons: more room between them and a soft pink glow
   that brightens, with a small lift, on hover */
.stk-7a717f7 .stk-button-group {
  gap: 20px !important;
}

.stk-7a717f7 .stk-block-icon-button {
  margin: 0 !important;
}

.stk-7a717f7 .stk-button {
  box-shadow: 0 0 18px rgba(255, 128, 139, 0.45), 0 0 4px rgba(255, 128, 139, 0.6) !important;
  transition: box-shadow 0.3s ease, transform 0.3s ease !important;
}

.stk-7a717f7 .stk-button:hover {
  box-shadow: 0 0 30px rgba(255, 128, 139, 0.8), 0 0 8px rgba(255, 128, 139, 0.9) !important;
  transform: translateY(-3px);
}

/* Footer social icons: Stackable gives button icons an 8px left margin to space them from
   button text. These buttons are icon-only, so it just pushed each icon 4px off centre. */
.stk-7a717f7 .stk-button .stk--svg-wrapper svg {
  margin: 0 !important;
}

/* Brand body font everywhere. The WordPress theme default (Inter) and an old login plugin rule
   (Montserrat) both named fonts that are never loaded, so text was falling back to Arial. */
body {
  font-family: "Glacial Indifference", Arial, Helvetica, sans-serif;
}

/* ---------- Phones ---------- */

/* Footer newsletter: the email box had a fixed 280px minimum next to the button, so on phones
   the label and box ran off the left edge and "Submit" off the right. Let the box share the row. */
@media (max-width: 640px) {
  footer.wp-block-template-part .kb-advanced-form,
  footer.wp-block-template-part .kb-row-layout-wrap,
  footer.wp-block-template-part .kt-row-column-wrap,
  footer.wp-block-template-part .kt-has-2-columns {
    gap: 10px !important;
  }
  footer.wp-block-template-part .kb-advanced-form {
    padding: 0 20px;
    box-sizing: border-box;
  }
  footer.wp-block-template-part .kb-row-layout-wrap,
  footer.wp-block-template-part .kt-row-column-wrap {
    padding: 0 !important;
  }
  footer.wp-block-template-part .kadence-columnextendable__footer_ec63be-2b {
    flex: 1 1 0 !important;
    min-width: 0;
  }
  footer.wp-block-template-part .kb-email-field {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
  }
  footer.wp-block-template-part .kb-adv-form-submit-button {
    padding: 0 22px;
  }
}

/* Headings are built from one-line .mm-line spans. On phones a long line ("Tailored Digital
   Solutions", "Behind Your Growth") was wider than the screen and got cut off, so let them wrap. */
@media (max-width: 640px) {
  .mm-line {
    white-space: normal !important;
  }
}

/* Menu button: the icon is only 24px, too small to tap reliably. Grow the hit area to 44px
   without moving the icon. (The close button is already 44px.) */
header .wp-block-navigation__responsive-container-open {
  padding: 10px !important;
  margin: -10px !important;
  box-sizing: content-box;
}

/* Open mobile menu: the links sat hard against the left edge of the screen. */
header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box;
}

/* iOS zooms the page when a field under 16px is focused. */
@media (max-width: 768px) {
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size: max(16px, 1em);
  }
}

/* Inner page heroes keep their tablet top padding (90-120px) on phones, which left a tall empty
   band under the header. The homepage hero slides under the header instead, so it is unaffected. */
@media (max-width: 640px) {
  .mma-hero,
  .mds-hero,
  .mmw-hero,
  .mmp-hero,
  .blog-hero,
  .mmc-hero {
    padding-top: 40px !important;
  }
  .wp-block-group.alignfull:has(> .mmc-hero),
  .mmc-hero.alignfull {
    margin-top: 0 !important;
  }
}

/* Blog posts are capped at 820px with no side padding, so below that the text ran right to the
   screen edges. */
@media (max-width: 860px) {
  .mm-blog {
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
}

/* Blog card scrollers (About, Blogs and every post). On phones each card was the full width of
   the scroller plus its border, so it was wider than the scroller. Browsers don't snap to a card
   that is wider than the scroller, so a swipe could stop with two cards half showing. Make the
   cards fit, with side margins and a peek of the next card. The Blogs page lays the same cards
   out as a grid inside .blog-wrap, so it is left alone. */
@media (max-width: 700px) {
  :not(.blog-wrap) > .blog-slider-wrap .blog-slider {
    gap: 14px;
    padding-left: 20px;
    padding-right: 20px;
    scroll-padding-inline: 20px;
  }
  :not(.blog-wrap) > .blog-slider-wrap .blog-card {
    flex: 0 0 86%;
    min-width: 0;
    box-sizing: border-box;
    scroll-snap-stop: always;
  }
  :not(.blog-wrap) > .blog-slider-wrap .blog-card img {
    height: 220px;
  }
}

/* Contact page WhatsApp button: it had no colour set, so it showed Stackable's default blue.
   Match the phone button next to it. */
.stk-75f549c .stk-button {
  background: #ff808b !important;
}
