.smp-consistent{--smp-ink:#34352f;--smp-orange:#f8971d;--smp-paper:#faf9f6;--smp-line:#e4e1d8}
.smp-consistent .entry-content :is(.smp-growth,.smp-local-service){max-width:1160px;padding:48px 12px}
.smp-consistent .entry-content :is(.smp-growth,.smp-local-service) h2{font-size:clamp(26px,2.6vw,34px);font-weight:700;line-height:1.25;margin:0 0 22px}
.smp-consistent .entry-content :is(.smp-growth,.smp-local-service) h3{font-size:22px;font-weight:700;line-height:1.35;margin:0 0 14px}
.smp-consistent .entry-content :is(.smp-growth,.smp-local-service) :is(p,li),.smp-consistent .entry-content .wpb_text_column :is(p,li){font-size:16px;line-height:1.75}
.smp-consistent:not(.home) .entry-content .wpb_text_column h2{font-size:clamp(26px,2.6vw,34px)!important;line-height:1.25;font-weight:700}
.smp-consistent:not(.home) .entry-content .wpb_text_column h3{font-size:22px;line-height:1.35;font-weight:700}
.smp-consistent .entry-content :is(.smp-growth-lead,.smp-service-lead){font-size:19px!important;line-height:1.7;max-width:880px;margin-bottom:28px}
.smp-consistent .smp-growth>p{max-width:900px}
.smp-consistent :is(.smp-growth-kicker,.smp-eyebrow){font-size:12px!important;font-weight:700;letter-spacing:1.4px;line-height:1.5!important}
.smp-consistent .entry-content :is(.smp-growth-grid,.smp-service-grid){gap:22px;margin:28px 0}
.smp-consistent .entry-content :is(.smp-growth-grid>article,.smp-service-card){padding:28px;border:1px solid var(--smp-line);border-top:3px solid var(--smp-orange);border-radius:12px;background:var(--smp-paper)}
.smp-consistent .entry-content :is(a.smp-growth-button,a.smp-service-button,a.vc_btn3){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;max-width:100%;padding:14px 24px!important;border:1px solid transparent!important;border-radius:28px!important;background:#f8971d!important;background-image:none!important;color:#25251f!important;box-shadow:none!important;font:600 15px/1.5 Montserrat,Arial,sans-serif!important;text-decoration:none!important;white-space:normal;text-align:center;transition:background-color .15s ease}
.smp-consistent .entry-content :is(a.smp-growth-button,a.smp-service-button,a.vc_btn3):hover{background:#ffb43f!important}
.smp-consistent .entry-content .vc_btn3-icon{position:static!important;transform:none!important;line-height:1!important;margin:0!important}
.smp-consistent .entry-content :is(a.smp-growth-button,a.smp-service-button,a.vc_btn3):focus-visible{outline:3px solid #805000;outline-offset:4px}
.smp-consistent .smp-page-banner{padding-top:126px!important;padding-bottom:44px!important;background-image:url('/wp-content/uploads/2021/12/title-BG.svg?id=807')!important;background-size:cover!important;background-position:center!important;min-height:0!important}
.smp-page-banner .smp-banner-copy{max-width:1060px;margin:auto;padding:0 12px;text-align:center}
.smp-consistent .smp-page-banner .wpb_raw_code{margin-bottom:0}
.smp-consistent .wpb_raw_code:has(>.wpb_wrapper>details.smp-faq){margin-bottom:0}
.smp-consistent.page-id-118{background:#fff}
.smp-consistent .smp-page-banner h1{font:700 clamp(32px,3.5vw,44px)/1.18 Montserrat,Arial,sans-serif!important;color:#25251f!important;text-align:center;margin:0 auto 20px;max-width:1000px;text-wrap:balance}
.smp-consistent .smp-page-banner .smp-banner-lead{font-size:19px!important;line-height:1.65!important;max-width:820px;margin:0 auto;color:#34352f}
.smp-page-banner .smp-banner-actions{margin-top:26px}
.smp-consistent .smp-page-banner a.smp-growth-button{background:#3f4039!important;color:#fff!important}
.smp-consistent .smp-page-banner a.smp-growth-button:hover{background:#25251f!important}
.smp-consistent .breadcrumb-c a{color:#ffcf8c!important}
.smp-consistent .breadcrumb-c{padding:20px 16px!important;margin:0!important;font-size:12px;line-height:1.6;text-align:center}
.smp-consistent .vc_row:has(.breadcrumb-c){padding-top:0!important;padding-bottom:0!important;background:#54534a!important}
.smp-consistent .vc_row:has(.breadcrumb-c) .vc_column-inner{padding-top:0!important;padding-bottom:0!important}
.smp-consistent .vc_row:has(.breadcrumb-c) .wpb_content_element{margin-bottom:0!important}
.smp-consistent .wpb_wrapper:has(>.breadcrumb-c)>p{margin:0!important;font-size:0;line-height:0}
.smp-consistent .smp-disclosures{margin:28px 0}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq){box-sizing:border-box;border:1px solid var(--smp-line);border-radius:10px;background:#fff;color:var(--smp-ink);padding:0;margin:0 0 12px;overflow:hidden;text-align:left}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:20px 22px;color:var(--smp-ink);font:600 17px/1.55 Montserrat,Arial,sans-serif}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>summary::-webkit-details-marker{display:none}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>summary::after{content:'+';display:block;flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#fff1d9;color:#805000;font:500 23px/25px Arial,sans-serif;text-align:center}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)[open]>summary::after{content:'−'}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)[open]>summary{background:#fff8ed}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>summary:focus-visible{outline:3px solid #805000;outline-offset:-4px}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>div{padding:20px 22px 2px;max-width:none}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>p{padding:20px 22px!important;margin:0!important;max-width:none}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq) :is(p,li){color:var(--smp-ink);font-size:16px;line-height:1.75}
.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq) a{color:#805000;text-decoration:underline;text-underline-offset:3px}
.smp-consistent .smp-section-nav{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0}
.smp-consistent .smp-section-nav a{display:inline-block;padding:10px 16px;border:1px solid #d7cbb5;border-radius:24px;background:#fffaf2;font-size:14px;color:#5d400e;text-decoration:none}
.smp-consistent .smp-growth[id]{scroll-margin-top:130px}
.smp-consistent .smp-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center}
.smp-consistent .smp-split>div{min-width:0}.smp-consistent .smp-video-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;display:block;background:#f2f0eb}
.smp-consistent .smp-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:28px 0}
.smp-directory-grid article{border:1px solid var(--smp-line);border-top:3px solid var(--smp-orange);border-radius:12px;padding:28px;background:var(--smp-paper);min-width:0}
.smp-directory-grid .smp-directory-links{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:20px}.smp-directory-links a{font-size:15px}
.smp-consistent .smp-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;list-style:none;margin:28px 0 0;padding:0;counter-reset:smp-steps}
.smp-step-grid li{min-width:0;counter-increment:smp-steps;border-top:1px solid #d7cbb5;padding-top:20px}
.smp-step-grid li::before{content:'0' counter(smp-steps);display:block;font-weight:700;color:#805000;margin-bottom:14px}
.smp-step-grid strong{display:block;margin-bottom:10px;font-size:18px}
@media(max-width:1024px){.smp-consistent .smp-page-banner{padding-top:56px!important;padding-bottom:36px!important}.smp-consistent .entry-content :is(.smp-growth,.smp-local-service){padding:38px 10px}.smp-consistent .smp-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.smp-consistent .smp-split{grid-template-columns:1fr;gap:28px}.smp-consistent .entry-content :is(.smp-growth-grid>article,.smp-service-card,.smp-directory-grid article){padding:24px}}
@media(max-width:600px){.smp-consistent .smp-page-banner{padding-top:48px!important;padding-bottom:32px!important}.smp-consistent .smp-page-banner h1{font-size:32px!important}.smp-consistent .smp-page-banner .smp-banner-lead{font-size:17px!important}.smp-consistent .smp-page-banner .smp-banner-copy{padding:0 4px}.smp-consistent .entry-content :is(.smp-growth,.smp-local-service){padding:32px 4px}.smp-consistent .entry-content :is(.smp-growth-lead,.smp-service-lead){font-size:17px!important}.smp-consistent .smp-directory-grid{grid-template-columns:minmax(0,1fr);gap:16px}.smp-consistent .entry-content :is(.smp-growth,.smp-local-service) h3{font-size:21px}.smp-consistent .smp-step-grid{grid-template-columns:1fr}.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>summary{padding:17px 18px;font-size:16px}.smp-consistent .entry-content :is(.smp-disclosures details,.smp-growth-faq details,details.smp-service-faq,details.smp-faq)>div{padding:18px 18px 0}.smp-consistent .smp-section-nav a{font-size:13px;padding:10px 14px}}
@media(prefers-reduced-motion:reduce){.smp-consistent .entry-content :is(a.smp-growth-button,a.smp-service-button,a.vc_btn3){transition:none}}
/* Keep the two floating controls separate while the reCAPTCHA badge is docked. */
body:has(.grecaptcha-badge[data-style="bottomright"]) #smp-assistant-open {
  bottom: max(86px, calc(72px + env(safe-area-inset-bottom)));
}

.smp-consistent .entry-content :is(p, li, td, th, figcaption) {
  overflow-wrap: anywhere;
}
.smp-consistent .entry-content :is(img, video, iframe) {
  max-width: 100%;
}
.smp-consistent .entry-content table.tablesaw {
  width: 100%;
  max-width: 100%;
}
.smp-consistent .entry-content :is(.wpb_text_column, .smp-growth) > .wpb_wrapper > p:empty {
  display: none;
}
.smp-consistent .entry-content .with-3-btn .smp-enquiry-links {
  justify-content: flex-start;
}
.smp-consistent .entry-content .wpb_text_column h1 {
  line-height: 1.17;
  text-wrap: balance;
}
.smp-consistent .entry-content .smp-work-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
  margin-top: 24px;
}
.smp-work-grid figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid #e4e1d8;
  border-radius: 14px;
  background: #faf9f6;
}
.smp-work-grid img {
  display: block;
  width: 100%;
  height: auto;
  border-bottom: 1px solid #e4e1d8;
  background: #fff;
}
.smp-work-grid figcaption {
  display: grid;
  gap: 5px;
  padding: 16px 18px 18px;
  color: #34352f;
  font-size: 14px;
  line-height: 1.5;
}
.smp-work-grid figcaption strong {
  font-size: 17px;
}
.smp-work-grid a {
  display: block;
}
.smp-work-grid a:focus-visible {
  outline-offset: -4px;
}
@media (max-width: 1024px) {
  .smp-consistent .entry-content :is(h1.strong-smp, .wpb_text_column h1.vc_custom_heading) {
    font-size: clamp(28px, 4.1vw, 38px) !important;
    line-height: 1.16 !important;
    text-wrap: balance;
  }
  .smp-consistent .entry-content .top-heading {
    font-size: clamp(29px, 5vw, 46px) !important;
    line-height: 1.17 !important;
    text-wrap: balance;
  }
}
@media (max-width: 680px) {
  .smp-consistent .entry-content .smp-work-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .smp-consistent .entry-content .with-3-btn .smp-enquiry-links {
    justify-content: center;
  }
}


/* WPBakery's positioned gallery thumbnails can retain stale offsets after resize. */
.smp-consistent .entry-content .wpb_image_grid_ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 128px), 1fr));
  gap: 10px;
  height: auto !important;
  margin: 0;
  padding: 0;
  list-style: none;
}
.smp-consistent .entry-content .wpb_image_grid_ul > li {
  position: static !important;
  transform: none !important;
  transition: none !important;
  float: none;
  margin: 0;
  min-width: 0;
}
.smp-consistent .entry-content .wpb_image_grid_ul img {
  display: block;
  width: 100%;
  height: auto;
}


/* These campaign pages already have a static alternative for smaller displays. */
@media (max-width: 1199px) {
  :is(.page-id-81105, .page-id-119735) .mockup_wrap {
    display: none !important;
  }
  .smp-consistent.page-id-51193 .entry-content .smp-enquiry-links {
    justify-content: flex-start;
  }
}


/* Service cards keep the copy and action in the same flow at every width. */
.smp-consistent .entry-content .smp-home-services .smp-growth-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.smp-home-services .smp-growth-grid > article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.smp-home-services .smp-growth-grid > article > img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  margin-bottom: 16px;
}
.smp-home-services .smp-growth-grid > article > a {
  margin-top: auto;
}
.smp-consistent .smp-portfolio-more {
  margin: 26px 0 0;
}
.smp-portfolio-more > summary {
  list-style: none;
  cursor: pointer;
  width: fit-content;
  max-width: 100%;
  padding: 14px 22px;
  border: 1px solid #d6cbb6;
  border-radius: 28px;
  color: #34352f;
  background: #fff7e9;
  font-weight: 600;
  line-height: 1.5;
}
.smp-portfolio-more > summary::-webkit-details-marker { display: none; }
.smp-portfolio-more > summary::after { content: ' +'; padding-left: 8px; }
.smp-portfolio-more[open] > summary::after { content: ' −'; }
.smp-portfolio-more > summary:focus-visible { outline: 3px solid #805000; outline-offset: 4px; }
.smp-website-showcase .smp-work-grid figure { display: flex; flex-direction: column; }
.smp-website-showcase .smp-work-grid figcaption { flex: 1; }

/* Older WPBakery benefit cards also need enough room for their buttons. */
.smp-consistent .entry-content .box-shadow > .wpb_column > .vc_column-inner
  > .wpb_wrapper > .vc_btn3-container {
  position: static !important;
  inset: auto !important;
}
.smp-consistent .entry-content .box-shadow > .wpb_column > .vc_column-inner:has(.vc_btn3-container):hover {
  transform: none;
}
@media (max-width: 960px) {
  .smp-consistent .entry-content .smp-home-services .smp-growth-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .smp-consistent .entry-content .smp-home-services .smp-growth-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Dark enquiry rows in the page builder. Use the same palette as the enquiry band. */
.smp-consistent .entry-content .smp-dark-callout {
  background: var(--smp-callout-bg, #54534a);
  padding-block: clamp(30px, 5vw, 58px);
  color: #fff;
}

.smp-consistent .smp-dark-callout .wpb_text_column .wpb_wrapper {
  max-width: 52rem;
  margin-inline: auto;
  text-align: center;
}

.smp-consistent .smp-dark-callout .wpb_text_column :is(h2, p) {
  color: inherit;
}

.smp-consistent .smp-dark-callout .wpb_text_column h2 {
  margin-inline: auto;
  text-wrap: balance;
}

.smp-consistent .smp-dark-callout .wpb_text_column p:last-child,
.smp-consistent .smp-dark-callout .vc_btn3-container:last-child {
  margin-bottom: 0;
}

.smp-consistent .smp-dark-callout .wpb_text_column a {
  color: var(--smp-callout-link, #ffcf8c);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.smp-consistent .smp-dark-callout a:focus-visible {
  outline: 3px solid var(--smp-callout-link, #ffcf8c);
  outline-offset: 4px;
}

.smp-consistent .entry-content .smp-callout-heading {
  color: var(--smp-callout-link, #ffcf8c);
}
