:root {
  --vanstory-ink: #070c15;
  --vanstory-navy: #0b1526;
  --vanstory-navy-2: #101d33;
  --vanstory-gold: #d1a14a;
  --vanstory-gold-bright: #efc66f;
  --vanstory-text: #f4f6f8;
  --vanstory-muted: #aeb8c7;
  --vanstory-line: rgba(255, 255, 255, 0.11);
  --vanstory-radius: 18px;
  --vanstory-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

html {
  background: var(--vanstory-ink);
  overflow-x: hidden;
}

body {
  background: var(--vanstory-ink) !important;
  color: var(--vanstory-text);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

body p,
body .elementor-widget-text-editor {
  line-height: 1.72;
}

body h1,
body h2,
body h3,
body h4,
body .elementskit-section-title {
  text-wrap: balance;
}

body a,
body button {
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

body a:focus-visible,
body button:focus-visible {
  outline: 3px solid var(--vanstory-gold-bright) !important;
  outline-offset: 4px;
}

/* Header */
.elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: rgba(5, 9, 16, 0.94);
  border-bottom: 1px solid rgba(209, 161, 74, 0.22);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.elementor-location-header .elementor-element-424a9a8c {
  background: transparent !important;
}

.elementor-location-header .elementskit-navbar-nav > li > a {
  position: relative;
  color: #e7ebf0 !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
}

.elementor-location-header .elementskit-navbar-nav > li > a:hover,
.elementor-location-header .elementskit-navbar-nav > li.current-menu-item > a,
.elementor-location-header .elementskit-navbar-nav > li.current_page_item > a {
  color: var(--vanstory-gold-bright) !important;
}

.elementor-location-header .elementskit-navbar-nav > li:last-child > a {
  min-height: 44px;
  padding: 10px 18px !important;
  border: 1px solid transparent;
  border-radius: 999px;
}

.elementor-location-header .elementskit-navbar-nav > li:last-child > a:hover {
  color: #08101d !important;
  background: var(--vanstory-gold);
  border-color: var(--vanstory-gold);
  transform: translateY(-1px);
}

.elementor-location-header .elementor-element-532ad62 {
  display: none !important;
}

.elementor-location-header .elementskit-dropdown,
.elementor-location-header .elementskit-submenu-panel {
  padding: 10px !important;
  background: #0d1829 !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: 14px !important;
  box-shadow: var(--vanstory-shadow) !important;
}

.elementor-location-header .elementskit-submenu-panel a {
  border-radius: 9px;
}

/* Buttons */
.jkit-button-wrapper,
.elementor-button,
button[type="submit"],
input[type="submit"] {
  min-height: 50px;
  border-radius: 999px !important;
  font-weight: 600 !important;
  box-shadow: 0 12px 26px rgba(209, 161, 74, 0.16);
}

.jkit-button-wrapper:hover,
.elementor-button:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(209, 161, 74, 0.24);
}

/* Homepage hero */
.home .elementor-element-187bb29d {
  position: relative;
  isolation: isolate;
  min-height: 760px;
  overflow: hidden;
  background-position: center center !important;
  background-size: cover !important;
}

.home .elementor-element-187bb29d::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  background:
    radial-gradient(circle at 76% 26%, rgba(209, 161, 74, 0.14), transparent 30%),
    linear-gradient(90deg, rgba(5, 9, 16, 0.98) 0%, rgba(5, 9, 16, 0.9) 48%, rgba(5, 9, 16, 0.72) 100%);
}

.home .elementor-element-187bb29d > .e-con-inner {
  width: min(1280px, calc(100% - 48px)) !important;
  min-height: 760px;
  padding: 82px 0 64px !important;
}

.home .elementor-element-5a716d4d {
  gap: clamp(38px, 5vw, 76px) !important;
  align-items: stretch !important;
}

.home .elementor-element-421cc620 {
  width: 65% !important;
  justify-content: center !important;
}

.home .elementor-element-38d9c5a2 {
  justify-content: center !important;
  gap: 24px !important;
}

.home .elementor-element-514dccf4 h1 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(3.35rem, 5.1vw, 5.15rem) !important;
  font-weight: 600 !important;
  line-height: 1.01 !important;
  letter-spacing: -0.038em !important;
}

.home .elementor-element-38d9c5a2 .elementor-icon-list-text {
  color: var(--vanstory-gold-bright) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.home .elementor-element-38d9c5a2 .elementor-widget-text-editor {
  max-width: 680px;
  color: #cbd3df !important;
  font-size: 18px !important;
  line-height: 1.7 !important;
}

.home .elementor-element-1043bd0d {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px !important;
  margin-top: 30px;
}

.home .elementor-element-1043bd0d > .e-con {
  width: 100% !important;
  min-height: 0 !important;
  padding: 22px 24px !important;
  background: rgba(16, 29, 51, 0.82) !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: var(--vanstory-radius) !important;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(10px);
}

.home .elementor-element-1043bd0d .elementor-counter-number-wrapper {
  color: var(--vanstory-gold-bright) !important;
  font-size: 2.2rem !important;
}

.home .elementor-element-1043bd0d .elementor-counter-title {
  color: #cbd3df !important;
  font-size: 14px !important;
}

.home .elementor-element-7e643e6a {
  width: 35% !important;
  min-height: 0 !important;
  align-self: center;
  padding: 38px 32px !important;
  background: rgba(13, 24, 41, 0.82) !important;
  border: 1px solid rgba(209, 161, 74, 0.25) !important;
  border-radius: 24px !important;
  box-shadow: var(--vanstory-shadow);
  backdrop-filter: blur(14px);
}

.home .elementor-element-7e643e6a img {
  width: min(100%, 260px) !important;
  border-radius: 8px;
}

.home .elementor-element-7e643e6a h2 {
  color: var(--vanstory-text) !important;
  font-family: Roboto, sans-serif !important;
  font-size: 21px !important;
  font-weight: 500 !important;
  line-height: 1.48 !important;
}

.floating-img {
  display: none !important;
}

/* Homepage section rhythm */
.home [data-elementor-type="wp-page"] > .e-con:not(.elementor-element-187bb29d) {
  min-height: 0 !important;
  padding: clamp(76px, 8vw, 112px) 24px !important;
}

.home [data-elementor-type="wp-page"] > .e-con:not(.elementor-element-187bb29d) > .e-con-inner {
  width: min(1180px, 100%) !important;
  min-height: 0 !important;
}

.home .elementor-element-8407a7c,
.home .elementor-element-78a01d8a,
.home .elementor-element-781fd5f2 {
  background: var(--vanstory-navy) !important;
}

.home .elementor-element-8407a7c > .e-con-inner {
  gap: clamp(42px, 6vw, 76px) !important;
  align-items: center !important;
}

.home .elementor-element-6ec877ff {
  position: relative;
  width: 46% !important;
  min-height: 650px !important;
}

.home .elementor-element-f3acf14 {
  width: 54% !important;
  min-height: 0 !important;
}

.home .elementor-element-1812b8c9 {
  width: 100% !important;
  min-height: 650px !important;
  overflow: hidden;
  background-position: center !important;
  background-size: cover !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: 24px !important;
  box-shadow: var(--vanstory-shadow);
}

.home .elementor-element-7ed05714 {
  display: none !important;
}

.home .elementor-element-65294d1b {
  position: absolute;
  right: -22px;
  bottom: 30px;
  z-index: 2;
  width: 190px !important;
  min-height: 0 !important;
  padding: 22px !important;
  background: var(--vanstory-gold) !important;
  border-radius: 16px !important;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
}

.home .elementor-element-65294d1b .e-con {
  min-height: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.home .elementor-element-71ce2499 {
  gap: 14px !important;
}

.home .elementor-element-71ce2499 > .e-con {
  min-height: 0 !important;
  padding: 22px !important;
  background: rgba(255, 255, 255, 0.035) !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: 14px !important;
}

.home .elementor-element-ad4ac24,
.home .elementor-element-ee7ba94 {
  background: var(--vanstory-ink) !important;
}

.home .elementor-element-132ba872 {
  padding-block: 54px !important;
  background: linear-gradient(110deg, #b8832f, #e1b65c) !important;
}

.home .elementor-element-132ba872,
.home .elementor-element-132ba872 * {
  color: #07101c !important;
}

.home .elementor-element-4bb69ef8 > .e-con {
  min-height: 0 !important;
  padding: 28px 22px !important;
  background: rgba(255, 255, 255, 0.2) !important;
  border: 1px solid rgba(7, 16, 28, 0.2) !important;
  border-radius: var(--vanstory-radius) !important;
  box-shadow: none !important;
}

.home .elementor-element-132ba872 .elementor-counter-number-wrapper {
  font-size: clamp(2.6rem, 5vw, 4.2rem) !important;
  font-weight: 700 !important;
}

.home .elementor-element-5aecb205 {
  background:
    radial-gradient(circle at 90% 10%, rgba(209, 161, 74, 0.1), transparent 28%),
    var(--vanstory-navy-2) !important;
}

.home .elementor-element-622a37a9 {
  min-height: 0 !important;
  margin-bottom: 46px;
  align-items: end !important;
}

.home .elementor-element-5834411e {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.home .elementor-element-5834411e > .e-con {
  width: 100% !important;
  min-height: 330px !important;
  padding: 30px !important;
  background: rgba(7, 12, 21, 0.62) !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: var(--vanstory-radius) !important;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.16);
}

.home .elementor-element-5834411e > .e-con:hover {
  transform: translateY(-5px);
  border-color: rgba(209, 161, 74, 0.48) !important;
  box-shadow: var(--vanstory-shadow);
}

.home .elementor-element-5834411e > .e-con > .elementor-absolute .elementor-heading-title {
  color: rgba(209, 161, 74, 0.34) !important;
  font-size: 3rem !important;
}

.home .elementor-element-5834411e h3,
.home .elementor-element-5834411e h4 {
  color: var(--vanstory-text) !important;
}

.home .elementor-element-ee7ba94 .swiper-slide,
.home .elementor-element-ee7ba94 .elementskit-commentor-content {
  background: var(--vanstory-navy) !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: var(--vanstory-radius) !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.18);
}

.home .elementor-element-781fd5f2 .elementskit-card {
  overflow: hidden;
  margin-bottom: 10px !important;
  background: rgba(255, 255, 255, 0.035) !important;
  border: 1px solid var(--vanstory-line) !important;
  border-radius: 14px !important;
}

.home .elementor-element-781fd5f2 .elementskit-card-header {
  padding: 20px 22px !important;
}

.home .elementor-element-781fd5f2 .elementskit-card-body {
  color: var(--vanstory-muted) !important;
  padding: 0 22px 22px !important;
}

/* Interior pages */
body:not(.home) [data-elementor-type="wp-page"] > .e-con {
  border-color: var(--vanstory-line);
}

body:not(.home) [data-elementor-type="wp-page"] h1 {
  letter-spacing: -0.035em !important;
}

body:not(.home) .elementor-widget-text-editor {
  color: #c7d0dc;
}

/* Blog articles: comfortable reading width and clear breaks between topics. */
.single-post .elementor-location-single .elementor-widget-theme-post-content,
.single-post .elementor-location-single .elementor-element-17eae28 {
  width: 100%;
  max-width: 780px !important;
  margin-inline: auto !important;
}

.single-post .elementor-location-single .elementor-element-17eae28 {
  margin-top: 28px;
  margin-bottom: 12px;
}

.single-post .elementor-location-single .elementor-widget-theme-post-content {
  font-size: 18px;
}

.single-post .elementor-widget-theme-post-content p {
  margin: 0 0 1.5rem;
  line-height: 1.85;
}

.single-post .elementor-widget-theme-post-content h2 {
  margin: clamp(2.75rem, 5vw, 4rem) 0 1.25rem;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1.25;
}

.single-post .elementor-widget-theme-post-content .vanstory-faq-question {
  margin: 2.25rem 0 0.75rem;
  font-family: Roboto, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.55;
}

.single-post .elementor-widget-theme-post-content h2 + .vanstory-faq-question {
  margin-top: 0;
}

.single-post .elementor-widget-theme-post-content > :last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .single-post .elementor-location-single .elementor-element-7cd536e {
    padding-inline: 24px;
  }

  .single-post .elementor-location-single .elementor-widget-theme-post-content {
    font-size: 17px;
  }
}

/* Portfolio images remain visible without the former WordPress gallery runtime. */
.vanstory-portfolio-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.vanstory-portfolio-link {
  display: block;
  overflow: hidden;
  border: 1px solid var(--vanstory-line);
  border-radius: 12px;
}

.vanstory-portfolio-link img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

@media (max-width: 1024px) {
  .vanstory-portfolio-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .vanstory-portfolio-gallery {
    grid-template-columns: 1fr;
  }
}

/* Forms */
input:not([type="submit"]),
select,
textarea {
  min-height: 52px;
  color: var(--vanstory-text) !important;
  background: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 10px !important;
}

textarea {
  min-height: 140px;
}

input:not([type="submit"]):focus,
select:focus,
textarea:focus {
  border-color: var(--vanstory-gold) !important;
  box-shadow: 0 0 0 3px rgba(209, 161, 74, 0.16) !important;
  outline: none !important;
}

/* Footer */
.elementor-location-footer {
  background: #050910 !important;
  border-top: 1px solid rgba(209, 161, 74, 0.2);
}

.elementor-location-footer a:hover {
  color: var(--vanstory-gold-bright) !important;
}

.ekit-main-swiper,
.elementskit-testimonial-slider {
  max-width: 100% !important;
  overflow: hidden !important;
}

@media (min-width: 1025px) {
  .elementor-location-header .elementor-element-424a9a8c,
  .elementor-location-header .elementor-element-f6302bc,
  .elementor-location-header .elementor-element-25fd5d50 {
    height: 98px !important;
    min-height: 98px !important;
  }

  .elementor-location-header .elementor-element-25fd5d50 {
    width: 205px !important;
    flex: 0 0 205px !important;
  }

  .elementor-location-header .elementor-element-29befa06,
  .elementor-location-header .elementor-element-29befa06 img {
    width: 190px !important;
  }

  .elementor-location-header .elementor-element-29befa06 img {
    height: 72px !important;
  }

  .elementor-location-header .elementor-element-532ad62 h2 {
    color: #aeb7c5 !important;
    font-family: Roboto, sans-serif !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .elementor-location-header .elementskit-navbar-nav {
    gap: clamp(12px, 1.25vw, 24px);
  }
}

@media (max-width: 1024px) {
  .elementor-location-header {
    min-height: 82px;
  }

  .elementor-location-header .elementskit-menu-container {
    width: min(88vw, 360px) !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    padding: 88px 24px 30px !important;
    display: block !important;
    overflow-y: auto !important;
    background: #f7f8fa !important;
    box-shadow: 24px 0 70px rgba(0, 0, 0, 0.32);
  }

  .elementor-location-header .elementskit-navbar-nav {
    height: auto !important;
    min-height: 0 !important;
  }

  .elementor-location-header .elementskit-navbar-nav > li > a {
    color: #172033 !important;
  }

  .elementor-location-header .elementskit-navbar-nav > li > a:hover,
  .elementor-location-header .elementskit-navbar-nav > li.current-menu-item > a,
  .elementor-location-header .elementskit-navbar-nav > li.current_page_item > a {
    color: #a36f16 !important;
  }

  .elementor-location-header .elementskit-nav-identity-panel {
    position: static !important;
  }

  .elementor-location-header .elementskit-menu-close {
    position: absolute !important;
    top: 22px !important;
    right: 22px !important;
    margin: 0 !important;
  }

  .elementor-location-header .elementskit-navbar-nav > li:last-child > a {
    display: inline-flex !important;
    margin-top: 12px;
    color: #0b1526 !important;
    background: var(--vanstory-gold);
  }

  .home .elementor-element-187bb29d,
  .home .elementor-element-187bb29d > .e-con-inner {
    min-height: 0;
  }

  .home .elementor-element-187bb29d > .e-con-inner {
    width: min(100% - 40px, 720px) !important;
    padding: 72px 0 64px !important;
  }

  .home .elementor-element-5a716d4d {
    flex-direction: column !important;
    gap: 32px !important;
  }

  .home .elementor-element-421cc620,
  .home .elementor-element-7e643e6a {
    width: 100% !important;
  }

  .home .elementor-element-8407a7c > .e-con-inner {
    flex-direction: column !important;
  }

  .home .elementor-element-6ec877ff,
  .home .elementor-element-f3acf14 {
    width: 100% !important;
  }

  .home .elementor-element-6ec877ff,
  .home .elementor-element-1812b8c9 {
    min-height: 520px !important;
  }

  .home .elementor-element-421cc620 {
    align-items: stretch !important;
  }

  .home .elementor-element-514dccf4 h1 {
    font-size: clamp(2.65rem, 8.6vw, 4.2rem) !important;
  }

  .home .elementor-element-7e643e6a {
    padding: 28px 24px !important;
  }

  .home .elementor-element-5834411e {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .home .elementor-element-187bb29d::before {
    background: linear-gradient(180deg, rgba(5, 9, 16, 0.94), rgba(5, 9, 16, 0.84));
  }

  .home .elementor-element-38d9c5a2 {
    gap: 18px !important;
    text-align: left !important;
  }

  .home .elementor-element-38d9c5a2 .ekit-heading,
  .home .elementor-element-38d9c5a2 .elementor-widget-text-editor {
    text-align: left !important;
  }

  .home .elementor-element-38d9c5a2 .elementor-widget-text-editor {
    font-size: 16px !important;
  }

  .home .elementor-element-1043bd0d {
    display: none !important;
  }

  .home [data-elementor-type="wp-page"] > .e-con:not(.elementor-element-187bb29d) {
    padding: 64px 20px !important;
  }

  .home .elementor-element-132ba872 {
    padding-block: 42px !important;
  }

  .home .elementor-element-622a37a9 {
    margin-bottom: 30px;
  }

  .home .elementor-element-5834411e {
    grid-template-columns: 1fr !important;
  }

  .home .elementor-element-5834411e > .e-con {
    min-height: 0 !important;
    padding: 26px !important;
  }

  .ekit-main-swiper .swiper-wrapper {
    gap: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body a,
  body button,
  .home .elementor-element-5834411e > .e-con {
    transition: none !important;
  }
}

.vanstory-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.vanstory-form-status {
  margin-top: 16px !important;
  padding: 13px 15px;
  border: 1px solid rgba(202, 151, 51, 0.34);
  border-radius: 5px;
  color: #172033;
  background: #f8f5ec;
  font-family: Roboto, sans-serif;
  font-weight: 600;
  line-height: 1.45;
}

.vanstory-form-status[data-state="success"] {
  border-color: #94c9a9;
  color: #175f35;
  background: #edf8f1;
}

.vanstory-form-status[data-state="error"] {
  border-color: #e3a2a2;
  color: #8b2020;
  background: #fff1f1;
}

form[aria-busy="true"] button[type="submit"],
form[aria-busy="true"] input[type="submit"] {
  cursor: wait !important;
  opacity: 0.65;
}

/* Service information replaces unsupported animated marketing statistics. */
.vanstory-service-fact {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: center;
  color: inherit;
}
.vanstory-service-fact strong {
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.vanstory-service-fact span { font-size: 15px; line-height: 1.5; }
.home .elementor-element-1043bd0d .vanstory-service-fact { text-align: left; }

/* Transparent SVG logo: no white plate, keep its native proportions. */
.vanstory-brand-logo {
  background: none !important;
  box-shadow: none !important;
  object-fit: contain;
}

/* Without the white plate the mark reads smaller, so give it more width. */
@media (min-width: 1025px) {
  .elementor-location-header .elementor-element-25fd5d50 {
    width: 230px !important;
    flex: 0 0 230px !important;
  }

  .elementor-location-header .elementor-element-29befa06,
  .elementor-location-header .elementor-element-29befa06 img.vanstory-brand-logo {
    width: 224px !important;
    height: auto !important;
  }
}

.elementor-element-fbec763,
.elementor-element-fbec763 img.vanstory-brand-logo {
  width: 210px !important;
  max-width: 100%;
  height: auto !important;
}

@media (max-width: 1024px) {
  .elementor-location-header img.vanstory-brand-logo {
    width: 176px !important;
    max-width: 100%;
    height: auto !important;
  }
}

/* Elementor gives highlighted heading words a fixed global size, so they
   shrank next to the fluid headings on desktop. Match the parent heading. */
body [data-elementor-type="wp-page"] :is(h1, h2, h3) span {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* The WordPress kit's primary color was burgundy (#800020) and its secondary a
   bright red. Neither belongs in the navy/gold palette, so remap both to gold. */
.elementor-kit-65 {
  --e-global-color-primary: var(--vanstory-gold) !important;
  --e-global-color-secondary: var(--vanstory-gold-bright) !important;
}

/* White text is unreadable on gold (2.4:1); use navy on the remapped surfaces.
   Hover keeps Elementor's darker accent fill, which carries light text. */
.elementor-element-5683f0bc .elementor-button {
  color: var(--vanstory-navy) !important;
}

.elementor-element-5683f0bc .elementor-button:is(:hover, :focus-visible) {
  color: #fff !important;
}

.elementor-element-44b32a45 :is(h1, h2, h3, h4, h5, h6, p, span, li, a, strong, em) {
  color: var(--vanstory-navy) !important;
}

/* Home: gold fact band. The generic home-section padding rule outranks the 54px
   rule above, leaving ~112px of gold above and below one row of small cards. */
.home [data-elementor-type="wp-page"] > .e-con.elementor-element-132ba872 {
  --padding-top: 40px !important;
  --padding-bottom: 40px !important;
  padding-top: 40px !important;
  padding-bottom: 40px !important;
  min-height: 0 !important;
}

body.home .elementor-element-132ba872 > .e-con-inner {
  padding-block: 0 !important;
}

body.home .elementor-element.elementor-element-4bb69ef8 {
  --e-con-grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  max-width: 900px;
  margin-inline: auto;
}

/* Home: service card numbers. The number box was a fixed 40px black box the
   48px digits overflowed, spilling past the card edge and over the title. Pin
   it inside the top-right corner and reserve room so titles never meet it. */
body.home .elementor-element-5834411e > .e-con > .elementor-absolute {
  top: 22px !important;
  right: 24px !important;
  left: auto !important;
  width: auto !important;
  margin: 0 !important;
  background: none !important;
}

body.home .elementor-element-5834411e > .e-con > .elementor-absolute .elementor-heading-title {
  background: none !important;
  font-size: 2.25rem !important;
  line-height: 1 !important;
}

body.home .elementor-element-5834411e > .e-con .elementor-icon-box-title {
  padding-right: 56px;
}

/* Home About collage: "100% Confidential" badge. Echoes the original WordPress badge (navy
   card, large serif figure, gold serif label, dark ring cut into the photo)
   in place of the flat gold box. */
.home .elementor-element.elementor-element-65294d1b {
  right: -30px;
  bottom: 40px;
  width: auto !important;
  padding: 10px !important;
  background: var(--vanstory-ink) !important;
  border-radius: 28px !important;
  box-shadow: 0 24px 56px rgba(0, 0, 0, 0.45);
}

.home .elementor-element-65294d1b .elementor-widget-spacer {
  display: none !important;
}

.home .elementor-element-65294d1b .e-con.elementor-element-4b4ccf43 {
  padding: 24px 34px !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(209, 161, 74, 0.14), transparent 60%),
    var(--vanstory-navy-2) !important;
  border: 1px solid rgba(209, 161, 74, 0.38) !important;
  border-radius: 20px !important;
}

.vanstory-stat-badge {
  gap: 6px;
  text-align: center;
}

.vanstory-stat-badge strong {
  white-space: nowrap;
  color: var(--vanstory-text) !important;
  font-family: "Playfair Display", serif !important;
  font-size: clamp(2.8rem, 4.4vw, 4rem) !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em;
}

.vanstory-stat-badge strong i {
  margin-left: 0.04em;
  color: var(--vanstory-gold-bright) !important;
  font-size: 0.72em;
  font-style: normal;
  vertical-align: baseline;
}

.vanstory-stat-badge > span {
  color: var(--vanstory-gold-bright) !important;
  font-family: "Playfair Display", serif !important;
  font-size: clamp(1.05rem, 1.35vw, 1.3rem) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  white-space: nowrap;
}

@media (max-width: 767px) {
  body.home [data-elementor-type="wp-page"] .elementor-element.elementor-element-65294d1b {
    right: 10px;
    bottom: 10px;
    padding: 6px !important;
    border-radius: 18px !important;
  }

  .home .elementor-element-65294d1b .e-con.elementor-element-4b4ccf43 {
    padding: 12px 18px !important;
    border-radius: 13px !important;
  }

  .vanstory-stat-badge strong {
    font-size: 2rem !important;
  }

  .vanstory-stat-badge > span {
    font-size: 0.85rem !important;
  }

  body .elementor-129 .elementor-element.elementor-element-755d542 {
    padding: 12px 18px !important;
  }
}

/* About Us collage: the archived LiteSpeed stylesheet hard-codes a WebP copy of
   the old stock team photo, so the build's inline swap is not enough here. */
.elementor-129 .elementor-element.elementor-element-522c5489:not(.elementor-motion-effects-element-type-background),
.elementor-129 .elementor-element.elementor-element-522c5489 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url("/images/about/professional-investigator-office.jpg") !important;
}

/* About Us collage: same badge as Home. Its ring and navy card already exist
   (311ada17 / 755d542); match Home's ring colour, border and padding. */
.elementor-129 .elementor-element.elementor-element-311ada17 {
  width: auto !important;
  background: var(--vanstory-ink) !important;
  border-radius: 28px !important;
  box-shadow: 0 24px 56px rgba(0, 0, 0, 0.45);
}

.elementor-129 .elementor-element.elementor-element-755d542 {
  padding: 22px 30px !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(209, 161, 74, 0.14), transparent 60%),
    var(--vanstory-navy-2) !important;
  border: 1px solid rgba(209, 161, 74, 0.38) !important;
  border-radius: 20px !important;
}

/* Branded 404 page (generated by scripts/build-static.mjs). */
.vanstory-not-found {
  padding: clamp(120px, 16vw, 180px) 20px clamp(72px, 10vw, 120px);
  background:
    radial-gradient(circle at 80% 0%, rgba(209, 161, 74, 0.12), transparent 45%),
    var(--vanstory-navy);
}

.vanstory-not-found__inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  color: var(--vanstory-text);
}

.vanstory-not-found p.vanstory-not-found__code {
  margin: 0;
  color: var(--vanstory-gold-bright) !important;
  font-family: "Playfair Display", serif !important;
  font-size: clamp(4rem, 12vw, 7rem) !important;
  font-weight: 700;
  line-height: 1 !important;
}

.vanstory-not-found h1 {
  margin: 12px 0 16px;
  color: var(--vanstory-text);
  font-family: "Playfair Display", serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.vanstory-not-found p {
  color: var(--vanstory-muted);
  font-size: 17px;
  line-height: 1.6;
}

.vanstory-not-found__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 28px 0;
}

.vanstory-not-found__links a {
  padding: 12px 22px;
  color: var(--vanstory-navy) !important;
  background: var(--vanstory-gold);
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
}

.vanstory-not-found__links a:hover { background: var(--vanstory-gold-bright); }
.vanstory-not-found__call a { color: var(--vanstory-gold-bright) !important; }

/* Footer call-to-action: smaller, calmer heading; gold eyebrow; phone card
   with lining numerals that never clips at mid widths. */
body .elementor-122 .elementor-element.elementor-element-3d11b32c {
  align-items: center;
  gap: 40px 56px;
}
body .elementor-122 .elementor-element.elementor-element-289cc89e .elementor-icon-list-text {
  color: var(--vanstory-gold) !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
body .elementor-122 .elementor-element.elementor-element-5d330538 .elementor-heading-title {
  font-size: clamp(24px, 2.3vw, 34px) !important;
  font-weight: 500 !important;
  line-height: 1.32 !important;
  max-width: 34ch;
  text-wrap: balance;
}
body .elementor-122 .elementor-element.elementor-element-2ede25f3 {
  flex: 0 0 auto;
  width: auto !important;
  max-width: 100%;
}
body .elementor-122 .elementor-element.elementor-element-7b5a485c {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(209, 161, 74, 0.35);
  border-radius: var(--vanstory-radius);
  padding: 24px 30px;
}
body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-wrapper {
  align-items: center;
}
body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-title,
body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-title a {
  font-variant-numeric: lining-nums;
  font-size: 28px !important;
  white-space: nowrap;
  margin-bottom: 4px;
}
body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-description {
  color: var(--vanstory-muted) !important;
  white-space: nowrap;
}
@media (max-width: 767px) {
  body .elementor-122 .elementor-element.elementor-element-5d330538 .elementor-heading-title {
    margin-inline: auto;
  }
  body .elementor-122 .elementor-element.elementor-element-7b5a485c {
    padding: 22px 24px;
  }
  body .elementor-122 .elementor-element.elementor-element-2ede25f3 {
    align-self: center;
    margin-inline: auto;
  }
  body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-wrapper {
    gap: 10px;
  }
  body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-icon {
    margin: 0 !important;
    line-height: 0;
  }
  body .elementor-122 .elementor-element.elementor-element-7b5a485c .elementor-icon-box-title {
    margin-top: 0 !important;
  }
}

/* ------------------------------------------------------------------
   Site-wide rhythm: consistent section spacing, visible separation
   between sections, comfortable reading width, and step cards.
   ------------------------------------------------------------------ */

/* Separation: a soft gold hairline at the top of every section after the
   first, plus alternating surfaces so neighbouring sections never blend. */
body [data-elementor-type="wp-page"] > .e-con.e-parent + .e-con.e-parent {
  border-top: 1px solid transparent !important;
  border-image: linear-gradient(90deg, transparent, rgba(209, 161, 74, 0.38), transparent) 1 !important;
}
.home .elementor-element.elementor-element-78a01d8a {
  background: var(--vanstory-ink) !important;
}
body:not(.home) [data-elementor-type="wp-page"] > .e-con.e-parent.elementor-element-7cf72cf4,
body:not(.home) [data-elementor-type="wp-page"] > .e-con.e-parent.elementor-element-7bcc9dd3,
body:not(.home) [data-elementor-type="wp-page"] > .e-con.e-parent.elementor-element-73a2d34 {
  background: var(--vanstory-navy) !important;
}

/* Interior sections share one vertical rhythm (the hero and gold band keep
   their own). */
body:not(.home) [data-elementor-type="wp-page"] > .e-con.e-parent:not(:first-child):not(.elementor-element-44b32a45) > .e-con-inner {
  padding-block: clamp(72px, 8vw, 104px) !important;
}
body:not(.home) [data-elementor-type="wp-page"] > .e-con.elementor-element-44b32a45 > .e-con-inner {
  padding-block: clamp(56px, 6vw, 80px) !important;
}

/* Reading width: body copy that spans a full-width section stops at ~72
   characters and sits centred under its heading. Two-column layouts are
   left alone. */
body [data-elementor-type="wp-page"] .elementor-widget-text-editor p {
  margin-block-end: 1.1em;
}
body [data-elementor-type="wp-page"] .elementor-widget-text-editor p:last-child {
  margin-block-end: 0;
}
body [data-elementor-type="wp-page"] :is(.elementor-element-208527a7, .elementor-element-6aa7dbd4) {
  max-width: 780px !important;
  margin-inline: auto !important;
}
body [data-elementor-type="wp-page"] :is(.elementor-element-2496fa3, .elementor-element-9ec7a5e) {
  max-width: 1080px !important;
  margin-inline: auto !important;
}
body [data-elementor-type="wp-page"] :is(.elementor-element-2496fa3, .elementor-element-9ec7a5e) p:not(.vanstory-steps p) {
  max-width: 780px;
  margin-inline: auto;
}
body .elementor-element-9ec7a5e > p:first-child {
  text-align: center;
}
body .elementor-element-2496fa3 p:not(.vanstory-steps p),
body .elementor-element-0000714 > p {
  text-align: center;
}
body [data-elementor-type="wp-page"] .elementor-element-0000714 {
  max-width: 1080px !important;
  margin-inline: auto !important;
}
body .elementor-element-0000714 > p {
  max-width: 780px;
  margin-inline: auto;
}
body .elementor-element-0000714 > p:first-child b {
  display: block;
  color: #fff;
  font: 600 clamp(26px, 3vw, 34px)/1.25 "Playfair Display", serif;
}

/* Process steps (built from the WordPress bullet lists). */
.vanstory-steps {
  counter-reset: step;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin: 36px 0 !important;
  padding: 0 !important;
}
.vanstory-steps > li {
  counter-increment: step;
  position: relative;
  margin: 0 !important;
  padding: 28px 26px 26px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--vanstory-line);
  border-top: 2px solid var(--vanstory-gold);
  border-radius: 14px;
  list-style: none;
}
.vanstory-steps > li::before {
  content: counter(step, decimal-leading-zero);
  display: block;
  margin-bottom: 14px;
  color: var(--vanstory-gold);
  font: 600 13px/1 "Roboto", sans-serif;
  letter-spacing: 0.2em;
}
.vanstory-steps__title {
  display: block;
  margin-bottom: 10px;
  color: #fff;
  font-family: "Playfair Display", serif;
  font-size: 21px;
  font-weight: 600;
  line-height: 1.3;
}
.vanstory-steps > li p {
  margin: 0 !important;
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--vanstory-muted);
}
/* "Our Process" cards on service pages: room to breathe and a clear
   title/body split. Cards are tagged by mobile-ux.js; process-service's cards
   are listed by id because its section is built differently. */
@media (min-width: 768px) {
  body :is(.vanstory-process-step, .elementor-element-7785d5d5, .elementor-element-ecf078a, .elementor-element-7566ce01, .elementor-element-98fcc35, .elementor-element-756f590).e-con {
    padding: 28px 26px !important;
    border: 1px solid var(--vanstory-line) !important;
    border-top: 2px solid var(--vanstory-gold) !important;
    border-radius: 14px !important;
    justify-content: flex-start !important;
  }
  body :is(.vanstory-process-step, .elementor-element-7785d5d5, .elementor-element-ecf078a, .elementor-element-7566ce01, .elementor-element-98fcc35, .elementor-element-756f590) .elementor-heading-title {
    margin-bottom: 10px !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
  }
  body :is(.vanstory-process-step, .elementor-element-7785d5d5, .elementor-element-ecf078a, .elementor-element-7566ce01, .elementor-element-98fcc35, .elementor-element-756f590) .elementor-widget-text-editor {
    color: var(--vanstory-muted) !important;
    font-size: 15.5px;
  }
}

/* Buttons never break a phone number or label across lines. */
body [data-elementor-type="wp-page"] .elementor-button-text {
  white-space: nowrap;
}
body [data-elementor-type="wp-page"] .elementor-element-6f263621 {
  flex-wrap: wrap !important;
  gap: 12px !important;
}

/* ------------------------------------------------------------------
   Phone and small-tablet polish
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
  /* Header: centre the logo in the bar so the tagline clears the gold rule. */
  .elementor-location-header .elementor-element.elementor-element-424a9a8c {
    min-height: 0 !important;
    padding-block: 12px !important;
  }
  .elementor-location-header .elementor-element.elementor-element-f6302bc {
    margin: 0 !important;
    padding: 0 !important;
    align-items: center !important;
  }
}

@media (max-width: 767px) {
  /* Hero: one alignment, centred, with the phone number under the button. */
  .home .elementor-element-514dccf4,
  .home .elementor-element-514dccf4 h1,
  .home .elementor-element-344d58bb,
  .home .elementor-element-344d58bb p {
    text-align: center !important;
  }
  .home .elementor-element.elementor-element-27402c9a {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
  }
  .home .elementor-element-2ed71c62 {
    width: auto !important;
    margin: 0 !important;
  }

  /* Disclosure rows and buttons follow the centred copy above them. */
  .vanstory-mobile-details > summary {
    justify-content: center !important;
    text-align: center !important;
  }
  .home .elementor-element.elementor-element-7a53c84 {
    align-self: center !important;
    margin-inline: auto !important;
  }

  /* "Why Choose Us" photo: full width at a real photo proportion instead of
     a 50px strip. */
  .home .elementor-element.elementor-element-25a4d1e {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 4 / 3;
    height: auto !important;
    min-height: 0 !important;
    background-size: cover !important;
    background-position: center !important;
    border-radius: var(--vanstory-radius);
  }
  .home .elementor-element-25a4d1e .elementor-widget-spacer {
    display: none;
  }
  .home .elementor-element.elementor-element-a992c01,
  .home .elementor-element.elementor-element-25a4d1e {
    flex-basis: auto !important;
  }

  /* Service cards: the number badge is hidden on phones, so drop the space
     reserved for it and truly centre the title. */
  body.home .elementor-element-5834411e > .e-con .elementor-icon-box-title {
    padding: 0 !important;
    text-align: center !important;
  }

  /* FAQ: keep the chevron clear of the question text. */
  .elementskit-accordion .elementskit-card-header .elementskit-btn-link {
    padding-right: 48px !important;
    position: relative;
  }
  .elementskit-accordion .ekit_accordion_icon_group {
    position: absolute !important;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
  }

  /* Footer: room between the phone card, the divider, and the columns. */
  body .elementor-122 .elementor-element.elementor-element-3d11b32c {
    padding-bottom: 40px !important;
    gap: 28px !important;
  }
  body .elementor-122 .elementor-element.elementor-element-1f032655 {
    padding-top: 40px !important;
  }
  body .elementor-122 .elementor-element-134c3ca .elementor-icon-list-item,
  body .elementor-122 .elementor-element-134c3ca .elementor-icon-list-item > a {
    padding-block: 5px !important;
    align-items: center !important;
  }
  body .elementor-122 .elementor-element-134c3ca .elementor-icon-list-icon {
    align-self: center !important;
    margin-top: 0 !important;
    top: 0 !important;
  }
  body .elementor-122 .elementor-element-5b9a255b .elementor-heading-title {
    padding-inline: 12px;
    line-height: 1.6;
  }
}

/* Contact page: "Our Location" is a plain span, so the heading-span rule
   above blew it up to the h3 size. Match its linked siblings. */
body [data-elementor-type="wp-page"] .elementor-element-404b3ccd .elementor-icon-box-title > span {
  font-size: 20px !important;
}

@media (max-width: 767px) {
  /* Tighter section rhythm on phones. */
  body:not(.home) [data-elementor-type="wp-page"] > .e-con.e-parent:not(:first-child):not(.elementor-element-44b32a45) > .e-con-inner {
    padding-block: 56px !important;
  }
  body:not(.home) [data-elementor-type="wp-page"] > .e-con.elementor-element-44b32a45 > .e-con-inner {
    padding-block: 48px !important;
  }
  /* Section titles that sit over centred content are centred too. */
  body .vanstory-process-section .elementor-widget-heading:not(.vanstory-detail-heading) .elementor-heading-title {
    text-align: center !important;
  }
}
