/* Schriften lokal (SIL Open Font License), keine Anfragen an Drittanbieter */
@font-face{font-family:"Jost";font-style:normal;font-weight:400 600;font-display:swap;src:url("/wp-content/uploads/2026/11/Jost-400-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";font-style:normal;font-weight:400 600;font-display:swap;src:url("/wp-content/uploads/2026/11/Jost-400-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/wp-content/uploads/2026/11/IBMPlexMono-400-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/wp-content/uploads/2026/11/IBMPlexMono-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/wp-content/uploads/2026/11/IBMPlexMono-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/wp-content/uploads/2026/11/IBMPlexMono-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Elementor-Container verhalten sich wie normale Blöcke; Layout-Klassen des Kunden (grid, flex, ...) gewinnen danach */
.e-con { display: block; }
.e-con > .elementor-widget { max-width: 100%; }

:root{--ic-i-cookie:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5'/%3E%3Cpath d='M8.5 8.5v.01M16 15.5v.01M12 12v.01M11 17v.01M7 14v.01'/%3E%3C/g%3E%3C/svg%3E");--ic-m-kpm-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80.72 69.01'%3E%3Cpath d='M0 21.33 19.37 8.74 80.72 48.56V69.01H68.88V55.02L19.37 22.86 0 35.43Z'/%3E%0A    %3Cpath d='M34.44 9.92 40.9 0 80.72 25.87V40Z'/%3E%0A    %3Cpath d='M0 44.68 19.37 32.09 25.83 41.99 11.84 51.11V69.01H0Z'/%3E%3C/svg%3E");--ic-i-arrow-left:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,128a6,6,0,0,1-6,6H54.49l61.75,61.76a6,6,0,1,1-8.48,8.48l-72-72a6,6,0,0,1,0-8.48l72-72a6,6,0,0,1,8.48,8.48L54.49,122H216A6,6,0,0,1,222,128Z'/%3E%3C/svg%3E");--ic-i-arrow-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M220.24,132.24l-72,72a6,6,0,0,1-8.48-8.48L201.51,134H40a6,6,0,0,1,0-12H201.51L139.76,60.24a6,6,0,0,1,8.48-8.48l72,72A6,6,0,0,1,220.24,132.24Z'/%3E%3C/svg%3E");--ic-i-buildings:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M240,210H222V96a14,14,0,0,0-14-14H142V32a14,14,0,0,0-21.77-11.64l-80,53.33A14,14,0,0,0,34,85.34V210H16a6,6,0,0,0,0,12H240a6,6,0,0,0,0-12ZM208,94a2,2,0,0,1,2,2V210H142V94ZM46,85.34a2,2,0,0,1,.89-1.66l80-53.34A2,2,0,0,1,130,32V210H46ZM110,112v16a6,6,0,0,1-12,0V112a6,6,0,0,1,12,0Zm-32,0v16a6,6,0,0,1-12,0V112a6,6,0,0,1,12,0Zm0,56v16a6,6,0,0,1-12,0V168a6,6,0,0,1,12,0Zm32,0v16a6,6,0,0,1-12,0V168a6,6,0,0,1,12,0Z'/%3E%3C/svg%3E");--ic-i-check-circle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M172.24,99.76a6,6,0,0,1,0,8.48l-56,56a6,6,0,0,1-8.48,0l-24-24a6,6,0,0,1,8.48-8.48L112,151.51l51.76-51.75A6,6,0,0,1,172.24,99.76ZM230,128A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z'/%3E%3C/svg%3E");--ic-i-clock-countdown:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M230,136.49A102.12,102.12,0,1,1,119.51,26a6,6,0,0,1,1,12A90.13,90.13,0,1,0,218,135.51a6,6,0,1,1,12,1ZM122,72v56a6,6,0,0,0,6,6h56a6,6,0,0,0,0-12H134V72a6,6,0,0,0-12,0Zm38-26a10,10,0,1,0-10-10A10,10,0,0,0,160,46Zm36,24a10,10,0,1,0-10-10A10,10,0,0,0,196,70Zm24,36a10,10,0,1,0-10-10A10,10,0,0,0,220,106Z'/%3E%3C/svg%3E");--ic-i-door:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M232,218H206V40a14,14,0,0,0-14-14H64A14,14,0,0,0,50,40V218H24a6,6,0,0,0,0,12H232a6,6,0,0,0,0-12ZM62,40a2,2,0,0,1,2-2H192a2,2,0,0,1,2,2V218H62Zm104,92a10,10,0,1,1-10-10A10,10,0,0,1,166,132Z'/%3E%3C/svg%3E");--ic-i-list:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128ZM40,70H216a6,6,0,0,0,0-12H40a6,6,0,0,0,0,12ZM216,186H40a6,6,0,0,0,0,12H216a6,6,0,0,0,0-12Z'/%3E%3C/svg%3E");--ic-i-map-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,66a38,38,0,1,0,38,38A38,38,0,0,0,128,66Zm0,64a26,26,0,1,1,26-26A26,26,0,0,1,128,130Zm0-112a86.1,86.1,0,0,0-86,86c0,30.91,14.34,63.74,41.47,94.94a252.32,252.32,0,0,0,41.09,38,6,6,0,0,0,6.88,0,252.32,252.32,0,0,0,41.09-38c27.13-31.2,41.47-64,41.47-94.94A86.1,86.1,0,0,0,128,18Zm0,206.51C113,212.93,54,163.62,54,104a74,74,0,0,1,148,0C202,163.62,143,212.93,128,224.51Z'/%3E%3C/svg%3E");--ic-i-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.59,160.3l-47.24-21.17a14,14,0,0,0-13.28,1.22,4.81,4.81,0,0,0-.56.42l-24.69,21a1.88,1.88,0,0,1-1.68.06c-15.87-7.66-32.31-24-40-39.65a1.91,1.91,0,0,1,0-1.68l21.07-25a6.13,6.13,0,0,0,.42-.58,14,14,0,0,0,1.12-13.27L95.73,34.49a14,14,0,0,0-14.56-8.38A54.24,54.24,0,0,0,34,80c0,78.3,63.7,142,142,142a54.25,54.25,0,0,0,53.89-47.17A14,14,0,0,0,221.59,160.3ZM176,210C104.32,210,46,151.68,46,80A42.23,42.23,0,0,1,82.67,38h.23a2,2,0,0,1,1.84,1.31l21.1,47.11a2,2,0,0,1,0,1.67L84.73,113.15a4.73,4.73,0,0,0-.43.57,14,14,0,0,0-.91,13.73c8.87,18.16,27.17,36.32,45.53,45.19a14,14,0,0,0,13.77-1c.19-.13.38-.27.56-.42l24.68-21a1.92,1.92,0,0,1,1.6-.1l47.25,21.17a2,2,0,0,1,1.21,2A42.24,42.24,0,0,1,176,210Z'/%3E%3C/svg%3E");--ic-i-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z'/%3E%3C/svg%3E");--ic-i-question:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M138,180a10,10,0,1,1-10-10A10,10,0,0,1,138,180ZM128,74c-21,0-38,15.25-38,34v4a6,6,0,0,0,12,0v-4c0-12.13,11.66-22,26-22s26,9.87,26,22-11.66,22-26,22a6,6,0,0,0-6,6v8a6,6,0,0,0,12,0v-2.42c18.11-2.58,32-16.66,32-33.58C166,89.25,149,74,128,74Zm102,54A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z'/%3E%3C/svg%3E");--ic-i-siren:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M122,16V8a6,6,0,0,1,12,0v8a6,6,0,0,1-12,0Zm78,30a6,6,0,0,0,4.24-1.76l8-8a6,6,0,1,0-8.48-8.48l-8,8A6,6,0,0,0,200,46ZM51.76,44.24a6,6,0,0,0,8.48-8.48l-8-8a6,6,0,0,0-8.48,8.48ZM137,74.08a6,6,0,1,0-2,11.84c20,3.34,35,21.44,35,42.08a6,6,0,0,0,12,0C182,101.57,162.65,78.39,137,74.08ZM230,176v24a14,14,0,0,1-14,14H40a14,14,0,0,1-14-14V176a14,14,0,0,1,14-14h2V128a86,86,0,0,1,86-86h.65c47.06.35,85.35,39.38,85.35,87v33h2A14,14,0,0,1,230,176ZM54,162H202V129c0-41-32.94-74.7-73.44-75H128a74,74,0,0,0-74,74Zm164,14a2,2,0,0,0-2-2H40a2,2,0,0,0-2,2v24a2,2,0,0,0,2,2H216a2,2,0,0,0,2-2Z'/%3E%3C/svg%3E");--ic-i-thermometer-cold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M248.29,75.82l-22.58,7.33,13.95,19.21a6,6,0,1,1-9.7,7.06L216,90.21l-14,19.21a6,6,0,1,1-9.7-7.06l13.95-19.21-22.58-7.33a6,6,0,1,1,3.71-11.41L210,71.74V48a6,6,0,0,1,12,0V71.74l22.58-7.33a6,6,0,0,1,3.71,11.41ZM150,184a30,30,0,1,1-36-29.4V120a6,6,0,0,1,12,0v34.6A30.05,30.05,0,0,1,150,184Zm-12,0a18,18,0,1,0-18,18A18,18,0,0,0,138,184Zm44,0A62,62,0,1,1,82,135V48a38,38,0,0,1,76,0v87A62.06,62.06,0,0,1,182,184Zm-12,0a50.07,50.07,0,0,0-21.43-41A6,6,0,0,1,146,138V48a26,26,0,0,0-52,0v90A6,6,0,0,1,91.43,143,50,50,0,1,0,170,184Z'/%3E%3C/svg%3E");--ic-i-users-three:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M243.6,148.8a6,6,0,0,1-8.4-1.2A53.58,53.58,0,0,0,192,126a6,6,0,0,1,0-12,26,26,0,1,0-25.18-32.5,6,6,0,0,1-11.62-3,38,38,0,1,1,59.91,39.63A65.69,65.69,0,0,1,244.8,140.4,6,6,0,0,1,243.6,148.8ZM189.19,213a6,6,0,0,1-2.19,8.2,5.9,5.9,0,0,1-3,.81,6,6,0,0,1-5.2-3,59,59,0,0,0-101.62,0,6,6,0,1,1-10.38-6A70.1,70.1,0,0,1,103,182.55a46,46,0,1,1,50.1,0A70.1,70.1,0,0,1,189.19,213ZM128,178a34,34,0,1,0-34-34A34,34,0,0,0,128,178ZM70,120a6,6,0,0,0-6-6A26,26,0,1,1,89.18,81.49a6,6,0,1,0,11.62-3,38,38,0,1,0-59.91,39.63A65.69,65.69,0,0,0,11.2,140.4a6,6,0,1,0,9.6,7.2A53.58,53.58,0,0,1,64,126,6,6,0,0,0,70,120Z'/%3E%3C/svg%3E");--ic-i-wrench:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224.91,69.75a6,6,0,0,0-9.63-2.16l-41.07,37.9L154.7,101.3l-4.19-19.51,37.9-41.07a6,6,0,0,0-2.16-9.63,70,70,0,0,0-89.77,94.39l-61.39,53c-.11.09-.21.19-.32.3A30,30,0,0,0,77.2,221.23c.11-.11.21-.21.3-.32l53-61.39a70,70,0,0,0,94.39-89.77ZM160,154a58,58,0,0,1-28-7.22,6,6,0,0,0-7.45,1.33L68.57,212.88a18,18,0,0,1-25.45-25.45l64.76-55.94A6,6,0,0,0,109.2,124a58,58,0,0,1,64-84.53L139.58,75.93a6,6,0,0,0-1.45,5.33l5.65,26.35a6,6,0,0,0,4.61,4.61l26.35,5.65a6,6,0,0,0,5.33-1.45L216.49,82.8A58.06,58.06,0,0,1,160,154Z'/%3E%3C/svg%3E");--ic-i-x:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M204.24,195.76a6,6,0,1,1-8.48,8.48L128,136.49,60.24,204.24a6,6,0,0,1-8.48-8.48L119.51,128,51.76,60.24a6,6,0,0,1,8.48-8.48L128,119.51l67.76-67.75a6,6,0,0,1,8.48,8.48L136.49,128Z'/%3E%3C/svg%3E");--ic-i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E");--ic-i-arrow-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M204.24,116.24a6,6,0,0,1-8.48,0L134,54.49V216a6,6,0,0,1-12,0V54.49L60.24,116.24a6,6,0,0,1-8.48-8.48l72-72a6,6,0,0,1,8.48,0l72,72A6,6,0,0,1,204.24,116.24Z'/%3E%3C/svg%3E");--ic-i-download-simple:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,144v64a6,6,0,0,1-6,6H40a6,6,0,0,1-6-6V144a6,6,0,0,1,12,0v58H210V144a6,6,0,0,1,12,0Zm-98.24,4.24a6,6,0,0,0,8.48,0l40-40a6,6,0,0,0-8.48-8.48L134,129.51V32a6,6,0,0,0-12,0v97.51L92.24,99.76a6,6,0,0,0-8.48,8.48Z'/%3E%3C/svg%3E");--ic-i-envelope-simple:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224,50H32a6,6,0,0,0-6,6V192a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A6,6,0,0,0,224,50ZM208.58,62,128,135.86,47.42,62ZM216,194H40a2,2,0,0,1-2-2V69.64l86,78.78a6,6,0,0,0,8.1,0L218,69.64V192A2,2,0,0,1,216,194Z'/%3E%3C/svg%3E");--ic-i-file-pdf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M222,152a6,6,0,0,1-6,6H190v20h18a6,6,0,0,1,0,12H190v18a6,6,0,0,1-12,0V152a6,6,0,0,1,6-6h32A6,6,0,0,1,222,152ZM90,172a26,26,0,0,1-26,26H54v10a6,6,0,0,1-12,0V152a6,6,0,0,1,6-6H64A26,26,0,0,1,90,172Zm-12,0a14,14,0,0,0-14-14H54v28H64A14,14,0,0,0,78,172Zm84,8a34,34,0,0,1-34,34H112a6,6,0,0,1-6-6V152a6,6,0,0,1,6-6h16A34,34,0,0,1,162,180Zm-12,0a22,22,0,0,0-22-22H118v44h10A22,22,0,0,0,150,180ZM42,112V40A14,14,0,0,1,56,26h96a6,6,0,0,1,4.25,1.76l56,56A6,6,0,0,1,214,88v24a6,6,0,0,1-12,0V94H152a6,6,0,0,1-6-6V38H56a2,2,0,0,0-2,2v72a6,6,0,0,1-12,0ZM158,82h35.52L158,46.48Z'/%3E%3C/svg%3E");--ic-i-globe-simple:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm89.8,96H173.89c-1.54-40.77-18.48-68.23-30.43-82.67A90.19,90.19,0,0,1,217.8,122ZM128,215.83a110,110,0,0,1-15.19-19.45A128.37,128.37,0,0,1,94.13,134h67.74a128.37,128.37,0,0,1-18.68,62.38A110,110,0,0,1,128,215.83ZM94.13,122a128.37,128.37,0,0,1,18.68-62.38A110,110,0,0,1,128,40.17a110,110,0,0,1,15.19,19.45A128.37,128.37,0,0,1,161.87,122Zm18.41-82.67c-12,14.44-28.89,41.9-30.43,82.67H38.2A90.19,90.19,0,0,1,112.54,39.33ZM38.2,134H82.11c1.54,40.77,18.48,68.23,30.43,82.67A90.19,90.19,0,0,1,38.2,134Zm105.26,82.67c11.95-14.44,28.89-41.9,30.43-82.67H217.8A90.19,90.19,0,0,1,143.46,216.67Z'/%3E%3C/svg%3E");--ic-i-lock-simple:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208,82H174V56a46,46,0,0,0-92,0V82H48A14,14,0,0,0,34,96V208a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V96A14,14,0,0,0,208,82ZM94,56a34,34,0,0,1,68,0V82H94ZM210,208a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V96a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Z'/%3E%3C/svg%3E");--ic-m-kpm-word:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120.48 39.69'%3E%3Cpath transform='translate(-4.090 39.6875)' d='M 4.089844 -37.796875 L 4.089844 0 L 12.035156 0 L 12.035156 -37.796875 Z M 25.496094 -37.796875 L 9.773438 -19.863281 L 26.074219 0 L 35.46875 0 L 18.992188 -20.085938 L 34.660156 -37.796875 Z'/%3E%3Cpath transform='translate(37.380 39.6875)' d='M 4.089844 -37.796875 L 4.089844 0 L 11.800781 0 L 11.800781 -37.796875 Z M 8.824219 -31.28125 L 16.316406 -31.28125 C 18.347656 -31.28125 19.960938 -30.8125 21.160156 -29.882812 C 22.359375 -28.953125 22.957031 -27.578125 22.957031 -25.765625 C 22.957031 -23.96875 22.359375 -22.601562 21.160156 -21.660156 C 19.960938 -20.71875 18.347656 -20.25 16.316406 -20.25 L 8.824219 -20.25 L 8.824219 -13.730469 L 16.316406 -13.730469 C 19.300781 -13.730469 21.84375 -14.214844 23.941406 -15.1875 C 26.035156 -16.160156 27.644531 -17.550781 28.761719 -19.363281 C 29.878906 -21.171875 30.4375 -23.304688 30.4375 -25.765625 C 30.4375 -28.257812 29.878906 -30.402344 28.761719 -32.195312 C 27.644531 -33.984375 26.035156 -35.367188 23.941406 -36.339844 C 21.84375 -37.3125 19.300781 -37.796875 16.316406 -37.796875 L 8.824219 -37.796875 Z'/%3E%3Cpath transform='translate(75.664 39.6875)' d='M 12.425781 -21.214844 L 23.375 -3.511719 L 34.320312 -21.214844 L 36.757812 0 L 44.816406 0 L 39.1875 -39.6875 L 23.375 -15.296875 L 7.558594 -39.6875 L 1.929688 0 L 9.988281 0 Z'/%3E%3C/svg%3E");--ic-m-kpm-outline:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-1 -1 82.72 71.01'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.25'%3E%0A      %3Cpath d='M0 21.33 19.37 8.74 80.72 48.56V69.01H68.88V55.02L19.37 22.86 0 35.43Z' vector-effect='non-scaling-stroke'/%3E%0A      %3Cpath d='M34.44 9.92 40.9 0 80.72 25.87V40Z' vector-effect='non-scaling-stroke'/%3E%0A      %3Cpath d='M0 44.68 19.37 32.09 25.83 41.99 11.84 51.11V69.01H0Z' vector-effect='non-scaling-stroke'/%3E%0A    %3C/g%3E%3C/svg%3E");}
/* ---------- Icons (Phosphor, MIT) als CSS-Masken ---------- */
.i{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;background-color:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.m{display:block;background-color:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.m-kpm-mark{--m:var(--ic-m-kpm-mark)}
.i-arrow-left{--m:var(--ic-i-arrow-left)}
.i-arrow-right{--m:var(--ic-i-arrow-right)}
.i-buildings{--m:var(--ic-i-buildings)}
.i-check-circle{--m:var(--ic-i-check-circle)}
.i-clock-countdown{--m:var(--ic-i-clock-countdown)}
.i-door{--m:var(--ic-i-door)}
.i-list{--m:var(--ic-i-list)}
.i-map-pin{--m:var(--ic-i-map-pin)}
.i-phone{--m:var(--ic-i-phone)}
.i-plus{--m:var(--ic-i-plus)}
.i-question{--m:var(--ic-i-question)}
.i-siren{--m:var(--ic-i-siren)}
.i-thermometer-cold{--m:var(--ic-i-thermometer-cold)}
.i-users-three{--m:var(--ic-i-users-three)}
.i-wrench{--m:var(--ic-i-wrench)}
.i-x{--m:var(--ic-i-x)}
.i-check{--m:var(--ic-i-check)}
.i-arrow-up{--m:var(--ic-i-arrow-up)}
.i-download-simple{--m:var(--ic-i-download-simple)}
.i-envelope-simple{--m:var(--ic-i-envelope-simple)}
.i-file-pdf{--m:var(--ic-i-file-pdf)}
.i-globe-simple{--m:var(--ic-i-globe-simple)}
.i-lock-simple{--m:var(--ic-i-lock-simple)}
.m-kpm-word{--m:var(--ic-m-kpm-word)}
.m-kpm-outline{--m:var(--ic-m-kpm-outline)}

.i-cookie{--m:var(--ic-i-cookie)}



/* ---------- Tokens ---------- */
:root {
  --green: #1C3A33;
  --green-2: #24453D;
  --green-deep: #152D27;
  --paper: #F6F4EE;
  --cream: #EFE8D3;
  --card: #FFFDF8;
  --ink: #1C3A33;
  --muted: #5E6B66;
  --line: #D3D9D5;
  --gold: #D2BD84;
  --gold-hover: #DDCB98;
  --gold-ink: #7A672E;
  --on-dark: #F6F4EE;
  --on-dark-muted: rgba(246, 244, 238, .74);
  --line-dark: rgba(246, 244, 238, .14);
  --focus: var(--green);

  --font: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --fs-display: clamp(2.6rem, 1.3rem + 5.4vw, 5.75rem);
  --fs-h2: clamp(2rem, 1.15rem + 3.1vw, 3.6rem);
  --fs-h3: clamp(1.25rem, 1.05rem + .8vw, 1.625rem);
  --fs-lead: clamp(1.075rem, 1rem + .35vw, 1.25rem);

  --wrap: 1280px;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --sec: clamp(5rem, 3rem + 7vw, 9rem);
  --hdr-h: 76px;

  --ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--hdr-h) + 1rem); }
body {
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.no-scroll { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
.i { display: inline-block; width: 1em; height: 1em; flex: none; fill: currentColor; vertical-align: -.125em; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
ul, ol { list-style: none; padding: 0; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 2px; }
.dark { --focus: var(--gold); background: var(--green); color: var(--on-dark); }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--gold); color: var(--green); padding: .75rem 1rem; font-weight: 500; transition: top .2s var(--ease); }
.skip:focus { top: 1rem; }

.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); }

/* ---------- Type ---------- */
.label {
  font-family: var(--mono);
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gold-ink);
  display: flex;
  align-items: center;
  gap: .75rem;
}
.label::before { content: ""; width: 1.75rem; height: 1px; background: currentColor; }
.dark .label { color: var(--gold); }
.h2 {
  font-size: var(--fs-h2);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.025em;
  margin-top: 1.25rem;
  text-wrap: balance;
}
.h2 .g { color: var(--gold-ink); }
.dark .h2 .g { color: var(--gold); }
.h3 { font-size: var(--fs-h3); font-weight: 500; line-height: 1.2; letter-spacing: -.015em; }
.lead { font-size: var(--fs-lead); line-height: 1.6; color: var(--muted); max-width: 36em; }
.dark .lead { color: var(--on-dark-muted); }
.muted { color: var(--muted); }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* ---------- Buttons ---------- */
.btn {
  --bg: var(--green); --fg: var(--paper);
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: 3.25rem; padding: 0 1.5rem;
  background: var(--bg); color: var(--fg);
  font-size: 1rem; font-weight: 500; letter-spacing: .005em;
  border: 1px solid transparent; border-radius: 3px;
  transition: background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .12s var(--ease);
  white-space: nowrap;
}
.btn .i { font-size: 1.15rem; transition: transform .25s var(--ease); }
.btn:hover .i-arrow-right { transform: translateX(4px); }
.btn:active { transform: scale(.97); }
.btn--gold { --bg: var(--gold); --fg: var(--green); }
.btn--gold:hover { --bg: var(--gold-hover); }
.btn--dark .i { color: var(--gold); }
.btn--dark:hover { --bg: var(--green-2); }
.btn--ghost { --bg: transparent; --fg: var(--on-dark); border-color: rgba(246, 244, 238, .32); }
.btn--ghost:hover { border-color: var(--gold); }
.btn--line { --bg: transparent; --fg: var(--ink); border-color: var(--line); }
.btn--line:hover { border-color: var(--ink); }
.link-arrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 500; border-bottom: 1px solid currentColor; padding-bottom: .15rem;
}
.link-arrow .i { transition: transform .25s var(--ease); }
.link-arrow:hover .i { transform: translateX(4px); }

/* ---------- Logo ---------- */
.logo { display: inline-flex; align-items: center; gap: .8rem; }
.logo__mark { width: 2.4rem; height: auto; color: var(--gold); flex: none; }
.logo__word { font-size: 1.6rem; font-weight: 500; letter-spacing: .09em; line-height: 1; }
.logo__sub {
  border-left: 1px solid var(--line-dark); padding-left: .8rem;
  font-size: .625rem; line-height: 1.55; letter-spacing: .13em; text-transform: uppercase; font-weight: 500;
}
.logo__sub b { display: block; font-weight: 500; }
.logo__sub span { color: var(--gold); }

/* ---------- Header ---------- */
.hdr {
  position: fixed; inset: 0 0 auto; z-index: 50;
  color: var(--on-dark);
  transition: background-color .35s var(--ease), box-shadow .35s var(--ease);
}
.hdr.is-scrolled {
  background: rgba(28, 58, 51, .88);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  box-shadow: 0 1px 0 var(--line-dark);
}
.hdr__in { display: flex; align-items: center; gap: 2rem; height: var(--hdr-h); }
.nav { margin-left: auto; display: flex; gap: 1.9rem; }
.nav a { position: relative; font-size: .9688rem; color: var(--on-dark-muted); padding: .5rem 0; transition: color .2s var(--ease); }
.nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 1px; background: var(--gold);
  transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ease);
}
.nav a:hover { color: var(--on-dark); }
.nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.hdr__actions { display: flex; align-items: center; gap: 1.25rem; }
.hdr__phone { display: inline-flex; align-items: center; gap: .5rem; font-size: .9375rem; font-variant-numeric: tabular-nums; }
.hdr__phone .i { color: var(--gold); font-size: 1.15rem; }
.hdr .btn { min-height: 2.75rem; padding: 0 1.15rem; font-size: .9375rem; }
.menu-btn { display: none; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; font-size: 1.6rem; color: var(--on-dark); margin-left: auto; }

.menu {
  position: fixed; inset: 0; z-index: 49;
  background: var(--green); color: var(--on-dark);
  padding: calc(var(--hdr-h) + 2rem) var(--gutter) 2rem;
  display: flex; flex-direction: column; gap: 2rem;
  opacity: 0; visibility: hidden; transform: translateY(-12px);
  transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s .3s;
}
.menu.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--ease), transform .3s var(--ease); }
.menu nav { display: flex; flex-direction: column; border-top: 1px solid var(--line-dark); }
.menu nav a { display: flex; justify-content: space-between; align-items: center; padding: 1.1rem 0; border-bottom: 1px solid var(--line-dark); font-size: 1.5rem; font-weight: 500; }
.menu nav a span { font-family: var(--mono); font-size: .75rem; color: var(--gold); }
.menu .btn { width: 100%; }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; isolation: isolate; padding-top: calc(var(--hdr-h) + clamp(2.5rem, 6vw, 5.5rem)); }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-image:
    linear-gradient(rgba(246, 244, 238, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(246, 244, 238, .045) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: linear-gradient(to bottom, #000 30%, transparent 95%);
  mask-image: linear-gradient(to bottom, #000 30%, transparent 95%);
}
.hero__deco {
  position: absolute; z-index: -1; right: -8vw; top: 6rem; width: min(64vw, 900px);
  color: var(--gold); opacity: .16; pointer-events: none;
}
.hero__grid { align-items: end; }
.hero__copy { grid-column: 1 / span 7; padding-bottom: clamp(3rem, 6vw, 5.5rem); }
.hero h1 {
  font-size: var(--fs-display); font-weight: 500; line-height: 1.02; letter-spacing: -.032em;
  margin: 1.6rem 0 1.75rem;
}
.hero h1 span { display: block; color: var(--gold); }
.hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; }
.hero__checks { display: flex; flex-wrap: wrap; gap: .6rem 1.75rem; margin-top: 2.25rem; font-size: .9375rem; color: var(--on-dark-muted); }
.hero__checks li { display: inline-flex; align-items: center; gap: .5rem; }
.hero__checks .i { color: var(--gold); font-size: 1.05rem; }

.hero__media { grid-column: 8 / span 5; position: relative; }
.house { position: relative; aspect-ratio: 4 / 5; }
.house__img {
  position: absolute; inset: 0; overflow: hidden;
  clip-path: polygon(50% 0, 100% 26%, 100% 100%, 0 100%, 0 26%);
  background: var(--green-2);
}
.house__img img { width: 100%; height: 100%; object-fit: cover; }
.house__stripe { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; color: var(--gold); }
.hero .house__img img { transform: scale(1.08); transition: transform 1.8s var(--ease); }
.hero .house__stripe { opacity: 0; transform: translate(-14px, 14px); transition: opacity .8s var(--ease) .35s, transform .9s var(--ease) .35s; }
.is-ready .hero .house__img img { transform: none; }
.is-ready .hero .house__stripe { opacity: 1; transform: none; }

.hero__note {
  position: absolute; left: -2.75rem; bottom: 2.5rem; z-index: 2;
  display: flex; align-items: center; gap: .9rem;
  background: var(--paper); color: var(--ink);
  padding: 1rem 1.25rem 1rem 1rem; max-width: 19rem;
  box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .55);
  border-radius: 3px;
}
.hero__note .i { font-size: 1.75rem; color: var(--gold-ink); flex: none; }
.hero__note b { display: block; font-weight: 500; line-height: 1.25; }
.hero__note span { font-size: .8125rem; color: var(--muted); line-height: 1.35; display: block; margin-top: .15rem; }

.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); }
.fact { padding: 1.75rem 1.5rem 2.25rem 0; }
.fact + .fact { padding-left: 1.5rem; border-left: 1px solid var(--line-dark); }
.fact dt { font-family: var(--mono); font-size: .8125rem; letter-spacing: .04em; color: var(--gold); margin-bottom: .45rem; }
.fact dd { font-size: .9375rem; line-height: 1.5; color: var(--on-dark-muted); }

/* ---------- Sections ---------- */
.sec { padding-block: var(--sec); }
.sec--cream { background: var(--cream); }
.sec-head { align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); row-gap: 1.5rem; }
.sec-head__title { grid-column: 1 / span 7; }
.sec-head__aside { grid-column: 9 / span 4; }

/* ---------- Leistungen ---------- */
.svc { align-items: start; }
.svc__list { grid-column: 1 / span 5; border-top: 1px solid var(--line); }
.svc__tab {
  position: relative; width: 100%; text-align: left;
  display: grid; grid-template-columns: 3.25rem 1fr auto; align-items: center; column-gap: .5rem;
  padding: 1.6rem 0; border-bottom: 1px solid var(--line);
}
.svc__tab::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--ink);
  transform: scaleX(0); transform-origin: left; transition: transform .55s var(--ease);
}
.svc__tab[aria-selected="true"]::after { transform: scaleX(1); }
.svc__num { font-family: var(--mono); font-size: .8125rem; color: var(--gold-ink); align-self: start; padding-top: .45rem; }
.svc__t { display: block; font-size: clamp(1.3rem, 1rem + 1.05vw, 1.85rem); font-weight: 500; letter-spacing: -.018em; line-height: 1.2; color: var(--ink); opacity: .5; transition: opacity .25s var(--ease); }
.svc__s { display: block; margin-top: .3rem; font-size: .9375rem; color: var(--muted); }
.svc__tab:hover .svc__t, .svc__tab[aria-selected="true"] .svc__t { opacity: 1; }
.svc__go { font-size: 1.35rem; color: var(--muted); transition: transform .3s var(--ease), color .3s var(--ease); }
.svc__tab[aria-selected="true"] .svc__go { color: var(--ink); transform: rotate(-45deg); }

.svc__hint { margin-top: 2.5rem; padding: 1.5rem; background: var(--cream); border-radius: 3px; }
.svc__hint p { color: var(--muted); font-size: .9688rem; }
.svc__hint b { color: var(--ink); font-weight: 500; }
.svc__hint .link-arrow { margin-top: 1rem; }
.svc__panels { grid-column: 7 / span 6; display: grid; position: sticky; top: calc(var(--hdr-h) + 1.5rem); }
.svc__panel {
  grid-area: 1 / 1; opacity: 0; visibility: hidden;
  transition: opacity .3s var(--ease), visibility 0s .3s;
}
.svc__panel.is-active { opacity: 1; visibility: visible; transition: opacity .5s var(--ease); }
.svc__fig { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: var(--cream); border-radius: 2px; }
.svc__fig img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.2s var(--ease); }
.svc__panel.is-active .svc__fig img { transform: none; }
.svc__tag {
  position: absolute; left: 1rem; bottom: 1rem;
  background: var(--paper); color: var(--ink);
  font-family: var(--mono); font-size: .75rem; letter-spacing: .04em;
  padding: .45rem .7rem; border-radius: 2px;
}
.svc__body { display: grid; grid-template-columns: 1fr 1.35fr; gap: 1.5rem 2rem; padding-top: 1.75rem; }
.svc__for { font-size: 1.125rem; line-height: 1.45; font-weight: 500; }
.svc__for small { display: block; font-family: var(--mono); font-size: .75rem; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: .5rem; }
.svc__body .link-arrow { margin-top: 1.25rem; }
.checks li { display: grid; grid-template-columns: 1.4rem 1fr; gap: .4rem; padding: .55rem 0; border-bottom: 1px dashed var(--line); font-size: .9688rem; line-height: 1.45; }
.checks li:first-child { padding-top: 0; }
.checks .i { color: var(--gold-ink); font-size: 1rem; margin-top: .2rem; }

/* ---------- Transparenz ---------- */
.tr { align-items: center; row-gap: 3.5rem; }
.tr__copy { grid-column: 1 / span 5; }
.tr__copy .lead { margin-top: 1.5rem; }
.points { margin-top: 2.5rem; border-top: 1px solid rgba(28, 58, 51, .16); }
.points li { display: grid; grid-template-columns: 3rem 1fr; padding: 1.25rem 0; border-bottom: 1px solid rgba(28, 58, 51, .16); }
.points .mono { font-size: .8125rem; color: var(--gold-ink); padding-top: .2rem; }
.points b { display: block; font-weight: 500; font-size: 1.125rem; }
.points p { color: var(--muted); font-size: .9688rem; margin-top: .2rem; }
.tr__card { grid-column: 7 / span 6; }

.report {
  position: relative; background: var(--card); border: 1px solid #E3DCC6; border-radius: 3px;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  box-shadow: 0 40px 70px -40px rgba(28, 58, 51, .45), 0 2px 0 rgba(28, 58, 51, .03);
  font-variant-numeric: tabular-nums;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
@media (hover: hover) {
  .report:hover { transform: translateY(-4px); box-shadow: 0 50px 80px -40px rgba(28, 58, 51, .5), 0 2px 0 rgba(28, 58, 51, .03); }
}
.report__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.report__brand { display: flex; align-items: center; gap: .7rem; }
.report__brand svg { width: 1.9rem; color: var(--gold-ink); }
.report__brand b { display: block; font-weight: 500; font-size: 1.0625rem; line-height: 1.2; }
.report__brand span { font-family: var(--mono); font-size: .75rem; color: var(--muted); }
.report__stamp {
  font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase;
  color: var(--gold-ink); border: 1px dashed var(--gold-ink); padding: .3rem .5rem; border-radius: 2px; white-space: nowrap;
}
.report__meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.report__meta dt { font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.report__meta dd { font-size: .9375rem; font-weight: 500; margin-top: .15rem; }
.report__rent { padding: 1.4rem 0 1.25rem; border-bottom: 1px solid var(--line); }
.report__rent-head { display: flex; justify-content: space-between; align-items: baseline; }
.report__rent-head span { font-size: .9375rem; color: var(--muted); }
.report__pct { font-family: var(--mono); font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem); font-weight: 500; letter-spacing: -.02em; }
.bar { height: 6px; background: #ECE7DA; border-radius: 3px; overflow: hidden; margin: .75rem 0 1rem; }
.bar i { display: block; height: 100%; background: var(--green); transform-origin: left; transform: scaleX(var(--v)); transition: transform 1.4s var(--ease) .1s; }
.js .report:not(.is-live) .bar i { transform: scaleX(0); }
.report__sums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.report__sums dt { font-size: .8125rem; color: var(--muted); }
.report__sums dd { font-family: var(--mono); font-size: 1rem; font-weight: 500; }
.report__rows li { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; align-items: baseline; padding: .95rem 0; border-bottom: 1px dotted #CFC8B4; }
.report__rows li:last-child { border-bottom: 0; padding-bottom: 0; }
.report__rows b { font-weight: 500; font-size: .9688rem; }
.report__rows span { grid-column: 1; font-size: .875rem; color: var(--muted); line-height: 1.4; }
.report__rows .mono { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-weight: 500; }
.chip { font-family: var(--mono); font-size: .6875rem; letter-spacing: .05em; text-transform: uppercase; padding: .35rem .55rem; border-radius: 2px; background: var(--gold); color: var(--green); white-space: nowrap; }
.chip--soft { background: #ECE7DA; color: var(--ink); }
.report__foot { margin-top: 1.25rem; font-size: .8125rem; color: var(--muted); }

/* ---------- Dringlichkeit ---------- */
.urg-head { margin-bottom: clamp(2.5rem, 5vw, 4rem); row-gap: 1.5rem; align-items: end; }
.urg-head__title { grid-column: 1 / span 7; }
.urg-head__aside { grid-column: 9 / span 4; }
.urg { border-top: 1px solid var(--line-dark); }
.urg li {
  display: grid; grid-template-columns: minmax(0, 3.2fr) minmax(0, 4fr) minmax(0, 4.8fr); gap: 1rem var(--gutter);
  padding: 2rem 0; border-bottom: 1px solid var(--line-dark); align-items: start;
}
.urg__lvl { display: flex; align-items: center; gap: 1rem; }
.urg__lvl .i { font-size: 1.75rem; color: var(--gold); }
.urg__lvl b { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.sig { display: inline-flex; gap: 3px; margin-left: auto; margin-right: 1rem; }
.sig s { width: 6px; height: 18px; background: var(--line-dark); }
.sig s.on { background: var(--gold); }
.urg__ex small, .urg__rule small { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--on-dark-muted); margin-bottom: .35rem; }
.urg__ex p { font-size: 1.0625rem; }
.urg__rule p { font-size: 1.0625rem; color: var(--on-dark); }
.urg__rule p em { font-style: normal; color: var(--gold); }
.quote { margin-top: clamp(4rem, 8vw, 6.5rem); align-items: end; row-gap: 1.5rem; }
.quote blockquote { grid-column: 1 / span 8; font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3.25rem); font-weight: 400; line-height: 1.12; letter-spacing: -.025em; text-wrap: balance; }
.quote blockquote span { color: var(--gold); }
.quote p { grid-column: 9 / span 4; color: var(--on-dark-muted); font-size: .9688rem; }

/* ---------- Ablauf ---------- */
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gutter); }
.step { position: relative; padding-top: 1.75rem; }
.step::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--ink); transform-origin: left; }
.js .step::before { transform: scaleX(0); transition: transform 1s var(--ease) calc(var(--i, 0) * 120ms); }
.js .step.is-in::before { transform: scaleX(1); }
.step .mono { font-size: .8125rem; color: var(--gold-ink); }
.step h3 { margin: 1.1rem 0 .6rem; }
.step p { color: var(--muted); font-size: .9688rem; }

.takeover { margin-top: clamp(4.5rem, 9vw, 7.5rem); align-items: stretch; row-gap: 2.5rem; }
.takeover__fig { grid-column: 1 / span 5; position: relative; min-height: 28rem; overflow: hidden; border-radius: 2px; background: var(--cream); }
.takeover__fig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.takeover__fig figcaption {
  position: absolute; left: 1rem; right: 1rem; bottom: 1rem;
  background: rgba(28, 58, 51, .9); color: var(--on-dark); padding: 1rem 1.15rem; border-radius: 2px;
  font-size: .9375rem; line-height: 1.45;
}
.takeover__fig figcaption b { color: var(--gold); font-weight: 500; }
.takeover__body { grid-column: 7 / span 6; align-self: center; }
.weeks { margin-top: 2rem; border-top: 1px solid var(--line); }
.weeks li { display: grid; grid-template-columns: 5.5rem 1fr; gap: 1rem; padding: 1.35rem 0; border-bottom: 1px solid var(--line); }
.weeks .mono { font-size: .8125rem; color: var(--gold-ink); padding-top: .2rem; }
.weeks b { display: block; font-weight: 500; font-size: 1.125rem; }
.weeks p { color: var(--muted); font-size: .9688rem; margin-top: .2rem; }

/* ---------- Über ---------- */
.about { align-items: center; row-gap: 3rem; }
.about__fig { grid-column: 1 / span 5; }
.house--ph .house__img {
  background:
    repeating-linear-gradient(135deg, rgba(28, 58, 51, .06) 0 1px, transparent 1px 14px),
    #E6DEC6;
  display: flex; align-items: center; justify-content: center; text-align: center;
}
.ph-note { max-width: 15rem; padding: 6rem 1.5rem 0; font-family: var(--mono); font-size: .75rem; line-height: 1.6; color: var(--green); letter-spacing: .02em; }
.ph-note b { display: block; font-size: .8125rem; margin-bottom: .5rem; }
.house--ph .house__stripe { color: var(--gold-ink); }
.about__body { grid-column: 7 / span 6; }
.about__quote { font-size: clamp(1.6rem, 1.15rem + 1.8vw, 2.5rem); line-height: 1.15; letter-spacing: -.022em; font-weight: 400; margin-top: 1.5rem; text-wrap: balance; }
.about__text { margin-top: 1.75rem; display: grid; gap: 1rem; color: var(--muted); max-width: 38em; }
.about__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2.25rem; border-top: 1px solid rgba(28, 58, 51, .16); padding-top: 1.25rem; }
.about__facts dt { font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); }
.about__facts dd { font-weight: 500; line-height: 1.35; margin-top: .3rem; }
.sign { display: flex; align-items: center; gap: 1rem; margin-top: 2.25rem; }
.sign__mark { width: 3rem; height: 3rem; border-radius: 50%; background: var(--green); color: var(--gold); display: grid; place-items: center; font-weight: 500; letter-spacing: .04em; }
.sign b { display: block; font-weight: 500; }
.sign span { font-size: .875rem; color: var(--muted); }

/* ---------- Region ---------- */
.region { position: relative; min-height: min(92vh, 860px); display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; color: var(--on-dark); background: var(--green-deep); --focus: var(--gold); }
.region__img { position: absolute; inset: 0; z-index: -2; }
.region__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.region::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, rgba(21, 45, 39, .96) 12%, rgba(21, 45, 39, .55) 52%, rgba(21, 45, 39, .12) 100%);
}
.region__in { padding-block: var(--sec) clamp(3rem, 6vw, 5rem); align-items: end; row-gap: 2.5rem; }
.region__copy { grid-column: 1 / span 7; }
.region__copy .label, .region .h2 .g { color: var(--gold); }
.region__copy .lead { color: var(--on-dark-muted); margin-top: 1.25rem; }
.region__side { grid-column: 9 / span 4; }
.towns { display: flex; flex-wrap: wrap; gap: .5rem; }
.towns li { font-size: .9375rem; padding: .4rem .75rem; border: 1px solid rgba(246, 244, 238, .28); border-radius: 2px; }
.towns li.is-home { border-color: var(--gold); color: var(--gold); }
.towns li span { font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; opacity: .75; margin-left: .35rem; }
.region__addr { margin-top: 1.5rem; display: flex; gap: .75rem; font-size: .9375rem; color: var(--on-dark-muted); }
.region__addr .i { color: var(--gold); font-size: 1.25rem; }

/* ---------- FAQ ---------- */
.faq { align-items: start; row-gap: 3rem; }
.faq__head { grid-column: 1 / span 4; position: sticky; top: calc(var(--hdr-h) + 2rem); }
.faq__head .lead { margin-top: 1.25rem; font-size: 1.0625rem; }
.faq__head .btn { margin-top: 2rem; }
.faq__list { grid-column: 6 / span 7; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary {
  list-style: none; cursor: pointer;
  display: grid; grid-template-columns: 1fr 2rem; gap: 1rem; align-items: center;
  padding: 1.5rem 0; font-size: 1.1875rem; font-weight: 500; line-height: 1.35; letter-spacing: -.01em;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary .i { font-size: 1.35rem; justify-self: end; transition: transform .3s var(--ease); color: var(--gold-ink); }
.faq details[open] summary .i { transform: rotate(45deg); }
.faq__a { padding: 0 3rem 1.6rem 0; color: var(--muted); display: grid; gap: .75rem; }
.faq details[open] .faq__a { animation: fadeUp .4s var(--ease); }
.faq__a small { font-family: var(--mono); font-size: .75rem; color: var(--gold-ink); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ---------- Kontakt ---------- */
.contact { position: relative; overflow: hidden; isolation: isolate; }
.contact::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-image:
    linear-gradient(rgba(246, 244, 238, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(246, 244, 238, .04) 1px, transparent 1px);
  background-size: 72px 72px;
}
.contact__grid { align-items: start; row-gap: 3rem; }
.contact__copy { grid-column: 1 / span 5; }
.contact__copy .checks { margin-top: 2rem; }
.contact__copy .checks li { border-color: var(--line-dark); color: var(--on-dark); }
.contact__copy .checks .i { color: var(--gold); }
.ways { margin-top: 2.5rem; display: grid; gap: 1.5rem; }
.ways small { display: block; font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin-bottom: .3rem; }
.ways .tel { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem); font-weight: 500; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.ways .tel:hover, .ways .mail:hover { color: var(--gold); }
.ways .mail { font-size: 1.125rem; border-bottom: 1px solid rgba(210, 189, 132, .5); }
.ways p { color: var(--on-dark-muted); }
.ph-inline { font-family: var(--mono); font-size: .875rem; background: rgba(210, 189, 132, .16); color: var(--gold); padding: .1rem .4rem; border-radius: 2px; }

.oc-wrap { grid-column: 7 / span 6; }
.oc { background: var(--paper); color: var(--ink); border-radius: 4px; padding: clamp(1.4rem, 3vw, 2.5rem); --focus: var(--green); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .5); }
.oc__top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.oc__top h3 { font-size: 1.375rem; font-weight: 500; letter-spacing: -.01em; }
.oc__top .mono { font-size: .75rem; color: var(--muted); white-space: nowrap; }
.oc__prog { height: 2px; background: var(--line); margin: 1rem 0 1.75rem; overflow: hidden; }
.oc__prog i { display: block; height: 100%; background: var(--green); transform-origin: left; transform: scaleX(.3333); transition: transform .5s var(--ease); }
.oc fieldset { border: 0; padding: 0; min-width: 0; }
.oc legend { font-size: 1.1875rem; font-weight: 500; letter-spacing: -.01em; margin-bottom: 1rem; padding: 0; }
.oc__step[hidden] { display: none; }
.oc__step.is-active { animation: stepIn .45s var(--ease); }
@keyframes stepIn { from { opacity: 0; transform: translateX(calc(var(--dir, 1) * 28px)); } to { opacity: 1; transform: none; } }
.opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.opt { position: relative; }
.opt input { position: absolute; opacity: 0; inset: 0; }
.opt span {
  display: grid; grid-template-columns: 2rem 1fr; gap: .1rem .6rem; align-items: start;
  padding: 1rem 1rem 1.05rem; height: 100%;
  border: 1px solid var(--line); border-radius: 3px; background: var(--card); cursor: pointer;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), transform .12s var(--ease);
}
.opt span:active { transform: scale(.985); }
.opt .i { font-size: 1.6rem; color: var(--gold-ink); grid-row: span 2; }
.opt b { font-weight: 500; line-height: 1.3; }
.opt em { font-style: normal; font-size: .8125rem; color: var(--muted); line-height: 1.35; }
.opt:hover span { border-color: #A9B5AF; }
.opt input:checked + span { border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); }
.opt input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.pill { position: relative; }
.pill input { position: absolute; opacity: 0; inset: 0; }
.pill span {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1rem;
  border: 1px solid var(--line); border-radius: 3px; background: var(--card); cursor: pointer; font-size: .9688rem;
  transition: border-color .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease), transform .12s var(--ease);
}
.pill span:active { transform: scale(.97); }
.pill:hover span { border-color: #A9B5AF; }
.pill input:checked + span { background: var(--green); border-color: var(--green); color: var(--paper); }
.pill input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.field { display: grid; gap: .4rem; }
.field + .field, .pills + .field, .two + .field, .field + fieldset, .sub-legend { margin-top: 1.25rem; }
.sub-legend { display: block; font-size: .9375rem; font-weight: 500; margin-bottom: .6rem; }
.field label { font-size: .9375rem; font-weight: 500; }
.field label small { font-weight: 400; color: var(--muted); }
.field input, .field textarea {
  width: 100%; min-height: 3rem; padding: .75rem .9rem;
  border: 1px solid var(--line); border-radius: 3px; background: var(--card);
  transition: border-color .2s var(--ease);
}
.field textarea { min-height: 6.5rem; resize: vertical; }
.field input:hover, .field textarea:hover { border-color: #A9B5AF; }
.field input:focus, .field textarea:focus { border-color: var(--green); outline: none; box-shadow: inset 0 0 0 1px var(--green); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.two .field + .field { margin-top: 0; }
.consent { display: grid; grid-template-columns: 1.25rem 1fr; gap: .75rem; margin-top: 1.25rem; font-size: .875rem; color: var(--muted); line-height: 1.5; align-items: start; }
.consent input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--green); }
.consent a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.oc__err { min-height: 1.4rem; margin-top: .9rem; font-size: .875rem; color: #9A3B23; }
.oc__nav { display: flex; justify-content: space-between; gap: .75rem; margin-top: .5rem; }
.oc__nav .btn[hidden] { display: none; }
.oc__nav [data-next], .oc__nav [data-send] { margin-left: auto; }
.oc__done { display: none; text-align: left; }
.oc.is-done .oc__form { display: none; }
.oc.is-done .oc__done { display: block; animation: fadeUp .5s var(--ease); }
.oc__done .i.big { font-size: 2.5rem; color: var(--gold-ink); }
.oc__done h3 { font-size: 1.6rem; font-weight: 500; letter-spacing: -.015em; margin: 1rem 0 .6rem; }
.oc__done p { color: var(--muted); }
.oc__mailnote { margin-top: 1.25rem; padding: .9rem 1rem; background: var(--cream); font-size: .9375rem; color: var(--ink) !important; border-radius: 3px; }
.oc__mailnote a { text-decoration: underline; text-underline-offset: 2px; }
.oc__small { margin-top: 1rem; font-size: .8125rem; color: var(--muted); }

/* ---------- Footer ---------- */
.ftr { background: var(--green-deep); color: var(--on-dark-muted); padding: clamp(4rem, 8vw, 6rem) 0 2rem; position: relative; overflow: hidden; --focus: var(--gold); }
.ftr__deco { position: absolute; right: -6rem; bottom: -4rem; width: 26rem; color: var(--gold); opacity: .12; pointer-events: none; }
.ftr__grid { row-gap: 2.5rem; }
.ftr__brand { grid-column: 1 / span 3; color: var(--on-dark); }
.ftr__brand p { margin-top: 1.25rem; color: var(--on-dark-muted); font-size: .9375rem; max-width: 22rem; }
.ftr__col { grid-column: span 2; font-size: .9375rem; }
.ftr__col--wide { grid-column: span 3; }
.ftr__contact { margin-top: 1.25rem; display: grid; gap: .35rem; font-size: .9375rem; }
.ftr__contact a { color: var(--on-dark); }
.ftr__contact a:hover { color: var(--gold); }
.ftr a[aria-current="page"] { color: var(--gold); }
.ftr__col h4 { font-family: var(--mono); font-size: .6875rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin-bottom: 1rem; }
.ftr__col li + li { margin-top: .5rem; }
.ftr__col a:hover { color: var(--on-dark); }
.ftr__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: 1.5rem; border-top: 1px solid var(--line-dark); font-size: .8125rem; }


/* ---------- Mobile CTA bar ---------- */
.mbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: none;
  grid-template-columns: 1fr 1.4fr; gap: .5rem; padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom));
  background: rgba(28, 58, 51, .92); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
  border-top: 1px solid var(--line-dark);
  transform: translateY(110%); transition: transform .35s var(--ease);
}
.mbar.is-on { transform: none; }
.mbar .btn { min-height: 3rem; padding: 0 .75rem; }

/* ---------- Reveal ---------- */
.js [data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; }
main:focus { outline: none; }
.js .hero [data-reveal] { transition: none; animation: heroIn .9s var(--ease) forwards; animation-delay: calc(120ms + var(--i, 0) * 90ms); }
@keyframes heroIn { to { opacity: 1; transform: none; } }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .hdr__phone span { display: none; }
  .logo__sub { display: none; }
  .nav { gap: 1.4rem; }
}
@media (max-width: 960px) {
  .nav, .hdr__actions { display: none; }
  .menu-btn { display: inline-flex; }
  .hero__copy, .hero__media, .sec-head__title, .sec-head__aside, .svc__list, .svc__panels,
  .tr__copy, .tr__card, .urg-head__title, .urg-head__aside, .quote blockquote, .quote p,
  .takeover__fig, .takeover__body, .about__fig, .about__body, .region__copy, .region__side,
  .faq__head, .faq__list, .contact__copy, .oc-wrap, .ftr__brand, .ftr__col--wide { grid-column: 1 / -1; }
  .ftr__col { grid-column: span 4; }
  .hero__media { max-width: 26rem; justify-self: end; width: 86%; }
  .hero__note { left: -12%; bottom: 1.5rem; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fact:nth-child(3) { padding-left: 0; border-left: 0; }
  .fact:nth-child(n+3) { border-top: 1px solid var(--line-dark); }
  .svc__list {
    display: flex; gap: .5rem; overflow-x: auto; border: 0; margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter) .25rem;
    scroll-snap-type: x mandatory; scrollbar-width: none; align-items: center;
  }
  .svc__list::-webkit-scrollbar { display: none; }
  .svc__tab { flex: none; width: auto; display: inline-flex; gap: .6rem; padding: .7rem 1rem; border: 1px solid var(--line); border-radius: 3px; scroll-snap-align: start; }
  .svc__tab::after, .svc__s, .svc__go, .svc__hint { display: none; }
  .svc__num { padding-top: 0; }
  .svc__t { font-size: 1rem; opacity: 1; white-space: nowrap; }
  .svc__tab[aria-selected="true"] { background: var(--green); border-color: var(--green); }
  .svc__tab[aria-selected="true"] .svc__t { color: var(--paper); }
  .svc__tab[aria-selected="true"] .svc__num { color: var(--gold); }
  .svc__panels { position: static; margin-top: 1.5rem; }
  .urg li { grid-template-columns: 1fr; gap: .9rem; padding: 1.6rem 0; }
  .sig { margin-left: .5rem; margin-right: 0; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.5rem; }
  .takeover__fig { min-height: 20rem; }
  .about__fig { max-width: 24rem; }
  .faq__head { position: static; }
  .mbar { display: grid; }
  .ftr { padding-bottom: calc(2rem + 4.5rem); }
}
@media (max-width: 600px) {
  body { font-size: 1rem; }
  .hero__ctas .btn { width: 100%; }
  .hero__media { width: 88%; }
  .hero__note { left: -10%; max-width: 15rem; padding: .8rem 1rem .8rem .8rem; }
  .facts { grid-template-columns: 1fr; }
  .fact, .fact + .fact { padding: 1.25rem 0; border-left: 0; }
  .fact + .fact { border-top: 1px solid var(--line-dark); }
  .svc__body { grid-template-columns: 1fr; }
  .report__top { flex-wrap: wrap; }
  .report__meta { grid-template-columns: 1fr 1fr; }
  .report__meta div:last-child { grid-column: 1 / -1; }
  .report__sums dd { font-size: .875rem; }
  .steps { grid-template-columns: 1fr; }
  .weeks li { grid-template-columns: 4rem 1fr; }
  .about__facts { grid-template-columns: 1fr; }
  .opts { grid-template-columns: 1fr; }
  .two { grid-template-columns: 1fr; }
  .faq summary { font-size: 1.0625rem; }
  .faq__a { padding-right: 0; }
  .oc__nav .btn { flex: 1; }
  .ftr__col { grid-column: span 6; }
}

/* ---------- Bewegung reduzieren ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  html { scroll-behavior: auto; }
  .js [data-reveal] { transform: none; }
  .hero .house__img img { transform: none; }
}

/* ---------- Pfeil nach oben ---------- */
.to-top {
  position: fixed; right: clamp(1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vw, 2rem); z-index: 45;
  width: 3.25rem; height: 3.25rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--green); color: var(--gold);
  border: 1px solid rgba(210, 189, 132, .45);
  box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .45);
  opacity: 0; transform: translateY(14px) scale(.9); pointer-events: none;
  transition: opacity .25s var(--ease), transform .3s var(--ease), background-color .2s var(--ease), bottom .35s var(--ease);
  --focus: var(--gold);
}
.to-top.is-on { opacity: 1; transform: none; pointer-events: auto; }
.to-top .i { font-size: 1.35rem; transition: transform .25s var(--ease); }
.to-top:hover { background: var(--green-2); }
.to-top:hover .i { transform: translateY(-3px); }
.to-top:active { transform: scale(.94); }
@media (max-width: 960px) {
  .mbar-on .to-top { bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
}

/* ---------- Unterseiten ---------- */
.hdr.is-solid { background: var(--green); box-shadow: 0 1px 0 var(--line-dark); }
.nav a[aria-current="page"] { color: var(--on-dark); }
.nav a[aria-current="page"]::after { transform: scaleX(1); }
.page-hero { position: relative; overflow: hidden; isolation: isolate; padding: calc(var(--hdr-h) + clamp(3rem, 7vw, 6rem)) 0 clamp(3rem, 6vw, 5rem); }
.page-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-image: linear-gradient(rgba(246, 244, 238, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(246, 244, 238, .045) 1px, transparent 1px);
  background-size: 72px 72px;
}
.page-hero .hero__deco { top: 2rem; width: min(46vw, 620px); right: -6vw; }
.page-hero h1 { font-size: clamp(2.4rem, 1.4rem + 4vw, 4.5rem); font-weight: 500; line-height: 1.04; letter-spacing: -.03em; margin-top: 1.4rem; max-width: 16ch; }
.page-hero h1 span { color: var(--gold); }
.page-hero .lead { margin-top: 1.5rem; }
.crumbs { display: flex; gap: .5rem; font-size: .875rem; color: var(--on-dark-muted); margin-top: 2rem; }
.crumbs a { text-decoration: underline; text-underline-offset: 3px; }
.crumbs a:hover { color: var(--on-dark); }

.doc { align-items: start; row-gap: 2.5rem; }
.toc { grid-column: 1 / span 3; position: sticky; top: calc(var(--hdr-h) + 2rem); }
.toc p { font-family: var(--mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: .75rem; }
.toc ol { border-left: 1px solid var(--line); }
.toc a { display: block; padding: .35rem 0 .35rem 1rem; font-size: .9375rem; color: var(--muted); margin-left: -1px; border-left: 1px solid transparent; transition: color .2s var(--ease), border-color .2s var(--ease); }
.toc a:hover { color: var(--ink); border-left-color: var(--ink); }
.prose { grid-column: 5 / span 8; max-width: 46rem; }
.prose--wide { grid-column: 1 / -1; max-width: none; }
.prose > * + * { margin-top: 1rem; }
.prose h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem); font-weight: 500; letter-spacing: -.018em; line-height: 1.2; margin-top: 3rem; padding-top: 1.75rem; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--hdr-h) + 1.5rem); }
.prose h2:first-child, .prose .draft-note + h2 { margin-top: 0; }
.prose h3 { font-size: 1.125rem; font-weight: 500; margin-top: 1.75rem; }
.prose p, .prose li { color: #3E4B47; }
.prose ul { padding-left: 1.25rem; list-style: disc; }
.prose ol.num { padding-left: 1.4rem; list-style: decimal; }
.prose li + li { margin-top: .4rem; }
.prose li::marker { color: var(--gold-ink); }
.prose a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gold-ink); }
.prose a:hover { text-decoration-color: var(--ink); }
.prose strong { font-weight: 500; color: var(--ink); }
.prose address { font-style: normal; }
.prose .box { background: var(--card); border: 1px solid var(--line); border-radius: 3px; padding: 1.25rem 1.4rem; }
.prose .ph-inline { color: var(--gold-ink); background: rgba(210, 189, 132, .22); }
.draft-note {
  display: flex; gap: .9rem; align-items: flex-start;
  background: var(--cream); border-left: 3px solid var(--gold-ink); padding: 1rem 1.25rem; border-radius: 0 3px 3px 0;
  font-size: .9375rem; color: var(--ink);
}
.draft-note .i { font-size: 1.35rem; color: var(--gold-ink); margin-top: .1rem; }
.meta-line { font-family: var(--mono); font-size: .75rem; color: var(--muted); letter-spacing: .04em; }

/* Sitemap */
.smap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gutter); }
.smap h2 { font-family: var(--mono); font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: 1rem; }
.smap ul { border-top: 1px solid var(--line); }
.smap li a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); font-size: 1.0625rem; }
.smap li a .i { color: var(--gold-ink); transition: transform .25s var(--ease); }
.smap li a:hover .i { transform: translateX(4px); }

/* Downloads */
.dl { border-top: 1px solid var(--line); }
.dl li { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.dl__icon { width: 3.25rem; height: 3.25rem; display: grid; place-items: center; background: var(--cream); color: var(--gold-ink); border-radius: 3px; }
.dl__icon .i { font-size: 1.6rem; }
.dl h3 { font-size: 1.1875rem; font-weight: 500; letter-spacing: -.01em; }
.dl p { color: var(--muted); font-size: .9688rem; margin-top: .2rem; }
.dl .meta-line { margin-top: .4rem; }
.dl .btn { min-height: 2.9rem; }
.dl--locked .dl__icon { background: transparent; border: 1px solid var(--line); color: var(--muted); }
.dl-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1rem; }
.dl-head h2 { font-size: var(--fs-h3); font-weight: 500; letter-spacing: -.015em; }
.dl-group + .dl-group { margin-top: clamp(3rem, 6vw, 4.5rem); }
.dl-aside { align-self: start; grid-column: 9 / span 4; position: sticky; top: calc(var(--hdr-h) + 2rem); background: var(--green); color: var(--on-dark); padding: 1.75rem; border-radius: 4px; --focus: var(--gold); }
.dl-aside h2 { font-size: 1.375rem; font-weight: 500; letter-spacing: -.01em; }
.dl-aside p { color: var(--on-dark-muted); font-size: .9688rem; margin-top: .75rem; }
.dl-aside .btn { width: 100%; margin-top: 1.25rem; }
.dl-aside .btn + .btn { margin-top: .6rem; }
.dl-main { grid-column: 1 / span 7; }

@media (max-width: 960px) {
  .toc { display: none; }
  .prose, .dl-main, .dl-aside { grid-column: 1 / -1; }
  .dl-aside { position: static; }
  .smap { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .dl li { grid-template-columns: 2.75rem minmax(0, 1fr); }
  .dl__icon { width: 2.75rem; height: 2.75rem; }
  .dl li > .btn, .dl li > .link-arrow { grid-column: 2; justify-self: start; }
}
@media (max-width: 960px) {
  .ftr__col.ftr__col--wide { grid-column: 1 / -1; }
}

/* Header: sechs Menüpunkte sauber in einer Zeile */
.nav a, .hdr__phone, .logo__sub { white-space: nowrap; }
@media (max-width: 1380px) {
  .logo__sub { display: none; }
  .nav { gap: 1.5rem; }
}
@media (max-width: 1240px) {
  .hdr__phone span:not(.sr-only) { display: none; }
}
.dl .meta-line { font-size: .75rem; color: var(--muted); }

/* Aktiver Menüpunkt beim Scrollen */
.nav a.is-active { color: var(--on-dark); }
.nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.prose details.box summary { cursor: pointer; font-weight: 500; color: var(--ink); }
.prose details.box ul { margin-top: .75rem; font-family: var(--mono); font-size: .8125rem; }

/* Lange E-Mail-Adresse darf auf schmalen Bildschirmen umbrechen */
.dl-aside .btn { white-space: normal; text-align: center; padding-block: .6rem; }
.ftr__contact a, .ways .mail, .prose a, .oc__mailnote a { overflow-wrap: anywhere; }

/* Logo im Header: größer und gestochen scharf */
.hdr .logo { gap: .9rem; }
.hdr .logo__mark { width: 2.75rem; shape-rendering: geometricPrecision; }
.hdr .logo__word { font-size: 1.85rem; font-weight: 600; letter-spacing: .08em; }
.hdr .logo__sub { font-size: .6875rem; letter-spacing: .11em; line-height: 1.5; font-weight: 600; }
.logo svg, .logo__word { backface-visibility: hidden; }

/* Footer: alles bündig in einem Raster */
.ftr__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; padding-bottom: 2.5rem; border-bottom: 1px solid var(--line-dark); position: relative; }
.ftr__top .ftr__brand p { margin-top: 1rem; color: var(--on-dark-muted); font-size: .9375rem; max-width: 26rem; }
.ftr__top .ftr__brand { color: var(--on-dark); }
.ftr__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem var(--gutter); padding-top: 2.5rem; position: relative; }
.ftr__cols .ftr__col { grid-column: auto; min-width: 0; }
.ftr__cols .ftr__col li { line-height: 1.5; }
.ftr__cols .ftr__col li + li { margin-top: .6rem; }
.ftr__cols .ftr__col a { overflow-wrap: anywhere; }
.ftr__bottom span:last-child { text-align: right; }
@media (max-width: 960px) {
  .ftr__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .ftr__cols { grid-template-columns: 1fr; }
  .ftr__bottom span:last-child { text-align: left; }
}

/* Platz für den Pfeil nach oben */
.ftr__bottom { padding-right: 4.5rem; }

/* Porträt im Hausrahmen */
.house--portrait .house__img {
  background: repeating-linear-gradient(135deg, rgba(28, 58, 51, .06) 0 1px, transparent 1px 14px), #E6DEC6;
  display: flex; align-items: center; justify-content: center; padding-top: 16%;
}
.house--portrait .house__stripe { color: var(--gold-ink); }
.portrait {
  width: min(76%, 300px); height: auto; aspect-ratio: 1; border-radius: 50%;
  box-shadow: 0 0 0 6px var(--cream), 0 0 0 7px rgba(122, 103, 46, .5), 0 34px 60px -28px rgba(28, 58, 51, .55);
}
.house__img img.portrait { width: min(76%, 300px); height: auto; object-fit: cover; }

/* Logo pixelgenau: ganzzahlige Größe und Position, damit Kanten nicht verschwimmen */
.hdr .logo__mark { width: 47px; height: 40px; flex: none; }
.hdr .logo__word { font-size: 30px; line-height: 40px; }
.hdr .logo__sub { font-size: 11.5px; }

/* =========================================================
   Überarbeitung Oktober 2026
   ========================================================= */

/* Logo: Bildmarke und Schriftzug als Vektor aus dem Flyer */
.logo svg.logo__word { width: auto; height: 26px; flex: none; color: var(--on-dark); }
.hdr .logo__word { height: 27px; }
.ftr .logo svg.logo__word { height: 24px; }
.ftr .logo__mark { width: 42px; height: 36px; }
.logo { text-rendering: geometricPrecision; }

/* H1 mit Ortsangabe als kleine Zeile darüber */
.h1-kicker {
  display: flex !important; align-items: center; gap: .75rem;
  font-family: var(--mono); font-size: .8125rem; font-weight: 500; line-height: 1.4;
  letter-spacing: .08em; text-transform: uppercase; color: var(--gold) !important;
  margin-bottom: 1.4rem;
}
.h1-kicker::before { content: ""; width: 1.75rem; height: 1px; background: currentColor; flex: none; }

/* Leistungen: ausführlicher */
.svc__body { grid-template-columns: 1fr; gap: 1.5rem; }
.svc__h { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); font-weight: 500; letter-spacing: -.015em; line-height: 1.25; }
.svc__intro p:not(.svc__for) { color: var(--muted); margin-top: .75rem; max-width: 60ch; }
.svc__intro .svc__for { margin-top: 1rem; font-size: 1rem; }
.checks--2 { columns: 2; column-gap: 2rem; }
.checks--2 li { break-inside: avoid; }
.checks--2 li:first-child { padding-top: .55rem; }
.svc__cta { justify-self: start; }

/* Über uns: Foto ohne Rahmen */
.about__photo { grid-column: 1 / span 5; margin: 0; position: relative; max-width: 26rem; }
.about__photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; display: block; box-shadow: 0 40px 70px -40px rgba(28, 58, 51, .55); }
.about__photo figcaption {
  position: absolute; left: 1rem; right: 1rem; bottom: 1rem;
  display: flex; flex-direction: column; gap: .1rem;
  background: rgba(28, 58, 51, .9); color: var(--on-dark); padding: .85rem 1rem; border-radius: 3px;
}
.about__photo figcaption b { font-weight: 500; }
.about__photo figcaption span { font-size: .875rem; color: var(--gold); }
.about__quote { margin-top: 1.25rem; }

/* Footer: Spalten rechtsbündig und enger, Marke darunter */
.ftr__nav { display: grid; grid-template-columns: repeat(4, max-content); justify-content: end; column-gap: clamp(2.5rem, 5vw, 4.5rem); row-gap: 2rem; position: relative; }
.ftr__h { font-family: var(--mono); font-size: .6875rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin-bottom: 1rem; }
.ftr__nav li + li { margin-top: .55rem; }
.ftr__nav a, .ftr__btn { font-size: .9375rem; }
.ftr__nav a:hover, .ftr__btn:hover { color: var(--on-dark); }
.ftr__btn { color: inherit; text-align: left; }
.ftr__brandrow { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem 2rem; flex-wrap: wrap; margin-top: clamp(2.5rem, 5vw, 3.5rem); padding-top: clamp(2rem, 4vw, 2.5rem); border-top: 1px solid var(--line-dark); position: relative; }
.ftr__brandrow .ftr__brand { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; color: var(--on-dark); }
.ftr__brandrow .ftr__brand p { color: var(--on-dark-muted); font-size: .9375rem; max-width: 30rem; margin: 0; }
.ftr__deco { left: -6rem; right: auto; bottom: auto; top: -3rem; }
.link-btn { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gold-ink); font: inherit; }

/* Cookie-Hinweis */
.cookie {
  position: fixed; z-index: 60; left: max(1rem, env(safe-area-inset-left)); bottom: max(1rem, env(safe-area-inset-bottom));
  width: min(26rem, calc(100% - 2rem));
  background: var(--paper); color: var(--ink); border-radius: 6px; padding: 1.25rem 1.25rem 1.1rem;
  box-shadow: 0 30px 70px -20px rgba(0, 0, 0, .45), 0 0 0 1px rgba(28, 58, 51, .08);
  opacity: 0; transform: translateY(12px); transition: opacity .3s var(--ease), transform .35s var(--ease);
  --focus: var(--green);
}
.cookie.is-on { opacity: 1; transform: none; }
.cookie__title { font-weight: 500; font-size: 1.0625rem; }
.cookie p#cookie-text { font-size: .9063rem; color: var(--muted); margin-top: .4rem; line-height: 1.5; }
.cookie a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.cookie__more { margin-top: .75rem; font-size: .875rem; }
.cookie__more summary { cursor: pointer; color: var(--ink); font-weight: 500; }
.cookie__cats { margin-top: .6rem; display: grid; gap: .5rem; }
.cookie__cats label { display: grid; grid-template-columns: 1.25rem 1fr; gap: .1rem .6rem; align-items: start; }
.cookie__cats input { margin-top: .2rem; accent-color: var(--green); }
.cookie__cats span { grid-column: 2; color: var(--muted); font-size: .8125rem; }
.cookie__btns { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.cookie__btns .btn { flex: 1 1 auto; min-height: 2.9rem; padding: 0 1rem; font-size: .9375rem; }
.cookie-open .mbar { transform: translateY(110%) !important; }

/* ---------- Handy-Optimierung ---------- */
@media (max-width: 960px) {
  :root { --hdr-h: 64px; --sec: clamp(4rem, 3rem + 5vw, 6rem); }
  .hdr .logo__mark { width: 40px; height: 34px; }
  .hdr .logo__word { height: 23px; }
  .hero { padding-top: calc(var(--hdr-h) + 2.5rem); }
  .hero__media { width: 100%; max-width: 30rem; justify-self: center; margin-top: .5rem; }
  .hero__note { left: 1rem; bottom: 1rem; }
  .about__photo { grid-column: 1 / -1; max-width: 22rem; }
  .region { min-height: 0; }
  .region__in { padding-top: 8rem; }
  .ftr__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; column-gap: var(--gutter); }
  .ftr__brandrow { flex-direction: column; align-items: flex-start; }
  .ftr__brandrow .btn { width: 100%; }
  .ftr__nav a, .ftr__btn { display: inline-block; padding-block: .2rem; }
  .checks--2 { columns: 1; }
  .svc__panel .svc__fig { aspect-ratio: 16 / 10; }
  .faq__head .btn { width: 100%; }
  .takeover__fig { min-height: 16rem; aspect-ratio: 4 / 3; }
  .cookie { left: .75rem; right: .75rem; width: auto; bottom: max(.75rem, env(safe-area-inset-bottom)); }
}
@media (max-width: 600px) {
  .hero h1 { font-size: clamp(2.35rem, 9.6vw, 3rem); margin-top: 0; }
  .h1-kicker { font-size: .75rem; margin-bottom: 1rem; }
  .hero .lead { font-size: 1.0625rem; }
  .hero__checks { gap: .5rem; flex-direction: column; }
  .h2 { font-size: clamp(1.75rem, 7.4vw, 2.25rem); }
  .lead { font-size: 1.0313rem; }
  .sec-head { margin-bottom: 2.25rem; }
  .svc__tab { padding: .6rem .9rem; }
  .svc__body { padding-top: 1.25rem; }
  .report { padding: 1.1rem; }
  .report__sums { grid-template-columns: 1fr 1fr 1fr; gap: .5rem; }
  .urg li { padding: 1.35rem 0; }
  .urg__lvl b { font-size: 1.5rem; }
  .quote blockquote { font-size: 1.6rem; }
  .about__quote { font-size: 1.5rem; }
  .about__photo { max-width: none; }
  .region__in { padding-top: 6rem; padding-bottom: 2.5rem; }
  .towns li { font-size: .875rem; }
  .faq summary { padding: 1.2rem 0; }
  .oc { padding: 1.25rem; }
  .oc__top h3 { font-size: 1.2rem; }
  .ways .tel { font-size: 1.6rem; }
  .ftr__nav { grid-template-columns: 1fr 1fr; row-gap: 1.75rem; }
  .ftr__bottom { flex-direction: column; gap: .4rem; padding-right: 0; }
  .ftr__bottom span:last-child { text-align: left; }
  .page-hero h1 { font-size: clamp(2.1rem, 9vw, 2.75rem); }
}
@media (max-width: 380px) {
  .ftr__nav { grid-template-columns: 1fr; }
}
.hero h1 { margin-top: 0; }
@media (max-width: 1520px) { .hdr .logo__sub { display: none; } }
.hdr__in { gap: 1.5rem; }
.ftr__nav .ftr__col { grid-column: auto !important; min-width: 0; }
.cookie-open .to-top { opacity: 0 !important; pointer-events: none !important; }

/* Header: Logo links, Menü rechts, nie überlappend */
.hdr .logo { flex: none; }
.hdr .nav { margin-left: auto; min-width: 0; }
@media (max-width: 1100px) {
  .hdr .nav, .hdr .hdr__actions { display: none; }
  .hdr .menu-btn { display: inline-flex; }
}

/* Leistungen: Reiter oben, Bild und Text nebeneinander */
@media (min-width: 961px) {
  .svc { display: block; }
  .svc__list {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 0; border-bottom: 1px solid var(--line); margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
  }
  .svc__tab {
    grid-template-columns: 2.5rem 1fr; align-items: start;
    padding: 1.4rem 1.5rem 1.5rem 0; border-bottom: 0;
  }
  .svc__tab + .svc__tab { padding-left: 1.5rem; border-left: 1px solid var(--line); }
  .svc__tab::after { bottom: -1px; height: 3px; background: var(--gold-ink); }
  .svc__go { display: none; }
  .svc__num { padding-top: .35rem; }
  .svc__t { font-size: clamp(1.15rem, .9rem + .7vw, 1.45rem); }
  .svc__panels { position: static; }
  .svc__panel { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
  .svc__panel .svc__fig { aspect-ratio: 1 / 1; position: sticky; top: calc(var(--hdr-h) + 1.5rem); }
  .svc__panel .svc__body { padding-top: 0; }
}
.svc__hint { display: none; }

/* Footer: vier Spalten gleichmäßig über die ganze Breite */
@media (min-width: 961px) {
  .ftr__nav { grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: stretch; column-gap: var(--gutter); }
}

/* Standortkarte im Kontaktbereich */
.map { position: relative; display: block; margin-top: 1.25rem; border-radius: 4px; overflow: hidden; box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .55); }
.map img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.map:hover img { transform: scale(1.03); }
.map__label { position: absolute; left: 1rem; top: 1rem; display: flex; flex-direction: column; gap: .1rem; background: var(--paper); color: var(--ink); padding: .65rem .85rem; border-radius: 3px; font-size: .875rem; line-height: 1.35; max-width: calc(100% - 2rem); }
.map__label b { font-weight: 500; }
.map__label span { color: var(--muted); }
.map__cta { position: absolute; right: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .5rem; background: var(--gold); color: var(--green); padding: .55rem .9rem; border-radius: 3px; font-size: .875rem; font-weight: 500; }
.map__cta .i { transition: transform .25s var(--ease); }
.map:hover .map__cta .i { transform: translateX(3px); }
.map__attr { margin-top: .5rem; font-size: .75rem; color: var(--on-dark-muted); }
.map__attr a { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 600px) {
  .map img { aspect-ratio: 4 / 3; }
  .map__label { font-size: .8125rem; }
}

/* Firmenname neben dem Logo (zweizeilig, kompakt) */
.logo__name {
  display: flex; flex-direction: column; justify-content: center;
  padding-left: .8rem; border-left: 1px solid var(--line-dark);
  font-size: 10.5px; line-height: 1.45; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--on-dark); white-space: nowrap;
}
.logo__name span + span { color: var(--gold); }
/* Zwischen Desktop und Tablet wird es eng: dort ausblenden, damit nichts das Menü berührt */
@media (min-width: 1101px) and (max-width: 1339px) { .hdr .logo__name { display: none; } }
@media (max-width: 400px) { .logo__name { font-size: 9.5px; letter-spacing: .1em; padding-left: .6rem; } .hdr .logo { gap: .6rem; } }
@media (max-width: 340px) { .hdr .logo__name { display: none; } }
@media (max-width: 600px) { .takeover__fig { aspect-ratio: auto; min-height: 15rem; width: 100%; } }

/* Einzeldatei: Unterseiten als Bereiche */
.page[hidden] { display: none !important; }
.page-hero .page-h1 { font-size: clamp(2.4rem, 1.4rem + 4vw, 4.5rem); font-weight: 500; line-height: 1.04; letter-spacing: -.03em; margin-top: 1.4rem; max-width: 16ch; }
.page-hero .page-h1 span { color: var(--gold); }
@media (max-width: 600px) { .page-hero .page-h1 { font-size: clamp(2.1rem, 9vw, 2.75rem); } }



/* =========================================================
   Elementor-Anpassung: Original-Optik auf native Widgets
   ========================================================= */
html { background: var(--paper); }
body { background: var(--paper); margin: 0; }
.wp-site-blocks, .wp-block-group.kpm-main { padding: 0 !important; margin: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.kpm-site-header, .kpm-site-footer { margin: 0 !important; }
.elementor .e-con, .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px; --min-height: 0px; }
.elementor .elementor-widget:not(:last-child) { margin-block-end: 0; }
.elementor-widget-container { margin: 0; }
.elementor-widget-text-editor { font: inherit; letter-spacing: inherit; color: inherit; text-transform: inherit; }
.elementor-widget-heading .elementor-heading-title { color: inherit; }
.h2 .elementor-heading-title, .h3 .elementor-heading-title { font: inherit; letter-spacing: inherit; line-height: inherit; text-wrap: inherit; margin: 0; }
.elementor-widget-text-editor > p:empty, .x-w + p:empty, .e-con > p:empty, .elementor-widget > p:empty { display: none; }
.x-w { display: contents; }
.elementor-widget-text-editor { text-align: inherit; }
.e-con.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.e-con.sec, .e-con.hero, .e-con.region, .e-con.ftr, .e-con.page-hero { width: 100%; max-width: none; }
.e-con > .e-con-inner { padding: 0; max-width: none; }
.elementor-widget-image img { max-width: 100%; height: auto; }
.elementor-widget-image { line-height: 0; }

/* Buttons: Original-.btn auf das native Button-Widget */
.elementor-widget-button.btn { display: block; min-height: 0; padding: 0; background: none; border: 0; border-radius: 0; color: inherit; width: auto; white-space: normal; transform: none; }
.elementor-widget-button.btn .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: 3.25rem; padding: 0 1.5rem; background: var(--bg); color: var(--fg);
  font-family: inherit; font-size: 1rem; font-weight: 500; line-height: 1.6; letter-spacing: .005em;
  border: 1px solid transparent; border-radius: 3px; fill: currentColor; text-shadow: none; box-shadow: none; white-space: nowrap;
  transition: background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .12s var(--ease);
}
.elementor-widget-button.btn:active .elementor-button { transform: scale(.97); }
.btn--ghost .elementor-button { border-color: rgba(246, 244, 238, .32); }
.btn--ghost:hover .elementor-button { border-color: var(--gold); }
.btn--line .elementor-button { border-color: var(--line); }
.btn--line:hover .elementor-button { border-color: var(--ink); }
.elementor-widget-button .elementor-button-content-wrapper { gap: .65rem; }
.btn-ar .elementor-button-text::after, .btn-ph .elementor-button-text::before {
  content: ""; display: block; flex: none; width: 1.15rem; height: 1.15rem; background-color: currentColor;
  -webkit-mask: var(--m) center/contain no-repeat; mask: var(--m) center/contain no-repeat; transition: transform .25s var(--ease);
}
.btn-ar .elementor-button-text::after { --m: var(--ic-i-arrow-right); }
.btn-ph .elementor-button-text::before { --m: var(--ic-i-phone); }
.btn--dark.btn-ar .elementor-button-text::after, .btn--dark.btn-ph .elementor-button-text::before { background-color: var(--gold); }
.btn-ar:hover .elementor-button-text::after { transform: translateX(4px); }

/* Logo als Vektor (Maske) */
.logo { display: inline-flex; align-items: center; gap: .8rem; }
.logo__mark { width: 47px; height: 40px; aspect-ratio: 80.72 / 69.01; display: block; background-color: var(--gold); -webkit-mask: var(--ic-m-kpm-mark) center/contain no-repeat; mask: var(--ic-m-kpm-mark) center/contain no-repeat; flex: none; }
.logo__word { display: block; height: 26px; aspect-ratio: 120.48 / 39.69; width: auto; background-color: var(--on-dark); -webkit-mask: var(--ic-m-kpm-word) center/contain no-repeat; mask: var(--ic-m-kpm-word) center/contain no-repeat; flex: none; }
.hero__deco.e-con, .ftr__deco.e-con { aspect-ratio: 82.72 / 71.01; height: auto; background-color: var(--gold); -webkit-mask: var(--ic-m-kpm-outline) center/contain no-repeat; mask: var(--ic-m-kpm-outline) center/contain no-repeat; }

/* Neu: Anruf-Button, Cookie-Symbol, Schließen-Kreuz (Original-Look: Grün/Gold) */
.call-fab {
  position: fixed; right: clamp(1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vw, 2rem); z-index: 45;
  display: inline-flex; align-items: center; gap: .6rem; height: 3.25rem; padding: 0 1.25rem 0 1rem; border-radius: 999px;
  background: var(--gold); color: var(--green); font-weight: 500; font-size: .9688rem; white-space: nowrap;
  box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .45);
  transition: transform .3s var(--ease), background-color .2s var(--ease); --focus: var(--green);
}
.call-fab:hover { background: var(--gold-hover); }
.call-fab .i { font-size: 1.3rem; }
.cookie-fab {
  position: fixed; left: clamp(1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vw, 2rem); z-index: 45;
  width: 3.25rem; height: 3.25rem; border-radius: 50%; display: grid; place-items: center;
  background: var(--green); color: var(--gold); border: 1px solid rgba(210, 189, 132, .45);
  box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .45); transition: transform .3s var(--ease), background-color .2s var(--ease); --focus: var(--gold);
}
.cookie-fab[hidden] { display: none; }
.cookie-fab:hover { background: var(--green-2); transform: rotate(-12deg) scale(1.05); }
.cookie-fab .i { font-size: 1.5rem; }
.cookie { position: fixed; }
.cookie__x { position: absolute; top: .7rem; right: .7rem; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; color: var(--ink); background: rgba(28, 58, 51, .07); transition: background-color .2s var(--ease), transform .3s var(--ease); }
.cookie__x:hover { background: rgba(28, 58, 51, .14); transform: rotate(90deg); }
.cookie__x .i { font-size: 1rem; }
.cookie__title { padding-right: 2rem; }
@media (max-width: 960px) {
  .cookie-fab { bottom: clamp(1rem, 2.5vw, 2rem); width: 2.9rem; height: 2.9rem; }
  .mbar-on .cookie-fab { bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 960px) { .cookie-open .call-fab { opacity: 0 !important; pointer-events: none !important; } }

.elementor-widget.dc, .elementor-widget.dc > .elementor-widget-container { display: contents; }
.ftr__deco.e-con { position: absolute; width: 26rem; height: auto; background-color: var(--gold); }
.logo__mark { margin: 0; }

.e-con.row { flex-direction: row; }
.hdr__in.e-con { display: flex; flex-direction: row; }
.hero__ctas.e-con { display: flex; flex-direction: row; flex-wrap: wrap; gap: .75rem; }
.hero__ctas.e-con > .elementor-widget-button { width: auto; flex: none; }
.hero__grid.e-con { align-items: end; }
.house__img .elementor-widget, .house__img .elementor-widget-container, .house__img .elementor-widget-image { height: 100%; }
.house__img img { width: 100%; height: 100%; object-fit: cover; }
.house::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--gold); clip-path: polygon(62.2% 2.52%, 64.1% .16%, 100% 18.8%, 100% 22.16%); }
.hero .house::after { opacity: 0; transform: translate(-14px, 14px); transition: opacity .8s var(--ease) .35s, transform .9s var(--ease) .35s; }
.is-ready .hero .house::after { opacity: 1; transform: none; }
.hero__deco.e-con { z-index: -1; }
.facts.stagger { display: grid; }

/* Elementor-Globals auf die Schriften/Farben des Kunden setzen */
body.elementor-kit-7 {
  --e-global-typography-primary-font-family: "Jost"; --e-global-typography-primary-font-weight: 500;
  --e-global-typography-secondary-font-family: "Jost"; --e-global-typography-secondary-font-weight: 400;
  --e-global-typography-text-font-family: "Jost"; --e-global-typography-text-font-weight: 400;
  --e-global-typography-accent-font-family: "Jost"; --e-global-typography-accent-font-weight: 500;
  --e-global-color-primary: #1C3A33; --e-global-color-secondary: #D2BD84; --e-global-color-text: #1C3A33; --e-global-color-accent: #7A672E;
}

.hdr .logo__word { height: 26px; }
.ftr .logo__word { height: 24px; }
.ftr .logo__mark { width: 42px; height: 36px; }
@media (max-width: 960px) { .hdr .logo__mark { width: 40px; height: 34px; } }

.map.e-con { position: relative; }
.map .elementor-widget-image, .map .elementor-widget-image a { display: block; }
.map .elementor-widget-image img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.map { overflow: hidden; }
.map:hover .elementor-widget-image img { transform: scale(1.03); }
.map__label, .map__cta { z-index: 2; }
@media (max-width: 600px) { .map .elementor-widget-image img { aspect-ratio: 4 / 3; } }
.takeover__fig .elementor-widget-image, .takeover__fig .elementor-widget-image img { height: 100%; }
.takeover__fig .elementor-widget-image img { position: absolute; inset: 0; width: 100%; object-fit: cover; }
.takeover__fig .elementor-widget-image { position: absolute; inset: 0; }
.about__photo .elementor-widget-image img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; display: block; box-shadow: 0 40px 70px -40px rgba(28, 58, 51, .55); }
.region__img .elementor-widget, .region__img .elementor-widget-image img { height: 100%; }
.region__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.svc__fig .elementor-widget-image, .svc__fig .elementor-widget-image img { height: 100%; }
.svc__fig .elementor-widget-image img { width: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.2s var(--ease); }
.svc__panel.is-active .svc__fig .elementor-widget-image img { transform: none; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.report__brand .m { width: 1.9rem; aspect-ratio: 80.72 / 69.01; color: var(--gold-ink); flex: none; }

i { font-style: normal; }

.e-con.region { display: flex; flex-direction: row; align-items: flex-end; }

body.elementor-kit-7, body.elementor-kit-7 h1, body.elementor-kit-7 h2, body.elementor-kit-7 h3, body.elementor-kit-7 h4, body.elementor-kit-7 h5, body.elementor-kit-7 h6 { font-family: var(--font); }
body.elementor-kit-7 { font-weight: 400; line-height: 1.6; }

/* Widgets erben Farbe/Schrift vom Layout des Kunden (nicht von den Elementor-Globals) */
.elementor .elementor-widget-text-editor, .elementor .elementor-widget-image .widget-image-caption { color: inherit; font-family: inherit; font-weight: inherit; }
.elementor .elementor-widget-heading .elementor-heading-title { color: inherit; }

.elementor-widget-button.btn .elementor-button-text { display: inline-flex; align-items: center; gap: .65rem; }
.btn--ghost .elementor-button-text::before { background-color: currentColor; }

/* Volle Breite auf kleinen Bildschirmen (wie .btn { width: 100% } im Original) */
@media (max-width: 600px) { .hero__ctas.e-con > .elementor-widget-button.btn, .hero__ctas .btn .elementor-button { width: 100%; } }
@media (max-width: 960px) { .faq__head .btn, .faq__head .btn .elementor-button { width: 100%; } }

/* Unterseiten */
.page-hero h1 span { color: var(--gold); }
.page-hero.e-con { display: block; }
.page-hero .hero__deco.e-con { position: absolute; top: 2rem; width: min(46vw, 620px); right: -6vw; }

/* Anruf-Button immer sichtbar; Pfeil nach oben erscheint erst beim Scrollen und sitzt darüber */
.to-top { bottom: calc(clamp(1rem, 2.5vw, 2rem) + 3.25rem + .75rem); }
.call-fab:hover { transform: translateY(-2px); }
@media (max-width: 960px) {
  .call-fab { display: inline-flex; width: 3.25rem; padding: 0; justify-content: center; }
  .call-fab span:last-child { display: none; }
  .mbar-on .call-fab { display: none; }
  .mbar-on .to-top { bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
}

/* Pfeil nach oben bleibt auch bei offenem Cookie-Hinweis sichtbar, solange der Hinweis ihn nicht überdeckt (Desktop: Hinweis links unten) */
@media (min-width: 961px) { .cookie-open .to-top.is-on { opacity: 1 !important; pointer-events: auto !important; } }
