/* Small enhancements; the approved visual language remains the foundation. */
.mz-fast-page .photo-slide img{aspect-ratio:auto}
/* Direct contact actions and geometric upper CTA icons; lower discovery links stay unchanged. */
.hero .button .arrow,.site-header .header-contact .button .arrow{font-size:0;line-height:0;position:relative;overflow:hidden}
.hero .button .arrow::before,.site-header .header-contact .button .arrow::before{content:"";position:absolute;inset:0;margin:auto;display:block;width:26px;height:26px;background:currentColor;mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11a8 8 0 0 1-8 8H6l-3 3V11a9 9 0 0 1 18 0Z'/%3E%3Cpath d='M7 10h10M7 14h6'/%3E%3C/svg%3E")}
.hero .button[href*="projekte"] .arrow::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='3'/%3E%3Ccircle cx='8' cy='8' r='1.5'/%3E%3Cpath d='m3 16 5-5 4 4 3-3 6 6'/%3E%3C/svg%3E")}
.mz-contact-widget{position:fixed;z-index:65;right:24px;bottom:max(22px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-family:Poppins,system-ui,sans-serif}
.mz-contact-launch,.mz-contact-phone{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border:1px solid #ffffff80;border-radius:999px;box-shadow:0 4px 20px #0002;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s}
.mz-contact-launch{padding:14px 21px;background:#8f2528;color:#fff;font:500 14px/1.3 Poppins,system-ui,sans-serif}
.mz-contact-phone{position:relative;width:54px;height:54px;background:#fff;color:#8f2528;border-color:#e5dfd6}
.mz-contact-widget svg{display:block;flex:none;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mz-contact-phone svg{width:25px;height:25px}
.mz-contact-launch:hover{background:#701d20;color:#fff;box-shadow:0 5px 24px #0003}
.mz-contact-phone:hover{background:#8f2528;color:#fff;border-color:#8f2528}
.mz-contact-tooltip{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);white-space:nowrap;background:#fff;color:#292725;padding:8px 12px;border:1px solid #e5dfd6;border-radius:8px;box-shadow:0 3px 14px #0001;font-size:13px;line-height:1.5;opacity:0;visibility:hidden;pointer-events:none}
.mz-contact-phone:hover .mz-contact-tooltip,.mz-contact-phone:focus-visible .mz-contact-tooltip{opacity:1;visibility:visible}
.mz-contact-widget a:focus-visible{outline:3px solid #ab6420;outline-offset:4px}
.mz-fast-page .site-footer{padding-bottom:160px}
@media(max-width:740px){.mz-contact-widget{right:16px;bottom:max(16px,env(safe-area-inset-bottom));gap:8px}.mz-contact-launch{min-height:50px;padding:12px 17px;font-size:13px}.mz-contact-phone{width:50px;height:50px;min-height:50px}.mz-contact-widget svg{width:23px;height:23px}.hero .button .arrow::before{width:25px;height:25px}}
@media(hover:none){.mz-contact-tooltip{display:none}}
@media(prefers-reduced-motion:reduce){.mz-contact-widget *{animation:none!important;transition:none!important}}

/* Bent Lange's footer hierarchy, adapted to the existing MZ palette and content. */
.site-footer.mz-footer-v2{background:#242522;color:#fff;min-height:0;padding:80px 0 56px}
.mz-fast-page .site-footer.mz-footer-v2{padding-bottom:156px}
.mz-footer-v2 .mz-footer-columns{display:grid;grid-template-columns:1.6fr .95fr .9fr 1.4fr;gap:38px;align-items:start}
.mz-footer-v2 .footer-brand{position:relative;display:block;width:340px;max-width:100%;background:transparent;border:0;border-radius:0;padding:0;margin:0 0 30px}
.mz-footer-v2 .footer-brand img{display:block;width:100%;height:auto;filter:none}
.mz-footer-v2 .mz-footer-about>p{font-size:14px;line-height:1.85;color:#c4c5c1;margin:0 0 22px;max-width:310px}
.mz-footer-v2 h2{font-size:13px;font-weight:600;line-height:1.6;letter-spacing:.085em;text-transform:uppercase;color:#e3bdb7;margin:0 0 24px}
.mz-footer-v2 ul{padding:0;margin:0;list-style:none}
.mz-footer-v2 li{margin:0 0 12px}
.mz-footer-v2 a{color:#d2d3cf;text-decoration:none;transition:color .2s}
.mz-footer-v2 a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.mz-footer-v2 a:focus-visible{outline:2px solid #e3bdb7;outline-offset:5px;border-radius:2px}
.mz-footer-v2 .mz-footer-nav a{font-size:14px;line-height:1.75}
.mz-footer-v2 .mz-footer-about>.mz-footer-rating{display:flex;align-items:center;flex-wrap:wrap;column-gap:8px;row-gap:2px;font-size:12px;line-height:1.7;color:#b9bbb5;margin:0}
.mz-footer-rating strong{color:#fff;font-size:14px;font-weight:600}
.mz-footer-star{color:#e9c261;font-size:18px;line-height:1}
.mz-footer-contact address{font-style:normal;color:#d2d3cf;font-size:14px;line-height:1.8}
.mz-footer-contact-row{display:flex;gap:12px;align-items:flex-start;margin:0 0 18px}
.mz-footer-contact-row svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:#c8cac4;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.mz-footer-contact-row a{overflow-wrap:anywhere}
.mz-footer-office{margin-top:25px;margin-bottom:0}
.mz-footer-office-label{display:block;color:#fff;font-size:12px;font-weight:500;margin-bottom:3px}
.mz-footer-topics{border-block:1px solid #ffffff1f;margin-top:54px;padding:23px 0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 32px;color:#b0b2ab;font-size:11px;line-height:1.6;letter-spacing:.08em;text-transform:uppercase}
.mz-footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-top:26px;color:#b0b2ab;font-size:12px;line-height:1.7}
.mz-footer-bottom p{margin:0}
.mz-footer-bottom nav{display:flex;flex-wrap:wrap;gap:26px}
/* Genuine review: exact short excerpt followed by an explicitly labelled summary. */
.google-review-featured{display:grid;grid-template-columns:200px minmax(0,1fr);gap:38px;margin:34px 0 24px;padding:34px 38px;background:#fff;border:1px solid #dfdcd5;border-top:3px solid #8f2528;border-radius:4px;text-align:left}
.google-review-featured .mz-review-author{display:flex;align-items:flex-start;gap:13px}
.google-review-featured .review-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#eee5df;color:#8f2528;font:600 13px/1 Poppins,system-ui,sans-serif}
.google-review-featured cite{font-style:normal;font-size:15px;font-weight:600;line-height:1.5;color:#292929}
.google-review-featured .review-source-label{display:block;font-size:12px;line-height:1.6;color:#68665f;margin-top:3px}
.google-review-featured .google-stars{font-size:16px;line-height:1.4;letter-spacing:2px;margin:14px 0 0;color:#b17a13}
.google-review-featured blockquote{font-size:20px;line-height:1.7;font-weight:400;color:#35332f;margin:0;padding:0;border:0;max-width:none;text-align:left}
.google-review-featured blockquote p{margin:0;text-align:left}
.mz-review-details{margin-top:20px;border-top:1px solid #e4e0d9;padding-top:16px}
.mz-review-details summary{display:inline-block;cursor:pointer;color:#8f2528;font-size:14px;font-weight:500;line-height:1.6;list-style:none;text-decoration:underline;text-underline-offset:5px;border-radius:2px}
.mz-review-details summary::-webkit-details-marker{display:none}
.mz-review-details summary::marker{content:""}
.mz-review-details summary:focus-visible{outline:2px solid #8f2528;outline-offset:5px}
.mz-review-details .mz-review-less,.mz-review-details[open] .mz-review-more{display:none}
.mz-review-details[open] .mz-review-less{display:inline}
.mz-review-summary{margin-top:22px;max-width:740px}
.mz-review-summary .mz-review-summary-label{font-size:12px;font-weight:600;color:#6c655e;letter-spacing:.02em;margin:0 0 8px}
.mz-review-summary p{font-size:15px;line-height:1.85;color:#4d4a44;margin:0}
@media(max-width:1100px){.mz-footer-v2 .mz-footer-columns{grid-template-columns:1fr 1fr;column-gap:38px;row-gap:38px}.mz-footer-v2 .mz-footer-about>p{max-width:380px}}
@media(max-width:740px){.site-footer.mz-footer-v2{padding-top:56px}.mz-footer-v2 .mz-footer-columns{grid-template-columns:1fr 1fr;gap:36px 24px}.mz-footer-about,.mz-footer-contact{grid-column:1/-1}.mz-footer-v2 .footer-brand{width:300px;margin-bottom:30px}.mz-footer-v2 h2{margin-bottom:17px;font-size:12px}.mz-footer-v2 .mz-footer-nav a{font-size:13px}.mz-footer-v2 li{margin-bottom:10px}.mz-footer-topics{justify-content:flex-start;margin-top:36px;gap:12px 24px;font-size:10px;padding-block:20px}.mz-footer-bottom{display:block;font-size:11px}.mz-footer-bottom nav{margin-top:18px;gap:24px}.google-review-featured{grid-template-columns:1fr;gap:22px;padding:24px 22px;margin-top:28px}.google-review-featured blockquote{font-size:17px;line-height:1.75}.google-review-featured .google-stars{margin-top:9px}.mz-review-summary p{font-size:14px}}
@media(max-width:360px){.mz-footer-v2 .mz-footer-columns{column-gap:16px}.mz-footer-v2 .mz-footer-nav a{font-size:12px}.google-review-featured{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.mz-footer-v2 a{transition:none}}

.ruhe-page .google-review-featured blockquote{max-width:none;margin:0;text-align:left}
.ruhe-page .google-review-featured blockquote p{text-align:left}

/* Preserve the exact original red roof and MZ; lighten only the lettering at right. */
.mz-footer-v2 .footer-brand img.mz-footer-logo-lettering{position:absolute;inset:0;filter:brightness(0) invert(1);clip-path:inset(0 0 0 48%);pointer-events:none}

/* Remove only the duplicate topbar CTA; keep both original hero actions. */
.topbar > a { display: none; }

/* Without JavaScript, the existing direct telephone link remains available. */
.mz-contact-widget > .mz-contact-launch { display: none; }
.mz-contact-widget .mz-quick-contact { position: relative; }
.mz-quick-contact > summary {
  display: flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; box-sizing: border-box; cursor: pointer;
  list-style: none; border: 1px solid #e5dfd6; border-radius: 50%;
  background: #fff; color: #8f2528; box-shadow: 0 3px 16px #0002;
}
.mz-quick-contact > summary::-webkit-details-marker { display: none; }
.mz-quick-contact > summary svg { width: 23px; height: 23px; }
.mz-quick-contact[open] > summary { background: #8f2528; color: #fff; border-color: #8f2528; }
.mz-quick-links {
  position: absolute; right: calc(100% + 12px); bottom: 0;
  display: flex; flex-direction: column; gap: 2px; min-width: 190px;
  padding: 8px; border: 1px solid #e5dfd6; border-radius: 16px;
  background: #fff; box-shadow: 0 5px 24px #0002;
}
.mz-quick-links a {
  display: flex; align-items: center; gap: 12px; min-height: 46px;
  padding: 8px 12px; box-sizing: border-box; border-radius: 9px;
  color: #292725; font: 500 14px/1.4 Poppins, system-ui, sans-serif;
  text-decoration: none;
}
.mz-quick-links a:hover { color: #8f2528; background: #f7f3ee; }
.mz-quick-links svg { color: #8f2528; }
.mz-quick-contact summary:focus-visible,
.mz-quick-links a:focus-visible { outline: 3px solid #ab6420; outline-offset: 3px; }
@media (max-width: 740px) {
  .mz-quick-contact > summary { width: 48px; height: 48px; }
}
