/* ============================================================
   VM Redesign 2026 - micro details that Elementor cannot express.
   Structure, colours and typography live in Elementor / the Kit.
   ============================================================ */

/* ---------- Header: topbar collapses + logo shrinks on scroll ---------- */
/* the topbar also carries an Elementor min-height, so height:0 alone left its 38px behind */
.vm-header.elementor-sticky--effects .vm-topbar{height:0!important;min-height:0!important;padding-top:0!important;padding-bottom:0!important;opacity:0;overflow:hidden;pointer-events:none;border:0!important}
.vm-topbar{transition:height .35s var(--ease),opacity .25s var(--ease)}
.vm-header.elementor-sticky--effects .vm-navrow{--nav-h:var(--nav-h-shrunk)}
.vm-header.elementor-sticky--effects .vm-logo img{height:36px}
.vm-logo img{height:48px;width:auto;object-fit:contain;transition:height .3s var(--ease)}
.vm-header{transition:box-shadow .35s var(--ease)}
.vm-header.elementor-sticky--effects{box-shadow:0 1px 0 var(--line),0 12px 24px -18px rgba(10,14,23,.18)}
.vm-navrow{min-height:var(--nav-h);transition:min-height .3s var(--ease)}

/* ---------- Topbar bits ---------- */
.vm-tb-region .vm-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px;vertical-align:middle}
.vm-tb-sep{display:inline-block;width:1px;height:14px;background:#2a3140}
.vm-topbar a{color:#c8cdd6;transition:color .2s var(--ease)}
.vm-topbar a:hover{color:var(--accent)}

/* ---------- Main nav: mega dropdown ---------- */
.vm-nav .elementor-nav-menu--dropdown,


/* two-column mega panel under the first top-level item */
/* the panel only becomes a grid once SmartMenus opens it (inline display:block) */
.vm-nav .elementor-nav-menu--main > ul > li.vm-mega.menu-item-has-children > .sub-menu{width:min(960px,calc(100vw - 64px));padding:32px 0}
.vm-nav .elementor-nav-menu--main > ul > li.vm-mega.menu-item-has-children > .sub-menu[style*="block"]{display:grid!important;grid-template-columns:1fr 1fr;align-items:start}

.vm-nav .elementor-nav-menu--main > ul > li.vm-mega > .sub-menu > li{padding:0 32px}
.vm-nav .elementor-nav-menu--main > ul > li.vm-mega > .sub-menu > li:first-child{border-right:1px solid var(--line-2)}
/* Einfache Dropdowns: alles ausser dem Mega-Menue (.vm-mega) */
.vm-nav .elementor-nav-menu--main > ul > li.menu-item-has-children:not(.vm-mega) > .sub-menu{width:auto;min-width:250px;padding:10px 0}
.vm-nav .elementor-nav-menu--main > ul > li.menu-item-has-children:not(.vm-mega) > .sub-menu[style*="block"]{display:block!important}
.vm-nav .elementor-nav-menu--main > ul > li:not(.vm-mega) > .sub-menu > li{padding:0 20px}

/* group heading rows (menu items with class .vm-mega-group) */
.vm-nav li.vm-mega-group > a{pointer-events:none;font-family:var(--sans)!important;font-size:10.5px!important;font-weight:500!important;letter-spacing:.18em!important;text-transform:uppercase!important;color:var(--muted)!important;padding:0 0 16px!important;display:flex!important;align-items:center;gap:10px;background:none!important;border-bottom:0!important}
.vm-nav li.vm-mega-group > a::after{content:"";flex:1;height:1px;background:var(--line);opacity:1;position:static;transform:none}
.vm-nav li.vm-mega-group > .sub-menu{position:static!important;display:block!important;transform:none!important;box-shadow:none!important;border:0!important;width:auto!important;min-width:0!important;padding:0!important;margin:0!important;background:none!important}

/* dropdown links: title + help text */
.vm-nav .sub-menu a{
  display:block;padding:11px 14px 11px 0!important;border-bottom:1px solid var(--line-2);
  white-space:normal;
}
.vm-nav .sub-menu li:last-child > a{border-bottom:0}
.vm-nav .sub-menu a:hover{color:var(--blue)}
.vm-nav .vm-menu-desc{display:block;font-family:var(--sans);font-size:12px;font-weight:400;color:var(--muted);margin-top:3px;line-height:1.4}
.vm-nav .sub-menu a:hover .vm-menu-desc{color:var(--ink-3)}

/* ---------- CTA cluster in the nav row ---------- */
.vm-cta .elementor-button{white-space:nowrap}

/* ---------- Footer ---------- */
.vm-foot-col h5,.vm-foot-heading{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 22px}
.vm-footer .vm-addr{font-style:normal;font-size:14.5px;color:#eef0f3;line-height:1.7}
.vm-footer .vm-addr strong{color:#fff;font-weight:600}
.vm-footer a{transition:color .2s var(--ease)}

/* ---------- Mobile ---------- */
@media(max-width:900px){
  .vm-topbar .vm-tb-hide-sm{display:none}
  .vm-nav .elementor-nav-menu > li.menu-item-has-children > .sub-menu{width:auto;grid-template-columns:1fr;padding:0}
  .vm-nav .elementor-nav-menu--main > ul > li > .sub-menu > li{padding:0;border-right:0!important}
}
/* ---------- Submenu chevron: original SVG via mask (Elementor Pro cannot take an SVG here) ---------- */
.vm-nav .sub-arrow i,.vm-nav .sub-arrow svg{display:none!important}
.vm-nav .sub-arrow{display:inline-flex;align-items:center;margin-left:6px}
.vm-nav .sub-arrow::after{content:"";display:inline-block;width:10px;height:10px;opacity:.55;background-color:currentColor;-webkit-mask:url('https://dev-vorteilsmakler.advomatic-dev.de/wp-content/uploads/vm-icons/vm-chevron-down.svg') center/contain no-repeat;mask:url('https://dev-vorteilsmakler.advomatic-dev.de/wp-content/uploads/vm-icons/vm-chevron-down.svg') center/contain no-repeat;transition:transform .25s var(--ease),opacity .25s var(--ease)}
.vm-nav .menu-item-has-children:hover > a .sub-arrow::after,.vm-nav .menu-item-has-children.highlighted > a .sub-arrow::after{transform:rotate(180deg);opacity:1}

.vm-nav .elementor-nav-menu--main > ul > li > .sub-menu{border-top:2px solid var(--accent)!important}

/* footer grid: brand column is wider (1.4fr) */
.vm-footer-inner > .e-con-inner, .vm-footer-inner{--e-con-grid-template-columns:1.4fr 1fr 1fr 1fr}
@media(max-width:1024px){.vm-footer-inner > .e-con-inner,.vm-footer-inner{--e-con-grid-template-columns:1fr 1fr;--e-con-grid-template-rows:auto}}
@media(max-width:767px){.vm-footer-inner > .e-con-inner,.vm-footer-inner{--e-con-grid-template-columns:1fr;--e-con-grid-template-rows:auto}}
.vm-foot-logo img{height:42px;width:auto}

/* stacking: header above everything, dropdown above the header's own children */
.vm-header{z-index:999}
.elementor-location-header{position:relative;z-index:999}
.vm-nav .elementor-nav-menu--main .sub-menu{z-index:1000}
.vm-nav .elementor-nav-menu--dropdown{z-index:1000}

/* ============================ HERO ============================ */
.vm-hero{position:relative;overflow:hidden;margin-top:0}
.vm-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent 0%,var(--line) 12%,var(--line) 88%,transparent 100%)}
.vm-hero-grid > .e-con-inner{--e-con-grid-template-columns:1.1fr 1fr;min-height:calc(100vh - var(--topbar-h) - var(--nav-h))}

/* spec line above the headline */
.vm-hero-spec{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.vm-hero-spec .dash{width:24px;height:1px;background:var(--accent);display:inline-block}
.vm-hero-spec .sep{width:1px;height:10px;background:var(--line);display:inline-block;margin:0 4px}

.vm-hero-h1{max-width:14ch}
.vm-hero-h1 .acc{color:var(--accent)}
.vm-hero-h1 .underline{display:inline-block;position:relative;z-index:0}
.vm-hero-h1 .underline::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.1em;background:var(--accent-soft);z-index:-1}
.vm-hero-lede{max-width:48ch}
.vm-hero-lede strong{font-weight:600;color:var(--ink)}

/* stat row */
.vm-hero-stat{padding-right:24px;border-right:1px solid var(--line)}
.vm-hero-stat:last-child{border-right:0;padding-right:0}
.vm-hero-stat + .vm-hero-stat{padding-left:24px}
.vm-stat-num .unit{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--accent);margin-left:2px;vertical-align:.3em;letter-spacing:0}
.vm-stat-lbl{margin-top:10px;letter-spacing:.16em}

/* portrait: green backplate, hairline corners, hover zoom */
.vm-portrait-stack{position:relative}
.vm-portrait-stack::before{content:"";position:absolute;inset:24px -24px 96px 24px;background:var(--accent);z-index:0;display:block}
.vm-portrait{position:relative;z-index:1;min-height:540px;overflow:hidden;
  background:linear-gradient(180deg,#f4f7fc,#e3ebf6)}
.vm-portrait img{width:100%;height:100%;min-height:540px;object-fit:contain;object-position:center bottom;padding:48px 24px 0;display:block;transition:transform .6s var(--ease)}
.vm-portrait-stack:hover .vm-portrait img{transform:scale(1.04)}
.vm-portrait::before,.vm-portrait::after,.vm-portrait-stack::after{pointer-events:none}
.vm-portrait::after{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(10,14,23,0) 45%,rgba(10,14,23,.65))}
.vm-hp-caption{position:relative;z-index:2}
.vm-hp-name{margin-top:2px}
.vm-hp-link .elementor-button{border-bottom:1px solid var(--accent);border-radius:0;gap:8px;transition:gap .25s var(--ease),color .2s var(--ease)}
.vm-hp-link .elementor-button:hover{gap:12px}

@media(prefers-reduced-motion:reduce){.vm-portrait img{transition:none}}
@media(max-width:1024px){
  .vm-hero-grid > .e-con-inner{--e-con-grid-template-columns:1fr;min-height:auto}
  .vm-hero-art{order:-1;max-width:480px;margin:0 auto;width:100%}
  .vm-hero-h1{max-width:100%}
}
@media(max-width:767px){
  .vm-hero-stat{border-right:0;border-bottom:1px solid var(--line);padding:0 0 14px}
  .vm-hero-stat + .vm-hero-stat{padding-left:0;padding-top:14px}
  .vm-hero-stat:last-child{border-bottom:0}
	.vm-portrait{min-height:350px;}
.vm-portrait img{min-height:350px;}
}
/* ======================= USP BAND (Provision) ======================= */
.vm-usp-band{position:relative;overflow:hidden}
.vm-usp-band::after{content:"";position:absolute;inset:auto 0 0;height:2px;
  background:linear-gradient(90deg,var(--blue) 0%,var(--blue) 50%,var(--accent) 50%,var(--accent) 100%)}
.vm-usp-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1.1fr}
.vm-usp-h2 em{font-style:normal;color:var(--accent)}
.vm-usp-p{max-width:46ch}
.vm-usp-p strong{color:var(--ink);font-weight:500}
.vm-usp-law{padding-top:20px;border-top:1px solid #cfd9e8}
.vm-usp-law strong{color:var(--accent);font-weight:600}

.vm-usp-compare{position:relative}
.vm-usp-compare > .e-con-inner::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line)}
.vm-cmp-col:first-child{padding-left:0}
.vm-cmp-col:last-child{padding-right:0}
.vm-cmp-pct{margin-top:14px}
.vm-cmp-pct small{font-family:var(--sans);font-size:.32em;vertical-align:.7em;font-weight:500;margin-left:2px;color:var(--muted)}
.vm-cmp-pct.is-strike .elementor-heading-title,.vm-cmp-pct.is-strike{text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:3px}
.vm-cmp-sub{letter-spacing:.14em}


@media(max-width:1024px){
  .vm-usp-grid > .e-con-inner{--e-con-grid-template-columns:1fr;--e-con-grid-template-rows:auto}
  .vm-usp-compare > .e-con-inner{--e-con-grid-template-columns:1fr;--e-con-grid-template-rows:auto}
  .vm-usp-compare > .e-con-inner::before{display:none}
  .vm-cmp-col{padding:24px 0;border-bottom:1px solid var(--line)}
  .vm-cmp-col:last-child{border-bottom:0}
}
/* ==================== VORTEILSRECHNER (custom block) ====================
   Ported verbatim from the static export; the layout wrapper .calc-wrap is
   replaced by an Elementor grid, so only the card styles are kept. */
.calc-section{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);padding:140px 0;border-bottom:1px solid var(--line)}
.calc-wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.calc-intro .eyebrow{margin-bottom:24px}
.calc-intro h2{font-family:var(--serif);font-weight:500;font-size:clamp(38px,4.2vw,60px);line-height:1.02;letter-spacing:-.025em;margin:0 0 28px}
.calc-intro h2 em{font-style:normal;color:var(--accent)}
.calc-intro p{font-size:17px;color:var(--ink-2);max-width:42ch;margin:0 0 16px}
.calc-intro .fine{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.02em;line-height:1.6}
.calc-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-3);position:relative}
.calc-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue) 0%,var(--blue) 50%,var(--accent) 50%,var(--accent) 100%)}
.calc-head{padding:28px 40px 22px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line-2)}
.calc-head .h{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.calc-head .h em{font-style:normal;color:var(--accent)}
.calc-head-right{display:flex;align-items:center;gap:18px}
.calc-head .tag{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:7px}
.calc-head .tag .pulse{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 0 3px #0099332e}
.persp-switch{display:inline-flex;align-items:center;padding:3px;gap:2px;background:#f2f4f8;border:1px solid var(--line);border-radius:var(--r)}
.persp-pill{padding:8px 16px;font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--ink-3);border-radius:1px;transition:background .2s var(--ease),color .2s var(--ease);white-space:nowrap}
.persp-pill:hover{color:var(--ink)}
.persp-pill.is-active{background:#fff;color:var(--ink);box-shadow:0 1px #0000000a,0 1px 3px #00000014}
.calc-input-block{padding:32px 40px 28px;background:var(--paper);border-bottom:1px solid var(--line-2)}
.calc-label{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.calc-price{display:flex;align-items:baseline;gap:8px;font-family:var(--serif);color:var(--ink);margin-bottom:24px}
.calc-price .euro{font-size:28px;color:var(--muted);font-weight:500}
.calc-price input{flex:1;border:0;background:transparent;outline:0;font:500 56px/1 var(--serif);letter-spacing:-.025em;color:var(--ink);width:100%;padding:0;min-width:0}
.calc-price input::-webkit-outer-spin-button,.calc-price input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calc-slider{position:relative;height:36px;display:flex;align-items:center}
.calc-slider input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent}
.calc-slider .track{position:absolute;left:0;right:0;top:50%;height:2px;background:var(--line);transform:translateY(-50%)}
.calc-slider .fill{position:absolute;left:0;top:50%;height:2px;background:var(--accent);transform:translateY(-50%);pointer-events:none}
.calc-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:0;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 1px var(--accent-700),var(--shadow-1);cursor:grab;transform:rotate(45deg)}
.calc-slider input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:0;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 1px var(--accent-700),var(--shadow-1);cursor:grab;transform:rotate(45deg)}
.calc-range-ticks{display:flex;justify-content:space-between;margin-top:10px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em}
.calc-result{padding:28px 40px 32px;display:grid;grid-template-columns:1fr 1fr;gap:0;position:relative}
.calc-result:before{content:"";position:absolute;top:28px;bottom:32px;left:50%;width:1px;background:var(--line-2)}
.calc-result .col{padding:0 24px}
.calc-result .col:first-child{padding-left:0}
.calc-result .col:last-child{padding-right:0}
.calc-result .who{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.calc-result .col.us .who{color:var(--accent)}
.calc-result .name{font-family:var(--sans);font-size:13px;color:var(--ink-2);line-height:1.3;margin-bottom:18px;font-weight:500}
.calc-result .row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line-2);font-family:var(--mono);font-size:13px;color:var(--ink-2);letter-spacing:.02em}
.calc-result .row:last-of-type{border-bottom:0;padding-top:16px}
.calc-result .row .lbl-txt{font-family:var(--sans);font-weight:500}
.calc-result .row .v{color:var(--ink);font-weight:500}
.calc-result .row .v.neg{color:var(--red)}
.calc-result .col.us .row .v{color:var(--blue)}
.calc-result .col.us .row .v.neg{color:var(--accent-700)}
.calc-result .total{margin-top:6px;padding-top:14px;border-top:1px solid var(--ink-2);display:flex;justify-content:space-between;align-items:baseline}
.calc-result .total .lbl{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.calc-result .total .v{font-family:var(--serif);font-size:26px;font-weight:500;color:var(--ink);letter-spacing:-.015em}
.calc-result .col.us .total{border-top-color:var(--accent)}
.calc-result .col.us .total .v{color:var(--accent)}
.calc-foot{padding:24px 40px 28px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px}
.calc-foot .you-save{display:flex;flex-direction:column;gap:4px}
.calc-foot .you-save .lbl{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.calc-foot .you-save .val{font-family:var(--serif);font-size:40px;font-weight:500;color:#fff;letter-spacing:-.025em}
.calc-foot .you-save .val sup{font-family:var(--mono);font-size:.32em;color:var(--accent);margin-left:4px;vertical-align:.6em;font-weight:500}
.leist-calc .calc-lbl{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.leist-calc .calc-num{font-family:var(--serif);font-weight:500;font-size:64px;line-height:1;color:var(--ink);letter-spacing:-.035em}
.leist-calc .calc-num small{font-family:var(--sans);font-size:.4em;vertical-align:.7em;color:var(--accent);font-weight:600;margin-left:2px}
.leist-calc .calc-sub{font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:var(--ink-2);margin-top:6px}
@media(max-width:1024px){.calc-wrap,.cta-final-inner,.region-grid,.usp-band-inner{grid-template-columns:1fr;gap:48px}.calc-section{padding:80px 0}}
@media(max-width:640px){.calc-head,.calc-input-block,.calc-result,.calc-foot{padding-left:24px;padding-right:24px}.calc-result{grid-template-columns:1fr;gap:24px}.calc-result:before{display:none}.calc-result .col{padding:0}.calc-foot{flex-direction:column;align-items:flex-start;gap:18px}}
@media(max-width:1024px){.calc-wrap{grid-template-columns:1fr;gap:48px}.calc-section{padding:80px 0}}
input[type=range].calc-range-thumb::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:#093;border:2px solid #fff;box-shadow:0 1px 4px #00000038;border-radius:3px;transform:rotate(45deg);cursor:pointer;margin-top:-8px}
input[type=range].calc-range-thumb::-moz-range-thumb{width:20px;height:20px;background:#093;border:2px solid #fff;box-shadow:0 1px 4px #00000038;border-radius:3px;transform:rotate(45deg);cursor:pointer}
.calc-page-section{padding:80px 0 64px;background:var(--color-bg-soft, #f7f9fc)}
.calc-page-grid{display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start}
@media(max-width:1024px){.calc-page-grid{grid-template-columns:1fr}}
.calc-main-wrap{min-width:0}

.vm-calc-grid > .e-con-inner{--e-con-grid-template-columns:.85fr 1.15fr}
.vm-calc-h2 em{font-style:normal;color:var(--accent)}
.vm-calc-p{max-width:46ch}
.vm-link-btn .elementor-button{border-bottom:1px solid var(--accent);border-radius:0;gap:10px;transition:gap .25s var(--ease),color .2s var(--ease)}
.vm-link-btn .elementor-button:hover{gap:16px}
@media(max-width:1024px){.vm-calc-grid > .e-con-inner{--e-con-grid-template-columns:1fr;--e-con-grid-template-rows:auto}}

/* ==================== LEISTUNGEN tiles ====================
   1px grid gap on a line-coloured grid draws the hairline separators. */
.vm-leist-grid > .e-con-inner{--e-con-grid-template-rows:auto}
.vm-leist-kachel{transition:background .2s var(--ease)}
.vm-leist-p{flex:1}
.vm-leist-more{margin-top:auto}
.vm-leist-more .elementor-button{gap:6px;border-bottom:1px solid var(--accent);border-radius:0;padding-bottom:5px;align-self:flex-start;transition:gap .2s var(--ease),color .2s var(--ease)}
.vm-leist-more .elementor-button:hover{gap:10px}
.vm-leist-kicker{letter-spacing:.1em}
@media(max-width:1024px){.vm-leist-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1fr;--e-con-grid-template-rows:auto}}
@media(max-width:767px){.vm-leist-grid > .e-con-inner{--e-con-grid-template-columns:1fr;--e-con-grid-template-rows:auto}}


/* ---- section head: eyebrow left, headline right, aligned to the baseline ---- */
.vm-section-head,.vm-section-head > .e-con-inner{--e-con-grid-template-columns:.7fr 1.3fr!important;--e-con-grid-template-rows:auto!important}
.vm-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:12px}
.vm-eyebrow .elementor-heading-title::before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent);flex:0 0 24px}
.vm-section-h2 em,.vm-section-h2 .acc{font-style:normal;color:var(--accent)}
.vm-section-lede{max-width:54ch}
@media(max-width:900px){.vm-section-head,.vm-section-head > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}}

/* ============ Vier Vorteile + Verkaufsprozess ============ */
.vm-feat{border-right:1px solid var(--line)}
.vm-feat:last-child{border-right:0}
.vm-feat-num,.vm-step-n{letter-spacing:.18em}
.vm-step{position:relative}
.vm-step:last-child{border-right:0!important}
.vm-step::before{content:"";position:absolute;top:-1px;left:0;width:0;height:2px;background:var(--accent);transition:width .4s var(--ease)}
.vm-step:hover::before{width:100%}
.vm-step:hover{background:#fff}
@media(max-width:1024px){
  .vm-feat-grid,.vm-feat-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1fr!important;--e-con-grid-template-rows:auto!important}
  .vm-process-track,.vm-process-track > .e-con-inner{--e-con-grid-template-columns:1fr 1fr!important;--e-con-grid-template-rows:auto!important}
  .vm-feat,.vm-step{border-bottom:1px solid var(--line)}
}
@media(max-width:767px){
  .vm-feat-grid,.vm-feat-grid > .e-con-inner,.vm-process-track,.vm-process-track > .e-con-inner{--e-con-grid-template-columns:1fr!important}
  .vm-feat,.vm-step{border-right:0!important}
}

/* ============ Situationen / Werte / Stimmen / FAQ / Blog / CTA ============ */
.vm-sit-card{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .25s var(--ease);overflow:hidden}
.vm-sit-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.vm-sit-p{flex:1}
.vm-val{position:relative}
.vm-val:last-child{border-right:0!important}
.vm-quote-mark .elementor-heading-title{line-height:.6;display:block}
.vm-quote{font-style:normal}
.vm-quote em{font-style:normal;color:var(--accent);font-weight:600}

.vm-stars .elementor-heading-title{display:inline-flex;gap:3px}
.vm-star{width:11px;height:11px;background:var(--accent);display:inline-block;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.vm-post-card{overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.vm-post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.vm-post-img img{width:100%;aspect-ratio:768/430;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.vm-post-card:hover .vm-post-img img{transform:scale(1.04)}
.vm-post-excerpt{flex:1}
.vm-editorial-body{max-width:64ch}
.vm-editorial-p strong{color:var(--ink);font-weight:600}
.vm-map-placeholder{min-height:340px;text-align:center}
@media(max-width:1024px){
  .vm-sit-grid,.vm-sit-grid > .e-con-inner,.vm-voices-grid,.vm-voices-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}
  .vm-val-grid,.vm-val-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1fr!important;--e-con-grid-template-rows:auto!important}
  .vm-region-grid,.vm-region-grid > .e-con-inner,.vm-cta-grid,.vm-cta-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}
  .vm-val{border-right:0!important;border-bottom:1px solid var(--line)}
}
@media(max-width:767px){.vm-val-grid,.vm-val-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important}}

/* ==== review round 2: city list, FAQ layout, voices foot, 3-col CTA ==== */



.vm-faq-grid,.vm-faq-grid > .e-con-inner{--e-con-grid-template-columns:.7fr 1.3fr!important;--e-con-grid-template-rows:auto!important}
.vm-faq-lede{max-width:38ch}
.vm-head-stacked{max-width:52ch}
.vm-voices-foot .elementor-heading-title strong{color:var(--ink);font-weight:600}
.vm-cta-grid--3,.vm-cta-grid--3 > .e-con-inner{--e-con-grid-template-columns:1.1fr .95fr .95fr!important;--e-con-grid-template-rows:auto!important}
.vm-form .elementor-field-group{margin-bottom:14px}
@media(max-width:1024px){
  .vm-faq-grid,.vm-faq-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important}
  .vm-cta-grid--3,.vm-cta-grid--3 > .e-con-inner{--e-con-grid-template-columns:1fr!important}
}

/* testimonial author block: pinned to the card bottom, round blue avatar */
.vm-avatar-circle .elementor-heading-title{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff}
.vm-testimonial-foot{margin-top:auto}
.vm-quote .elementor-heading-title{flex:1}
.vm-quote em{font-style:italic;color:var(--ink)}
.vm-quote-mark .elementor-heading-title{user-select:none}

/* ==== region: one row per town, AKTIV badge on the right ==== */
.vm-city-list .elementor-heading-title{display:block}
.vm-city-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);transition:padding .2s var(--ease),color .2s var(--ease)}
.vm-city-row:last-child{border-bottom:0}
.vm-city-row .nm{font-family:var(--sans);font-size:14.5px;font-weight:500;color:var(--ink-2)}
.vm-city-row .ct{font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.vm-city-row:hover .nm{color:var(--blue)}
.vm-city-row.is-current .nm{color:var(--blue);font-weight:600;position:relative;padding-left:18px}
.vm-city-row.is-current .nm::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;background:var(--accent);transform:rotate(45deg)}
/* ==== editorial: author column + table of contents ==== */
.vm-editorial-grid,.vm-editorial-grid > .e-con-inner{--e-con-grid-template-columns:.34fr .66fr!important;--e-con-grid-template-rows:auto!important}
.vm-editorial-aside{position:sticky;top:calc(var(--nav-h) + 32px);align-self:start}
.vm-author-photo img{width:100%;max-width:270px;display:block;background:linear-gradient(180deg,#f4f7fc,#e3ebf6)}
.vm-toc-list .elementor-heading-title{display:flex;flex-direction:column}
.vm-toc-link{display:block;padding:12px 0;border-bottom:1px solid var(--line-2);font-size:13.5px;color:var(--ink-2);transition:color .2s var(--ease),padding .2s var(--ease)}
.vm-toc-link:last-child{border-bottom:0}
.vm-toc-link:hover{color:var(--blue);padding-left:6px}
.vm-editorial-body{max-width:68ch}
.vm-editorial-sub{padding-top:32px;border-top:1px solid var(--line)}
.vm-editorial-sub:first-child{padding-top:0;border-top:0}
@media(max-width:1024px){.vm-editorial-grid,.vm-editorial-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important}.vm-editorial-aside{position:static}}

/* ================= service page template ================= */
.vm-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--sans);font-size:12.5px;color:var(--muted)}
.vm-crumbs a{color:var(--ink-2);font-weight:500}
.vm-crumbs a:hover{color:var(--blue)}
.vm-crumbs i{font-style:normal;color:var(--line);}
.vm-crumbs span[aria-current]{color:var(--muted)}
.vm-page-h1 em{font-style:normal;color:var(--accent)}
.vm-page-lede{max-width:62ch}
.vm-author-avatar img{width:88px;height:88px;object-fit:cover;object-position:center top;background:linear-gradient(180deg,#f4f7fc,#e3ebf6);display:block}
.vm-author-bio{max-width:none}
.vm-badge .elementor-heading-title{display:inline-block;background:var(--accent-soft);color:var(--accent-700);padding:7px 12px;border-radius:2px}
.vm-cta-3,.vm-cta-3 > .e-con-inner{--e-con-grid-template-columns:1.2fr .9fr .9fr!important;--e-con-grid-template-rows:auto!important}
.vm-cta-buttons .elementor-button{width:100%;justify-content:center}
.vm-cta-links .elementor-heading-title{display:flex;flex-direction:column;gap:14px}
.vm-cta-link{color:var(--ink-2);font-size:14px;font-weight:500;transition:color .2s var(--ease)}
.vm-cta-link:hover{color:var(--accent)}
@media(max-width:1024px){.vm-cta-3,.vm-cta-3 > .e-con-inner{--e-con-grid-template-columns:1fr!important}}

/* service hero: the copy column is narrower than the grid, as in the design */
.vm-page-hero .e-con-inner{max-width:1000px;margin-left:0}
.vm-page-h1{max-width:16ch}
.vm-page-lede{max-width:58ch}

/* ============ Leistungsversprechen page ============ */
.vm-kern-nr{letter-spacing:.18em}
.vm-kern-card{transition:background .2s var(--ease)}
.vm-kern-card:hover{background:var(--paper-2)!important}
.vm-v-item:last-child{border-bottom:0!important}
.vm-v-nr .elementor-heading-title{min-width:40px;display:block;padding-top:3px;letter-spacing:.1em}
@media(max-width:1024px){.vm-kern-grid,.vm-kern-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1fr!important;--e-con-grid-template-rows:auto!important}}
@media(max-width:767px){.vm-kern-grid,.vm-kern-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important}.vm-v-item{flex-direction:column;gap:10px}}

.vm-icon-left .elementor-icon-wrapper{text-align:left}
.vm-intro-p{max-width:76ch}
.vm-prose-p strong{color:var(--ink);font-weight:600}
.vm-kern-h2 em{font-style:normal;color:var(--accent)}

.vm-kern-card .elementor-icon{width:36px;height:36px;border:1px solid var(--line);border-radius:2px;display:flex;align-items:center;justify-content:center}
.vm-kern-card .elementor-icon svg{width:20px;height:20px}
.vm-icon-box{}

/* ============ Immobilienbewertung page ============ */
.vm-dot-sm{display:block;width:8px;height:8px;background:var(--accent);border-radius:50%}
@media(max-width:900px){.vm-vorteile-grid,.vm-vorteile-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}.vm-anlaesse-grid,.vm-anlaesse-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1fr!important;--e-con-grid-template-rows:auto!important}}
@media(max-width:600px){.vm-anlaesse-grid,.vm-anlaesse-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important}}

/* ===== Vorteile im Verkaufsprozess ===== */
.vm-dot-xs{display:block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-top:6px}
.vm-phase-kicker{letter-spacing:.1em}
.vm-phase-block:last-child{border-bottom:0!important}
@media(max-width:1024px){.vm-u-grid,.vm-u-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}}

/* ===== Dienstleistungen aus einer Hand ===== */
.vm-check{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--accent);border-radius:50%;margin-top:2px;position:relative}
.vm-check::after{content:"";width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.vm-dl-kicker{letter-spacing:.1em}
@media(max-width:1024px){.vm-dl-grid,.vm-dl-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}.vm-partner-grid,.vm-partner-grid > .e-con-inner{--e-con-grid-template-columns:1fr 1fr!important;--e-con-grid-template-rows:auto!important}}
@media(max-width:600px){.vm-partner-grid,.vm-partner-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important}}

/* ===== Vermietetes Haus verkaufen ===== */
.vm-bullet{display:block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-top:7px}
.vm-var-label{letter-spacing:.1em}
@media(max-width:1024px){.vm-aspekte-grid,.vm-aspekte-grid > .e-con-inner,.vm-varianten-grid,.vm-varianten-grid > .e-con-inner,.vm-kaeufer-grid,.vm-kaeufer-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}}

/* variant cards: 4px accent rule on the left, tinted background */
.vm-var-card.is-yes{border-left-color:var(--accent)!important}
.vm-var-card.is-neutral{border-left-color:var(--muted)!important}
.vm-var-p strong{color:var(--ink);font-weight:500}

/* ===== Scheidungsimmobilie ===== */
.vm-prozess-item:last-child{border-bottom:0!important}
.vm-ps-nr .elementor-heading-title{min-width:48px;display:block;padding-top:4px}
@media(max-width:1024px){.vm-optionen-grid,.vm-optionen-grid > .e-con-inner,.vm-heraus-grid,.vm-heraus-grid > .e-con-inner{--e-con-grid-template-columns:1fr!important;--e-con-grid-template-rows:auto!important}}

/* ===== Ueber uns ===== */
.vm-team-member,.vm-team-member > .e-con-inner{--e-con-grid-template-columns:280px 1fr!important;--e-con-grid-template-rows:auto!important}
.vm-team-member.is-alt,.vm-team-member.is-alt > .e-con-inner{--e-con-grid-template-columns:1fr 280px!important}
.vm-team-member:last-child{border-bottom:0!important;margin-bottom:0!important;padding-bottom:0!important}
.vm-initials .elementor-heading-title{letter-spacing:.04em}
@media(max-width:900px){.vm-team-member,.vm-team-member > .e-con-inner,.vm-team-member.is-alt,.vm-team-member.is-alt > .e-con-inner{--e-con-grid-template-columns:1fr!important}}

/* ===== Ueber uns — Verbaende, Region, CTA ===== */
.vm-mb-card .elementor-icon{display:block}
/* city chips: one heading widget, spans laid out as a wrap row */
.vm-region-tags .elementor-heading-title{display:flex;flex-wrap:wrap;gap:8px}
.vm-region-tag{display:inline-block;font-size:12px;font-weight:500;line-height:1.4;color:var(--blue);background:rgba(0,57,149,.07);border-radius:var(--r-2);padding:4px 10px}
/* the visual box carries a 4px accent rule on top only — Elementor colours all sides at once */
.vm-region-box{border-top-color:var(--blue)!important}
.vm-region-cta .elementor-button{background:transparent!important;padding:0!important}
.vm-region-cta .elementor-button .elementor-button-icon{transition:margin-inline-start .2s var(--ease)}
.vm-region-cta .elementor-button:hover .elementor-button-icon{margin-inline-start:10px}
.vm-ub-cta-sub .elementor-heading-title{max-width:52ch}
@media(max-width:900px){.vm-ub-cta-actions{justify-content:flex-start}}
@media(max-width:600px){.vm-ub-cta-actions{width:100%}.vm-ub-cta-actions .elementor-widget-button,.vm-ub-cta-actions .elementor-button{width:100%;justify-content:center}}

/* ===== Blog / Ratgeber (Seite 1698) ===== */
.vm-blog-h1 em{font-style:normal;color:var(--accent)}
.vm-blog-hero-sub .elementor-heading-title{max-width:56ch}
.vm-blog-hero-stats{min-width:210px;align-self:center}
.vm-hero-stat+.vm-hero-stat{border-top:1px solid var(--line);padding-top:16px!important}

/* featured label with the pulsing dot */
.vm-feat-label .elementor-heading-title{display:flex;align-items:center;gap:8px}
.vm-feat-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:vm-pulse 2s ease-in-out infinite}
@keyframes vm-pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* featured card */
.vm-feat-card{overflow:hidden;transition:box-shadow .3s var(--ease)}
.vm-feat-card:hover{box-shadow:var(--shadow-2)}
.vm-feat-card__img,.vm-feat-card__img>.elementor-widget-container,.vm-feat-card__img .elementor-widget-container>a{display:block;height:100%}
.vm-feat-card__img img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .7s var(--ease)}
.vm-feat-card:hover .vm-feat-card__img img{transform:scale(1.04)}
.vm-feat-card__meta .elementor-heading-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vm-article-cat{background:var(--blue);color:#fff;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:3px 9px;border-radius:2px;white-space:nowrap}
.vm-feat-card__excerpt>.elementor-widget-container{display:-webkit-box!important;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:900px){.vm-feat-card__img img{aspect-ratio:16/7}}

/* article card */
.vm-blog-card{height:100%;overflow:hidden;transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.vm-blog-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.vm-blog-card__img img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.vm-blog-card:hover .vm-blog-card__img img{transform:scale(1.04)}
.vm-blog-card__body{flex:1}
.vm-blog-card__excerpt>.elementor-widget-container{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.vm-blog-card__more{margin-top:auto;padding-top:6px}
.vm-dot-sep{margin:0 2px}

/* CTA band */
.vm-blog-cta-sub .elementor-heading-title{max-width:60ch}
@media(max-width:600px){.vm-blog-cta-btns{width:100%}.vm-blog-cta-btns .elementor-widget-button,.vm-blog-cta-btns .elementor-button{width:100%;justify-content:center}}
/* hero stats sit side by side once the hero collapses to one column */
@media(max-width:900px){.vm-blog-hero-stats{flex-direction:row!important;justify-content:center;gap:0!important;padding:16px 20px!important}.vm-hero-stat{padding:0 28px!important;flex:0 0 auto!important;width:auto!important}.vm-hero-stat+.vm-hero-stat{border-top:0;border-left:1px solid var(--line);padding-top:0!important}}
@media(max-width:420px){.vm-hero-stat{padding:0 16px!important}}

/* homepage blog tiles: the excerpt now renders (dynamic tag added), so clamp it and keep the tiles level */
.vm-post-card{height:100%}
.vm-post-body{flex:1}
.vm-post-excerpt>.elementor-widget-container{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Single post (Theme Builder "VM Single Post") ===== */
/* featured images differ in aspect from post to post - the hero crops them to one ratio */
.vm-post-hero-img img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:1px solid var(--line);border-radius:2px}
@media(max-width:900px){.vm-post-hero-img img{aspect-ratio:16/8}}
.vm-post-hero-media{align-self:center}
.vm-post-lede .elementor-widget-container{font-size:17px;line-height:1.6;color:var(--ink-2)}
.vm-post-lede p b,.vm-post-lede p strong{font-weight:600}
.vm-author-avatar img{width:88px;height:88px;object-fit:cover;border-radius:50%;display:block}
@media(max-width:600px){.vm-author-box{flex-direction:column!important}.vm-author-box .vm-author-avatar img{width:72px;height:72px}}

/* Article typography. The post body is one text-editor widget of raw HTML, so its headings
   cannot be bound to a Kit global per element - they are bound through the Kit's own CSS
   variables instead, so sizes still have exactly one source of truth (the Kit UI). */
.vm-post-content h2,.vm-prose h2:not(.elementor-heading-title){
  font-family:var(--e-global-typography-vmh2big-font-family),var(--sans);
  font-size:var(--e-global-typography-vmh2big-font-size);
  font-weight:var(--e-global-typography-vmh2big-font-weight);
  line-height:var(--e-global-typography-vmh2big-line-height);
  letter-spacing:var(--e-global-typography-vmh2big-letter-spacing);
  color:var(--ink);margin:52px 0 14px}
.vm-post-content h3,.vm-prose h3{
  font-family:var(--e-global-typography-vmt22-font-family),var(--sans);
  font-size:var(--e-global-typography-vmt22-font-size);
  font-weight:var(--e-global-typography-vmt22-font-weight);
  line-height:var(--e-global-typography-vmt22-line-height);
  color:var(--ink);margin:36px 0 10px}
.vm-post-content h4,.vm-prose h4{
  font-family:var(--e-global-typography-vmt18b-font-family),var(--sans);
  font-size:var(--e-global-typography-vmt18b-font-size);
  font-weight:var(--e-global-typography-vmt18b-font-weight);
  color:var(--ink);margin:28px 0 8px}
.vm-post-content h2:first-child,.vm-post-content h3:first-child,.vm-prose h2:first-child,.vm-prose h3:first-child{margin-top:0}
.vm-post-content p,.vm-prose p{
  font-size:var(--e-global-typography-vmintro-font-size);
  line-height:var(--e-global-typography-vmintro-line-height);
  color:var(--ink-2);margin:0 0 18px}
.vm-post-content ul,.vm-post-content ol,.vm-prose ul,.vm-prose ol{margin:0 0 18px;padding-left:22px}
.vm-post-content li,.vm-prose li{
  font-size:var(--e-global-typography-vmintro-font-size);
  line-height:var(--e-global-typography-vmintro-line-height);
  color:var(--ink-2);margin-bottom:8px}
.vm-post-content li::marker,.vm-prose li::marker{color:var(--accent)}
.vm-post-content strong,.vm-post-content b,.vm-prose strong,.vm-prose b{font-weight:600;color:var(--ink)}
.vm-post-content a,.vm-prose a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s var(--ease)}
.vm-post-content a:hover,.vm-prose a:hover{color:var(--accent)}
/* nackte URLs in Rechtstexten sprengen sonst die Spalte (Datenschutz) */
.vm-post-content a,.vm-prose a{overflow-wrap:anywhere}

/* ===== Rechtliche Seiten: AGB 1816, Datenschutz 374, Impressum 376 ===== */
.vm-legal-h1 .elementor-heading-title,.vm-legal-sub .elementor-heading-title{max-width:720px}
.vm-post-content blockquote,.vm-prose blockquote{margin:28px 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);color:var(--ink)}
.vm-post-content table,.vm-prose table{width:100%;border-collapse:collapse;margin:0 0 24px}
.vm-post-content th,.vm-post-content td,.vm-prose th,.vm-prose td{border:1px solid var(--line);padding:10px 12px;text-align:left;font-size:15px}
.vm-post-content th,.vm-prose th{background:var(--paper-2);font-weight:600}

/* the lede keeps the same measure but reads a notch stronger than the body */
.vm-post-lede .elementor-widget-container p{font-size:18px;line-height:1.6;color:var(--ink-2)}
.vm-post-lede .elementor-widget-container p:first-child b,.vm-post-lede .elementor-widget-container p:first-child strong{font-weight:600;color:var(--ink)}
/* ===== Referenzen (Seite 360) ===== */
.vm-ref-hero-img img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:1px solid var(--line);border-radius:2px}
.vm-ref-hero-media{align-self:center}
.vm-ref-hero-sub .elementor-heading-title{max-width:56ch}

/* object card */
.vm-ref-card{height:100%;overflow:hidden;transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.vm-ref-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.vm-ref-media-wrap{position:relative}
.vm-ref-media img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.vm-ref-body{flex:1}

/* location badge over the photo */
.vm-ref-badge{position:absolute;top:12px;left:12px;z-index:2;width:auto}
.vm-ref-badge .elementor-heading-title{display:inline-block;background:rgba(0,57,149,.92);padding:4px 10px;border-radius:2px}

/* spec rows: label left, value right, hairline between */
.vm-ref-specs .elementor-heading-title{display:flex;flex-direction:column}
.vm-ref-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid var(--line-2)}
.vm-ref-row:first-child{border-top:0;padding-top:0}
.vm-ref-row i{font-style:normal;font-size:12px;color:var(--muted);white-space:nowrap}
.vm-ref-row b{font-weight:600;color:var(--ink);text-align:right}

/* carousel chrome sits on top of the photo so every card stays the same height */
.vm-ref-carousel .swiper-pagination{bottom:10px}
.vm-ref-carousel .swiper-pagination-bullet{opacity:1;margin:0 3px}
.vm-ref-carousel .elementor-swiper-button{text-shadow:0 1px 8px rgba(0,0,0,.5);opacity:0;transition:opacity .25s var(--ease)}
.vm-ref-card:hover .elementor-swiper-button,.vm-ref-carousel .elementor-swiper-button:focus-visible{opacity:1}
.vm-ref-carousel .elementor-swiper-button-prev{left:10px}
.vm-ref-carousel .elementor-swiper-button-next{right:10px}
@media(hover:none),(max-width:900px){.vm-ref-carousel .elementor-swiper-button{opacity:1}}

/* ===== Lokale SEO-Landingpages (Immobilienmakler fuer <Ort>) ===== */
.vm-lp-h1 em{font-style:normal;color:var(--accent)}
.vm-lp-lede .elementor-heading-title{max-width:58ch}
.vm-lp-lede .elementor-heading-title p{margin:0}
.vm-lp-hero-media{align-self:center}
.vm-lp-hero-img img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:1px solid var(--line);border-radius:2px}

/* Vorteil cards */
.vm-lp-card{height:100%;overflow:hidden;transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.vm-lp-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.vm-lp-card-img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.vm-lp-card:hover .vm-lp-card-img img{transform:scale(1.03)}
.vm-lp-card-body{flex:1}
.vm-lp-card-title .elementor-heading-title{display:block}
.vm-lp-card-text{margin-bottom:18px}
.vm-lp-card-text p{margin:0 0 8px}
.vm-lp-card-text p:last-child{margin-bottom:0}
.vm-lp-card-text>.elementor-widget-container{display:-webkit-box!important;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.vm-lp-card-more{margin-top:auto}
.vm-lp-card-more .elementor-button b{font-weight:700}

/* the shared contact-form template */
.vm-form-card .elementor-field-group>label{letter-spacing:.06em}
.vm-form .elementor-field-textual{padding:12px 14px;height:auto;box-shadow:none;transition:border-color .2s var(--ease)}
.vm-form .elementor-field-textual:focus{border-color:var(--accent);outline:none}
.vm-form textarea.elementor-field-textual{min-height:120px}
.vm-form .elementor-field-type-submit .elementor-button{width:100%;justify-content:center}

/* FAQ accordion (UAEL widget, kept so the existing markup/SEO stays intact) */
.vm-faq .uael-faq-container,.vm-faq .uael-faq-accordion{background:transparent!important;box-shadow:none!important}
.vm-faq .uael-faq-accordion{border:0!important;border-top:1px solid var(--line)!important;margin:0!important;padding:0!important}
.vm-faq .uael-faq-accordion:last-child{border-bottom:1px solid var(--line)!important}
.vm-faq .uael-accordion-title{display:flex!important;align-items:center;gap:12px;padding:18px 0!important;margin:0!important;background:transparent!important;border:0!important;cursor:pointer;font-family:var(--sans);font-size:17px;font-weight:600;line-height:1.35;color:var(--ink);transition:color .2s var(--ease)}
.vm-faq .uael-accordion-title:hover{color:var(--blue)}
.vm-faq .uael-accordion-icon{color:var(--accent);flex-shrink:0;font-size:15px;order:2;margin-left:auto}
.vm-faq .uael-accordion-content{padding:0 0 22px!important;margin:0!important;background:transparent!important;border:0!important}
.vm-faq .uael-accordion-content p{font-size:16px;line-height:1.7;color:var(--ink-2);margin:0 0 12px}
.vm-faq .uael-accordion-content p:last-child{margin-bottom:0}
.vm-faq .uael-accordion-content ul,.vm-faq .uael-accordion-content ol{margin:0 0 12px;padding-left:20px}
.vm-faq .uael-accordion-content li{font-size:16px;line-height:1.7;color:var(--ink-2);margin-bottom:6px}
.vm-faq .uael-accordion-content li::marker{color:var(--accent)}

/* shared CTA block 2076: the claim under the blue card was running at the full H2 global */
.vm-cta-tpl-claim .elementor-heading-title{max-width:36ch;margin:0 auto;line-height:1.35}

/* SEO tail: service steps + USP panel */
.vm-lp-steps-lede .elementor-widget-container{max-width:70ch}
.vm-lp-step-text p{margin:0 0 8px}
.vm-lp-step-text p:last-child{margin-bottom:0}
.vm-lp-usp{border-left-color:var(--accent)!important}
.vm-lp-usp .elementor-widget-text-editor p:last-child{margin-bottom:0}
@media(max-width:900px){.vm-lp-usp{margin-left:16px;margin-right:16px}}

/* ===== Mobile off-canvas menu (header 426) ===== */
.vm-burger .elementor-button{width:44px;height:44px;justify-content:center;align-items:center;padding:0!important}
.vm-burger .elementor-button-icon{margin:0!important}
.vm-burger svg,.vm-oc-close svg{width:20px;height:20px}
.vm-oc-close .elementor-button{width:40px;height:40px;justify-content:center;align-items:center;padding:0!important}
.vm-oc-close .elementor-button-icon{margin:0!important}
.vm-oc .e-off-canvas__content{height:100%}
.vm-oc-inner{min-height:100%}

/* the panel shows the whole menu expanded - no hover flyouts on touch */
.vm-oc-nav .elementor-nav-menu--main{flex-direction:column;width:100%}
.vm-oc-nav .elementor-nav-menu--main > li{width:100%;border-bottom:1px solid var(--line-2)}
.vm-oc-nav .elementor-nav-menu--main > li:last-child{border-bottom:0}
.vm-oc-nav .elementor-nav-menu a.elementor-item{padding:14px 0!important;font-size:17px;font-weight:600;color:var(--ink)}
.vm-oc-nav .elementor-nav-menu a.elementor-item:hover,.vm-oc-nav .elementor-nav-menu a.elementor-item.elementor-item-active{color:var(--blue);background:transparent}
.vm-oc-nav .sub-menu{position:static!important;display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;box-shadow:none!important;border:0!important;width:auto!important;min-width:0!important;padding:0 0 12px!important;margin:0!important;background:none!important}
.vm-oc-nav .sub-menu a{padding:9px 0 9px 14px!important;font-size:15px!important;font-weight:500!important;color:var(--ink-3)!important;border-left:1px solid var(--line-2);border-bottom:0!important}
.vm-oc-nav .sub-menu a:hover{color:var(--blue)!important;border-left-color:var(--accent)}
.vm-oc-nav li.vm-mega-group > a{pointer-events:none;padding:14px 0 4px!important;font-size:10.5px!important;font-weight:500!important;letter-spacing:.18em!important;text-transform:uppercase!important;color:var(--muted)!important;border-left:0!important}
.vm-oc-nav .vm-menu-desc{display:none}
.vm-oc-nav .sub-arrow{display:none!important}
.vm-oc-cta .elementor-button{width:100%;justify-content:center}

/* the nav-menu widget always ships a dropdown copy of the menu - the panel only wants the main list */
.vm-oc-nav .elementor-menu-toggle{display:none!important}
.vm-oc-nav nav.elementor-nav-menu--dropdown{display:none!important}
/* panel surface: the widget background control lands on the wrapper, not on the sliding panel */
.vm-oc .e-off-canvas__main{background:transparent}
.vm-oc .e-off-canvas__content{background:var(--paper);box-shadow:-24px 0 60px -20px rgba(10,14,23,.28)}

/* Elementor leaves e-off-canvas__no-scroll-animation on <body> permanently, which locks the page.
   Keep the lock tied to the open state only. */
body.e-off-canvas__no-scroll-animation:not(.e-off-canvas__no-scroll){overflow:visible!important}
body.e-off-canvas__no-scroll{overflow:hidden!important}

/* ===== Vorteilsrechner (Seite 356) ===== */
.vm-rc-h1 em{font-style:normal;color:var(--accent)}
.vm-rc-lede .elementor-heading-title{max-width:56ch}
.vm-rc-lede b{font-weight:600;color:var(--ink)}
.vm-rc-hero-media{align-self:center}
.vm-rc-hero-img img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:1px solid var(--line);border-radius:2px}
.vm-rc-calc-lede .elementor-heading-title{max-width:52ch;margin:0 auto}

/* the detailed breakdown tables carried over from the old calculator */
.vm-rc-tcard{height:100%}
.vm-rc-tcard .calculator-container,.vm-rc-tcard .summary-box{margin:0;padding:0;background:none;border:0;box-shadow:none}
.vm-rc-tcard .summary-box h3{font-family:var(--sans);font-size:15px;font-weight:600;line-height:1.35;color:var(--ink);margin:0 0 18px}
.vm-rc-tcard .summary-box h3 strong{color:var(--blue)}
.vm-rc-tcard table{width:100%;border-collapse:collapse}
.vm-rc-tcard th{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 0 10px;border-bottom:1px solid var(--line);width:50%}
.vm-rc-tcard th.highlight{color:var(--blue)}
.vm-rc-tcard td{font-size:15px;color:var(--ink);padding:8px 0;vertical-align:top}
.vm-rc-tcard td.row-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:16px 0 2px;border-top:1px solid var(--line-2)}
.vm-rc-tcard tr:nth-child(2) td.row-title{border-top:0;padding-top:12px}
.vm-rc-tcard td.highlight,.vm-rc-tcard .highlight{color:var(--blue)}
.vm-rc-tcard sup{font-size:10px;color:var(--muted);margin-left:2px}
.vm-rc-tcard sup.accent{color:var(--accent)}
.vm-rc-tcard .summary-box > p{font-size:13px!important;line-height:1.6;color:var(--ink-3)!important;margin:18px 0 0!important;padding-top:16px;border-top:1px solid var(--line-2)}
.vm-rc-tcard .summary-box > p .highlight{font-weight:600;color:var(--accent)}

/* ===== Vorteilsrechner card: footer button + mobile head =====
   The SSR markup carries .btn.btn--accent with an inline <svg class="ar">, but no rule
   for either ever came across from the export - so the button rendered as a bare blue
   link and the arrow stretched to the full column width. */
.calc-card .calc-foot .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;padding:14px 22px;border-radius:var(--r);font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .2s var(--ease),gap .25s var(--ease)}
.calc-card .calc-foot .btn--accent{background:var(--accent);color:#fff}
.calc-card .calc-foot .btn--accent:hover{background:var(--accent-700);color:#fff;gap:14px}
.calc-card .calc-foot .btn .ar{width:16px;height:16px;flex:0 0 16px;display:block}

/* head: title, perspective switch and the live tag stop fitting on one line well before 640px */
.calc-card .calc-head{flex-wrap:wrap}
@media(max-width:760px){
  .calc-card .calc-head{flex-direction:column;align-items:flex-start;gap:14px}
  .calc-card .calc-head-right{width:100%;justify-content:space-between;gap:12px}
  .calc-card .persp-switch{flex:1 1 auto}
  .calc-card .persp-pill{flex:1 1 0;text-align:center;padding:9px 8px}
}
@media(max-width:480px){
  .calc-card .calc-foot .btn{width:100%}
  .calc-card .calc-foot .you-save .val{font-size:34px}
}

/* ===== Kontakt (Seite 364) ===== */
.vm-kt-h1 em{font-style:normal;color:var(--accent)}
.vm-kt-lede .elementor-heading-title{max-width:62ch}
.vm-kt-logo img{max-width:170px;height:auto;display:block}

/* rechte Spalte laeuft beim Scrollen mit, solange zweispaltig gelayoutet wird */
.vm-kt-aside{position:sticky;top:32px}
@media(max-width:1024px){.vm-kt-aside{position:static}}

/* Kleinteile der drei Karten in der rechten Spalte */
.vm-kt-boxlabel .elementor-heading-title{letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.vm-kt-adr .elementor-heading-title{line-height:1.65}
.vm-kt-boxnote{border-top:1px solid var(--line);padding-top:14px}
.vm-kt-boxnote .elementor-heading-title{line-height:1.5}
.vm-kt-cardcta .elementor-button{width:100%;justify-content:center}
.vm-kt-formsub .elementor-heading-title{max-width:54ch}

/* Erreichbarkeit: Tag links, Zeit rechts - ein Heading-Widget mit span-Zeilen */
.vm-kt-hourrows .elementor-heading-title{display:flex;flex-direction:column;gap:8px}
.vm-hr{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.vm-hr > span:first-child{color:var(--ink);font-weight:600}
.vm-hr > span:last-child{color:var(--ink-3);white-space:nowrap}

/* Anfahrt und Lage */
.vm-kt-head{max-width:680px}
.vm-kt-headlede .elementor-heading-title{max-width:64ch}
/* das Icon-Kaestchen ist ein Flex-Kind fester Groesse - dafuer hat der Container keine native Steuerung */
.vm-kt-ab-icon{flex:0 0 40px;width:40px;height:40px}
.vm-kt-ab-text .elementor-heading-title{line-height:1.55}

/* Vertrauens-Hinweise */
.vm-kt-trust .elementor-heading-title{line-height:1.5}
/* ---- WPForms 3796 "Kontakt NEW", eingebunden ueber den UAEL-WPForms-Styler ----
   WPForms adressiert seine Felder als div.wpforms-container-full .wpforms-form ... ,
   eine einzelne Klasse davor gewinnt dagegen nicht - daher steht ueberall der volle Praefix. */
.vm-kt-form div.wpforms-container-full{margin:0}
.vm-kt-form .uael-wpf-container,.vm-kt-form .uael-wpf{margin:0;padding:0}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-container{display:flex;flex-direction:column;gap:18px}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field{padding:0;margin:0;max-width:none}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-label{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:none;color:var(--ink-2);margin:0 0 7px;padding:0;display:block;line-height:1.3}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-required-label{color:var(--accent);border:0}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-description{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin:6px 0 0}

.vm-kt-form div.wpforms-container-full .wpforms-form input[type=text],
.vm-kt-form div.wpforms-container-full .wpforms-form input[type=email],
.vm-kt-form div.wpforms-container-full .wpforms-form input[type=tel],
.vm-kt-form div.wpforms-container-full .wpforms-form textarea{width:100%;max-width:100%;height:auto;font-family:var(--sans);font-size:15px;font-weight:400;line-height:1.5;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:13px 14px;box-shadow:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form input::placeholder,
.vm-kt-form div.wpforms-container-full .wpforms-form textarea::placeholder{color:#a3acb9}
.vm-kt-form div.wpforms-container-full .wpforms-form input:focus,
.vm-kt-form div.wpforms-container-full .wpforms-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,57,149,.12);outline:0}
.vm-kt-form div.wpforms-container-full .wpforms-form textarea{min-height:130px;resize:vertical}

/* Name und Telefon nebeneinander (WPForms-Layout-Feld, 50/50).
   WPForms baut die Spalten mit negativem Row-Margin und Spalten-Padding; sobald die Zeile
   auf dem Handy umbricht, stehen die beiden Felder dadurch 10px breiter als alle anderen.
   Deshalb Margin und Padding neutralisieren und die Spalten ueber flex + gap verteilen. */
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-row{margin:0;gap:16px}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-layout-column{padding:0;width:auto;flex:1 1 0;min-width:0}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-layout .wpforms-field{padding:0}
/* Radio-Karten (Feld 8) - der Kunde hat dem Feld die Klasse radio-buttons__VM gegeben
   und die Unterzeile im Choice-Label in einen span.rc-help gesetzt. */
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM ul{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;list-style:none}
/* WPForms setzt margin/padding der li mit !important - hier muss gleichgezogen werden */
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM li{width:auto;float:none;margin:0!important;padding:0!important;list-style:none}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM input[type=radio]{position:absolute;opacity:0;width:0;height:0;margin:0}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM label.wpforms-field-label-inline{position:relative;display:block;margin:0;padding:14px 14px 14px 38px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer;font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.2;color:var(--ink);transition:border-color .2s var(--ease),background .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM label.wpforms-field-label-inline .rc-help{display:block;margin-top:4px;font-size:11.5px;font-weight:400;line-height:1.35;color:var(--muted)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM label.wpforms-field-label-inline::before{content:"";position:absolute;left:14px;top:16px;width:16px;height:16px;border:1.5px solid #c4cad4;border-radius:50%;transition:border-color .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM label.wpforms-field-label-inline::after{content:"";position:absolute;left:17.5px;top:19.5px;width:9px;height:9px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM label.wpforms-field-label-inline:hover{border-color:var(--blue)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM input[type=radio]:checked + label.wpforms-field-label-inline{border-color:var(--accent);background:#f3faf5}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM input[type=radio]:checked + label.wpforms-field-label-inline::before{border-color:var(--accent)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM input[type=radio]:checked + label.wpforms-field-label-inline::after{transform:scale(1)}
.vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM input[type=radio]:focus-visible + label.wpforms-field-label-inline{outline:2px solid var(--blue);outline-offset:2px}
/* DSGVO-Checkbox */
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox ul{margin:0;padding:0;list-style:none}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox li{margin:0!important;padding:0!important;list-style:none}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;margin:0}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox label.wpforms-field-label-inline{position:relative;display:block;margin:0;padding:0 0 0 30px;font-family:var(--sans);font-size:13px;font-weight:400;line-height:1.55;color:var(--ink-2);cursor:pointer}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox label.wpforms-field-label-inline::before{content:"";position:absolute;left:0;top:1px;width:18px;height:18px;border:1.5px solid #c4cad4;border-radius:2px;background:#fff;transition:background .2s var(--ease),border-color .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox label.wpforms-field-label-inline::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox input[type=checkbox]:checked + label.wpforms-field-label-inline::before{background:var(--accent);border-color:var(--accent)}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox input[type=checkbox]:checked + label.wpforms-field-label-inline::after{transform:rotate(45deg) scale(1)}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox a{color:var(--blue);border-bottom:1px solid var(--accent);padding-bottom:1px}
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox a:hover{color:var(--accent)}

/* Absenden */
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-submit-container{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:10px 0 0;padding:0}
/* die Zusicherung steht im Design rechts neben dem Button, WPForms laesst dort kein eigenes Element zu */
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-submit-container::after{content:"";font-family:var(--sans);font-size:12.5px;color:var(--muted);margin-left:auto}
.vm-kt-form div.wpforms-container-full .wpforms-form button[type=submit]{display:inline-flex;align-items:center;gap:12px;width:auto;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;color:#fff;background:var(--accent);border:0;border-radius:var(--r);padding:14px 22px;margin:0;cursor:pointer;transition:background .2s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form button[type=submit]:hover{background:var(--accent-700);color:#fff}

/* Fehler und Bestaetigung */
.vm-kt-form div.wpforms-container-full .wpforms-form label.wpforms-error{display:block;margin-top:6px;font-family:var(--sans);font-size:12.5px;color:var(--red)}
.vm-kt-form div.wpforms-container-full .wpforms-form input.wpforms-error,
.vm-kt-form div.wpforms-container-full .wpforms-form textarea.wpforms-error{border-color:var(--red)}
.vm-kt-form div.wpforms-confirmation-container-full{margin:0;padding:18px 20px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r);color:var(--ink)}
.vm-kt-form div.wpforms-confirmation-container-full p{margin:0;font-size:15px}

@media(max-width:600px){
  .vm-kt-form div.wpforms-container-full .wpforms-form .radio-buttons__VM ul{grid-template-columns:1fr}
}
/* Pfeil im Absenden-Button (Design: btn--accent mit svg.ar) */
.vm-kt-form div.wpforms-container-full .wpforms-form button[type=submit]::after{content:"";display:block;width:14px;height:14px;flex:0 0 14px;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 5l7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .25s var(--ease)}
.vm-kt-form div.wpforms-container-full .wpforms-form button[type=submit]:hover::after{transform:translateX(4px)}

/* OPTIONAL-Marker rechts im Label - im Design tragen ihn nur Telefon und Lage */
.vm-kt-form div.wpforms-container-full .wpforms-form .wpforms-field-label{display:flex;align-items:center;gap:8px}
.vm-kt-form div.wpforms-container-full .wpforms-form #wpforms-3796-field_5-container .wpforms-field-label::after,
.vm-kt-form div.wpforms-container-full .wpforms-form #wpforms-3796-field_11-container .wpforms-field-label::after{content:"";margin-left:auto;font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Visitenkarte: Akzentkante oben wie im Design (Elementor faerbt immer alle vier Seiten) */
.vm-kt-card{border-top-color:var(--accent)!important}

/* ===== Vorteilsrechner (Seite 356) ===== */
.vm-vr-h1 em{font-style:normal;color:var(--accent)}
.vm-vr-lede .elementor-heading-title,.vm-vr-headlede .elementor-heading-title{max-width:64ch}
.vm-vr-head{max-width:680px}
.vm-vr-infop .elementor-heading-title{line-height:1.6}
.vm-vr-infop strong{color:var(--ink);font-weight:600}
.vm-vr-notetxt .elementor-heading-title{line-height:1.5}
.vm-vr-badge .elementor-heading-title{display:inline-block;background:rgba(0,153,51,.08);color:var(--accent-700);padding:4px 10px;border-radius:2px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.vm-vr-ctabtn .elementor-button{width:100%;justify-content:center}
.vm-vr-ctaphone .elementor-icon-list-items{justify-content:center}
.vm-vr-ctaphone .elementor-icon-list-item{justify-content:center}

/* die Sidebar laeuft neben dem Rechner mit, solange zweispaltig gelayoutet wird */
@media(min-width:1025px){.vm-vr-side{position:sticky;top:32px}}

/* Callout: Akzentkante oben - Elementor faerbt immer alle vier Seiten */
.vm-vr-callout{border-top-color:var(--accent)!important}

.vm-vr-calloutlegal .elementor-heading-title{display:inline-block;background:var(--paper-2);padding:6px 10px;border-radius:2px}

/* Vergleichsmatrix: eine Rasterflaeche aus divs, dafuer gibt es kein Elementor-Widget */
.vm-cmp{display:grid;grid-template-columns:2fr 1fr 1fr;border:1px solid var(--line);border-radius:2px;overflow:hidden}
.vm-cmp-head,.vm-cmp-feature,.vm-cmp-val{padding:16px 20px;border-bottom:1px solid var(--line)}
.vm-cmp-head{background:var(--paper-2);display:flex;flex-direction:column;gap:4px}
.vm-cmp-head.is-vm{background:rgba(0,153,51,.06);border-left:2px solid var(--accent)}
.vm-cmp-head-badge{align-self:flex-start;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-700);background:rgba(0,153,51,.12);padding:3px 8px;border-radius:2px;margin-bottom:4px}
.vm-cmp-head-label{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink)}
.vm-cmp-head-rate{font-family:var(--sans);font-size:20px;font-weight:700;color:var(--ink)}
.vm-cmp-head.is-vm .vm-cmp-head-rate{color:var(--accent)}
.vm-cmp-head-sub{font-family:var(--sans);font-size:12px;color:var(--muted)}
.vm-cmp-feature{display:flex;align-items:center;font-family:var(--sans);font-size:14px;color:var(--ink-3);background:#fff}
.vm-cmp-val{display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--sans);font-size:14px;color:var(--ink);background:#fff}
.vm-cmp-val.is-vm{background:rgba(0,153,51,.04);border-left:2px solid var(--accent)}
.vm-cmp-ok{display:inline-flex;color:var(--accent)}
.vm-cmp-no{display:inline-flex;color:var(--muted)}
.vm-cmp > *:nth-last-child(-n+3){border-bottom:0}
@media(max-width:640px){
  .vm-cmp{grid-template-columns:1fr 1fr}
  .vm-cmp-feature{grid-column:1 / -1;background:var(--paper-2);font-weight:600;color:var(--ink);padding:12px 16px}
  .vm-cmp-corner{display:none}
  .vm-cmp-head,.vm-cmp-val{padding:14px 16px}
  .vm-cmp > *:nth-last-child(-n+3){border-bottom:1px solid var(--line)}
  .vm-cmp > *:nth-last-child(-n+2){border-bottom:0}
}

/* Beispiel-Rechnungen: echte Tabelle, auf schmalen Schirmen horizontal scrollbar */
.vm-extab-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:2px}
.vm-extab{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px;min-width:640px}
.vm-extab th{background:var(--paper-2);padding:14px 20px;text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}
.vm-extab td{padding:14px 20px;border-bottom:1px solid var(--line);color:var(--ink-3);white-space:nowrap}
.vm-extab tr:last-child td{border-bottom:0}
.vm-extab .is-price{color:var(--ink);font-weight:600}
.vm-extab th.is-save{color:var(--accent-700)}
.vm-extab td.is-save{color:var(--accent-700);font-weight:600;background:rgba(0,153,51,.04)}
.vm-vr-exnote .elementor-heading-title{line-height:1.5;max-width:80ch}

@media(max-width:900px){.vm-vr-ctabtns{flex-wrap:wrap}}
@media(max-width:767px){.vm-vr-ctabtns .elementor-button{width:100%;justify-content:center}}

/* die Zusicherung neben dem Absenden-Button ist Kontaktseiten-Copy - hier nicht */
.vm-lp-form div.wpforms-container-full .wpforms-form .wpforms-submit-container::after{content:none}

/* ===== SEA-Landingpage "Geerbtes Haus verkaufen" (Seite 3532) ===== */
.vm-lp-h1 em{font-style:normal;color:var(--accent)}
.vm-lp-head{max-width:760px}
.vm-lp-headlede p,.vm-lp-lede p{font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--ink-3);margin:0 0 14px}
.vm-lp-lede p:last-child,.vm-lp-headlede p:last-child{margin-bottom:0}
.vm-lp-prose p{font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--ink-3);margin:0 0 14px}
.vm-lp-prose p:last-child{margin-bottom:0}
.vm-lp-prose strong{color:var(--ink);font-weight:600}
.vm-lp-cardtxt .elementor-heading-title{line-height:1.6}

/* Formularkarte im Hero - Akzentkante oben, Elementor faerbt sonst alle vier Seiten */
.vm-lp-formcard{border-top-color:var(--accent)!important}
@media(min-width:1025px){.vm-lp-formcard{position:sticky;top:32px}}

/* Vertrauensleiste */
.vm-lp-trust .elementor-heading-title{line-height:1.4}

/* Optionen- und Schrittkarten stehen im Raster gleich hoch */
.vm-lp-optcard,.vm-lp-step{height:100%}
.vm-lp-stepnr .elementor-heading-title{letter-spacing:.14em;display:inline-block;padding-bottom:8px;border-bottom:2px solid var(--accent)}

/* Wege aus der Blockade */
.vm-lp-way .vm-dot-sm .elementor-heading-title{display:block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:8px}
.vm-lp-waytxt .elementor-heading-title{line-height:1.6}
.vm-lp-waytxt strong{color:var(--ink);font-weight:600}

/* Steuer-Hinweis */
.vm-lp-notetxt .elementor-heading-title{line-height:1.55}
.vm-lp-notetxt strong{color:var(--ink);font-weight:600}

/* Lesekorridor fuer die langen Textbloecke */
.vm-lp-col{max-width:820px}

.vm-lp-img img{width:100%;height:auto;display:block}

/* FAQ (UAEL) an die Seitenoptik angeglichen */
/* UAEL rendert ein .uael-faq-accordion je Frage, Titel und Inhalt darin - keine item-Klasse */
.vm-lp-faq .uael-faq-accordion{background:#fff;border:1px solid var(--line)!important;border-radius:2px;margin-bottom:10px;overflow:hidden}
.vm-lp-faq .uael-accordion-title{font-family:var(--sans)!important;font-size:16px!important;font-weight:600!important;line-height:1.45!important;color:var(--ink)!important;padding:16px 18px!important;background:transparent!important;display:flex;align-items:flex-start;gap:10px}
.vm-lp-faq .uael-accordion-icon{color:var(--accent);flex:0 0 auto;margin-top:2px}
.vm-lp-faq .uael-accordion-content{padding:0 18px 16px 46px!important;background:transparent!important}
.vm-lp-faq .uael-accordion-content p{font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--ink-3);margin:0}
@media(max-width:600px){.vm-lp-faq .uael-accordion-content{padding-left:18px!important}}

@media(max-width:767px){.vm-lp-ctabtns .elementor-button{width:100%;justify-content:center}}

/* ===== Leistungsversprechen (Seite 366) - Service-Landingpage ===== */
.vm-lw-head{max-width:760px}
.vm-lw-col{max-width:860px}
.vm-lw-lede p,.vm-lw-prose p{font-family:var(--sans);font-size:16px;line-height:1.75;color:var(--ink-3);margin:0 0 16px}
.vm-lw-lede p:last-child,.vm-lw-prose p:last-child{margin-bottom:0}
.vm-lw-prose strong{color:var(--ink);font-weight:600}
.vm-lw-prose a,.vm-lw-lede a,.vm-lw-cardtxt a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s var(--ease)}
.vm-lw-prose a:hover,.vm-lw-lede a:hover,.vm-lw-cardtxt a:hover{color:var(--accent)}
.vm-lw-first{font-size:18px!important;line-height:1.65!important;color:var(--ink)!important}
.vm-lw-cardtxt .elementor-heading-title{line-height:1.6}

/* Kernversprechen: Akzentkante oben - Elementor faerbt sonst alle vier Seiten */
.vm-lw-kerncard,.vm-lw-ptcard,.vm-lw-vtcard,.vm-lw-nxcard{height:100%}
/* weicher Schatten beim Ueberfahren, bewusst langsam - Elementor setzt selbst .3s, das wird hier ueberschrieben */
.vm-lw-kerncard,.vm-lw-ptcard,.vm-lw-vtcard,.vm-lw-nxcard{transition:box-shadow .45s var(--ease),transform .45s var(--ease),border-color .45s var(--ease)}
.vm-lw-kerncard:hover,.vm-lw-ptcard:hover,.vm-lw-vtcard:hover,.vm-lw-nxcard:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.vm-lw-kerncard,.vm-lw-ptcard,.vm-lw-vtcard,.vm-lw-nxcard{transition:none}.vm-lw-kerncard:hover,.vm-lw-ptcard:hover,.vm-lw-vtcard:hover,.vm-lw-nxcard:hover{transform:none}}
.vm-lw-kerncard{border-top-color:var(--accent)!important}

/* sechs Erkennungsmerkmale: blaue Nummernmarke */
.vm-lw-ptnr .elementor-heading-title{display:inline-block;background:var(--blue);color:#fff;padding:4px 9px;border-radius:2px;letter-spacing:.1em}

/* Auftragsarten: die von uns genutzte Form ist hervorgehoben */
.vm-lw-vtcard.is-hi{border-top-color:var(--accent)!important}

/* die zehn Versprechen als nummerierte Liste */
.vm-lw-vlist .vm-lw-vrow:last-child{border-bottom:0!important}
.vm-lw-vnr .elementor-heading-title{display:block;min-width:64px;line-height:1;letter-spacing:-.02em}
@media(max-width:600px){.vm-lw-vrow{flex-direction:column;gap:10px}.vm-lw-vnr .elementor-heading-title{min-width:0}}

/* Abgrenzung */
.vm-lw-nxicon{margin-top:3px}

/* Bildplatzhalter - werden vom Kunden ersetzt */
.vm-lw-ph img{width:100%;height:auto;display:block;background:var(--paper-2)}
.vm-lw-ph-side img{aspect-ratio:4/3;object-fit:cover}

/* Abschlussband auf Blau */
.vm-lw-ctaband .vm-lw-ctasub .elementor-heading-title{max-width:62ch}
.vm-lw-ctaband .vm-lw-ctasub .elementor-heading-title a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.vm-lw-ctaband .vm-lw-ctasub .elementor-heading-title a:hover{color:var(--accent)}
@media(max-width:767px){.vm-lw-ctabtns .elementor-button{width:100%;justify-content:center}}

/* ===== Ihre Vorteile im Verkaufsprozess (Seite 370) ===== */
/* Dauer-Karten: die Zeitspanne traegt die Karte */
.vm-vp-durcard{height:100%;border-top-color:var(--accent)!important;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.vm-vp-durcard:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.vm-vp-durval .elementor-heading-title{line-height:1.15;letter-spacing:-.02em}

/* Warnhinweis zum Startpreis */
.vm-vp-warn .vm-lw-cardtxt .elementor-heading-title{line-height:1.65}

/* Fehlerkarten: rote Nummer statt blauer */
.vm-vp-errcard{height:100%;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.vm-vp-errcard:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.vm-vp-errnr .elementor-heading-title{display:inline-block;background:var(--red);color:#fff;padding:4px 9px;border-radius:2px;letter-spacing:.1em}

/* Phasenkarten */
.vm-vp-phase{height:100%}
.vm-vp-plabel .elementor-heading-title{letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.vm-vp-picon{margin-top:2px}
.vm-vp-pitem .vm-lw-cardtxt .elementor-heading-title{line-height:1.6}

/* ===== Bewertungs-Quiz (WPForms 3248, UAEL styler) on page 368 ===== */
/* the three explanation blocks are sources for #content-show, never shown in place */
#zustand,#ausstattung,#info{display:none!important}

/* the little i badge after the labels of the fields that have help */
.vm-quiz .wpforms-field-label{display:inline-flex!important;align-items:center;gap:6px;flex-wrap:nowrap!important}
#wpforms-3248-field_9-container .wpforms-field-label::after,#wpforms-3248-field_13-container .wpforms-field-label::after,#wpforms-3248-field_19-container .wpforms-field-label::after,#wpforms-3248-field_20-container .wpforms-field-label::after,#wpforms-3248-field_21-container .wpforms-field-label::after,#wpforms-3248-field_22-container .wpforms-field-label::after{content:"i";display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;flex:0 0 17px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-family:var(--sans);font-size:10px;font-weight:700;font-style:italic;line-height:1;opacity:.85;cursor:help;transition:background .2s var(--ease),color .2s var(--ease)}
#wpforms-3248-field_9-container .wpforms-field-label:hover::after,#wpforms-3248-field_13-container .wpforms-field-label:hover::after,#wpforms-3248-field_19-container .wpforms-field-label:hover::after,#wpforms-3248-field_20-container .wpforms-field-label:hover::after,#wpforms-3248-field_21-container .wpforms-field-label:hover::after,#wpforms-3248-field_22-container .wpforms-field-label:hover::after{background:var(--accent);color:#fff;opacity:1}

/* help panel: nothing at all until a field asks for it */
.vm-quiz-help{padding:0;border:0;background:none;min-height:0}
.vm-quiz-help:not(.is-open){display:none}
.vm-quiz-help.is-open{display:block;background:var(--blue-50);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r);padding:22px 24px}
.vm-quiz-help p{font-size:14px;line-height:1.65;color:var(--ink-2);margin:0 0 10px}
.vm-quiz-help p:last-child{margin-bottom:0}
.vm-quiz-help strong{font-weight:600;color:var(--ink)}
@media(min-width:901px){.vm-quiz-help{position:sticky;top:calc(var(--nav-h) + 24px)}}
/* form chrome: UAEL/WPForms defaults leave the buttons light grey with white text */
.vm-quiz .wpforms-form input[type=text],.vm-quiz .wpforms-form input[type=email],.vm-quiz .wpforms-form input[type=tel],.vm-quiz .wpforms-form input[type=number],.vm-quiz .wpforms-form select,.vm-quiz .wpforms-form textarea{background:var(--paper)!important;border:1px solid var(--line)!important;border-radius:var(--r)!important;color:var(--ink)!important;font-family:var(--sans)!important;font-size:15px!important;padding:12px 14px!important;box-shadow:none!important;transition:border-color .2s var(--ease)}
.vm-quiz .wpforms-form input:focus,.vm-quiz .wpforms-form select:focus,.vm-quiz .wpforms-form textarea:focus{border-color:var(--accent)!important;outline:none!important;box-shadow:none!important}
.vm-quiz .wpforms-form .wpforms-field-label{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--ink)}
.vm-quiz .wpforms-form .wpforms-required-label{color:var(--accent)!important}
.vm-quiz .wpforms-form .wpforms-field-sublabel{font-size:12px;color:var(--muted)}

.vm-quiz .wpforms-form .wpforms-page-button,.vm-quiz .wpforms-form button[type=submit]{font-family:var(--sans)!important;font-size:14px!important;font-weight:600!important;letter-spacing:.02em!important;border-radius:var(--r)!important;border:1px solid transparent!important;padding:15px 28px!important;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.vm-quiz .wpforms-form .wpforms-page-next,.vm-quiz .wpforms-form button[type=submit]{background:var(--accent)!important;color:#fff!important}
.vm-quiz .wpforms-form .wpforms-page-next:hover,.vm-quiz .wpforms-form button[type=submit]:hover{background:var(--accent-700)!important;color:#fff!important}
.vm-quiz .wpforms-form .wpforms-page-prev{background:transparent!important;color:var(--ink-3)!important;border-color:var(--line)!important;margin-right:10px}
.vm-quiz .wpforms-form .wpforms-page-prev:hover{background:var(--paper-2)!important;color:var(--ink)!important;border-color:var(--ink-3)!important}

/* image choices + radio/checkbox pills */
.vm-quiz .wpforms-form .wpforms-image-choices-item label{border-radius:var(--r)}
.vm-quiz .wpforms-form .wpforms-image-choices-modern .wpforms-selected label{outline:2px solid var(--accent);outline-offset:2px}
.vm-quiz .wpforms-form .wpforms-field-radio li label,.vm-quiz .wpforms-form .wpforms-field-checkbox li label{font-size:15px;color:var(--ink-2)}

/* the m2 suffix on the two area fields */
#wpforms-3248-field_14-container,#wpforms-3248-field_15-container{position:relative}
#wpforms-3248-field_14-container::after,#wpforms-3248-field_15-container::after{content:"m²";position:absolute;right:14px;bottom:25%;font-size:13px;color:var(--muted);pointer-events:none}

@media(min-width:768px){#wpforms-3248-field_1.wpforms-image-choices-modern{display:flex!important;flex-wrap:wrap!important}#wpforms-3248-field_1.wpforms-image-choices-modern .wpforms-image-choices-item{flex:0 0 45%!important;max-width:50%!important;box-sizing:border-box!important}}
@media(max-width:767px){#wpforms-3248-field_1.wpforms-image-choices-modern .wpforms-image-choices-item{flex:0 0 100%!important;max-width:100%!important}}

/* below 900 the quiz stacks: form first, help panel underneath */
@media(max-width:900px){.vm-quiz{width:100%!important;max-width:100%!important}.vm-quiz-help{position:static!important;width:100%!important}}

/* 18 Standorte: two columns on desktop so the list stays level with the map */
.vm-city-list .elementor-heading-title{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.vm-city-list .vm-city-row:nth-last-child(2){border-bottom:0}
@media(max-width:900px){.vm-city-list .elementor-heading-title{grid-template-columns:1fr}.vm-city-list .vm-city-row:nth-last-child(2){border-bottom:1px solid var(--line)}}

/* ===== Standorte-Karte (homepage) ===== */
.vm-map-wrap{position:relative;width:100%;height:420px;border-radius:var(--r-2);background:var(--paper-2);overflow:hidden}
@media(max-width:768px){.vm-map-wrap{height:320px}}
.vm-region-map{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.vm-map-placeholder{position:absolute!important;inset:0;z-index:10;text-align:center;background:var(--paper-2);border:1px dashed var(--line);border-radius:var(--r-2)}
.vm-map-note .elementor-heading-title{max-width:34ch;margin:0 auto}

/* markers - divIcons from the original build */
.vm-pin{position:relative;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer}
.vm-pin-dot{display:block;width:10px;height:10px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.22);flex-shrink:0;transition:transform .2s var(--ease)}
.vm-pin:hover .vm-pin-dot{transform:scale(1.25)}
.vm-pin.is-hot .vm-pin-dot{width:14px;height:14px;background:var(--accent)}
/* the label is centred under the dot without touching the marker element itself -
   Leaflet owns .vm-pin transform for positioning, overriding it moves the marker */
.vm-pin-lbl{position:absolute;top:100%;left:5px;transform:translateX(-50%);margin-top:4px;font-family:var(--sans);font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap;background:rgba(255,255,255,.88);padding:1px 5px;border-radius:2px;pointer-events:none}
.vm-pin.is-hot .vm-pin-lbl{color:var(--accent)}
.leaflet-tooltip.vm-tooltip{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line);box-shadow:0 6px 18px -8px rgba(0,0,0,.25);border-radius:var(--r)}
.leaflet-tooltip.vm-tooltip:before{border-top-color:var(--line)}

/* leaflet chrome in the site's language */
.vm-region-map .leaflet-container{background:var(--paper-2);font-family:var(--sans);font-size:12px}
.vm-region-map .leaflet-control-attribution{background:rgba(255,255,255,.85);font-size:10px;color:var(--ink-3)}
.vm-region-map .leaflet-control-attribution a{color:var(--blue)}
.vm-region-map .leaflet-control-zoom a{background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:500}
.vm-region-map .leaflet-control-zoom a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ===== Dienstleistungen aus einer Hand (Seite 372) - Service-Landingpage ===== */
/* Karten: 8px Radius wie auf 366/370, weicher Schatten beim Ueberfahren, bewusst langsam */
.vm-dh-card{height:100%;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.vm-dh-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.vm-dh-card{transition:none}.vm-dh-card:hover{transform:none}}
/* Akzentkante oben - Elementor faerbt sonst alle vier Seiten */
.vm-dh-card--acc{border-top-color:var(--accent)!important}
.vm-dh-card--blue{border-top-color:var(--blue)!important}
.vm-dh-card--red{border-top-color:var(--red)!important}

/* Intro: Kennzahlenkasten rechts neben dem Fliesstext */
.vm-dh-statbox{border-top-color:var(--accent)!important}
.vm-dh-statval .elementor-heading-title{line-height:1;letter-spacing:-.02em;white-space:nowrap}
.vm-dh-statbox .vm-dh-statrow:last-child{border-bottom-width:0!important;margin-bottom:0!important;padding-bottom:0!important}

/* Icon-Zeilen in den Karten und die getoenten Hinweisstreifen */
.vm-dh-icon,.vm-dh-nxicon{margin-top:2px}
.vm-dh-item .vm-lw-cardtxt .elementor-heading-title,.vm-dh-note .vm-lw-cardtxt .elementor-heading-title{line-height:1.6}
.vm-dh-note .vm-lw-cardtxt a,.vm-dh-vrow .vm-lw-cardtxt a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s var(--ease)}
.vm-dh-note .vm-lw-cardtxt a:hover,.vm-dh-vrow .vm-lw-cardtxt a:hover{color:var(--accent)}
.vm-dh-note .vm-lw-cardtxt strong{color:var(--ink);font-weight:700}
.vm-dh-cardfoot .elementor-heading-title{line-height:1.6}

/* Was uns unterscheidet: nummerierte Liste mit Haarlinie zwischen den Zeilen */
.vm-dh-vlist .vm-dh-vrow:last-child{border-bottom-width:0!important;margin-bottom:0!important;padding-bottom:0!important}
.vm-dh-vnr .elementor-heading-title{display:block;min-width:64px;line-height:1;letter-spacing:-.02em}
/* Elementors eigene Regel steht auf .elementor-element.elementor-element-<id> und gewinnt sonst */
@media(max-width:600px){.vm-dh-vlist .vm-dh-vrow{flex-direction:column!important;gap:10px!important}.vm-dh-vnr .elementor-heading-title{min-width:0}}
/* ===== Vermietetes Haus verkaufen (Seite 1915) - Service-Landingpage ===== */
/* der Rechtshinweis am Seitenende steht bewusst leise: grauer Grund, Haarlinie, kleine Schrift */
.vm-vv-disclaimer{border:1px solid var(--line)}
.vm-vv-disclaimer .vm-lw-cardtxt .elementor-heading-title{line-height:1.65}
/* ===== Aufzaehlungen als natives Icon-List-Widget (ab Seite 3236) ===== */
.vm-svc-list .elementor-icon-list-item{align-items:flex-start}
/* Elementors icon_color schreibt `color` nur auf das i-Element und `fill` auf das svg.
   Unsere Icons sind Strich-Grafiken, deren fill der Kit-Schutz auf none zwingt - der
   stroke erbt dadurch die Textfarbe. Farbe deshalb hier, aus der Kit-Variablen. */
.vm-svc-list--acc .elementor-icon-list-icon svg[stroke]{stroke:var(--e-global-color-accent)}
.vm-svc-list--red .elementor-icon-list-icon svg[stroke]{stroke:var(--e-global-color-vmred)}
.vm-svc-list--blue .elementor-icon-list-icon svg[stroke]{stroke:var(--e-global-color-primary)}
.vm-svc-list--muted .elementor-icon-list-icon svg[stroke]{stroke:var(--e-global-color-vmmuted)}
.vm-svc-list--ink .elementor-icon-list-icon svg[stroke]{stroke:var(--e-global-color-secondary)}
.vm-svc-list a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.vm-svc-list a:hover{color:var(--accent)}

/* Die Karten der Serviceseiten schweben jetzt nativ (Hover-Schatten und 2 px Anheben
   im Elementor-Panel). Nur die Ruecksicht auf prefers-reduced-motion bleibt CSS. */
@media(prefers-reduced-motion:reduce){
  [class*="vm-dh-card--"]{--border-transition:0s;--e-con-transform-transition-duration:0s}
  [class*="vm-dh-card--"]:hover{--e-con-transform-translateY:0}
}

/* Links im Fliesstext. Elementor hat fuer die Linkfarbe innerhalb eines Text-Widgets
   keinen Regler und im Kit sind die Link-Globals nicht gesetzt - das ist die eine
   Stelle, an der ein Textblock noch eine Klasse braucht. */
.vm-svc-link a{color:var(--e-global-color-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s var(--ease)}
.vm-svc-link a:hover{color:var(--e-global-color-accent)}

/* ===== Scheidungsimmobilie verkaufen (Seite 3236) ===== */
.vm-sc-quotebox .vm-lw-cardtxt .elementor-heading-title{line-height:1.65}
/* ===== Standortseiten 2026 (Template "VM Standort - Single") ===== */
/* Seitenverhaeltnis und Zuschnitt hat das Bild-Widget nicht als Regler */
.vm-lp2-heroimg img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;border:1px solid var(--line);border-radius:8px}
.vm-lp2-lede .elementor-heading-title{max-width:56ch}
/* Schrittnummer: feste Spaltenbreite, damit die Titel auf einer Linie beginnen */
.vm-lp2-step .vm-lp2-nr{min-width:28px}
.vm-lp2-btnfull .elementor-button{width:100%;justify-content:center}
/* einspaltig wird 4:3 zu hoch - flacher zuschneiden */
@media(max-width:1024px){.vm-lp2-heroimg img{aspect-ratio:16/9}}

/* ===== SEA-Landingpages (Google Ads, Canvas-Template) ===== */
/* Kopfleiste bleibt sichtbar - auf bezahltem Traffic ist der Anruf die zweite Conversion */
.vm-sea-topbar{position:sticky;top:0;z-index:60;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.vm-sea-topcontact .elementor-icon-list-items{justify-content:flex-end}
/* Hero */
.vm-sea-hero .vm-eyebrow:before{background:var(--accent)}
.vm-sea-h1 .elementor-heading-title{line-height:1.12}
.vm-sea-chips .elementor-heading-title{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.vm-sea-chips span{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;letter-spacing:.02em}
.vm-sea-chips span:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:0 0 6px}
/* USP-Liste im Hero, heller Text auf dunklem Grund */
.vm-sea-herolist{margin-top:24px}
.vm-sea-herolist .elementor-icon-list-item{align-items:flex-start}
/* Kontaktband */
.vm-sea-portrait img{width:104px;height:104px;object-fit:cover;object-position:top center;border-radius:8px;display:block}
.vm-sea-regionimg img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
/* Das Formular im Hero-Bereich darf nicht ausufern */
.vm-sea-form .wpforms-container{margin:0}
.vm-sea-legal{display:flex;gap:12px;justify-content:flex-end}
.vm-sea-legal a{color:var(--foot-2, #fff)}
.vm-sea-legal a:hover{color:var(--accent)}
.vm-sea-legal span{opacity:.4}
/* Klebende Aktionsleiste, nur Handy. Die Kopfleisten-Schaltflaeche weicht dort. */
.vm-sea-barwrap{padding:0}
.vm-sea-bar{display:none}
@media(max-width:900px){
  .vm-sea-topbtn{display:none}
  .vm-sea-topcontact .elementor-icon-list-items{justify-content:flex-start}
  .vm-sea-legal{justify-content:flex-start}
  .vm-sea-bar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:1fr 1.4fr;gap:1px;background:var(--line);box-shadow:0 -6px 24px rgba(0,0,0,.12)}
  .vm-sea-bar a{display:flex;align-items:center;justify-content:center;padding:15px 12px;font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.2;text-decoration:none}
  .vm-sea-bar__call{background:#fff;color:var(--ink)}
  .vm-sea-bar__cta{background:var(--accent);color:#fff}
  .vm-sea-bar__cta:hover,.vm-sea-bar__call:hover{filter:brightness(.96)}
  /* Platz fuer die Leiste, ohne dass die Seite eine eigene Body-Klasse braucht */
  body:has(.vm-sea-bar){padding-bottom:54px}
}
@media(prefers-reduced-motion:reduce){.vm-sea-topbar{position:static}}

/* ===== Haus-verkaufen-Landingpages ===== */
.vm-haus-phaseimg img,.vm-haus-vimg img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.vm-haus-heroportrait img{width:100%;max-width:420px;height:auto;display:block;margin-left:auto}
.vm-haus-kontaktimg img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
/* Die uebernommenen Detailtabellen laufen auf schmalen Schirmen ueber - eigener Rahmen */
.vm-haus-tables .vm-rc-tcard{overflow-x:auto}
@media(max-width:1024px){.vm-haus-heroportrait img{max-width:320px;margin:0 auto}}


/* ---------- Autorenseite (vm-au) ---------- */
.vm-au-tl{position:relative}
.vm-au-tl::before{content:"";position:absolute;left:5px;top:7px;bottom:26px;width:1px;background:#E2E5EA}
.vm-au-tl > .vm-au-tl-item{position:relative}
.vm-au-tl > .vm-au-tl-item::before{content:"";position:absolute;left:0;top:4px;width:11px;height:11px;border-radius:50%;background:#FFFFFF;border:2px solid #003995;box-sizing:border-box}
.vm-au-tl > .vm-au-tl-item:last-child{padding-bottom:0}
.vm-au-tl a{color:inherit;text-decoration:none;border-bottom:1px solid #C9D6EE}
.vm-au-tl a:hover{border-bottom-color:#003995}
.vm-au-card a{text-decoration:none}
@media (max-width:767px){.vm-au-hero{padding-top:44px;padding-bottom:44px}.vm-au-chips{gap:6px}.vm-au-hero img{max-width:190px}}

.vm-au-hero img{border-radius:8px;display:block}
.vm-au-chips > .elementor-widget > .elementor-widget-container{border:1px solid #C9D6EE}
