/*
Theme Name: verwalt.ist Child
Theme URI: https://verwalt.ist
Description: Child-Theme für verwalt.ist (Hausverwaltung & Immobilien Ravensburg). Basiert auf Hello Elementor. Hostet Hanken Grotesk lokal (DSGVO).
Author: DOOZY digital
Template: hello-elementor
Version: 1.1.11
Text Domain: verwaltist-child
*/

/* Lokale Fonts werden via fonts.css geladen (functions.php). */

/* Team-Karten: Porträt-Bilder einheitlich beschneiden (3:4) */
.elementor-widget.vi-team-img img {
    width: 100% !important;
    height: 300px !important;
    object-fit: cover;
    object-position: center;
    display: block;
}
.elementor-widget.vi-team-img,
.elementor-widget.vi-team-img .elementor-widget-container,
.elementor-widget.vi-team-img .elementor-image { width: 100%; line-height: 0; }

/* Team-Karten (Konzept A – blaue Karte mit Foto, Rolle, Qualifikation, Kontakt) */
.vi-tcard { overflow: hidden; }
.vi-tcard-img img {
    width: 100% !important;
    aspect-ratio: 4 / 5;
    height: auto !important;
    object-fit: cover;
    object-position: center top; /* Personen: Kopf bleibt drin */
    display: block;
    border-radius: 12px;
}
/* Emma (Hund): unten ausrichten, damit die Pfoten nicht abgeschnitten werden */
.vi-tcard-img--bottom img { object-position: center bottom !important; }
.vi-tcard-img,
.vi-tcard-img .elementor-widget-container,
.vi-tcard-img .elementor-image { width: 100%; line-height: 0; }
.vi-tcard-body { flex-grow: 1 !important; }
.vi-tcard-quali { opacity: .82; }
.vi-tcard-quali p { margin: 0; }
/* Kontaktliste an die Karten-Unterkante heften */
.vi-tcard-contact { margin-top: auto; padding-top: 14px; }
.vi-tcard-contact .elementor-icon-list-text,
.vi-tcard-contact .elementor-icon-list-item > a { color: #fff !important; }
.vi-tcard-contact .elementor-icon-list-icon i,
.vi-tcard-contact .elementor-icon-list-icon svg { color: #fff !important; fill: #fff !important; }
.vi-tcard-contact .elementor-icon-list-text { font-size: 13.5px; }
.vi-tcard-contact .elementor-icon-list-item:hover .elementor-icon-list-text { text-decoration: underline; }

/* FAQ – Konzept-A-Look: Linien-Trenner statt Boxen, transparent */
.vi-faq .elementor-accordion-item {
    border: none !important;
    border-bottom: 1px solid #E5E9F1 !important;
    background: transparent !important;
}
.vi-faq .elementor-tab-title {
    background: transparent !important;
    padding: 22px 2px !important;
    border: none !important;
}
.vi-faq .elementor-tab-content {
    background: transparent !important;
    padding: 0 2px 22px !important;
    border: none !important;
}

/* Kontakt-CTA – blaue Glows (wie Konzept A) */
#kontakt-cta { position: relative; overflow: hidden; }
#kontakt-cta::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background:
        radial-gradient(circle at 82% -10%, rgba(42,75,155,.55), transparent 52%),
        radial-gradient(circle at 0% 120%, rgba(42,75,155,.40), transparent 45%);
}
#kontakt-cta > .e-con-inner, #kontakt-cta > * { position: relative; z-index: 1; }

/* Trustbar – einheitlicher Icon-Text-Abstand (feste Icon-Box, Glyph zentriert) */
.vi-trustbar .elementor-icon-list-icon {
    width: 20px !important;
    display: inline-flex; justify-content: center; align-items: center;
}
.vi-trustbar .elementor-icon-list-text { margin-left: 7px; }

/* Nav-Hover – Underline wächst von links (wie Konzept A), statt Elementor-Fade */
.vi-nav .elementor-nav-menu .elementor-item { position: relative; }
.vi-nav .elementor-nav-menu .elementor-item::after {
    content: ''; position: absolute; left: 20px; right: 20px; top: 50%; margin-top: 13px;
    height: 2px; background: #2A4B9B; transform: scaleX(0); transform-origin: left center; transition: transform .25s ease;
}
.vi-nav .elementor-nav-menu .elementor-item:hover::after,
.vi-nav .elementor-nav-menu .elementor-item.elementor-item-active::after { transform: scaleX(1); }

/* Paket-Karten: Button unten verankern + volle Breite (wie Konzept A) */
.elementor-widget.vi-plan-btn { margin-top: auto; width: 100%; }
.vi-plan-btn .elementor-button { width: 100%; justify-content: center; }

/* ===== Immobilien-Übersicht (Shortcode) ===== */
.vi-immo__filter { display:flex; gap:10px; justify-content:center; margin-bottom:38px; flex-wrap:wrap; }
.vi-immo__fbtn { padding:10px 22px; border-radius:999px; border:1.6px solid #e5e9f1; background:#fff; font-weight:700; font-size:.9rem; color:#5b6470; cursor:pointer; transition:background .2s,border-color .2s,color .2s; }
.vi-immo__fbtn.is-active, .vi-immo__fbtn:hover { background:#2A4B9B; border-color:#2A4B9B; color:#fff; }
.vi-immo__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.vi-immo__card { background:#fff; border:1px solid #e5e9f1; border-radius:18px; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.vi-immo__card:hover { transform:translateY(-5px); box-shadow:0 24px 46px -30px rgba(17,19,23,.3); }
.vi-immo__link { display:block; color:inherit; text-decoration:none; }
.vi-immo__photo { aspect-ratio:16/10; background-size:cover; background-position:center; position:relative; background-color:#eef2fb; }
.vi-immo__badge { position:absolute; top:14px; left:14px; padding:.42rem .8rem; border-radius:8px; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:#fff; }
.vi-immo__badge--verfuegbar { background:#2A4B9B; }
.vi-immo__badge--reserviert { background:#d9892b; }
.vi-immo__badge--vermietet { background:#2f7d6e; }
.vi-immo__badge--verkauft { background:#5b6470; }
.vi-immo__body { padding:22px 24px 24px; }
.vi-immo__typ { font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#2A4B9B; }
.vi-immo__title { font-size:1.2rem; font-weight:800; color:#111317; margin:6px 0 14px; line-height:1.25; }
.vi-immo__meta { display:flex; flex-wrap:wrap; gap:14px; color:#5b6470; font-size:.9rem; font-weight:600; padding-bottom:14px; border-bottom:1px solid #e5e9f1; }
.vi-immo__price { margin-top:14px; font-size:1.25rem; font-weight:800; color:#2A4B9B; }
@media(max-width:980px){ .vi-immo__grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:640px){ .vi-immo__grid{grid-template-columns:1fr} }

/* ===== Immobilie Single ===== */
.vi-single { max-width:1100px; margin:0 auto; padding:56px 24px 80px; }
.vi-single__back { font-size:.9rem; font-weight:700; color:#2A4B9B; text-decoration:none; }
.vi-single__hero { display:grid; grid-template-columns:1.2fr .8fr; gap:34px; margin-top:20px; align-items:start; }
.vi-single__photo { aspect-ratio:16/11; background-size:cover; background-position:center; border-radius:20px; background-color:#eef2fb; position:relative; }
.vi-single__badge { position:absolute; top:16px; left:16px; padding:.45rem .9rem; border-radius:9px; font-size:.76rem; font-weight:800; text-transform:uppercase; color:#fff; }
.vi-single__typ { font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#2A4B9B; }
.vi-single__title { font-size:clamp(1.8rem,3.5vw,2.6rem); font-weight:800; color:#111317; line-height:1.1; margin:8px 0 6px; }
.vi-single__price { font-size:1.6rem; font-weight:800; color:#2A4B9B; margin:18px 0; }
.vi-single__facts { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:#e5e9f1; border:1px solid #e5e9f1; border-radius:14px; overflow:hidden; margin:18px 0; }
.vi-single__fact { background:#fff; padding:14px 18px; }
.vi-single__fact b { display:block; font-size:1.1rem; color:#111317; }
.vi-single__fact span { font-size:.82rem; color:#5b6470; }
.vi-single__desc { margin-top:34px; max-width:760px; color:#3a4250; line-height:1.7; }
.vi-single__cta { margin-top:34px; display:inline-flex; gap:.6rem; align-items:center; background:#2A4B9B; color:#fff; padding:.9rem 1.6rem; border-radius:10px; font-weight:700; text-decoration:none; transition:background .2s; }
.vi-single__cta:hover { background:#1f3c7e; }
@media(max-width:820px){ .vi-single__hero{grid-template-columns:1fr} }

.vi-single__facts .vi-single__fact:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* ===== Immobilien-Detail (ImmoScout-Aufbau) ===== */
.vi-det { max-width:1100px; margin:0 auto; padding:56px 24px 80px; }
.vi-det__hero { display:grid; grid-template-columns:1.2fr .8fr; gap:34px; margin-top:20px; align-items:start; }
.vi-det__pricebox { margin:18px 0; padding:18px 20px; background:#f5f7fb; border:1px solid #e5e9f1; border-radius:14px; }
.vi-det__price { font-size:1.7rem; font-weight:800; color:#2A4B9B; line-height:1.15; }
.vi-det__price small { font-size:.95rem; font-weight:700; color:#5b6470; }
.vi-det__minilist { margin:12px 0 0; display:grid; gap:6px; }
.vi-det__minilist .vi-spec { display:flex; justify-content:space-between; gap:14px; font-size:.9rem; padding:4px 0; border:0; }
.vi-det__minilist dt { color:#5b6470; margin:0; }
.vi-det__minilist dd { margin:0; font-weight:700; color:#111317; text-align:right; }
.vi-det__phone { margin-top:14px; font-size:.9rem; color:#5b6470; }
.vi-det__phone a { color:#2A4B9B; font-weight:700; text-decoration:none; }

.vi-det__body { margin-top:50px; }
.vi-det__sec { margin-top:38px; }
.vi-det__h2 { font-size:1.4rem; font-weight:800; color:#111317; margin:0 0 14px; padding-bottom:10px; border-bottom:2px solid #e5e9f1; }
.vi-det__grid { display:grid; grid-template-columns:1fr 1fr; gap:0 44px; margin:0; }
.vi-spec { display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px solid #eef1f6; }
.vi-spec dt { margin:0; color:#5b6470; font-size:.94rem; }
.vi-spec dd { margin:0; font-weight:700; color:#111317; font-size:.94rem; text-align:right; }

.vi-det__tags { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.vi-det__tags li { background:#eef2fb; color:#2A4B9B; font-weight:700; font-size:.9rem; padding:.5rem .9rem; border-radius:9px; }
.vi-det__tags li::before { content:"✓"; margin-right:.45rem; font-weight:800; }

.vi-det__text { color:#3a4250; line-height:1.75; max-width:780px; }
.vi-det__text p { margin:0 0 1rem; }
.vi-det__sec .vi-det__tags + .vi-det__text { margin-top:18px; }

/* Energieeffizienzklasse-Badge (A+ … H) */
.vi-eec { display:inline-block; min-width:2.4rem; text-align:center; padding:.26rem .6rem; border-radius:7px; color:#fff; font-weight:800; font-size:.9rem; }
.vi-eec--aplus,.vi-eec--a { background:#1faa59; }
.vi-eec--b { background:#5bb947; }
.vi-eec--c { background:#a5c93a; color:#2a3a00; }
.vi-eec--d { background:#f2d125; color:#3a3400; }
.vi-eec--e { background:#f5a623; }
.vi-eec--f { background:#ec7a26; }
.vi-eec--g { background:#e0541f; }
.vi-eec--h { background:#d0021b; }

.vi-det__gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.vi-det__galitem { aspect-ratio:4/3; background-size:cover; background-position:center; border-radius:12px; background-color:#eef2fb; display:block; }

.vi-det__cta { margin-top:48px; background:#111317; border-radius:20px; padding:44px 40px; text-align:center; color:#fff; }
.vi-det__cta h2 { font-size:1.5rem; font-weight:800; margin:0 0 8px; color:#fff; }
.vi-det__cta p { color:#c7cdd6; margin:0 0 22px; }
.vi-det__ctabtns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; align-items:center; }
/* Im CTA-Zweierblock den Standalone-Abstand des blauen Buttons zuruecknehmen -> beide Buttons auf einer Linie */
.vi-det__ctabtns .vi-single__cta { margin-top:0; }
.vi-det__cta-tel { color:#fff; font-weight:800; font-size:1.1rem; text-decoration:none; border:2px solid rgba(255,255,255,.3); padding:.78rem 1.4rem; border-radius:10px; }

/* ---- Detail-Layout: Foto volle Breite -> 2 Spalten (Infos | Beschreibung) ---- */
.vi-det__photo-full { position:relative; margin-top:20px; aspect-ratio:16/7; background-size:cover; background-position:center; background-color:#eef2fb; border-radius:20px; }
.vi-det__layout { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:38px; align-items:start; }
.vi-det__infos, .vi-det__beschreibung { min-width:0; }
.vi-det__infos .vi-single__title { font-size:clamp(1.5rem,2.2vw,2rem); margin:6px 0 0; }
.vi-det__layout .vi-det__grid { grid-template-columns:1fr; }             /* Specs in den schmalen Spalten einspaltig */
.vi-det__infos .vi-det__sec:first-of-type { margin-top:30px; }
.vi-det__beschreibung .vi-det__sec:first-of-type { margin-top:0; }
.vi-det__inline-cta { margin-top:32px; }
.vi-det__inline-cta .vi-single__cta { margin-top:0; }
@media(max-width:1024px){
  .vi-det__layout { grid-template-columns:1fr; gap:0; }
  /* Spalten aufloesen, damit die Sektionen per CSS-order neu gestapelt werden
     (Reihenfolge: Intro -> Objektbeschreibung -> Preise -> Flaechen -> Objektdetails
     -> Ausstattung -> Lage -> Sonstiges -> Energieausweis -> CTA). */
  .vi-det__infos, .vi-det__beschreibung { display:contents; }
  .vi-det__head { margin:0; }
  .vi-det__infos .vi-det__sec, .vi-det__beschreibung .vi-det__sec, .vi-det__inline-cta { margin-top:34px; }
  .vi-det__infos .vi-det__sec:first-of-type, .vi-det__beschreibung .vi-det__sec:first-of-type { margin-top:34px; }
  .vi-det__photo-full { aspect-ratio:16/9; }
}

@media(max-width:820px){
  .vi-det__hero{ grid-template-columns:1fr; }
  .vi-det__grid{ grid-template-columns:1fr; }
  .vi-det__gallery{ grid-template-columns:repeat(2,1fr); }
}

/* ===== Foto-Hintergründe mit Overlay (Hero-Visual + Foto-Bänder) ===== */
.vi-heroshot, .vi-photoband { position: relative; isolation: isolate; }
.vi-heroshot::before, .vi-photoband::before {
    content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:0;
}
.vi-heroshot::before  { background:linear-gradient(155deg, rgba(20,32,68,.12), rgba(20,32,68,.48)); }
.vi-photoband::before { background:linear-gradient(180deg, rgba(15,23,50,.46), rgba(15,23,50,.64)); }
.vi-heroshot > *, .vi-photoband > * { position: relative; z-index: 1; }

/* ===== Pakete (WEG-/Miet-/Gewerbeverwaltung) ===== */
.vi-plan { position: relative; }
.vi-plan--featured::before {
    content: "Beliebt"; position: absolute;
    top: 18px; right: 18px; bottom: auto; left: auto;
    width: max-content; height: auto; z-index: 3;
    background: #fff; color: #2A4B9B; font-size: 11px; font-weight: 800; line-height: 1.5;
    letter-spacing: .08em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px;
}
/* Lange Leistungstexte: Häkchen/Plus an der ersten Zeile statt mittig */
.vi-plan-list .elementor-icon-list-item { align-items: flex-start; margin-bottom: 2px; }
.vi-plan-list .elementor-icon-list-icon { padding-top: 4px; }
.vi-plan-list .elementor-icon-list-text { line-height: 1.45; }

/* ===== Blog-Übersicht (home.php): Foto-Header-Band + Beitrags-Grid ===== */
.vi-blogindex { max-width: 1100px; margin: 0 auto; padding: 44px 24px 80px; }
.vi-pagehead {
    position: relative; isolation: isolate; overflow: hidden;
    background-size: cover; background-position: center; background-color: #2A4B9B;
    border-radius: 22px; min-height: 300px;
    display: flex; align-items: center; justify-content: center; text-align: center;
    padding: 60px 40px;
}
.vi-pagehead::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg, rgba(15,23,50,.46), rgba(15,23,50,.64)); z-index: 0; }
.vi-pagehead__inner { position: relative; z-index: 1; max-width: 760px; }
.vi-pagehead__eyebrow { display: block; color: #fff !important; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .16em; opacity: .92; margin-bottom: 10px; }
.vi-pagehead__title { color: #fff !important; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; line-height: 1.05; margin: 0 0 12px; }
.vi-pagehead__text { color: #eef2fb !important; font-size: 18px; line-height: 1.6; margin: 0; }
.vi-blogindex__grid { margin-top: 40px; }
.vi-blogindex .navigation, .vi-blogindex .pagination { margin-top: 40px; }
.vi-blogindex .nav-links { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.vi-blogindex .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 14px; border: 1px solid #e5e9f1; border-radius: 10px; color: #2A4B9B; font-weight: 700; text-decoration: none; }
.vi-blogindex .page-numbers.current { background: #2A4B9B; border-color: #2A4B9B; color: #fff; }
.vi-blogindex .page-numbers:hover:not(.current) { border-color: #2A4B9B; }

/* ===== Rechtsseiten (Impressum/Datenschutz) ===== */
.vi-legal .page-header, .vi-legal .entry-title { display: none; }
.vi-legal .page-content { max-width: 880px; margin: 0 auto; padding: 48px 24px 72px; color: #3a4250; line-height: 1.7; }
.vi-legal .page-content h1 { font-size: clamp(1.9rem, 3.5vw, 2.5rem); font-weight: 800; color: #111317; margin: 0 0 .7em; }
.vi-legal .page-content h2 { font-size: 1.4rem; font-weight: 800; color: #111317; margin: 1.7em 0 .5em; }
.vi-legal .page-content h3 { font-size: 1.12rem; font-weight: 700; color: #111317; margin: 1.4em 0 .4em; }
.vi-legal .page-content h4 { font-size: 1rem; font-weight: 700; color: #2A4B9B; margin: 1.2em 0 .3em; }
.vi-legal .page-content p, .vi-legal .page-content li { margin: 0 0 .8em; }
.vi-legal .page-content ul { padding-left: 1.4em; margin: 0 0 1.1em; }
.vi-legal .page-content a { color: #2A4B9B; word-break: break-word; }

/* ===== Blog / Archiv im verwalt.ist-Branding ===== */
.page-header { max-width:1180px; margin:0 auto; padding:54px 24px 0; }
.page-header .page-title { font-size:2.4rem; font-weight:800; color:#111317; letter-spacing:-.02em; }
body.blog .page-content, body.archive .page-content {
  max-width:1180px; margin:0 auto; padding:30px 24px 80px;
  display:grid; grid-template-columns:repeat(2,1fr); gap:28px;
}
body.blog article.post, body.archive article.post {
  background:#fff; border:1px solid #e5e9f1; border-radius:18px; overflow:hidden;
  display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s;
}
body.blog article.post:hover, body.archive article.post:hover { transform:translateY(-5px); box-shadow:0 24px 46px -30px rgba(17,19,23,.3); }
body.blog article.post > a, body.archive article.post > a { order:-1; line-height:0; }
body.blog article.post img.wp-post-image, body.archive article.post img.wp-post-image { width:100%; height:210px; object-fit:cover; display:block; }
body.blog article.post .entry-title, body.archive article.post .entry-title { order:1; padding:22px 24px 0; margin:0; font-size:1.22rem; line-height:1.3; }
body.blog article.post .entry-title a, body.archive article.post .entry-title a { color:#111317 !important; text-decoration:none; font-weight:800; transition:color .2s; }
body.blog article.post .entry-title a:hover, body.archive article.post .entry-title a:hover { color:#2A4B9B !important; }
body.blog article.post p, body.archive article.post p { order:2; padding:10px 24px 26px; margin:0; color:#5b6470; font-size:.95rem; }
@media(max-width:760px){ body.blog .page-content, body.archive .page-content { grid-template-columns:1fr; } }

/* ===== Content-Links im Branding (statt Theme-Pink #cc3366) ===== */
.elementor-widget-text-editor a, .elementor-widget-text-editor a:link, .elementor-widget-text-editor a:visited { color:#2A4B9B; text-decoration:none; transition:color .2s; }
.elementor-widget-text-editor a:hover { color:#1f3c7e; }
/* Footer-Links dezent grau, Hover blau */
[data-elementor-type="footer"] .elementor-widget-text-editor a { color:#5b6470; }
[data-elementor-type="footer"] .elementor-widget-text-editor a:hover { color:#2A4B9B; }
/* Rechtstexte (Impressum/Datenschutz) Links */
.page-content a { color:#2A4B9B; }

/* ===== Off-Canvas Mobile/Tablet-Header ===== */
.vi-burger { display:inline-flex; flex-direction:column; justify-content:center; gap:5px; width:46px; height:46px; padding:11px; background:transparent; border:none; cursor:pointer; }
.vi-burger span { display:block; height:2.5px; width:100%; background:#111317; border-radius:2px; transition:transform .2s, opacity .2s; }
.vi-oc { position:fixed; inset:0; z-index:99999; visibility:hidden; }
.vi-oc.is-open { visibility:visible; }
.vi-oc__overlay { position:absolute; inset:0; background:rgba(17,19,23,.5); opacity:0; transition:opacity .35s ease; }
.vi-oc.is-open .vi-oc__overlay { opacity:1; }
.vi-oc__panel { position:absolute; top:0; right:0; height:100%; width:70%; max-width:380px; background:#fff; box-shadow:-20px 0 60px -20px rgba(0,0,0,.4); transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column; padding:24px 26px 32px; overflow-y:auto; }
.vi-oc.is-open .vi-oc__panel { transform:translateX(0); }
.vi-oc__top { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.vi-oc__logo { height:30px; width:auto; display:block; }
.vi-oc__close { background:transparent; border:none; color:#111317; cursor:pointer; padding:4px; display:grid; place-items:center; }
.vi-oc__menu { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.vi-oc__menu li { border-bottom:1px solid #eef2fb; }
.vi-oc__menu a { display:block; padding:15px 2px; color:#111317; text-decoration:none; font-weight:700; font-size:1.1rem; transition:color .2s; }
.vi-oc__menu a:hover, .vi-oc__menu .current-menu-item > a { color:#2A4B9B; }
.vi-oc__cta { margin-top:28px; display:flex; justify-content:center; align-items:center; background:#2A4B9B; color:#fff; padding:14px; border-radius:10px; font-weight:700; text-decoration:none; transition:background .2s; }
.vi-oc__cta:hover { background:#1f3c7e; color:#fff; }
body.vi-oc-lock { overflow:hidden; }
/* Sicherheits-Fallback: Burger/Drawer nur bis Tablet, ab Desktop aus */
@media(min-width:1025px){ .vi-burger, .vi-oc { display:none !important; } }

/* Burger-Override: transparenter Hintergrund (Kit-Button-Style schlägt sonst durch) */
.vi-burger, .vi-burger:hover, .vi-burger:focus { background:transparent !important; box-shadow:none !important; border:none !important; }
body.vi-oc-lock .vi-burger { opacity:0; pointer-events:none; }
/* Drawer immer über dem Sticky-Header */
.vi-oc { z-index:999999 !important; }

/* Schließen-Button (×) transparent - wie Burger, Kit-Style überschreiben */
.vi-oc__close, .vi-oc__close:hover, .vi-oc__close:focus { background:transparent !important; box-shadow:none !important; border:none !important; color:#111317 !important; }
.vi-oc__close svg { width:24px; height:24px; }

/* Off-Canvas Logo begrenzen + Schließen-Button fixieren */
.vi-oc__top { gap:12px; }
.vi-oc__logo { height:28px !important; width:auto !important; max-width:150px !important; flex:0 1 auto; }
.vi-oc__close { flex:0 0 auto; width:40px; height:40px; }

/* ===== Blog-Post Single ===== */
.vi-post { max-width:820px; margin:0 auto; padding:56px 24px 0; }
.vi-post__back { font-size:.9rem; font-weight:700; color:#2A4B9B; text-decoration:none; display:inline-block; margin-bottom:22px; }
.vi-post__cat { display:inline-block; background:#eef2fb; color:#2A4B9B; font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; padding:.4rem .8rem; border-radius:999px; text-decoration:none; }
.vi-post__title { font-size:clamp(2rem,4.5vw,3rem); font-weight:800; color:#111317; line-height:1.1; letter-spacing:-.02em; margin:16px 0 10px; }
.vi-post__meta { color:#5b6470; font-size:.92rem; }
.vi-post__image { aspect-ratio:16/9; background-size:cover; background-position:center; border-radius:20px; background-color:#eef2fb; margin:32px 0; }
.vi-post__content { color:#3a4250; line-height:1.75; font-size:1.05rem; }
.vi-post__content p { margin-bottom:1.2em; }
.vi-post__content h2, .vi-post__content h3 { color:#111317; font-weight:800; margin:1.5em 0 .5em; }
.vi-post__content a { color:#2A4B9B; }
/* Weitere Beiträge */
.vi-post__more { background:#f5f7fb; margin-top:64px; padding:64px 24px; border-top:1px solid #e5e9f1; }
.vi-post__more-inner { max-width:1180px; margin:0 auto; }
.vi-post__more-title { font-size:1.8rem; font-weight:800; color:#111317; margin-bottom:28px; }
.vi-post__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.vi-post__card { background:#fff; border:1px solid #e5e9f1; border-radius:18px; overflow:hidden; text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s; }
.vi-post__card:hover { transform:translateY(-5px); box-shadow:0 24px 46px -30px rgba(17,19,23,.3); }
.vi-post__card-img { aspect-ratio:16/10; background-size:cover; background-position:center; background-color:#eef2fb; }
.vi-post__card-body { padding:18px 22px 22px; display:flex; flex-direction:column; gap:6px; }
.vi-post__card-cat { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#2A4B9B; }
.vi-post__card-title { font-size:1.1rem; font-weight:800; color:#111317; margin:0; line-height:1.3; }
.vi-post__card-date { font-size:.84rem; color:#5b6470; }
@media(max-width:820px){ .vi-post__grid{grid-template-columns:1fr} }

/* Burger-Linien sichtbar: feste Breite (width:100% wurde vom Theme überschrieben -> 0) */
.vi-burger { align-items:center !important; }
.vi-burger span { width:26px !important; height:2.5px !important; background:#111317 !important; border-radius:2px; display:block !important; flex:0 0 auto; }

/* Partner-Logo-Wand (Über uns) */
.vi-partners__grid { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-top:34px; width:100%; }
.vi-partners__item { background:#fff; border:1px solid #E5E9F1; border-radius:14px; flex:0 0 calc(20% - 12.8px); height:110px; display:flex; align-items:center; justify-content:center; padding:18px 24px; box-sizing:border-box; transition:box-shadow .25s ease, transform .25s ease; }
.vi-partners__item:hover { box-shadow:0 12px 30px rgba(20,40,90,.10); transform:translateY(-3px); }
.vi-partners__item img { max-width:100%; max-height:50px; width:auto; height:auto; object-fit:contain; display:block; }
@media (max-width:1024px) { .vi-partners__item { flex-basis:calc(33.333% - 10.7px); } }
@media (max-width:600px) { .vi-partners__item { flex-basis:calc(50% - 8px); height:94px; padding:16px; } .vi-partners__item img { max-height:42px; } }
