/* ==========================================================================
   Hausverwaltung Hennings – Gestaltung
   Farben: Blau #2D3194, Dunkelblau #1E2166, Gold #C39D6E, Gold-Text #8B6B3E
   ========================================================================== */

:root {
	--hv-blue: #2D3194;
	--hv-blue-dark: #1E2166;
	--hv-gold: #C39D6E;
	--hv-gold-dark: #8B6B3E;
	--hv-ink: #1C1E3A;
	--hv-muted: #3A3D5C;
	--hv-surface: #F4F5FA;
	--hv-line: #E3E4EE;
	--hv-serif: 'EB Garamond', Garamond, 'Times New Roman', serif;
}

body { -webkit-font-smoothing: antialiased; }
.hv-main { margin-block-start: 0; }
.hv-main > .wp-block-post-content > *:first-child { margin-block-start: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Kopfzeile ---------- */
.hv-header {
	background: #fff;
	border-bottom: 1px solid var(--hv-line);
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .hv-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hv-header { top: 46px; } }
.hv-header-inner { padding-block: 14px; gap: 16px; }
.hv-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.hv-brand-emblem { width: 54px; height: auto; display: block; }
.hv-brand-text { display: flex; flex-direction: column; line-height: 1.05; font-family: var(--hv-serif); font-size: 21px; }
.hv-brand-1 { letter-spacing: .14em; color: var(--hv-blue); }
.hv-brand-2 { letter-spacing: .24em; color: #A07B4A; }
.hv-header-nav { gap: 8px 28px; }
.hv-nav { font-weight: 600; font-size: 16px; gap: 4px 28px; }
.hv-nav .wp-block-navigation-item__content { color: var(--hv-ink); text-decoration: none; padding-block: 10px; border-bottom: 2px solid transparent; }
.hv-nav .wp-block-navigation-item__content:hover,
.hv-nav .current-menu-item > .wp-block-navigation-item__content,
.hv-nav [aria-current="page"] { color: var(--hv-blue); border-bottom-color: var(--hv-gold); }
.hv-header-phone { margin: 0; }
.hv-header-phone a { text-decoration: none; color: var(--hv-blue); }
.hv-header-cta .wp-block-button__link { padding: 12px 20px; font-size: 16px; }
.hv-header .hv-header-nav { margin-left: auto; }
@media (max-width: 900px) {
	.hv-header .hv-header-phone, .hv-header .wp-block-buttons.hv-header-cta { display: none; }
	.hv-header .hv-header-inner { flex-wrap: nowrap; }
}
@media (max-width: 480px) {
	.hv-brand-text { font-size: 17px; }
	.hv-brand-emblem { width: 44px; }
}

/* ---------- Abschnitte ---------- */
.hv-section { padding-block: clamp(56px, 8vw, 96px); margin-block-start: 0 !important; }
.hv-section-tight { padding-block-start: 0; }
.hv-page-head { padding-block: clamp(48px, 7vw, 80px) clamp(36px, 5vw, 56px); }
.hv-hero { padding-block: clamp(56px, 8vw, 88px); }
.hv-bg-surface { background: var(--hv-surface); }
.hv-bg-primary { background: var(--hv-blue); color: #E1E3F3; }
.hv-bg-primary h2, .hv-bg-primary h3 { color: #fff; }
.hv-bg-primary .hv-eyebrow { color: var(--hv-gold); }
.hv-bg-primary a:not(.wp-block-button__link) { color: #fff; }
.hv-trust { padding-block: 40px; border-bottom: 1px solid var(--hv-line); }

.hv-cols-wide { gap: clamp(32px, 6vw, 80px); }
.hv-eyebrow {
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--hv-gold-dark);
}
.hv-lead { font-size: var(--wp--preset--font-size--large); color: var(--hv-muted); }
.hv-bg-primary .hv-lead { color: #E1E3F3; }
.hv-body-lg { font-size: 18px; color: var(--hv-muted); }
.hv-bg-primary .hv-body-lg { color: #E1E3F3; }
.hv-strong { font-weight: 700; color: var(--hv-blue); margin: 0; }
.hv-small { font-size: 15px; color: var(--hv-muted); margin: 2px 0 0; }
.hv-link-strong a { font-weight: 600; }
.hv-section-head { margin-bottom: 40px; gap: 16px; }
.hv-section-head h2 { margin: 0; }
.hv-note { padding: 18px 20px; background: var(--hv-surface); font-size: 15px; color: var(--hv-muted); }
.hv-bg-surface .hv-note { background: #fff; border: 1px solid var(--hv-line); }
.hv-placeholder { padding: 12px 16px; border: 1px dashed #A07B4A; font-size: 15px; color: var(--hv-muted); background: #fff; }

/* ---------- Raster ---------- */
.hv-grid { display: grid; gap: 24px; }
.hv-grid > * { margin: 0 !important; }
.hv-grid-3 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.hv-grid-4 { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 32px; }

/* ---------- Karten ---------- */
.hv-card {
	background: #fff;
	border: 1px solid var(--hv-line);
	border-top: 3px solid var(--hv-blue);
	padding: 32px;
}
.hv-card h3 { margin: 0 0 10px; }
.hv-card p { color: var(--hv-muted); margin: 0; }
.hv-card p + p { margin-top: 12px; }
.hv-card-dark { background: var(--hv-blue); border-color: var(--hv-blue); display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.hv-card-quote { font-family: var(--hv-serif); font-size: 26px; line-height: 1.25; color: #fff !important; }

/* ---------- Symbole ---------- */
.hv-icon::before {
	content: "";
	display: block;
	width: 34px;
	height: 34px;
	margin-bottom: 14px;
	background: var(--hv-gold);
	-webkit-mask: var(--hv-ico) center / contain no-repeat;
	mask: var(--hv-ico) center / contain no-repeat;
}
.hv-trust-item.hv-icon { display: grid; grid-template-columns: 30px 1fr; column-gap: 14px; }
.hv-trust-item.hv-icon::before { width: 28px; height: 28px; margin: 0; grid-row: span 2; }
.hv-trust-item p { grid-column: 2; }
.hv-icon-person   { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8'/%3E%3C/svg%3E"); }
.hv-icon-house    { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V9l8-6 8 6v12'/%3E%3Cpath d='M9 21v-5h6v5'/%3E%3C/svg%3E"); }
.hv-icon-doc      { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='1'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h3'/%3E%3C/svg%3E"); }
.hv-icon-shield   { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8.5-7 10-4-1.5-7-5.5-7-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.hv-icon-ledger   { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='1.5'/%3E%3Cpath d='M8 7h8M8 11h8M8 15h5'/%3E%3C/svg%3E"); }
.hv-icon-people   { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M15.5 14.2c3 .2 5.5 2.6 5.5 5.8'/%3E%3C/svg%3E"); }
.hv-icon-wrench   { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.5-.5-.5-2.5z'/%3E%3C/svg%3E"); }
.hv-icon-building { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5l8-3 8 3v16'/%3E%3Cpath d='M9 21v-4h6v4M8 8h2M14 8h2M8 12h2M14 12h2'/%3E%3C/svg%3E"); }
.hv-icon-key      { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l9-9M17 6l3 3M15 8l2 2'/%3E%3C/svg%3E"); }
.hv-icon-pin      { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }

/* ---------- Bilder mit Goldrahmen ---------- */
.hv-frame { border: 2px solid var(--hv-gold); padding: 12px; background: #fff; margin: 0; }
.hv-frame img { display: block; width: 100%; height: auto; }
.hv-frame-portrait img { aspect-ratio: 3 / 4; object-fit: cover; }

/* ---------- Ablaufschritte ---------- */
.hv-step { display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--hv-line); margin: 0 !important; }
.hv-step > * { margin: 0 !important; }
.hv-step-num { font-family: var(--hv-serif); font-size: 30px; line-height: 1.1; color: var(--hv-gold-dark); width: 40px; flex: none; }
.hv-step strong { color: var(--hv-blue); }
.hv-step p:not(.hv-step-num) { color: var(--hv-muted); }
.hv-step + .hv-note { margin-top: 24px; }

/* ---------- Listen ---------- */
.hv-check, .hv-numbered { list-style: none; padding: 0; margin: 0; counter-reset: hv; }
.hv-check li, .hv-numbered li { display: flex; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--hv-line); }
.hv-bg-surface .hv-check li, .hv-bg-surface .hv-numbered li { border-bottom-color: #D8DAEA; }
.hv-check li::before {
	content: ""; flex: none; width: 20px; height: 20px; margin-top: 4px; background: var(--hv-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hv-numbered li { counter-increment: hv; }
.hv-numbered li::before {
	content: counter(hv); flex: none; width: 28px; height: 28px; border-radius: 50%;
	background: var(--hv-blue); color: #fff; font-size: 14px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
}
.hv-num { font-family: var(--hv-serif); font-size: 22px; color: var(--hv-gold-dark); margin: 0; }
.hv-chips { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 8px; }
.hv-chips a {
	background: #fff; border: 1px solid #C9CBE2; color: var(--hv-blue); text-decoration: none;
	padding: 10px 16px; border-radius: 3px; font-size: 15px; font-weight: 600;
}
.hv-chips a:hover { border-color: var(--hv-blue); }
.hv-section[id] { scroll-margin-top: 90px; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .15s, color .15s, border-color .15s; }
.wp-block-button.is-style-hv-gold .wp-block-button__link { background: var(--hv-gold); color: var(--hv-ink); font-weight: 700; }
.wp-block-button.is-style-hv-gold .wp-block-button__link:hover { background: #D4B488; color: var(--hv-ink); }
.wp-block-button.is-style-hv-outline .wp-block-button__link { background: #fff; color: var(--hv-blue); border: 1px solid var(--hv-blue); }
.wp-block-button.is-style-hv-outline .wp-block-button__link:hover { background: var(--hv-surface); }
.wp-block-button.is-style-hv-outline-light .wp-block-button__link { background: transparent; color: #fff; border: 1px solid #8F93CF; font-weight: 400; }
.wp-block-button.is-style-hv-outline-light .wp-block-button__link:hover { border-color: #fff; background: rgba(255,255,255,.06); }
.hv-stack { gap: 14px; }
.hv-stack .wp-block-button, .hv-stack .wp-block-button__link { width: 100%; text-align: center; }

/* ---------- Über uns ---------- */
.hv-signature { font-family: var(--hv-serif); font-size: 22px; color: var(--hv-blue); }
.hv-signature span { color: var(--hv-gold-dark); }
.hv-facts { margin-top: 28px; }
.hv-fact { display: flex; gap: 20px; padding: 18px 0; border-top: 1px solid var(--hv-line); margin: 0 !important; color: var(--hv-muted); }
.hv-fact:last-child { border-bottom: 1px solid var(--hv-line); }
.hv-fact strong { color: var(--hv-blue); }
.hv-fact-num { font-family: var(--hv-serif); font-size: 30px; line-height: 1.1; color: var(--hv-gold-dark); width: 64px; flex: none; }
.hv-quote { border: 0; border-top: 2px solid var(--hv-gold); padding: 24px 0 0; margin: 12px 0 0; }
.hv-quote p { font-family: var(--hv-serif); font-size: 26px; line-height: 1.35; color: var(--hv-blue); }
.hv-value { padding-top: 22px; border-top: 2px solid var(--hv-gold); }
.hv-value h3 { margin: 0 0 10px; }
.hv-value p { color: var(--hv-muted); }
.hv-values { margin-top: 40px; gap: 40px; }

/* ---------- Kontakt ---------- */
.hv-cols-contact { gap: 32px; }
.hv-form-card { background: #fff; border: 1px solid var(--hv-line); padding: clamp(24px, 4vw, 40px); }
.hv-h-card { font-size: 30px; margin: 0 0 22px; }
.hv-contact-card { background: var(--hv-blue); color: #fff; padding: 32px; margin-bottom: 20px; }
.hv-contact-title { font-family: var(--hv-serif); font-size: 26px; margin: 0 0 18px; }
.hv-person { display: flex; align-items: center; gap: 18px; margin-bottom: 18px; }
.hv-person img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; border: 2px solid var(--hv-gold); flex: none; }
.hv-person p { margin: 0; }
.hv-person-name { font-size: 18px; font-weight: 600; }
.hv-person-role { font-size: 15px; color: #C9CCEB; }
.hv-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.hv-contact-list li { display: flex; gap: 12px; align-items: flex-start; }
.hv-contact-list a { color: #fff; text-decoration: none; word-break: break-word; }
.hv-contact-list a:hover { text-decoration: underline; }
.hv-contact-list li::before {
	content: ""; flex: none; width: 22px; height: 22px; margin-top: 2px; background: var(--hv-gold);
	-webkit-mask: var(--hv-ico) center / contain no-repeat; mask: var(--hv-ico) center / contain no-repeat;
}
.hv-c-phone { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.hv-c-mail  { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.hv-c-pin   { --hv-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }

/* Formular (Contact Form 7) */
.hv-form .hv-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin-bottom: 20px; }
.hv-form label { display: flex; flex-direction: column; gap: 6px; font-size: 15px; font-weight: 600; color: var(--hv-ink); }
.hv-form > label, .hv-form form > label { margin-bottom: 20px; }
.hv-form .wpcf7-form-control-wrap { display: block; font-weight: 400; }
.hv-form input[type=text], .hv-form input[type=email], .hv-form input[type=tel],
.hv-form input[type=number], .hv-form select, .hv-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 17px; padding: 12px 14px;
	border: 1px solid #B9BCD6; border-radius: 3px; background: #fff; color: var(--hv-ink);
}
.hv-form input:focus, .hv-form select:focus, .hv-form textarea:focus { outline: 2px solid var(--hv-gold); outline-offset: 1px; border-color: var(--hv-blue); }
.hv-form textarea { min-height: 140px; resize: vertical; }
.hv-form-consent { font-size: 15px; color: var(--hv-muted); margin: 4px 0 22px; }
.hv-form-consent .wpcf7-list-item { margin: 0; }
.hv-form-consent label { flex-direction: row; align-items: flex-start; gap: 12px; font-weight: 400; color: var(--hv-muted); }
.hv-form-consent input[type=checkbox] { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--hv-blue); flex: none; }
.hv-form-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; font-size: 14px; color: #5A5D78; }
.hv-form-submit input[type=submit] { margin-left: auto; }
.hv-form-submit .wpcf7-spinner { order: 3; }
.hv-form input[type=submit] {
	font: inherit; font-weight: 700; background: var(--hv-blue); color: #fff; border: 0; border-radius: 3px;
	padding: 15px 28px; cursor: pointer;
}
.hv-form input[type=submit]:hover { background: var(--hv-blue-dark); }
.hv-form .wpcf7-not-valid-tip { font-size: 14px; color: #B3261E; font-weight: 400; }
.hv-form .wpcf7-response-output { margin: 20px 0 0 !important; padding: 12px 16px !important; border-radius: 3px; font-size: 15px; }
.hv-form-fallback { font-size: 18px; color: var(--hv-muted); }
.hv-admin-note { padding: 12px 16px; border: 1px dashed #A07B4A; font-size: 15px; background: #FFF9EF; }

/* ---------- Rechtstexte ---------- */
.hv-legal h1 { margin-bottom: 36px; }
.hv-legal h2 { font-size: 24px; font-weight: 600; margin: 32px 0 8px; }
.hv-simple { padding-block: clamp(48px, 7vw, 80px); }

/* ---------- Fußzeile ---------- */
.hv-footer { background: var(--hv-blue-dark); color: #D9DBEE; font-size: 15px; padding-block: 64px 28px; }
.hv-footer a { color: #D9DBEE; }
.hv-footer a:hover { color: #fff; }
.hv-footer p { margin: 0; }
.hv-footer-cols { gap: 40px; }
.hv-footer-emblem { width: 56px; height: auto; display: block; margin-bottom: 14px; }
.hv-footer-brand { font-family: var(--hv-serif); font-size: 20px; letter-spacing: .1em; color: #fff; margin-bottom: 8px !important; }
.hv-footer-brand span { color: var(--hv-gold); }
.hv-footer-head { font-weight: 700; color: #fff; margin-bottom: 6px !important; }
.hv-footer-copy { border-top: 1px solid #3A3E86; margin-top: 40px !important; padding-top: 20px; font-size: 14px; color: #B7BADD; }

/* ---------- Mobil ---------- */
@media (max-width: 781px) {
	.hv-cols-wide > .wp-block-column { flex-basis: 100% !important; }
	.hv-section-head { margin-bottom: 28px; }
}
