/*
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.0.8
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; }

/* 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: 0; top: 50%; margin-top: 13px;
    width: 0; height: 2px; background: #2A4B9B; transition: width .25s ease;
}
.vi-nav .elementor-nav-menu .elementor-item:hover::after,
.vi-nav .elementor-nav-menu .elementor-item.elementor-item-active::after { width: 100%; }

/* 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--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; }

/* ===== 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; }
