/* Immobilienwart – Gestaltungsregeln (Relaunch 2026)
   Farben und Schrift kommen aus theme.json. Diese Datei ordnet nur Abstände, Karten, Kopf, Fuß und Mobilleiste.
   Texte und Bilder ändert man im Editor, nicht hier. */

:root {
	--iw-radius: 10px;
	--iw-shadow: 0 1px 2px rgba(30, 43, 50, .06), 0 8px 24px rgba(30, 43, 50, .06);
	--iw-line: #dfe5e3;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding-top: 0; }
main.wp-block-group { margin-top: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Kopfbereich ---------- */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.iw-header {
	background: #fff;
	border-bottom: 1px solid var(--iw-line);
}
.iw-header .wp-block-navigation__submenu-container { border: 1px solid var(--iw-line) !important; border-radius: 8px; box-shadow: var(--iw-shadow); padding: .4rem 0; min-width: 270px !important; }
.iw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1rem !important; }
/* Zwischen Tablet und kleinem Laptop: Menü als Schaltfläche statt zweizeiliger Leiste */
@media (min-width: 600px) and (max-width: 1023px) {
	.iw-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.iw-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
}
.wp-block-navigation__responsive-container.is-menu-open { padding-top: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { font-size: 1.1rem; }
/* Mobiles Menü: linksbündig, Untermenüs als eingerückte Liste statt Kartenrahmen */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 0 8px; }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; border-left: 2px solid var(--iw-line) !important; border-radius: 0; box-shadow: none; min-width: 0 !important; padding: .1rem 0 .4rem 1rem !important; margin: .2rem 0 .6rem; }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .35rem 0 !important; font-weight: 400; }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-weight: 700; }
.iw-header .iw-logo img { width: 210px; height: auto; display: block; }
.iw-header .wp-block-navigation { gap: 1.4rem; }
.iw-header .wp-block-navigation a:hover { color: var(--wp--preset--color--accent-3); text-decoration: none; }
.iw-header .iw-header-phone .wp-block-button__link { background: var(--wp--preset--color--contrast); padding: .6rem 1rem; font-size: .95rem; white-space: nowrap; }
.iw-header .iw-header-phone .wp-block-button__link:hover { background: var(--wp--preset--color--accent-3); }
@media (max-width: 1100px) {
	.iw-header .iw-header-phone { display: none; }
	.iw-header .iw-logo img { width: 180px; }
}

/* ---------- Abschnitte ---------- */
.iw-section { padding-top: clamp(48px, 7vw, 88px) !important; padding-bottom: clamp(48px, 7vw, 88px) !important; }
.iw-section.iw-tight { padding-top: clamp(32px, 4vw, 48px) !important; padding-bottom: clamp(32px, 4vw, 48px) !important; }
.iw-bg-grey { background: var(--wp--preset--color--accent-5); }
.iw-bg-dark { background: var(--wp--preset--color--contrast); color: #fff; }
.iw-bg-dark h1, .iw-bg-dark h2, .iw-bg-dark h3, .iw-bg-dark h4 { color: #fff; }
.iw-bg-dark a:not(.wp-block-button__link) { color: #fff; }
.iw-bg-teal { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--contrast); }
.iw-bg-teal .wp-block-button__link { background: var(--wp--preset--color--contrast); color: #fff; }
.iw-bg-teal .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); }
.iw-bg-teal .iw-btn-wa .wp-block-button__link { background: #fff; color: var(--wp--preset--color--contrast); }

.iw-eyebrow {
	text-transform: uppercase; letter-spacing: .08em; font-size: .8rem !important; font-weight: 600;
	color: var(--wp--preset--color--gruen-dunkel); margin-bottom: .25rem !important;
}
.iw-bg-dark .iw-eyebrow, .iw-hero .iw-eyebrow { color: var(--wp--preset--color--accent-2); }
.iw-lead { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.5; max-width: 46rem; }
.iw-small { font-size: var(--wp--preset--font-size--small) !important; color: var(--wp--preset--color--accent-4); }
.iw-bg-dark .iw-small { color: #c9d3d6; }

/* ---------- Hero ---------- */
.iw-hero.wp-block-cover { padding-top: clamp(64px, 10vw, 128px); padding-bottom: clamp(56px, 8vw, 104px); }
.iw-hero h1 { color: #fff; max-width: 20ch; }
.iw-hero .iw-lead { color: #e8eef0; }
/* Hero mit Foto: Abdunklung und helle Dachzeile sichern mindestens 4,5:1 Kontrast auch über hellen Bildstellen */
.iw-hero.wp-block-cover .wp-block-cover__background { opacity: .72 !important; }
.iw-hero .iw-eyebrow { color: #fff; }
.iw-hero h1, .iw-hero .iw-lead, .iw-hero .iw-eyebrow { text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
.iw-hero .iw-small, .iw-hero .iw-small strong { color: #e8eef0; text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
.iw-hero-plain { padding-top: clamp(48px, 7vw, 88px) !important; padding-bottom: clamp(40px, 5vw, 64px) !important; background: linear-gradient(180deg, var(--wp--preset--color--tuerkis-hell) 0%, #fff 100%); }
.iw-hero-plain h1 { max-width: 22ch; }
.iw-hero-plain + .iw-section:not(.iw-bg-grey):not(.iw-bg-teal):not(.iw-bg-dark) { padding-top: 8px !important; }
.iw-hero-cols h1 { max-width: none; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .15s ease, color .15s ease; }
.iw-btn-secondary .wp-block-button__link { background: transparent; color: var(--wp--preset--color--contrast); box-shadow: inset 0 0 0 2px var(--wp--preset--color--contrast); }
.iw-btn-secondary .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: #fff; }
.iw-hero .iw-btn-secondary .wp-block-button__link, .iw-bg-dark .iw-btn-secondary .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.iw-hero .iw-btn-secondary .wp-block-button__link:hover, .iw-bg-dark .iw-btn-secondary .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); }
.iw-btn-wa .wp-block-button__link { background: var(--wp--preset--color--gruen-dunkel); color: #fff; }
.iw-btn-wa .wp-block-button__link::before { content: ""; display: inline-block; width: 1.05em; height: 1.05em; margin-right: .5em; vertical-align: -0.15em; background: currentColor; -webkit-mask: url("../img/whatsapp.svg") no-repeat center / contain; mask: url("../img/whatsapp.svg") no-repeat center / contain; }
.iw-btn-wa .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); }

/* ---------- Innencontainer: breit, linksbündig ---------- */
.iw-wide > p, .iw-wide > .wp-block-heading, .iw-wide > .wp-block-list, .iw-wide > .iw-faq { max-width: 50rem; }
.iw-wide > * + * { margin-block-start: 1.1rem; }
.iw-wide > .iw-grid, .iw-wide > .wp-block-columns { margin-block-start: 1.75rem; }
.iw-hero-cols { gap: clamp(1.5rem, 4vw, 3.5rem) !important; }
.iw-hero-cols .iw-card { font-size: .95rem; }
.iw-feature h3 { font-size: 1.05rem !important; margin-bottom: .35rem; }
.iw-feature p { font-size: .95rem; color: var(--wp--preset--color--accent-4); margin-top: 0; }
.iw-feature { border-top: 2px solid var(--wp--preset--color--contrast); padding-top: .9rem; }
.iw-service { border-top: 3px solid var(--wp--preset--color--accent-1); padding-top: .9rem; }
.iw-service h3 { font-size: 1.1rem !important; margin-bottom: .35rem; }
.iw-service h3 a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.iw-service h3 a:hover { color: var(--wp--preset--color--accent-3); text-decoration: underline; }
.iw-service p { margin-top: 0; font-size: .97rem; }
.iw-cta-btns .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .iw-cta-btns .wp-block-buttons { justify-content: flex-start; } }
.iw-bg-teal h2, .iw-bg-teal p { color: var(--wp--preset--color--contrast); }
.iw-gallery-wide .wp-block-image img { aspect-ratio: 3 / 2 !important; }
.iw-choice .iw-card h2 { font-size: clamp(1.35rem, 2.4vw, 1.7rem) !important; }
.iw-owner-img { flex: 0 0 auto; margin: 0 !important; }
.iw-owner .wp-block-group p { margin: 0; }

/* ---------- Karten und Raster ---------- */
.iw-grid { gap: 1.25rem !important; }
.iw-card {
	background: #fff; border: 1px solid var(--iw-line); border-radius: var(--iw-radius);
	padding: 1.5rem !important; box-shadow: var(--iw-shadow); height: 100%;
}
.iw-card > * { margin-block-start: .6rem; }
.iw-card > :first-child { margin-block-start: 0; }
.iw-card h3 { font-size: 1.15rem !important; }
.iw-card .iw-more a { font-weight: 600; text-decoration: none; }
.iw-card .iw-more a::after { content: "→"; margin-left: .3em; }
.iw-card-dark { background: var(--wp--preset--color--contrast); color: #fff; border-color: var(--wp--preset--color--contrast); }
.iw-card-dark h2, .iw-card-dark h3, .iw-card-dark h4, .iw-card-dark a { color: #fff !important; }
.iw-card-dark p { color: #d5dee1; }
.iw-card-dark .iw-eyebrow { color: var(--wp--preset--color--accent-2); }
.iw-card-dark .iw-small { color: #c9d3d6; }
.iw-card-accent { border-top: 4px solid var(--wp--preset--color--accent-1); }
.iw-choice .iw-card { padding: 2rem !important; }
.iw-choice .iw-card-dark .iw-eyebrow { color: var(--wp--preset--color--accent-2); }

/* ---------- Listen ---------- */
ul.iw-check { list-style: none; padding-left: 0; }
ul.iw-check li { position: relative; padding-left: 1.9rem; margin-top: .55rem; }
ul.iw-check li::before {
	content: ""; position: absolute; left: 0; top: .35em; width: 1.1rem; height: 1.1rem; border-radius: 50%;
	background: var(--wp--preset--color--accent-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / 70%;
}
ul.iw-cols-2 { columns: 2; column-gap: 2.5rem; }
ul.iw-cols-2 li { break-inside: avoid; }
@media (max-width: 700px) { ul.iw-cols-2 { columns: 1; } }
ul.iw-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
ul.iw-chips li { margin: 0; padding: .35rem .85rem; border: 1px solid var(--iw-line); border-radius: 999px; background: #fff; font-size: .95rem; }

/* ---------- Schritte ---------- */
/* Zähler am Schritt selbst: WordPress setzt beim Rasterlayout container-type (Stil-Eingrenzung); ein Zähler im ::before der Überschrift beginnt dort in jeder Karte neu bei 1. */
.iw-steps { counter-reset: iwstep; }
.iw-step { counter-increment: iwstep; border-top: 3px solid var(--wp--preset--color--accent-1); padding-top: 1rem !important; }
.iw-step h3::before { content: counter(iwstep); display: block; font-size: 1.6rem; font-weight: 700; color: var(--wp--preset--color--accent-3); margin-bottom: .3rem; }

/* ---------- Bilder ---------- */
.iw-img img, .iw-gallery img { border-radius: var(--iw-radius); width: 100%; height: auto; object-fit: cover; }
.iw-gallery .wp-block-image img { aspect-ratio: 3 / 4; }
.iw-img-wide img { aspect-ratio: 4 / 3; }
.iw-symbol figcaption::before { content: "Symbolbild · "; }

/* ---------- Inhaberbox ---------- */
.iw-owner { background: #fff; border: 1px solid var(--iw-line); border-radius: var(--iw-radius); padding: 1.5rem !important; box-shadow: var(--iw-shadow); }
.iw-owner .iw-owner-img img { border-radius: 50%; width: 120px; height: 120px; object-fit: cover; }
.iw-owner .iw-owner-phone { font-size: 1.35rem !important; font-weight: 700; }
.iw-owner .iw-owner-phone a { color: var(--wp--preset--color--contrast); text-decoration: none; }

/* ---------- Zitat ---------- */
.iw-quote { max-width: 48rem; }
.iw-quote p { font-size: 1.25rem; line-height: 1.45; }
.iw-quote cite { display: block; margin-top: .6rem; font-size: .85rem; font-weight: 400; color: var(--wp--preset--color--accent-4); font-style: normal; }

/* ---------- Google-Bewertungen ---------- */
.iw-review-summary { font-size: 1.05rem; margin-top: .25rem; }
.iw-review { display: flex; flex-direction: column; gap: .5rem; }
.iw-review .iw-review-rating { margin: 0; line-height: 1; }
.iw-stars { color: #9a6200; font-size: 1.15rem; letter-spacing: .12em; }
.iw-review .wp-block-quote.iw-review-quote { margin: 0; padding: 0; border: 0; }
.iw-review-quote p { font-size: 1rem; line-height: 1.55; margin: 0; }
.iw-review-quote cite { display: block; margin-top: .75rem; font-size: .85rem; font-weight: 400; font-style: normal; color: var(--wp--preset--color--accent-4); }
.iw-reviews .iw-small { margin-top: 1.25rem; }

/* ---------- Hausmeister-App ---------- */
.iw-app-box { border-top: 3px solid var(--wp--preset--color--accent-1); }
.iw-app-box .iw-badge { margin-left: .35rem; vertical-align: .1em; }
.iw-app-box ul.iw-check { margin: .5rem 0 .75rem; }

/* ---------- Einwilligungsbanner ---------- */
.iw-consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; background: #fff; color: var(--wp--preset--color--contrast); border-top: 3px solid var(--wp--preset--color--accent-3); box-shadow: 0 -8px 24px rgba(30, 43, 50, .15); padding: 1rem clamp(1rem, 3vw, 2rem) calc(1rem + env(safe-area-inset-bottom)); font-size: .95rem; max-height: 85vh; overflow-y: auto; }
.iw-consent[hidden], .iw-consent [hidden] { display: none !important; }
.iw-consent-inner { max-width: 72rem; margin: 0 auto; }
.iw-consent p { margin: 0 0 .75rem; }
.iw-consent-title { font-weight: 700; font-size: 1.1rem; }
.iw-consent fieldset { border: 1px solid var(--iw-line); border-radius: 8px; padding: .5rem .9rem .75rem; margin: 0 0 .75rem; }
.iw-consent legend { font-weight: 700; padding: 0 .3rem; }
.iw-consent label { display: flex; gap: .6rem; align-items: flex-start; margin-top: .5rem; }
.iw-consent input[type="checkbox"] { width: 1.2rem; height: 1.2rem; margin-top: .15rem; flex: none; accent-color: var(--wp--preset--color--accent-3); }
.iw-consent-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.iw-consent-actions button { font: inherit; font-weight: 700; min-height: 44px; padding: .6rem 1.2rem; border-radius: 6px; border: 2px solid var(--wp--preset--color--accent-3); background: var(--wp--preset--color--accent-3); color: #fff; cursor: pointer; }
.iw-consent-actions button.iw-consent-link { background: transparent; color: var(--wp--preset--color--accent-3); border-color: transparent; text-decoration: underline; }
.iw-consent-actions button:focus-visible, .iw-consent input:focus-visible, .iw-consent a:focus-visible { outline: 3px solid var(--wp--preset--color--contrast); outline-offset: 2px; }
.iw-consent-id { font-size: .8rem; color: var(--wp--preset--color--accent-4); word-break: break-all; }
.iw-consent { max-height: 85vh; overflow-y: auto; box-sizing: border-box; }
.iw-consent-text { font-size: .95rem; }
@media (max-width: 600px) {
	.iw-consent { padding-top: .75rem !important; padding-bottom: .75rem !important; }
	.iw-consent-text { font-size: .875rem; line-height: 1.45; }
	.iw-consent-actions button:not(.iw-consent-link) { flex: 1 1 40%; padding-left: .5rem; padding-right: .5rem; }
}
/* Kastanie: Dekor im Banner und Knopf für die Cookie-Einstellungen */
.iw-consent-head { display: flex; align-items: center; gap: .7rem; margin: 0 0 .5rem; }
.iw-consent-head .iw-consent-title { margin: 0; }
.iw-consent .iw-kastanie { flex: none; }
.iw-kastanie-btn { position: fixed; left: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 900; width: 48px; height: 48px; padding: 0; border-radius: 50%; border: 2px solid var(--iw-line); background: #fff; box-shadow: 0 2px 10px rgba(30, 43, 50, .2); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: transform .2s ease; animation: iw-fall .35s ease-out; }
.iw-kastanie-btn .iw-kastanie { width: 30px; height: 30px; }
.iw-kastanie-btn:hover { transform: rotate(-8deg) scale(1.06); }
.iw-kastanie-btn:focus-visible { outline: 3px solid var(--wp--preset--color--contrast); outline-offset: 2px; }
.iw-consent:not([hidden]) ~ .iw-kastanie-btn { display: none; }
@keyframes iw-fall { from { transform: translateY(-36px) rotate(-40deg); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 781px) { .iw-kastanie-btn { bottom: calc(64px + env(safe-area-inset-bottom)); width: 44px; height: 44px; } }
@media (max-width: 600px) { .iw-consent-head .iw-kastanie { width: 32px; height: 32px; } }
@media (prefers-reduced-motion: reduce) { .iw-kastanie-btn { transition: none; animation: none; } .iw-kastanie-btn:hover { transform: none; } }
@media print { .iw-kastanie-btn { display: none; } }
.iw-linkbutton { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; text-decoration: underline; cursor: pointer; min-height: 24px; }
.iw-linkbutton:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; }

/* Lange deutsche Komposita (z. B. „Verkehrssicherungspflicht") auf schmalen Bildschirmen trennen */
.wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3, .wp-site-blocks h4 { overflow-wrap: break-word; -webkit-hyphens: manual; hyphens: manual; }
@media (max-width: 480px) { .wp-site-blocks h1, .wp-site-blocks h2 { -webkit-hyphens: auto; hyphens: auto; } }

/* Hochformat: Standort Heiligenhaus */
.iw-img-wide img.wp-image-178 { aspect-ratio: 3 / 4; }

/* ---------- FAQ ---------- */
.iw-faq .wp-block-details summary { font-size: 1.05rem; list-style: none; position: relative; padding-right: 2rem; }
.iw-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.iw-faq .wp-block-details summary::after { content: "+"; position: absolute; right: .25rem; top: -.1rem; font-size: 1.5rem; color: var(--wp--preset--color--accent-3); }
.iw-faq .wp-block-details[open] summary::after { content: "–"; }
.iw-faq .wp-block-details p { margin-top: .6rem; }

/* ---------- Formulare (Contact Form 7) ---------- */
.wpcf7 { max-width: 46rem; }
.wpcf7 form p { margin: 0 0 1rem; }
.wpcf7 label { display: block; font-weight: 600; font-size: .95rem; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; margin-top: .35rem; padding: .75rem .85rem; font: inherit; font-weight: 400;
	border: 1px solid #b9c3c1; border-radius: 6px; background: #fff; color: var(--wp--preset--color--contrast);
}
.wpcf7 textarea { min-height: 140px; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 1px; border-color: var(--wp--preset--color--accent-3); }
.wpcf7 .wpcf7-list-item { display: block; margin: .3rem 0 0; font-weight: 400; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { font-size: .9rem; }
.wpcf7 input[type="submit"] {
	background: var(--wp--preset--color--accent-3); color: #fff; border: 0; border-radius: 6px;
	padding: .9rem 1.6rem; font: inherit; font-weight: 600; cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--contrast); }
/* Eigene Anfrageformulare [iw_anfrage] */
.iw-form { max-width: 46rem; }
.iw-field { margin: 0 0 1.1rem; }
.iw-field label, .iw-field legend { display: block; font-weight: 600; font-size: .95rem; }
.iw-field fieldset { border: 0; padding: 0; margin: 0; }
.iw-field input[type="text"], .iw-field input[type="email"], .iw-field input[type="tel"], .iw-field select, .iw-field textarea {
	box-sizing: border-box; width: 100%; max-width: 100%; margin-top: .35rem; padding: .75rem .85rem; font: inherit; font-weight: 400;
	border: 1px solid #b9c3c1; border-radius: 6px; background: #fff; color: var(--wp--preset--color--contrast);
}
.iw-field textarea { min-height: 130px; }
.iw-field input:focus, .iw-field select:focus, .iw-field textarea:focus { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 1px; border-color: var(--wp--preset--color--accent-3); }
.iw-field .iw-option { display: flex; gap: .55rem; align-items: center; font-weight: 400; margin-top: .45rem; cursor: pointer; }
.iw-field .iw-option input { width: 1.1rem; height: 1.1rem; accent-color: var(--wp--preset--color--accent-3); }
.iw-field-checkboxes fieldset { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); column-gap: 1rem; }
.iw-field-checkboxes legend { grid-column: 1 / -1; }
.iw-help { font-size: .85rem; color: var(--wp--preset--color--accent-4); margin: .3rem 0 0; }
.iw-req { color: #b3261e; }
.iw-field.has-error input, .iw-field.has-error textarea, .iw-field.has-error select { border-color: #b3261e; }
.iw-field-error { color: #b3261e; font-size: .88rem; margin: .3rem 0 0; }
.iw-form-error { background: #fdecea; border-left: 4px solid #b3261e; padding: .8rem 1rem; border-radius: 6px; margin-bottom: 1rem; }
.iw-form-ok { background: var(--wp--preset--color--gruen-hell); border-left: 4px solid var(--wp--preset--color--accent-2); padding: 1rem 1.2rem; border-radius: 6px; }
.iw-privacy { font-size: .85rem; color: var(--wp--preset--color--accent-4); }
.iw-submit button { background: var(--wp--preset--color--accent-3); color: #fff; border: 0; border-radius: 6px; padding: .9rem 1.6rem; font: inherit; font-weight: 600; cursor: pointer; }
.iw-submit button:hover { background: var(--wp--preset--color--contrast); }
.iw-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.iw-form-intro { font-size: .9rem; color: var(--wp--preset--color--accent-4); margin-top: 0; }
.iw-form-error ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.iw-form-error a { color: #8c1d18; }
.iw-form-error:focus, .iw-form-ok:focus, .iw-booking-frame:focus { outline: 3px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
.iw-field .iw-option { padding: .2rem 0; min-height: 28px; }
.iw-field .iw-option input:focus-visible { outline: 2px solid var(--wp--preset--color--accent-3); outline-offset: 2px; }
.iw-submit button:focus-visible, .iw-booking-btn:focus-visible { outline: 3px solid var(--wp--preset--color--accent-3); outline-offset: 2px; }
/* Terminbuchung */
.iw-booking { background: #fff; border: 1px solid var(--iw-line); border-radius: var(--iw-radius); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--iw-shadow); }
.iw-booking-btn { display: inline-block; background: var(--wp--preset--color--accent-3); color: #fff !important; border: 0; border-radius: 6px; padding: .85rem 1.4rem; font: inherit; font-weight: 600; text-decoration: none !important; cursor: pointer; margin: .25rem .5rem .25rem 0; }
.iw-booking-btn:hover { background: var(--wp--preset--color--contrast); }
.iw-booking-wa { background: var(--wp--preset--color--gruen-dunkel); }
.iw-booking-frame iframe { display: block; min-height: 720px; border-radius: 8px; background: #fff; }
#formular { scroll-margin-top: 110px; }
/* Beispiel-Nachweis und Tabellen */
.iw-table table { border-collapse: collapse; width: 100%; font-size: .95rem; background: #fff; }
.iw-table th, .iw-table td { border: 1px solid var(--iw-line); padding: .6rem .8rem; text-align: left; vertical-align: top; }
.iw-table thead th { background: var(--wp--preset--color--contrast); color: #fff; }
.iw-table td:first-child { font-weight: 600; width: 34%; }
.iw-badge { display: inline-block; background: #f2c14e; color: #1e2b32; font-size: .75rem; font-weight: 700; padding: .15rem .5rem; border-radius: 4px; }

.iw-form-box { background: #fff; border: 1px solid var(--iw-line); border-radius: var(--iw-radius); padding: clamp(1.25rem, 3vw, 2.25rem) !important; box-shadow: var(--iw-shadow); }

/* ---------- Fußbereich ---------- */
.iw-footer { background: var(--wp--preset--color--contrast); color: #d5dee1; font-size: .95rem; }
.iw-footer h2, .iw-footer h3 { color: #fff; font-size: 1rem !important; }
.iw-footer a { color: #d5dee1; text-decoration: none; }
.iw-footer a:hover { color: #fff; text-decoration: underline; }
.iw-footer ul { list-style: none; padding: 0; margin: 0; }
.iw-footer li { margin: .35rem 0; }
.iw-footer .iw-footer-bottom { border-top: 1px solid rgba(255,255,255,.15); padding-top: 1rem; font-size: .85rem; }

/* ---------- Mobile Kontaktleiste ---------- */
.iw-mobilebar { display: none; }
@media (max-width: 781px) {
	.iw-mobilebar {
		display: grid; grid-template-columns: repeat(3, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		background: #fff; border-top: 1px solid var(--iw-line); box-shadow: 0 -4px 16px rgba(30,43,50,.08);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.iw-mobilebar a { display: flex; align-items: center; justify-content: center; gap: .4rem; padding: .8rem .4rem; font-weight: 600; font-size: .92rem; text-decoration: none; color: var(--wp--preset--color--contrast); }
	.iw-mobilebar a + a { border-left: 1px solid var(--iw-line); }
	.iw-mobilebar a.iw-mb-wa { color: var(--wp--preset--color--gruen-dunkel); }
	.iw-mobilebar a.iw-mb-anfrage { background: var(--wp--preset--color--accent-3); color: #fff; }
	body { padding-bottom: 58px; }
}

/* ---------- Zugänglichkeit ---------- */
.iw-skip { position: absolute; left: -999px; top: 0; background: #fff; padding: .6rem 1rem; z-index: 100; }
.iw-skip:focus { left: 1rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
/* Sichtbarer Tastaturfokus mit mindestens 3:1 Kontrast (WCAG 1.4.11) */
.wp-site-blocks a:focus-visible, .wp-site-blocks button:focus-visible, .wp-site-blocks summary:focus-visible,
.wp-block-button__link:focus-visible, .iw-submit button:focus-visible, .iw-booking-btn:focus-visible {
	outline: 3px solid var(--wp--preset--color--contrast); outline-offset: 2px; box-shadow: 0 0 0 5px #fff;
}
.iw-bg-teal a:focus-visible, .iw-card-dark a:focus-visible, .iw-bg-teal .wp-block-button__link:focus-visible,
.iw-mobilebar a:focus-visible, footer a:focus-visible {
	outline-color: #fff; box-shadow: 0 0 0 5px var(--wp--preset--color--contrast);
}
.iw-field input:focus, .iw-field select:focus, .iw-field textarea:focus,
.iw-form-error:focus, .iw-form-ok:focus, .iw-booking-frame:focus { outline-color: var(--wp--preset--color--accent-3); }

/* Banner kompakt auf Mobilgeräten (29.09.2026, Bannerversion 2026-09-29.3) */
@media (max-width: 600px) {
	.iw-consent { padding-left: .75rem !important; padding-right: .75rem !important; }
	.iw-consent-title { float: none; margin: 0 0 .3rem; font-size: .95rem; line-height: 1.3; }
	.iw-consent-text { line-height: 1.4; margin-bottom: .6rem; }
	.iw-consent-actions { gap: .5rem; }
	.iw-consent-actions button:not(.iw-consent-link) { min-height: 44px; padding-top: .5rem; padding-bottom: .5rem; }
	.iw-consent-actions button.iw-consent-link { min-height: 32px; line-height: 1.3; padding: .2rem .5rem; }
}

/* Silbentrennung: Firmenname, „Immobilie(n)“, Velbert und Städtenamen bleiben ungetrennt (Vorgabe 29.09.2026) */
.iw-nh { -webkit-hyphens: manual; hyphens: manual; }

/* Große Schrift (200 %): lange Wörter umbrechen statt überlaufen, Kontaktleiste bleibt im Bildschirm (WCAG 1.4.4, 1.4.10) */
main p, main li, main summary, main figcaption { overflow-wrap: break-word; }
@media (max-width: 781px) {
	.iw-mobilebar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.iw-mobilebar a { min-width: 0; text-align: center; line-height: 1.2; overflow-wrap: break-word; }
	body { padding-bottom: calc(3.625rem + env(safe-area-inset-bottom)); }
}

/* Mobiles Menü als Akkordeon (02.10.2026, ersetzt „nur Hauptpunkte" vom 29.09.2026).
   Ein Tipp auf „Für Hausverwaltungen" oder „Für Privatkunden" klappt die Leistungsseiten auf.
   Ohne JavaScript (keine Klasse iw-akk) bleiben alle Unterseiten ausgeklappt sichtbar. */
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; }
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu { width: 100%; }
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container { display: none !important; }
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu.iw-offen > .wp-block-navigation__submenu-container { display: flex !important; }
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; cursor: pointer; }
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content::after { content: ""; flex: 0 0 auto; width: .55rem; height: .55rem; margin-right: .3rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-25%) rotate(45deg); transition: transform .2s ease; }
.iw-akk .iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu.iw-offen > .wp-block-navigation-item__content::after { transform: translateY(25%) rotate(-135deg); }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a[aria-current="page"] { font-weight: 700; color: var(--wp--preset--color--accent-3); }
/* Anfrage-Punkt am Ende jedes Bereichs: im Handy-Menü als Schaltfläche, im Desktop-Menü abgesetzt */
.iw-header .wp-block-navigation__submenu-container .iw-nav-cta { border-top: 1px solid var(--iw-line); margin-top: .3rem; padding-top: .3rem; }
.iw-header .wp-block-navigation__submenu-container .iw-nav-cta > .wp-block-navigation-item__content { font-weight: 600; }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .iw-nav-cta { border-top: 0; margin-top: .35rem; padding-top: 0; }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .iw-nav-cta > .wp-block-navigation-item__content { display: inline-flex; padding: .55rem 1.1rem !important; border-radius: var(--iw-radius); background: var(--wp--preset--color--accent-3); color: #fff !important; font-weight: 600; text-decoration: none; }
/* Kontaktwege unten im geöffneten Menü (das Menü verdeckt die Mobilleiste) */
.iw-nav-kontakt { display: none; }
.iw-header .wp-block-navigation__responsive-container.is-menu-open .iw-nav-kontakt { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; width: 100%; margin: 1.5rem 0 calc(1rem + env(safe-area-inset-bottom)); padding-top: 1.25rem; border-top: 1px solid var(--iw-line); }
.iw-header .iw-nav-kontakt a { display: flex; align-items: center; justify-content: center; min-width: 0; padding: .75rem .4rem; border: 1px solid var(--iw-line); border-radius: var(--iw-radius); font-size: .95rem; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none; color: var(--wp--preset--color--contrast); }
.iw-header .iw-nav-kontakt a.iw-nk-wa { color: var(--wp--preset--color--gruen-dunkel); }
.iw-header .iw-nav-kontakt a.iw-nk-anfrage { background: var(--wp--preset--color--accent-3); border-color: var(--wp--preset--color--accent-3); color: #fff; }
/* Pfeil-Schaltfläche von WordPress im Handy-Menü ausblenden, der ganze Bereichstitel schaltet (Akkordeon oben) */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }

/* A-2026-005.32: Inhaberzeile im Hero, Sprungleiste, Kontaktkasten, Telefonnummern */
.iw-hero-owner { gap: .75rem; margin-top: 1.25rem; }
.iw-hero-owner .iw-owner-img { margin: 0; flex: 0 0 56px; }
.iw-hero-owner .iw-owner-img img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.iw-hero-owner p { margin: 0; }
.iw-hero-owner a { color: inherit; font-weight: 600; white-space: nowrap; }
.iw-sprung { margin-top: .75rem; }
.iw-sprung a { display: inline-block; padding-block: .3rem; }
.iw-kk-lead { font-weight: 600; margin: 0 0 1rem; }
.iw-kk-wege { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.iw-kk-weg { background: var(--wp--preset--color--base, #fff); border-radius: .75rem; padding: 1rem 1.125rem; display: flex; flex-direction: column; gap: .5rem; }
.iw-kk-weg > * { margin-block: 0; }
.iw-kk-nummer { font-size: 1.375rem; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.iw-kk-adresse { font-size: 1.05rem; }
.iw-copy { -webkit-user-select: all; user-select: all; cursor: text; }
main a[href^="tel:"] { white-space: nowrap; }
#anfrage { scroll-margin-top: 5rem; }

/* ======================================================================
   Paket B (A-2026-005.52, 29.09.2026): Kontakt leise, Footer, Formulare
   ====================================================================== */

/* K2: WhatsApp-Knöpfe als Kontur (#4B7400 auf Weiß 5,5:1). Auf Türkis-Flächen gilt weiter die Regel oben.
   Ausnahme B2C „Fotos per WhatsApp schicken“: Klasse iw-btn-wa-voll am Knopf-Block hält ihn gefüllt. */
.iw-btn-wa .wp-block-button__link { background: transparent; color: var(--wp--preset--color--gruen-dunkel); box-shadow: inset 0 0 0 2px currentColor; }
.iw-btn-wa .wp-block-button__link:hover { background: var(--wp--preset--color--gruen-dunkel); color: #fff; box-shadow: inset 0 0 0 2px var(--wp--preset--color--gruen-dunkel); }
.iw-hero .iw-btn-wa .wp-block-button__link, .iw-bg-dark .iw-btn-wa .wp-block-button__link, .iw-card-dark .iw-btn-wa .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.iw-hero .iw-btn-wa .wp-block-button__link:hover, .iw-bg-dark .iw-btn-wa .wp-block-button__link:hover, .iw-card-dark .iw-btn-wa .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); }
.iw-btn-wa.iw-btn-wa-voll .wp-block-button__link { background: var(--wp--preset--color--gruen-dunkel); color: #fff; box-shadow: none; }
.iw-btn-wa.iw-btn-wa-voll .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); }
.iw-booking-wa { background: transparent !important; color: var(--wp--preset--color--gruen-dunkel) !important; box-shadow: inset 0 0 0 2px currentColor; }
.iw-booking-wa:hover { background: var(--wp--preset--color--gruen-dunkel) !important; color: #fff !important; }

/* K12: Kopf-Telefon als Kontur (ab 1101 px) */
.iw-header .iw-header-phone .wp-block-button__link { background: transparent; color: var(--wp--preset--color--contrast); box-shadow: inset 0 0 0 2px var(--wp--preset--color--contrast); }
.iw-header .iw-header-phone .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: #fff; }
/* L2: 782–1100 px Kopf-Telefon als kompakter Textlink (Türkis dunkel #17707C auf Weiß 5,8:1) */
@media (min-width: 782px) and (max-width: 1100px) {
	.iw-header .iw-header-phone { display: block; }
	.iw-header .iw-header-phone .wp-block-button__link { background: none; box-shadow: none; padding: .6rem 0; font-size: .9rem; font-weight: 600; color: var(--wp--preset--color--accent-3); text-decoration: underline; text-underline-offset: 3px; }
	.iw-header .iw-header-phone .wp-block-button__link:hover { background: none; color: var(--wp--preset--color--contrast); }
}
@media (min-width: 1024px) and (max-width: 1100px) {
	.iw-header .wp-block-navigation .wp-block-navigation__container { gap: 1rem; }
}
/* D1: Kopf-Telefon tritt zurück, solange dieselbe Nummer im Inhalt oder Footer sichtbar ist (inc/cro.php, Abschnitt 7) */
.iw-header .iw-header-phone { transition: opacity .2s ease, visibility .2s; }
.iw-header .iw-header-phone.iw-zurueck { visibility: hidden; opacity: 0; }

/* K1: Mobile Kontaktleiste erst nach dem Hero, ausgeblendet im Anfragebereich und im Footer (Platz bleibt reserviert) */
@media (max-width: 781px) {
	.iw-mobilebar { transition: transform .2s ease, visibility .2s; }
	.iw-js .iw-mobilebar:not(.iw-mb-an) { transform: translateY(110%); visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
	.iw-mobilebar, .iw-header .iw-header-phone { transition: none !important; }
}

/* F7: Auswahlfelder mindestens 44 px hoch */
.iw-field .iw-option { min-height: 44px; padding: .5rem 0; margin-top: 0; }
.iw-field .iw-option input { flex: none; }
.iw-field[hidden] { display: none !important; }

/* Bewertungszeile im Formularkopf (Beschluss 2.5) */
.iw-form-trust { font-size: .95rem; margin: 0 0 1rem; }
.iw-form-trust-stern { color: #9a6200; }

/* Absende-Knopf während des Sendens */
.iw-submit button[aria-disabled="true"] { opacity: .75; cursor: progress; }

/* [iw_termin] ohne Buchungslink: ein Satz ohne Knöpfe (K4) */
.iw-termin-satz { font-size: 1rem; }

/* Footer ruhig (kreativ 1, Beschluss 2.1): Labels gedämpft (#a9b8bc auf #1e2b32 = 7,1:1), Zeiten an der Nummer, keine Adresse */
.iw-footer .iw-footer-claim { color: #a9b8bc; margin-top: .25rem; }
.iw-footer .iw-footer-kontakt li { margin: .45rem 0; }
.iw-footer .iw-f-label { display: inline-block; min-width: 6.5rem; color: #a9b8bc; font-size: .85rem; }
.iw-footer .iw-f-zeit { display: block; padding-left: 6.5rem; color: #a9b8bc; font-size: .85rem; }
.iw-footer .iw-footer-gebiet { margin-top: 1rem; }
.iw-footer .iw-footer-gebiet a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 781px) {
	.iw-footer .iw-footer-cols { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.75rem 1rem; }
	.iw-footer .iw-footer-cols > .iw-footer-firma { grid-column: 1 / -1; }
	.iw-footer .iw-f-label { min-width: 5.5rem; }
	.iw-footer .iw-f-zeit { padding-left: 5.5rem; }
}

/* ---------- Paket D: Kontaktwege als Symbole, Footer kompakt, Bewertungen kompakt ---------- */
/* Symbole für Kontaktwege */
.iw-ico::before{content:"";display:inline-block;width:1.1em;height:1.1em;margin-right:.45em;vertical-align:-.2em;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.iw-ico-tel{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E")}
.iw-ico-wa{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 2a8 8 0 1 1-4.1 14.9l-.3-.2-3 .8.8-2.9-.2-.3A8 8 0 0 1 12 4zm-3.1 4c-.2 0-.6.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3 2.4.9 2.9.8 3.4.7.5 0 1.7-.7 1.9-1.4.2-.7.2-1.2.2-1.4l-.5-.3-1.9-.9c-.2-.1-.4-.1-.6.1l-.8 1c-.2.2-.3.2-.6.1a6.6 6.6 0 0 1-3.3-2.9c-.2-.4.2-.4.7-1.3.1-.2 0-.3 0-.5l-.9-2.1c-.2-.5-.4-.5-.6-.5h-.5z'/%3E%3C/svg%3E")}
.iw-ico-mail{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18c.6 0 1 .4 1 1v12c0 .6-.4 1-1 1H3a1 1 0 0 1-1-1V6c0-.6.4-1 1-1zm1 2.3V17h16V7.3l-8 5.3z M5.2 7l6.8 4.5L18.8 7z'/%3E%3C/svg%3E")}
.iw-kontaktliste a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.iw-footer-icons{display:flex;gap:.6rem;margin:1rem 0 !important;padding:0;list-style:none}
.iw-footer-icons li{margin:0 !important}
.iw-footer-icons a{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff !important;transition:background .2s,transform .2s}
.iw-footer-icons a:hover{background:#17707C;transform:translateY(-2px);text-decoration:none !important}
.iw-footer-icons svg{width:22px;height:22px;fill:currentColor}
.iw-review-note { font-size: .82rem; margin-top: .9rem !important; }
.iw-reviews .iw-grid { gap: 1rem !important; }
.iw-card.iw-review { padding: 1.25rem !important; }
.iw-review .iw-review-rating { font-size: .95rem; }
.iw-owner-actions { margin-top: .9rem; }

/* ---------- Paket D: Blickfänge, Hover, Scroll-Reveal (Quelle paket_d/iw-leben.css) ----------
   Farben aus theme.json. Ohne JS und bei reduzierter Bewegung bleibt jede Information sichtbar. */
.iw-leben{margin:0;position:relative}
.iw-leben figcaption{font-size:.95rem;color:var(--wp--preset--color--accent-4);margin-top:.75rem}
.iw-leben figcaption strong{color:var(--wp--preset--color--contrast)}
.iw-vn-buehne{position:relative;border-radius:var(--iw-radius,10px);overflow:hidden;box-shadow:var(--iw-shadow);background:#F1F4F3}
.iw-vn-bild svg{display:block;width:100%;height:auto}
.iw-vn-bild{position:relative;margin:0}
.iw-vn-marke{position:absolute;top:.6rem;left:.6rem;background:rgba(30,43,50,.82);color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.02em;padding:.2rem .55rem;border-radius:999px;pointer-events:none}
.iw-vn-nach .iw-vn-marke{left:auto;right:.6rem;background:#17707C}
/* ohne JS: Vorher und Nachher nebeneinander (Handy untereinander) */
.iw-leben:not(.iw-an) .iw-vn-buehne{display:grid;gap:4px;grid-template-columns:1fr}
@media (min-width:600px){.iw-leben:not(.iw-an) .iw-vn-buehne{grid-template-columns:1fr 1fr}}
.iw-leben:not(.iw-an) .iw-vn-griff,.iw-leben:not(.iw-an) .iw-vn-regler,.iw-leben:not(.iw-an) .iw-schnee{display:none}
.iw-leben:not(.iw-an) .iw-vn-vor{order:-1}
.iw-hinweis{font-size:.85rem;color:var(--wp--preset--color--accent-4);margin:.5rem 0 0}
.iw-leben:not(.iw-an) .iw-hinweis{display:none}
/* mit JS: übereinander, Regler über die ganze Fläche */
.iw-an .iw-vn-vor{position:absolute;inset:0;z-index:1;clip-path:inset(0 calc(100% - var(--p,50)*1%) 0 0)}
.iw-vn-griff{position:absolute;z-index:2;top:0;bottom:0;left:calc(var(--p,50)*1%);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 0 1px rgba(30,43,50,.2);pointer-events:none}
.iw-vn-griff::after{content:"";position:absolute;top:50%;left:50%;width:46px;height:46px;border-radius:50%;transform:translate(-50%,-50%);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l-5 5 5 5M15 7l5 5-5 5' fill='none' stroke='%2317707C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/26px no-repeat;box-shadow:0 4px 14px rgba(30,43,50,.25);transition:transform .2s}
[data-iw-leben=wisch] .iw-vn-griff::after{border-radius:8px;width:30px;height:84px;background:#17707C url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 30'%3E%3Cpath d='M5 3v24' stroke='%23fff' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") center/10px no-repeat}
.iw-vn-regler{position:absolute;inset:0;z-index:3;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.iw-vn-buehne:has(.iw-vn-regler:focus-visible) .iw-vn-griff::after{outline:3px solid #1E2B32;outline-offset:3px}
.iw-schnee{position:absolute;inset:0;z-index:2;pointer-events:none;background-image:radial-gradient(circle 2.5px at 20px 30px,#fff 90%,transparent),radial-gradient(circle 1.8px at 90px 120px,#fff 90%,transparent),radial-gradient(circle 3px at 160px 60px,#fff 90%,transparent),radial-gradient(circle 1.8px at 220px 170px,#fff 90%,transparent);background-size:300px 240px;filter:drop-shadow(0 0 1px rgba(30,43,50,.35));clip-path:inset(0 calc(100% - var(--p,50)*1%) 0 0);animation:iw-schnee 4.5s linear 1 forwards;animation-play-state:paused}
.iw-schnee-an .iw-schnee{animation-play-state:running}
@keyframes iw-schnee{80%{opacity:1}to{background-position:40px 240px,-30px 240px,20px 240px,-15px 240px;opacity:0}}
/* Mülltonnen-Ablauf */
.iw-ablauf svg{display:block;width:100%;height:auto;border-radius:var(--iw-radius,10px);box-shadow:var(--iw-shadow);background:#F1F4F3}
.iw-tonnen{transition:transform 1.6s cubic-bezier(.45,0,.2,1)}
[data-stufe="1"] .iw-tonnen,[data-stufe="2"] .iw-tonnen{transform:translateX(-520px)}
.iw-t-deckel{transition:transform .6s .3s}
[data-stufe="2"] .iw-t-deckel{transform:rotate(-28deg)}
.iw-lkw{opacity:0;transform:translateX(-340px);transition:opacity .5s,transform 1.4s cubic-bezier(.3,0,.2,1)}
[data-stufe="2"] .iw-lkw{opacity:1;transform:none}
.iw-haken{opacity:0;transition:opacity .5s .9s}
[data-stufe="3"] .iw-haken{opacity:1}
.iw-ablauf-schritte{list-style:none;padding:0;margin:.9rem 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.iw-ablauf-schritte button{width:100%;height:100%;text-align:left;font:inherit;font-size:.9rem;line-height:1.35;color:var(--wp--preset--color--accent-4);background:#fff;border:2px solid var(--iw-line,#dfe5e3);border-radius:10px;padding:.65rem .75rem;cursor:pointer;transition:border-color .2s,background .2s}
.iw-ablauf-schritte strong{display:block;color:var(--wp--preset--color--contrast);font-size:1rem}
.iw-ablauf-schritte [aria-pressed=true]{border-color:#17707C;background:#E6F5F7}
.iw-leben:not(.iw-an) .iw-ablauf-schritte button{cursor:default}
@media (max-width:599px){.iw-ablauf-schritte{grid-template-columns:repeat(3,1fr);gap:.35rem}.iw-ablauf-schritte button{font-size:0;text-align:center;padding:.6rem .3rem;min-height:44px}.iw-ablauf-schritte strong{font-size:.85rem}}
.iw-leben-cols{gap:clamp(1.5rem,4vw,3.5rem) !important}
/* Scroll-Reveal */
.iw-js .iw-rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--d,0)*90ms)}
.iw-js .iw-rv.iw-da{opacity:1;transform:none}
/* Hover und Fokus (Tastatur und Touch gleichwertig) */
.iw-card .iw-more a::after{display:inline-block;transition:transform .2s}
.iw-card:focus-within{box-shadow:0 2px 4px rgba(30,43,50,.08),0 18px 38px rgba(30,43,50,.13)}
.wp-block-button__link:active,.iw-submit button:active,.iw-ablauf-schritte button:active{transform:translateY(1px)}
.iw-card .iw-more a:focus-visible::after{transform:translateX(5px)}
@media (hover:hover){
.iw-card:has(a),.iw-review:has(a){transition:transform .2s,box-shadow .2s}
.iw-card:has(a):hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(30,43,50,.08),0 18px 38px rgba(30,43,50,.13)}
.iw-service,.iw-step,.iw-feature{transition:border-color .2s}
.iw-service:hover,.iw-step:hover{border-top-color:#83BE04}
.iw-card:hover .iw-more a::after,.iw-card .iw-more a:hover::after{transform:translateX(5px)}
.wp-block-button__link,.iw-submit button,.iw-booking-btn{transition:transform .2s,box-shadow .2s,background-color .2s,color .2s}
.wp-block-button__link:hover,.iw-submit button:hover,.iw-booking-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(23,112,124,.22)}
.iw-img,.iw-gallery .wp-block-image{overflow:hidden;border-radius:var(--iw-radius,10px)}
.iw-img img,.iw-gallery img{transition:transform .2s}
.iw-img:hover img,.iw-gallery .wp-block-image:hover img{transform:scale(1.035)}
main p a:not(.wp-block-button__link){text-underline-offset:3px;transition:color .2s}
main p a:not(.wp-block-button__link):hover{text-decoration-thickness:2px}
.iw-vn-buehne:hover .iw-vn-griff::after{transform:translate(-50%,-50%) scale(1.08)}
.iw-ablauf-schritte button:hover{border-color:#36B5C6}
}
@media (prefers-reduced-motion:reduce){.iw-schnee{display:none}.iw-js .iw-rv{opacity:1;transform:none}.iw-leben *,.iw-rv{transition:none !important;animation:none !important}.iw-card:hover,.wp-block-button__link:hover,.iw-img:hover img{transform:none}}

/* ---------- Paket D: Schritt-Formular (wirkt nur mit dem Schritt-Skript auf Seiten mit [iw_anfrage]; ohne JS normales Formular) ---------- */
.iw-schritte-kopf{display:flex;align-items:center;gap:.8rem;margin:0 0 1.1rem;font-size:.9rem;font-weight:600;color:var(--wp--preset--color--accent-4)}
.iw-schritte-balken{flex:1;height:6px;border-radius:3px;background:#F1F4F3;overflow:hidden}
.iw-schritte-balken i{display:block;height:100%;width:calc(var(--s,1)*33.34%);background:#83BE04;transition:width .4s}
.iw-schritt:focus{outline:none}
.iw-karten fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,11.5rem),1fr));gap:.6rem}
.iw-karten .iw-option span{min-width:0;overflow-wrap:break-word;hyphens:auto}
.iw-karten legend{grid-column:1/-1;font-size:1.15rem !important;font-weight:700 !important;margin-bottom:.5rem}
.iw-karten .iw-option{border:2px solid var(--iw-line,#dfe5e3);border-radius:10px;padding:.8rem .9rem !important;min-height:58px !important;background:#fff;font-weight:600 !important;line-height:1.3;transition:border-color .2s,background .2s}
.iw-karten .iw-option:has(input:checked){border-color:#17707C;background:#E6F5F7}
.iw-karten .iw-option:has(input:focus-visible){outline:3px solid #1E2B32;outline-offset:2px}
.iw-chips fieldset{display:flex;flex-wrap:wrap;gap:.45rem}
.iw-chips legend{width:100%;margin-bottom:.35rem}
.iw-chips .iw-option{border:1px solid var(--iw-line,#dfe5e3);border-radius:999px;padding:.45rem .9rem !important;background:#fff}
.iw-chips .iw-option:has(input:checked){border-color:#17707C;background:#E6F5F7}
.iw-schritte-nav{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.25rem}
.iw-schritt .iw-schritte-nav{margin-top:.25rem}
.iw-schritte-an .iw-submit{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.iw-schritte-an .iw-submit .iw-zurueck,.iw-schritte-an .iw-submit .iw-zurueck:hover{background:none;color:#17707C;box-shadow:none;transform:none;border:0;padding:.6rem .25rem;text-decoration:underline;text-underline-offset:3px}
.iw-schritte-nav .iw-weiter{background:#17707C;color:#fff;border:0;border-radius:6px;padding:.9rem 1.6rem;font:inherit;font-weight:600;cursor:pointer}
.iw-schritte-nav .iw-zurueck{background:none;border:0;color:#17707C;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:.6rem 0;min-height:44px}
.iw-extra{margin:0 0 1.1rem;border:2px dashed #8FC3CA;border-radius:10px;background:#fff}
.iw-extra[open]{border-style:solid;border-color:#17707C}
.iw-extra summary::-webkit-details-marker{display:none}
.iw-extra summary::marker{content:""}
.iw-extra summary:focus-visible{outline:3px solid #1E2B32;outline-offset:2px}
.iw-extra-plus{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#17707C;position:relative}
.iw-extra-plus::before,.iw-extra-plus::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:#fff;transform:translate(-50%,-50%)}
.iw-extra-plus::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .2s}
.iw-extra[open] .iw-extra-plus::after{transform:translate(-50%,-50%) rotate(0deg)}
.iw-extra-text{display:flex;flex-direction:column;line-height:1.3}
.iw-extra-text strong{font-weight:700;font-size:1rem}
.iw-extra-text small{font-size:.875rem;font-weight:400;color:#4A5A60}
.iw-extra > .iw-field{padding:0 1rem 1rem;margin-bottom:0}
.iw-zusage{display:block;color:#1E2B32;margin-bottom:.35rem}
@media (hover:hover){.iw-extra summary:hover{background:#F2FAFB}}
@media (prefers-reduced-motion:reduce){.iw-extra-plus::after{transition:none}}
.iw-extra summary{list-style:none;cursor:pointer;color:#17707C;min-height:48px;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px}
@media (hover:hover){.iw-karten .iw-option:hover{border-color:#36B5C6}}
@media (prefers-reduced-motion:reduce){.iw-schritte-balken i{transition:none}}

/* IW-8: Hinweis Einsatzgebiet am Adressfeld */
.iw-gebiet { color: var(--wp--preset--color--accent-3); font-weight: 600; }
.iw-gebiet:empty { display: none; }

/* IW-8: Live-Ablauf unter dem Anfrageformular */
.iw-ablauf { margin-top: 1.5rem; padding: 1.1rem 1.2rem 1rem; border-radius: var(--iw-radius); background: var(--wp--preset--color--accent-5); border-left: 4px solid var(--wp--preset--color--accent-1); }
.iw-ablauf .iw-ablauf-titel { font-size: 1.05rem !important; margin: 0 0 .7rem; }
.iw-ablauf ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.iw-ablauf li { display: grid; grid-template-columns: 1.7rem 1fr auto; column-gap: .65rem; align-items: baseline; font-size: .95rem; }
.iw-ablauf-nr { width: 1.7rem; height: 1.7rem; border-radius: 50%; background: #fff; border: 2px solid var(--wp--preset--color--accent-1); display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; color: var(--wp--preset--color--accent-3); align-self: center; }
.iw-ablauf-was { font-weight: 600; }
.iw-ablauf-wann { color: var(--wp--preset--color--accent-3); font-weight: 600; text-align: right; }
.iw-ablauf-hinweis { font-size: .82rem; color: var(--wp--preset--color--accent-4); margin: .8rem 0 0; }
@media (max-width: 480px) {
	.iw-ablauf li { grid-template-columns: 1.7rem 1fr; }
	.iw-ablauf-wann { grid-column: 2; text-align: left; font-weight: 500; }
}
/* ---------- Paket E: Vorher/Nachher-Etikett (AD R6), Galerie mobil zweispaltig (AD R7), Startseiten-Hero zweispaltig (AD HERO A) ---------- */
.iw-gallery .iw-vorher, .iw-gallery .iw-nachher { position: relative; }
.iw-gallery .iw-vorher::before, .iw-gallery .iw-nachher::before { content: "Vorher"; position: absolute; z-index: 1; top: .6rem; left: .6rem; background: #1E2B32; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.4; padding: .15rem .6rem; border-radius: 999px; }
.iw-gallery .iw-nachher::before { content: "Nachher"; background: #4B7400; }
@media (max-width: 600px) { .iw-gallery { grid-template-columns: 1fr 1fr !important; gap: 12px !important; } .iw-gallery figcaption { font-size: .8rem; } }
.iw-hero-start .iw-img img { box-shadow: var(--iw-shadow); }
@media (max-width: 781px) { .iw-hero-start .iw-hero-cols > .wp-block-column:last-child { margin-top: .5rem; } }


/* Paket F: KI-Beispielbilder Vorher/Nachher (29.09.2026) */
.iw-gallery.iw-ratio-43 .wp-block-image img { aspect-ratio: 4 / 3 !important; }
.iw-gallery.iw-ratio-34 .wp-block-image img { aspect-ratio: 3 / 4 !important; }
.iw-gallery.iw-ratio-169 .wp-block-image img { aspect-ratio: 16 / 9 !important; }
.iw-gallery.iw-ki .wp-block-image:hover img { transform: none; }
.iw-gallery.iw-ki { margin-bottom: 1.5rem; }

.iw-gallery.iw-ki.iw-ratio-34 { max-width: 46rem; }

/* Schlussabnahme AD 29.09.2026 (F1, F2, F7, F8, F9, F12, F13) */
.wp-block-column > .iw-card:not(:only-child) { height: auto; }
.wp-block-column > .iw-card + .iw-card { margin-top: 1rem; }
@media (max-width: 480px) {
	.wp-site-blocks h1 { font-size: min(2.078rem, calc((100vw - 3rem) / 10.4)) !important; }
	.wp-site-blocks h1.iw-h1-lang { font-size: calc((100vw - 3rem) / 12.2) !important; }
}
.iw-wide > .wp-block-buttons + .wp-block-heading { margin-top: 2.5rem; }
@media (max-width: 600px) { .iw-gallery.iw-ki.iw-ratio-169 { grid-template-columns: 1fr !important; } }
@media (min-width: 601px) and (max-width: 1119px) { .iw-steps { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.iw-gallery.iw-ki.iw-ratio-34 { margin-inline: auto; }

/* 2026-09-30 Textlinks im türkisen Band: dunkel statt Türkis auf Türkis (vorher 2,35:1, jetzt 5,9:1) */
.iw-bg-teal p a:not(.wp-block-button__link) { color: var(--wp--preset--color--contrast); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.iw-bg-teal p a:not(.wp-block-button__link):hover { text-decoration-thickness: 2px; }

/* 2026-09-30 Beispielansichten der Hausmeister-App im Kartenkasten */
.iw-app-box .iw-app-shot { margin: .9rem 0 1rem; max-width: 720px; }
.iw-app-box .iw-app-shot img { display: block; width: 100%; height: auto; border: 1px solid var(--iw-line); border-radius: 8px; }
.iw-app-box .iw-app-shot figcaption { margin-top: .4rem; font-size: .85rem; color: #4a5a61; }

/* 2026-09-30 Kopf-Anfrage neben der Telefonnummer (ab 1200 px, sonst bricht das Menü um; darunter übernimmt die mobile Kontaktleiste bzw. der Hero-Button). Ziel setzt inc/cro.php */
.iw-header .iw-header-anfrage { display: none; }
@media (min-width: 1200px) {
	.iw-header .iw-header-anfrage { display: block; }
	.iw-header .iw-header-anfrage .wp-block-button__link { background: var(--wp--preset--color--accent-3); color: #fff; padding: .6rem 1.1rem; font-size: .95rem; white-space: nowrap; box-shadow: none; }
	.iw-header .iw-header-anfrage .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: #fff; }
}
@media (max-width: 600px) { .iw-gallery:not(.iw-ki) > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
