
/* === V2 Polish: Header / Navigation === */
.main-header-bar, .ast-primary-header-bar { transition: box-shadow .3s ease, padding .3s ease; }
.main-header-menu .menu-item > a,
.main-header-menu .menu-link {
  position: relative;
  font-weight: 600;
  letter-spacing: 0.2px;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  transition: color .25s ease;
}
.main-header-menu .menu-item > a::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 2px;
  height: 2px;
  background: #7DA8C3;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s cubic-bezier(0.4,0,0.2,1);
}
.main-header-menu .menu-item > a:hover::after,
.main-header-menu .current-menu-item > a::after,
.main-header-menu .current_page_item > a::after {
  transform: scaleX(1);
}
.main-header-menu .menu-item > a:hover { color: #527491 !important; }
.ast-header-break-point.ast-mobile-header-inline .main-header-bar { box-shadow: 0 1px 3px rgba(20,20,25,0.06); }

/* === V2 Polish: Footer === */
#colophon, .site-footer, footer.site-footer { padding-top: 4rem; }
.footer-widget-area, .ast-builder-footer-grid { padding-bottom: 1rem; }
#colophon a, .site-footer a { transition: color .2s ease, opacity .2s ease; }
#colophon a:hover, .site-footer a:hover { opacity: .75; }
#ast-footer-copyright, .ast-footer-copyright {
  padding-top: 1.75rem !important;
  padding-bottom: 1.75rem !important;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 1rem;
  font-size: 0.9rem;
  letter-spacing: 0.2px;
}

/* === V2 Polish: Forms === */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select {
  border-radius: 8px !important;
  border: 1px solid #E2E2E4 !important;
  padding: 14px 16px !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, textarea:focus, select:focus {
  border-color: #527491 !important;
  box-shadow: 0 0 0 3px rgba(82,116,145,0.15) !important;
  outline: none !important;
}

/* === V2 Polish: Accessibility - focus states === */
a:focus-visible, button:focus-visible, .e-con:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid #527491 !important;
  outline-offset: 2px !important;
}

/* === V2 Polish: Page load entrance animation (subtle, safe without JS) === */
.e-con > .e-con-inner > .elementor-widget,
.elementor-top-section {
  animation: fadeSlideUp .6s ease both;
}
@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .e-con > .e-con-inner > .elementor-widget, .elementor-top-section { animation: none !important; }
}

/* === V2 Polish: Mobile refinements === */



/* === V2 Polish: Accessibility - nav active-state contrast fix === */
.main-header-menu a[aria-current="page"],
.main-header-menu .current-menu-item > a,
.main-header-menu .current_page_item > a {
  color: #3D5A73 !important;
  font-weight: 700 !important;
}


/* === V3 Branding: logo-derived palette refinement === */
/* Tint neutral section backgrounds with a whisper of brand blue instead of flat grey */
.elementor-widget-e-flexbox[style*="247, 247, 247"],
[style*="background-color:#F7F7F7"],
[style*="background-color: rgb(247, 247, 247)"] {
  background-color: #F4F8FB !important;
}

/* Header bottom accent bar echoing the logo's rule line under the wordmark */
.main-header-bar, .ast-primary-header-bar { position: relative; }
.main-header-bar::after, .ast-primary-header-bar::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #4B4F54 0%, #527491 45%, #7DA8C3 75%, #9A9DA1 100%);
}

/* Footer top accent line, same brand gradient, echoing the O:M mark's dot ring */
#colophon, .site-footer, footer.site-footer {
  position: relative;
}
#colophon::before, .site-footer::before {
  content: '';
  display: block;
  height: 3px;
  width: 100%;
  background: linear-gradient(90deg, #9A9DA1 0%, #7DA8C3 30%, #527491 65%, #4B4F54 100%);
}

/* Selection color matches brand */
::selection { background: #7DA8C3; color: #FFFFFF; }


/* === V3: Real portfolio project imagery === */
.e-4fbe5b3 {
  background-image: linear-gradient(180deg, rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/wedding-mayhem-episode.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-de330b5 {
  background-image: linear-gradient(180deg, rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/uk-padel-promo.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-0e23f3f {
  background-image: linear-gradient(180deg, rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/noble-scouting-session.webp') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-8c53f1a {
  background-image: linear-gradient(180deg, rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/property-elevator-angels.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}


/* === V3: Mobile overflow safety net === */
html, body { overflow-x: hidden !important; max-width: 100vw !important; }



/* === V96: Homepage Selected Work — no client imagery, category colour blocks only === */
.e-a016c7e, .e-a7ea3c3, .e-1f9b440, .e-159d842 { background-image: none !important; background: #7DA8C3 !important; }

/* === V4: Direct button colour override (Elementor style-manager save failed for e-button widgets; enforcing via CSS) === */
.e-20ccc4f-ead31d4, .e-4872a26, .e-2a93cf3, .e-cf06d53, .e-c91e0d7, .e-6b35f4d, .e-1392108, .e-43ec503, .e-54eb39f, .e-0ae38d1 {
  background-color: #7da8c3 !important;
}
.e-20ccc4f-ead31d4:hover, .e-4872a26:hover, .e-2a93cf3:hover, .e-cf06d53:hover, .e-c91e0d7:hover, .e-6b35f4d:hover, .e-1392108:hover, .e-43ec503:hover, .e-54eb39f:hover, .e-0ae38d1:hover {
  background-color: #2F5F91 !important;
}
.e-ecc968f, .e-02e3392, .e-a7b7635 {
  color: #7da8c3 !important;
  border-color: #7da8c3 !important;
}
.e-ecc968f:hover, .e-02e3392:hover, .e-a7b7635:hover {
  background-color: #7da8c3 !important;
  color: #FFFFFF !important;
}


/* === V4b: Additional button fixes found via live DOM audit === */
.e-ecc968f, .e-02e3392, .e-a7b7635 {
  background-color: transparent !important;
}
.e-da55f9c, .e-3e9b0ed {
  background-color: #7da8c3 !important;
  color: #FFFFFF !important;
}
.e-da55f9c:hover, .e-3e9b0ed:hover {
  background-color: #2F5F91 !important;
}


/* === V4c: Premium polish — refreshed brand gradient + dot-ring watermark === */
.main-header-bar::after, .ast-primary-header-bar::after {
  background: linear-gradient(90deg, #4B4F54 0%, #7da8c3 45%, #7DA8C3 75%, #9A9DA1 100%) !important;
}
#colophon::before, .site-footer::before {
  background: linear-gradient(90deg, #9A9DA1 0%, #7DA8C3 30%, #7da8c3 65%, #4B4F54 100%) !important;
}
::selection { background: #7da8c3 !important; color: #FFFFFF !important; }


/* === V5: Real logo image in header — hide duplicate text site title, size logo properly === */
.ast-site-title-wrap { display: none !important; }
.site-logo-img { display: inline-flex !important; align-items: center; }
.custom-logo-link img.custom-logo {
  height: 42px !important;
  width: auto !important;
  max-width: none !important;
}


/* === V6: Watermark decorative elements + colon divider === */
.e-d02ec72, .e-5d6e7eb, .e-916578d {
  position: relative;
  overflow: hidden;
}
.e-d02ec72::after, .e-5d6e7eb::after, .e-916578d::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -60px;
  width: 420px;
  height: 420px;
  background: url('https://offline-media.co.uk/wp-content/uploads/2026/07/watermark.png') no-repeat center / contain;
  transform: translateY(-50%);
  z-index: 0;
  pointer-events: none;
}
.e-d02ec72 > *, .e-5d6e7eb > *, .e-916578d > * {
  position: relative;
  z-index: 1;
}

.om-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 auto 8px;
}
.om-divider::before, .om-divider::after {
  content: '';
  width: 32px;
  height: 1px;
  background: #9A9DA1;
  opacity: 0.5;
}
.om-divider-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #7da8c3;
  display: inline-block;
}

/* === V7: Supporting imagery — Services, About, Pricing, Experience, Portfolio, Contact === */

.e-b2b2c78 {
  background-image: linear-gradient(160deg, rgba(37,40,44,0.86) 0%, rgba(125, 168, 195,0.42) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/services-hero-editing-timeline-scaled.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
.e-35391b6 {
  background-image: linear-gradient(180deg, rgba(30,32,35,0.55) 0%, rgba(20,22,24,0.88) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/services-motion-waveform.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-3650d49 {
  background-image: linear-gradient(180deg, rgba(30,32,35,0.55) 0%, rgba(20,22,24,0.88) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/about-editing-timeline.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-7781826 {
  background-image: linear-gradient(180deg, rgba(30,32,35,0.55) 0%, rgba(20,22,24,0.88) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-broadcast-videographer.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-6973ae5 {
  background-image: linear-gradient(180deg, rgba(30,32,35,0.55) 0%, rgba(20,22,24,0.88) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/services-sound-mixing-scaled.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-0ad3048 {
  background-image: linear-gradient(160deg, rgba(37,40,44,0.86) 0%, rgba(125, 168, 195,0.42) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-podcast-studio.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-6d1fa20 {
  background-image: linear-gradient(160deg, rgba(37,40,44,0.86) 0%, rgba(125, 168, 195,0.42) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-broadcast-videographer.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-fee5e77 {
  background-image: linear-gradient(160deg, rgba(37,40,44,0.86) 0%, rgba(125, 168, 195,0.42) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/pricing-studio-equipment.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-5d6e7eb {
  background-image: linear-gradient(160deg, rgba(37,40,44,0.86) 0%, rgba(125, 168, 195,0.42) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/experience-control-room.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-857aaeb {
  background-image: linear-gradient(160deg, rgba(37,40,44,0.86) 0%, rgba(125, 168, 195,0.42) 100%), url('https://offline-media.co.uk/wp-content/uploads/2026/07/contact-camera-studio-scaled.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
}

/* === V7b: Card image contrast fix === */
.e-35391b6, .e-3650d49, .e-7781826, .e-6973ae5 {
  color: #FFFFFF !important;
}
.e-35391b6 h1, .e-35391b6 h2, .e-35391b6 h3, .e-35391b6 h4, .e-35391b6 h5, .e-35391b6 h6, .e-3650d49 h1, .e-3650d49 h2, .e-3650d49 h3, .e-3650d49 h4, .e-3650d49 h5, .e-3650d49 h6, .e-7781826 h1, .e-7781826 h2, .e-7781826 h3, .e-7781826 h4, .e-7781826 h5, .e-7781826 h6, .e-6973ae5 h1, .e-6973ae5 h2, .e-6973ae5 h3, .e-6973ae5 h4, .e-6973ae5 h5, .e-6973ae5 h6 {
  color: #FFFFFF !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.35);
}
.e-35391b6 p, .e-3650d49 p, .e-7781826 p, .e-6973ae5 p {
  color: #E4E6E8 !important;
}

/* === V9: Agency-grade polish — remove default WP tells, global hover/focus system, card elevation === */

.entry-header.ast-no-thumbnail,
.ast-header-without-markup {
  display: none !important;
}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid #7da8c3 !important;
  outline-offset: 3px !important;
}

.e-con p a:not([class*="e-button"]),
.e-con li a:not([class*="e-button"]) {
  color: inherit;
  text-decoration-color: rgba(125, 168, 195,0.4);
  transition: color 0.25s ease, text-decoration-color 0.25s ease;
}
.e-con p a:not([class*="e-button"]):hover,
.e-con li a:not([class*="e-button"]):hover {
  color: #7da8c3;
  text-decoration-color: #7da8c3;
}

.e-35391b6, .e-3650d49, .e-7781826, .e-6973ae5,
.e-1b3f0d8, .e-57046a2, .e-66309d2, .e-d15a625, .e-573ad31, .e-25b6213,
.e-da612f9, .e-631024b, .e-cd56873 {
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s cubic-bezier(0.22,1,0.36,1) !important;
}
.e-35391b6:hover, .e-3650d49:hover, .e-7781826:hover, .e-6973ae5:hover,
.e-1b3f0d8:hover, .e-57046a2:hover, .e-66309d2:hover, .e-d15a625:hover, .e-573ad31:hover, .e-25b6213:hover,
.e-da612f9:hover, .e-631024b:hover, .e-cd56873:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 24px 48px -12px rgba(20,22,24,0.28), 0 0 0 1px rgba(125, 168, 195,0.15) !important;
}

[class*="e-button"] {
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s cubic-bezier(0.22,1,0.36,1), background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease !important;
}
[class*="e-button"]:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 24px -6px rgba(125, 168, 195,0.4) !important;
}

html { scroll-behavior: smooth; }

/* === V10: Clean typography-led hero (no video/image showreel) === */
.e-916578d {
  position: relative;
  overflow: hidden;
  background: linear-gradient(155deg, #4B4F54 0%, #3d4044 55%, #34373b 100%) !important;
}
.e-916578d::before {
  content: '';
  position: absolute;
  left: -120px;
  bottom: -160px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(125, 168, 195,0.22), rgba(125, 168, 195,0) 70%);
  z-index: 0;
  pointer-events: none;
}
.e-916578d > * {
  position: relative;
  z-index: 2;
}
.e-916578d::after {
  z-index: 1;
}

/* === V11: Branded mobile navigation menu === */
@media (max-width: 921px) {
  .main-header-menu.ast-nav-menu.stack-on-mobile {
    background: #FFFFFF !important;
    box-shadow: 0 24px 48px -12px rgba(20,22,24,0.22) !important;
    border-top: 1px solid rgba(154,157,161,0.25) !important;
  }
  .main-header-menu.stack-on-mobile > .menu-item {
    border-bottom: 1px solid rgba(154,157,161,0.18) !important;
    transition: background 0.25s ease !important;
  }
  .main-header-menu.stack-on-mobile > .menu-item > a {
    padding: 16px 24px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em;
    color: #4B4F54 !important;
    transition: color 0.25s ease, padding-left 0.25s ease !important;
  }
  .main-header-menu.stack-on-mobile > .menu-item:hover {
    background: rgba(125, 168, 195,0.06) !important;
  }
  .main-header-menu.stack-on-mobile > .menu-item:hover > a,
  .main-header-menu.stack-on-mobile > .menu-item.current-menu-item > a {
    color: #7da8c3 !important;
    padding-left: 30px !important;
  }
  .main-header-menu.stack-on-mobile > .menu-item.current-menu-item {
    border-bottom-color: rgba(125, 168, 195,0.35) !important;
  }
  .ast-mobile-menu-buttons {
    padding: 16px 24px 20px !important;
    border-top: 1px solid rgba(154,157,161,0.18);
  }
}

/* === V12: Unified design system — buttons, headings, hero elevation, portfolio case-study polish === */

/* --- Design tokens --- */
:root {
  --om-radius: 6px;
  --om-radius-card: 12px;
  --om-shadow-hover: 0 24px 48px -12px rgba(20,22,24,0.28), 0 0 0 1px rgba(125, 168, 195,0.15);
  --om-transition: 0.35s cubic-bezier(0.22,1,0.36,1);
}

/* --- Unified button system: one consistent size/radius/weight everywhere --- */
[class*="e-button"] {
  border-radius: var(--om-radius) !important;
  padding: 14px 28px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em !important;
}

/* --- Heading scale normalisation --- */
.e-con h2 { font-size: 36px !important; line-height: 1.25 !important; }
.e-con h3 { font-size: 20px !important; line-height: 1.4 !important; }
.e-con h4 { font-size: 14px !important; letter-spacing: 0.08em !important; }


/* --- Hero elevation: premium creative-studio feel, typography-led --- */
.e-916578d {
  padding-top: 140px !important;
  padding-bottom: 140px !important;
}
.e-916578d h4,
.e-916578d [class*="eyebrow"] {
  display: inline-block;
  padding: 8px 18px !important;
  border: 1px solid rgba(125, 168, 195,0.4);
  border-radius: 999px;
  background: rgba(125, 168, 195,0.08);
  letter-spacing: 0.14em !important;
}
.e-916578d h1 {
  font-size: 60px !important;
  letter-spacing: -0.02em !important;
  line-height: 1.12 !important;
}


.e-916578d [class*="e-button"]:first-of-type {
  box-shadow: 0 16px 32px -8px rgba(125, 168, 195,0.45) !important;
}

/* --- Portfolio: high-end case-study showcase --- */
.e-1b3f0d8, .e-57046a2, .e-66309d2, .e-d15a625, .e-573ad31, .e-25b6213 {
  border-radius: var(--om-radius-card) !important;
  overflow: hidden !important;
}
.e-4fbe5b3, .e-0ad3048, .e-de330b5, .e-0e23f3f, .e-8c53f1a, .e-6d1fa20 {
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1) !important;
}
.e-1b3f0d8:hover .e-4fbe5b3, .e-57046a2:hover .e-0ad3048, .e-66309d2:hover .e-de330b5,
.e-d15a625:hover .e-0e23f3f, .e-573ad31:hover .e-8c53f1a, .e-25b6213:hover .e-6d1fa20 {
  transform: scale(1.06) !important;
}



/* === V13c: Premium animation system — hero entrance + refined micro-interactions (stable) === */

@keyframes omFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
.e-916578d > * {
  animation: omFadeUp 0.8s cubic-bezier(0.22,1,0.36,1) both;
}
.e-916578d > *:nth-child(1) { animation-delay: 0.05s; }
.e-916578d > *:nth-child(2) { animation-delay: 0.15s; }
.e-916578d > *:nth-child(3) { animation-delay: 0.28s; }
.e-916578d > *:nth-child(4) { animation-delay: 0.42s; }

/* Refined, staggered hover for grid cards so hovering one visually "lifts" it above its neighbours */
.e-35391b6, .e-3650d49, .e-7781826, .e-6973ae5,
.e-1b3f0d8, .e-57046a2, .e-66309d2, .e-d15a625, .e-573ad31, .e-25b6213,
.e-da612f9, .e-631024b, .e-cd56873 {
  will-change: transform;
}

/* Smooth colour/underline transition on every inline link, site-wide */
.e-con a { transition: color 0.25s ease, opacity 0.25s ease, transform 0.25s ease; }

/* Nav menu items get a subtle underline sweep */
.main-header-menu > .menu-item > a {
  position: relative;
}
.main-header-menu > .menu-item > a::after {
  content: '';
  position: absolute;
  left: 0; bottom: -4px;
  width: 0%;
  height: 2px;
  background: #7da8c3;
  transition: width 0.3s cubic-bezier(0.22,1,0.36,1);
}
.main-header-menu > .menu-item > a:hover::after {
  width: 100%;
}

/* === V14: Track Record section - fix duplicated button off-brand colour === */
.e-748e599-3f4527d {
  background-color: rgba(125,168,195,0) !important;
  color: #7da8c3 !important;
  border: 2px solid #7da8c3 !important;
}
.e-748e599-3f4527d:hover {
  background-color: rgba(125, 168, 195,0.08) !important;
  color: #2F5F91 !important;
  border-color: #2F5F91 !important;
}
/* === END V14 === */





/* === V17: True scroll-triggered reveal animations, site-wide === */

/* CRITICAL FIX: Astra sets overflow-x:hidden on body, which makes body a "scroll container"
   per spec even though body never actually scrolls (html is the real scroller). This breaks
   animation-timeline:view() by scoping it to a degenerate, non-scrolling container.
   overflow:clip does NOT establish a scroll container, so this restores correct scroping
   to html while preserving the same visual clipping of horizontal overflow. */
body {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

@keyframes omFadeUp {
  from { opacity: 0; transform: translateY(64px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes omScaleIn {
  from { opacity: 0; transform: scale(0.94); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes omFloatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}
@keyframes omPulseSoft {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.72; }
}
@keyframes omShine {
  0% { transform: translateX(-120%) skewX(-20deg); }
  100% { transform: translateX(220%) skewX(-20deg); }
}

/* Scroll-triggered reveal for every top-level section on every page (skip hero = first child) */
@supports (animation-timeline: view()) {
  .elementor > .elementor-element:not(:first-child) {
    animation-name: omFadeUp;
    animation-duration: 1s;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1);
    animation-fill-mode: both;
    animation-timeline: view();
    animation-range: entry 0% entry 90%;
  }

  /* Cards/columns inside each section reveal with their own scroll-linked timeline, staggered */
  .elementor > .elementor-element:not(:first-child) [class*="e-flexbox"] > [class*="e-div-block"],
  .elementor > .elementor-element:not(:first-child) [class*="e-con"] > [class*="e-div-block"] {
    animation-name: omScaleIn;
    animation-duration: 1s;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1);
    animation-fill-mode: both;
    animation-timeline: view();
    animation-range: entry 0% entry 90%;
  }
  .elementor > .elementor-element:not(:first-child) [class*="e-flexbox"] > [class*="e-div-block"]:nth-child(2),
  .elementor > .elementor-element:not(:first-child) [class*="e-con"] > [class*="e-div-block"]:nth-child(2) { animation-delay: 0.06s; }
  .elementor > .elementor-element:not(:first-child) [class*="e-flexbox"] > [class*="e-div-block"]:nth-child(3),
  .elementor > .elementor-element:not(:first-child) [class*="e-con"] > [class*="e-div-block"]:nth-child(3) { animation-delay: 0.12s; }
  .elementor > .elementor-element:not(:first-child) [class*="e-flexbox"] > [class*="e-div-block"]:nth-child(4),
  .elementor > .elementor-element:not(:first-child) [class*="e-con"] > [class*="e-div-block"]:nth-child(4) { animation-delay: 0.18s; }
}

/* Fallback for browsers without scroll-timeline support: reliable load-triggered fade */
@supports not (animation-timeline: view()) {
  .elementor > .elementor-element:not(:first-child) {
    animation-name: omFadeUp;
    animation-duration: 0.9s;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1);
    animation-fill-mode: both;
  }
}

/* Ambient floating motion on hero glow */
.e-916578d::before {
  animation: omFloatY 9s ease-in-out infinite;
}

/* Kicker/badge gentle pulse, site-wide */
.elementor h4:has(span) {
  animation: omPulseSoft 3.2s ease-in-out infinite;
}

/* Image hover: zoom + slight rotate on any image inside a card/link */
.e-con img, .e-div-block img, a img {
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1), filter 0.6s ease !important;
}
.e-con a:hover img, .e-div-block:hover img, a:hover img {
  transform: scale(1.07) rotate(0.4deg) !important;
}

/* Button shine sweep on hover */
[class*="e-button"] {
  position: relative;
  overflow: hidden;
}
[class*="e-button"]::after {
  content: '';
  position: absolute;
  top: -20%;
  left: 0;
  width: 30%;
  height: 140%;
  background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.35) 50%, rgba(255,255,255,0) 100%);
  transform: translateX(-120%) skewX(-20deg);
  pointer-events: none;
  opacity: 0;
}
[class*="e-button"]:hover::after {
  animation: omShine 0.9s ease forwards;
  opacity: 1;
}

/* Card border-glow on hover */
.e-35391b6:hover, .e-3650d49:hover, .e-7781826:hover, .e-6973ae5:hover,
.e-1b3f0d8:hover, .e-57046a2:hover, .e-66309d2:hover, .e-d15a625:hover, .e-573ad31:hover, .e-25b6213:hover,
.e-da612f9:hover, .e-631024b:hover, .e-cd56873:hover {
  border-color: rgba(125, 168, 195,0.35) !important;
}

/* Nav logo micro-interaction */
.site-logo img, .custom-logo, header img[class*="logo"] {
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1) !important;
}
.site-logo:hover img, a:hover > .custom-logo, header a:hover img[class*="logo"] {
  transform: scale(1.04) !important;
}

/* Nav menu items: subtle lift on hover */
.main-header-menu > .menu-item > a {
  transition: transform 0.25s ease, color 0.25s ease !important;
}
.main-header-menu > .menu-item > a:hover {
  transform: translateY(-2px) !important;
}

/* Footer links: gentle nudge on hover */
.footer-widget a, footer a {
  transition: transform 0.25s ease, color 0.25s ease !important;
}
.footer-widget a:hover, footer a:hover {
  transform: translateX(2px) !important;
}

/* Form fields: focus lift */
input, textarea, select {
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;
}
input:focus, textarea:focus, select:focus {
  transform: translateY(-1px) !important;
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .elementor > .elementor-element:not(:first-child),
  .elementor > .elementor-element:not(:first-child) [class*="e-flexbox"] > [class*="e-div-block"],
  .elementor > .elementor-element:not(:first-child) [class*="e-con"] > [class*="e-div-block"],
  .e-916578d::before,
  .elementor h4:has(span) {
    animation: none !important;
  }
}
/* === END V17 === */

/* === V18: Creative-director pass — break template patterns, structural brand colour === */

/* --- HERO: left-aligned, asymmetric, bold blue geometry instead of centred SaaS-template layout --- */
.e-916578d {
  align-items: flex-start !important;
  justify-content: center !important;
  padding-left: clamp(28px, 7vw, 96px) !important;
  padding-right: clamp(28px, 7vw, 96px) !important;
}
.e-916578d > * { text-align: left !important; }
.e-916578d h1 {
  max-width: 760px;
  font-size: clamp(42px, 5.6vw, 76px) !important;
  letter-spacing: -0.015em;
}
.e-916578d p { max-width: 520px; margin-left: 0 !important; margin-right: 0 !important; }
.e-916578d .e-de5a5de-c38acbf { justify-content: flex-start !important; }
/* remove the redundant pill badge in the hero — logo already establishes the brand */
.e-576fb58-94840c1 { display: none !important; }
/* bold structural blue geometry, replacing the generic dot-pattern as the dominant visual */
.e-916578d::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 46%;
  background: linear-gradient(150deg, #7da8c3 0%, #2F5F91 100%);
  clip-path: polygon(38% 0, 100% 0, 100% 100%, 12% 100%);
  opacity: 0.94;
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 900px) {
  .e-916578d::after { display: none; }
  .e-916578d { align-items: flex-start !important; }
}

/* --- KICKER BADGE: replace the generic pill-with-border pattern used identically everywhere --- */
.elementor h4:has(span) {
  background: none !important;
  line-height: 1 !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.elementor h4:has(span) span {
  color: #7da8c3;
  font-weight: 800;
}
/* on the dark hero, the eyebrow mark should stay visible without a badge container */
.e-916578d h4 { color: #7DA8C3 !important; }

/* === END V18 === */

/* === V19: Break card-grid symmetry + make blue structural on Home Track Record === */

/* --- Services grid: asymmetric hierarchy instead of 4 identical boxes --- */
@media (min-width: 1025px) {
  .elementor-element-f3d30ed > .e-35391b6 { flex: 1.55 1 0 !important; }
  .elementor-element-f3d30ed > .e-3650d49,
  .elementor-element-f3d30ed > .e-7781826,
  .elementor-element-f3d30ed > .e-6973ae5 { flex: 0.82 1 0 !important; }
}

/* --- Home Track Record: full-bleed blue band, cards become dividers not boxes --- */
.elementor-element-04bc811 {
  background: linear-gradient(135deg, #2F5F91 0%, #7da8c3 55%, #2b527d 100%) !important;
  padding-top: 96px !important;
  padding-bottom: 96px !important;
  position: relative;
  overflow: hidden;
}
.elementor-element-04bc811::before {
  content: '';
  position: absolute;
  top: -30%; right: -8%;
  width: 480px; height: 480px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.14);
  pointer-events: none;
}
.elementor-element-04bc811 h4, .elementor-element-04bc811 h4 span { color: #ffffff !important; }
.elementor-element-04bc811 h2, .elementor-element-04bc811 h3 { color: #ffffff !important; }
.elementor-element-04bc811 > p, .elementor-element-04bc811 .e-e7ff908-de724e7 { color: rgba(255,255,255,0.82) !important; }
.elementor-element-51fd720 { gap: 0 !important; }
.elementor-element-ac89ab7, .elementor-element-3272b26, .elementor-element-2755951 {
  background: transparent !important;
  border: none !important;
  border-left: 1px solid rgba(255,255,255,0.22) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding-left: 32px !important;
  padding-right: 8px !important;
}
.elementor-element-ac89ab7 { border-left: none !important; padding-left: 0 !important; }
.elementor-element-ac89ab7 h3, .elementor-element-3272b26 h3, .elementor-element-2755951 h3,
.elementor-element-ac89ab7 h4, .elementor-element-3272b26 h4, .elementor-element-2755951 h4 { color: #ffffff !important; }
.elementor-element-ac89ab7 p, .elementor-element-3272b26 p, .elementor-element-2755951 p { color: rgba(255,255,255,0.75) !important; }
.elementor-element-04bc811 .e-748e599-3f4527d {
  border-color: #ffffff !important;
  color: #ffffff !important;
}
.elementor-element-04bc811 .e-748e599-3f4527d:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}

/* --- Pricing: exaggerate contrast so "Pro" genuinely dominates instead of a badge-only difference --- */
@media (min-width: 1025px) {
  .e-631024b {
    transform: scale(1.06) !important;
    box-shadow: 0 32px 64px -16px rgba(20,22,24,0.32), 0 0 0 1px rgba(125, 168, 195,0.25) !important;
    z-index: 2;
    position: relative;
  }
  .e-da612f9, .e-cd56873 {
    box-shadow: none !important;
    background: transparent !important;
    border: 1px solid rgba(154,157,161,0.35) !important;
  }
}
/* === END V19 === */

/* === V20: Editorial asymmetric split for the post-hero intro strip --- */
@media (min-width: 1025px) {
  #home-intro {
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    text-align: left !important;
    gap: 64px;
    max-width: 1180px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
  #home-intro h2 {
    flex: 0 0 42%;
    text-align: left !important;
    font-size: clamp(28px, 2.6vw, 38px) !important;
  }
  #home-intro p {
    flex: 0 0 46%;
    text-align: left !important;
    max-width: none;
  }
}
/* === END V20 === */

/* === V21: Restore OM watermark logo inside the new hero wedge === */
.e-916578d::after {
  height: 100% !important;
}
/* === END V21 === */

/* === V22: Move OM watermark onto the charcoal side of the hero, where it actually reads === */
.e-916578d .e-de5a5de-c38acbf {
  position: relative;
}
.e-916578d .e-de5a5de-c38acbf::after {
  content: '';
  position: absolute;
  top: -40px;
  left: 460px;
  width: 420px;
  height: 420px;
  background: url('https://offline-media.co.uk/wp-content/uploads/2026/07/watermark.png') no-repeat center / contain;
  opacity: 0.85;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 1150px) {
  .e-916578d .e-de5a5de-c38acbf::after { display: none; }
}
/* === END V22 === */

/* === V23: Hero v3 — premium gradient-mesh composition, replacing the flat wedge === */
.e-916578d::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  left: auto !important; bottom: auto !important;
  top: 0 !important; right: 0 !important; width: 100% !important; height: 100% !important;
  border-radius: 0 !important;
  background:
    radial-gradient(620px 500px at 78% 28%, rgba(125, 168, 195,0.55), transparent 68%),
    radial-gradient(440px 400px at 96% 74%, rgba(125,168,195,0.32), transparent 70%),
    radial-gradient(520px 440px at 8% 88%, rgba(47,95,145,0.26), transparent 72%) !important;
  filter: blur(46px);
  z-index: 0;
  pointer-events: none;
  animation: omFloatY 15s ease-in-out infinite;
}
.e-916578d::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(115deg, rgba(255,255,255,0.045) 0px, rgba(255,255,255,0.045) 1px, transparent 1px, transparent 72px);
  opacity: 0.55;
  z-index: 0;
  pointer-events: none;
  height: 100%;
}
.e-916578d h1 {
  letter-spacing: -0.02em;
}
.e-916578d p {
  color: rgba(255,255,255,0.72) !important;
}
/* === END V23 === */

/* === V24: Redesign Home services cards — numbering, accent bar, depth, refined hover === */
.elementor-element-163627b, .elementor-element-0c8377d, .elementor-element-25f19b0 {
  position: relative;
  border: 1px solid rgba(154,157,161,0.18) !important;
  box-shadow: 0 2px 8px -4px rgba(20,22,24,0.06) !important;
  overflow: hidden;
  padding-top: 44px !important;
  transition: transform 0.45s cubic-bezier(0.22,1,0.36,1), box-shadow 0.45s cubic-bezier(0.22,1,0.36,1), border-color 0.45s ease !important;
}
.elementor-element-163627b::before,
.elementor-element-0c8377d::before,
.elementor-element-25f19b0::before {
  content: '01';
  position: absolute;
  top: 14px;
  right: 20px;
  font-size: 46px;
  font-weight: 800;
  color: rgba(125, 168, 195,0.10);
  line-height: 1;
  letter-spacing: -0.02em;
  transition: color 0.45s ease;
  pointer-events: none;
}
.elementor-element-0c8377d::before { content: '02'; }
.elementor-element-25f19b0::before { content: '03'; }
.elementor-element-163627b::after,
.elementor-element-0c8377d::after,
.elementor-element-25f19b0::after {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 40px; height: 4px;
  background: #7da8c3;
  transition: width 0.45s cubic-bezier(0.22,1,0.36,1);
}
.elementor-element-163627b:hover, .elementor-element-0c8377d:hover, .elementor-element-25f19b0:hover {
  transform: translateY(-10px) !important;
  box-shadow: 0 28px 56px -18px rgba(20,22,24,0.22), 0 0 0 1px rgba(125, 168, 195,0.18) !important;
  border-color: rgba(125, 168, 195,0.3) !important;
}
.elementor-element-163627b:hover::before,
.elementor-element-0c8377d:hover::before,
.elementor-element-25f19b0:hover::before {
  color: rgba(125, 168, 195,0.22);
}
.elementor-element-163627b:hover::after,
.elementor-element-0c8377d:hover::after,
.elementor-element-25f19b0:hover::after {
  width: 72px;
}
/* === END V24 === */

/* === V25: Redesign Home Experience/Tools cards — chips, tags, depth, icon badges === */
.elementor-element-3c6ac89, .elementor-element-bb0775c {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(154,157,161,0.18) !important;
  box-shadow: 0 2px 8px -4px rgba(20,22,24,0.06) !important;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s cubic-bezier(0.22,1,0.36,1) !important;
}
.elementor-element-3c6ac89:hover, .elementor-element-bb0775c:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 24px 48px -18px rgba(20,22,24,0.2) !important;
}
.elementor-element-3c6ac89::before, .elementor-element-bb0775c::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 3px;
  background: linear-gradient(90deg, #7da8c3, rgba(125, 168, 195,0));
}
.elementor-element-3c6ac89 h4, .elementor-element-bb0775c h4 {
  font-size: 20px !important;
  margin-bottom: 2px !important;
}
.elementor-element-3c6ac89 > p:nth-of-type(1), .elementor-element-bb0775c > p:nth-of-type(1) {
  color: #9A9DA1 !important;
  font-size: 13px !important;
  margin-bottom: 20px !important;
}

/* Software chips — coloured per tool via nth-of-type, no HTML classes needed */
.e-1412532 span {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  margin: 0 8px 8px 0;
  transition: transform 0.3s ease;
}
.e-1412532 span:hover { transform: translateY(-2px); }
.e-1412532 span:nth-of-type(1) { background: #171215; } /* Premiere Pro */
.e-1412532 span:nth-of-type(2) { background: #2F1E3D; } /* After Effects */
.e-1412532 span:nth-of-type(3) { background: #001E36; } /* Photoshop */
.e-1412532 span:nth-of-type(4) { background: #7da8c3; } /* Audacity */

/* Industry tags — subtle outline pills */
.e-5d82946 span {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #4B4F54;
  background: rgba(125, 168, 195,0.06);
  border: 1px solid rgba(125, 168, 195,0.22);
  margin: 0 8px 8px 0;
  transition: transform 0.3s ease, background 0.3s ease;
}
.e-5d82946 span:hover { transform: translateY(-2px); background: rgba(125, 168, 195,0.12); }
/* === END V25 === */

/* === V26: Subtle branded background textures for white/grey sections === */
.elementor-element-18fb0c9, .elementor-element-4d55da1, .elementor-element-892f69e, .elementor-element-787c98d {
  position: relative;
  overflow: hidden;
}
.elementor-element-18fb0c9::before {
  content: '';
  position: absolute;
  top: -180px; right: -180px;
  width: 520px; height: 520px;
  border-radius: 50%;
  border: 1px solid rgba(125, 168, 195,0.10);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-18fb0c9::after {
  content: '';
  position: absolute;
  top: 60px; right: -60px;
  width: 300px; height: 300px;
  border-radius: 50%;
  border: 1px solid rgba(125, 168, 195,0.14);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-4d55da1::before {
  content: '';
  position: absolute;
  bottom: -220px; left: -160px;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(125, 168, 195,0.05), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-4d55da1::after {
  content: '';
  position: absolute;
  top: 8%; left: 4%;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #7da8c3;
  opacity: 0.35;
  box-shadow:
    28px 10px 0 -1px rgba(125, 168, 195,0.28),
    54px -6px 0 -2px rgba(125, 168, 195,0.2),
    14px 34px 0 -2px rgba(125, 168, 195,0.22),
    46px 40px 0 -1px rgba(125, 168, 195,0.16);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-892f69e::before {
  content: '';
  position: absolute;
  top: -140px; left: 50%;
  width: 900px; height: 900px;
  margin-left: -450px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(125, 168, 195,0.045), transparent 68%);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-787c98d::after {
  content: '';
  position: absolute;
  bottom: -1px; right: 6%;
  width: 1px; height: 88%;
  background: linear-gradient(180deg, transparent, rgba(125, 168, 195,0.16), transparent);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-18fb0c9 > .e-con-inner, .elementor-element-18fb0c9 > .elementor-container,
.elementor-element-4d55da1 > .e-con-inner, .elementor-element-4d55da1 > .elementor-container,
.elementor-element-892f69e > .e-con-inner, .elementor-element-892f69e > .elementor-container {
  position: relative;
  z-index: 1;
}
/* === END V26 === */

/* === V27: Image reveal wipes, parallax, smooth text reveal === */
.elementor-element-a016c7e, .elementor-element-a7ea3c3, .elementor-element-1f9b440 {
  overflow: hidden;
}
@supports (animation-timeline: view()) {
  .elementor-element-a016c7e > *, .elementor-element-a7ea3c3 > *, .elementor-element-1f9b440 > * {
    animation: none;
  }
  .elementor-element-a016c7e, .elementor-element-a7ea3c3, .elementor-element-1f9b440 {
    animation: omImageWipe 1s linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 55%;
  }
  .elementor-element-18fb0c9 h2, .elementor-element-4d55da1 h2, .elementor-element-892f69e h2,
  .elementor-element-787c98d h2, .elementor-element-0c20d09 h1 {
    animation: omTextReveal 0.9s cubic-bezier(0.22,1,0.36,1) both;
    animation-timeline: view();
    animation-range: entry 0% entry 45%;
  }
}
@keyframes omImageWipe {
  from { clip-path: inset(0 0 100% 0); filter: saturate(0.7) brightness(1.06); }
  to { clip-path: inset(0 0 0% 0); filter: saturate(1) brightness(1); }
}
@keyframes omTextReveal {
  from { opacity: 0; filter: blur(8px); transform: translateY(14px); }
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}
/* subtle parallax drift on portfolio thumbnails */
@supports (animation-timeline: view()) {
  .elementor-element-4d55da1 .e-con-inner .e-con:nth-of-type(1) [class*="elementor-element-"][style*="background-image"],
  .elementor-element-4d55da1 img {
    will-change: transform;
  }
}
/* === END V27 === */


/* === V28: Services spec-sheet redesign — glass cards, icon badges, spec rows === */
.elementor-element-163627b, .elementor-element-0c8377d, .elementor-element-25f19b0 {
  display: flex !important;
  flex-direction: column !important;
  background: rgba(255,255,255,0.62) !important;
  backdrop-filter: blur(22px) saturate(1.1);
  -webkit-backdrop-filter: blur(22px) saturate(1.1);
  border: 1px solid rgba(255,255,255,0.55) !important;
  box-shadow: 0 2px 8px -4px rgba(20,22,24,0.06), inset 0 1px 0 rgba(255,255,255,0.6) !important;
}
.elementor-element-163627b:hover, .elementor-element-0c8377d:hover, .elementor-element-25f19b0:hover {
  background: rgba(255,255,255,0.78) !important;
}
/* icon badges */
.elementor-element-163627b h3, .elementor-element-0c8377d h3, .elementor-element-25f19b0 h3 {
  position: relative;
}
.elementor-element-163627b h3::before, .elementor-element-0c8377d h3::before, .elementor-element-25f19b0 h3::before {
  content: '';
  display: block;
  width: 40px; height: 40px;
  border-radius: 10px;
  margin-bottom: 16px;
  background: linear-gradient(135deg, #7da8c3, #2F5F91);
  box-shadow: 0 6px 16px -6px rgba(125, 168, 195,0.55);
}
.elementor-element-163627b h3::after { content: '\25B6'; }
.elementor-element-0c8377d h3::after { content: '\26A1'; }
.elementor-element-25f19b0 h3::after { content: '\1F3A5'; }
.elementor-element-163627b h3::after, .elementor-element-0c8377d h3::after, .elementor-element-25f19b0 h3::after {
  position: absolute;
  top: 0; left: 0;
  width: 40px; height: 40px;
  font-size: 15px;
  color: #fff;
  line-height: 40px;
  text-align: center;
}
/* spec row (Best for / value) pushed to bottom of card */
.elementor-element-163627b > .e-con-inner, .elementor-element-0c8377d > .e-con-inner, .elementor-element-25f19b0 > .e-con-inner,
.elementor-element-163627b > .elementor-widget-wrap, .elementor-element-0c8377d > .elementor-widget-wrap, .elementor-element-25f19b0 > .elementor-widget-wrap {
  display: flex; flex-direction: column; flex: 1;
}
[class*="e-bf635c8-"], [class*="e-fa28ef0-"], [class*="e-055c60b-"] {
  margin-top: auto !important;
  padding-top: 18px !important;
  border-top: 1px solid rgba(125, 168, 195,0.16);
}
[class*="e-bf635c8-"] span:nth-of-type(1), [class*="e-fa28ef0-"] span:nth-of-type(1), [class*="e-055c60b-"] span:nth-of-type(1) {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #9A9DA1;
  margin-bottom: 4px;
}
[class*="e-bf635c8-"] span:nth-of-type(2), [class*="e-fa28ef0-"] span:nth-of-type(2), [class*="e-055c60b-"] span:nth-of-type(2) {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #2F3438;
}
/* === END V28 === */


/* === V29: Section-to-section flow — seams, connectors, gradient bleeds === */
/* soft dark-to-light bleed where hero meets intro strip */

/* colon-motif connector marks stitching white sections together */
.elementor-element-787c98d, .elementor-element-18fb0c9, .elementor-element-4d55da1, .elementor-element-892f69e {
  position: relative;
}
.elementor-element-18fb0c9::before, .elementor-element-4d55da1::before, .elementor-element-892f69e::before {
  content: '';
  position: absolute;
  top: -1px; left: 50%;
  width: 1px; height: 42px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(125, 168, 195,0.32), rgba(125, 168, 195,0));
  z-index: 1;
}
.elementor-element-18fb0c9::after, .elementor-element-4d55da1::after, .elementor-element-892f69e::after {
  content: '';
  position: absolute;
  top: 26px; left: 50%;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #7da8c3;
  transform: translateX(-50%);
  opacity: 0.55;
  z-index: 1;
}
/* soft gradient bleed into the full-bleed blue Track Record band */
.elementor-element-04bc811 { position: relative; }
.elementor-element-04bc811 > .e-con-inner::before, .elementor-element-04bc811 > .elementor-widget-wrap::before {
  content: none !important;
}
.elementor-element-04bc811::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important; right: 0 !important; top: 0 !important; bottom: auto !important;
  width: 100% !important; height: 90px !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, rgba(255,255,255,0.5), rgba(255,255,255,0)) !important;
  pointer-events: none;
  z-index: 1;
}
.elementor-element-04bc811::after {
  content: '' !important;
  position: absolute !important;
  left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important;
  width: 100% !important; height: 90px !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, rgba(75,79,84,0), #4B4F54) !important;
  pointer-events: none;
  z-index: 1;
  opacity: 0.35;
}
/* === END V29 === */

/* === V30: Scroll progress indicator, staggered card entrance, slow gradient drift === */
#om-scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 100%;
  background: linear-gradient(90deg, #7da8c3, #7DA8C3);
  transform: scaleX(0);
  transform-origin: 0 50%;
  z-index: 99999;
  pointer-events: none;
}
@supports (animation-timeline: scroll()) {
  #om-scroll-progress {
    animation: omScrollProgress linear both;
    animation-timeline: scroll(root);
  }
}
@keyframes omScrollProgress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
/* staggered entrance for service + portfolio cards */
@supports (animation-timeline: view()) {
  .elementor-element-163627b { animation-delay: 0s !important; }
  .elementor-element-0c8377d { animation-delay: 0.12s !important; }
  .elementor-element-25f19b0 { animation-delay: 0.24s !important; }
  .elementor-element-a016c7e, .elementor-element-a7ea3c3, .elementor-element-1f9b440 {
    animation-delay: 0s !important;
  }
}
/* slow gradient drift on Track Record band */
.elementor-element-04bc811 {
  background-size: 140% 140% !important;
  animation: omGradientDrift 18s ease-in-out infinite;
}
@keyframes omGradientDrift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
/* === END V30 === */

/* === V31: Choreographed scroll journey — distinct per-section motion signatures === */
@keyframes omMaskRevealL { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0% 0 0); } }
@keyframes omMaskRevealR { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0 0 0 0%); } }
@keyframes omMaskRevealT { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0% 0); } }
@keyframes omSlideRight { from { opacity: 0; transform: translateX(70px); } to { opacity: 1; transform: translateX(0); } }
@keyframes omSlideLeft { from { opacity: 0; transform: translateX(-70px); } to { opacity: 1; transform: translateX(0); } }
@keyframes omPopScale { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }
@keyframes omBlurRise { from { opacity: 0; filter: blur(10px); transform: translateY(24px); } to { opacity: 1; filter: blur(0); transform: translateY(0); } }
@keyframes omTiltIn { from { opacity: 0; transform: translateY(30px) rotate(-1.2deg); } to { opacity: 1; transform: translateY(0) rotate(0deg); } }
@keyframes omDividerGrow { from { height: 0; opacity: 0; } to { height: 42px; opacity: 1; } }
@keyframes omDotPop { from { transform: translateX(-50%) scale(0); opacity: 0; } to { transform: translateX(-50%) scale(1); opacity: 0.55; } }
@keyframes omParallaxUp { from { transform: translateY(26px); } to { transform: translateY(-14px); } }

@supports (animation-timeline: view()) {
  /* Intro strip — mask reveal from left, crisp editorial ease */
  .elementor-element-787c98d {
    animation-name: omMaskRevealL !important;
    animation-duration: 1.1s !important;
    animation-timing-function: cubic-bezier(0.65,0,0.35,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 55% !important;
  }
  /* Services — springy pop-scale */
  .elementor-element-18fb0c9 {
    animation-name: omPopScale !important;
    animation-duration: 0.9s !important;
    animation-timing-function: cubic-bezier(0.34,1.56,0.64,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 45% !important;
  }
  /* Portfolio — slide in from the right */
  .elementor-element-4d55da1 {
    animation-name: omSlideRight !important;
    animation-duration: 1s !important;
    animation-timing-function: cubic-bezier(0.16,1,0.3,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 45% !important;
  }
  /* Experience — slight tilt-in from the left, editorial and human */
  .elementor-element-892f69e {
    animation-name: omTiltIn !important;
    animation-duration: 1s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 45% !important;
  }
  /* Track Record — slow deliberate blur-rise, cinematic */
  .elementor-element-04bc811 {
    animation-name: omBlurRise, omGradientDrift !important;
    animation-duration: 1.3s, 18s !important;
    animation-timing-function: cubic-bezier(0.25,0.1,0.25,1), ease-in-out !important;
    animation-fill-mode: both, none !important;
    animation-timeline: view(), auto !important;
    animation-range: entry 0% entry 55%, normal !important;
    animation-iteration-count: 1, infinite !important;
  }
  /* Final CTA — soft pop */
  .elementor-element-e9b7962 {
    animation-name: omBlurRise !important;
    animation-duration: 1s !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 55% !important;
  }
  /* masked heading reveals, varied direction per section */
  .elementor-element-18fb0c9 h2 {
    animation-name: omMaskRevealL !important;
    animation-duration: 0.8s !important;
    animation-timing-function: cubic-bezier(0.65,0,0.35,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 40% !important;
  }
  .elementor-element-4d55da1 h2 {
    animation-name: omMaskRevealT !important;
    animation-duration: 0.8s !important;
    animation-timing-function: cubic-bezier(0.65,0,0.35,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 40% !important;
  }
  .elementor-element-892f69e h2 {
    animation-name: omMaskRevealR !important;
    animation-duration: 0.8s !important;
    animation-timing-function: cubic-bezier(0.65,0,0.35,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 40% !important;
  }
  /* animated dividers — colon-motif connectors grow in on scroll */
  .elementor-element-18fb0c9::before, .elementor-element-4d55da1::before, .elementor-element-892f69e::before {
    animation-name: omDividerGrow !important;
    animation-duration: 0.6s !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 20% !important;
  }
  .elementor-element-18fb0c9::after, .elementor-element-4d55da1::after, .elementor-element-892f69e::after {
    animation-name: omDotPop !important;
    animation-duration: 0.5s !important;
    animation-timing-function: cubic-bezier(0.34,1.56,0.64,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 8% entry 25% !important;
  }
  /* subtle parallax drift on portfolio thumbnails while scrolling through */
  .elementor-element-a016c7e, .elementor-element-a7ea3c3, .elementor-element-1f9b440 {
    animation-name: omImageWipe, omParallaxUp !important;
    animation-duration: 1s, 1s !important;
    animation-timing-function: linear, linear !important;
    animation-fill-mode: both, both !important;
    animation-timeline: view(), view() !important;
    animation-range: entry 0% entry 55%, cover 0% cover 100% !important;
  }
}
/* === END V31 === */

/* === V32: Hero page-load choreography — staggered entrance, not scroll-gated === */
.elementor-element-319424d {
  animation: omMaskRevealT 1s cubic-bezier(0.65,0,0.35,1) 0.15s both !important;
}
.elementor-element-5eebff7 {
  animation: omBlurRise 0.9s ease-out 0.5s both !important;
}
.elementor-element-20ccc4f {
  animation: omBlurRise 0.7s ease-out 0.7s both !important;
}
.elementor-element-f3ad11d {
  animation: omBlurRise 0.7s ease-out 0.82s both !important;
}
.elementor-element-576fb58 {
  animation: none !important;
}
.e-916578d .e-de5a5de-c38acbf::after {
  opacity: 0 !important;
  animation: omWatermarkIn 1.4s ease-out 1.05s both !important;
}
@keyframes omWatermarkIn {
  from { opacity: 0; transform: scale(0.94); }
  to { opacity: 0.85; transform: scale(1); }
}
/* === END V32 === */

/* === V33: Tighten section rhythm — reduce excess empty space === */
.elementor-element-4d55da1, .elementor-element-892f69e {
  padding-top: 64px !important;
  padding-bottom: 60px !important;
}
.elementor-element-e9b7962 {
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}
.elementor-element-18fb0c9 {
  padding-bottom: 60px !important;
}
/* === END V33 === */

/* === V34: Style + choreograph new homepage sections (Why Choose, How It Works, Pricing teaser, FAQ) === */

/* ---- shared reset: consistent section rhythm ---- */
.elementor-element-d45039f, .elementor-element-d9b0628, .elementor-element-4265177, .elementor-element-5fa42bb {
  padding-top: 64px !important;
  padding-bottom: 60px !important;
  position: relative;
  overflow: hidden;
}

/* ============ WHY CHOOSE ============ */
.elementor-element-d45039f::before {
  content: '';
  position: absolute;
  bottom: -160px; right: -120px;
  width: 460px; height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(125, 168, 195,0.05), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.elementor-element-9ea92fc, .elementor-element-7fe6127 {
  position: relative;
  overflow: hidden;
  background: rgba(255,255,255,0.62) !important;
  backdrop-filter: blur(22px) saturate(1.1);
  -webkit-backdrop-filter: blur(22px) saturate(1.1);
  border: 1px solid rgba(255,255,255,0.55) !important;
  box-shadow: 0 2px 8px -4px rgba(20,22,24,0.06), inset 0 1px 0 rgba(255,255,255,0.6) !important;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s cubic-bezier(0.22,1,0.36,1) !important;
}
.elementor-element-9ea92fc:hover, .elementor-element-7fe6127:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 24px 48px -18px rgba(20,22,24,0.2) !important;
}
.elementor-element-9ea92fc::before, .elementor-element-7fe6127::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px;
  background: linear-gradient(90deg, #7da8c3, rgba(125, 168, 195,0));
}
.elementor-element-9ea92fc h3, .elementor-element-7fe6127 h3 { font-size: 20px !important; margin-bottom: 2px !important; }
.elementor-element-9ea92fc > p:nth-of-type(1), .elementor-element-7fe6127 > p:nth-of-type(1) {
  color: #9A9DA1 !important; font-size: 13px !important; margin-bottom: 20px !important;
}
[class*="e-19b2973-"] span, [class*="e-454408d-"] span {
  display: inline-flex; align-items: center; padding: 7px 14px 7px 10px; border-radius: 8px;
  font-size: 13px; font-weight: 600; color: #2F5F91; background: rgba(125, 168, 195,0.08);
  border: 1px solid rgba(125, 168, 195,0.22); margin: 0 8px 8px 0;
  transition: transform 0.3s ease, background 0.3s ease;
}
[class*="e-19b2973-"] span::before, [class*="e-454408d-"] span::before { content: '\2713'; margin-right: 6px; color: #7da8c3; font-weight: 700; }
[class*="e-19b2973-"] span:hover, [class*="e-454408d-"] span:hover { transform: translateY(-2px); background: rgba(125, 168, 195,0.16); }
[class*="e-ca411fc-"] {
  background: #fff !important;
  color: #7da8c3 !important;
  border: 2px solid #7da8c3 !important;
  font-weight: 700 !important;
}
[class*="e-ca411fc-"]:hover { background: #7da8c3 !important; color: #fff !important; }

/* ============ HOW IT WORKS ============ */
.elementor-element-9a235ab { position: relative; }
.elementor-element-9a235ab::before {
  content: '';
  position: absolute;
  top: 22px; left: 8%; right: 8%; height: 1px;
  background: repeating-linear-gradient(90deg, rgba(125, 168, 195,0.3) 0 6px, transparent 6px 12px);
  z-index: 0;
}
.elementor-element-01651a5, .elementor-element-08ececd, .elementor-element-6c7015f {
  position: relative; z-index: 1;
  background: rgba(255,255,255,0.7) !important;
  border: 1px solid rgba(154,157,161,0.18) !important;
  box-shadow: 0 2px 8px -4px rgba(20,22,24,0.06) !important;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s cubic-bezier(0.22,1,0.36,1) !important;
  padding-top: 52px !important;
}
.elementor-element-01651a5:hover, .elementor-element-08ececd:hover, .elementor-element-6c7015f:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 24px 48px -18px rgba(20,22,24,0.2) !important;
}
.elementor-element-01651a5::before, .elementor-element-08ececd::before, .elementor-element-6c7015f::before {
  content: '1'; position: absolute; top: 14px; left: 20px;
  width: 30px; height: 30px; border-radius: 50%;
  background: linear-gradient(135deg, #7da8c3, #2F5F91);
  color: #fff; font-weight: 700; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 14px -4px rgba(125, 168, 195,0.55);
}
.elementor-element-08ececd::before { content: '2'; }
.elementor-element-6c7015f::before { content: '3'; }
[class*="e-07452bd-"] span:nth-of-type(1), [class*="e-3358026-"] span:nth-of-type(1), [class*="e-9468f3c-"] span:nth-of-type(1) {
  display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: #9A9DA1; margin-bottom: 4px; margin-top: 14px;
}
[class*="e-07452bd-"] span:nth-of-type(2), [class*="e-3358026-"] span:nth-of-type(2), [class*="e-9468f3c-"] span:nth-of-type(2) {
  display: block; font-size: 14px; font-weight: 600; color: #2F3438;
}
[class*="e-7708859-"] {
  background: #7da8c3 !important; color: #fff !important; border: 2px solid #7da8c3 !important; font-weight: 700 !important;
}
[class*="e-7708859-"]:hover { background: #2F5F91 !important; border-color: #2F5F91 !important; }

/* ============ PRICING TEASER ============ */
.elementor-element-4265177::before {
  content: '';
  position: absolute;
  bottom: -140px; left: -100px;
  width: 420px; height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(125, 168, 195,0.28), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
[class*="e-9de86a9-"] {
  background: transparent !important; color: #fff !important; border: 2px solid rgba(255,255,255,0.55) !important; font-weight: 700 !important;
}
[class*="e-9de86a9-"]:hover { background: rgba(255,255,255,0.12) !important; border-color: #fff !important; }
[class*="e-c6e35e1-"] {
  background: #7da8c3 !important; color: #fff !important; border: 2px solid #7da8c3 !important; font-weight: 700 !important;
}
[class*="e-c6e35e1-"]:hover { background: #2F5F91 !important; border-color: #2F5F91 !important; }

/* ============ FAQ ============ */
.elementor-element-b9e1d48, .elementor-element-5d250ff, .elementor-element-edafdef {
  position: relative;
  background: rgba(255,255,255,0.7) !important;
  border: 1px solid rgba(154,157,161,0.18) !important;
  border-left: 3px solid #7da8c3 !important;
  box-shadow: 0 2px 8px -4px rgba(20,22,24,0.06) !important;
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1), border-color 0.35s ease !important;
}
.elementor-element-b9e1d48:hover, .elementor-element-5d250ff:hover, .elementor-element-edafdef:hover {
  transform: translateX(6px) !important;
  border-left-color: #2F5F91 !important;
}
.elementor-element-b9e1d48::after, .elementor-element-5d250ff::after, .elementor-element-edafdef::after {
  content: '?';
  position: absolute; top: 6px; right: 16px;
  font-size: 46px; font-weight: 800; color: rgba(125, 168, 195,0.08); line-height: 1;
  pointer-events: none;
}
[class*="e-dcbd784-"] {
  background: #fff !important; color: #7da8c3 !important; border: 2px solid #7da8c3 !important; font-weight: 700 !important;
}
[class*="e-dcbd784-"]:hover { background: #7da8c3 !important; color: #fff !important; }

/* ============ FINAL CTA trust line ============ */
[class*="e-b33c4f9-"] {
  font-size: 13px !important;
  color: rgba(255,255,255,0.55) !important;
  margin-top: 18px !important;
}
/* === END V34 === */

/* === V35: Distinct motion for new sections (Why Choose, How It Works, Pricing teaser, FAQ) === */
@keyframes omFanLeft { from { opacity: 0; transform: translateX(-50px) rotate(-2deg); } to { opacity: 1; transform: translateX(0) rotate(0deg); } }
@keyframes omFanRight { from { opacity: 0; transform: translateX(50px) rotate(2deg); } to { opacity: 1; transform: translateX(0) rotate(0deg); } }
@keyframes omStepIn { from { opacity: 0; transform: translateY(36px) scale(0.94); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes omLineDraw { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes omGlowPop { from { opacity: 0; transform: scale(0.9); filter: blur(4px); } to { opacity: 1; transform: scale(1); filter: blur(0); } }
@keyframes omQuestionRise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

@supports (animation-timeline: view()) {
  .elementor-element-d45039f {
    animation-name: omGlowPop !important;
    animation-duration: 0.9s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 45% !important;
  }
  .elementor-element-9ea92fc {
    animation-name: omFanLeft !important;
    animation-duration: 0.8s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 40% !important;
  }
  .elementor-element-7fe6127 {
    animation-name: omFanRight !important;
    animation-duration: 0.8s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 40% !important;
    animation-delay: 0.1s !important;
  }

  .elementor-element-d9b0628 {
    animation-name: omBlurRise !important;
    animation-duration: 0.9s !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 40% !important;
  }
  .elementor-element-01651a5, .elementor-element-08ececd, .elementor-element-6c7015f {
    animation-name: omStepIn !important;
    animation-duration: 0.7s !important;
    animation-timing-function: cubic-bezier(0.34,1.4,0.64,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 42% !important;
  }
  .elementor-element-01651a5 { animation-delay: 0s !important; }
  .elementor-element-08ececd { animation-delay: 0.15s !important; }
  .elementor-element-6c7015f { animation-delay: 0.3s !important; }
  .elementor-element-9a235ab::before {
    animation-name: omLineDraw !important;
    animation-duration: 1s !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 45% !important;
  }

  .elementor-element-4265177 {
    animation-name: omGlowPop !important;
    animation-duration: 1s !important;
    animation-timing-function: cubic-bezier(0.34,1.2,0.64,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 50% !important;
  }

  .elementor-element-5fa42bb {
    animation-name: omMaskRevealT !important;
    animation-duration: 1s !important;
    animation-timing-function: cubic-bezier(0.65,0,0.35,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% entry 45% !important;
  }
  .elementor-element-b9e1d48, .elementor-element-5d250ff, .elementor-element-edafdef {
    animation-name: omQuestionRise !important;
    animation-duration: 0.7s !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 8% entry 42% !important;
  }
  .elementor-element-b9e1d48 { animation-delay: 0s !important; }
  .elementor-element-5d250ff { animation-delay: 0.12s !important; }
  .elementor-element-edafdef { animation-delay: 0.24s !important; }
}
/* === END V35 === */

/* === V36: Living branded micro-detail — slow rotating rings === */
@keyframes omSlowSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.elementor-element-18fb0c9::before {
  border-style: dashed !important;
  animation: omSlowSpin 70s linear infinite;
}
.e-916578d .e-de5a5de-c38acbf::before {
  content: '';
  position: absolute;
  top: -100px; left: 380px;
  width: 240px; height: 240px;
  border-radius: 50%;
  border: 1px dashed rgba(255,255,255,0.10);
  pointer-events: none;
  animation: omSlowSpin 90s linear infinite;
  z-index: 0;
}
/* === END V36 === */

/* === V37: Unified premium button hover (scoped to Home page, post 7, only) === */
.e-button-base {
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
}
.e-button-base:hover {
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: 0 14px 28px -10px rgba(20,22,24,0.28) !important;
}
.e-button-base:active {
  transform: translateY(0) scale(0.98) !important;
}
/* === END V37 === */


/* === V38: "Why Choose" trust chips as bubbles that pop in on scroll === */
@keyframes omBubblePop {
  0% { opacity: 0; transform: scale(0) translateY(24px); }
  55% { opacity: 1; transform: scale(1.18) translateY(-6px); }
  75% { transform: scale(0.95) translateY(1px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
[class*="e-19b2973-"] span, [class*="e-454408d-"] span {
  display: inline-flex !important;
  align-items: center;
  padding: 10px 18px 10px 14px !important;
  border-radius: 999px !important;
  font-size: 13px;
  font-weight: 600;
  color: #2F5F91;
  background: linear-gradient(160deg, rgba(255,255,255,0.9), rgba(125,168,195,0.35)) !important;
  border: 1px solid rgba(125, 168, 195,0.28) !important;
  box-shadow: 0 8px 18px -8px rgba(125, 168, 195,0.4), inset 0 1px 0 rgba(255,255,255,0.8) !important;
  margin: 0 10px 12px 0 !important;
  opacity: 0;
  transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.35s ease, background 0.35s ease !important;
}
[class*="e-19b2973-"] span::before, [class*="e-454408d-"] span::before {
  content: '\2713';
  margin-right: 6px;
  color: #7da8c3;
  font-weight: 700;
}
@supports (animation-timeline: view()) {
  [class*="e-19b2973-"] span, [class*="e-454408d-"] span {
    animation-name: omBubblePop !important;
    animation-duration: 0.7s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 10% entry 40% !important;
  }
  [class*="e-19b2973-"] span:nth-of-type(1), [class*="e-454408d-"] span:nth-of-type(1) { animation-delay: 0s !important; }
  [class*="e-19b2973-"] span:nth-of-type(2), [class*="e-454408d-"] span:nth-of-type(2) { animation-delay: 0.12s !important; }
  [class*="e-19b2973-"] span:nth-of-type(3), [class*="e-454408d-"] span:nth-of-type(3) { animation-delay: 0.24s !important; }
}
@supports not (animation-timeline: view()) {
  [class*="e-19b2973-"] span, [class*="e-454408d-"] span { opacity: 1; }
}
[class*="e-19b2973-"] span:hover, [class*="e-454408d-"] span:hover {
  transform: translateY(-8px) scale(1.08) !important;
  box-shadow: 0 16px 28px -10px rgba(125, 168, 195,0.55), inset 0 1px 0 rgba(255,255,255,0.9) !important;
  background: linear-gradient(160deg, rgba(255,255,255,0.95), rgba(125,168,195,0.5)) !important;
}
/* === END V38 === */


/* === V40: Portfolio case-study hover — image zoom + "View Project" overlay === */
.elementor-element-a016c7e, .elementor-element-a7ea3c3, .elementor-element-1f9b440 {
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1) !important;
}
.elementor-element-aee2fc7:hover .elementor-element-a016c7e,
.elementor-element-2c6c6cf:hover .elementor-element-a7ea3c3,
.elementor-element-fe4a35e:hover .elementor-element-1f9b440 {
  transform: scale(1.08) !important;
}
.elementor-element-a016c7e::after, .elementor-element-a7ea3c3::after, .elementor-element-1f9b440::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,22,24,0) 40%, rgba(20,22,24,0.75) 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.elementor-element-a016c7e::before, .elementor-element-a7ea3c3::before, .elementor-element-1f9b440::before {
  content: 'View Project \2192';
  position: absolute;
  left: 20px; bottom: -30px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  opacity: 0;
  transition: opacity 0.4s ease, bottom 0.4s cubic-bezier(0.22,1,0.36,1);
  z-index: 2;
  pointer-events: none;
}
.elementor-element-aee2fc7:hover .elementor-element-a016c7e::after,
.elementor-element-2c6c6cf:hover .elementor-element-a7ea3c3::after,
.elementor-element-fe4a35e:hover .elementor-element-1f9b440::after,
.elementor-element-aee2fc7:hover .elementor-element-a016c7e::before,
.elementor-element-2c6c6cf:hover .elementor-element-a7ea3c3::before,
.elementor-element-fe4a35e:hover .elementor-element-1f9b440::before {
  opacity: 1 !important;
}
.elementor-element-aee2fc7:hover .elementor-element-a016c7e::before,
.elementor-element-2c6c6cf:hover .elementor-element-a7ea3c3::before,
.elementor-element-fe4a35e:hover .elementor-element-1f9b440::before {
  bottom: 18px !important;
}
.elementor-element-aee2fc7, .elementor-element-2c6c6cf, .elementor-element-fe4a35e {
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease !important;
}
.elementor-element-aee2fc7:hover, .elementor-element-2c6c6cf:hover, .elementor-element-fe4a35e:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 24px 48px -18px rgba(20,22,24,0.22) !important;
}
/* === END V40 === */

/* === V41: Pricing page — glass cards, Pro badge, motion, FAQ polish === */
.elementor-152 .elementor-element-da612f9,
.elementor-152 .elementor-element-631024b,
.elementor-152 .elementor-element-cd56873 {
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,255,255,0.75)) !important;
  backdrop-filter: blur(18px);
  border: 1px solid rgba(125, 168, 195,0.15) !important;
  box-shadow: 0 10px 30px -15px rgba(20,22,24,0.15);
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;
  overflow: visible !important;
}
.elementor-152 .elementor-element-da612f9:hover,
.elementor-152 .elementor-element-631024b:hover,
.elementor-152 .elementor-element-cd56873:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 48px -20px rgba(20,22,24,0.25);
}
.elementor-152 .elementor-element-631024b {
  background: linear-gradient(180deg, rgba(125, 168, 195,0.08), rgba(255,255,255,0.92)) !important;
  box-shadow: 0 20px 50px -20px rgba(125, 168, 195,0.35);
}

@keyframes omPriceRise {
  from { opacity: 0; transform: translateY(40px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@supports (animation-timeline: view()) {
  .elementor-152 .elementor-element-da612f9,
  .elementor-152 .elementor-element-631024b,
  .elementor-152 .elementor-element-cd56873 {
    animation-name: omPriceRise !important;
    animation-duration: 0.7s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 35% !important;
  }
  .elementor-152 .elementor-element-da612f9 { animation-delay: 0s !important; }
  .elementor-152 .elementor-element-631024b { animation-delay: 0.12s !important; }
  .elementor-152 .elementor-element-cd56873 { animation-delay: 0.24s !important; }
}
@supports not (animation-timeline: view()) {
  .elementor-152 .elementor-element-da612f9,
  .elementor-152 .elementor-element-631024b,
  .elementor-152 .elementor-element-cd56873 { opacity: 1; }
}
.elementor-152 .elementor-element-58862e4 {
  border-radius: 12px;
  box-shadow: 0 10px 30px -18px rgba(20,22,24,0.12);
}
.elementor-152 .elementor-element-3cfe709,
.elementor-152 .elementor-element-dc1ff76,
.elementor-152 .elementor-element-1641dbc,
.elementor-152 .elementor-element-06c1bae,
.elementor-152 .elementor-element-b9066f7 {
  position: relative;
  background: #fff !important;
  border-left: 3px solid #7da8c3 !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px -16px rgba(20,22,24,0.12);
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1), box-shadow 0.3s ease;
  overflow: hidden;
}
.elementor-152 .elementor-element-3cfe709:hover,
.elementor-152 .elementor-element-dc1ff76:hover,
.elementor-152 .elementor-element-1641dbc:hover,
.elementor-152 .elementor-element-06c1bae:hover,
.elementor-152 .elementor-element-b9066f7:hover {
  transform: translateX(6px);
  box-shadow: 0 14px 32px -16px rgba(20,22,24,0.18);
}
.elementor-152 .elementor-element-3cfe709::after,
.elementor-152 .elementor-element-dc1ff76::after,
.elementor-152 .elementor-element-1641dbc::after,
.elementor-152 .elementor-element-06c1bae::after,
.elementor-152 .elementor-element-b9066f7::after {
  content: '?';
  position: absolute; right: 12px; top: -10px;
  font-size: 64px; font-weight: 800; color: rgba(125, 168, 195,0.07);
  line-height: 1; pointer-events: none;
}

.elementor-152 .e-90076ac {
  display: inline-block !important;
  background: linear-gradient(90deg, #7da8c3, #2F5F91) !important;
  color: #fff !important;
  font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.08em !important;
  padding: 6px 14px !important; border-radius: 20px !important;
  box-shadow: 0 6px 16px -6px rgba(125, 168, 195,0.5);
  margin-bottom: 14px;
}
.elementor-152 .e-90076ac span { display: none !important; }

/* === END V41 === */

/* === V42: Services page — hover depth, motion, CTA polish === */
.elementor-149 .elementor-element-35391b6,
.elementor-149 .elementor-element-3650d49,
.elementor-149 .elementor-element-7781826,
.elementor-149 .elementor-element-6973ae5 {
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;
  box-shadow: 0 10px 30px -18px rgba(20,22,24,0.35);
}
.elementor-149 .elementor-element-35391b6:hover,
.elementor-149 .elementor-element-3650d49:hover,
.elementor-149 .elementor-element-7781826:hover,
.elementor-149 .elementor-element-6973ae5:hover {
  transform: translateY(-8px);
  box-shadow: 0 26px 50px -20px rgba(20,22,24,0.5);
}
@keyframes omServiceRise {
  from { opacity: 0; transform: translateY(36px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@supports (animation-timeline: view()) {
  .elementor-149 .elementor-element-35391b6,
  .elementor-149 .elementor-element-3650d49,
  .elementor-149 .elementor-element-7781826,
  .elementor-149 .elementor-element-6973ae5 {
    animation-name: omServiceRise !important;
    animation-duration: 0.7s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 35% !important;
  }
  .elementor-149 .elementor-element-35391b6 { animation-delay: 0s !important; }
  .elementor-149 .elementor-element-3650d49 { animation-delay: 0.1s !important; }
  .elementor-149 .elementor-element-7781826 { animation-delay: 0.2s !important; }
  .elementor-149 .elementor-element-6973ae5 { animation-delay: 0.3s !important; }
}
@supports not (animation-timeline: view()) {
  .elementor-149 .elementor-element-35391b6,
  .elementor-149 .elementor-element-3650d49,
  .elementor-149 .elementor-element-7781826,
  .elementor-149 .elementor-element-6973ae5 { opacity: 1; }
}
.elementor-149 .elementor-element-d7c8dfa {
  position: relative;
  background: radial-gradient(circle at 50% 0%, rgba(125, 168, 195,0.12), transparent 60%), #2F3438 !important;
}
/* === END V42 === */

/* === V43: Portfolio page — CTA button fix, grid hover polish, motion === */
.elementor-150 .elementor-element-83c6a8f .e-button-base {
  background: #7da8c3 !important;
  border-color: #7da8c3 !important;
  color: #fff !important;
}
.elementor-150 .elementor-element-1b3f0d8,
.elementor-150 .elementor-element-57046a2,
.elementor-150 .elementor-element-66309d2,
.elementor-150 .elementor-element-d15a625,
.elementor-150 .elementor-element-573ad31,
.elementor-150 .elementor-element-25b6213 {
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;
}
.elementor-150 .elementor-element-1b3f0d8:hover,
.elementor-150 .elementor-element-57046a2:hover,
.elementor-150 .elementor-element-66309d2:hover,
.elementor-150 .elementor-element-d15a625:hover,
.elementor-150 .elementor-element-573ad31:hover,
.elementor-150 .elementor-element-25b6213:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 48px -20px rgba(20,22,24,0.22);
}
.elementor-150 .elementor-element-4fbe5b3,
.elementor-150 .elementor-element-0ad3048,
.elementor-150 .elementor-element-de330b5,
.elementor-150 .elementor-element-0e23f3f,
.elementor-150 .elementor-element-8c53f1a,
.elementor-150 .elementor-element-6d1fa20 {
  overflow: hidden;
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1) !important;
}
.elementor-150 .elementor-element-1b3f0d8:hover .elementor-element-4fbe5b3,
.elementor-150 .elementor-element-57046a2:hover .elementor-element-0ad3048,
.elementor-150 .elementor-element-66309d2:hover .elementor-element-de330b5,
.elementor-150 .elementor-element-d15a625:hover .elementor-element-0e23f3f,
.elementor-150 .elementor-element-573ad31:hover .elementor-element-8c53f1a,
.elementor-150 .elementor-element-25b6213:hover .elementor-element-6d1fa20 {
  transform: scale(1.06) !important;
}
@keyframes omPortfolioRise {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}
@supports (animation-timeline: view()) {
  .elementor-150 .elementor-element-1b3f0d8,
  .elementor-150 .elementor-element-57046a2,
  .elementor-150 .elementor-element-66309d2,
  .elementor-150 .elementor-element-d15a625,
  .elementor-150 .elementor-element-573ad31,
  .elementor-150 .elementor-element-25b6213 {
    animation-name: omPortfolioRise !important;
    animation-duration: 0.65s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 30% !important;
  }
  .elementor-150 .elementor-element-1b3f0d8 { animation-delay: 0s !important; }
  .elementor-150 .elementor-element-57046a2 { animation-delay: 0.08s !important; }
  .elementor-150 .elementor-element-66309d2 { animation-delay: 0.16s !important; }
  .elementor-150 .elementor-element-d15a625 { animation-delay: 0.24s !important; }
  .elementor-150 .elementor-element-573ad31 { animation-delay: 0.32s !important; }
  .elementor-150 .elementor-element-25b6213 { animation-delay: 0.4s !important; }
}
@supports not (animation-timeline: view()) {
  .elementor-150 .elementor-element-1b3f0d8,
  .elementor-150 .elementor-element-57046a2,
  .elementor-150 .elementor-element-66309d2,
  .elementor-150 .elementor-element-d15a625,
  .elementor-150 .elementor-element-573ad31,
  .elementor-150 .elementor-element-25b6213 { opacity: 1; }
}
/* === END V43 === */

/* === V44: About page — glass-depth cards, motion === */
.elementor-151 .elementor-element-974c865,
.elementor-151 .elementor-element-097b9e9 {
  background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.8)) !important;
  backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px -18px rgba(20,22,24,0.15);
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;
}
.elementor-151 .elementor-element-974c865:hover,
.elementor-151 .elementor-element-097b9e9:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 48px -20px rgba(20,22,24,0.22);
}
.elementor-151 .elementor-element-c948539,
.elementor-151 .elementor-element-a027233,
.elementor-151 .elementor-element-f673549,
.elementor-151 .elementor-element-7a1925d {
  position: relative;
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
  border-top: 2px solid rgba(125, 168, 195,0.3);
}
.elementor-151 .elementor-element-c948539:hover,
.elementor-151 .elementor-element-a027233:hover,
.elementor-151 .elementor-element-f673549:hover,
.elementor-151 .elementor-element-7a1925d:hover {
  transform: translateY(-6px);
  border-top-color: #7da8c3;
}
@keyframes omAboutRise {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}
@supports (animation-timeline: view()) {
  .elementor-151 .elementor-element-974c865,
  .elementor-151 .elementor-element-097b9e9 {
    animation-name: omAboutRise !important;
    animation-duration: 0.65s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 35% !important;
  }
  .elementor-151 .elementor-element-974c865 { animation-delay: 0s !important; }
  .elementor-151 .elementor-element-097b9e9 { animation-delay: 0.12s !important; }
  .elementor-151 .elementor-element-c948539,
  .elementor-151 .elementor-element-a027233,
  .elementor-151 .elementor-element-f673549,
  .elementor-151 .elementor-element-7a1925d {
    animation-name: omAboutRise !important;
    animation-duration: 0.6s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 30% !important;
  }
  .elementor-151 .elementor-element-c948539 { animation-delay: 0s !important; }
  .elementor-151 .elementor-element-a027233 { animation-delay: 0.08s !important; }
  .elementor-151 .elementor-element-f673549 { animation-delay: 0.16s !important; }
  .elementor-151 .elementor-element-7a1925d { animation-delay: 0.24s !important; }
}
@supports not (animation-timeline: view()) {
  .elementor-151 .elementor-element-974c865,
  .elementor-151 .elementor-element-097b9e9,
  .elementor-151 .elementor-element-c948539,
  .elementor-151 .elementor-element-a027233,
  .elementor-151 .elementor-element-f673549,
  .elementor-151 .elementor-element-7a1925d { opacity: 1; }
}
/* === END V44 === */

/* === V45: Experience page — stat/card polish, motion === */
.elementor-153 .elementor-element-e35848e,
.elementor-153 .elementor-element-b977faf,
.elementor-153 .elementor-element-36d2b5a,
.elementor-153 .elementor-element-0653d71 {
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
}
.elementor-153 .elementor-element-e35848e:hover,
.elementor-153 .elementor-element-b977faf:hover,
.elementor-153 .elementor-element-36d2b5a:hover,
.elementor-153 .elementor-element-0653d71:hover {
  transform: translateY(-4px) scale(1.03);
}
.elementor-153 .elementor-element-3e63e54,
.elementor-153 .elementor-element-bf4138e,
.elementor-153 .elementor-element-56d711b,
.elementor-153 .elementor-element-ea67272,
.elementor-153 .elementor-element-ac934bd,
.elementor-153 .elementor-element-5c57c6a {
  background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.8)) !important;
  backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px -18px rgba(20,22,24,0.15);
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease;
}
.elementor-153 .elementor-element-3e63e54:hover,
.elementor-153 .elementor-element-bf4138e:hover,
.elementor-153 .elementor-element-56d711b:hover,
.elementor-153 .elementor-element-ea67272:hover,
.elementor-153 .elementor-element-ac934bd:hover,
.elementor-153 .elementor-element-5c57c6a:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 44px -20px rgba(20,22,24,0.2);
}
@keyframes omExpRise {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
@supports (animation-timeline: view()) {
  .elementor-153 .elementor-element-e35848e,
  .elementor-153 .elementor-element-b977faf,
  .elementor-153 .elementor-element-36d2b5a,
  .elementor-153 .elementor-element-0653d71,
  .elementor-153 .elementor-element-3e63e54,
  .elementor-153 .elementor-element-bf4138e {
    animation-name: omExpRise !important;
    animation-duration: 0.6s !important;
    animation-timing-function: cubic-bezier(0.22,1,0.36,1) !important;
    animation-fill-mode: both !important;
    animation-timeline: view() !important;
    animation-range: entry 5% entry 30% !important;
  }
  .elementor-153 .elementor-element-e35848e { animation-delay: 0s !important; }
  .elementor-153 .elementor-element-b977faf { animation-delay: 0.08s !important; }
  .elementor-153 .elementor-element-36d2b5a { animation-delay: 0.16s !important; }
  .elementor-153 .elementor-element-0653d71 { animation-delay: 0.24s !important; }
  .elementor-153 .elementor-element-3e63e54 { animation-delay: 0s !important; }
  .elementor-153 .elementor-element-bf4138e { animation-delay: 0.1s !important; }
  .elementor-153 .elementor-element-56d711b { animation-delay: 0.2s !important; }
  .elementor-153 .elementor-element-ea67272 { animation-delay: 0.3s !important; }
  .elementor-153 .elementor-element-ac934bd { animation-delay: 0.4s !important; }
  .elementor-153 .elementor-element-5c57c6a { animation-delay: 0.5s !important; }
}
@supports not (animation-timeline: view()) {
  .elementor-153 .elementor-element-e35848e,
  .elementor-153 .elementor-element-b977faf,
  .elementor-153 .elementor-element-36d2b5a,
  .elementor-153 .elementor-element-0653d71,
  .elementor-153 .elementor-element-3e63e54,
  .elementor-153 .elementor-element-bf4138e,
  .elementor-153 .elementor-element-56d711b,
  .elementor-153 .elementor-element-ea67272,
  .elementor-153 .elementor-element-ac934bd,
  .elementor-153 .elementor-element-5c57c6a { opacity: 1; }
}
/* === END V45 === */


/* === V46: Home hero OM watermark === */
.elementor-7 .elementor-element-de5a5de::before {
  content: "";
  position: absolute;
  top: -390px;
  left: 1020px;
  width: 380px;
  height: 380px;
  background: url("https://offline-media.co.uk/wp-content/uploads/2026/07/watermark.png") center center / contain no-repeat;
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  animation: omWatermarkHomeIn 1.4s ease-out 1.05s 1 normal both;
}
@keyframes omWatermarkHomeIn {
  0% { opacity: 0; transform: scale(0.94); }
  100% { opacity: 0.45; transform: scale(1); }
}
/* === END V46 === */


/* === V47: Contact page "What Happens Next" section === */
.elementor-154 .e-1c4cb49-847437d { color: #1f2937 !important; }
.elementor-154 .e-f78d817-5ed9bf1 { color: #5b6472 !important; }
.elementor-154 .elementor-element-1eead5e { padding-top: 84px !important; padding-bottom: 84px !important; }
.elementor-154 .elementor-element-1fd1c41 { gap: 28px !important; margin-top: 12px !important; align-items: stretch !important; }
.elementor-154 .elementor-element-58717c2,
.elementor-154 .elementor-element-d0ebf46,
.elementor-154 .elementor-element-ac6c53e {
  background: #fff;
  border: 1px solid rgba(20,22,24,0.08);
  border-top: 3px solid #7da8c3;
  border-radius: 12px;
  padding: 32px 28px;
  box-shadow: 0 8px 24px rgba(20,22,24,0.05);
  flex: 1;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.elementor-154 .elementor-element-58717c2:hover,
.elementor-154 .elementor-element-d0ebf46:hover,
.elementor-154 .elementor-element-ac6c53e:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(20,22,24,0.09);
}
.elementor-154 .elementor-element-58717c2 > .e-heading-base:first-child,
.elementor-154 .elementor-element-d0ebf46 > .e-heading-base:first-child,
.elementor-154 .elementor-element-ac6c53e > .e-heading-base:first-child {
  color: #7da8c3 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em;
  opacity: 0.65;
  margin-bottom: 8px !important;
}
.elementor-154 .elementor-element-58717c2 > .e-heading-base:nth-child(2),
.elementor-154 .elementor-element-d0ebf46 > .e-heading-base:nth-child(2),
.elementor-154 .elementor-element-ac6c53e > .e-heading-base:nth-child(2) {
  color: #1f2937 !important;
  font-size: 21px !important;
  margin-bottom: 10px !important;
  line-height: 1.3 !important;
}
.elementor-154 .elementor-element-58717c2 .e-paragraph-base,
.elementor-154 .elementor-element-d0ebf46 .e-paragraph-base,
.elementor-154 .elementor-element-ac6c53e .e-paragraph-base {
  color: #5b6472 !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}
@supports (animation-timeline: view()) {
  .elementor-154 .elementor-element-58717c2,
  .elementor-154 .elementor-element-d0ebf46,
  .elementor-154 .elementor-element-ac6c53e {
    opacity: 0;
    animation: omContactStepsRise 0.7s ease-out forwards;
    animation-timeline: view();
    animation-range: entry 0% entry 40%;
  }
  .elementor-154 .elementor-element-d0ebf46 { animation-delay: 0.12s; }
  .elementor-154 .elementor-element-ac6c53e { animation-delay: 0.24s; }
}
@keyframes omContactStepsRise {
  0% { opacity: 0; transform: translateY(24px); }
  100% { opacity: 1; transform: translateY(0); }
}
/* === END V47 === */


/* === V48: About page "The Route Here" career timeline === */
.elementor-151 .elementor-element-ff1b12d,
.elementor-151 .elementor-element-d09682c,
.elementor-151 .elementor-element-19dd0a1,
.elementor-151 .elementor-element-a3caf8c,
.elementor-151 .elementor-element-c63b482 {
  width: 220px;
  text-align: center;
  padding: 26px 20px;
  border-radius: 12px;
  background-color: rgb(247, 247, 247);
  position: relative;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  border-top: 2px solid rgba(125, 168, 195, 0.3);
}
.elementor-151 .elementor-element-ff1b12d:hover,
.elementor-151 .elementor-element-d09682c:hover,
.elementor-151 .elementor-element-19dd0a1:hover,
.elementor-151 .elementor-element-a3caf8c:hover,
.elementor-151 .elementor-element-c63b482:hover {
  transform: translateY(-6px);
  border-top-color: rgb(125, 168, 195);
}
.elementor-151 .elementor-element-f927114 .e-flexbox-base { flex-wrap: wrap; }
@supports (animation-timeline: view()) {
  .elementor-151 .elementor-element-ff1b12d,
  .elementor-151 .elementor-element-d09682c,
  .elementor-151 .elementor-element-19dd0a1,
  .elementor-151 .elementor-element-a3caf8c,
  .elementor-151 .elementor-element-c63b482 {
    opacity: 0;
    animation: omTimelineRise 0.6s ease-out forwards;
    animation-timeline: view();
    animation-range: entry 0% entry 35%;
  }
  .elementor-151 .elementor-element-d09682c { animation-delay: 0.08s; }
  .elementor-151 .elementor-element-19dd0a1 { animation-delay: 0.16s; }
  .elementor-151 .elementor-element-a3caf8c { animation-delay: 0.24s; }
  .elementor-151 .elementor-element-c63b482 { animation-delay: 0.32s; }
}
@keyframes omTimelineRise {
  0% { opacity: 0; transform: translateX(-16px); }
  100% { opacity: 1; transform: translateX(0); }
}
/* === END V48 === */


/* === V49: Custom 404 "Page Not Found" === */
.elementor-749 .elementor-element-66c885d {
  background:
    radial-gradient(620px 500px at 78% 28%, rgba(125, 168, 195, 0.45), rgba(0,0,0,0) 68%),
    radial-gradient(440px 400px at 10% 80%, rgba(125, 168, 195, 0.28), rgba(0,0,0,0) 70%),
    linear-gradient(135deg, #2F3438 0%, #1e2225 100%);
  min-height: 620px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 100px 8vw;
  position: relative;
  overflow: hidden;
}
.elementor-749 .elementor-element-66c885d > .e-heading-base:first-child {
  color: #7DA8C3 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em;
  margin-bottom: 18px !important;
}
.elementor-749 .elementor-element-66c885d > .e-heading-base:nth-child(2) {
  color: #F7F7F7 !important;
  font-size: clamp(32px, 5vw, 52px) !important;
  line-height: 1.15 !important;
  max-width: 680px;
  margin-bottom: 20px !important;
}
.elementor-749 .elementor-element-66c885d .e-paragraph-base {
  color: rgba(247,247,247,0.75) !important;
  font-size: 17px !important;
  line-height: 1.6 !important;
  max-width: 560px;
  margin-bottom: 36px !important;
}
.elementor-749 .elementor-element-d47cc0b {
  gap: 16px;
}
.elementor-749 .elementor-element-d47cc0b > .e-button-base:nth-child(1) {
  background: #7da8c3 !important;
  border-color: #7da8c3 !important;
  color: #fff !important;
}
.elementor-749 .elementor-element-d47cc0b > .e-button-base:nth-child(2) {
  background: transparent !important;
  border: 1px solid rgba(247,247,247,0.4) !important;
  color: #F7F7F7 !important;
}
.elementor-749 .elementor-element-d47cc0b > .e-button-base:nth-child(1):hover { background: #2F5F91 !important; }
.elementor-749 .elementor-element-d47cc0b > .e-button-base:nth-child(2):hover { border-color: #F7F7F7 !important; background: rgba(247,247,247,0.08) !important; }
/* === END V49 === */


/* === V50: Home "The Numbers" dark stats band === */
.elementor-7 .elementor-element-10d3682 {
  background: linear-gradient(135deg, #2F3438 0%, #1e2225 100%);
  padding: 90px 6vw;
  position: relative;
  overflow: hidden;
}
.elementor-7 .elementor-element-10d3682 > .e-heading-base:nth-child(1) {
  color: #7DA8C3 !important;
}
.elementor-7 .elementor-element-10d3682 > .e-heading-base:nth-child(2) {
  color: #F7F7F7 !important;
}
.elementor-7 .elementor-element-10d3682 > .e-paragraph-base {
  color: rgba(247,247,247,0.72) !important;
}
.elementor-7 .elementor-element-3948702 > .e-div-block-base {
  background: rgba(247,247,247,0.06) !important;
  border: 1px solid rgba(247,247,247,0.12) !important;
}
.elementor-7 .elementor-element-3948702 .e-heading-base {
  color: #F7F7F7 !important;
  font-size: clamp(36px, 4vw, 52px) !important;
}
.elementor-7 .elementor-element-3948702 .e-paragraph-base {
  color: rgba(247,247,247,0.65) !important;
}
@supports (animation-timeline: view()) {
  .elementor-7 .elementor-element-10d3682 { animation: omStatsFadeIn 0.6s ease-out both; animation-timeline: view(); animation-range: entry 0% entry 30%; }
}
@keyframes omStatsFadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
/* === END V50 === */


/* === V51: Home "Industries" pill-tag layout === */
.elementor-7 .elementor-element-8963f30 {
  padding: 80px 6vw;
  background: #ffffff;
}
.elementor-7 .elementor-element-649da9d {
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 14px !important;
}
.elementor-7 .elementor-element-649da9d > .e-div-block-base {
  flex: 0 1 auto !important;
  width: auto !important;
  background: #F7F7F7 !important;
  border: 1px solid rgba(20,22,24,0.08) !important;
  border-radius: 999px !important;
  padding: 14px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  transition: all 0.25s ease;
}
.elementor-7 .elementor-element-649da9d > .e-div-block-base:hover {
  background: #7da8c3 !important;
  border-color: #7da8c3 !important;
  transform: translateY(-3px);
}
.elementor-7 .elementor-element-649da9d > .e-div-block-base:hover .e-heading-base,
.elementor-7 .elementor-element-649da9d > .e-div-block-base:hover .e-paragraph-base {
  color: #fff !important;
}
.elementor-7 .elementor-element-649da9d .e-heading-base {
  font-size: 17px !important;
  color: #1f2937 !important;
  transition: color 0.25s ease;
}
.elementor-7 .elementor-element-649da9d .e-paragraph-base {
  font-size: 12px !important;
  color: #5b6472 !important;
  transition: color 0.25s ease;
}
@supports (animation-timeline: view()) {
  .elementor-7 .elementor-element-649da9d > .e-div-block-base { animation: omIndustryPop 0.5s ease-out both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  .elementor-7 .elementor-element-649da9d > .e-div-block-base:nth-child(2) { animation-delay: 0.06s; }
  .elementor-7 .elementor-element-649da9d > .e-div-block-base:nth-child(3) { animation-delay: 0.12s; }
  .elementor-7 .elementor-element-649da9d > .e-div-block-base:nth-child(4) { animation-delay: 0.18s; }
  .elementor-7 .elementor-element-649da9d > .e-div-block-base:nth-child(5) { animation-delay: 0.24s; }
  .elementor-7 .elementor-element-649da9d > .e-div-block-base:nth-child(6) { animation-delay: 0.3s; }
}
@keyframes omIndustryPop { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }
/* === END V51 === */


/* === V52: Home "Editing Philosophy" quote section === */
.elementor-7 .elementor-element-780bacf {
  padding: 100px 10vw;
  background: #F7F7F7;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}
.elementor-7 .elementor-element-780bacf::before {
  content: '"';
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  font-family: Georgia, serif;
  font-size: 160px;
  line-height: 1;
  color: rgba(125, 168, 195,0.12);
  pointer-events: none;
}
.elementor-7 .elementor-element-780bacf .e-paragraph-base:nth-of-type(2) {
  font-size: clamp(22px, 2.6vw, 32px) !important;
  line-height: 1.5 !important;
  color: #1f2937 !important;
  font-style: italic;
  max-width: 820px;
  margin: 32px 0 24px !important;
  position: relative;
}
.elementor-7 .elementor-element-780bacf .e-heading-base:last-child {
  font-size: 15px !important;
  color: #5b6472 !important;
  font-weight: 600;
}
@supports (animation-timeline: view()) {
  .elementor-7 .elementor-element-780bacf .e-paragraph-base:nth-of-type(2) { animation: omQuoteRise 0.7s ease-out both; animation-timeline: view(); animation-range: entry 0% entry 35%; }
}
@keyframes omQuoteRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
/* === END V52 === */


/* === V53: Home "What Clients Say" testimonial cards === */
.elementor-7 .elementor-element-2b01f3a {
  padding: 90px 6vw;
  background: linear-gradient(180deg, #ffffff 0%, #F7F7F7 100%);
}
.elementor-7 .elementor-element-769134e > .e-div-block-base {
  background: #ffffff !important;
  border: 1px solid rgba(20,22,24,0.08) !important;
  border-radius: 14px !important;
  padding: 32px 28px 26px !important;
  box-shadow: 0 10px 28px rgba(20,22,24,0.06);
  position: relative;
}
.elementor-7 .elementor-element-769134e > .e-div-block-base::before {
  content: '\201C';
  position: absolute;
  top: 8px;
  left: 20px;
  font-family: Georgia, serif;
  font-size: 64px;
  color: rgba(125, 168, 195,0.18);
  line-height: 1;
}
.elementor-7 .elementor-element-769134e .e-paragraph-base {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: #333 !important;
  font-style: italic;
  margin-top: 20px !important;
}
.elementor-7 .elementor-element-769134e .e-heading-base {
  font-size: 14px !important;
  color: #7da8c3 !important;
  font-weight: 700 !important;
  margin-top: 16px !important;
  display: block;
  border-top: 1px solid rgba(20,22,24,0.08);
  padding-top: 14px;
}
@supports (animation-timeline: view()) {
  .elementor-7 .elementor-element-769134e > .e-div-block-base { animation: omTestiRise 0.6s ease-out both; animation-timeline: view(); animation-range: entry 0% entry 35%; }
  .elementor-7 .elementor-element-769134e > .e-div-block-base:nth-child(2) { animation-delay: 0.1s; }
  .elementor-7 .elementor-element-769134e > .e-div-block-base:nth-child(3) { animation-delay: 0.2s; }
}
@keyframes omTestiRise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
/* === END V53 === */


/* === V54: Home "Awards & Certifications" badge cards === */
.elementor-7 .elementor-element-99a48cb {
  padding: 90px 6vw;
  background: #ffffff;
}
.elementor-7 .elementor-element-09120dc > .e-div-block-base {
  background: #F7F7F7 !important;
  border-radius: 16px !important;
  padding: 36px 28px !important;
  text-align: center;
  position: relative;
}
.elementor-7 .elementor-element-09120dc > .e-div-block-base::before {
  content: '';
  display: block;
  width: 44px;
  height: 44px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7da8c3, #2F5F91);
}
.elementor-7 .elementor-element-09120dc .e-heading-base {
  font-size: 18px !important;
  color: #1f2937 !important;
}
.elementor-7 .elementor-element-09120dc .e-paragraph-base {
  font-size: 13px !important;
  color: #5b6472 !important;
  margin-top: 8px !important;
}
@supports (animation-timeline: view()) {
  .elementor-7 .elementor-element-09120dc > .e-div-block-base { animation: omAwardsRise 0.55s ease-out both; animation-timeline: view(); animation-range: entry 0% entry 35%; }
  .elementor-7 .elementor-element-09120dc > .e-div-block-base:nth-child(2) { animation-delay: 0.1s; }
  .elementor-7 .elementor-element-09120dc > .e-div-block-base:nth-child(3) { animation-delay: 0.2s; }
}
@keyframes omAwardsRise { from { opacity: 0; transform: translateY(20px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
/* === END V54 === */


/* === V55: Home "Workflow" wide split layout === */
.elementor-7 .elementor-element-7f885d8 {
  padding: 90px 6vw;
  background: #2F3438;
}
.elementor-7 .elementor-element-7f885d8 > .e-heading-base:first-child { color: #7DA8C3 !important; }
.elementor-7 .elementor-element-7f885d8 > .e-heading-base:nth-child(2) { color: #F7F7F7 !important; }
.elementor-7 .elementor-element-7f885d8 > .e-paragraph-base { color: rgba(247,247,247,0.7) !important; }
.elementor-7 .elementor-element-1cd1ba3 {
  gap: 48px !important;
}
.elementor-7 .elementor-element-1cd1ba3 > .e-div-block-base {
  background: transparent !important;
  border-left: 2px solid #7da8c3 !important;
  padding: 4px 0 4px 24px !important;
  flex: 1 1 0 !important;
}
.elementor-7 .elementor-element-1cd1ba3 .e-heading-base {
  color: #F7F7F7 !important;
  font-size: 22px !important;
  margin-bottom: 12px !important;
}
.elementor-7 .elementor-element-1cd1ba3 .e-paragraph-base {
  color: rgba(247,247,247,0.68) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}
@supports (animation-timeline: view()) {
  .elementor-7 .elementor-element-1cd1ba3 > .e-div-block-base { animation: omWorkflowSlide 0.6s ease-out both; animation-timeline: view(); animation-range: entry 0% entry 35%; }
  .elementor-7 .elementor-element-1cd1ba3 > .e-div-block-base:nth-child(2) { animation-delay: 0.15s; }
}
@keyframes omWorkflowSlide { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: translateX(0); } }
/* === END V55 === */


/* === V56: Home "Stay in the Loop" newsletter/instagram band === */
.elementor-7 .elementor-element-7b435e9 {
  padding: 80px 6vw;
  background: #F7F7F7;
  border-top: 1px solid rgba(20,22,24,0.06);
  border-bottom: 1px solid rgba(20,22,24,0.06);
}
.elementor-7 .elementor-element-54e7f60 {
  gap: 32px !important;
}
.elementor-7 .elementor-element-54e7f60 > .e-div-block-base {
  background: #ffffff !important;
  border: 1px dashed rgba(125, 168, 195,0.35) !important;
  border-radius: 12px !important;
  padding: 30px 26px !important;
  flex: 1 1 0 !important;
}
.elementor-7 .elementor-element-54e7f60 .e-heading-base {
  color: #1f2937 !important;
  font-size: 18px !important;
}
.elementor-7 .elementor-element-54e7f60 .e-paragraph-base {
  color: #5b6472 !important;
  font-size: 14px !important;
  margin-top: 8px !important;
}
/* === END V56 === */

/* === V57: Services page - How We Work Together (Process) section === */
[data-id="0b3f8d6"]{ background:#F7F7F7; padding-top:80px; padding-bottom:80px; }
[data-id="3072fdd"], [data-id="d220845"], [data-id="a2ff901"], [data-id="4fb53a1"]{
  position:relative;
  background:#fff;
  border-left:3px solid #7da8c3;
  border-radius:4px;
  box-shadow:0 4px 18px rgba(31,41,55,0.06);
  padding:32px 28px !important;
}
[data-id="3072fdd"]::before{ content:"01"; }
[data-id="d220845"]::before{ content:"02"; }
[data-id="a2ff901"]::before{ content:"03"; }
[data-id="4fb53a1"]::before{ content:"04"; }
[data-id="3072fdd"]::before, [data-id="d220845"]::before, [data-id="a2ff901"]::before, [data-id="4fb53a1"]::before{
  position:absolute;
  top:-18px; left:24px;
  font-family:inherit;
  font-weight:700;
  font-size:13px;
  letter-spacing:0.08em;
  color:#fff;
  background:#7da8c3;
  padding:4px 10px;
  border-radius:3px;
}
[data-id="cbf5b44"], [data-id="39953d8"], [data-id="8e74127"], [data-id="d22dda2"]{
  color:#1f2937;
  font-size:20px;
  font-weight:700;
  margin-top:6px;
}
@supports (animation-timeline: view()){
  @keyframes omProcessRise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
  [data-id="3072fdd"]{ animation:omProcessRise linear both; animation-timeline:view(); animation-range:entry 0% cover 25%; }
  [data-id="d220845"]{ animation:omProcessRise linear both; animation-timeline:view(); animation-range:entry 5% cover 30%; }
  [data-id="a2ff901"]{ animation:omProcessRise linear both; animation-timeline:view(); animation-range:entry 10% cover 35%; }
  [data-id="4fb53a1"]{ animation:omProcessRise linear both; animation-timeline:view(); animation-range:entry 15% cover 40%; }
}

/* === V58: Services page - FAQ section === */
[data-id="53bb7a9"]{ background:#2F3438; padding-top:90px; padding-bottom:90px; }
[data-id="387f9ae"] *, [data-id="7769039"] *, [data-id="ba2cd1d"] *{ color:#fff !important; }
[data-id="ba2cd1d"] *{ color:#c7ced4 !important; }
[data-id="d060a4d"], [data-id="ce92924"], [data-id="07cc28c"], [data-id="ce71b8d"]{
  background:#3a4045;
  border:1px solid #4a5157;
  border-radius:6px;
  padding:26px 28px !important;
}
[data-id="082f8c2"], [data-id="8aad959"], [data-id="e202977"], [data-id="4cef95b"]{
  color:#fff !important;
  font-size:18px;
  font-weight:700;
  position:relative;
  padding-left:28px;
}
[data-id="082f8c2"]::before, [data-id="8aad959"]::before, [data-id="e202977"]::before, [data-id="4cef95b"]::before{
  content:"Q:";
  position:absolute;
  left:0; top:0;
  color:#7DA8C3;
  font-weight:800;
}
[data-id="d060a4d"] p, [data-id="ce92924"] p, [data-id="07cc28c"] p, [data-id="ce71b8d"] p{
  color:#c7ced4 !important;
}
@supports (animation-timeline: view()){
  @keyframes omFaqFade { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
  [data-id="d060a4d"], [data-id="ce92924"], [data-id="07cc28c"], [data-id="ce71b8d"]{
    animation:omFaqFade linear both; animation-timeline:view(); animation-range:entry 0% cover 30%;
  }
}

/* === V59: Specificity fix - force backgrounds on Services Process/FAQ sections === */
body .elementor-element[data-id="0b3f8d6"].e-con{ background-color:#F7F7F7 !important; }
body .elementor-element[data-id="53bb7a9"].e-con{ background-color:#2F3438 !important; }
body .elementor-element[data-id="53bb7a9"] [data-id="387f9ae"] *,
body .elementor-element[data-id="53bb7a9"] [data-id="7769039"] *{ color:#fff !important; }
body .elementor-element[data-id="53bb7a9"] [data-id="ba2cd1d"] *{ color:#c7ced4 !important; }
body .elementor-element[data-id="d060a4d"].e-div-block,
body .elementor-element[data-id="ce92924"].e-div-block,
body .elementor-element[data-id="07cc28c"].e-div-block,
body .elementor-element[data-id="ce71b8d"].e-div-block{
  background-color:#3a4045 !important;
}

/* === V60: fix FAQ card background selector (e-div-block-base) === */
body [data-id="d060a4d"], body [data-id="ce92924"], body [data-id="07cc28c"], body [data-id="ce71b8d"]{
  background-color:#3a4045 !important;
  border:1px solid #4a5157 !important;
}

/* === V61: Services page - Which Service Is Right For You (scenario matcher) === */
body [data-id="f4bd0b1"]{ background:#fff; padding-top:80px; padding-bottom:80px; }
body [data-id="1ed49c5"], body [data-id="933dab7"], body [data-id="0a1d708"], body [data-id="f0cd08f"]{
  background:#F7F7F7 !important;
  border-radius:20px;
  padding:30px 26px !important;
  border:none !important;
}
body [data-id="b78e222"], body [data-id="ff465e4"], body [data-id="0cc2d7e"], body [data-id="9d39623"]{
  color:#1f2937;
  font-size:19px;
  font-weight:700;
  line-height:1.35;
}
body [data-id="b2a2a08"], body [data-id="ae3be61"], body [data-id="c73a15b"], body [data-id="26e26dd"]{
  color:#7da8c3 !important;
  font-weight:700;
  display:inline-block;
  margin-top:8px;
  margin-bottom:10px;
}
@supports (animation-timeline: view()){
  @keyframes omMatchPop { from { opacity:0; transform:scale(0.94); } to { opacity:1; transform:scale(1); } }
  body [data-id="1ed49c5"]{ animation:omMatchPop linear both; animation-timeline:view(); animation-range:entry 0% cover 25%; }
  body [data-id="933dab7"]{ animation:omMatchPop linear both; animation-timeline:view(); animation-range:entry 5% cover 30%; }
  body [data-id="0a1d708"]{ animation:omMatchPop linear both; animation-timeline:view(); animation-range:entry 10% cover 35%; }
  body [data-id="f0cd08f"]{ animation:omMatchPop linear both; animation-timeline:view(); animation-range:entry 15% cover 40%; }
}

/* === V62: Home page fix - force dark gradient on Numbers/stats band (specificity override) === */
body [data-id="10d3682"]{
  background: linear-gradient(135deg, #2F3438 0%, #1e2225 100%) !important;
}

/* === V63: remove leftover 900px min-height causing dead-space gaps (packed-with-shit fix) === */
body [data-id="18fb0c9"]{ min-height:auto !important; height:auto !important; }
body [data-id="10d3682"]{ min-height:auto !important; height:auto !important; }
body [data-id="8963f30"]{ min-height:auto !important; height:auto !important; }
body [data-id="780bacf"]{ min-height:auto !important; height:auto !important; }
body [data-id="d9b0628"]{ min-height:auto !important; height:auto !important; }
body [data-id="7f885d8"]{ min-height:auto !important; height:auto !important; }
body [data-id="2b01f3a"]{ min-height:auto !important; height:auto !important; }
body [data-id="7b435e9"]{ min-height:auto !important; height:auto !important; }
body [data-id="5fa42bb"]{ min-height:auto !important; height:auto !important; }

/* === V64: Pricing page card-grid richness pass (Need something extra / In Practice) === */
body [data-id="2eba47c"], body [data-id="be481bc"]{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  gap:20px !important;
}
body [data-id="2eba47c"] > div, body [data-id="be481bc"] > div{
  flex:0 0 calc(50% - 10px) !important;
  max-width:calc(50% - 10px) !important;
  border-top:3px solid #4a7fb5 !important;
  background:#fff !important;
  box-shadow:0 2px 10px rgba(0,0,0,0.05) !important;
  transition:transform .25s ease, box-shadow .25s ease !important;
}
body [data-id="2eba47c"] > div:hover, body [data-id="be481bc"] > div:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 12px 24px rgba(0,0,0,0.1) !important;
}
@media (max-width:768px){
  body [data-id="2eba47c"] > div, body [data-id="be481bc"] > div{ flex:0 0 100% !important; max-width:100% !important; }
}

/* === V65: Sitewide premium motion/interaction toolkit (Creative Director pass) === */

/* --- Marquee (software/logo/client strip) --- */
.om-marquee{ overflow:hidden; width:100%; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.om-marquee__track{ display:flex; align-items:center; gap:64px; width:max-content; animation:om-marquee-scroll 28s linear infinite; }
.om-marquee:hover .om-marquee__track{ animation-play-state:paused; }
@keyframes om-marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* --- Animated number counters (CSS Houdini, scroll-triggered) --- */
@property --om-n{ syntax:'<integer>'; inherits:false; initial-value:0; }
.om-counter{ counter-reset:omnum var(--om-n); }
.om-counter::before{ content: counter(omnum); }
.om-counter-500{ animation:om-count-500 1.6s ease-out both; animation-timeline:view(); animation-range:entry 10% cover 40%; }
@keyframes om-count-500{ from{ --om-n:0; } to{ --om-n:500; } }
.om-counter-98{ animation:om-count-98 1.6s ease-out both; animation-timeline:view(); animation-range:entry 10% cover 40%; }
@keyframes om-count-98{ from{ --om-n:0; } to{ --om-n:98; } }
.om-counter-48{ animation:om-count-48 1.6s ease-out both; animation-timeline:view(); animation-range:entry 10% cover 40%; }
@keyframes om-count-48{ from{ --om-n:0; } to{ --om-n:48; } }
.om-counter-10{ animation:om-count-10 1.6s ease-out both; animation-timeline:view(); animation-range:entry 10% cover 40%; }
@keyframes om-count-10{ from{ --om-n:0; } to{ --om-n:10; } }
.om-counter-12{ animation:om-count-12 1.6s ease-out both; animation-timeline:view(); animation-range:entry 10% cover 40%; }
@keyframes om-count-12{ from{ --om-n:0; } to{ --om-n:12; } }

/* --- Premium magnetic-style button hover (CSS approximation) --- */
.om-magnetic{ transition:transform .35s cubic-bezier(.2,.9,.3,1.3), box-shadow .35s ease !important; will-change:transform; }
.om-magnetic:hover{ transform:translateY(-3px) scale(1.035) !important; box-shadow:0 14px 30px rgba(74,127,181,0.28) !important; }
.om-magnetic:active{ transform:translateY(-1px) scale(0.99) !important; }

/* --- Image reveal wipe (scroll-triggered) --- */
.om-img-reveal{ position:relative; overflow:hidden; }
.om-img-reveal::after{ content:''; position:absolute; inset:0; background:#1e2225; transform-origin:right; animation:om-wipe 1s cubic-bezier(.65,0,.35,1) both; animation-timeline:view(); animation-range:entry 0% cover 35%; }
@keyframes om-wipe{ from{ transform:scaleX(1); } to{ transform:scaleX(0); } }

/* --- Staggered fade/rise reveal (scroll-triggered, reusable) --- */
.om-rise{ animation:om-rise-in .8s cubic-bezier(.2,.7,.3,1) both; animation-timeline:view(); animation-range:entry 0% cover 30%; }
@keyframes om-rise-in{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:translateY(0); } }
.om-rise-d1{ animation-delay:.08s; } .om-rise-d2{ animation-delay:.16s; } .om-rise-d3{ animation-delay:.24s; } .om-rise-d4{ animation-delay:.32s; } .om-rise-d5{ animation-delay:.4s; } .om-rise-d6{ animation-delay:.48s; }

/* --- Scroll-triggered text animation (word/line rise) --- */
.om-text-reveal{ animation:om-text-in 1s cubic-bezier(.2,.7,.3,1) both; animation-timeline:view(); animation-range:entry 0% cover 25%; }
@keyframes om-text-in{ from{ opacity:0; transform:translateY(18px); filter:blur(4px); } to{ opacity:1; transform:translateY(0); filter:blur(0); } }

/* --- Elegant section-to-section transition divider --- */
.om-divider-fade{ position:relative; }
.om-divider-fade::before{ content:''; position:absolute; top:0; left:0; right:0; height:80px; background:linear-gradient(180deg, rgba(0,0,0,0.05), transparent); pointer-events:none; }

/* --- Tasteful branded background graphic (dot grid) --- */
.om-bg-dots{ position:relative; }
.om-bg-dots::before{ content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(74,127,181,0.12) 1.5px, transparent 1.5px); background-size:26px 26px; pointer-events:none; opacity:.5; }

@media (prefers-reduced-motion: reduce){
  .om-marquee__track, .om-counter-500, .om-counter-98, .om-counter-48, .om-counter-10, .om-counter-12, .om-img-reveal::after, .om-rise, .om-text-reveal{ animation:none !important; }
}

/* === V66: sitewide button magnetic-hover + card rise-in generalisation === */
a.e-button-base, button.e-button-base{
  transition:transform .35s cubic-bezier(.2,.9,.3,1.3), box-shadow .35s ease, background-color .25s ease !important;
  will-change:transform;
}
a.e-button-base:hover, button.e-button-base:hover{
  transform:translateY(-3px) scale(1.035) !important;
  box-shadow:0 14px 30px rgba(74,127,181,0.28) !important;
}
a.e-button-base:active, button.e-button-base:active{
  transform:translateY(-1px) scale(0.99) !important;
}
@media (prefers-reduced-motion: reduce){
  a.e-button-base, button.e-button-base{ transition:none !important; }
}

/* === V67: fix Home Tools marquee layout (single-line scrolling row, full width) === */
body [data-id="fcb85f7"]{ flex-wrap:wrap !important; padding-top:56px !important; padding-bottom:56px !important; }
body [data-id="fcb85f7"] .om-marquee__track{
  white-space:nowrap !important;
  width:max-content !important;
  flex-basis:auto !important;
  max-width:none !important;
  font-size:20px !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
  color:#4a7fb5 !important;
}
body [data-id="fcb85f7"]{ overflow:hidden !important; }
body [data-id="fcb85f7"] > div:has(.om-marquee__track){ width:100% !important; max-width:100% !important; flex-basis:100% !important; overflow:hidden !important; }

/* Numbered process nodes on the two Workflow columns */
body [data-id="7f885d8"]{ position:relative; }
body [data-id="7f885d8"]::after{
  content:'';
  position:absolute;
  top:118px;
  left:50%;
  width:1px;
  height:120px;
  background:linear-gradient(180deg, rgba(74,127,181,0.6), rgba(74,127,181,0));
  transform:translateX(-50%);
  pointer-events:none;
}

/* === V69: layout variety, colour rhythm, card differentiation, marquee row2 === */
.om-visually-hidden{ position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.om-marquee-row2{ padding-top:0 !important; padding-bottom:32px !important; }
.om-marquee-row2 .om-marquee__track{ font-size:0.82em !important; opacity:0.55 !important; }
.om-marquee__track--reverse{ animation-direction:reverse !important; animation-duration:34s !important; }

/* Giant background quote mark - Philosophy section */
.om-giant-quote{ position:relative !important; overflow:hidden !important; isolation:isolate; }
.om-giant-quote::before{ content:"\201C"; position:absolute; top:-70px; left:50%; transform:translateX(-50%); font-size:420px; line-height:1; font-family:Georgia,'Times New Roman',serif; color:rgba(59,130,246,0.07); pointer-events:none; z-index:0; }
.om-giant-quote > *{ position:relative; z-index:1; }

/* Asymmetric editorial offset - Selected Work grid, middle card lifted */
body [data-id="2c6c6cf"]{ transform:translateY(-28px) !important; box-shadow:0 28px 56px -16px rgba(15,23,42,0.22) !important; }
@media (max-width:900px){ body [data-id="2c6c6cf"]{ transform:none !important; } }

/* Left-aligned rhythm break - Why Choose intro */
body [data-id="d45039f"]{ align-items:flex-start !important; }
body [data-id="932302e"], body [data-id="bc1bbae"]{ text-align:left !important; align-self:flex-start !important; max-width:640px !important; }

/* Tinted background - Industries */
.om-tint-bg{ background:linear-gradient(180deg,#eef4fb 0%,#f8fbfd 100%) !important; }

/* Distinct filled card treatment - FAQ */
body [data-id="b9e1d48"], body [data-id="5d250ff"], body [data-id="edafdef"]{
  background:linear-gradient(160deg,#eef5fc 0%,#ffffff 60%) !important;
  border:none !important;
  box-shadow:0 1px 0 rgba(15,23,42,0.04), 0 12px 24px -12px rgba(15,42,90,0.16) !important;
}

/* Dark card treatment - Testimonials */
body [data-id="39577fb"], body [data-id="29086d2"], body [data-id="8a5d25d"]{
  background:#1c2530 !important;
  border-color:rgba(255,255,255,0.08) !important;
}
body [data-id="3d33347"], body [data-id="d9e67eb"], body [data-id="332ad60"]{ color:#8fc2ff !important; }
body [data-id="26a4583"], body [data-id="4996266"], body [data-id="7fa7b20"]{ color:#dbe3ec !important; }

/* === V70: fix giant-quote specificity clash with pre-existing icon pseudo-element === */
body [data-id="780bacf"].om-giant-quote::before{
  content:"\201C" !important;
  font-size:420px !important;
  line-height:1 !important;
  font-family:Georgia,'Times New Roman',serif !important;
  color:rgba(59,130,246,0.07) !important;
  top:-70px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  position:absolute !important;
  z-index:0 !important;
  pointer-events:none !important;
}

/* === V71: fix testimonial/FAQ card background specificity clash === */
body [data-id="39577fb"].om-tcard-dark,
body [data-id="29086d2"].om-tcard-dark,
body [data-id="8a5d25d"].om-tcard-dark{
  background:#1c2530 !important;
  border-color:rgba(255,255,255,0.08) !important;
}
body [data-id="b9e1d48"].om-fcard-light,
body [data-id="5d250ff"].om-fcard-light,
body [data-id="edafdef"].om-fcard-light{
  background:linear-gradient(160deg,#eef5fc 0%,#ffffff 60%) !important;
  border-color:transparent !important;
  box-shadow:0 1px 0 rgba(15,23,42,0.04), 0 12px 24px -12px rgba(15,42,90,0.16) !important;
}

/* === V72: brute-force specificity escalation for testimonial dark cards === */
body [data-id="39577fb"].om-tcard-dark.om-tcard-dark.om-tcard-dark,
body [data-id="29086d2"].om-tcard-dark.om-tcard-dark.om-tcard-dark,
body [data-id="8a5d25d"].om-tcard-dark.om-tcard-dark.om-tcard-dark{
  background:#1c2530 !important;
  background-color:#1c2530 !important;
  border-color:rgba(255,255,255,0.08) !important;
}

/* === V73: italic accent styling for heading emphasis device + card spec refinements === */
h1 em, h2 em, h3 em, .e-heading em {
  font-style: italic !important;
  color: #7da8c3 !important;
  font-weight: inherit;
}


/* === V75: Services cards redesign - editorial numeral device, drop generic icon badge === */
.elementor-element-163627b,
.elementor-element-0c8377d,
.elementor-element-25f19b0 {
  padding-top: 76px !important;
  padding-bottom: 40px !important;
  border-radius: 2px !important;
}
.elementor-element-163627b h3::before,
.elementor-element-0c8377d h3::before,
.elementor-element-25f19b0 h3::before {
  display: none !important;
}
.elementor-element-163627b h3::after,
.elementor-element-0c8377d h3::after,
.elementor-element-25f19b0 h3::after {
  content: "" !important;
  display: none !important;
}
.elementor-element-163627b::before,
.elementor-element-0c8377d::before,
.elementor-element-25f19b0::before {
  top: 20px !important;
  left: 28px !important;
  right: auto !important;
  font-size: 84px !important;
  font-weight: 800 !important;
  color: rgba(125, 168, 195, 0.14) !important;
  letter-spacing: -0.03em !important;
}
.elementor-element-163627b:hover::before,
.elementor-element-0c8377d:hover::before,
.elementor-element-25f19b0:hover::before {
  color: rgba(125, 168, 195, 0.22) !important;
}


/* === V76: Fix issues from critical re-review === */
/* Wedding Mayhem card was using a raw low-res YouTube thumbnail with a stray "42" badge and cut-off caption text baked in - swap to proper photography */
.elementor-element-a016c7e {
  background-image:
    linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%),
    url("https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-podcast-studio.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
/* Services cards: reserve consistent heading height so 1-line and 2-line headings don't throw off card rhythm */
.elementor-element-163627b h3,
.elementor-element-0c8377d h3,
.elementor-element-25f19b0 h3 {
  min-height: 56px !important;
  display: flex !important;
  align-items: flex-start !important;
}


/* === V77: Why Choose section - fix uneven pill layout leaving dead space in left card === */
.elementor-element-9ea92fc,
.elementor-element-7fe6127 {
  flex-direction: column !important;
  align-items: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
}
.elementor-element-9ea92fc > *,
.elementor-element-7fe6127 > * {
  width: auto !important;
}


/* === V78: Fix - previous fix targeted wrong element. Real pill row is a <p> with 3 <span> "pill" children that wrap inline. Force one-per-line stacking so both columns render identically regardless of pill text length. */
.e-19b2973-7af5f37 span,
.e-454408d-4e0456b span {
  display: block !important;
  margin: 0 0 12px 0 !important;
}
.e-19b2973-7af5f37 span:last-child,
.e-454408d-4e0456b span:last-child {
  margin-bottom: 0 !important;
}


/* === V79: Fix critical contrast bug - testimonial quote text was near-black on near-black dark cards, essentially unreadable */
.om-tcard-dark p {
  color: rgba(255, 255, 255, 0.82) !important;
}
.om-tcard-dark h3,
.om-tcard-dark h4 {
  color: #ffffff !important;
}


/* === V80: Design research pass - patterns from premium creative/production sites === */

/* Duotone-graded photography: ties real portfolio photos to brand blue, matches award-winning production-site convention */
.elementor-element-a016c7e,
.elementor-element-a7ea3c3,
.elementor-element-1f9b440 {
  filter: grayscale(0.35) contrast(1.08) saturate(1.05) !important;
  position: relative !important;
}
.elementor-element-a016c7e::after,
.elementor-element-a7ea3c3::after,
.elementor-element-1f9b440::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(125, 168, 195,0.22) 0%, rgba(20,22,24,0.05) 60%);
  mix-blend-mode: multiply;
  pointer-events: none;
}

/* Timecode / frame-counter detail - nod to editing craft, distinct from generic agency badges */
.elementor-element-a016c7e::before,
.elementor-element-a7ea3c3::before,
.elementor-element-1f9b440::before {
  content: "00:00:24:11";
  position: absolute;
  bottom: 12px;
  right: 14px;
  font-family: "SF Mono", "Courier New", monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.85);
  background: rgba(15,23,32,0.55);
  padding: 3px 7px;
  border-radius: 3px;
  z-index: 2;
  pointer-events: none;
}

/* Subtle film-grain texture overlay, sitewide, very low opacity for tactility */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.035;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Full-bleed pull-quote upgrade: widen and add corner marks like a framing device */
.elementor-element-780bacf.om-giant-quote {
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}


/* === V81: Fix V80 conflict - the ::before/::after on portfolio image cards were already wired for a "View Project" hover reveal (task #140). My timecode/tint rules overwrote that content and inherited its opacity:0-until-hover default, so both my additions were invisible and the original hover CTA was silently broken. Restore the original hover interaction, drop the pseudo-element reuse. */
.elementor-element-a016c7e::before,
.elementor-element-a7ea3c3::before,
.elementor-element-1f9b440::before {
  content: "View Project \2192" !important;
  position: absolute !important;
  left: 20px !important;
  bottom: -30px !important;
  right: auto !important;
  top: auto !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  font-family: inherit !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  z-index: 3 !important;
}
.elementor-element-a016c7e::after,
.elementor-element-a7ea3c3::after,
.elementor-element-1f9b440::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(rgba(20,22,24,0) 40%, rgba(20,22,24,0.75) 100%) !important;
  mix-blend-mode: normal !important;
  opacity: 0 !important;
  transition: opacity 0.4s !important;
  pointer-events: none !important;
}


/* === V82: Testimonial text contrast fix (specificity-boosted) === */
.om-tcard-dark p.e-26a4583-43150ba,
.om-tcard-dark p.e-4996266-c65010e,
.om-tcard-dark p.e-7fa7b20-0c412e3,
.om-tcard-dark p.e-paragraph-base {
  color: rgba(255, 255, 255, 0.85) !important;
}
.om-tcard-dark h3.e-heading-base,
.om-tcard-dark h4.e-heading-base {
  color: #ffffff !important;
}


/* === V83: Testimonial text contrast fix v2 (beats page-scoped e-paragraph-base rule) === */
.elementor-7 .elementor-element-769134e .om-tcard-dark p,
.elementor-7 .elementor-element-769134e .om-tcard-dark p.e-paragraph-base {
  color: rgba(255, 255, 255, 0.85) !important;
}
.elementor-7 .elementor-element-769134e .om-tcard-dark h3,
.elementor-7 .elementor-element-769134e .om-tcard-dark h4,
.elementor-7 .elementor-element-769134e .om-tcard-dark h3.e-heading-base,
.elementor-7 .elementor-element-769134e .om-tcard-dark h4.e-heading-base {
  color: #ffffff !important;
}


/* === V84: Home page spacing pass — more generous section rhythm === */

/* Section vertical padding: open up breathing room between blocks */
.elementor-element-787c98d { padding-top: 88px !important; padding-bottom: 88px !important; }
.elementor-element-18fb0c9 { padding-top: 20px !important; padding-bottom: 80px !important; }
.elementor-element-d8f91af { padding-top: 88px !important; padding-bottom: 88px !important; }
.elementor-element-4d55da1 { padding-top: 88px !important; padding-bottom: 84px !important; }
.elementor-element-10d3682 { padding-top: 104px !important; padding-bottom: 104px !important; }
.elementor-element-892f69e { padding-top: 88px !important; padding-bottom: 84px !important; }
.elementor-element-8963f30 { padding-top: 96px !important; padding-bottom: 96px !important; }
.elementor-element-fcb85f7 { padding-top: 80px !important; padding-bottom: 80px !important; }
.elementor-element-08273c4 { padding-top: 16px !important; padding-bottom: 48px !important; }
.elementor-element-d45039f { padding-top: 88px !important; padding-bottom: 84px !important; }
.elementor-element-780bacf { padding-top: 112px !important; padding-bottom: 112px !important; }
.elementor-element-d9b0628 { padding-top: 88px !important; padding-bottom: 84px !important; }
.elementor-element-4265177 { padding-top: 88px !important; padding-bottom: 84px !important; }
.elementor-element-2b01f3a { padding-top: 104px !important; padding-bottom: 104px !important; }
.elementor-element-5fa42bb { padding-top: 88px !important; padding-bottom: 84px !important; }
.elementor-element-e9b7962 { padding-top: 80px !important; padding-bottom: 80px !important; }

/* Card/grid row gaps: give cards room to breathe instead of touching */
.elementor-element-c7723ed,
.elementor-element-769134e,
.elementor-element-7819f9e,
.elementor-element-b102a91,
.elementor-element-0db15d5,
.elementor-element-3948702 {
  gap: 36px !important;
}
.elementor-element-649da9d {
  gap: 18px !important;
}

/* Section header stacks: more air between kicker / heading / subtitle / content */
.elementor-7 > .e-con > .e-heading-base {
  margin-bottom: 1.3em !important;
}
.elementor-7 > .e-con > .e-paragraph-base {
  margin-bottom: 2em !important;
}


/* === V85: Correct V84 overshoot — spacing pass broke rhythm on sparse-content sections === */

/* Dial back margin-bottom compounding (was stacking with section padding) */
.elementor-7 > .e-con > .e-heading-base {
  margin-bottom: 0.8em !important;
}
.elementor-7 > .e-con > .e-paragraph-base {
  margin-bottom: 1.1em !important;
}

/* Reduce section padding back to sane levels — d8f91af especially (sparse 2-line text section
   was creating a ~200px dead gap before the portfolio grid) */
.elementor-element-787c98d { padding-top: 72px !important; padding-bottom: 72px !important; }
.elementor-element-18fb0c9 { padding-top: 20px !important; padding-bottom: 64px !important; }
.elementor-element-d8f91af { padding-top: 56px !important; padding-bottom: 56px !important; }
.elementor-element-4d55da1 { padding-top: 72px !important; padding-bottom: 68px !important; }
.elementor-element-10d3682 { padding-top: 88px !important; padding-bottom: 88px !important; }
.elementor-element-892f69e { padding-top: 72px !important; padding-bottom: 68px !important; }
.elementor-element-8963f30 { padding-top: 80px !important; padding-bottom: 80px !important; }
.elementor-element-fcb85f7 { padding-top: 64px !important; padding-bottom: 64px !important; }
.elementor-element-08273c4 { padding-top: 16px !important; padding-bottom: 40px !important; }
.elementor-element-d45039f { padding-top: 72px !important; padding-bottom: 68px !important; }
.elementor-element-780bacf { padding-top: 100px !important; padding-bottom: 100px !important; }
.elementor-element-d9b0628 { padding-top: 72px !important; padding-bottom: 68px !important; }
.elementor-element-4265177 { padding-top: 72px !important; padding-bottom: 68px !important; }
.elementor-element-2b01f3a { padding-top: 88px !important; padding-bottom: 88px !important; }
.elementor-element-5fa42bb { padding-top: 72px !important; padding-bottom: 68px !important; }
.elementor-element-e9b7962 { padding-top: 68px !important; padding-bottom: 68px !important; }

/* Slightly ease card-row gaps back too */
.elementor-element-c7723ed,
.elementor-element-769134e,
.elementor-element-7819f9e,
.elementor-element-b102a91,
.elementor-element-0db15d5,
.elementor-element-3948702 {
  gap: 30px !important;
}


/* === V86: Services page FAQ dark-card heading contrast fix === */
.elementor-element-ce92924 h3.e-8aad959-1508de1,
.elementor-element-07cc28c h3.e-e202977-ad0b2e4,
.elementor-element-ce71b8d h3.e-4cef95b-cfb0fdd {
  color: #ffffff !important;
}


/* === V87: Experience page new CTA reassurance-line contrast fix === */
.elementor-element-e2b9d54 p.e-paragraph-base {
  color: #ffffff !important;
  opacity: 0.85;
}


/* === V88: Home hero — Creative Director redesign, editorial break === */
.elementor-element-0c20d09 {
  position: relative !important;
  overflow: hidden !important;
  padding-top: 100px !important;
  padding-bottom: 140px !important;
}
.elementor-element-0c20d09::before {
  content: ":";
  position: absolute;
  top: -18%;
  right: 2%;
  font-size: 60vw;
  line-height: 1;
  font-weight: 900;
  color: rgba(96, 165, 250, 0.07);
  pointer-events: none;
  z-index: 0;
  font-family: inherit;
  transform: rotate(-6deg);
}
.elementor-element-0c20d09::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 36px;
  margin: 0 auto;
  width: 1px;
  height: 46px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.5), transparent);
  animation: v88-scrollcue 2.2s ease-in-out infinite;
}
@keyframes v88-scrollcue {
  0% { transform: scaleY(0.2); opacity: 0; }
  40% { opacity: 1; }
  100% { transform: scaleY(1); opacity: 0; }
}
.elementor-element-576fb58 h1, .elementor-element-576fb58,
.elementor-element-bb37d94 h1, .elementor-element-bb37d94 {
  font-size: clamp(3rem, 7.5vw, 6.5rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.02em !important;
  position: relative;
  z-index: 1;
}
.elementor-element-5eebff7 {
  max-width: 480px !important;
  margin-top: 20px !important;
  position: relative;
  z-index: 1;
}
.elementor-element-de5a5de {
  margin-top: 36px !important;
  position: relative;
  z-index: 1;
}


/* === V89: Home testimonials — asymmetric featured-quote redesign === */
.elementor-element-769134e {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr !important;
  grid-template-rows: auto auto !important;
  gap: 24px !important;
  align-items: stretch !important;
}
.elementor-element-39577fb {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  padding: 56px 48px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}
.elementor-element-39577fb .e-heading-base {
  font-size: 1.5rem !important;
}
.elementor-element-39577fb p.e-paragraph-base {
  font-size: 1.4rem !important;
  line-height: 1.4 !important;
}
.elementor-element-29086d2 {
  grid-column: 2 !important;
  grid-row: 1 !important;
  padding: 32px !important;
}
.elementor-element-8a5d25d {
  grid-column: 2 !important;
  grid-row: 2 !important;
  padding: 32px !important;
}
@media (max-width: 900px) {
  .elementor-element-769134e { grid-template-columns: 1fr !important; }
  .elementor-element-39577fb, .elementor-element-29086d2, .elementor-element-8a5d25d {
    grid-column: 1 !important;
  }
}


/* === V90: Home stats band — asymmetric editorial-data redesign === */
.elementor-element-3948702 {
  display: flex !important;
  align-items: flex-end !important;
  gap: 0 !important;
  flex-wrap: wrap !important;
}
.elementor-element-3948702 > div {
  flex: 1 1 0 !important;
  padding: 0 32px !important;
  border-left: 1px solid rgba(255,255,255,0.12) !important;
}
.elementor-element-3948702 > div:first-child {
  border-left: none !important;
  flex: 1.6 1 0 !important;
}
.elementor-element-87faabf h2, .elementor-element-87faabf .e-heading-base {
  font-size: clamp(3.5rem, 6vw, 5.5rem) !important;
  color: #7DA8C3 !important;
}
.elementor-element-3948702 > div:not(:first-child) h2,
.elementor-element-3948702 > div:not(:first-child) .e-heading-base {
  font-size: clamp(2rem, 3vw, 2.75rem) !important;
  opacity: 0.85;
}
@media (max-width: 900px) {
  .elementor-element-3948702 > div { border-left: none !important; border-top: 1px solid rgba(255,255,255,0.12) !important; padding: 24px 0 !important; }
  .elementor-element-3948702 > div:first-child { border-top: none !important; }
}


/* === V91: Services grid — feature flagship service, break equal-card pattern === */
.elementor-element-f3d30ed { display: grid !important; grid-template-columns: 1.3fr 1fr !important; grid-template-rows: repeat(3, auto) !important; gap: 20px !important; }
.elementor-element-35391b6 {
  grid-column: 1 !important; grid-row: 1 / span 3 !important;
  padding: 48px !important; position: relative !important; overflow: hidden !important;
  background: linear-gradient(160deg, #0f172a, #1e3a52) !important; border-radius: 12px !important;
}
.elementor-element-35391b6::before {
  content: ":"; position: absolute; right: -20px; bottom: -60px; font-size: 240px; font-weight: 900;
  color: rgba(255,255,255,0.05); line-height: 1; pointer-events: none;
}
.elementor-element-35391b6 h1, .elementor-element-35391b6 h2, .elementor-element-35391b6 h3, .elementor-element-35391b6 .e-heading-base {
  color: #ffffff !important; font-size: 1.9rem !important; position: relative; z-index: 1;
}
.elementor-element-35391b6 p, .elementor-element-35391b6 .e-paragraph-base {
  color: rgba(255,255,255,0.82) !important; position: relative; z-index: 1;
}
.elementor-element-3650d49, .elementor-element-7781826, .elementor-element-6973ae5 { padding: 28px !important; }
.elementor-element-3650d49 { grid-column: 2 !important; grid-row: 1 !important; }
.elementor-element-7781826 { grid-column: 2 !important; grid-row: 2 !important; }
.elementor-element-6973ae5 { grid-column: 2 !important; grid-row: 3 !important; }
@media (max-width: 900px) {
  .elementor-element-f3d30ed { grid-template-columns: 1fr !important; }
  .elementor-element-35391b6, .elementor-element-3650d49, .elementor-element-7781826, .elementor-element-6973ae5 {
    grid-column: 1 !important; grid-row: auto !important;
  }
}

/* === V91: Portfolio grid — feature Property Elevator, add numbered index device === */
.elementor-element-43d614d { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; grid-auto-rows: auto !important; gap: 20px !important; counter-reset: om-portfolio; }
.elementor-element-573ad31 { grid-column: 1 / span 2 !important; grid-row: 1 / span 2 !important; order: -1 !important; }
.elementor-element-43d614d > div { position: relative !important; }
.elementor-element-1b3f0d8::after, .elementor-element-57046a2::after, .elementor-element-66309d2::after,
.elementor-element-d15a625::after, .elementor-element-573ad31::after, .elementor-element-25b6213::after {
  counter-increment: om-portfolio; content: "0" counter(om-portfolio);
  position: absolute; top: 16px; left: 16px; z-index: 2;
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; color: rgba(255,255,255,0.75);
  background: rgba(15,23,42,0.55); padding: 4px 9px; border-radius: 4px; pointer-events: none;
}
@media (max-width: 900px) {
  .elementor-element-43d614d { grid-template-columns: 1fr !important; }
  .elementor-element-573ad31 { grid-column: 1 !important; grid-row: auto !important; order: 0 !important; }
}

/* === V91: Pricing — alternate section background rhythm === */
.elementor-element-58862e4 { background: #f7fafc !important; padding-top: 80px !important; padding-bottom: 80px !important; }
.elementor-element-5771f45 { background: linear-gradient(160deg, #0f172a, #1e3a52) !important; padding-top: 80px !important; padding-bottom: 80px !important; }
.elementor-element-5771f45 h1, .elementor-element-5771f45 h2, .elementor-element-5771f45 h3, .elementor-element-5771f45 .e-heading-base { color: #ffffff !important; }
.elementor-element-5771f45 p, .elementor-element-5771f45 .e-paragraph-base { color: rgba(255,255,255,0.8) !important; }
.elementor-element-5771f45 .e-div-block-base { background: rgba(255,255,255,0.06) !important; border: 1px solid rgba(255,255,255,0.12) !important; border-radius: 10px !important; }

/* === V91: About hero — oversized typography treatment, no-photo signature moment === */
.elementor-element-d02ec72 { position: relative !important; overflow: hidden !important; padding-top: 110px !important; padding-bottom: 90px !important; }
.elementor-element-d02ec72::before {
  content: ":"; position: absolute; top: -14%; left: -3%; font-size: 48vw; font-weight: 900; line-height: 1;
  color: rgba(96,165,250,0.06); pointer-events: none;
}
.elementor-element-a8d0cdb, .elementor-element-a8d0cdb .e-heading-base {
  font-size: clamp(3.5rem, 9vw, 7.5rem) !important; line-height: 0.92 !important; letter-spacing: -0.03em !important;
}
.elementor-element-97251c1 {
  font-size: 1.4rem !important; font-style: italic !important; max-width: 640px !important;
  border-left: 3px solid #7DA8C3 !important; padding-left: 24px !important; margin-top: 28px !important;
}

/* === V91: About timeline — connected path instead of flat row === */
.elementor-element-ff293c2 { position: relative !important; align-items: flex-start !important; padding-top: 40px !important; }
.elementor-element-ff293c2::before {
  content: ""; position: absolute; top: 22px; left: 6%; right: 6%; height: 2px; z-index: 0;
  background: linear-gradient(90deg, rgba(125,168,195,0.1), #7DA8C3 20%, #7DA8C3 80%, rgba(125,168,195,0.1));
}
.elementor-element-ff1b12d, .elementor-element-19dd0a1, .elementor-element-a3caf8c, .elementor-element-c63b482 {
  position: relative !important; z-index: 1 !important;
}
.elementor-element-ff1b12d::before, .elementor-element-19dd0a1::before, .elementor-element-a3caf8c::before, .elementor-element-c63b482::before {
  content: ""; display: block; width: 14px; height: 14px; border-radius: 50%; background: #7DA8C3;
  margin: 4px auto 20px; box-shadow: 0 0 0 4px rgba(125,168,195,0.15);
}
.elementor-element-19dd0a1, .elementor-element-c63b482 { margin-top: 28px !important; }
@media (max-width: 900px) {
  .elementor-element-ff293c2::before { display: none !important; }
  .elementor-element-19dd0a1, .elementor-element-c63b482 { margin-top: 0 !important; }
}


/* === V92: fix fixed-width flex children not stretching to fill new CSS grid cells === */
.elementor-element-35391b6, .elementor-element-3650d49, .elementor-element-7781826, .elementor-element-6973ae5,
.elementor-element-1b3f0d8, .elementor-element-57046a2, .elementor-element-66309d2, .elementor-element-d15a625,
.elementor-element-573ad31, .elementor-element-25b6213 {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: auto !important;
}


/* === V93: fix About hero widget selectors (widgets use .e-{id}, not .elementor-element-{id}) === */
.e-a8d0cdb, .e-a8d0cdb.e-heading-base {
  font-size: clamp(3.5rem, 9vw, 7.5rem) !important; line-height: 0.92 !important; letter-spacing: -0.03em !important;
}
.e-97251c1 {
  font-size: 1.4rem !important; font-style: italic !important; max-width: 640px !important;
  border-left: 3px solid #7DA8C3 !important; padding-left: 24px !important; margin-top: 28px !important;
  text-align: left !important; margin-left: auto !important; margin-right: auto !important;
}


/* === V94: Pricing — adapt Cheeky Monkey Videos design patterns (bold+italic hero accent, numbered cards) === */
.e-2407111 em, .e-2407111 i {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-style: italic !important;
  color: #7DA8C3 !important;
  font-weight: 400 !important;
}
.e-2407111 {
  font-size: clamp(2.75rem, 6vw, 4.5rem) !important;
  letter-spacing: -0.02em !important;
}

/* numbered badges on plan cards */
.elementor-element-cee8134 { counter-reset: om-plan; }
.elementor-element-da612f9, .elementor-element-631024b, .elementor-element-cd56873 { position: relative !important; }
.elementor-element-da612f9::before, .elementor-element-631024b::before, .elementor-element-cd56873::before {
  counter-increment: om-plan; content: "0" counter(om-plan);
  position: absolute; top: 20px; right: 20px;
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em;
  color: rgba(15,23,42,0.35); z-index: 2;
}

/* numbered badges on add-on cards */
.elementor-element-2eba47c { counter-reset: om-addon; }
.elementor-element-50308ef, .elementor-element-e771438, .elementor-element-c84cce6, .elementor-element-9e2e607 { position: relative !important; }
.elementor-element-50308ef::before, .elementor-element-e771438::before, .elementor-element-c84cce6::before, .elementor-element-9e2e607::before {
  counter-increment: om-addon; content: "Add-on 0" counter(om-addon);
  display: block; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: #7DA8C3; margin-bottom: 6px;
}


/* === V95: Home page — full section rebuild per user review === */

/* Hero: kill the scroll-cue line animation the user disliked */
.elementor-element-0c20d09::after { content: none !important; animation: none !important; display: none !important; }

/* Hero: add real "wow" factor — floating gradient orbs instead of the line */
.elementor-element-0c20d09 { isolation: isolate !important; }
.elementor-element-0c20d09::before {
  content: ":";
  position: absolute; top: -18%; right: 2%;
  font-size: 60vw; line-height: 1; font-weight: 900;
  color: rgba(96, 165, 250, 0.07); pointer-events: none; z-index: 0;
  transform: rotate(-6deg);
}
.elementor-element-0c20d09 {
  background-color: #4B4F54 !important;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(125,168,195,0.18) 0%, transparent 22%),
    radial-gradient(circle at 88% 85%, rgba(96,165,250,0.14) 0%, transparent 20%),
    linear-gradient(160deg, #0f172a, #1e3a52) !important;
  background-repeat: no-repeat !important;
  background-size: 60% 60%, 55% 55%, 100% 100% !important;
  animation: om-hero-drift 16s ease-in-out infinite !important;
}
@keyframes om-hero-drift {
  0%, 100% { background-position: 0% 0%, 100% 100%, 0 0; }
  50% { background-position: 8% 12%, 92% 78%, 0 0; }
}

/* Recent Work: category-only cards (no project detail), 4-across */
.elementor-element-0db15d5 { display: flex !important; flex-wrap: wrap !important; }
.elementor-element-0db15d5 > div { flex: 1 1 220px !important; }

/* Experience & Tools: remove pill/bubble tags, widen + enlarge the remaining Software & Tools card */
.elementor-element-c8ce854 { display: block !important; }
.elementor-element-3c6ac89 { width: 100% !important; max-width: 100% !important; padding: 48px !important; }
.elementor-element-1412532 { display: flex !important; flex-wrap: wrap !important; gap: 28px !important; }
.elementor-element-1412532 span {
  background: none !important; border: none !important; padding: 0 !important;
  font-size: 1.25rem !important; font-weight: 600 !important; color: #4B4F54 !important;
}
.elementor-element-d47eed9 { font-size: 1.75rem !important; }
.elementor-element-5453762 { font-size: 1.05rem !important; margin-bottom: 20px !important; }

/* Industries (merged with Who I Work With): tighter pill grid for 10 items */
.elementor-element-649da9d { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important; gap: 16px !important; }

/* How It Works: connecting line + numbered dots across 4 steps, matching About timeline device */
.elementor-element-9a235ab { position: relative !important; padding-top: 40px !important; align-items: flex-start !important; }
.elementor-element-9a235ab::before {
  content: ""; position: absolute; top: 22px; left: 6%; right: 6%; height: 2px; z-index: 0;
  background: linear-gradient(90deg, rgba(125,168,195,0.1), #7DA8C3 20%, #7DA8C3 80%, rgba(125,168,195,0.1));
}
.elementor-element-01651a5, .elementor-element-08ececd, .elementor-element-8d69fdb, .elementor-element-6c7015f {
  position: relative !important; z-index: 1 !important;
}
.elementor-element-01651a5::before, .elementor-element-08ececd::before, .elementor-element-8d69fdb::before, .elementor-element-6c7015f::before {
  content: ""; display: block; width: 14px; height: 14px; border-radius: 50%; background: #7DA8C3;
  margin: 4px auto 20px; box-shadow: 0 0 0 4px rgba(125,168,195,0.15);
}
@media (max-width: 900px) {
  .elementor-element-9a235ab::before { display: none !important; }
}


/* === V97: FINAL override — strip all previous-client imagery from Home Selected Work cards (confidentiality) === */
.elementor-element-a016c7e.elementor-element-a016c7e,
.elementor-element-a7ea3c3.elementor-element-a7ea3c3,
.elementor-element-1f9b440.elementor-element-1f9b440,
.elementor-element-159d842.elementor-element-159d842,
.e-a016c7e.e-a016c7e,
.e-a7ea3c3.e-a7ea3c3,
.e-1f9b440.e-1f9b440,
.e-159d842.e-159d842 {
  background-image: none !important;
  background-color: #7DA8C3 !important;
  background: #7DA8C3 !important;
}


/* === V98: FINAL override — Software & Tools list, strip pill/bubble style (widen + enlarge) === */
.elementor-element-3c6ac89.elementor-element-3c6ac89,
.elementor-element-c8ce854.elementor-element-c8ce854 {
  width: 100% !important; max-width: 100% !important; display: block !important;
}
.e-1412532.e-1412532 { display: flex !important; flex-wrap: wrap !important; gap: 28px !important; }
.e-1412532.e-1412532 span {
  background: none !important; background-color: transparent !important; border: none !important; padding: 0 !important;
  font-size: 1.25rem !important; font-weight: 600 !important; color: #4B4F54 !important;
}
.e-d47eed9.e-d47eed9 { font-size: 1.75rem !important; }
.e-5453762.e-5453762 { font-size: 1.05rem !important; margin-bottom: 20px !important; }


/* === V99: Services page — stock imagery pass === */

/* Flagship "YouTube & Podcast Editing" card — add photography */
.elementor-element-35391b6.elementor-element-35391b6 {
  background-image: linear-gradient(160deg, rgba(15,23,42,0.88) 0%, rgba(30,58,82,0.78) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-podcast-studio.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}

/* Process step cards: shrink the oversized number pseudo-badge that was
   covering the entire card and hiding the heading/description text,
   and add a stock-photo banner strip at the top of each card instead. */
.elementor-element-3072fdd.elementor-element-3072fdd,
.elementor-element-d220845.elementor-element-d220845,
.elementor-element-a2ff901.elementor-element-a2ff901,
.elementor-element-4fb53a1.elementor-element-4fb53a1 {
  position: relative !important;
  padding-top: 158px !important;
  overflow: visible !important;
}

.elementor-element-3072fdd.elementor-element-3072fdd::before,
.elementor-element-d220845.elementor-element-d220845::before,
.elementor-element-a2ff901.elementor-element-a2ff901::before,
.elementor-element-4fb53a1.elementor-element-4fb53a1::before {
  width: 40px !important;
  height: 40px !important;
  top: 14px !important;
  left: 14px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35) !important;
  z-index: 2 !important;
}

.elementor-element-3072fdd.elementor-element-3072fdd::after,
.elementor-element-d220845.elementor-element-d220845::after,
.elementor-element-a2ff901.elementor-element-a2ff901::after,
.elementor-element-4fb53a1.elementor-element-4fb53a1::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 136px !important;
  border-radius: 16px 16px 0 0 !important;
  background-size: cover !important;
  background-position: center !important;
  z-index: 1 !important;
}

.elementor-element-3072fdd.elementor-element-3072fdd::after {
  background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.4)), url("https://offline-media.co.uk/wp-content/uploads/2026/07/contact-camera-studio-scaled.jpg") !important;
}
.elementor-element-d220845.elementor-element-d220845::after {
  background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.4)), url("https://offline-media.co.uk/wp-content/uploads/2026/07/pricing-studio-equipment.jpg") !important;
}
.elementor-element-a2ff901.elementor-element-a2ff901::after {
  background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.4)), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-colour-grading.jpg") !important;
}
.elementor-element-4fb53a1.elementor-element-4fb53a1::after {
  background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.4)), url("https://offline-media.co.uk/wp-content/uploads/2026/07/experience-control-room.jpg") !important;
}

.elementor-element-3072fdd.elementor-element-3072fdd h3,
.elementor-element-3072fdd.elementor-element-3072fdd p,
.elementor-element-d220845.elementor-element-d220845 h3,
.elementor-element-d220845.elementor-element-d220845 p,
.elementor-element-a2ff901.elementor-element-a2ff901 h3,
.elementor-element-a2ff901.elementor-element-a2ff901 p,
.elementor-element-4fb53a1.elementor-element-4fb53a1 h3,
.elementor-element-4fb53a1.elementor-element-4fb53a1 p {
  position: relative !important;
  z-index: 3 !important;
}


/* === V100: Services page — additional stock imagery (FAQ + CTA band) === */

.elementor-element-53bb7a9.elementor-element-53bb7a9 {
  background-image: linear-gradient(rgba(20,22,24,0.86), rgba(20,22,24,0.93)), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-motion-waveform.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
  background-attachment: fixed !important;
}

.elementor-element-d7c8dfa.elementor-element-d7c8dfa {
  background-image: radial-gradient(circle at 50% 0%, rgba(125, 168, 195,0.18), transparent 60%), linear-gradient(rgba(20,22,24,0.82), rgba(20,22,24,0.9)), url("https://offline-media.co.uk/wp-content/uploads/2026/07/experience-control-room.jpg") !important;
  background-size: cover !important;
  background-position: center 30% !important;
}


/* === V101: revert CTA band photo, fix flagship card image fit === */

/* Restore "Not sure which service fits?" CTA band to its original look (no photo) */
.elementor-element-d7c8dfa.elementor-element-d7c8dfa {
  background-image: radial-gradient(circle at 50% 0%, rgba(125, 168, 195,0.12), transparent 60%) !important;
  background-size: auto !important;
  background-position: 50% 0% !important;
}


/* === V102: Portfolio page — replace real client photos with stock imagery,
   add imagery for 2 new CV-grounded case studies === */

.elementor-element-4fbe5b3.elementor-element-4fbe5b3 {
  background-image: linear-gradient(rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-motion-waveform.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-de330b5.elementor-element-de330b5 {
  background-image: linear-gradient(rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-colour-grading.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-0e23f3f.elementor-element-0e23f3f {
  background-image: linear-gradient(rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/contact-camera-studio-scaled.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-8c53f1a.elementor-element-8c53f1a {
  background-image: linear-gradient(rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/experience-control-room.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}

/* New card: Feature Film & Broadcast Audio Post */
.elementor-element-4f702a6.elementor-element-4f702a6 {
  background-image: linear-gradient(rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-sound-mixing-scaled.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
/* New card: Corporate & Explainer Video */
.elementor-element-5f97caf.elementor-element-5f97caf {
  background-image: linear-gradient(rgba(20,22,24,0.05) 0%, rgba(20,22,24,0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/pricing-studio-equipment.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}


/* === V104: Portfolio grid — fix funny layout (remove 2x2 span on featured
   card so all 8 cards sit in a clean, uniform grid) === */
.elementor-element-573ad31.elementor-element-573ad31 {
  grid-column: auto !important;
  grid-row: auto !important;
}
.elementor-element-43d614d.elementor-element-43d614d {
  align-items: start !important;
}


/* === V105: Portfolio — make grid cards clickable to their detail card below === */
html { scroll-behavior: smooth !important; }

.elementor-element-1b3f0d8.elementor-element-1b3f0d8,
.elementor-element-57046a2.elementor-element-57046a2,
.elementor-element-66309d2.elementor-element-66309d2,
.elementor-element-d15a625.elementor-element-d15a625,
.elementor-element-573ad31.elementor-element-573ad31,
.elementor-element-25b6213.elementor-element-25b6213,
.elementor-element-115068f.elementor-element-115068f,
.elementor-element-40afcfb.elementor-element-40afcfb {
  cursor: pointer !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.elementor-element-1b3f0d8.elementor-element-1b3f0d8:hover,
.elementor-element-57046a2.elementor-element-57046a2:hover,
.elementor-element-66309d2.elementor-element-66309d2:hover,
.elementor-element-d15a625.elementor-element-d15a625:hover,
.elementor-element-573ad31.elementor-element-573ad31:hover,
.elementor-element-25b6213.elementor-element-25b6213:hover,
.elementor-element-115068f.elementor-element-115068f:hover,
.elementor-element-40afcfb.elementor-element-40afcfb:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 32px rgba(0,0,0,0.14) !important;
}

/* offset scroll target so the sticky header does not cover the detail card title */
#case-weekly-podcast, #case-business-podcast, #case-sports-promo, #case-sports-scouting,
#case-tv-broadcast, #case-studio-broadcast, #case-audio-post, #case-corporate-explainer {
  scroll-margin-top: 120px !important;
}


/* === V106: Portfolio grid — extend numbered index badge to cards 7 and 8 === */
.elementor-element-115068f.elementor-element-115068f::after,
.elementor-element-40afcfb.elementor-element-40afcfb::after {
  counter-increment: om-portfolio !important;
  content: "0" counter(om-portfolio) !important;
  position: absolute !important; top: 16px !important; left: 16px !important; z-index: 2 !important;
  font-size: 0.75rem !important; font-weight: 700 !important; letter-spacing: 0.05em !important; color: rgba(255,255,255,0.75) !important;
  background: rgba(15,23,42,0.55) !important; padding: 4px 9px !important; border-radius: 4px !important; pointer-events: none !important;
}


/* === V107: Portfolio grid — extend full-width card fix to cards 7 and 8 === */
.elementor-element-115068f.elementor-element-115068f,
.elementor-element-40afcfb.elementor-element-40afcfb {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: auto !important;
}


/* === V108: Portfolio grid — center the final 2-card row === */
.elementor-element-43d614d.elementor-element-43d614d {
  grid-template-columns: repeat(6, 1fr) !important;
}
.elementor-element-1b3f0d8.elementor-element-1b3f0d8,
.elementor-element-57046a2.elementor-element-57046a2,
.elementor-element-66309d2.elementor-element-66309d2,
.elementor-element-d15a625.elementor-element-d15a625,
.elementor-element-573ad31.elementor-element-573ad31,
.elementor-element-25b6213.elementor-element-25b6213 {
  grid-column: span 2 !important;
}
.elementor-element-115068f.elementor-element-115068f {
  grid-column: 2 / span 2 !important;
}
.elementor-element-40afcfb.elementor-element-40afcfb {
  grid-column: 4 / span 2 !important;
}



/* === V110: Pricing hero — fix "no surprises." em defaulting to browser serif font === */
.e-2407111 em, .e-2407111.e-2407111 em {
  font-family: -apple-system, "system-ui", "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
  font-style: italic !important;
  color: rgb(125, 168, 195) !important;
}


/* === V111: Pricing add-on cards — fix badge sitting absolute/overlapping the border, causing the flat/cramped card look === */
.elementor-element-50308ef.elementor-element-50308ef::before,
.elementor-element-e771438.elementor-element-e771438::before,
.elementor-element-c84cce6.elementor-element-c84cce6::before,
.elementor-element-9e2e607.elementor-element-9e2e607::before {
  position: static !important;
  top: auto !important;
  left: auto !important;
}
.elementor-element-50308ef.elementor-element-50308ef,
.elementor-element-e771438.elementor-element-e771438,
.elementor-element-c84cce6.elementor-element-c84cce6,
.elementor-element-9e2e607.elementor-element-9e2e607 {
  padding: 28px !important;
}


/* === V112: Pricing add-on cards — stop stretch-clipping, let each card size to its own content === */
.elementor-element-2eba47c.elementor-element-2eba47c {
  align-items: flex-start !important;
}
.elementor-element-50308ef.elementor-element-50308ef,
.elementor-element-e771438.elementor-element-e771438,
.elementor-element-c84cce6.elementor-element-c84cce6,
.elementor-element-9e2e607.elementor-element-9e2e607 {
  height: auto !important;
}


/* === V113: Pricing FAQ cards — fix leftover fixed width (750px) leaving a huge blank gap on the right === */
.elementor-element-3cfe709.elementor-element-3cfe709,
.elementor-element-dc1ff76.elementor-element-dc1ff76,
.elementor-element-1641dbc.elementor-element-1641dbc,
.elementor-element-06c1bae.elementor-element-06c1bae,
.elementor-element-b9066f7.elementor-element-b9066f7,
.elementor-element-29c361f.elementor-element-29c361f,
.elementor-element-9585f4c.elementor-element-9585f4c {
  width: 100% !important;
  max-width: 100% !important;
}


/* === V114: Pricing FAQ cards — restore missing blue left-border accent on the last 2 cards === */
.elementor-element-29c361f.elementor-element-29c361f,
.elementor-element-9585f4c.elementor-element-9585f4c {
  border-left: 3px solid rgb(125, 168, 195) !important;
}


/* === V115: Experience page — merged Portfolio card grid (new ids after copy/paste) === */
.elementor-element-0a89c1a.elementor-element-0a89c1a {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  grid-auto-rows: auto !important;
  gap: 20px !important;
  counter-reset: om-portfolio-exp !important;
  align-items: start !important;
}
.elementor-element-03fdc91.elementor-element-03fdc91,
.elementor-element-24c9d6a.elementor-element-24c9d6a,
.elementor-element-97b5c05.elementor-element-97b5c05,
.elementor-element-1ae43d8.elementor-element-1ae43d8,
.elementor-element-167aa4b.elementor-element-167aa4b,
.elementor-element-c766418.elementor-element-c766418,
.elementor-element-c03eff4.elementor-element-c03eff4,
.elementor-element-57a2dc0.elementor-element-57a2dc0 {
  grid-column: span 2 !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  cursor: pointer !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
.elementor-element-c03eff4.elementor-element-c03eff4 {
  grid-column: 2 / span 2 !important;
}
.elementor-element-57a2dc0.elementor-element-57a2dc0 {
  grid-column: 4 / span 2 !important;
}
.elementor-element-03fdc91.elementor-element-03fdc91:hover,
.elementor-element-24c9d6a.elementor-element-24c9d6a:hover,
.elementor-element-97b5c05.elementor-element-97b5c05:hover,
.elementor-element-1ae43d8.elementor-element-1ae43d8:hover,
.elementor-element-167aa4b.elementor-element-167aa4b:hover,
.elementor-element-c766418.elementor-element-c766418:hover,
.elementor-element-c03eff4.elementor-element-c03eff4:hover,
.elementor-element-57a2dc0.elementor-element-57a2dc0:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 32px rgba(0,0,0,0.14) !important;
}
.elementor-element-03fdc91.elementor-element-03fdc91::after,
.elementor-element-24c9d6a.elementor-element-24c9d6a::after,
.elementor-element-97b5c05.elementor-element-97b5c05::after,
.elementor-element-1ae43d8.elementor-element-1ae43d8::after,
.elementor-element-167aa4b.elementor-element-167aa4b::after,
.elementor-element-c766418.elementor-element-c766418::after,
.elementor-element-c03eff4.elementor-element-c03eff4::after,
.elementor-element-57a2dc0.elementor-element-57a2dc0::after {
  counter-increment: om-portfolio-exp !important;
  content: "0" counter(om-portfolio-exp) !important;
  position: absolute !important; top: 16px !important; left: 16px !important; z-index: 2 !important;
  font-size: 0.75rem !important; font-weight: 700 !important; letter-spacing: 0.05em !important; color: rgba(255,255,255,0.75) !important;
  background: rgba(15,23,42,0.55) !important; padding: 4px 9px !important; border-radius: 4px !important; pointer-events: none !important;
}

.e-232323f.e-232323f {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-motion-waveform.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-b67c00a.e-b67c00a {
  background-image: linear-gradient(160deg, rgba(37, 40, 44, 0.86) 0%, rgba(125, 168, 195, 0.42) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-podcast-studio.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-24e2dc7.e-24e2dc7 {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-colour-grading.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-b42fc0f.e-b42fc0f {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/contact-camera-studio-scaled.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-cf874b4.e-cf874b4 {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/experience-control-room.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-7264e69.e-7264e69 {
  background-image: linear-gradient(160deg, rgba(37, 40, 44, 0.86) 0%, rgba(125, 168, 195, 0.42) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-broadcast-videographer.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-24b2557.e-24b2557 {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-sound-mixing-scaled.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.e-457de5f.e-457de5f {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/pricing-studio-equipment.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}


/* === V116: Experience page — fix merged portfolio card images (correct class selector) === */
.elementor-element-232323f.elementor-element-232323f {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-motion-waveform.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-b67c00a.elementor-element-b67c00a {
  background-image: linear-gradient(160deg, rgba(37, 40, 44, 0.86) 0%, rgba(125, 168, 195, 0.42) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-podcast-studio.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-24e2dc7.elementor-element-24e2dc7 {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-colour-grading.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-b42fc0f.elementor-element-b42fc0f {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/contact-camera-studio-scaled.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-cf874b4.elementor-element-cf874b4 {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/experience-control-room.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-7264e69.elementor-element-7264e69 {
  background-image: linear-gradient(160deg, rgba(37, 40, 44, 0.86) 0%, rgba(125, 168, 195, 0.42) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/portfolio-broadcast-videographer.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-24b2557.elementor-element-24b2557 {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/services-sound-mixing-scaled.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}
.elementor-element-457de5f.elementor-element-457de5f {
  background-image: linear-gradient(rgba(20, 22, 24, 0.05) 0%, rgba(20, 22, 24, 0.75) 100%), url("https://offline-media.co.uk/wp-content/uploads/2026/07/pricing-studio-equipment.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
}


/* === V117: Experience page final CTA subtext - fix invisible dark text on dark bg === */
[data-interaction-id="e2b9d54"] {
  color: #D9DCDF !important;
}

/* === V119: Experience page portfolio grid - larger title text and images after removing caption line === */
[data-interaction-id="85a0cba"][data-interaction-id="85a0cba"],
[data-interaction-id="24af704"][data-interaction-id="24af704"],
[data-interaction-id="f05d1cb"][data-interaction-id="f05d1cb"],
[data-interaction-id="3d59912"][data-interaction-id="3d59912"],
[data-interaction-id="d1761db"][data-interaction-id="d1761db"],
[data-interaction-id="f5f2295"][data-interaction-id="f5f2295"],
[data-interaction-id="4926a5c"][data-interaction-id="4926a5c"],
[data-interaction-id="1e83ac6"][data-interaction-id="1e83ac6"] {
  font-size: 26px !important;
  line-height: 1.25 !important;
  margin-bottom: 0 !important;
}
.elementor-element-232323f.elementor-element-232323f,
.elementor-element-b67c00a.elementor-element-b67c00a,
.elementor-element-24e2dc7.elementor-element-24e2dc7,
.elementor-element-b42fc0f.elementor-element-b42fc0f,
.elementor-element-cf874b4.elementor-element-cf874b4,
.elementor-element-7264e69.elementor-element-7264e69,
.elementor-element-24b2557.elementor-element-24b2557,
.elementor-element-457de5f.elementor-element-457de5f {
  height: 280px !important;
}

/* === V120: Experience page portfolio grid - tighten title wrapper bottom padding === */
[data-interaction-id="6bb7f30"][data-interaction-id="6bb7f30"],
[data-interaction-id="1daef53"][data-interaction-id="1daef53"],
[data-interaction-id="4bff680"][data-interaction-id="4bff680"],
[data-interaction-id="25e0858"][data-interaction-id="25e0858"],
[data-interaction-id="f09ba78"][data-interaction-id="f09ba78"],
[data-interaction-id="01a6cea"][data-interaction-id="01a6cea"],
[data-interaction-id="baef561"][data-interaction-id="baef561"],
[data-interaction-id="9e94f1a"][data-interaction-id="9e94f1a"] {
  padding-top: 16px !important;
  padding-bottom: 12px !important;
}

/* === V121: Experience page tools grid - center last (uneven) row === */
.e-4f27dc7.e-4f27dc7,
[data-interaction-id="4f27dc7"][data-interaction-id="4f27dc7"] {
  justify-content: center !important;
}

/* === V122: Experience page portfolio grid - fixed title min-height so 1-line and 2-line titles align === */
[data-interaction-id="85a0cba"][data-interaction-id="85a0cba"],
[data-interaction-id="24af704"][data-interaction-id="24af704"],
[data-interaction-id="f05d1cb"][data-interaction-id="f05d1cb"],
[data-interaction-id="3d59912"][data-interaction-id="3d59912"],
[data-interaction-id="d1761db"][data-interaction-id="d1761db"],
[data-interaction-id="f5f2295"][data-interaction-id="f5f2295"],
[data-interaction-id="4926a5c"][data-interaction-id="4926a5c"],
[data-interaction-id="1e83ac6"][data-interaction-id="1e83ac6"] {
  min-height: 66px !important;
  display: flex !important;
  align-items: center !important;
}

/* === V124: Home Selected Work grid - fix Sport card missing hover treatment + remove stuck middle-card lift === */
.elementor-element-159d842 {
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1) !important;
}
.elementor-element-eecbf00:hover .elementor-element-159d842 {
  transform: scale(1.08) !important;
}
.elementor-element-159d842::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,22,24,0) 40%, rgba(20,22,24,0.75) 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.elementor-element-159d842::before {
  content: 'View Project \2192';
  position: absolute;
  left: 20px; bottom: -30px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  opacity: 0;
  transition: opacity 0.4s ease, bottom 0.4s cubic-bezier(0.22,1,0.36,1);
  z-index: 2;
  pointer-events: none;
}
.elementor-element-eecbf00:hover .elementor-element-159d842::after,
.elementor-element-eecbf00:hover .elementor-element-159d842::before {
  opacity: 1 !important;
}
.elementor-element-eecbf00:hover .elementor-element-159d842::before {
  bottom: 18px !important;
}
.elementor-element-eecbf00 {
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), box-shadow 0.4s ease !important;
}
.elementor-element-eecbf00:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 24px 48px -18px rgba(20,22,24,0.22) !important;
}

body [data-id="2c6c6cf"],
.elementor-element-2c6c6cf {
  transform: none !important;
  box-shadow: none !important;
}

/* === V125: Home How It Works - fix Revisions card missing typical-time label styling === */
[data-interaction-id="d112a7b"] span:first-child {
  display: block !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  color: rgb(154, 157, 161) !important;
  margin-bottom: 4px !important;
  font-weight: 700 !important;
}
[data-interaction-id="d112a7b"] span:last-child {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: rgb(47, 52, 56) !important;
}

/* === V126: Home FAQ grid - make NDA and software cards match the gradient+watermark styling of the first 3 === */
[data-interaction-id="bfa9f94"], [data-interaction-id="2c65251"] {
  background: linear-gradient(160deg, rgb(238, 245, 252) 0%, rgb(255, 255, 255) 60%) !important;
}
[data-interaction-id="bfa9f94"]::after, [data-interaction-id="2c65251"]::after {
  content: "?" !important;
  position: absolute !important;
  top: 6px !important;
  right: 16px !important;
  font-size: 46px !important;
  font-weight: 800 !important;
  color: rgba(125, 168, 195, 0.08) !important;
}

/* === V127: Home Selected Work grid - replace flat placeholder colors with themed illustrations === */
[data-interaction-id="aee2fc7"] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNDIwIiB2aWV3Qm94PSIwIDAgNjAwIDQyMCI+CiAgICA8ZGVmcz4KICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMWYzYTVjIi8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjM2Q3YWI4Ii8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8cmVjdCB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQyMCIgZmlsbD0idXJsKCNnKSIvPgogICAgPGcgb3BhY2l0eT0iMC4wOCIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjEiPgogICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjUwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSI0MjAiLz48bGluZSB4MT0iMTUwIiB5MT0iMCIgeDI9IjE1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIyMDAiIHkxPSIwIiB4Mj0iMjAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjI1MCIgeTE9IjAiIHgyPSIyNTAiIHkyPSI0MjAiLz48bGluZSB4MT0iMzAwIiB5MT0iMCIgeDI9IjMwMCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIzNTAiIHkxPSIwIiB4Mj0iMzUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjQwMCIgeTE9IjAiIHgyPSI0MDAiIHkyPSI0MjAiLz48bGluZSB4MT0iNDUwIiB5MT0iMCIgeDI9IjQ1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSI1MDAiIHkxPSIwIiB4Mj0iNTAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjU1MCIgeTE9IjAiIHgyPSI1NTAiIHkyPSI0MjAiLz4KICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iNjAwIiB5Mj0iMCIvPjxsaW5lIHgxPSIwIiB5MT0iNTAiIHgyPSI2MDAiIHkyPSI1MCIvPjxsaW5lIHgxPSIwIiB5MT0iMTAwIiB4Mj0iNjAwIiB5Mj0iMTAwIi8+PGxpbmUgeDE9IjAiIHkxPSIxNTAiIHgyPSI2MDAiIHkyPSIxNTAiLz48bGluZSB4MT0iMCIgeTE9IjIwMCIgeDI9IjYwMCIgeTI9IjIwMCIvPjxsaW5lIHgxPSIwIiB5MT0iMjUwIiB4Mj0iNjAwIiB5Mj0iMjUwIi8+PGxpbmUgeDE9IjAiIHkxPSIzMDAiIHgyPSI2MDAiIHkyPSIzMDAiLz48bGluZSB4MT0iMCIgeTE9IjM1MCIgeDI9IjYwMCIgeTI9IjM1MCIvPjxsaW5lIHgxPSIwIiB5MT0iNDAwIiB4Mj0iNjAwIiB5Mj0iNDAwIi8+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsMTkwKSIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjkyIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU1LC00MCkiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMTAiIGhlaWdodD0iODAiIHJ4PSIxOCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjE1Ii8+PHBhdGggZD0iTTQyIDIwIEw3OCA0MCBMNDIgNjAgWiIgZmlsbD0iI2ZmZmZmZiIvPjwvZz4KICAgIDwvZz4KICAgIDx0ZXh0IHg9IjMwMCIgeT0iMzAwIiBmb250LWZhbWlseT0iQXJpYWwsIHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMjIiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC41NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgbGV0dGVyLXNwYWNpbmc9IjMiPllPVVRVQkU8L3RleHQ+CiAgPC9zdmc+") !important;
  background-size: cover !important;
  background-position: center !important;
}
[data-interaction-id="eecbf00"] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNDIwIiB2aWV3Qm94PSIwIDAgNjAwIDQyMCI+CiAgICA8ZGVmcz4KICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMWE0ZDNlIi8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMmY4ZjZhIi8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8cmVjdCB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQyMCIgZmlsbD0idXJsKCNnKSIvPgogICAgPGcgb3BhY2l0eT0iMC4wOCIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjEiPgogICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjUwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSI0MjAiLz48bGluZSB4MT0iMTUwIiB5MT0iMCIgeDI9IjE1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIyMDAiIHkxPSIwIiB4Mj0iMjAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjI1MCIgeTE9IjAiIHgyPSIyNTAiIHkyPSI0MjAiLz48bGluZSB4MT0iMzAwIiB5MT0iMCIgeDI9IjMwMCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIzNTAiIHkxPSIwIiB4Mj0iMzUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjQwMCIgeTE9IjAiIHgyPSI0MDAiIHkyPSI0MjAiLz48bGluZSB4MT0iNDUwIiB5MT0iMCIgeDI9IjQ1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSI1MDAiIHkxPSIwIiB4Mj0iNTAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjU1MCIgeTE9IjAiIHgyPSI1NTAiIHkyPSI0MjAiLz4KICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iNjAwIiB5Mj0iMCIvPjxsaW5lIHgxPSIwIiB5MT0iNTAiIHgyPSI2MDAiIHkyPSI1MCIvPjxsaW5lIHgxPSIwIiB5MT0iMTAwIiB4Mj0iNjAwIiB5Mj0iMTAwIi8+PGxpbmUgeDE9IjAiIHkxPSIxNTAiIHgyPSI2MDAiIHkyPSIxNTAiLz48bGluZSB4MT0iMCIgeTE9IjIwMCIgeDI9IjYwMCIgeTI9IjIwMCIvPjxsaW5lIHgxPSIwIiB5MT0iMjUwIiB4Mj0iNjAwIiB5Mj0iMjUwIi8+PGxpbmUgeDE9IjAiIHkxPSIzMDAiIHgyPSI2MDAiIHkyPSIzMDAiLz48bGluZSB4MT0iMCIgeTE9IjM1MCIgeDI9IjYwMCIgeTI9IjM1MCIvPjxsaW5lIHgxPSIwIiB5MT0iNDAwIiB4Mj0iNjAwIiB5Mj0iNDAwIi8+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsMTkwKSIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjkyIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1LC00NSkiPjxjaXJjbGUgY3g9IjQ1IiBjeT0iNDUiIHI9IjQ1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNCIvPjxwYXRoIGQ9Ik00NSAxMCBMNjAgMjUgTDU0IDQyIEwzNiA0MiBMMzAgMjUgWiIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0xMCA0NSBMMjggNDAgTTgwIDQ1IEw2MiA0MCBNNDUgODAgTDQ1IDYyIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMyIvPjwvZz4KICAgIDwvZz4KICAgIDx0ZXh0IHg9IjMwMCIgeT0iMzAwIiBmb250LWZhbWlseT0iQXJpYWwsIHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMjIiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC41NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgbGV0dGVyLXNwYWNpbmc9IjMiPlNQT1JUPC90ZXh0PgogIDwvc3ZnPg==") !important;
  background-size: cover !important;
  background-position: center !important;
}
[data-interaction-id="2c6c6cf"] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNDIwIiB2aWV3Qm94PSIwIDAgNjAwIDQyMCI+CiAgICA8ZGVmcz4KICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjM2QyYTVjIi8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNmI0ZmE4Ii8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8cmVjdCB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQyMCIgZmlsbD0idXJsKCNnKSIvPgogICAgPGcgb3BhY2l0eT0iMC4wOCIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjEiPgogICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjUwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSI0MjAiLz48bGluZSB4MT0iMTUwIiB5MT0iMCIgeDI9IjE1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIyMDAiIHkxPSIwIiB4Mj0iMjAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjI1MCIgeTE9IjAiIHgyPSIyNTAiIHkyPSI0MjAiLz48bGluZSB4MT0iMzAwIiB5MT0iMCIgeDI9IjMwMCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIzNTAiIHkxPSIwIiB4Mj0iMzUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjQwMCIgeTE9IjAiIHgyPSI0MDAiIHkyPSI0MjAiLz48bGluZSB4MT0iNDUwIiB5MT0iMCIgeDI9IjQ1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSI1MDAiIHkxPSIwIiB4Mj0iNTAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjU1MCIgeTE9IjAiIHgyPSI1NTAiIHkyPSI0MjAiLz4KICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iNjAwIiB5Mj0iMCIvPjxsaW5lIHgxPSIwIiB5MT0iNTAiIHgyPSI2MDAiIHkyPSI1MCIvPjxsaW5lIHgxPSIwIiB5MT0iMTAwIiB4Mj0iNjAwIiB5Mj0iMTAwIi8+PGxpbmUgeDE9IjAiIHkxPSIxNTAiIHgyPSI2MDAiIHkyPSIxNTAiLz48bGluZSB4MT0iMCIgeTE9IjIwMCIgeDI9IjYwMCIgeTI9IjIwMCIvPjxsaW5lIHgxPSIwIiB5MT0iMjUwIiB4Mj0iNjAwIiB5Mj0iMjUwIi8+PGxpbmUgeDE9IjAiIHkxPSIzMDAiIHgyPSI2MDAiIHkyPSIzMDAiLz48bGluZSB4MT0iMCIgeTE9IjM1MCIgeDI9IjYwMCIgeTI9IjM1MCIvPjxsaW5lIHgxPSIwIiB5MT0iNDAwIiB4Mj0iNjAwIiB5Mj0iNDAwIi8+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsMTkwKSIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjkyIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUwLC00MCkiPjxwYXRoIGQ9Ik0wIDMwIEwzMCAzMCBMNjAgMTAgTDYwIDcwIEwzMCA1MCBMMCA1MCBaIiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTIwIDUwIEwyNiA3MiBMMzYgNzIgTDMyIDUwIFoiIGZpbGw9IiNmZmZmZmYiLz48cGF0aCBkPSJNNjggMjUgUTg1IDQwIDY4IDU1IiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iNCIgZmlsbD0ibm9uZSIvPjwvZz4KICAgIDwvZz4KICAgIDx0ZXh0IHg9IjMwMCIgeT0iMzAwIiBmb250LWZhbWlseT0iQXJpYWwsIHNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMjIiIGZvbnQtd2VpZ2h0PSI3MDAiIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC41NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgbGV0dGVyLXNwYWNpbmc9IjMiPkNPTU1FUkNJQUw8L3RleHQ+CiAgPC9zdmc+") !important;
  background-size: cover !important;
  background-position: center !important;
}
[data-interaction-id="fe4a35e"] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNDIwIiB2aWV3Qm94PSIwIDAgNjAwIDQyMCI+CiAgICA8ZGVmcz4KICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KICAgICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMWYyZDNkIi8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjM2Q1YTdhIi8+CiAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8cmVjdCB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQyMCIgZmlsbD0idXJsKCNnKSIvPgogICAgPGcgb3BhY2l0eT0iMC4wOCIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjEiPgogICAgICA8bGluZSB4MT0iMCIgeTE9IjAiIHgyPSIwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjUwIiB5MT0iMCIgeDI9IjUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSI0MjAiLz48bGluZSB4MT0iMTUwIiB5MT0iMCIgeDI9IjE1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIyMDAiIHkxPSIwIiB4Mj0iMjAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjI1MCIgeTE9IjAiIHgyPSIyNTAiIHkyPSI0MjAiLz48bGluZSB4MT0iMzAwIiB5MT0iMCIgeDI9IjMwMCIgeTI9IjQyMCIvPjxsaW5lIHgxPSIzNTAiIHkxPSIwIiB4Mj0iMzUwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjQwMCIgeTE9IjAiIHgyPSI0MDAiIHkyPSI0MjAiLz48bGluZSB4MT0iNDUwIiB5MT0iMCIgeDI9IjQ1MCIgeTI9IjQyMCIvPjxsaW5lIHgxPSI1MDAiIHkxPSIwIiB4Mj0iNTAwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjU1MCIgeTE9IjAiIHgyPSI1NTAiIHkyPSI0MjAiLz4KICAgICAgPGxpbmUgeDE9IjAiIHkxPSIwIiB4Mj0iNjAwIiB5Mj0iMCIvPjxsaW5lIHgxPSIwIiB5MT0iNTAiIHgyPSI2MDAiIHkyPSI1MCIvPjxsaW5lIHgxPSIwIiB5MT0iMTAwIiB4Mj0iNjAwIiB5Mj0iMTAwIi8+PGxpbmUgeDE9IjAiIHkxPSIxNTAiIHgyPSI2MDAiIHkyPSIxNTAiLz48bGluZSB4MT0iMCIgeTE9IjIwMCIgeDI9IjYwMCIgeTI9IjIwMCIvPjxsaW5lIHgxPSIwIiB5MT0iMjUwIiB4Mj0iNjAwIiB5Mj0iMjUwIi8+PGxpbmUgeDE9IjAiIHkxPSIzMDAiIHgyPSI2MDAiIHkyPSIzMDAiLz48bGluZSB4MT0iMCIgeTE9IjM1MCIgeDI9IjYwMCIgeTI9IjM1MCIvPjxsaW5lIHgxPSIwIiB5MT0iNDAwIiB4Mj0iNjAwIiB5Mj0iNDAwIi8+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsMTkwKSIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjkyIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQwLC00NSkiPjxyZWN0IHg9IjEwIiB5PSIzMCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjQ1IiByeD0iNiIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMyIvPjxjaXJjbGUgY3g9IjQwIiBjeT0iNTIiIHI9IjEyIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMyIvPjxwYXRoIGQ9Ik00MCA1IEw0MCAyMiBNMjAgMTIgTDMwIDI0IE02MCAxMiBMNTAgMjQiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIzIi8+PC9nPgogICAgPC9nPgogICAgPHRleHQgeD0iMzAwIiB5PSIzMDAiIGZvbnQtZmFtaWx5PSJBcmlhbCwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIyMiIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIwLjU1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBsZXR0ZXItc3BhY2luZz0iMyI+QlJPQURDQVNUPC90ZXh0PgogIDwvc3ZnPg==") !important;
  background-size: cover !important;
  background-position: center !important;
}

/* === V128: Services page - fix two low-contrast text bugs === */
[data-interaction-id="c971d61"] {
  color: rgb(107, 111, 116) !important;
}
[data-interaction-id="082f8c2"] {
  color: rgb(255, 255, 255) !important;
}

/* === V129: Home Selected Work grid - inner flexbox had its own opaque background hiding the new illustrations === */
[data-interaction-id="a016c7e"],
[data-interaction-id="159d842"],
[data-interaction-id="a7ea3c3"],
[data-interaction-id="1f9b440"] {
  background: transparent !important;
}

/* === V130: Home Selected Work grid - boost specificity to actually override inner flexbox opaque background === */
[data-interaction-id="a016c7e"][data-interaction-id="a016c7e"],
[data-interaction-id="159d842"][data-interaction-id="159d842"],
[data-interaction-id="a7ea3c3"][data-interaction-id="a7ea3c3"],
[data-interaction-id="1f9b440"][data-interaction-id="1f9b440"] {
  background: transparent !important;
  background-color: transparent !important;
}

/* V131: Pricing FAQ - add missing "?" watermark to last 2 cards (switch plans, agencies/teams) */
.elementor-element-29c361f.elementor-element-29c361f::after,
.elementor-element-9585f4c.elementor-element-9585f4c::after {
  content: '?';
  position: absolute; right: 12px; top: -10px;
  font-size: 64px; font-weight: 800; color: rgba(125, 168, 195,0.07);
  line-height: 1; pointer-events: none;
}
.elementor-element-29c361f.elementor-element-29c361f,
.elementor-element-9585f4c.elementor-element-9585f4c {
  position: relative;
  overflow: hidden;
}


/* V132: Home final CTA - make "View Pricing" a secondary outline button to match hero button hierarchy */
.e-da55f9c.e-da55f9c {
  background: transparent !important;
  border: 2px solid rgb(247,247,247) !important;
  color: rgb(247,247,247) !important;
}
.e-da55f9c.e-da55f9c:hover {
  background: rgba(247,247,247,0.1) !important;
}


/* V133: About toolkit row - reserve 2-line height on titles so captions align regardless of title wrap */
.e-a7fac0b.e-a7fac0b,
.e-765bd52.e-765bd52,
.e-1bfc7a5.e-1bfc7a5,
.e-2f66462.e-2f66462 {
  min-height: 56px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}



/* === V137 Mobile Parity Fixes final (audit #358) === */
@media (max-width: 767px) {
  .elementor-element-3948702 {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    height: auto !important;
    width: 100% !important;
  }
  .elementor-element-3948702 > * {
    width: 100% !important;
    flex: 0 0 auto !important;
  }
  .elementor-element-1fd1c41 {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    height: auto !important;
    width: 100% !important;
  }
  .elementor-element-1fd1c41 > * {
    width: 100% !important;
    flex: 0 0 auto !important;
  }
  .elementor-element-0a89c1a.elementor-element-0a89c1a {
    display: grid !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
  }
  .elementor-element-0a89c1a.elementor-element-0a89c1a > * {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
}

/* V138 Fix stray underline on atomic button widgets (Services page + sitewide safety net) */
.e-2a93cf3.e-button-base, .e-3e9b0ed.e-button-base,
.e-2a93cf3.e-button-base:hover, .e-3e9b0ed.e-button-base:hover,
.e-2a93cf3.e-button-base:visited, .e-3e9b0ed.e-button-base:visited {
  text-decoration: none !important;
}
.e-button-base, .e-button-base:hover, .e-button-base:visited {
  text-decoration: none !important;
}

/* V200 Fix: decorative photo overlapping text on YouTube & Podcast card (Services) at mobile widths */
@media (max-width: 767px) {
  .e-35391b6::after { opacity: 0 !important; }
}

/* V200 Fix: Pricing compare table overflow on mobile - allow horizontal scroll with visible affordance */
@media (max-width: 767px) {
  .elementor-widget-html:has(table), table {
    display: block;
  }
  table {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    display: block;
    white-space: nowrap;
    border: 1px solid rgba(51,65,85,0.1);
  }
  table thead, table tbody, table tr {
    display: revert;
  }
}

/* V201 Fix: Pricing compare table actually overflows off-screen on mobile - make it horizontally scrollable */
@media (max-width: 900px) {
  .e-58862e4 {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
  }
  .e-58862e4 > * {
    flex-shrink: 0 !important;
  }
}

/* V300: Newsletter form styling - center and constrain width */
.elementor-shortcode { display:flex; justify-content:center; }
#wpforms-1494 { max-width:480px; width:100%; padding: 0 24px 48px; }
#wpforms-1494 .wpforms-field { max-width:100%; }

/* V301: Newsletter section - stack vertically instead of row */
.elementor-element-b8f52d2 { flex-direction: column !important; align-items: center !important; }

/* V400: center the prep-checklist and rate-card download HTML widgets within their flex sections */
.elementor-element-1d0b80d, .elementor-element-c72320a { justify-content: center !important; }

/* V500: fix Wedding & Event card only spanning half the grid on Services page */
.elementor-element-69efbd0 { grid-column: 1 / -1 !important; }

/* V501: center orphaned/short last rows on Home page grids */
.elementor-element-6c7015f, .elementor-element-bfa9f94 { justify-content: center !important; }


/* V502: subtle brand watermark on portfolio & selected-work images */
.elementor-element-232323f,
.elementor-element-b67c00a,
.elementor-element-24e2dc7,
.elementor-element-b42fc0f,
.elementor-element-cf874b4,
.elementor-element-7264e69,
.elementor-element-24b2557,
.elementor-element-457de5f,
.elementor-element-aee2fc7,
.elementor-element-eecbf00,
.elementor-element-2c6c6cf,
.elementor-element-fe4a35e {
  overflow: hidden;
}
.elementor-element-232323f::after,
.elementor-element-b67c00a::after,
.elementor-element-24e2dc7::after,
.elementor-element-b42fc0f::after,
.elementor-element-cf874b4::after,
.elementor-element-7264e69::after,
.elementor-element-24b2557::after,
.elementor-element-457de5f::after,
.elementor-element-aee2fc7::after,
.elementor-element-eecbf00::after,
.elementor-element-2c6c6cf::after,
.elementor-element-fe4a35e::after {
  content: "OFFLINE:media";
  position: absolute;
  right: 10px;
  bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: rgba(255,255,255,0.55);
  text-shadow: 0 1px 4px rgba(0,0,0,0.6);
  pointer-events: none;
  z-index: 5;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}


/* V503: colon-dot brand motif on all buttons sitewide */
.e-button-base {
  position: relative;
}
.e-button-base::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.6;
  margin-right: 8px;
  box-shadow: 0 -9px 0 -1px currentColor;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

/* V504: colon-dot divider between major page sections (decorative) */
.ofm-section-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 0;
}
.ofm-section-divider span {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgb(125, 168, 195);
}
.ofm-section-divider span:first-child { background: rgb(125,168,195); }


/* V505: center new colon-motif divider sections on Home & Services */
.elementor-element-4a03e5b, .elementor-element-7101312 { justify-content: center !important; }


/* V506: clearer brand watermark on Home hero banner (pill background for legibility over video) */
.elementor-element-0c20d09::after {
  content: "OFFLINE:media" !important;
  display: block !important;
  position: absolute !important;
  right: 24px !important;
  top: 24px !important;
  left: auto !important;
  bottom: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  color: rgba(255,255,255,0.92) !important;
  background: rgba(6,10,14,0.5) !important;
  padding: 6px 14px !important;
  border-radius: 20px !important;
  line-height: 1 !important;
  text-shadow: none !important;
  pointer-events: none !important;
  z-index: 5 !important;
  animation: none !important;
  clip-path: none !important;
  transform: none !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}


/* V507: fix Experience page "Want to see more?" Follow Along section - was left-aligned and used an off-brand bright blue kicker color instead of the sitewide muted slate-blue */
.elementor-element-e7a1d84 {
  justify-content: center !important;
}
.elementor-element-c5473d5 div[style*="7da8c3"] {
  color: #7da8c3 !important;
}


/* V508: reduce oversized bottom padding on the last content section (dark CTA band) on Services, About, and Process pages so the transition to the footer matches Home and Pricing */
.elementor-element-d7c8dfa,
.elementor-element-1987efc,
.elementor-element-8a45461 {
  padding-bottom: 10px !important;
}

/* V509: reduce oversized top/bottom padding on the Pricing page "Need something extra?" add-ons block, which was creating an unusually large gap before and after the add-on cards */
.ofm-addons2 {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}


/* V510: brand the default 404 page - larger on-brand heading, blue accent rule, better spacing, styled search box to match site inputs */
.error-404 {
  max-width: 640px;
  margin: 0 auto;
  padding: 60px 40px !important;
  text-align: center;
}
.error-404 .page-title {
  font-size: 42px;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 16px;
  position: relative;
  display: inline-block;
}
.error-404 .page-title::before {
  content: "404";
  display: block;
  font-size: 15px;
  letter-spacing: 2px;
  font-weight: 700;
  color: #7da8c3;
  margin-bottom: 10px;
}
.error-404 .page-content p {
  color: #4b5563;
  font-size: 17px;
  margin-bottom: 28px;
}
.error-404 .search-form {
  max-width: 420px;
  margin: 0 auto;
}
.error-404 .search-form .search-field {
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 12px 16px;
}
.error-404 .search-form .search-submit {
  background: #7da8c3;
  border-color: #7da8c3;
}


/* V511: accessibility - restore a visible keyboard focus state on interactive elements. The theme's default CSS suppresses the browser outline on form fields, which leaves keyboard-only users with no visual indication of focus. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.elementor-button:focus-visible {
  outline: 2px solid #7da8c3 !important;
  outline-offset: 2px !important;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus {
  outline: 2px solid #7da8c3 !important;
  outline-offset: 1px !important;
}


/* V512: give the new Referral Credit add-on card (5th card, added after the original 4) its own explicit kicker label styled to match the ADD-ON 0X kickers on the first 4 cards, and let it size like a normal card instead of spanning the full row */
.elementor-element-6955f27 {
  grid-column: auto !important;
  position: relative;
  padding-top: 44px !important;
}
.elementor-element-6955f27::before {
  content: "REFERRAL PROGRAM";
  display: block;
  position: absolute;
  top: 24px;
  left: 24px;
  font-size: 11.2px;
  font-weight: 700;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: #7DA8C3;
}




/* V513: fix low-contrast "OFFLINE:media" watermark in the top-right of the Home hero video. It was correctly styled (white text, dark pill background) but an unrelated shared decorative-stripe rule (.e-916578d::after, opacity: 0.55) was also targeting the same pseudo-element and washing out its opacity, since the watermark rule didn't set opacity itself. Force full opacity and darken the pill slightly for reliable contrast against the video. */
.elementor-element-0c20d09::after {
  opacity: 1 !important;
  background: rgba(6, 10, 14, 0.75) !important;
}

/* V515: Boost visibility of the original small corner OFFLINE:media watermark pill. Stronger dark background, brighter text, added border for definition, and a bit more size/weight so it reads clearly against the video. */
.elementor-element-0c20d09::after {
  opacity: 1 !important;
  background: rgba(4, 7, 10, 0.92) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  padding: 8px 18px !important;
}







/* V516: Soft dark patch over the fixed-position graphic baked into the hero stock video (circle + M motif from the source footage). Solid fill sized to the shape, softened with a CSS blur filter for a blended edge (radial-gradient backgrounds weren't painting reliably in combination with the hero's continuous drift animation, so solid + filter is used instead). */
.om-hero .e-b6a1bab-1124a5d {
  display: none !important;
}

/* V518: Real OFFLINE:media logo mark (uploaded transparent PNG) placed where the video's baked-in graphic was patched out. Larger, shifted right, lower final opacity, entrance animation timed to match the hero's own fade-up (0.8s, no extra delay). */
.om-hero [data-id="a081f7c"] {
  display: block !important;
  position: absolute !important;
  top: 14% !important;
  left: 60% !important;
  width: 40% !important;
  height: 60% !important;
  max-width: none !important;
  pointer-events: none !important;
  z-index: 6 !important;
}
@media (max-width: 768px) {
  .om-hero [data-id="a081f7c"] { display: none !important; }
}
@media (max-width: 768px) {
  .om-hero [data-id="a081f7c"] {
    display: none !important;
  }
}

/* V519: Performance fix -- the hero's background-position drift animation (om-hero-drift) forces a continuous main-thread repaint every frame, indefinitely, for as long as the page is open (background-position is not GPU-composited). Disabling it removes a major source of ongoing jank; the background gradients remain, just static instead of drifting. Also trims the blur filter radius on the video-graphic patch (V516) since large blur filters are relatively expensive to render. */
.elementor-element-0c20d09.elementor-element-0c20d09 {
  animation: none !important;
}
.om-hero .e-b6a1bab-1124a5d {
  filter: blur(18px) !important;
}


/* V520: Center the "Google reviews, coming soon" placeholder block (was left-aligned in its flex row) */
.elementor-element-b39b06a {
  justify-content: center !important;
  align-items: center !important;
}
.elementor-element-b39b06a .elementor-element-51e6d4e {
  width: 100% !important;
  max-width: 640px !important;
}


/* Pricing page: fix comparison table overflow on mobile (mirrors Services page pattern) */
@media (max-width: 767px) {
  .elementor-152 .elementor-element-58862e4 {
    align-items: flex-start !important;
  }
  .elementor-152 .elementor-element-0682b0a {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
}

/* V521 - Remove stray watermark background (was designed to sit behind the removed dark patch; now shows as a ghost logo over the hero video) */
.om-hero .elementor-element-de5a5de::before,
.om-hero .elementor-element-de5a5de::after {
  background-image: none !important;
  content: none !important;
}

/* V528: Services page mobile fix -- the "How working together actually looks" process preview section's children (paragraph, 4 step cards, and the H2 heading's margin) carry a fixed ~370px desktop width/margin that doesn't shrink to fit a 375px mobile viewport, causing text to overflow and get clipped on the right edge. Force children to the flex container's actual width on mobile. */
@media (max-width: 767px) {
  .elementor-element-0b3f8d6 > * {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* V529: Mobile fix -- the two-dot icon before button text (.e-button-base::before, a small circle + box-shadow dot) is inline content whose vertical position depends on unpredictable text wrapping. When a button's label wraps to 2 lines, the icon's vertical position relative to the button can differ from a button whose label wraps differently (e.g. "View Pricing" vs "Request a Quote" showed icons at visibly different heights on mobile). Force a consistent flex layout so the icon is always centered against the full (possibly multi-line) label, the same way on every button. */
@media (max-width: 767px) {
  .e-button-base {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* V530: About page mobile fix -- the "I'm an independent video editor..." intro quote paragraph uses a large italic font (20.4px) inside an already-padded container plus its own extra 24px left padding/border-left indent, so on a 375px screen the usable text width shrinks to ~300px and wraps into very short, narrow-looking lines. Reduce the paragraph's own indent and font size slightly on mobile so more text fits per line. */
@media (max-width: 767px) {
  .e-97251c1 {
    padding-left: 14px !important;
    font-size: 17px !important;
  }
}

/* V531: Footer nav links fix -- the footer's page-list links (Home, Services, About, Pricing, etc.) are plain inline <a> tags with no space or separator between them in the markup, so they run together into one unreadable, un-link-looking block of text. Add spacing and a subtle separator dot so each link is distinguishable and clearly clickable. */
.ast-footer-copyright a {
  margin-right: 6px;
}
.ast-footer-copyright a:not(:last-of-type)::after {
  content: "\2022";
  margin-left: 6px;
  opacity: 0.35;
}

/* V533: Pricing page mobile fix -- the quick-estimate card is nested inside THREE separate wrapper divs that each add their own left/right padding on top of each other (.elementor-element-6292d93 24px + .elementor-element-c10c6fd 10px + .ofm-est-wrap 20px = 54px per side, 108px total), squeezing the card and its form fields into a narrow ~267px column even though the outer 24px is already enough edge margin. Zero out the two redundant inner paddings on mobile so the card actually fills the available width. */
@media (max-width: 767px) {
  .elementor-element-c10c6fd {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .ofm-est-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* V534: Pricing page mobile fix -- the "Compare Plans" table (Feature/Starter/Pro/Enterprise columns) is wider than its scrollable container by only ~15-20px, not enough to be a usable horizontal swipe, so the "Enterprise" header and "Unlimited" values are permanently clipped with no way to see the full text. Each of the 4 columns has 14px of left+right padding (112px total) which is more than the row can spare on a 375px screen. Trim column padding and font size slightly so the whole table fits without needing to scroll. */
@media (max-width: 767px) {
  .elementor-element-0682b0a p {
    padding-left: 6px !important;
    padding-right: 6px !important;
    font-size: 13px !important;
  }
}

/* V535: Pricing page mobile fix -- the "What this looks like for real clients" example cards (Weekly YouTube Channel, Wedding Video Edit, etc.) sit inside a wrapper (.elementor-element-be481bc) that adds its own 10px left/right padding on top of the section's own 24px edge padding, on top of the card's own 24px padding -- three stacked insets narrowing each card to ~289px on a 375px screen. Remove the redundant middle wrapper padding so the cards match the width of the rest of the fixed sections. */
@media (max-width: 767px) {
  .elementor-element-be481bc {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* V536: Experience page mobile fix -- the portfolio case-study cards (Weekly Podcast Series, etc.) sit inside a grid wrapper (.elementor-element-0a89c1a) with a huge 64px left/right padding, plus a redundant 10px padding on each card's own link wrapper (.elementor-element-03fdc91), on top of the card's own 20px inner padding -- 94px stacked per side, 188px total, squeezing each card to under 190px wide on a 375px screen. Cut the oversized outer padding down and remove the redundant middle padding. */
@media (max-width: 767px) {
  .elementor-element-0a89c1a {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .elementor-element-03fdc91 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* V538: Contact page mobile fix (continued) -- align-items:stretch on the parent (V537) wasn't enough to widen the WPForms widget; force the widget wrapper itself to 100% width since something keeps it shrink-wrapped to its own content. */
@media (max-width: 767px) {
  .elementor-element-f31cb13 {
    width: 100% !important;
  }
}

/* V537: Contact page mobile fix -- the quote request form sits inside .elementor-element-a00dfdc, a column flexbox with align-items:center, which shrink-wraps the WPForms widget to its own intrinsic content width (~275px) instead of stretching it to fill the available ~327px, making every field (Name, Email, message box) look narrower than the dashed-border card around them. Same root cause as the Pricing estimate card fix (V532/533) -- stretch instead of center. */
@media (max-width: 767px) {
  .elementor-element-a00dfdc {
    align-items: stretch !important;
  }
}

/* V539: Contact page mobile fix (corrected diagnosis) -- .elementor-element-a00dfdc's own 24px left/right padding (added by V527) is stacked on top of its parent .elementor-element-5846c18's identical 24px edge padding, so the form widget was only ever getting ~279px of the 375px screen even though V537/V538 were already stretching it to fill that (smaller) space correctly. Remove the redundant inner padding so the form matches the ~327px width used everywhere else on the site. */
@media (max-width: 767px) {
  .elementor-element-a00dfdc.elementor-element-a00dfdc {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* V540: Contact page mobile fix -- the "hello@offline-media.co.uk" contact card (.elementor-element-e046ca1) has the same double-padding-stack and align-items:center shrink-wrap issue as the quote form above it: its own 24px padding stacks on its parent's 24px padding, and align-items:center keeps its heading/buttons from stretching to the available width -- squeezing the "Send an Email" / "WhatsApp Me" / "Book a Call" buttons into awkward multi-line boxes. Selector doubled for specificity so it reliably overrides the earlier V527 padding rule regardless of source order. */
@media (max-width: 767px) {
  .elementor-element-e046ca1.elementor-element-e046ca1 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    align-items: stretch !important;
  }
}

/* V541: Contact page mobile fix -- the "What Happens Next" step cards (You send a message / I reply personally / We agree scope) sit inside a redundant middle wrapper (.elementor-element-1fd1c41) with its own 10px left/right padding stacked between the section's 24px edge padding and the card's own 28px padding, squeezing each card to ~233px effective width. Remove the redundant middle padding. */
@media (max-width: 767px) {
  .elementor-element-1fd1c41 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* V532: Pricing page mobile fix -- the "Get a ballpark price in seconds" quick-estimate card was still narrow after the V527 padding fix because its ancestor .elementor-element-6292d93 is a column flexbox with align-items:center, which shrink-wraps its child to content width instead of stretching it full-width. That cascaded down through 3 more wrapper divs to squeeze the actual card and its form fields into a ~267px column on a 375px screen (dropdown/labels clipped, add-on prices overflowing off the card's right edge). Force the container to stretch its child to full width on mobile instead. */
@media (max-width: 767px) {
  .elementor-element-6292d93 {
    align-items: stretch !important;
  }
}

/* V527: Sitewide mobile fix -- many section/card containers across the site carry unscaled desktop side-padding (48-96px+ per side), squeezing content into very narrow columns on small screens (as little as 43px of usable width in the worst case, the Pricing page estimate card). Cap side padding on mobile for all identified narrow offenders found in a full sitewide sweep. */
@media (max-width: 767px) {
  .elementor-element-4d55da1,
  .elementor-element-e9b7962,
  .elementor-element-d02ec72,
  .elementor-element-1415d33,
  .elementor-element-40ed375,
  .elementor-element-f927114,
  .elementor-element-3b7c1d3,
  .elementor-element-beb1688,
  .elementor-element-6292d93,
  .ofm-est-card,
  .elementor-element-da612f9,
  .elementor-element-631024b,
  .elementor-element-cd56873,
  .elementor-element-58862e4,
  .elementor-element-f428e7d,
  .elementor-element-5771f45,
  .elementor-element-6c9a908,
  .elementor-element-fee5e77,
  .elementor-element-5d6e7eb,
  .elementor-element-8da186b,
  .elementor-element-857aaeb,
  .elementor-element-5846c18,
  .elementor-element-a00dfdc,
  .elementor-element-a005b22,
  .elementor-element-e046ca1,
  .elementor-element-1eead5e,
  .elementor-element-74633ce,
  .elementor-element-c43f275,
  .elementor-element-9e50d31,
  .elementor-element-d85682e,
  .elementor-element-0186ef9 {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* V526: Mobile fix -- Services page sections/cards (intro, service cards, "Who I Work With", Process, FAQ, bottom CTA) carry their full desktop padding (48-96px per side) unscaled on mobile, squeezing content into very narrow columns (e.g. the YouTube & Podcast Editing card had only ~144px of usable width). Cap side padding on mobile. */
@media (max-width: 767px) {
  .elementor-element-b2b2c78,
  .elementor-element-f3d30ed,
  .elementor-element-35391b6,
  .elementor-element-69efbd0,
  .elementor-element-99baa7c,
  .ofm-whoiwork,
  .elementor-element-0b3f8d6,
  .elementor-element-53bb7a9,
  .elementor-element-d7c8dfa {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* V525: Mobile fix -- the "Currently booking new projects" / "Multiple years in the editing industry" hero badges are wrapped in a plain inline-styled flex div (display:flex;flex-wrap:wrap;gap:10px) with no justify-content set, so they default to left-aligned on mobile instead of centered like the rest of the hero. */
@media (max-width: 767px) {
  .elementor-element-9b6e6c8 > div {
    justify-content: center !important;
  }
}

/* V524: Mobile fix -- the "Get in Touch" section's 4 CTA buttons (Send Me a Brief / View Pricing / See Full Process / See all FAQs) were forced into one nowrap flex row on mobile, squeezing each button down to ~56px wide and wrapping/clipping the text. Stack them full-width instead. */
@media (max-width: 767px) {
  .elementor-element-dd13807 {
    flex-direction: column !important;
    width: 100% !important;
  }
  .elementor-element-dd13807 > * {
    width: 100% !important;
    flex: 0 0 auto !important;
  }
}

/* V523: Mobile hero alignment fix -- .om-hero had align-items: flex-start on mobile, left-aligning the headline, intro paragraph and CTA buttons instead of centering them like desktop. Also had to target the heading/paragraph/link elements directly, not just the container, because Elementor's atomic widget classes (e.g. .e-319424d-43cd020) set their own text-align: left on mobile that otherwise overrides the inherited value. */
@media (max-width: 767px) {
  .om-hero {
    align-items: center !important;
    text-align: center !important;
  }
  .om-hero h1,
  .om-hero h4,
  .om-hero p,
  .om-hero a {
    text-align: center !important;
  }
}

/* V522 - Sitewide scroll-entrance reveal system */
html.ofm-armed .ofm-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1), transform 0.8s cubic-bezier(0.16,1,0.3,1);
  will-change: opacity, transform;
}
html.ofm-armed .ofm-reveal.ofm-in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  html.ofm-armed .ofm-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* V523 - Make .om-rise (stat number cards) use the reliable JS-driven reveal instead of the flaky native animation-timeline:view() which wasn't firing reliably */
.om-rise {
  animation: none !important;
}
html.ofm-armed .om-rise {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1), transform 0.8s cubic-bezier(0.16,1,0.3,1);
}
html.ofm-armed .om-rise.ofm-in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .om-rise, html.ofm-armed .om-rise {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* --- V524: strengthen plain About/Experience final CTAs --- */
.elementor-element-1987efc, .elementor-element-5a0293d {
  padding-top: 100px !important;
  padding-bottom: 100px !important;
  padding-left: 60px !important;
  padding-right: 60px !important;
  border-top: 3px solid rgb(125, 168, 195) !important;
}
.elementor-element-1987efc .e-button-base, .elementor-element-5a0293d .e-button-base {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

/* --- V525: enrich Home Tools & Software card --- */
.elementor-element-3c6ac89 {
  box-shadow: 0 8px 24px rgba(20,22,30,0.06) !important;
  border-left: 4px solid rgb(125, 168, 195) !important;
  padding: 40px 44px !important;
}
.e-1412532 {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}
.e-1412532.e-1412532.e-1412532 span {
  display: inline-block !important;
  background: rgba(125, 168, 195,0.08) !important;
  color: rgb(51,65,85) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 8px 16px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(125, 168, 195,0.18) !important;
}


/* === V531: Home "See Full Process" secondary link (trim duplicate process content) === */
.e-48ff8b5-3a927c2.e-48ff8b5-3a927c2 {
  background: transparent !important;
  color: rgb(125, 168, 195) !important;
  border: 1px solid rgba(125, 168, 195,0.4) !important;
  box-shadow: none !important;
}
.e-48ff8b5-3a927c2.e-48ff8b5-3a927c2:hover {
  background: rgba(125, 168, 195,0.08) !important;
}


/* === V531b: About "See Full Toolkit" secondary link + spacing fix (trim duplicate tools content) === */
.e-6a62683-toolkit-link.e-6a62683-toolkit-link {
  background: transparent !important;
  color: rgb(125, 168, 195) !important;
  border: 1px solid rgba(125, 168, 195,0.4) !important;
  box-shadow: none !important;
  margin-top: 12px !important;
}
.e-6a62683-toolkit-link.e-6a62683-toolkit-link:hover {
  background: rgba(125, 168, 195,0.08) !important;
}


/* === V532: Contact page - demote quick-contact card to secondary (form is now primary CTA) === */
.e-0ae38d1.e-0ae38d1,
.e-3c298ad-8b1f22b.e-3c298ad-8b1f22b,
.e-1135a66-6a8803d.e-1135a66-6a8803d,
.e-c2a7b0a-13e2ae6.e-c2a7b0a-13e2ae6 {
  background: transparent !important;
  color: rgb(125, 168, 195) !important;
  border: 1px solid rgba(125, 168, 195,0.4) !important;
  box-shadow: none !important;
}
.e-0ae38d1.e-0ae38d1:hover,
.e-3c298ad-8b1f22b.e-3c298ad-8b1f22b:hover,
.e-1135a66-6a8803d.e-1135a66-6a8803d:hover,
.e-c2a7b0a-13e2ae6.e-c2a7b0a-13e2ae6:hover {
  background: rgba(125, 168, 195,0.08) !important;
}


/* === V536: Home page - Google Reviews section temporarily hidden (Tom wants it back later once
   his Google Business Profile has real reviews). Section id: elementor-element-b39b06a on Home (post 7).
   To restore: delete this rule block. Content/structure is untouched in Elementor, just hidden. === */
.elementor-element-b39b06a {
  display: none !important;
}


/* === V538: Home page - fix gap left by hidden Google Reviews section between
   Selected Work (elementor-element-4d55da1, light gray bg) and Testimonials
   (elementor-element-ac5edf8, transparent/white bg). V537's fix just made the blank
   space bigger without fixing the actual problem: the two different background colors
   create a visible seam regardless of padding amount. Real fix: match Testimonials'
   background to Selected Work's light gray so the transition reads as one continuous
   band, and bring padding back down to a normal, non-excessive amount. === */
.elementor-element-ac5edf8 {
  padding-top: 32px !important;
  background-color: rgb(247,247,247) !important;
}
.elementor-element-4d55da1 {
  padding-bottom: 48px !important;
}


/* === V539: Home page - Software & Tools section hidden (redundant teaser to the
   Experience page; "Selected Work" already serves that role, and this section had
   been trimmed to just names+link with no unique content of its own). Section id:
   elementor-element-892f69e on Home (post 7). Sits between Testimonials and How It
   Works, both same light gray bg, so hiding needs no extra spacing fix.
   To restore: delete this rule block. Content/structure untouched in Elementor. === */
.elementor-element-892f69e {
  display: none !important;
}


/* === V540: Home page - confirm grey bg on How It Works + tighten spacing between all sections === */
.elementor-element-d9b0628 {
  background-color: rgb(247,247,247) !important;
}

/* Reduce vertical padding sitewide on Home to bring sections closer together */
.elementor-element-4a03e5b { padding-top: 0px !important; padding-bottom: 0px !important; min-height: 0 !important; }
.elementor-element-18fb0c9 { padding-top: 20px !important; padding-bottom: 32px !important; }
.elementor-element-10d3682 { padding-top: 48px !important; padding-bottom: 48px !important; }
.elementor-element-4d55da1 { padding-top: 40px !important; padding-bottom: 20px !important; }
.elementor-element-ac5edf8 { padding-top: 0px !important; padding-bottom: 10px !important; }
.elementor-element-d9b0628 { padding-top: 40px !important; padding-bottom: 40px !important; }
.elementor-element-5fa42bb { padding-top: 40px !important; padding-bottom: 40px !important; }
.elementor-element-e9b7962 { padding-top: 48px !important; padding-bottom: 48px !important; }
.elementor-element-48a659e { padding-top: 0px !important; padding-bottom: 0px !important; min-height: 0 !important; }
.elementor-element-8d11b87 { padding-top: 0px !important; padding-bottom: 0px !important; min-height: 0 !important; }


/* === V541: Home page - deepen grey on Testimonials + How It Works so it reads as
   clearly grey, not near-white (was rgb(247,247,247), which is barely distinguishable
   from white on most screens). === */
.elementor-element-d9b0628 {
  background-color: rgb(240,240,240) !important;
}


/* === V542: Home page - Testimonials grey bg fix. The .ofm-testimonials inner wrapper
   (custom testimonials feature markup) has its own hardcoded background that sits on
   top of and hides the outer section's background-color, which is why V541's fix on
   .elementor-element-ac5edf8 alone had no visible effect. Target the inner wrapper too. === */
.elementor-element-ac5edf8 .ofm-testimonials {
  background-color: rgb(247,247,247) !important;
}

/* V544: Home page - tighten gap between Selected Work's See Full Experience
   button and Testimonials heading (reduce excess vertical space). */
.elementor-element-ac5edf8 .ofm-testimonials {
  padding-top: 48px !important;
}


/* === V543: Home Selected Work - SPORT card ("eecbf00"/"159d842") had a leftover V124 hover
   patch that duplicated the "View Project →" label and added an extra shading layer on top
   of the standard .ofm-vid-card hover system all 4 Selected Work cards already use correctly.
   This made the Sport card show the label twice on hover and shade differently from the other
   3 cards. Neutralize the leftover V124 patch so Sport behaves like the rest.
   To restore: delete this rule block. === */
.elementor-element-159d842::before,
.elementor-element-159d842::after {
  content: none !important;
  opacity: 0 !important;
}
.elementor-element-eecbf00:hover .elementor-element-159d842 {
  transform: none !important;
}


/* === V544: Home Selected Work grid - same legacy duplicate "View Project →" label bug
   as V543, but on the other 3 cards (YouTube: a016c7e, Commercial: a7ea3c3, Broadcast: 1f9b440).
   Unlike the Sport card's version, these were permanently visible (opacity:1, no hover needed),
   so hovering any of these cards showed the label twice - once always-on via this legacy
   ::before, once via the standard .ofm-view-project span fading in. Neutralize all 3 so every
   card uses only the single standard hover-triggered label, consistent with the Sport card fix.
   To restore: delete this rule block. === */
.elementor-element-a016c7e::before,
.elementor-element-a7ea3c3::before,
.elementor-element-1f9b440::before {
  content: none !important;
  opacity: 0 !important;
}


/* === V545: Home Selected Work grid - same legacy patch family as V543/V544, this time the
   ::after gradient shade. a016c7e/a7ea3c3/1f9b440 (YouTube/Commercial/Broadcast) each had their
   own leftover dark-gradient ::after that only covers the wrapper's own shorter box (~216px)
   instead of the full card (~248px), so on hover it stacked a second, mismatched shade on top
   of the standard full-height .ofm-vid-overlay gradient - leaving the box looking patchy /
   not fully shaded. Neutralize these too so only the standard full-card overlay shades the box,
   consistent with every other card. To restore: delete this rule block. === */
.elementor-element-a016c7e::after,
.elementor-element-a7ea3c3::after,
.elementor-element-1f9b440::after {
  content: none !important;
  opacity: 0 !important;
}

/* Home: fix seam line between trust bar and My Services sections (task 541) */
.elementor-element-8adfcf0.e-con {
  background-color: #f7f7f7 !important;
}

/* Services page fixes (tasks 542-548) */
.elementor-element-7101312, .elementor-element-7d471af {
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
}
.elementor-element-69efbd0 {
  grid-column: auto !important;
}
.elementor .e-69efbd0-b7460c7 {
  width: auto !important;
}
.ofm-whoiwork-inner, .ofm-addons-inner, .ofm-market-inner,
.ofm-whoiwork, .ofm-addons, .ofm-market {
  margin-left: auto !important;
  margin-right: auto !important;
}
.elementor-element-0b3f8d6 h2 {
  color: #4B4F54 !important;
}
.elementor-element-0b3f8d6 p {
  text-align: center !important;
}
@media (max-width: 767px) {
  .elementor-element-0b3f8d6 {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }
}
/* Services: fix Process section (task 547 re-fix) - flex-direction:column was applied unconditionally, forcing cards into a single stacked column on desktop instead of wrapping into a grid row. Scoped to mobile only above. */

/* Pricing page fixes (tasks 549, 550, 552) */
.ofm-morelink-inner, .ofm-morelink {
  margin-left: auto !important;
  margin-right: auto !important;
}
.elementor-element-c4df3ca {
  border-left: 3px solid rgb(125, 168, 195) !important;
}
.elementor-element-c72320a {
  padding-top: 70px !important;
  padding-bottom: 70px !important;
}

/* Experience page: expand industry case-study cards (task 554) */
.elementor-element-7956145 {
  row-gap: 40px !important;
}
.elementor-element-7956145 > div {
  padding: 48px 52px !important;
}
.elementor-element-7956145 .e-heading-base {
  font-size: 17px !important;
  letter-spacing: 0.5px !important;
}
.elementor-element-7956145 .e-paragraph-base {
  font-size: 16.5px !important;
  line-height: 1.75 !important;
}
.elementor-element-7956145 > div > div {
  margin-bottom: 22px !important;
}


/* Services: fix Wedding & Event card missing background treatment (task 543 re-fix v2) */
.elementor-element-69efbd0 h2, .elementor-element-69efbd0 h3, .elementor-element-69efbd0 h4 {
  color: #ffffff !important;
}
.elementor-element-69efbd0 p {
  color: rgb(228, 230, 232) !important;
}


/* Services: fix "More specialist services" (.ofm-market) not actually centered - flex parent lacked justify-content (task 546 re-fix) */
.elementor-element-5d467bb {
  justify-content: center !important;
}
.elementor-element-e8075bc {
  width: 100% !important;
}


/* Services: fix "Not sure which service fits?" flex parent lacked justify-content (task 544 re-fix) */
.elementor-element-b586dde {
  justify-content: center !important;
}
.elementor-element-58e2e63 {
  width: 100% !important;
  max-width: 920px !important;
}


/* Pricing: fix "Need something more specific?" (.ofm-morelink) not centered - flex parent lacked justify-content (task 549 re-fix) */
.elementor-element-351934f {
  justify-content: center !important;
}
.elementor-element-e008b5d {
  width: 100% !important;
  max-width: 640px !important;
}

/* Services: fix "More ways to work together" (.ofm-addons-inner) not actually centered - missing margin auto (task 545 re-fix v2) */
.ofm-addons-inner {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Services: fix .ofm-addons outer wrapper itself not centered on page (task 545 re-fix v3 - root cause) */
.ofm-addons {
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}

/* Services: fix "More ways to work together" flex parent lacked justify-content:center (task 545 re-fix v4 - TRUE root cause) */
.elementor-element-670d37b {
  justify-content: center !important;
}
.elementor-element-ca3d6e3 {
  width: 100% !important;
  max-width: 1240px !important;
}


/* Process: icon differentiation for DIY/Subscription/Independent comparison cards (task 569) */
.ofm-compare-card .ofm-compare-badge::before {
  margin-right: 6px;
  font-size: 13px;
  display: inline-block;
}
.ofm-compare-card:nth-child(1) .ofm-compare-badge::before {
  content: "✎";
  color: #94a3b8;
}
.ofm-compare-card:nth-child(2) .ofm-compare-badge::before {
  content: "\2699";
  color: #94a3b8;
}
.ofm-compare-card.is-featured .ofm-compare-badge::before {
  content: "\2605";
  color: #6f9bd1;
}

/* Services page: extend dark CTA background down through footer top padding to close white gap above footer divider line */
body.page-id-149 footer.site-footer {
  background-color: #2f3438;
}

/* Services page: close residual spacer gap between CTA section and footer */
body.page-id-149 .elementor-element-3a109d7 {
  background-color: #2f3438;
}

/* About page: extend dark CTA background down through footer top padding to close white gap above footer divider line */
body.page-id-151 footer.site-footer {
  background-color: #4b4f54;
}

/* About page: close residual spacer gap between CTA section and footer */
body.page-id-151 .elementor-element-2bf20ff {
  background-color: #4b4f54;
}

/* Contact page: extend FAQ section background down through footer top padding to close white gap above footer divider line */
body.page-id-154 footer.site-footer {
  background-color: #f7f7f7;
}

/* Contact page: close residual spacer gap between FAQ section and footer */
body.page-id-154 .elementor-element-ad1c006 {
  background-color: #f7f7f7;
}


/* Fix: Download the free guide button - match standard blue CTA */
.elementor-element-b8f52d2 .e-button-base {
	background-color: #7da8c3 !important;
	background-image: none !important;
}


/* Home: Process CTA + FAQ sections -> dark slate brand background (added 2026-08-23) */
.elementor-element-d9b0628,
.elementor-element-5fa42bb {
  background-color: #4B4F54 !important;
}
.elementor-element-d9b0628 h2,
.elementor-element-5fa42bb h2 {
  color: #ffffff !important;
}
.elementor-element-d9b0628 p,
.elementor-element-5fa42bb p {
  color: #d1d5db !important;
}
.elementor-element-d9b0628 .e-48ff8b5-3a927c2 {
  color: #7DA8C3 !important;
  border-color: #7DA8C3 !important;
}
.elementor-element-5fa42bb .e-dcbd784-26335c9 {
  color: #7DA8C3 !important;
  border-color: #7DA8C3 !important;
}


/* === V4d: Home CTA buttons unified brand blue (agent fix 2026-08-28) === */
.e-4872a26, .e-da55f9c, .e-0cc2246-84c7b0e, .e-7cb0fc4-ee6c532 {
  background-color: #7DA8C3 !important;
  color: #F7F7F7 !important;
  border: none !important;
  border-radius: 6px !important;
}
.e-4872a26:hover, .e-da55f9c:hover, .e-0cc2246-84c7b0e:hover, .e-7cb0fc4-ee6c532:hover,
.e-4872a26:focus-visible, .e-da55f9c:focus-visible, .e-0cc2246-84c7b0e:focus-visible, .e-7cb0fc4-ee6c532:focus-visible {
  background-color: #2F5F91 !important;
}


/* === V4e: Override V132 outline style so View Pricing matches unified CTA brand blue (agent fix 2026-08-28) === */
.e-da55f9c.e-da55f9c.e-da55f9c {
  background: #7DA8C3 !important;
  border: none !important;
  color: #F7F7F7 !important;
}
.e-da55f9c.e-da55f9c.e-da55f9c:hover {
  background: #2F5F91 !important;
}


/* === Quick Enquiry floating button: clear the sticky Get a Quote CTA bar === */
#ofm-chat-bubble {
  bottom: 80px !important; /* CTA bar ~63px tall (desktop) + ~17px gap */
}
@media (max-width: 480px) {
  #ofm-chat-bubble {
    bottom: 112px !important; /* CTA bar can wrap to ~95px tall on narrow phones + ~17px gap */
  }
}

/* V-fix: Services page 'See all FAQs' button wrong blue */
.elementor-element-53bb7a9 a.e-button-base{background:#7DA8C3 !important;color:#fff !important;}
.elementor-element-53bb7a9 a.e-button-base:hover{background:#2F5F91 !important;}

/* V-fix: Pricing quick-estimate Service type select was truncated in narrow grid column */
.ofm-est-col:has(#ofm-est-service){grid-column:1 / -1;}
@media(max-width:680px){.ofm-est-col:has(#ofm-est-service){grid-column:1;}}

/* V-fix: Pricing quick-estimate select/input text was vertically clipped by a global 40px height rule fighting the widget's own padding */
#ofm-est-service,#ofm-est-qty,.ofm-est-select,.ofm-est-input{height:auto !important;min-height:48px !important;padding:11px 14px !important;line-height:1.4 !important;}

/* V-fix: Pricing page 'View All Services & Add-ons' button wrong blue */
.ofm-morelink-btn{background:#7DA8C3 !important;color:#fff !important;}
.ofm-morelink-btn:hover{background:#2F5F91 !important;}

/* V-fix: Pricing page 'See all FAQs' button wrong blue */
.elementor-element-6c9a908 a.e-button-base{background:#7DA8C3 !important;color:#fff !important;}
.elementor-element-6c9a908 a.e-button-base:hover{background:#2F5F91 !important;}



/* V-fix: Contact page Book a Call disabled coming-soon style (doubled class to beat existing outline-btn rule specificity) */
.e-1135a66-6a8803d.e-1135a66-6a8803d{opacity:0.5 !important;cursor:not-allowed !important;pointer-events:none !important;}

/* V-fix: Contact page 'See all FAQs' button wrong blue (no unique class exists, target by data-interaction-id) */
a[data-interaction-id="7c8d278"]{background:#7DA8C3 !important;color:#fff !important;}
a[data-interaction-id="7c8d278"]:hover{background:#2F5F91 !important;}

/* V-fix: Contact page 'Before you reach out' intro text too light + no gap before FAQ button */
.e-ee4e8d9-1240f8b{color:#5B5F63 !important;margin-bottom:28px !important;}

/* V-fix: Quick-enquiry floating toggle - remove blue circle/ring, show just the logo */
#ofm-chat-toggle{background:transparent !important;box-shadow:none !important;}
#ofm-chat-toggle img{width:48px !important;height:48px !important;}

/* V-fix: Referral Program page 'Get in Touch' button wrong blue (no unique class, target by data-interaction-id) */
a[data-interaction-id="78570c0"]{background:#7DA8C3 !important;color:#fff !important;}
a[data-interaction-id="78570c0"]:hover{background:#2F5F91 !important;}

/* Fix off-centered Referral Program page sections (widget wrappers not stretching to full width) */
.elementor-element-ebb3b1e,
.elementor-element-080bb5c,
.elementor-element-e49d0df {
  width: 100% !important;
}


/* ofm-process-linebreak force full width - the spacer widget's own wrapper needs flex-basis 100% to actually force the line break */
.elementor-element-003ab87 {
  flex-basis: 100% !important;
  width: 100% !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Process step cards - clean 2x2 grid on wider screens - fixed 370px cards only fit 3 per row at typical desktop widths, leaving the 4th stranded alone on its own centered row. Force a proper 2-column grid above 800px instead. */
@media (min-width: 800px) {
  .elementor-element-3072fdd,
  .elementor-element-d220845,
  .elementor-element-a2ff901,
  .elementor-element-4fb53a1 {
    flex: 1 1 calc(50% - 12px) !important;
    width: calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
  }
}

/* Fix Contact page card + legal-page header overflowing on mobile - both were fixed-width blocks with no responsive sizing */
.elementor-element-e046ca1 {
  width: 100% !important;
  max-width: 560px !important;
}
.elementor-element-31d4022 {
  width: 100% !important;
  max-width: 750px !important;
}

/* About page Tools row - force clean 3+3 layout - 6 tool badges only fit 5-per-row at most desktop widths, stranding the 6th alone. Spacer widget forces a break after 3. */
.elementor-element-7596071 {
  flex-basis: 100% !important;
  width: 100% !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Fix Contact page form wrapper mobile overflow - same fixed-width issue as the contact-info card, second block on the same page */
.elementor-element-a00dfdc {
  width: 100% !important;
  max-width: 600px !important;
}

/* Legal pages header mobile overflow - remaining 3 pages - Privacy Policy, Website Use Policy, Accessibility Statement each duplicated the address header block with its own element ID rather than a shared template */
.elementor-element-f08ea9d,
.elementor-element-bbb73d4,
.elementor-element-81ec5be {
  width: 100% !important;
  max-width: 750px !important;
}

/* Process card titles centered + tighten spacer gap - card titles only had centering set for mobile breakpoint, defaulted to left on desktop; also the line-break spacer doubled the row gap above the cards */
.elementor-element-3072fdd h3,
.elementor-element-d220845 h3,
.elementor-element-a2ff901 h3,
.elementor-element-4fb53a1 h3 {
  text-align: center !important;
}
.elementor-element-003ab87 {
  margin-bottom: -24px !important;
}

/* Process section PROCESS kicker forced to own row - on wide screens the short kicker label fit next to the heading on the same flex row instead of stacking above it */
.elementor-element-0b3f8d6 > h4.e-fc3db50-3353e16 {
  flex-basis: 100% !important;
  width: 100% !important;
}

/* Process kicker justify-content center (flex ignores text-align) - the h4 kicker is display:flex, so text-align has no effect; needed justify-content instead */
.elementor-element-0b3f8d6 > h4.e-fc3db50-3353e16 {
  justify-content: center !important;
}

/* FAQ teaser section - force kicker/heading/paragraph/button to stack - same no-line-break issue as the Process section: kicker, heading, paragraph and button were all packing onto shared rows on wide screens */
.elementor-element-53bb7a9 > h4.e-387f9ae-be57875 {
  flex-basis: 100% !important;
  width: 100% !important;
  justify-content: center !important;
}
.elementor-element-6aff531,
.elementor-element-2f5a0d8 {
  flex-basis: 100% !important;
  width: 100% !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}


/* ofm-addon-cards-equal-height */
.elementor-element-2eba47c.elementor-element-2eba47c { align-items: stretch !important; }
.elementor-element-50308ef.elementor-element-50308ef,
.elementor-element-e771438.elementor-element-e771438,
.elementor-element-9e2e607.elementor-element-9e2e607,
.elementor-element-6955f27.elementor-element-6955f27 {
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}
#ofm-referral-terms { display: none !important; }

/* ofm-fix-reveal-will-change */
.ofm-reveal.ofm-in { will-change: auto !important; }

/* ofm-intro-call-link-style */
.e-efa2b82 a[href="/contact/"] {
  color: rgb(125,168,195) !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}
.e-efa2b82 a[href="/contact/"]:hover {
  color: rgb(160,195,220) !important;
}