
/* DIG-ASTRA-CHILD-THEME
Theme Name: DIG for Astra + Elementor
Theme URI: https://devineinsightsgroup.com/
Description: Devine Insights Group child theme for Astra. Activating it loads the bundled Elementor page designs and DIG brand system.
Author: Devine Insights Group
Template: astra
Version: 1.0.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: dig-astra-child
*/

/*
 * Devine Insights Group — Astra Theme Custom CSS
 *
 * HOW TO USE:
 * 1. Log into WordPress at devineinsightsgroup.com/wp-admin
 * 2. Go to Appearance → Customize → Additional CSS
 * 3. Paste the entire contents of this file
 * 4. Click Publish
 *
 * FONTS: Set in Astra Customizer → Global → Typography:
 *   Heading Font → Playfair Display
 *   Body Font    → Inter
 *
 * COLORS: Also set Global Colors in Astra Customizer to match tokens below.
 *
 * Last updated: 2025
 */

/* ════════════════════════════════════════════════════════════
   DESIGN TOKENS
   ════════════════════════════════════════════════════════════ */
:root {
  --dig-plum:         #5B1E4D;
  --dig-plum-dark:    #3D0D33;
  --dig-plum-mid:     #7A2A68;
  --dig-gold:         #C49A25;
  --dig-gold-hover:   #A6801B;
  --dig-gold-light:   #F0DFA0;
  --dig-slate:        #5A6270;
  --dig-warm-gray:    #A4A1A3;
  --dig-charcoal:     #1F1F1F;
  --dig-white:        #FFFFFF;
  --dig-bg:           #F0EFED;   /* warm gray page background */
  --dig-bg-card:      #FFFFFF;   /* white — cards & content blocks on warm gray */
  --dig-off-white:    #F9F8F6;
  --dig-border:       #E0DBD4;   /* slightly darker for more visible separation */
  --dig-text:         #1A1A1C;
  --dig-text-muted:   #50505C;   /* darkened from #6B6B78 for WCAG AA on white */
  --dig-radius:       4px;
  --dig-transition:   0.22s ease;
  --dig-shadow:       0 2px 16px rgba(86,22,64,0.10);
  --dig-shadow-lg:    0 8px 40px rgba(86,22,64,0.18);
  --dig-shadow-card:  0 1px 4px rgba(0,0,0,0.06), 0 4px 20px rgba(91,30,77,0.08);
}

/* Horizontal header lockup: the master logo artwork is square, so the header
   pairs the icon with a crisp typographic wordmark for reliable visibility. */
.dig-brand-lockup {
  display: inline-flex !important;
  align-items: center;
  gap: 11px;
  width: auto !important;
  text-decoration: none;
}

.dig-brand-lockup .custom-logo {
  width: 52px !important;
  height: 44px !important;
  object-fit: contain;
}

.dig-brand-words { display: flex; flex-direction: column; line-height: 1; }
.dig-brand-words strong {
  color: #4a1238;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.38rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.dig-brand-words small {
  margin-top: 6px;
  color: #C49A25;
  font-family: 'Inter', sans-serif;
  font-size: .55rem;
  font-weight: 800;
  letter-spacing: .3em;
  text-transform: uppercase;
}

/* ════════════════════════════════════════════════════════════
   BASE TYPOGRAPHY
   ════════════════════════════════════════════════════════════ */
body,
.ast-page-builder-template body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  color: var(--dig-text) !important;
  background-color: var(--dig-bg) !important;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .entry-title,
.ast-page-builder-template h1,
.ast-page-builder-template h2,
.ast-page-builder-template h3 {
  font-family: 'Playfair Display', Georgia, serif !important;
  color: var(--dig-charcoal);
  line-height: 1.15 !important;
  font-weight: 700 !important;
}

h4, h5, h6 {
  font-family: 'Inter', sans-serif !important;
}

p, li, td, th {
  color: var(--dig-text-muted);
  line-height: 1.75 !important;
}

a {
  color: var(--dig-plum) !important;
  transition: color var(--dig-transition) !important;
  text-decoration: none !important;
}

a:hover { color: var(--dig-gold) !important; }

/* ════════════════════════════════════════════════════════════
   NAVIGATION
   ════════════════════════════════════════════════════════════ */

/* Header bar */
.site-header,
.main-header-bar,
.ast-primary-header-bar {
  background-color: var(--dig-bg-card) !important;
  border-bottom: 1.5px solid var(--dig-border) !important;
  box-shadow: none !important;
  transition: box-shadow var(--dig-transition) !important;
}

.site-header.sticky-header,
.main-header-bar.sticky-header,
.ast-primary-header-bar.sticky-header,
.site-header:not(.ast-no-scroll) {
  box-shadow: 0 2px 20px rgba(0,0,0,0.08) !important;
}

/* Logo sizing */
.ast-site-identity img,
.site-logo img,
.custom-logo {
  max-height: 44px !important;
  width: auto !important;
}

/* Nav links */
.ast-primary-menu > li > a,
.main-navigation a {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--dig-text-muted) !important;
  padding: 8px 14px !important;
  border-radius: var(--dig-radius) !important;
  transition: color var(--dig-transition) !important;
}

.ast-primary-menu > li > a:hover,
.main-navigation a:hover,
.ast-primary-menu > .current-menu-item > a,
.ast-primary-menu > .current_page_item > a {
  color: var(--dig-plum) !important;
  background: transparent !important;
}

/* Active nav underline (gold) */
.ast-primary-menu > .current-menu-item > a::after,
.ast-primary-menu > .current_page_item > a::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  bottom: -2px !important;
  left: 14px !important;
  right: 14px !important;
  height: 2px !important;
  background: var(--dig-gold) !important;
}

.ast-primary-menu > li { position: relative !important; }

/* Dropdown menus */
.ast-primary-menu ul.sub-menu,
.main-navigation ul.sub-menu {
  background: var(--dig-white) !important;
  border: 1px solid var(--dig-border) !important;
  border-radius: 6px !important;
  box-shadow: var(--dig-shadow-lg) !important;
  padding: 8px 0 !important;
}

.ast-primary-menu .sub-menu a,
.main-navigation .sub-menu a {
  font-size: 0.8rem !important;
  color: var(--dig-text-muted) !important;
  padding: 10px 20px !important;
}

.ast-primary-menu .sub-menu a:hover,
.main-navigation .sub-menu a:hover {
  background: var(--dig-off-white) !important;
  color: var(--dig-plum) !important;
}

/* "Book a Call" button in nav */
.ast-header-custom-item .ast-custom-button-link,
.header-cta-btn,
.nav-book-call {
  background: var(--dig-plum) !important;
  color: var(--dig-white) !important;
  border: 2px solid var(--dig-plum) !important;
  border-radius: var(--dig-radius) !important;
  padding: 10px 22px !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: all var(--dig-transition) !important;
}

.ast-header-custom-item .ast-custom-button-link:hover,
.header-cta-btn:hover,
.nav-book-call:hover {
  background: var(--dig-plum-mid) !important;
  border-color: var(--dig-plum-mid) !important;
  color: var(--dig-white) !important;
}

/* ════════════════════════════════════════════════════════════
   BUTTONS (Global)
   ════════════════════════════════════════════════════════════ */
.ast-button,
.ast-custom-button,
.elementor-button,
button[type="submit"],
input[type="submit"],
.wpcf7-submit,
.wp-block-button__link {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: var(--dig-radius) !important;
  padding: 13px 28px !important;
  transition: all var(--dig-transition) !important;
  cursor: pointer !important;
}

/* Primary button (plum) */
.ast-button,
.elementor-button,
.wp-block-button__link {
  background: var(--dig-plum) !important;
  color: var(--dig-white) !important;
  border: 2px solid var(--dig-plum) !important;
}

.ast-button:hover,
.elementor-button:hover,
.elementor-button:focus,
.wp-block-button__link:hover {
  background: var(--dig-plum-mid) !important;
  border-color: var(--dig-plum-mid) !important;
  color: var(--dig-white) !important;
}

/* Outlined secondary button — add class "btn-outline" in Elementor */
.btn-outline {
  background: transparent !important;
  color: var(--dig-plum) !important;
  border: 2px solid var(--dig-plum) !important;
}

.btn-outline:hover {
  background: var(--dig-plum) !important;
  color: var(--dig-white) !important;
}

/* Elementor applies the custom class to the widget wrapper, not always the link. */
.btn-outline .elementor-button {
  background: transparent !important;
  color: var(--dig-plum) !important;
  border-color: var(--dig-plum) !important;
}

.btn-outline .elementor-button:hover,
.btn-outline .elementor-button:focus {
  background: var(--dig-plum) !important;
  color: var(--dig-white) !important;
}

/* Primary calls to action on the bundled Elementor pages are HTML anchors. */
.elementor-widget-html a.trigger-contact,
.elementor-widget-html a.trigger-contact:visited {
  color: var(--dig-white) !important;
}

/* Gold accent button — add class "btn-gold" in Elementor */
.btn-gold {
  background: var(--dig-gold) !important;
  color: var(--dig-white) !important;
  border: 2px solid var(--dig-gold) !important;
}

.btn-gold:hover {
  background: var(--dig-gold-hover) !important;
  border-color: var(--dig-gold-hover) !important;
}

/* ════════════════════════════════════════════════════════════
   SECTION LABELS & HEADINGS
   ════════════════════════════════════════════════════════════ */

/* Eyebrow label — add class "dig-eyebrow" to text element */
.dig-eyebrow,
.section-eyebrow {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--dig-gold) !important;
  display: block !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid var(--dig-gold) !important;
  width: fit-content !important;
  margin-bottom: 16px !important;
}

/* Gold title underline — add class "dig-underline" to heading element */
.dig-underline::after,
h2.dig-underline::after {
  content: '' !important;
  display: block !important;
  width: 52px !important;
  height: 3px !important;
  background: var(--dig-gold) !important;
  margin-top: 16px !important;
}

h2.dig-underline.centered::after,
.text-center .dig-underline::after {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ════════════════════════════════════════════════════════════
   CARDS (Elementor / Gutenberg)
   ════════════════════════════════════════════════════════════ */

/* Solution / feature cards */
.elementor-widget-container .solution-card,
.dig-card {
  border: 1.5px solid var(--dig-border) !important;
  border-radius: 6px !important;
  padding: 32px 28px !important;
  background: var(--dig-white) !important;
  box-shadow: var(--dig-shadow-card) !important;
  transition: box-shadow var(--dig-transition), border-color var(--dig-transition), transform var(--dig-transition) !important;
}

.elementor-widget-container .solution-card:hover,
.dig-card:hover {
  box-shadow: var(--dig-shadow-lg) !important;
  border-color: var(--dig-gold) !important;
  transform: translateY(-3px) !important;
}

/* White card wrapper — add class "dig-card-wrap" to inner sections/containers */
.dig-card-wrap,
.elementor-widget-container .dig-card {
  background: var(--dig-bg-card) !important;
}

/* "Learn More →" link style — add class "dig-link" */
.dig-link,
.solution-card .card-link {
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--dig-gold) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: gap var(--dig-transition) !important;
}

.dig-link:hover,
.solution-card:hover .card-link {
  gap: 10px !important;
  color: var(--dig-gold-hover) !important;
}

/* ════════════════════════════════════════════════════════════
   DARK SECTIONS (add class "dig-dark-section" to section)
   ════════════════════════════════════════════════════════════ */
.dig-dark-section,
.elementor-section.dig-dark-section {
  background-color: var(--dig-plum-dark) !important;
  border-top: 3px solid var(--dig-gold) !important;
}

.dig-dark-section h1,
.dig-dark-section h2,
.dig-dark-section h3,
.dig-dark-section h4 {
  color: var(--dig-white) !important;
}

.dig-dark-section p,
.dig-dark-section li {
  color: rgba(255,255,255,0.78) !important;
}

.dig-dark-section .dig-eyebrow,
.dig-dark-section .section-eyebrow {
  color: var(--dig-gold) !important;
  border-color: var(--dig-gold) !important;
}

.dig-dark-section a:not(.ast-button):not(.btn-outline):not(.btn-gold) {
  color: var(--dig-gold) !important;
}

.dig-dark-section a:hover {
  color: var(--dig-gold-light) !important;
}

/* ════════════════════════════════════════════════════════════
   LIGHT ALT SECTIONS (add class "dig-light-section")
   Use on sections that should read as white cards on the warm-gray page bg.
   ════════════════════════════════════════════════════════════ */
.dig-light-section {
  background-color: var(--dig-bg-card) !important;
  border-top: 1px solid var(--dig-border) !important;
  border-bottom: 1px solid var(--dig-border) !important;
}

/* Cream section — subtle warm break between white sections */
.dig-cream-section {
  background-color: var(--dig-off-white) !important;
  border-top: 1px solid var(--dig-border) !important;
}

/* Gold accent band — add class "dig-gold-band" to a 1-section divider */
.dig-gold-band {
  background-color: var(--dig-gold) !important;
  padding: 3px 0 !important;
}

/* Plum mid section — for a lighter plum accent block */
.dig-plum-section {
  background-color: var(--dig-plum) !important;
}
.dig-plum-section h1, .dig-plum-section h2, .dig-plum-section h3,
.dig-plum-section h4, .dig-plum-section p, .dig-plum-section li {
  color: #FFFFFF !important;
}

/* ════════════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════════════ */
.site-footer,
.ast-footer-overlay,
footer.site-footer {
  background-color: var(--dig-plum-dark) !important;
  color: rgba(255,255,255,0.75) !important;
  border-top: 3px solid var(--dig-gold) !important;
}

/* Keep Astra's starter footer compact until dedicated footer content is added. */
.site-primary-footer-wrap {
  padding-top: 28px !important;
  padding-bottom: 28px !important;
}

.site-primary-footer-inner-wrap {
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto) !important;
  align-items: center !important;
}

.site-footer-primary-section-3,
.site-footer-primary-section-4,
.site-footer .footer-social-item[href=""] {
  display: none !important;
}

.site-footer .widget,
.site-footer .widget:last-child,
.site-footer ul {
  margin-bottom: 0 !important;
}

.site-footer .widget-title {
  margin-bottom: 8px !important;
}

.site-below-footer-wrap {
  min-height: 0 !important;
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6,
.ast-footer-overlay h1,
.ast-footer-overlay h2,
.ast-footer-overlay h3,
.ast-footer-overlay h4,
.ast-footer-overlay h5,
.ast-footer-overlay h6 {
  color: var(--dig-white) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

.site-footer a,
.ast-footer-overlay a {
  color: rgba(255,255,255,0.65) !important;
  font-size: 0.82rem !important;
  transition: color var(--dig-transition) !important;
}

.site-footer a:hover,
.ast-footer-overlay a:hover {
  color: var(--dig-gold) !important;
}

.site-footer p,
.ast-footer-overlay p {
  color: rgba(255,255,255,0.6) !important;
  font-size: 0.8rem !important;
}

/* Footer bottom bar */
.ast-small-footer,
.footer-bar-wrap {
  background: rgba(0,0,0,0.25) !important;
  border-top: 1px solid rgba(255,255,255,0.1) !important;
  padding: 16px 0 !important;
}

.ast-small-footer p,
.footer-bar-wrap p {
  font-size: 0.72rem !important;
  color: rgba(255,255,255,0.4) !important;
}

/* Newsletter / subscribe form in footer */
.footer-newsletter-form input[type="email"],
.dig-newsletter input[type="email"] {
  background: rgba(255,255,255,0.1) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-radius: var(--dig-radius) !important;
  color: var(--dig-white) !important;
  padding: 12px 16px !important;
  font-size: 0.82rem !important;
  width: 100% !important;
  margin-bottom: 10px !important;
}

.footer-newsletter-form input::placeholder,
.dig-newsletter input::placeholder {
  color: rgba(255,255,255,0.4) !important;
}

.footer-newsletter-form button,
.footer-newsletter-form input[type="submit"],
.dig-newsletter button {
  background: var(--dig-gold) !important;
  color: var(--dig-white) !important;
  border: none !important;
  border-radius: var(--dig-radius) !important;
  width: 100% !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  padding: 12px 20px !important;
}

.footer-newsletter-form button:hover,
.dig-newsletter button:hover {
  background: var(--dig-gold-hover) !important;
}

/* Footer social icons */
.dig-social-links a,
.ast-social-links a {
  display: inline-flex !important;
  width: 36px !important;
  height: 36px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-radius: var(--dig-radius) !important;
  color: rgba(255,255,255,0.7) !important;
  font-size: 0.85rem !important;
  transition: all var(--dig-transition) !important;
  margin-right: 8px !important;
}

.dig-social-links a:hover,
.ast-social-links a:hover {
  background: rgba(255,255,255,0.1) !important;
  border-color: rgba(255,255,255,0.4) !important;
  color: var(--dig-white) !important;
}

/* ════════════════════════════════════════════════════════════
   HERO SECTION HELPERS
   ════════════════════════════════════════════════════════════ */

/* Breadcrumb */
.ast-breadcrumbs-wrapper,
.breadcrumbs {
  font-size: 0.75rem !important;
  color: var(--dig-text-muted) !important;
}

.ast-breadcrumbs-wrapper a,
.breadcrumbs a {
  color: var(--dig-text-muted) !important;
}

.ast-breadcrumbs-wrapper .trail-end,
.breadcrumbs .current {
  color: var(--dig-gold) !important;
}

/* Gold divider bar (used below hero H1) — add class "dig-divider" to HR */
hr.dig-divider,
.dig-divider {
  border: none !important;
  height: 3px !important;
  width: 48px !important;
  background: var(--dig-gold) !important;
  margin: 16px 0 24px !important;
}

/* ════════════════════════════════════════════════════════════
   PROCESS / TIMELINE CONNECTOR
   ════════════════════════════════════════════════════════════ */

/* Dashed gold connector line (used between process steps) */
.dig-connector {
  height: 2px !important;
  background: repeating-linear-gradient(
    90deg,
    var(--dig-gold) 0,
    var(--dig-gold) 6px,
    transparent 6px,
    transparent 12px
  ) !important;
  opacity: 0.5 !important;
}

/* Process step circles */
.dig-step-circle {
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  background: var(--dig-plum) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--dig-gold) !important;
  margin: 0 auto 12px !important;
}

/* ════════════════════════════════════════════════════════════
   CHECKLIST ITEMS (add class "dig-check" to list items)
   ════════════════════════════════════════════════════════════ */
.dig-checklist li,
ul.dig-check li {
  position: relative !important;
  padding-left: 30px !important;
  margin-bottom: 14px !important;
  color: var(--dig-text-muted) !important;
  font-size: 0.9rem !important;
}

.dig-checklist li::before,
ul.dig-check li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 4px !important;
  width: 18px !important;
  height: 18px !important;
  background: var(--dig-gold) !important;
  border-radius: 50% !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3E%3Cpath d='M13.5 3.5L6 11 2.5 7.5'  stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 11px !important;
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE FIXES
   ════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .ast-primary-menu,
  .main-navigation { display: none !important; }

  .site-header .ast-mobile-menu-buttons { display: flex !important; }

  .ast-header-custom-item .ast-custom-button-link {
    padding: 9px 16px !important;
    font-size: 0.68rem !important;
  }

  h1 { font-size: clamp(1.875rem, 6vw, 3rem) !important; }
  h2 { font-size: clamp(1.5rem, 5vw, 2.25rem) !important; }

  .site-primary-footer-inner-wrap {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    text-align: center !important;
  }
}

@media (max-width: 600px) {
  .container,
  .ast-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .dig-eyebrow, .section-eyebrow { font-size: 0.62rem !important; }

  .elementor-top-section {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .elementor-top-section:first-child {
    padding-top: 54px !important;
  }

  .site-primary-footer-wrap {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }
}

/* Home: the heading occupies its own row and the three engagement cards share
   the next row evenly. Elementor's legacy section layout otherwise shrinks all
   four columns onto one line at desktop widths. */
.elementor-element-hm-s2pillars > .elementor-container {
  flex-wrap: wrap !important;
}

.elementor-element-hm-c2head {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element-hm-c2p1,
.elementor-element-hm-c2p2,
.elementor-element-hm-c2p3 {
  flex: 0 0 33.333% !important;
  max-width: 33.333% !important;
}

.elementor-element-hm-c2p1 > .elementor-widget-wrap,
.elementor-element-hm-c2p2 > .elementor-widget-wrap,
.elementor-element-hm-c2p3 > .elementor-widget-wrap {
  padding: 10px !important;
}

.elementor-element-hm-c1right p {
  color: rgba(255,255,255,0.88) !important;
}

.elementor-element-hm-c1right .elementor-widget-container > div > p:first-of-type {
  color: var(--dig-gold) !important;
}

/* Tighten the transition from the Home hero into the engagement cards. */
.elementor-element-hm-s2pillars {
  padding: 54px 20px 60px !important;
}

/* Elementor does not generate reliable percentage widths for the custom
   starter-template column sizes. Keep the desktop hero intentionally balanced. */
@media (min-width: 922px) {
  .elementor-element-hm-c1left {
    flex: 0 0 66% !important;
    max-width: 66% !important;
  }

  .elementor-element-hm-c1right {
    flex: 0 0 34% !important;
    max-width: 34% !important;
  }

  .elementor-element-hm-c1left > .elementor-widget-wrap {
    padding: 72px clamp(44px, 5vw, 72px) !important;
  }

  .elementor-element-hm-c1right > .elementor-widget-wrap {
    padding: 44px 38px !important;
  }
}

/* At tablet width, two comfortable cards read better than three narrow text
   columns. Center the third card on its own row. */
@media (min-width: 768px) and (max-width: 921px) {
  .elementor-element-hm-c1left,
  .elementor-element-hm-c1right {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  .elementor-element-hm-c1right > .elementor-widget-wrap {
    padding: 48px !important;
  }

  .elementor-element-hm-c2p1,
  .elementor-element-hm-c2p2,
  .elementor-element-hm-c2p3 {
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }

  .elementor-element-hm-c2p3 {
    margin-left: 25% !important;
  }

  .elementor-element-hm-w2p1 > .elementor-widget-container > div,
  .elementor-element-hm-w2p2 > .elementor-widget-container > div,
  .elementor-element-hm-w2p3 > .elementor-widget-container > div {
    min-height: 0 !important;
  }

  .elementor-element-hm-w1h1 h1 {
    font-size: 2.5rem !important;
    max-width: 620px;
  }

  .elementor-element-hm-s3flow .dig-connector {
    display: none !important;
  }
}

/* Capabilities: the introduction and card grid are one visual thought. Avoid
   stacking the original bottom and top section padding into a large dead zone. */
.elementor-element-caphero1 {
  padding: 52px 24px 28px !important;
}

.elementor-element-capgrid1 {
  padding: 28px 24px 56px !important;
}

@media (max-width: 767px) {
  .elementor-element-hm-c1left,
  .elementor-element-hm-c1right {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  .elementor-element-hm-c1left > .elementor-widget-wrap {
    padding: 48px 28px !important;
  }

  .elementor-element-hm-c1right > .elementor-widget-wrap {
    padding: 44px 28px !important;
  }

  .elementor-element-hm-c2p1,
  .elementor-element-hm-c2p2,
  .elementor-element-hm-c2p3 {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
}

/* Shared solution-page selectors. Each template has its own short Elementor
   prefix, so these rules deliberately normalize all seven pages together. */

/* Elementor can preserve a column's intrinsic content width even when its
   percentage width fits on paper. That makes solution-page copy, grids, and
   buttons visibly run beyond the viewport at intermediate browser widths.
   Allow every layer of these templates to shrink inside its parent. */
.elementor-element[class*="elementor-element-aa-"],
.elementor-element[class*="elementor-element-cd-"],
.elementor-element[class*="elementor-element-co-"],
.elementor-element[class*="elementor-element-cm-"],
.elementor-element[class*="elementor-element-ma-"],
.elementor-element[class*="elementor-element-pc-"],
.elementor-element[class*="elementor-element-rw-"],
.elementor-element[class*="elementor-element-aa-"] > .elementor-container,
.elementor-element[class*="elementor-element-cd-"] > .elementor-container,
.elementor-element[class*="elementor-element-co-"] > .elementor-container,
.elementor-element[class*="elementor-element-cm-"] > .elementor-container,
.elementor-element[class*="elementor-element-ma-"] > .elementor-container,
.elementor-element[class*="elementor-element-pc-"] > .elementor-container,
.elementor-element[class*="elementor-element-rw-"] > .elementor-container,
.elementor-element[class*="elementor-element-aa-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-cd-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-co-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-cm-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-ma-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-pc-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-rw-"] > .elementor-widget-wrap,
.elementor-element[class*="elementor-element-aa-"] .elementor-widget-container,
.elementor-element[class*="elementor-element-cd-"] .elementor-widget-container,
.elementor-element[class*="elementor-element-co-"] .elementor-widget-container,
.elementor-element[class*="elementor-element-cm-"] .elementor-widget-container,
.elementor-element[class*="elementor-element-ma-"] .elementor-widget-container,
.elementor-element[class*="elementor-element-pc-"] .elementor-widget-container,
.elementor-element[class*="elementor-element-rw-"] .elementor-widget-container {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.elementor-element:is(
  [class*="elementor-element-aa-s"],
  [class*="elementor-element-cd-s"],
  [class*="elementor-element-co-s"],
  [class*="elementor-element-cm-s"],
  [class*="elementor-element-ma-s"],
  [class*="elementor-element-pc-s"],
  [class*="elementor-element-rw-s"]
) > .elementor-container {
  width: 100%;
  max-width: 1200px;
}

.elementor-element:is(
  [class*="elementor-element-aa-s"],
  [class*="elementor-element-cd-s"],
  [class*="elementor-element-co-s"],
  [class*="elementor-element-cm-s"],
  [class*="elementor-element-ma-s"],
  [class*="elementor-element-pc-s"],
  [class*="elementor-element-rw-s"]
) img {
  max-width: 100%;
  height: auto;
}

.elementor-element:is(.elementor-element-aa-c1left,.elementor-element-aa-c1right,.elementor-element-cd-c1left,.elementor-element-cd-c1right,.elementor-element-co-c1left,.elementor-element-co-c1right,.elementor-element-cm-c1left,.elementor-element-cm-c1right,.elementor-element-ma-c1left,.elementor-element-ma-c1right,.elementor-element-pc-c1left,.elementor-element-pc-c1right) {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element:is(.elementor-element-aa-c1left,.elementor-element-cd-c1left,.elementor-element-co-c1left,.elementor-element-cm-c1left,.elementor-element-ma-c1left,.elementor-element-pc-c1left) > .elementor-widget-wrap {
  padding: 68px clamp(28px, 7vw, 96px) !important;
}

.elementor-element:is(.elementor-element-aa-c1right,.elementor-element-cd-c1right,.elementor-element-co-c1right,.elementor-element-cm-c1right,.elementor-element-ma-c1right,.elementor-element-pc-c1right) > .elementor-widget-wrap {
  padding: 34px clamp(28px, 7vw, 96px) !important;
}

.elementor-element:is(.elementor-element-aa-w1qa,.elementor-element-cd-w1qa,.elementor-element-co-w1qa,.elementor-element-cm-w1qa,.elementor-element-ma-w1qa,.elementor-element-pc-w1qa) > .elementor-widget-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 28px;
}

.elementor-element:is(.elementor-element-aa-w1qa,.elementor-element-cd-w1qa,.elementor-element-co-w1qa,.elementor-element-cm-w1qa,.elementor-element-ma-w1qa,.elementor-element-pc-w1qa) > .elementor-widget-container > p:first-child {
  grid-column: 1 / -1;
  color: var(--dig-gold) !important;
}

.elementor-element:is(.elementor-element-aa-w1qa,.elementor-element-cd-w1qa,.elementor-element-co-w1qa,.elementor-element-cm-w1qa,.elementor-element-ma-w1qa,.elementor-element-pc-w1qa) p {
  color: rgba(255,255,255,0.9) !important;
}

.elementor-element:is(.elementor-element-aa-c2list,.elementor-element-cd-c2list,.elementor-element-co-c2list,.elementor-element-cm-c2list,.elementor-element-ma-c2list,.elementor-element-pc-c2list) {
  display: none !important;
}

.elementor-element:is(.elementor-element-aa-c2img,.elementor-element-cd-c2img,.elementor-element-co-c2img,.elementor-element-cm-c2img,.elementor-element-ma-c2img,.elementor-element-pc-c2img) {
  flex: 0 0 34% !important;
  max-width: 34% !important;
}

.elementor-element:is(.elementor-element-aa-c2text,.elementor-element-cd-c2text,.elementor-element-co-c2text,.elementor-element-cm-c2text,.elementor-element-ma-c2text,.elementor-element-pc-c2text) {
  flex: 0 0 66% !important;
  max-width: 66% !important;
}

.elementor-element:is(.elementor-element-aa-s5out,.elementor-element-cd-s5out,.elementor-element-co-s5out,.elementor-element-cm-s5out,.elementor-element-ma-s5out,.elementor-element-pc-s5out) {
  background: var(--dig-bg) !important;
  border-top: 1px solid var(--dig-border) !important;
  border-bottom: 0 !important;
  padding: 68px clamp(24px, 5vw, 72px) 34px !important;
}

.elementor-element:is(.elementor-element-aa-c5stmt,.elementor-element-aa-c5outcomes,.elementor-element-cd-c5stmt,.elementor-element-cd-c5outcomes,.elementor-element-co-c5stmt,.elementor-element-co-c5outcomes,.elementor-element-cm-c5stmt,.elementor-element-cm-c5outcomes,.elementor-element-ma-c5stmt,.elementor-element-ma-c5outcomes,.elementor-element-pc-c5stmt,.elementor-element-pc-c5outcomes) {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element:is(.elementor-element-aa-c5stmt,.elementor-element-cd-c5stmt,.elementor-element-co-c5stmt,.elementor-element-cm-c5stmt,.elementor-element-ma-c5stmt,.elementor-element-pc-c5stmt) > .elementor-widget-wrap {
  padding: 0 0 34px !important;
  text-align: center;
}

.elementor-element:is(.elementor-element-aa-w5h2,.elementor-element-cd-w5h2,.elementor-element-co-w5h2,.elementor-element-cm-w5h2,.elementor-element-ma-w5h2,.elementor-element-pc-w5h2) h2 {
  color: var(--dig-charcoal) !important;
  max-width: 760px;
  margin: 0 auto !important;
  text-align: center;
}

.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div > div {
  min-height: 210px;
  background: var(--dig-white) !important;
  border: 1px solid var(--dig-border) !important;
  box-shadow: var(--dig-shadow-card) !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div > div p:first-of-type {
  color: var(--dig-plum) !important;
}

.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div > div p:last-of-type {
  color: var(--dig-text-muted) !important;
}

.elementor-element:is(.elementor-element-aa-c6left,.elementor-element-aa-c6right,.elementor-element-cd-c6left,.elementor-element-cd-c6right,.elementor-element-co-c6left,.elementor-element-co-c6right,.elementor-element-cm-c6left,.elementor-element-cm-c6right,.elementor-element-ma-c6left,.elementor-element-ma-c6right,.elementor-element-pc-c6left,.elementor-element-pc-c6right) {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

/* Detailed solution pages: full-width column pairs must wrap onto separate
   rows. Without this, Elementor lays two 100% columns side by side and creates
   a 2,520px-wide page on desktop. */
.elementor-element:is(
  .elementor-element-aa-s1hero,.elementor-element-aa-s5out,.elementor-element-aa-s6cta,
  .elementor-element-cd-s1hero,.elementor-element-cd-s5out,.elementor-element-cd-s6cta,
  .elementor-element-co-s1hero,.elementor-element-co-s5out,.elementor-element-co-s6cta,
  .elementor-element-cm-s1hero,.elementor-element-cm-s5out,.elementor-element-cm-s6cta,
  .elementor-element-ma-s1hero,.elementor-element-ma-s5out,.elementor-element-ma-s6cta,
  .elementor-element-pc-s1hero,.elementor-element-pc-s5out,.elementor-element-pc-s6cta,
  .elementor-element-rw-s1hero,.elementor-element-rw-s5out,.elementor-element-rw-s6cta
) > .elementor-container {
  flex-wrap: wrap !important;
}

/* Five outcome cards were too narrow for readable consulting copy. */
.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes),
.elementor-element-rw-w5outcomes {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div,
.elementor-element-rw-w5outcomes > .elementor-widget-container > div {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 1000px) {
  .elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .elementor-element:is(.elementor-element-aa-w1qa,.elementor-element-cd-w1qa,.elementor-element-co-w1qa,.elementor-element-cm-w1qa,.elementor-element-ma-w1qa,.elementor-element-pc-w1qa) > .elementor-widget-container,
  .elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div {
    grid-template-columns: 1fr !important;
  }

  .elementor-element:is(.elementor-element-aa-c2img,.elementor-element-aa-c2text,.elementor-element-cd-c2img,.elementor-element-cd-c2text,.elementor-element-co-c2img,.elementor-element-co-c2text,.elementor-element-cm-c2img,.elementor-element-cm-c2text,.elementor-element-ma-c2img,.elementor-element-ma-c2text,.elementor-element-pc-c2img,.elementor-element-pc-c2text) {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  .elementor-element:is(
    [class*="elementor-element-aa-s"],
    [class*="elementor-element-cd-s"],
    [class*="elementor-element-co-s"],
    [class*="elementor-element-cm-s"],
    [class*="elementor-element-ma-s"],
    [class*="elementor-element-pc-s"],
    [class*="elementor-element-rw-s"]
  ) > .elementor-container {
    flex-wrap: wrap !important;
  }
}

/* Site-wide layout audit: stabilize Home engagement card dimensions. */
.elementor-element-hm-c2p1 > .elementor-widget-wrap,
.elementor-element-hm-c2p2 > .elementor-widget-wrap,
.elementor-element-hm-c2p3 > .elementor-widget-wrap,
.elementor-element-hm-w2p1,
.elementor-element-hm-w2p2,
.elementor-element-hm-w2p3,
.elementor-element-hm-w2p1 > .elementor-widget-container,
.elementor-element-hm-w2p2 > .elementor-widget-container,
.elementor-element-hm-w2p3 > .elementor-widget-container {
  height: 100% !important;
}

.elementor-element-hm-w2p1 > .elementor-widget-container > div,
.elementor-element-hm-w2p2 > .elementor-widget-container > div,
.elementor-element-hm-w2p3 > .elementor-widget-container > div {
  min-height: 330px;
}

/* Home solution cards and their expanded content remain readable at rest. */
.dig-sol-card .dig-sol-title {
  color: var(--dig-charcoal) !important;
}

.dig-sol-card .dig-sol-teaser {
  color: var(--dig-text-muted) !important;
}

.dig-sol-card .dig-sol-link {
  color: var(--dig-gold) !important;
}

.dig-sol-panel-inner {
  grid-template-columns: 1fr !important;
}

.dig-sol-panel-left {
  min-height: 150px;
  padding: 26px 34px !important;
  align-items: center;
  text-align: center;
}

.dig-sol-panel-left h3 {
  color: var(--dig-white) !important;
}

.dig-sol-panel-right {
  padding: 30px 36px !important;
}

.dig-sol-panel-cta,
.dig-sol-panel-cta:visited {
  color: var(--dig-white) !important;
}

/* All detailed solution templates: replace narrow sidebars with horizontal,
   full-width bands and remove the repeated challenge list. */
.elementor-element-rw-c1left,
.elementor-element-rw-c1right {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element-rw-c1left > .elementor-widget-wrap {
  padding: 68px clamp(28px, 7vw, 96px) !important;
}

.elementor-element-rw-c1right > .elementor-widget-wrap {
  padding: 34px clamp(28px, 7vw, 96px) !important;
}

.elementor-element-rw-w1qa > .elementor-widget-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 28px;
}

.elementor-element-rw-w1qa > .elementor-widget-container > p:first-child {
  grid-column: 1 / -1;
  color: var(--dig-gold) !important;
}

.elementor-element-rw-w1qa > .elementor-widget-container > div {
  border-top-color: rgba(255,255,255,0.2) !important;
}

.elementor-element-rw-w1qa p {
  color: rgba(255,255,255,0.9) !important;
}

.elementor-element-rw-c2list {
  display: none !important;
}

.elementor-element-rw-c2img {
  flex: 0 0 34% !important;
  max-width: 34% !important;
}

.elementor-element-rw-c2text {
  flex: 0 0 66% !important;
  max-width: 66% !important;
}

/* Outcome sections use light cards site-wide. This resolves the inherited
   white-on-white and low-contrast combinations in the original templates. */
.elementor-element-rw-s5out {
  background: var(--dig-bg) !important;
  border-top: 1px solid var(--dig-border) !important;
  border-bottom: 0 !important;
  padding: 68px clamp(24px, 5vw, 72px) 34px !important;
}

.elementor-element-rw-c5stmt,
.elementor-element-rw-c5outcomes {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element-rw-c5stmt > .elementor-widget-wrap {
  padding: 0 0 34px !important;
  text-align: center;
}

.elementor-element-rw-w5eye p {
  margin-left: auto !important;
  margin-right: auto !important;
}

.elementor-element-rw-w5h2 h2 {
  color: var(--dig-charcoal) !important;
  max-width: 760px;
  margin: 0 auto !important;
  text-align: center;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div > div {
  min-height: 210px;
  background: var(--dig-white) !important;
  border: 1px solid var(--dig-border) !important;
  box-shadow: var(--dig-shadow-card) !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div > div p:first-of-type {
  color: var(--dig-plum) !important;
  font-size: 0.86rem !important;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div > div p:last-of-type {
  color: var(--dig-text-muted) !important;
}

.elementor-element-rw-c6left,
.elementor-element-rw-c6right {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element-rw-c6left > .elementor-widget-wrap {
  padding-right: 0 !important;
  text-align: center;
}

.elementor-element-rw-w6icon > .elementor-widget-container > div {
  margin-left: auto;
  margin-right: auto;
}

.elementor-element-rw-w6btns > .elementor-widget-container > div {
  max-width: 640px;
  margin: 24px auto 0;
}

/* Analytics & AI specialization. */
.dig-data-foundation {
  max-width: 1120px;
  margin: 0 auto;
}

.dig-data-foundation__intro {
  max-width: 820px;
  margin: 0 auto 36px;
  text-align: center;
}

.dig-data-foundation__intro h2 {
  color: var(--dig-charcoal) !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
  margin-bottom: 16px;
}

.dig-data-foundation__intro p {
  color: var(--dig-text-muted) !important;
  font-size: 1rem;
}

.dig-data-foundation__flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.dig-data-foundation__step {
  position: relative;
  min-height: 170px;
  padding: 24px 18px;
  background: var(--dig-white);
  border: 1px solid var(--dig-border);
  border-top: 3px solid var(--dig-gold);
  border-radius: 6px;
  text-align: center;
  box-shadow: var(--dig-shadow-card);
}

.dig-data-foundation__step span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--dig-plum);
  color: var(--dig-white);
  font-weight: 800;
}

.dig-data-foundation__step strong {
  color: var(--dig-plum);
  display: block;
  font-size: 0.88rem;
  margin-bottom: 8px;
}

.dig-data-foundation__step p {
  color: var(--dig-text-muted) !important;
  font-size: 0.78rem;
  line-height: 1.55 !important;
  margin: 0;
}

@media (max-width: 1000px) {
  .elementor-element-rw-w5outcomes > .elementor-widget-container > div,
  .dig-data-foundation__flow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .elementor-element-hm-w2p1 > .elementor-widget-container > div,
  .elementor-element-hm-w2p2 > .elementor-widget-container > div,
  .elementor-element-hm-w2p3 > .elementor-widget-container > div {
    min-height: 0;
  }

  .elementor-element-rw-w1qa > .elementor-widget-container,
  .elementor-element-rw-w5outcomes > .elementor-widget-container > div,
  .dig-data-foundation__flow {
    grid-template-columns: 1fr !important;
  }

  .elementor-element-rw-c2img,
  .elementor-element-rw-c2text {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  .elementor-element-rw-c2text > .elementor-widget-wrap {
    padding: 30px 0 0 !important;
  }
}

/* Capabilities: linked cards have a clear, honest destination. */
.dig-capability-grid .dig-card {
  display: flex !important;
  flex-direction: column;
  min-height: 220px;
  padding: 28px !important;
  border: 1px solid var(--dig-border) !important;
  border-top: 3px solid var(--dig-gold) !important;
  border-radius: 6px !important;
  background: var(--dig-white) !important;
  box-shadow: none !important;
}

.dig-capability-grid .dig-card:hover,
.dig-capability-grid .dig-card:focus-visible {
  border-color: var(--dig-gold) !important;
  box-shadow: var(--dig-shadow-card) !important;
  transform: translateY(-2px);
}

.dig-capability-grid .dig-card h3 {
  color: var(--dig-plum) !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 1.35rem !important;
  margin: 0 0 10px;
}

.dig-capability-grid .dig-card p {
  color: var(--dig-text-muted) !important;
  line-height: 1.65 !important;
  margin: 0 0 18px;
}

.dig-capability-grid .dig-card > span {
  color: var(--dig-gold);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  margin-top: auto;
  text-transform: uppercase;
}

/* Capabilities: an interactive process graphic with one shared detail area. */
.dig-process {
  max-width: 980px;
  margin: 0 auto;
}

.dig-process__nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  position: relative;
}

.dig-process__nav::before {
  content: '';
  position: absolute;
  z-index: 0;
  top: 39px;
  left: 16.66%;
  right: 16.66%;
  height: 2px;
  background: var(--dig-border);
}

.dig-process__step,
button.dig-process__step {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  appearance: none;
  border: 0 !important;
  background: transparent !important;
  color: var(--dig-text-muted) !important;
  padding: 0 18px 24px !important;
  box-shadow: none !important;
  cursor: pointer;
  font-family: 'Inter', sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.dig-process__number {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border: 2px solid var(--dig-gold);
  border-radius: 50%;
  background: var(--dig-bg);
  color: var(--dig-plum);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 700;
  transition: background var(--dig-transition), color var(--dig-transition), transform var(--dig-transition);
}

.dig-process__step strong {
  color: var(--dig-plum);
  font-size: 0.9rem;
  line-height: 1.35;
}

.dig-process__step:hover .dig-process__number,
.dig-process__step:focus-visible .dig-process__number,
.dig-process__step.is-active .dig-process__number {
  background: var(--dig-plum);
  color: var(--dig-white);
  transform: scale(1.05);
}

.dig-process__step:focus-visible {
  outline: 2px solid var(--dig-gold) !important;
  outline-offset: 4px;
}

.dig-process__details {
  margin-top: 20px;
  min-height: 210px;
}

.dig-process__panel {
  display: none;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 28px;
  padding: 34px 38px;
  border: 1px solid var(--dig-border);
  border-left: 4px solid var(--dig-gold);
  border-radius: 6px;
  background: var(--dig-white);
  box-shadow: var(--dig-shadow-card);
}

.dig-process__panel.is-active {
  display: grid;
}

.dig-process__panel > span {
  color: rgba(91,30,77,0.12);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 4.25rem;
  font-weight: 700;
  line-height: 1;
}

.dig-process__panel h3 {
  color: var(--dig-plum) !important;
  font-size: 1.5rem !important;
  margin: 0 0 8px;
}

.dig-process__panel p {
  color: var(--dig-text-muted) !important;
  font-size: 0.98rem;
  line-height: 1.7 !important;
  margin: 0;
}

@media (max-width: 700px) {
  .dig-capability-grid {
    grid-template-columns: 1fr !important;
  }

  .dig-capability-grid .dig-card {
    min-height: 0;
  }

  .dig-process__nav::before {
    top: 31px;
  }

  .dig-process__number {
    width: 62px;
    height: 62px;
    font-size: 1.05rem;
  }

  .dig-process__step,
  button.dig-process__step {
    gap: 10px;
    padding: 0 6px 18px !important;
  }

  .dig-process__step strong {
    font-size: 0.72rem;
  }

  .dig-process__details {
    min-height: 0;
  }

  .dig-process__panel {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 26px 22px;
  }

  .dig-process__panel > span {
    font-size: 2.5rem;
  }
}

/* HEOR / RWE: replace the cramped challenge sidebar with a centered visual
   beneath the outcomes cards. The original widget remains in Elementor for
   easy content editing but is not rendered in its former side position. */
.elementor-element-rw-c2list {
  display: none !important;
}

.elementor-element-rw-c2img {
  flex: 0 0 36% !important;
  max-width: 36% !important;
}

.elementor-element-rw-c2text {
  flex: 0 0 64% !important;
  max-width: 64% !important;
}

.dig-heor-outcomes {
  background: var(--dig-bg) !important;
  border-top: 1px solid var(--dig-border) !important;
  border-bottom: 1px solid var(--dig-border) !important;
}

.dig-heor-outcomes h2 {
  color: var(--dig-charcoal) !important;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div {
  gap: 18px !important;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div > div {
  background: var(--dig-white) !important;
  border: 1px solid var(--dig-border) !important;
  box-shadow: var(--dig-shadow-card) !important;
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div > div p:first-of-type {
  color: var(--dig-plum) !important;
  font-size: 0.9rem !important;
}

.elementor-element-rw-w5outcomes > .elementor-widget-container > div > div p:last-of-type {
  color: var(--dig-text-muted) !important;
}

.dig-heor-barriers {
  margin: 44px auto 0;
  max-width: 1080px;
  text-align: center;
}

.dig-heor-barriers__title {
  color: var(--dig-plum) !important;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.45rem !important;
  font-weight: 700;
  margin: 0 0 26px;
}

.dig-heor-barriers__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  position: relative;
}

.dig-heor-barrier {
  background: var(--dig-white);
  border: 1px solid var(--dig-border);
  border-top: 3px solid var(--dig-gold);
  border-radius: 6px;
  box-shadow: var(--dig-shadow-card);
  padding: 22px 16px;
}

.dig-heor-barrier svg {
  display: block;
  margin: 0 auto 14px;
}

.dig-heor-barrier strong {
  color: var(--dig-plum);
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 0.82rem;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .dig-heor-barriers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dig-heor-barrier:last-child {
    grid-column: 1 / -1;
    max-width: 50%;
    width: 100%;
    justify-self: center;
  }
}

@media (max-width: 767px) {
  .elementor-element-rw-c2img,
  .elementor-element-rw-c2text {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  .elementor-element-rw-c2text > .elementor-widget-wrap {
    padding: 32px 0 0 !important;
  }

  .elementor-element-rw-w5outcomes > .elementor-widget-container > div {
    grid-template-columns: 1fr !important;
  }

  .dig-heor-barriers__grid {
    grid-template-columns: 1fr;
  }

.dig-heor-barrier:last-child {
    grid-column: auto;
    max-width: none;
  }
}

/* Final spacing correction: remove Elementor's fixed-height homepage hero and
   replace the narrow rail with a full-width horizontal proof band. */
.elementor-element-hm-s1hero > .elementor-container {
  min-height: 0 !important;
  flex-wrap: wrap !important;
}

.elementor-element-hm-c1left,
.elementor-element-hm-c1right {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

.elementor-element-hm-c1left > .elementor-widget-wrap {
  padding: 64px clamp(32px, 7vw, 110px) !important;
}

.elementor-element-hm-w1h1 h1 {
  max-width: 1050px;
}

.elementor-element-hm-c1right > .elementor-widget-wrap {
  padding: 32px clamp(32px, 7vw, 110px) !important;
}

.elementor-element-hm-w1icon > .elementor-widget-container {
  display: grid;
  grid-template-columns: minmax(220px, 300px) 1fr;
  grid-template-rows: auto 1fr;
  align-items: center;
  gap: 0 44px;
}

.elementor-element-hm-w1icon > .elementor-widget-container > div:first-child {
  grid-row: 1 / 3;
  margin: 0 !important;
}

.elementor-element-hm-w1icon > .elementor-widget-container > div:first-child img {
  height: 210px !important;
}

.elementor-element-hm-w1icon > .elementor-widget-container > p {
  grid-column: 2;
  margin: 0 0 12px !important;
  text-align: left !important;
}

.elementor-element-hm-w1icon > .elementor-widget-container > div:last-child {
  grid-column: 2;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px !important;
}

.elementor-element-hm-w1icon > .elementor-widget-container > div:last-child > div {
  border-top-color: rgba(255,255,255,0.24) !important;
  padding: 14px 0 !important;
}

.elementor-element-hm-w2sp .elementor-spacer-inner {
  height: 18px !important;
}

.elementor-element-hm-s2pillars {
  padding-top: 56px !important;
  padding-bottom: 64px !important;
}

/* Tighten the Capabilities introduction-to-grid handoff. */
.elementor-element-caphero1 {
  padding: 56px 24px 24px !important;
}

.elementor-element-capgrid1 {
  padding: 28px 24px 56px !important;
}

@media (max-width: 767px) {
  .elementor-element-hm-c1left > .elementor-widget-wrap {
    padding: 46px 26px !important;
  }

  .elementor-element-hm-c1right > .elementor-widget-wrap {
    padding: 34px 26px !important;
  }

  .elementor-element-hm-w1icon > .elementor-widget-container {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 18px;
  }

  .elementor-element-hm-w1icon > .elementor-widget-container > div:first-child,
  .elementor-element-hm-w1icon > .elementor-widget-container > p,
  .elementor-element-hm-w1icon > .elementor-widget-container > div:last-child {
    grid-column: 1;
    grid-row: auto;
  }

  .elementor-element-hm-w1icon > .elementor-widget-container > p {
    text-align: center !important;
  }

  .elementor-element-hm-w1icon > .elementor-widget-container > div:last-child {
    grid-template-columns: 1fr;
    gap: 0 !important;
  }

  .elementor-element-caphero1 {
    padding: 44px 20px 16px !important;
  }

  .elementor-element-capgrid1 {
    padding: 20px 20px 48px !important;
  }
}

/* Final audited width guard for detailed-solution outcome cards. Keep this
   after the legacy template rules so five-column declarations cannot win. */
.elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div,
.elementor-element-rw-w5outcomes > .elementor-widget-container > div {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 1000px) {
  .elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div,
  .elementor-element-rw-w5outcomes > .elementor-widget-container > div {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .elementor-element:is(.elementor-element-aa-w5outcomes,.elementor-element-cd-w5outcomes,.elementor-element-co-w5outcomes,.elementor-element-cm-w5outcomes,.elementor-element-ma-w5outcomes,.elementor-element-pc-w5outcomes) > .elementor-widget-container > div,
  .elementor-element-rw-w5outcomes > .elementor-widget-container > div {
    grid-template-columns: 1fr !important;
  }
}
