/* Red Llama Moving template overrides */

/* css3-animate-it: .animated stays at opacity:0 + transform without JS */
.animated {
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}

/* Homepage-only review mode: preserve the styling of internal route links while
   preventing those links from opening unfinished pages. External links stay live. */
body.elementor-page-17 a[data-preview-internal-disabled="true"] {
  pointer-events: none !important;
  cursor: default !important;
}

/* The map iframe is redirected to Red Llama's verified Google Business Profile. */
.elementor-custom-embed iframe[src*="google.com/maps"] {
  display: block !important;
}

/* SmartMenus injects a fresh .sub-arrow on init but the crawled HTML already
   has one baked in, producing two chevrons. Hide the duplicate.
   Also hide the empty Astra arrow span for safety. */
.ast-header-navigation-arrow {
  display: none !important;
}
.elementor-nav-menu .sub-arrow + .sub-arrow {
  display: none !important;
}

/* "Our Standards" section: global font-weight var is 300 which suppresses <b>.
   Force bold on titles inside this text-editor widget. */
.elementor-element-a9ae6fa b {
  font-weight: 700 !important;
}

/* WPR sticky section: WPR frontend.min.js managed position:fixed dynamically
   (removing on init, restoring on scroll) but is stripped by the SOP cleanup.
   The crawled HTML has position:fixed baked in as an inline style; !important
   overrides inline styles so both header rows stack naturally in document flow. */
.wpr-sticky-section-yes {
  position: relative !important;
  top: auto !important;
}

/* Map embed: fill the full left column height, clip to card's border-radius */
.elementor-element-cbac13f,
.elementor-element-cbac13f .elementor-widget-container,
.elementor-element-cbac13f .elementor-custom-embed {
  height: 100%;
}
.elementor-element-560755ff {
  overflow: hidden;
}

/* Template galleries: desktop keeps Elementor grid/masonry. Tablet uses
   three image columns; mobile stays one readable image per row. */
.rl-gallery-mobile-img {
  display: none;
}

@media (max-width: 1024px) {
  .elementor-widget-gallery .elementor-gallery__container.e-gallery-container {
    display: grid !important;
    gap: var(--vgap, 10px) var(--hgap, 10px) !important;
    height: auto !important;
    min-height: 0 !important;
    padding-bottom: 0 !important;
    --rows: auto !important;
    --container-aspect-ratio: auto !important;
  }

  .elementor-widget-gallery .e-gallery-item.elementor-gallery-item {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .elementor-widget-gallery .e-gallery-image.elementor-gallery-item__image {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    background-image: none !important;
  }

  .elementor-widget-gallery .e-gallery-image .rl-gallery-mobile-img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: cover !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-widget-gallery .elementor-gallery__container.e-gallery-container {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    --columns: 3 !important;
  }
}

@media (max-width: 767px) {
  .elementor-widget-gallery .elementor-gallery__container.e-gallery-container {
    grid-template-columns: 1fr !important;
    --columns: 1 !important;
  }

  .elementor-widget-gallery .e-gallery-image .rl-gallery-mobile-img {
    object-fit: contain !important;
  }
}

/* Homepage gallery widget shared with About. The About capture retains its own
   Elementor widget shell, so the gallery contract must be scoped to the
   data marker rather than relying on the homepage's original parent class. */
[data-rl-homepage-gallery="true"] {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: var(--vgap, 10px) var(--hgap, 10px) !important;
  height: auto !important;
  min-height: 0 !important;
  padding-bottom: 0 !important;
}
[data-rl-homepage-gallery="true"] .e-gallery-item.elementor-gallery-item {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 4;
  margin: 0 !important;
  overflow: hidden !important;
}
[data-rl-homepage-gallery="true"] .e-gallery-image.elementor-gallery-item__image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}
[data-rl-homepage-gallery="true"] .e-gallery-image .rl-gallery-mobile-img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}

@media (max-width: 767px) {
  [data-rl-homepage-gallery="true"] {
    grid-template-columns: 1fr !important;
  }
}

/* Red Llama bootstrap placeholders keep the copied layout usable without
   exposing retired identity, media, review, form, or social surfaces. */
.elementor-location-header .elementor-widget-wpr-logo {
  min-width: 220px !important;
}

.elementor-location-header .wpr-logo-image {
  display: block !important;
  width: 220px !important;
  max-width: 100% !important;
  height: auto !important;
}

.elementor-location-header .wpr-logo-image img[src*="red-llama-wordmark"] {
  display: block !important;
  width: 220px !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  background: transparent !important;
}

.wpr-offcanvas-trigger svg {
  fill: currentColor !important;
}

/* Red Llama submenu contract: the same dark field and white link treatment
   applies to desktop flyouts and the expanded mobile drawer. */
.elementor-location-header .elementor-nav-menu--main .sub-menu {
  background-color: #252525 !important;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu .elementor-sub-item,
.elementor-location-header .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.elementor-location-header .elementor-nav-menu--main .sub-menu .elementor-sub-item:focus {
  color: #ffffff !important;
}

@media (max-width: 767px) {
  .elementor-location-header .elementor-widget-wpr-logo,
  .elementor-location-header .wpr-logo-image,
  .elementor-location-header .wpr-logo-image img[src*="red-llama-wordmark"] {
    width: 190px !important;
    min-width: 190px !important;
  }

  /* The captured offcanvas menu inherits SmartMenus desktop absolute submenu
     positioning. In the narrow drawer, child links must become an in-flow
     block so an expanded Services or Service Areas item pushes later links
     down instead of covering them. */
  .wpr-offcanvas-content .elementor-nav-menu--main > .elementor-nav-menu > li > .sub-menu {
    position: static !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .wpr-offcanvas-content .elementor-nav-menu--main > .elementor-nav-menu > li:has(> .sub-menu[aria-hidden="false"]) {
    height: auto !important;
    overflow: visible !important;
  }
  .wpr-offcanvas-content .elementor-nav-menu--main > .elementor-nav-menu > li > .sub-menu[aria-hidden="false"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  .wpr-offcanvas-content .elementor-nav-menu--main > .elementor-nav-menu > li > .sub-menu .elementor-sub-item {
    display: block !important;
    padding-left: 1.75rem !important;
  }
  /* The captured widget keeps a 200px desktop width and negative margin. Let
     the drawer's menu consume its actual padded content box before child rows
     inherit that width, preventing labels from extending past the viewport. */
  .wpr-offcanvas-content .elementor-widget-nav-menu {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }
  .wpr-offcanvas-content .elementor-nav-menu--main,
  .wpr-offcanvas-content .elementor-nav-menu--main > .elementor-nav-menu,
  .wpr-offcanvas-content .elementor-nav-menu--main > .elementor-nav-menu > li {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

img[src*="red-llama-photo-placeholder"],
.e-gallery-image[data-thumbnail*="red-llama-photo-placeholder"] {
  background: #f4f1ed !important;
  object-fit: cover !important;
}

/* Approved Red Llama photos replace the two bootstrap image placeholders on
   the homepage while retaining the inherited split-section layout. */
.elementor-17 .elementor-element.elementor-element-f3397c1:not(.elementor-motion-effects-element-type-background),
.elementor-17 .elementor-element.elementor-element-f3397c1 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url("/images/red-llama-moving/mover-protecting-wrapped-furniture-at-home.webp") !important;
  background-position: center 45% !important;
  background-size: cover !important;
}

.elementor-17 .elementor-element.elementor-element-1f91a7f:not(.elementor-motion-effects-element-type-background),
.elementor-17 .elementor-element.elementor-element-1f91a7f > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url("/images/red-llama-moving/movers-handling-strapped-item-outside-home.webp") !important;
  background-position: center center !important;
  background-size: cover !important;
}

.rl-form-placeholder,
.rl-review-proof {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 180px;
  padding: 1.5rem;
  border: 1px solid rgba(111, 25, 32, 0.24) !important;
  border-radius: 12px;
  background: #fffaf6 !important;
  color: #26191a !important;
  opacity: 1 !important;
  filter: none !important;
}

.rl-form-placeholder strong,
.rl-review-proof strong {
  color: #6f1920;
  font-size: clamp(1.2rem, 2vw, 1.75rem);
}

.rl-form-placeholder span,
.rl-review-proof span {
  color: #5b4a4b;
}

.rl-review-proof a {
  color: #6f1920;
  font-weight: 700;
  text-decoration: underline;
}

.body_wrapper.inside [data-ti-widget],
.body_wrapper.inside [data-ti-feed-widget],
.body_wrapper.inside .ti-widget-container,
.body_wrapper.inside .ti-widget {
  display: none !important;
}

@media (max-width: 767px) {
  .elementor-element-6354294 .elementor-heading-title {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
  }
}

body .elementor-17 .elementor-element.elementor-element-d0f98de,
body .elementor-17 .elementor-element.elementor-element-d0f98de:not(.e-lazyloaded) {
  background-image: linear-gradient(rgba(0, 33, 48, 0.64), rgba(0, 33, 48, 0.64)),
    url("/images/red-llama-moving/moving-truck-ramp-at-suburban-home.webp") !important;
  background-position: center 54% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

.elementor-17 .rl-proof-icon {
  display: block;
  width: auto;
  height: auto;
  font-size: 2.35rem;
  line-height: 1;
  color: #fe001a;
}

.elementor-17 [data-id="7438fff2"],
.elementor-17 [data-id="5a16b6fb"],
.elementor-17 [data-id="3c9d4348"],
.elementor-17 [data-id="6b04a9fc"] {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.8rem !important;
  min-height: 126px;
  text-align: center !important;
}

.elementor-17 [data-id="15f4d92d"],
.elementor-17 [data-id="d7fd6d1"],
.elementor-17 [data-id="48010b92"],
.elementor-17 [data-id="2a5e82f3"] {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.elementor-17 [data-id="15f4d92d"] .elementor-icon-wrapper,
.elementor-17 [data-id="d7fd6d1"] .elementor-icon-wrapper,
.elementor-17 [data-id="48010b92"] .elementor-icon-wrapper,
.elementor-17 [data-id="2a5e82f3"] .elementor-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  min-height: 42px;
}

.elementor-17 [data-id="2eb07f32"],
.elementor-17 [data-id="2ea362e"],
.elementor-17 [data-id="2702ae72"],
.elementor-17 [data-id="25e933b"] {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  margin: 0 !important;
  text-align: center !important;
}

/* Restore the native moving-day artwork in the homepage Mission section. This
   exact full-width Elementor slot was carrying the image before the last
   correction and must not fall back to a blank solid field. */
body .elementor-17 .elementor-element.elementor-element-a610b47.e-con.e-parent,
body .elementor-17 .elementor-element.elementor-element-a610b47.e-con.e-parent:not(.e-lazyloaded) {
  background-image: linear-gradient(90deg, rgba(17, 17, 17, 0.22), rgba(17, 17, 17, 0.42)), url("/images/red-llama-moving/red-llama-movers-protecting-wrapped-furniture.webp") !important;
  background-position: center 42% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

/* The captured hero used 350px of empty top padding. Keep the slider below the
   desktop header, but tighten the space around the actual hero content. */
.elementor-element.elementor-element-70b8cd3 > .e-con-inner {
  padding-top: 130px !important;
  padding-bottom: 80px !important;
}

/* Marketing-page review widgets route into the first-party Reviews page. */
.rl-review-widget-link {
  position: relative;
  display: block;
}

/* About: preserve native captured sections. The split panes, traditional-touch
   section, and final quote CTA receive client photography in their existing
   template containers, never appended beneath copy. */
body.elementor-page-510 [data-rl-about-slot] {
  background-repeat: no-repeat !important;
  background-size: cover !important;
}
body.elementor-page-510 [data-rl-about-slot="a610b47"],
body.elementor-page-510 [data-rl-about-slot="d0f98de"] {
  isolation: isolate;
  position: relative;
}
body.elementor-page-510 [data-rl-about-slot="a610b47"]::before,
body.elementor-page-510 [data-rl-about-slot="d0f98de"]::before {
  background: linear-gradient(105deg, rgba(13, 20, 26, .84), rgba(13, 20, 26, .56));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
body.elementor-page-510 [data-rl-about-slot="a610b47"] > .e-con-inner,
body.elementor-page-510 [data-rl-about-slot="d0f98de"] > .e-con-inner {
  position: relative;
  z-index: 1;
}
body.elementor-page-510 [data-rl-about-slot="a610b47"] .elementor-heading-title,
body.elementor-page-510 [data-rl-about-slot="a610b47"] .elementor-widget-text-editor,
body.elementor-page-510 [data-rl-about-slot="a610b47"] p {
  color: #fff !important;
}
body.elementor-page-510 [data-rl-about-slot="d0f98de"] .elementor-heading-title,
body.elementor-page-510 [data-rl-about-slot="d0f98de"] .elementor-widget-text-editor,
body.elementor-page-510 [data-rl-about-slot="d0f98de"] p {
  color: #fff !important;
}

/* About: on desktop, let the first split-image pane stretch to the paired copy
   column rather than forcing the captured 529px minimum height. Phone layout
   stacks the image ahead of the copy, so it retains its deliberate crop. */
@media (min-width: 768px) {
  .elementor-510 .elementor-element.elementor-element-f3397c1 {
    --min-height: 0px !important;
    align-self: stretch !important;
    min-height: 0 !important;
  }
  .elementor-510 .elementor-element.elementor-element-5efcfaf {
    margin-bottom: 0 !important;
  }
}

/* The captured About copy wrapper is calculated against the 390px visual
   viewport instead of the 375px document viewport when a vertical scrollbar
   is present. Keep this one stack inside the actual phone content width. */
@media (max-width: 767px) {
  .elementor-510 .elementor-element.elementor-element-69bb258 > .e-con-inner {
    width: calc(100% - 15px) !important;
  }
}

/* About: the mission copy sits directly over the approved moving-day photo.
   Keep the child container transparent so it does not cut a white rectangle
   through the parent background. The following empty transition remains white. */
.elementor-510 .elementor-element.elementor-element-02d8cc0,
.elementor-510 .elementor-element.elementor-element-02d8cc0:not(.elementor-motion-effects-element-type-background) {
  background-color: transparent !important;
}
body.elementor-page-510 .elementor-element.elementor-element-fabf746 {
  background-color: #fff !important;
}
body.elementor-page-510 [data-rl-about-slot="a610b47"] {
  padding-top: clamp(72px, 10vw, 150px) !important;
  /* The transparent copy card must remain entirely inside the photo field. */
  padding-bottom: clamp(64px, 6vw, 96px) !important;
}

/* Long Distance: the captured one-crew feature needs a clearly visible photo
   field above its native white copy card. This is route-specific so the same
   Elementor section on other captured pages keeps its existing geometry. */
body.elementor-page-727 [data-rl-long-distance-feature="true"] {
  padding-top: clamp(224px, 16vw, 260px) !important;
}
@media (max-width: 767px) {
  body.elementor-page-727 [data-rl-long-distance-feature="true"] {
    padding-top: 240px !important;
  }
}

/* The route-specific photo belongs on a610b47, the captured background-ready
   intro section containing "Packing and moving work...". The process section
   is an image-free information grid. Keep this scoped to service routes so
   unrelated captured area-page sections retain their own approved treatment. */
body .elementor-element.elementor-element[data-rl-section="intro"] {
  background-repeat: no-repeat !important;
  background-size: cover !important;
  isolation: isolate;
  position: relative;
}
/* Give the route image field another 150px above the overlapping copy card.
   Long Distance already has its deeper approved one-crew photo field. */
body .elementor-element.elementor-element[data-rl-section="intro"]:not([data-rl-long-distance-feature="true"]) {
  padding-top: 150px !important;
}
body .elementor-element.elementor-element[data-rl-service-process="true"] {
  background-color: transparent !important;
  background-image: none !important;
}
body .elementor-element.elementor-element[data-rl-section="cta"],
body .elementor-element.elementor-element[data-rl-section="card"] {
  isolation: isolate;
  position: relative;
  background-image: linear-gradient(110deg, rgba(14, 19, 24, .95), rgba(14, 19, 24, .78)), var(--rl-section-image) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}
[data-rl-section="intro"] .e-con-inner,
[data-rl-section="process"] .e-con-inner,
[data-rl-section="cta"] .e-con-inner { position: relative; z-index: 1; }
[data-rl-section="process"] > .e-con-inner > .elementor-widget-heading .elementor-heading-title {
  color: #142c42 !important;
  text-align: left !important;
}
[data-rl-section="process"] .elementor-widget-divider .elementor-divider { text-align: left !important; }
[data-rl-section="process"] .elementor-widget-divider .elementor-divider-separator {
  background-color: #fe001a !important;
  border-color: #fe001a !important;
  border-top-width: 3px !important;
  height: 3px !important;
  width: 52px !important;
}
[data-rl-section="process"] [data-rlm-process-card] {
  align-content: flex-start !important;
  background: #f2f4f5 !important;
  border-radius: 18px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-height: 300px;
  padding: 32px 28px 36px !important;
}
[data-rl-section="process"] [data-rlm-process-card] .elementor-widget-heading,
[data-rl-section="process"] [data-rlm-process-card] .elementor-widget-text-editor {
  margin: 0 !important;
  width: 100% !important;
}
[data-rl-section="process"] [data-rlm-process-card] .elementor-heading-title {
  color: #142c42 !important;
  text-align: left !important;
}
[data-rl-section="process"] [data-rlm-process-card] .elementor-widget-text-editor,
[data-rl-section="process"] [data-rlm-process-card] p {
  color: #405367 !important;
  text-align: left !important;
}
[data-rl-section="cta"] .elementor-heading-title,
[data-rl-section="cta"] .elementor-widget-text-editor,
[data-rl-section="cta"] p { color: #fff; text-align: left !important; }

/* Contact's closing CTA uses the road-side truck photo. The desktop crop holds
   the truck to the right of the copy, while the narrow crop keeps the branded
   cab in view without letting the pale sky wash out the text panel. */
body.elementor-page-681 [data-rl-contact-cta="true"] {
  background-position: 52% 54% !important;
}
/* Keep the contact hero's copy in the open upper-left sky while preserving the
   crew and protected load as the visual proof on the right. */
body.elementor-page-681 [data-rl-contact-hero="true"] {
  background-position: center 36% !important;
}
[data-rl-section="process"] .rlm-process-title {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 18px;
  line-height: 1.12;
}
[data-rl-section="process"] .rlm-process-title small {
  color: #405367;
  display: inline;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: normal;
  margin-right: .25em;
}
[data-rl-section="process"] .rlm-process-icon {
  color: #fe001a;
  display: block;
  font-size: 2.45rem;
  line-height: 1;
  min-height: 39px;
}
[data-rl-section="process"] .elementor-widget-text-editor p { max-width: 32ch; }
@media (max-width: 767px) {
  [data-rl-section="cta"] { background-position: center center !important; }
  body.elementor-page-681 [data-rl-contact-cta="true"] { background-position: 64% 54% !important; }
  body.elementor-page-681 [data-rl-contact-hero="true"] { background-position: 54% 32% !important; }
  [data-rl-section="process"] [data-rlm-process-card] {
    min-height: 0;
    padding: 28px 24px 30px !important;
  }
  [data-rl-section="process"] .rlm-process-title { gap: 14px; }
  [data-rl-section="process"] .rlm-process-icon { font-size: 2.2rem; min-height: 35px; }
}
@media (max-width: 374px) {
  /* Keep the four factual counter labels balanced in the 2×2 phone grid. */
  body.elementor-page-681 [data-rl-contact-stat] h3 {
    font-size: 14px !important;
    line-height: 1.25 !important;
  }
}
.rl-review-widget-link .rl-review-widget-overlay {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: block;
  border-radius: inherit;
}
.rl-review-widget-link .rl-review-widget-overlay:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}
.rl-review-widget-live {
  min-height: 120px;
  margin-top: 28px;
}
@media (max-width: 1024px) {
  .elementor-element.elementor-element-70b8cd3 > .e-con-inner {
    padding-top: 100px !important;
    padding-bottom: 70px !important;
  }
}
@media (max-width: 767px) {
  .elementor-element.elementor-element-70b8cd3 > .e-con-inner {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
  }
}

/* Preserve the intended focal point of each approved original hero photo. */
body .elementor-17 .elementor-background-slideshow__slide__image[style*="20230401_181302.jpg"] {
  background-position: center 55% !important;
}

body .elementor-17 .elementor-background-slideshow__slide__image[style*="20240219_123025.jpg"] {
  background-position: center 50% !important;
}

body .elementor-17 .elementor-background-slideshow__slide__image[style*="20240219_120241.jpg"] {
  background-position: center 38% !important;
}

@media (max-width: 767px) {
  body .elementor-17 .elementor-background-slideshow__slide__image[style*="20230401_181302.jpg"],
  body .elementor-17 .elementor-background-slideshow__slide__image[style*="20240219_123025.jpg"] {
    background-position: center 50% !important;
  }

  body .elementor-17 .elementor-background-slideshow__slide__image[style*="20240219_120241.jpg"] {
    background-position: center 40% !important;
  }
}

.elementor-location-header .wpr-logo-image img[src*="red-llama-moving-logo.png"] {
  width: 94px !important;
  height: 94px !important;
  max-width: none !important;
  object-fit: contain;
}

.elementor-location-footer .wpr-logo-image img[src*="red-llama-moving-logo.png"] {
  width: 146px !important;
  height: 146px !important;
  max-width: 100% !important;
  object-fit: contain;
}

@media (max-width: 767px) {
  .elementor-location-header .wpr-logo-image img[src*="red-llama-moving-logo.png"] {
    width: 70px !important;
    height: 70px !important;
  }
}

/* Moving-company template: retain the approved service-page composition
   while applying Red Llama photography and preview locks. */
body.rl-moving-company-template a[data-preview-internal-disabled="true"] {
  pointer-events: none !important;
  cursor: default !important;
}

body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-bff8c03,
body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-bff8c03:not(.e-lazyloaded) {
  background-image: linear-gradient(90deg, rgba(14, 19, 24, 0.82), rgba(14, 19, 24, 0.46)),
    url("/images/red-llama-moving/moving-truck-ramp-at-suburban-home.webp") !important;
  background-position: center 52% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-f3445f1,
body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-f3445f1:not(.e-lazyloaded) {
  background-image: linear-gradient(90deg, rgba(20, 16, 16, 0.82), rgba(20, 16, 16, 0.42)),
    url("/images/red-llama-moving/red-llama-moving-crew-with-boxes-and-dolly.webp") !important;
  background-position: center 46% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-d0f98de,
body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-d0f98de:not(.e-lazyloaded) {
  background-image: linear-gradient(rgba(0, 33, 48, 0.66), rgba(0, 33, 48, 0.66)),
    url("/images/red-llama-moving/red-llama-truck-loading-ramp-at-home.webp") !important;
  background-position: center 52% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

body.rl-moving-company-template .elementor-619 [data-id="4b4cf09c"] .elementor-widget-image img {
  display: block;
  width: 100% !important;
  aspect-ratio: 4 / 5;
  object-fit: cover !important;
}

body.rl-moving-company-template .elementor-619 [data-id="4b4cf09c"] .elementor-widget-text-editor ul {
  margin-left: 1.1rem;
}

body.rl-moving-company-template .elementor-619 [data-id="4b4cf09c"] .elementor-widget-text-editor li {
  margin-bottom: 0.35rem;
}

/* Reviews is a simple live-review surface: no inherited gallery/card spacing,
   no constrained column, and only the requested 50px vertical / 20px side pad. */
body.elementor-page-624 .rl-reviews-widget-section {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 50px 20px;
  background: #fff;
}

@media (max-width: 767px) {
  body.rl-moving-company-template {
    overflow-x: hidden !important;
  }

  body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-bff8c03,
  body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-bff8c03:not(.e-lazyloaded) {
    background-position: 58% center !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="bff8c03"] > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 20px !important;
    padding-left: 20px !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="acab382"],
  body.rl-moving-company-template .elementor-619 [data-id="acab382"] .elementor-widget-container,
  body.rl-moving-company-template .elementor-619 [data-id="acab382"] .elementor-heading-title {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="acab382"] .elementor-heading-title {
    font-size: clamp(2.35rem, 10.75vw, 3rem) !important;
    line-height: 0.98 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="121e38c"],
  body.rl-moving-company-template .elementor-619 [data-id="c33384b"] {
    position: relative !important;
    inset: auto !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0.25rem 0 0 !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="121e38c"] .elementor-button,
  body.rl-moving-company-template .elementor-619 [data-id="c33384b"] .elementor-button {
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="534dcf4b"] > .e-con-inner,
  body.rl-moving-company-template .elementor-619 [data-id="610eb7c5"],
  body.rl-moving-company-template .elementor-619 [data-id="34c7c605"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="534dcf4b"] > .e-con-inner {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }

  body.rl-moving-company-template .elementor-619 [data-id="610eb7c5"] .elementor-heading-title,
  body.rl-moving-company-template .elementor-619 [data-id="34c7c605"] {
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }

  body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-f3445f1,
  body.rl-moving-company-template .elementor-619 .elementor-element.elementor-element-f3445f1:not(.e-lazyloaded) {
    background-position: 56% center !important;
  }
}

.rl-footer-address {
  color: #26191a;
  font-size: 14px;
  line-height: 1.5;
  margin-top: 10px;
}

/* The Service Areas hub lists approved towns in priority order, each linking
   out to its own town page. Preserve the captured grid while giving each
   entry a deliberate, contained card treatment. */
.elementor-584 .elementor-element.elementor-element-e501aba > [data-rl-service-area-card] {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
  padding: 28px 24px;
  border: 1px solid rgba(37, 37, 37, 0.14);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(37, 37, 37, 0.05);
  justify-content: flex-start;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.elementor-584 .elementor-element.elementor-element-e501aba > [data-rl-service-area-card]:hover {
  box-shadow: 0 10px 24px rgba(37, 37, 37, 0.1);
  transform: translateY(-2px);
  border-color: rgba(37, 37, 37, 0.26);
}
.elementor-584 .elementor-element.elementor-element-e501aba > [data-rl-service-area-card] .elementor-heading-title {
  margin: 0;
}
.elementor-584 .elementor-element.elementor-element-e501aba > [data-rl-service-area-card] .rl-area-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  color: #fe001a;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
}
.elementor-584 .elementor-element.elementor-element-e501aba > [data-rl-service-area-card] .rl-area-card-arrow {
  transition: transform 0.2s ease;
}
.elementor-584 .elementor-element.elementor-element-e501aba > [data-rl-service-area-card] .rl-area-card-link:hover .rl-area-card-arrow {
  transform: translateX(3px);
}

/* Moving-services cards: space the heading, copy, and CTA inside every card.
   These rules intentionally do not touch the card grid or column gap. */
.elementor-element-4b4cf09c > .e-con.e-child .elementor-widget-heading {
  padding-bottom: 10px !important;
}
.elementor-element-4b4cf09c > .e-con.e-child .elementor-widget-text-editor {
  padding-bottom: 18px !important;
}
.elementor-986 .elementor-element-4b4cf09c > .e-con.e-child .elementor-heading-title {
  margin-bottom: 10px;
}
.elementor-986 .elementor-element-4b4cf09c > .e-con.e-child .elementor-widget-text-editor {
  margin-bottom: 18px;
}

/* Area page trust card (a610b47): the outer container had no top padding, so
   almost none of the background photo was visible above the white card. */
.elementor-986 .elementor-element-a610b47 {
  padding-top: 64px;
}

/* Area page: several captured text blocks default to text-align: justify,
   which stretches word spacing unevenly, especially in narrow cards. Left-align
   everywhere on this template family. */
.elementor-986 .elementor-element.elementor-element-5352fb4,
.elementor-986 .elementor-element.elementor-element-2f033e6,
.elementor-986 .elementor-element.elementor-element-582e2cf,
.elementor-986 .elementor-element.elementor-element-a86a9a8,
.elementor-986 .elementor-element.elementor-element-c050ca4,
.elementor-986 .elementor-element.elementor-element-cc145c6,
.elementor-986 .elementor-element.elementor-element-1648225 {
  text-align: left;
}
.elementor-986 .elementor-element.elementor-element-5352fb4 ul,
.elementor-986 .elementor-element.elementor-element-2f033e6 ul {
  margin: 12px 0;
  padding-left: 20px;
}
.elementor-986 .elementor-element.elementor-element-5352fb4 li,
.elementor-986 .elementor-element.elementor-element-2f033e6 li {
  margin-bottom: 8px;
}

/* Long-distance planning now uses seven equal sentence modules instead of a
   mixed list and unrelated text fragments. */
body.elementor-page-619 [data-rl-planning-detail] {
  margin: 0 !important;
}
body.elementor-page-619 [data-rl-planning-detail] .elementor-widget-container {
  border-left: 3px solid #fe001a;
  min-height: 100%;
  padding-left: 18px;
}
body.elementor-page-619 [data-rl-planning-detail] p {
  margin: 0 !important;
  max-width: 35ch;
}