/* Vimeva exact homepage — built to match the supplied 1683×935 mock-up. */
html { background:#020912; }
body.vimeva-exact-home { margin:0 !important; background:#020912 !important; color:#fff; overflow-x:hidden; }
body.vimeva-exact-home #wpadminbar { z-index:999999; }
body.vimeva-exact-home * { box-sizing:border-box; }
body.vimeva-exact-home a { text-decoration:none; }
body.vimeva-exact-home .vex-site-shell { min-height:100vh; background:#020912; font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; -webkit-font-smoothing:antialiased; }
.vex-inner { width:min(1548px, calc(100% - 80px)); margin:0 auto; }

/* Top utility bar */
.vex-topbar { height:47px; background:linear-gradient(90deg,#07111d 0%,#082037 50%,#06101b 100%); border-bottom:1px solid rgba(255,255,255,.11); }
.vex-topbar__inner { height:100%; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.vex-topbar__contact,.vex-topbar__trust { display:flex; align-items:center; gap:30px; }
.vex-top-link,.vex-topbar__trust span { display:inline-flex; align-items:center; gap:8px; color:#c8d0dc; font-size:13px; line-height:1; white-space:nowrap; }
.vex-top-link svg,.vex-topbar__trust svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.vex-topbar__trust { gap:34px; }
.vex-topbar__trust span { font-size:12px; color:#c3ccda; gap:7px; }
.vex-topbar__trust svg { width:14px; height:14px; stroke:#e5ebf4; }

/* Main navigation */
.vex-mainnav { position:relative; height:83px; background:#050d16; border-bottom:1px solid rgba(255,255,255,.04); z-index:30; }
.vex-mainnav__inner { height:100%; display:grid; grid-template-columns:230px 1fr auto; align-items:center; gap:34px; }
.vex-logo { display:inline-flex; align-items:center; width:190px; }
.vex-logo img { display:block; width:180px; height:auto; filter:brightness(0) invert(1); }
.vex-nav { display:flex; align-items:center; justify-content:center; gap:38px; min-width:0; }
.vex-nav a { color:#f1f4f8; font-size:14px; font-weight:500; display:flex; align-items:center; gap:8px; white-space:nowrap; transition:color .2s ease; }
.vex-nav a:hover { color:#168dfb; }
.vex-chevron { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); margin-left:2px; display:inline-block; }
.vex-chevron--light { margin-left:8px; }
.vex-nav-actions { display:flex; align-items:center; gap:24px; }
.vex-search { width:34px; height:34px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:#f3f6fb; cursor:pointer; }
.vex-search svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; }
.vex-quote { height:50px; min-width:178px; padding:0 20px; border:1px solid #0c97ff; border-radius:9px; color:#1599ff; display:inline-flex; align-items:center; justify-content:center; gap:18px; font-size:14px; font-weight:500; transition:all .2s ease; }
.vex-quote span { font-size:23px; font-weight:300; line-height:1; transform:translateY(-1px); }
.vex-quote:hover { background:#0d8fea; color:#fff; }
.vex-mobile-toggle { display:none; width:38px; height:38px; padding:8px; background:transparent; border:0; cursor:pointer; }
.vex-mobile-toggle span { display:block; height:2px; background:#fff; margin:5px 0; border-radius:2px; }
.vex-mobile-menu { position:absolute; top:83px; left:0; right:0; padding:18px 24px 24px; background:#07121e; border-top:1px solid rgba(255,255,255,.08); box-shadow:0 20px 50px rgba(0,0,0,.45); }
.vex-mobile-menu a { display:block; color:#fff; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.08); font-size:15px; }

/* Blue account strip */
.vex-accountbar { height:48px; background:linear-gradient(90deg,#0683ea 0%,#0678d8 57%,#0a68be 100%); }
.vex-accountbar__inner { height:100%; display:flex; align-items:center; justify-content:space-between; }
.vex-accountbar__tagline { font-size:14px; font-weight:500; color:#fff; }
.vex-accountbar__actions { height:100%; display:flex; align-items:center; gap:25px; }
.vex-accountbar__actions a,.vex-language { color:#fff; font-size:14px; display:flex; align-items:center; gap:8px; background:none; border:0; padding:0; font-family:inherit; cursor:pointer; white-space:nowrap; }
.vex-accountbar__actions svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.vex-divider { width:1px; height:20px; background:rgba(255,255,255,.42); }

/* Hero */
.vex-hero { position:relative; min-height:660px; background:#020912; overflow:hidden; }
.vex-hero__visual { position:absolute; z-index:0; top:0; right:0; width:72%; height:430px; background-image:linear-gradient(90deg,#020912 0%,rgba(2,9,18,.88) 15%,rgba(2,9,18,.34) 46%,rgba(2,9,18,.12) 68%,rgba(2,9,18,.2) 100%), var(--hero-image, url('../img/mockup/hero-av.jpg')); background-size:cover; background-position:center right; background-repeat:no-repeat; }
.vex-hero__visual::after { content:""; position:absolute; inset:auto 0 0; height:90px; background:linear-gradient(180deg,transparent,#020912); }
.vex-hero__top { position:relative; z-index:2; min-height:430px; display:flex; align-items:flex-start; }
.vex-hero__copy { padding-top:57px; width:760px; }
.vex-eyebrow { color:#c5cedb; font-size:11px; font-weight:500; letter-spacing:.42em; line-height:1; text-transform:uppercase; margin-bottom:25px; }
.vex-eyebrow span { color:#69798d; margin:0 11px; }
.vex-hero h1 { margin:0; padding:0; font-family:inherit; font-size:clamp(52px,4.25vw,72px); line-height:.98; letter-spacing:-.045em; font-weight:800; color:#fff; }
.vex-hero h1 strong { color:#1496ff; font-weight:800; }
.vex-hero__copy p { margin:17px 0 0; color:#f1f3f6; font-size:18px; line-height:1.46; font-weight:400; }
.vex-hero__buttons { display:flex; gap:18px; margin-top:27px; }
.vex-primary-btn,.vex-secondary-btn { height:51px; border-radius:7px; padding:0 38px; display:inline-flex; align-items:center; justify-content:center; font-size:14px; font-weight:500; transition:all .2s ease; }
.vex-primary-btn { min-width:270px; color:#fff; background:linear-gradient(90deg,#068ff9,#169cff); box-shadow:0 10px 28px rgba(0,133,255,.14); gap:28px; }
.vex-primary-btn span { font-size:23px; font-weight:300; }
.vex-primary-btn:hover { transform:translateY(-1px); filter:brightness(1.08); }
.vex-secondary-btn { min-width:191px; color:#fff; border:1px solid rgba(255,255,255,.75); background:rgba(5,12,20,.28); }
.vex-secondary-btn:hover { border-color:#fff; background:rgba(255,255,255,.08); }

/* Hero side rail */
.vex-hero-rail { position:absolute; right:8px; top:126px; width:98px; padding-left:19px; border-left:1px solid rgba(230,240,255,.78); display:flex; flex-direction:column; gap:25px; }
.vex-hero-rail a { position:relative; display:grid; gap:4px; color:#75839a; line-height:1; }
.vex-hero-rail a::before { content:""; position:absolute; left:-20px; top:1px; width:2px; height:26px; background:transparent; }
.vex-hero-rail a.is-active { color:#fff; }
.vex-hero-rail a.is-active::before { background:#17a1ff; }
.vex-hero-rail span { font-size:13px; font-weight:500; }
.vex-hero-rail small { font-size:11px; color:inherit; }

/* Service cards */
.vex-service-grid { position:relative; z-index:5; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:11px; margin-top:-6px; }
.vex-service-card { position:relative; height:207px; border:1px solid rgba(143,161,182,.3); border-radius:7px; overflow:hidden; color:#fff; background:#0a1420; isolation:isolate; }
.vex-service-card::before { content:""; position:absolute; inset:0; z-index:-2; background-image:var(--card-image); background-size:cover; background-position:center top; transform:scale(1.01); transition:transform .35s ease; }
.vex-service-card__shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(2,8,14,.03) 0%,rgba(2,8,14,.30) 37%,rgba(2,8,14,.91) 75%,#050d15 100%); }
.vex-service-card__body { position:absolute; inset:auto 15px 17px; display:grid; grid-template-columns:1fr 40px; grid-template-areas:"icon arrow" "title arrow" "text arrow"; align-items:end; column-gap:8px; }
.vex-service-card__icon { grid-area:icon; width:27px; height:27px; display:grid; place-items:center; margin-bottom:11px; }
.vex-service-card__icon svg { width:27px; height:27px; fill:none; stroke:#fff; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.vex-service-card strong { grid-area:title; font-size:17px; line-height:1.2; font-weight:600; letter-spacing:-.02em; margin-bottom:7px; }
.vex-service-card__text { grid-area:text; max-width:185px; font-size:12px; line-height:1.45; color:#c7d0db; }
.vex-service-card__arrow { grid-area:arrow; align-self:end; justify-self:end; width:35px; height:35px; border:1px solid rgba(213,223,235,.45); border-radius:50%; display:grid; place-items:center; color:#fff; font-size:21px; font-weight:300; line-height:1; transition:all .2s ease; }
.vex-service-card:hover::before { transform:scale(1.055); }
.vex-service-card:hover .vex-service-card__arrow { background:#128ff2; border-color:#128ff2; }

/* Brand strip */
.vex-brands { height:96px; background:#0b141e; border-top:1px solid rgba(255,255,255,.04); }
.vex-brands__image { height:100%; width:100%; background-image:var(--brands-image, url('../img/mockup/brand-strip.jpg')); background-repeat:no-repeat; background-size:100% 100%; background-position:center; }

@media (max-width:1450px) {
  .vex-inner { width:min(1320px, calc(100% - 56px)); }
  .vex-nav { gap:24px; }
  .vex-mainnav__inner { grid-template-columns:190px 1fr auto; gap:20px; }
  .vex-logo img { width:164px; }
  .vex-quote { min-width:164px; }
  .vex-service-card__text { font-size:11px; }
}

@media (max-width:1180px) {
  .vex-topbar__trust { display:none; }
  .vex-nav { display:none; }
  .vex-mainnav__inner { grid-template-columns:1fr auto; }
  .vex-mobile-toggle { display:block; }
  .vex-search { display:none; }
  .vex-hero__visual { width:80%; opacity:.86; }
  .vex-service-grid { grid-template-columns:repeat(3,1fr); margin-top:20px; padding-bottom:30px; }
  .vex-hero { min-height:auto; }
  .vex-service-card { height:210px; }
  .vex-brands { height:78px; }
}

@media (max-width:800px) {
  .vex-inner { width:calc(100% - 32px); }
  .vex-topbar { height:auto; min-height:45px; }
  .vex-topbar__contact { width:100%; justify-content:space-between; gap:10px; }
  .vex-topbar__contact .vex-top-link:nth-child(3) { display:none; }
  .vex-mainnav { height:70px; }
  .vex-mainnav__inner { height:70px; }
  .vex-mobile-menu { top:70px; }
  .vex-logo { width:148px; }
  .vex-logo img { width:146px; }
  .vex-quote { display:none; }
  .vex-accountbar { height:auto; min-height:48px; }
  .vex-accountbar__inner { min-height:48px; }
  .vex-accountbar__tagline { display:none; }
  .vex-accountbar__actions { width:100%; justify-content:flex-end; gap:14px; }
  .vex-accountbar__actions .vex-divider:first-of-type, .vex-accountbar__actions a[href*="registreren"] { display:none; }
  .vex-hero__visual { width:100%; height:420px; opacity:.62; background-position:58% center; }
  .vex-hero__top { min-height:420px; }
  .vex-hero__copy { width:100%; padding-top:42px; }
  .vex-eyebrow { font-size:9px; letter-spacing:.28em; margin-bottom:18px; }
  .vex-eyebrow span { margin:0 6px; }
  .vex-hero h1 { font-size:clamp(42px,12vw,62px); }
  .vex-hero__copy p { font-size:16px; max-width:560px; }
  .vex-desktop-break { display:none; }
  .vex-hero__buttons { flex-wrap:wrap; }
  .vex-primary-btn,.vex-secondary-btn { min-width:0; padding:0 23px; }
  .vex-primary-btn { flex:1 1 240px; }
  .vex-secondary-btn { flex:0 1 180px; }
  .vex-hero-rail { display:none; }
  .vex-service-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
  .vex-brands { height:58px; }
}

@media (max-width:520px) {
  .vex-topbar__contact { justify-content:flex-start; }
  .vex-topbar__contact .vex-top-link:nth-child(2) { display:none; }
  .vex-accountbar__actions { justify-content:space-between; }
  .vex-accountbar__actions .vex-divider { display:none; }
  .vex-hero__copy { padding-top:34px; }
  .vex-hero__top { min-height:450px; }
  .vex-hero__visual { height:450px; }
  .vex-hero h1 { font-size:43px; }
  .vex-hero__copy p { font-size:15px; }
  .vex-hero__buttons { gap:10px; }
  .vex-primary-btn,.vex-secondary-btn { width:100%; flex:1 1 100%; }
  .vex-service-grid { grid-template-columns:1fr; margin-top:0; }
  .vex-service-card { height:195px; }
  .vex-service-card__text { max-width:260px; font-size:12px; }
  .vex-brands { display:none; }
}


/* -------------------------------------------------------------------------
 * Divi Builder integration — 1.2.0
 * ---------------------------------------------------------------------- */
body.vimeva-theme .vex-divi-shell.et_pb_section { margin:0 !important; padding:0 !important; background:transparent !important; }
body.vimeva-theme .vex-divi-shell > .et_pb_row { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
body.vimeva-theme .vex-divi-shell .et_pb_column,
body.vimeva-theme .vex-divi-shell .et_pb_code,
body.vimeva-theme .vex-divi-shell .et_pb_code_inner { margin:0 !important; padding:0 !important; }
body.vimeva-theme .vex-divi-shell .et_pb_code_inner { line-height:normal; }
body.vimeva-theme .vex-divi-header-section { z-index:20; }
body.vimeva-exact-home #main-content,
body.vimeva-exact-home #page-container,
body.vimeva-exact-home .et-l--body,
body.vimeva-exact-home .et-l--body .et_builder_inner_content { background:#020912 !important; }
body.vimeva-exact-home #main-content > .container { width:100%; max-width:none; padding:0; }
body.vimeva-exact-home .container:before { display:none; }
body.vimeva-exact-home .entry-content { padding:0 !important; }
body.vimeva-exact-home .vex-hero h1,
body.vimeva-exact-home .vex-service-card strong { padding-bottom:0; }
body.vimeva-theme .vex-language { appearance:none; -webkit-appearance:none; }

/* Keep the exact mock-up dimensions stable inside the Visual Builder too. */
.et-fb-root-ancestor .vex-divi-shell .et_pb_row,
.et-fb-root-ancestor .vex-divi-shell .et_pb_column,
.et-fb-root-ancestor .vex-divi-shell .et_pb_code,
.et-fb-root-ancestor .vex-divi-shell .et_pb_code_inner { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }

