/*
 * AA Inspired Landing — V8.1 Precision Master Polish
 *
 * This layer changes only layout resilience, canvas framing, spacing continuity
 * and responsive containment. It intentionally does not redefine typography,
 * animation, hover motion, image effects or interaction timing.
 */

.aail-site.aail-visual-layout-master-v8,
.aail-fragment.aail-visual-layout-master-v8 {
  --aail-v8-polish-frame: rgba(24, 24, 21, .135);
  --aail-v8-polish-frame-soft: rgba(24, 24, 21, .075);
  --aail-v8-polish-rail: #d8d5ce;
  --aail-v8-polish-paper: var(--aail-hybrid-paper, #f1efe9);
  --aail-v8-safe-left: max(var(--aail-v8-edge, 18px), env(safe-area-inset-left));
  --aail-v8-safe-right: max(var(--aail-v8-edge, 18px), env(safe-area-inset-right));
  --aail-v8-grid-width: min(
    var(--aail-v8-grid-max, 1440px),
    calc(100% - var(--aail-v8-safe-left) - var(--aail-v8-safe-right))
  );
  width: 100%;
  min-width: 0;
  overflow-x: clip;
}

@supports not (overflow: clip) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    overflow-x: hidden;
  }
}

/* Every major module follows the same centered measure and survives narrow embeds. */
.aail-visual-layout-master-v8 :where(
  .aail-hero,
  .aail-stats,
  .aail-section,
  .aail-gallery-section,
  .aail-review-band,
  .aail-promo,
  .aail-about,
  .aail-two-columns,
  .aail-faq-contact,
  .aail-footer
) {
  box-sizing: border-box;
  min-width: 0;
  margin-inline: auto;
}

.aail-visual-layout-master-v8 :where(
  .aail-hero > *,
  .aail-stats > *,
  .aail-section-head > *,
  .aail-service-card > *,
  .aail-review-band > *,
  .aail-project-grid > *,
  .aail-promo > *,
  .aail-about > *,
  .aail-trust-grid > *,
  .aail-two-columns > *,
  .aail-guarantee-grid > *,
  .aail-gallery > *,
  .aail-faq-contact > *,
  .aail-footer > *
) {
  min-width: 0;
}

.aail-visual-layout-master-v8 :where(img, video, svg, canvas, iframe) {
  max-width: 100%;
}

.aail-visual-layout-master-v8 :where(input, textarea, select, button) {
  max-width: 100%;
  box-sizing: border-box;
}

/*
 * Dark technical matting around dense visual groups. The cards and their visual
 * language stay untouched; only the previously inconsistent empty gaps become
 * one coherent surrounding material.
 */
.aail-visual-layout-master-v8 :where(
  .aail-project-grid,
  .aail-gallery.aail-gallery-mode-crop,
  .aail-two-columns,
  .aail-stats,
  .aail-trust-grid,
  .aail-guarantee-grid
) {
  isolation: isolate;
  background-color: var(--aail-v8-polish-frame-soft);
  box-shadow: 0 0 0 1px var(--aail-v8-polish-frame-soft);
}

.aail-visual-layout-master-v8 :where(
  .aail-project-grid,
  .aail-gallery.aail-gallery-mode-crop,
  .aail-two-columns
) {
  background-color: var(--aail-v8-polish-frame);
  box-shadow: 0 0 0 1px var(--aail-v8-polish-frame);
}

/* Preserve clean corners where a framed grid meets rounded cards. */
.aail-visual-layout-master-v8 .aail-project-grid,
.aail-visual-layout-master-v8 .aail-gallery.aail-gallery-mode-crop {
  border-radius: 8px;
  overflow: hidden;
}

.aail-visual-layout-master-v8 .aail-two-columns {
  border-radius: 9px;
  overflow: hidden;
}

.aail-visual-layout-master-v8 :where(.aail-stats, .aail-trust-grid, .aail-guarantee-grid) {
  border-radius: 8px;
  overflow: hidden;
}

/* Do not let inherited margins create accidental strips around framed groups. */
.aail-visual-layout-master-v8 .aail-project-grid > .aail-project-card,
.aail-visual-layout-master-v8 .aail-gallery.aail-gallery-mode-crop > .aail-gallery-item,
.aail-visual-layout-master-v8 .aail-two-columns > .aail-list-card {
  margin: 0;
}

/* A consistent outer rule for standalone editorial modules. */
.aail-visual-layout-master-v8 :where(
  .aail-review-band,
  .aail-promo,
  .aail-about,
  .aail-faq-contact
) {
  outline: 1px solid var(--aail-v8-polish-frame-soft);
  outline-offset: -1px;
}

/* Alignment insurance for long content, translations and admin-entered URLs. */
.aail-visual-layout-master-v8 :where(
  .aail-service-body,
  .aail-project-info,
  .aail-promo-content,
  .aail-about-text,
  .aail-list-card,
  .aail-contact-card,
  .aail-faq
) {
  overflow-wrap: break-word;
}

.aail-visual-layout-master-v8 :where(a, code) {
  overflow-wrap: anywhere;
}

/* Prevent viewport rounding from producing a one-pixel horizontal jump. */
.aail-visual-layout-master-v8 .aail-hero-collage,
.aail-visual-layout-master-v8 .aail-about-images,
.aail-visual-layout-master-v8 .aail-service-image,
.aail-visual-layout-master-v8 .aail-project-image,
.aail-visual-layout-master-v8 .aail-promo-image {
  min-width: 0;
  overflow: hidden;
}

/*
 * Ultra-wide canvas: the design remains at its intended editorial measure,
 * surrounded by a quiet dark-grey architectural rail instead of floating in an
 * endless pale field. No internal proportions are stretched.
 */
@media (min-width: 1920px) {
  .aail-site.aail-visual-layout-master-v8:not(.aail-fragment) {
    --aail-v8-polish-canvas-width: min(
      1840px,
      calc(var(--aail-v8-grid-max, 1440px) + 320px)
    );
    background-color: var(--aail-v8-polish-rail);
    background-image:
      linear-gradient(
        90deg,
        transparent calc(50% - .5px),
        rgba(24, 24, 21, .035) calc(50% - .5px),
        rgba(24, 24, 21, .035) calc(50% + .5px),
        transparent calc(50% + .5px)
      ),
      linear-gradient(rgba(24, 24, 21, .022) 1px, transparent 1px),
      linear-gradient(var(--aail-v8-polish-paper), var(--aail-v8-polish-paper));
    background-position: center top, center top, center top;
    background-size:
      var(--aail-v8-polish-canvas-width) 100%,
      var(--aail-v8-polish-canvas-width) 48px,
      var(--aail-v8-polish-canvas-width) 100%;
    background-repeat: no-repeat, repeat-y, no-repeat;
  }
}

/* Large desktop: retain the same composition while using the space precisely. */
@media (min-width: 1440px) and (max-width: 1919px) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    --aail-v8-edge: clamp(36px, 4vw, 64px);
  }
}

/* Compact desktop and large tablets: avoid cramped 12-column gutters. */
@media (min-width: 1021px) and (max-width: 1439px) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    --aail-v8-edge: clamp(24px, 3.2vw, 42px);
    --aail-v8-gutter: clamp(16px, 1.8vw, 22px);
    --aail-v8-section-gap: clamp(92px, 9vw, 118px);
  }

  .aail-visual-layout-master-v8 .aail-service-card > .aail-service-body,
  .aail-visual-layout-master-v8 .aail-service-card.reverse > .aail-service-body {
    padding-inline: clamp(30px, 4vw, 58px);
  }

  .aail-visual-layout-master-v8 .aail-list-card,
  .aail-visual-layout-master-v8 .aail-list-card.soft {
    padding-inline: clamp(26px, 3vw, 44px);
  }
}

/* Tablet: preserve the established stacking, but remove accidental dead zones. */
@media (min-width: 681px) and (max-width: 1020px) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    --aail-v8-edge: clamp(20px, 4vw, 34px);
    --aail-v8-gutter: clamp(14px, 2.6vw, 22px);
  }

  .aail-visual-layout-master-v8 .aail-service-stack {
    gap: clamp(22px, 4vw, 38px);
  }

  .aail-visual-layout-master-v8 :where(
    .aail-project-grid,
    .aail-gallery.aail-gallery-mode-crop,
    .aail-two-columns
  ) {
    gap: 4px;
  }

  .aail-visual-layout-master-v8 .aail-promo,
  .aail-visual-layout-master-v8 .aail-about,
  .aail-visual-layout-master-v8 .aail-faq-contact {
    row-gap: 4px;
  }
}

/* Phone: safe-area-aware edges and a consistent 3–4 px technical seam. */
@media (max-width: 680px) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    --aail-v8-edge: clamp(12px, 4.2vw, 18px);
    --aail-v8-section-gap: clamp(68px, 18vw, 94px);
    --aail-v8-gutter: 12px;
    background-size: 100% 100%, 100% 40px;
  }

  .aail-visual-layout-master-v8 :where(
    .aail-project-grid,
    .aail-gallery.aail-gallery-mode-crop,
    .aail-two-columns,
    .aail-stats,
    .aail-trust-grid,
    .aail-guarantee-grid
  ) {
    gap: 3px;
    border-radius: 7px;
  }

  .aail-visual-layout-master-v8 .aail-service-stack {
    gap: 18px;
  }

  .aail-visual-layout-master-v8 .aail-service-card,
  .aail-visual-layout-master-v8 .aail-service-card.reverse,
  .aail-visual-layout-master-v8 .aail-review-band,
  .aail-visual-layout-master-v8 .aail-promo,
  .aail-visual-layout-master-v8 .aail-about,
  .aail-visual-layout-master-v8 .aail-faq-contact,
  .aail-visual-layout-master-v8 .aail-list-card,
  .aail-visual-layout-master-v8 .aail-list-card.soft {
    max-width: 100%;
  }

  .aail-visual-layout-master-v8 .aail-promo,
  .aail-visual-layout-master-v8 .aail-about,
  .aail-visual-layout-master-v8 .aail-faq-contact {
    row-gap: 3px;
  }

  .aail-visual-layout-master-v8 .aail-section-head,
  .aail-visual-layout-master-v8 .aail-section-head.compact {
    min-width: 0;
  }

  .aail-visual-layout-master-v8 .aail-hero-actions,
  .aail-visual-layout-master-v8 .aail-card-cta,
  .aail-visual-layout-master-v8 .aail-contact-lines {
    max-width: 100%;
  }

  .aail-visual-layout-master-v8 .aail-form :where(input, textarea, select, button) {
    width: 100%;
  }
}

/* Very narrow phones: preserve the same composition without edge collisions. */
@media (max-width: 390px) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    --aail-v8-edge: max(10px, env(safe-area-inset-left));
    --aail-v8-section-gap: clamp(60px, 17vw, 78px);
  }

  .aail-visual-layout-master-v8 :where(
    .aail-project-grid,
    .aail-gallery.aail-gallery-mode-crop,
    .aail-two-columns,
    .aail-stats,
    .aail-trust-grid,
    .aail-guarantee-grid
  ) {
    gap: 3px;
  }
}

/* Short landscape phones/tablets: use height efficiently, without changing effects. */
@media (max-width: 1020px) and (max-height: 560px) and (orientation: landscape) {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    --aail-v8-section-gap: clamp(54px, 10vh, 74px);
  }

  .aail-visual-layout-master-v8 .aail-hero {
    padding-block: clamp(46px, 10vh, 72px);
  }
}

/* Print and embedded previews should never inherit the wide-screen rails. */
@media print {
  .aail-site.aail-visual-layout-master-v8,
  .aail-fragment.aail-visual-layout-master-v8 {
    background-color: var(--aail-v8-polish-paper) !important;
    background-image: none !important;
    overflow: visible;
  }
}

/* v8.1.4 — service-card alignment, focused panel hover and karaoke reader */
.aail-visual-layout-master-v8 .aail-service-card .aail-service-body h3,
.aail-fragment.aail-visual-layout-master-v8 .aail-service-card .aail-service-body h3 {
  width: min(100%, 11ch) !important;
  max-width: 11ch !important;
  align-self: var(--aail-item-title-self, flex-start) !important;
  text-align: var(--aail-item-title-align, var(--aail-card-title-align, left)) !important;
}

@media (max-width: 1020px) {
  .aail-visual-layout-master-v8 .aail-service-card .aail-service-body h3,
  .aail-fragment.aail-visual-layout-master-v8 .aail-service-card .aail-service-body h3 {
    align-self: var(--aail-item-title-self-mobile, var(--aail-item-title-self, flex-start)) !important;
    text-align: var(--aail-item-title-align-mobile, var(--aail-item-title-align, var(--aail-card-title-align-mobile, var(--aail-card-title-align, left)))) !important;
  }
}

/* Hovering the card edge starts the reader, but does not recolor the text panel. */
@media (hover: hover) and (pointer: fine) {
  .aail-site .aail-service-card:hover .aail-service-text-wrap:not(.aail-reader-panel-hover):not(.aail-reader-panel-focus),
  .aail-fragment .aail-service-card:hover .aail-service-text-wrap:not(.aail-reader-panel-hover):not(.aail-reader-panel-focus) {
    border-color: transparent !important;
    background: var(--aail-reader-bg, rgba(18,18,18,0)) !important;
    box-shadow: none !important;
  }

  .aail-site .aail-service-card:hover .aail-service-text-wrap.aail-has-overflow:not(.aail-reader-panel-hover):not(.aail-reader-panel-focus) .aail-service-scrollbar,
  .aail-fragment .aail-service-card:hover .aail-service-text-wrap.aail-has-overflow:not(.aail-reader-panel-hover):not(.aail-reader-panel-focus) .aail-service-scrollbar {
    opacity: .22 !important;
  }
}

.aail-site .aail-service-text-wrap.aail-reader-panel-hover,
.aail-site .aail-service-text-wrap.aail-reader-panel-focus,
.aail-fragment .aail-service-text-wrap.aail-reader-panel-hover,
.aail-fragment .aail-service-text-wrap.aail-reader-panel-focus {
  border-color: rgba(18,18,18,.055) !important;
  background: var(--aail-reader-bg-active) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18) !important;
}

.aail-site .aail-service-text-wrap.aail-reader-panel-hover.aail-has-overflow .aail-service-scrollbar,
.aail-site .aail-service-text-wrap.aail-reader-panel-focus.aail-has-overflow .aail-service-scrollbar,
.aail-fragment .aail-service-text-wrap.aail-reader-panel-hover.aail-has-overflow .aail-service-scrollbar,
.aail-fragment .aail-service-text-wrap.aail-reader-panel-focus.aail-has-overflow .aail-service-scrollbar {
  opacity: .9 !important;
}

.aail-site .aail-service-text-scroll p,
.aail-fragment .aail-service-text-scroll p {
  --aail-reader-word-muted: var(--aail-theme-muted, rgba(24,24,21,.62));
  --aail-reader-word-bright: var(--aail-theme-ink, #181815);
}

/* v9.7.11 — geometry-locked line-by-line, left-to-right reader.
 *
 * The base paragraph and emphasized paint copy share one normal-flow stack.
 * The stack itself occupies the scroller CONTENT box, so the scroller's
 * padding-right can never make the absolute paint copy wider than the base
 * paragraph. Both layers therefore wrap identically at every width.
 *
 * Actual font weight remains constant. Apparent extra thickness comes from a
 * sub-pixel stroke on the paint layer only. The highlighted copy is clipped
 * as an L-shaped polygon: completed rows stay fully visible and the current
 * row is revealed strictly from left to right. Scroll-time work is still one
 * paint-only custom-property write, so there is no reflow or line jumping. */
.aail-site .aail-service-text-wrap.aail-reader-scroll-driven,
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven {
  --aail-reader-clip: polygon(0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%);
}

.aail-site .aail-service-text-wrap.aail-reader-scroll-driven .aail-service-text-scroll,
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven .aail-service-text-scroll {
  position: relative;
}

.aail-site .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack,
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.aail-site .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack > p:not(.aail-reader-emphasis-layer),
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack > p:not(.aail-reader-emphasis-layer) {
  position: relative;
  z-index: 0;
  font-weight: 420 !important;
  color: var(--aail-reader-word-muted) !important;
  -webkit-text-fill-color: currentColor !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-stroke: 0 transparent !important;
  text-shadow: none !important;
  filter: none !important;
  transition: none !important;
}

.aail-site .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack > .aail-reader-emphasis-layer,
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack > .aail-reader-emphasis-layer {
  position: absolute !important;
  top: 0;
  left: 0;
  z-index: 1;
  box-sizing: border-box;
  width: 100% !important;
  margin: 0 !important;
  pointer-events: none;
  user-select: none;
  font-weight: 420 !important;
  color: var(--aail-reader-word-bright) !important;
  -webkit-text-fill-color: currentColor !important;
  -webkit-text-stroke-width: clamp(.45px, .025em, .8px);
  -webkit-text-stroke-color: currentColor;
  paint-order: stroke fill;
  text-shadow: none !important;
  filter: none !important;
  background: none !important;
  clip-path: var(--aail-reader-clip, polygon(0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%));
  -webkit-clip-path: var(--aail-reader-clip, polygon(0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%));
  transition: none !important;
}

.aail-site .aail-service-text-wrap.aail-reader-scroll-driven.aail-reader-reading .aail-reader-paint-stack > .aail-reader-emphasis-layer,
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven.aail-reader-reading .aail-reader-paint-stack > .aail-reader-emphasis-layer {
  will-change: clip-path !important;
}

.aail-site .aail-service-text-wrap.aail-reader-scroll-driven.aail-reader-complete .aail-reader-paint-stack > .aail-reader-emphasis-layer,
.aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven.aail-reader-complete .aail-reader-paint-stack > .aail-reader-emphasis-layer {
  clip-path: inset(0 0 0 0);
  -webkit-clip-path: inset(0 0 0 0);
  will-change: auto !important;
}

@media (prefers-reduced-motion: reduce) {
  .aail-site .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack > .aail-reader-emphasis-layer,
  .aail-fragment .aail-service-text-wrap.aail-reader-scroll-driven .aail-reader-paint-stack > .aail-reader-emphasis-layer {
    clip-path: inset(0 0 0 0) !important;
    -webkit-clip-path: inset(0 0 0 0) !important;
    will-change: auto !important;
  }
}

.aail-site .aail-reader-char,
.aail-fragment .aail-reader-char {
  color: var(--aail-reader-word-muted) !important;
  opacity: 1;
  font: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
  text-shadow: 0 0 0 transparent;
  filter: none;
  transition:
    color .22s cubic-bezier(.22,1,.36,1),
    opacity .22s cubic-bezier(.22,1,.36,1),
    text-shadow .34s cubic-bezier(.22,1,.36,1),
    filter .34s cubic-bezier(.22,1,.36,1);
}

.aail-site .aail-reader-char.is-read,
.aail-fragment .aail-reader-char.is-read {
  color: var(--aail-reader-word-bright) !important;
  opacity: .98;
  text-shadow:
    0 0 6px rgba(255,255,255,.16),
    0 0 14px rgba(255,255,255,.08);
}

.aail-site .aail-reader-char.is-current,
.aail-fragment .aail-reader-char.is-current {
  color: var(--aail-reader-word-bright) !important;
  opacity: 1;
  text-shadow:
    0 0 12px rgba(255,255,255,.42),
    0 0 25px rgba(255,255,255,.24),
    0 0 42px rgba(255,255,255,.12);
  filter: brightness(1.16);
}

.aail-site[data-aail-color-scheme="light"] .aail-reader-char.is-read,
.aail-fragment[data-aail-color-scheme="light"] .aail-reader-char.is-read {
  text-shadow:
    0 0 5px rgba(255,255,255,.72),
    0 0 12px rgba(255,255,255,.34);
}

.aail-site[data-aail-color-scheme="light"] .aail-reader-char.is-current,
.aail-fragment[data-aail-color-scheme="light"] .aail-reader-char.is-current {
  text-shadow:
    0 0 10px rgba(255,255,255,.98),
    0 0 22px rgba(255,255,255,.68),
    0 0 38px rgba(255,255,255,.34);
}

.aail-site .aail-service-text-wrap.aail-reader-reading .aail-service-text-scroll,
.aail-fragment .aail-service-text-wrap.aail-reader-reading .aail-service-text-scroll {
  cursor: default;
}

@media (prefers-reduced-motion: reduce) {
  .aail-site .aail-reader-char,
  .aail-fragment .aail-reader-char {
    color: inherit !important;
    opacity: 1;
    text-shadow: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* Keyboard focus follows the same rule: the panel changes only when focus is inside it. */
.aail-site .aail-service-card:focus-visible .aail-service-text-wrap:not(.aail-reader-panel-focus),
.aail-fragment .aail-service-card:focus-visible .aail-service-text-wrap:not(.aail-reader-panel-focus) {
  border-color: transparent !important;
  background: var(--aail-reader-bg, rgba(18,18,18,0)) !important;
  box-shadow: none !important;
}

/* ==========================================================================
   8.4.4 — native document canvas / WebKit tile-loss fix

   The page itself is dark. There is no dark overlay above a light MyListing or
   Elementor canvas, so a discarded compositor tile can only reveal the same
   dark colour. Mobile WebKit also stays in normal paint flow for the long page.
   ========================================================================== */

html.aail-page-native-canvas,
html.aail-page-native-canvas body {
  min-height: 100%;
  background-color: var(--aail-page-canvas-color, #f1efe9);
}

html.aail-page-native-canvas[data-aail-page-scheme="dark"],
html.aail-page-native-canvas[data-aail-page-scheme="dark"] body,
body.aail-page-has-landing[data-aail-page-scheme="dark"] {
  background-color: #0d100f !important;
  color-scheme: dark;
}

/* System-theme fallback also works before the JavaScript bootstrap has run. */
@media (prefers-color-scheme: dark) {
  html.aail-page-native-canvas:not([data-aail-page-scheme="light"]),
  html.aail-page-native-canvas:not([data-aail-page-scheme="light"]) body,
  body.aail-page-has-landing:not([data-aail-page-scheme="light"]) {
    background-color: #0d100f !important;
    color-scheme: dark;
  }
}

/* MyListing, WordPress and Elementor wrappers become real dark paint surfaces,
   rather than transparent windows onto a white theme canvas. */
html.aail-page-native-canvas[data-aail-page-scheme="dark"] body :where(
  #page,
  #c27-site-wrapper,
  .c27-site-wrapper,
  .c27-main-wrapper,
  .c27-content-wrapper,
  .site,
  .site-content,
  .content-area,
  .site-main,
  main.site-main,
  .entry-content,
  .page-content,
  .elementor,
  .elementor-page,
  .elementor-section-wrap,
  .elementor-location-single,
  .elementor-location-archive,
  .elementor-location-footer
) {
  background-color: #0d100f !important;
}

@supports selector(:has(*)) {
  html.aail-page-native-canvas[data-aail-page-scheme="dark"] body :where(
    .elementor-section,
    .elementor-container,
    .elementor-column,
    .elementor-widget-wrap,
    .elementor-widget,
    .elementor-widget-container,
    .e-con,
    .e-con-inner
  ):has(.aail-site, .aail-fragment) {
    background-color: #0d100f !important;
  }
}

html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
  .aail-site,
  .aail-fragment
) {
  background-color: #0d100f !important;
  min-height: 1px;
}

html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
  .aail-site,
  .aail-fragment
) :where(
  .aail-hero,
  .aail-section,
  .aail-gallery-section,
  .aail-footer
) {
  background-color: #0d100f;
}

html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
  .aail-site,
  .aail-fragment
) :where(
  .aail-project-image,
  .aail-service-image,
  .aail-promo-image,
  .aail-about-image,
  .aail-gallery-item
) {
  background-color: #171a18;
}

/* iOS/iPadOS Safari paints transformed/filter-heavy pages in raster tiles.
   In dark mode the long document therefore uses ordinary paint flow. Gallery
   and lightbox motion remains available only inside their opened overlays. */
@supports (-webkit-touch-callout: none) {
  @media (hover: none) and (pointer: coarse) {
    html.aail-page-native-canvas[data-aail-page-scheme="dark"],
    html.aail-page-native-canvas[data-aail-page-scheme="dark"] body {
      background-color: #0d100f !important;
      background-image: none !important;
      background-attachment: scroll !important;
      transform: none !important;
      filter: none !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ).aail-visual-layout-master-v8 {
      isolation: auto !important;
      contain: none !important;
      background-color: #0d100f !important;
      background-image: none !important;
      background-attachment: scroll !important;
      transform: none !important;
      filter: none !important;
      will-change: auto !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) :where(
      .aail-reveal,
      .aail-project-grid,
      .aail-gallery.aail-gallery-mode-crop,
      .aail-stats,
      .aail-trust-grid,
      .aail-guarantee-grid,
      .aail-two-columns,
      .aail-project-card,
      .aail-service-card,
      .aail-list-card,
      .aail-list-card-bg-wrap,
      .aail-list-card-bg,
      .aail-promo,
      .aail-about,
      .aail-service-text-wrap
    ) {
      opacity: 1 !important;
      isolation: auto !important;
      contain: none !important;
      filter: none !important;
      transform: none !important;
      will-change: auto !important;
      -webkit-backface-visibility: visible !important;
      backface-visibility: visible !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) :where(
      .aail-project-image img,
      .aail-service-image img,
      .aail-promo-image img,
      .aail-about-image img,
      .aail-gallery-item img
    ) {
      filter: none !important;
      transform: none !important;
      will-change: auto !important;
      -webkit-backface-visibility: visible !important;
      backface-visibility: visible !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) :where(
      .aail-service-text-scroll,
      .aail-service-text-scroll p
    ) {
      -webkit-mask-image: none !important;
      mask-image: none !important;
      transform: none !important;
      filter: none !important;
      will-change: auto !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) :where(
      .aail-header,
      .aail-btn.ghost,
      .aail-stat-card,
      .aail-service-more,
      .aail-service-scrollbar-thumb
    ),
    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) .aail-project-image.aail-is-clickable::before {
      -webkit-backdrop-filter: none !important;
      backdrop-filter: none !important;
      will-change: auto !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) :where(.aail-header, .aail-btn.ghost, .aail-service-more) {
      background-color: #202421 !important;
    }

    html.aail-page-native-canvas[data-aail-page-scheme="dark"] :where(
      .aail-site,
      .aail-fragment
    ) * {
      will-change: auto !important;
    }
  }
}

/* 9.0 — hero text and photo collage remain in one desktop grid row. */
@media (min-width: 1021px) {
  .aail-site.aail-visual-layout-master-v8 .aail-hero > .aail-hero-text,
  .aail-fragment.aail-visual-layout-master-v8 .aail-hero > .aail-hero-text {
    grid-row: 1 !important;
    order: 1 !important;
    align-self: center;
  }

  .aail-site.aail-visual-layout-master-v8 .aail-hero > .aail-hero-collage,
  .aail-fragment.aail-visual-layout-master-v8 .aail-hero > .aail-hero-collage {
    grid-row: 1 !important;
    order: 2 !important;
    align-self: center;
  }
}

/* v9.2.3 — overflow-only reader panel and theme-correct fades. */
.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text],
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text] {
  /* The service card itself never changes surface colour, so its edge fades
     must always match that same light/dark surface instead of the inverse
     active-card colour. */
  --aail-reader-fade-color: var(--aail-theme-surface) !important;
}

/* A short description needs no reading surface. Keep it completely invisible
   on mouse hover, keyboard focus and mobile/touch activation. */
.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-site .aail-service-card:hover .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-fragment .aail-service-card:hover .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-site .aail-service-card.aail-is-active .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-fragment .aail-service-card.aail-is-active .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-site .aail-service-card:focus-visible .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-fragment .aail-service-card:focus-visible .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow),
.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-hover:not(.aail-has-overflow),
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-hover:not(.aail-has-overflow),
.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-focus:not(.aail-has-overflow),
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-focus:not(.aail-has-overflow),
.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-panel-hover:not(.aail-has-overflow),
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-panel-hover:not(.aail-has-overflow),
.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-panel-focus:not(.aail-has-overflow),
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text].aail-reader-panel-focus:not(.aail-has-overflow) {
  border-color: transparent !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

.aail-site .aail-service-card .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow) .aail-service-scrollbar,
.aail-fragment .aail-service-card .aail-service-text-wrap[data-aail-service-text]:not(.aail-has-overflow) .aail-service-scrollbar {
  display: none !important;
  opacity: 0 !important;
}


/* v9.7.1 stats no top outline */
.aail-visual-layout-master-v8 .aail-stats {
  box-shadow:
    inset 1px 0 0 var(--aail-v8-polish-frame-soft),
    inset -1px 0 0 var(--aail-v8-polish-frame-soft),
    inset 0 -1px 0 var(--aail-v8-polish-frame-soft) !important;
  border-top: 0 !important;
}

/* v9.7.1 precise stats line correction: keep outer frame, remove inner card-top rule */
.aail-site.aail-visual-layout-master-v8 .aail-stats,
.aail-fragment.aail-visual-layout-master-v8 .aail-stats {
  box-shadow: 0 0 0 1px var(--aail-v8-polish-frame-soft) !important;
}
.aail-site.aail-visual-layout-master-v8 .aail-stats > .aail-stat-card,
.aail-fragment.aail-visual-layout-master-v8 .aail-stats > .aail-stat-card {
  border-top: 0 !important;
  border-top-width: 0 !important;
  outline: 0 !important;
}

/* v9.7.2 — remove the INTERNAL horizontal V8 grid rule above the stat numbers.
 * This line was not a stat-card border: the 48px technical page grid was
 * visible through the translucent V8 stats surface. Keep the outer panel
 * outline, shadow and vertical separators, but make this panel itself opaque. */
.aail-site.aail-visual-layout-master-v8 .aail-stats,
.aail-fragment.aail-visual-layout-master-v8 .aail-stats {
  background-color: var(--aail-theme-surface, #f8f6f1) !important;
  background-image: none !important;
  box-shadow: 0 0 0 1px var(--aail-v8-polish-frame-soft) !important;
}

/* Cards stay visually connected to the same opaque paper surface; hover/focus
 * states from frontend-theme-motion still override this normally. */
.aail-site.aail-visual-layout-master-v8 .aail-stats > .aail-stat-card,
.aail-fragment.aail-visual-layout-master-v8 .aail-stats > .aail-stat-card {
  background-image: none !important;
}

/* v9.7.4 — self-contained statistics fragment.
 * The standalone [aa_landing_stats] shortcode used to inherit the Studio
 * Hybrid -46px top overlap. Inside page-builder/Elementor containers that
 * placed the top part of the panel outside its own fragment: in light mode
 * the host boundary appeared as a horizontal rule through the panel; in dark
 * mode the same overflow could be clipped completely. Keep the intentional
 * overlap for the full landing renderer, but never let the standalone stats
 * fragment escape its own box. */
.aail-site.aail-fragment-stats .aail-stats,
.aail-fragment.aail-fragment-stats .aail-stats {
  margin-top: 0 !important;
  padding-top: 0 !important;
  overflow: hidden !important;
  position: relative;
  z-index: 1;
}

/* The old masking cap only existed to hide the overlap described above. Once
 * the fragment is self-contained it is both unnecessary and unsafe in dark
 * mode, where a neighbouring stacking context could cut the panel at the cap
 * boundary. */
.aail-site.aail-fragment-stats::before,
.aail-fragment.aail-fragment-stats::before {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Ensure no child can recreate a horizontal rule at the top of the connected
 * three-column statistics surface. Vertical separators and the outer frame
 * are retained. */
.aail-site.aail-fragment-stats .aail-stats > .aail-stat-card,
.aail-fragment.aail-fragment-stats .aail-stats > .aail-stat-card {
  border-top: 0 !important;
  border-top-width: 0 !important;
  outline: 0 !important;
}



/* ==========================================================
   v9.8.4 — continuous Apple-like motion / Safari paint cleanup
   ========================================================== */

/* The reader no longer translates the paragraph. Keeping both normal-flow
   copies permanently promoted wastes compositor memory and can make Safari
   resample text while the clip changes. Promote only the actively clipped
   paint layer. */
.aail-site.aail-visual-layout-master-v8 .aail-reader-paint-stack > p,
.aail-fragment.aail-visual-layout-master-v8 .aail-reader-paint-stack > p {
  transform: none !important;
  will-change: auto !important;
}

.aail-site.aail-visual-layout-master-v8 .aail-reader-reading .aail-reader-emphasis-layer,
.aail-fragment.aail-visual-layout-master-v8 .aail-reader-reading .aail-reader-emphasis-layer {
  will-change: clip-path !important;
}

/* Hover photographs are already compressed WebP assets. Per-frame filter
   compositing (saturate/contrast) on several full-card layers costs much more
   than the visual difference it creates, especially while the two columns are
   changing width. Keep layers idle until one is actually used. */
.aail-site.aail-visual-layout-master-v8 .aail-list-card-bg,
.aail-fragment.aail-visual-layout-master-v8 .aail-list-card-bg {
  filter: none !important;
  will-change: auto !important;
  transition:
    opacity .62s cubic-bezier(.16, 1, .3, 1),
    transform .92s cubic-bezier(.16, 1, .3, 1) !important;
}

.aail-site.aail-visual-layout-master-v8 .aail-list-card-bg.is-active,
.aail-fragment.aail-visual-layout-master-v8 .aail-list-card-bg.is-active {
  will-change: opacity, transform !important;
}

/* Give the service rows one coherent easing family. Their copy no longer
   snaps independently while the containing panel is still moving. */
.aail-site.aail-visual-layout-master-v8 .aail-service-overview-item,
.aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-item {
  transition:
    opacity .44s cubic-bezier(.16, 1, .3, 1),
    background-color .48s cubic-bezier(.16, 1, .3, 1),
    color .44s cubic-bezier(.16, 1, .3, 1),
    border-color .44s cubic-bezier(.16, 1, .3, 1) !important;
}

.aail-site.aail-visual-layout-master-v8 .aail-service-overview-item .aail-service-overview-copy,
.aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-item .aail-service-overview-copy {
  transition:
    transform .58s cubic-bezier(.16, 1, .3, 1),
    opacity .44s cubic-bezier(.16, 1, .3, 1) !important;
}

/* Large dynamic shadows force a broad repaint every spring frame. The static
   cards keep their normal shadows before and after the width transition. */
.aail-site.aail-visual-layout-master-v8 .aail-two-columns.aail-panel-swap-moving > .aail-list-card,
.aail-fragment.aail-visual-layout-master-v8 .aail-two-columns.aail-panel-swap-moving > .aail-list-card {
  box-shadow: none !important;
}



/* Whole-page paint audit: keep repeated reveal/hover/modal motion on opacity +
   transform. Animated blur/saturation forces large raster passes in Safari and
   is a common source of the "slideshow" feel on high-DPI screens. */
.aail-site.aail-visual-layout-master-v8.aail-motion-ready .aail-reveal,
.aail-fragment.aail-visual-layout-master-v8.aail-motion-ready .aail-reveal {
  filter: none !important;
  transition:
    opacity .76s cubic-bezier(.16, 1, .3, 1) var(--aail-reveal-delay, 0ms),
    transform .76s cubic-bezier(.16, 1, .3, 1) var(--aail-reveal-delay, 0ms) !important;
}

.aail-site.aail-visual-layout-master-v8 .aail-project-card.aail-is-clickable,
.aail-site.aail-visual-layout-master-v8 .aail-gallery-item.aail-is-clickable,
.aail-fragment.aail-visual-layout-master-v8 .aail-project-card.aail-is-clickable,
.aail-fragment.aail-visual-layout-master-v8 .aail-gallery-item.aail-is-clickable {
  transition:
    transform .54s cubic-bezier(.16, 1, .3, 1),
    box-shadow .54s cubic-bezier(.16, 1, .3, 1) !important;
}

.aail-site.aail-visual-layout-master-v8 .aail-project-image img,
.aail-site.aail-visual-layout-master-v8 .aail-gallery-item img,
.aail-fragment.aail-visual-layout-master-v8 .aail-project-image img,
.aail-fragment.aail-visual-layout-master-v8 .aail-gallery-item img {
  filter: none !important;
  transition: transform .72s cubic-bezier(.16, 1, .3, 1) !important;
}

@keyframes aailFullscreenGallerySwap {
  from { opacity: .46; transform: scale(1.012); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes aailLightboxSwap {
  from { opacity: .42; transform: scale(.992); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes aail-detail-light-up {
  0% { opacity: .14; transform: translate3d(0, 16px, 0); }
  55% { opacity: 1; }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .aail-site.aail-visual-layout-master-v8 .aail-list-card-bg,
  .aail-fragment.aail-visual-layout-master-v8 .aail-list-card-bg,
  .aail-site.aail-visual-layout-master-v8 .aail-service-overview-item,
  .aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-item,
  .aail-site.aail-visual-layout-master-v8 .aail-service-overview-item .aail-service-overview-copy,
  .aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-item .aail-service-overview-copy {
    transition: none !important;
  }
}

/* --------------------------------------------------------------------------
 * v9.8.5 — rendering / loading / typography polish
 * -------------------------------------------------------------------------- */
.aail-site.aail-visual-layout-master-v8 .aail-list-card-bg-image,
.aail-fragment.aail-visual-layout-master-v8 .aail-list-card-bg-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.aail-site.aail-visual-layout-master-v8 .aail-list-card-bg::after,
.aail-fragment.aail-visual-layout-master-v8 .aail-list-card-bg::after {
  z-index: 1;
}

@supports (text-wrap: balance) {
  .aail-site.aail-visual-layout-master-v8 :where(.aail-hero h1, .aail-section-head h2, .aail-service-card h2, .aail-list-card-inner > h2, .aail-promo h2, .aail-about h2, .aail-faq h2, .aail-contact-card h2),
  .aail-fragment.aail-visual-layout-master-v8 :where(.aail-hero h1, .aail-section-head h2, .aail-service-card h2, .aail-list-card-inner > h2, .aail-promo h2, .aail-about h2, .aail-faq h2, .aail-contact-card h2) {
    text-wrap: balance;
  }
}

@supports (text-wrap: pretty) {
  .aail-site.aail-visual-layout-master-v8 :where(.aail-hero-lead, .aail-service-text-scroll p, .aail-service-overview-item p, .aail-about p, .aail-promo p, .aail-contact-card > p),
  .aail-fragment.aail-visual-layout-master-v8 :where(.aail-hero-lead, .aail-service-text-scroll p, .aail-service-overview-item p, .aail-about p, .aail-promo p, .aail-contact-card > p) {
    text-wrap: pretty;
  }
}

.aail-site.aail-visual-layout-master-v8 .aail-form :is(input, textarea, button):focus-visible,
.aail-fragment.aail-visual-layout-master-v8 .aail-form :is(input, textarea, button):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* v9.8.5 stat dialog: no full-screen GPU blur; compositor-only entrance/exit. */
html.aail-stat-modal-lock,
body.aail-stat-modal-lock {
  overflow: hidden !important;
}

.aail-stat-modal-backdrop {
  opacity: 0;
  background: rgba(14, 14, 14, .60) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  transition: opacity .24s cubic-bezier(.16, 1, .3, 1);
}

.aail-stat-modal-backdrop .aail-stat-modal {
  opacity: .985;
  transform: translate3d(0, 14px, 0) scale(.986);
  transform-origin: 50% 48%;
  transition:
    transform .38s cubic-bezier(.16, 1, .3, 1),
    opacity .24s cubic-bezier(.16, 1, .3, 1);
}

.aail-stat-modal-backdrop.is-open {
  opacity: 1;
}

.aail-stat-modal-backdrop.is-open .aail-stat-modal {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.aail-stat-modal-backdrop.is-closing {
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .aail-stat-modal-backdrop,
  .aail-stat-modal-backdrop .aail-stat-modal {
    transition: none !important;
    transform: none !important;
  }
}

/* v9.8.5: pause the continuously moving client-logo rail while it is outside
   the viewport or the tab is hidden. The visual state is unchanged on-screen,
   but the compositor does no needless work several sections away. */
.aail-site .aail-logo-rotation[data-aail-logo-visible="0"] .aail-logo-rotation-track,
.aail-fragment .aail-logo-rotation[data-aail-logo-visible="0"] .aail-logo-rotation-track {
  animation-play-state: paused !important;
  will-change: auto !important;
}

/* Fullscreen gallery: the moving panoramic strip must not sit behind a live
   backdrop-filter. On Retina Safari that combination forces a full-screen
   blur recomposite on almost every frame. The opaque/translucent treatment
   below keeps the same depth impression while leaving the strip on the GPU. */
.aail-lightbox.is-gallery-filmstrip .aail-lightbox-filmstrip::before,
.aail-lightbox.is-iphone-filmstrip .aail-lightbox-filmstrip::before {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: rgba(10, 10, 10, .30) !important;
}

.aail-lightbox .aail-lightbox-filmstrip-track {
  backface-visibility: hidden;
  transform-style: flat;
}

.aail-lightbox.is-closing {
  pointer-events: none !important;
}

/* Consistent keyboard indication without changing layout dimensions. */
.aail-site :where([role="button"], .aail-btn, summary, .aail-detail-card-link, .aail-service-ai-trigger, .aail-service-ai-close):focus-visible,
.aail-fragment :where([role="button"], .aail-btn, summary, .aail-detail-card-link, .aail-service-ai-trigger, .aail-service-ai-close):focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 4px !important;
}

/* Do not depend on the active WordPress theme for the helper class used by
   the service-AI field label. */
.aail-site .screen-reader-text,
.aail-fragment .screen-reader-text {
  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;
}

.aail-lightbox :focus-visible {
  outline: 2px solid rgba(255,255,255,.94) !important;
  outline-offset: 4px !important;
}

/* v9.8.5 deep pass: the overview CTA is absolutely positioned, so collapsing
   max-height only creates needless layout/paint work. Keep its geometry stable
   and reveal it with compositor-friendly opacity/transform only. */
.aail-site.aail-visual-layout-master-v8 .aail-service-overview-cta,
.aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-cta {
  max-height: 84px !important;
  transition:
    opacity .28s cubic-bezier(.16, 1, .3, 1),
    transform .42s cubic-bezier(.16, 1, .3, 1) !important;
  transition-delay: 0s !important;
}

.aail-site.aail-visual-layout-master-v8 .aail-service-overview-item.aail-hover-item-active .aail-service-overview-cta,
.aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-item.aail-hover-item-active .aail-service-overview-cta {
  transition-delay: .06s !important;
}

/* Large fixed backdrop blur is disproportionately expensive in Safari/Retina,
   especially while the dialog itself is moving. A denser translucent scrim
   preserves separation without forcing a full-viewport blur every frame. */
.aail-site .aail-detail-backdrop,
.aail-fragment .aail-detail-backdrop,
.aail-detail-runtime-backdrop {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: rgba(13, 16, 15, .64) !important;
}

@media (prefers-reduced-motion: reduce) {
  .aail-site.aail-visual-layout-master-v8 .aail-service-overview-cta,
  .aail-fragment.aail-visual-layout-master-v8 .aail-service-overview-cta {
    transition: none !important;
  }
}

/* Full-screen gallery entrance: avoid recomputing a viewport-sized blur while
   the dialog itself translates/scales. Smaller local glass controls remain. */
.aail-lightbox-backdrop {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: rgba(12, 12, 12, .66) !important;
}
