body.rapid { --action:#11686d; --link:#125d61; --tinte:#102a39; --akzent:#9ce0d7; --soft:#ecf4f2; }
body.stein { --tinte:#242522; --akzent:#ffb73c; --soft:#f6f2e9; }
.headtel { display:inline-flex; align-items:center; gap:8px; }
.headtel svg { width:20px;height:20px; }
.nurleser,.wahlfeld input { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.bau-einstieg { border:0;background:white;padding:clamp(16px,2.8vw,38px) 0 12px; }
.baustart { display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.9fr);gap:clamp(16px,2.3vw,32px);align-items:start; }
.titelkarte { overflow:hidden;border-radius:15px;background:var(--tinte);color:white; }
.titeltext { padding:clamp(23px,3.2vw,46px); }
.titeltext h1 { font-size:clamp(2.05rem,3.65vw,3.65rem);line-height:1.02;max-width:22ch;letter-spacing:-.055em;overflow-wrap:break-word;hyphens:auto; }
.titeltext h1 span { display:block;color:var(--akzent); }
.titeltext .leadintro { margin:14px 0 18px;max-width:55ch;font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.48;color:#eaf0f1; }
.titelaktionen { display:flex;align-items:center;gap:clamp(16px,2vw,26px);flex-wrap:wrap; }
.titelaktionen .btn { color:var(--tinte);background:var(--akzent);border:0; }
.titelaktionen>a:not(.btn),.belegfirma { color:white;font-weight:680;font-size:.94rem;padding:.3rem 0; }
.vorteile { list-style:none;display:flex;flex-wrap:wrap;gap:5px 14px;padding:0;margin:17px 0; }
.vorteile li { font-weight:660;font-size:clamp(.75rem,1.1vw,.91rem); }
.vorteile li span,.ansprechperson b {color:var(--akzent);}
.ansprechperson,.belegfirma { display:inline-flex;align-items:center;gap:10px;border-top:1px solid #ffffff66;padding-top:13px;color:white;text-decoration:none; }
.ansprechperson:hover,.belegfirma:hover { text-decoration:underline; }
.ansprechperson img { width:38px;height:42px;border-radius:4px;object-fit:cover; }
.ansprechperson span { display:grid;line-height:1.3; }.ansprechperson strong{font-size:.91rem}.ansprechperson small { color:#deebed;font-size:.79rem; }
.ansprechperson b { margin-left:14px; }
.titelkarte .heroimage { position:static;min-height:0;max-height:none;height:auto;aspect-ratio:2.65;margin:0;border-radius:0;overflow:hidden;background:#d6d5cc; }
.titelkarte .heroimage picture,.titelkarte .heroimage img { position:static;display:block;width:100%;height:100%;object-fit:cover; }
.titeltext .mapsmini,.titeltext .maps-mini { color:white;margin-top:8px; }
.titeltext .mapsmini img { width:17px;height:17px;background:#fff;border-radius:3px; }
.projektkarte.askbox { min-width:0;width:100%;max-width:none;margin:0;border:1px solid var(--border);border-radius:15px;padding:clamp(18px,2.6vw,32px);background:#fff;box-shadow:0 4px 20px #17373b08; }
.projektkarte .asktop { display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;color:var(--quiet); }
.asktop strong {font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;}
.projektkarte h2 { font-size:clamp(1.35rem,2.1vw,1.92rem);margin:0 0 15px;text-wrap:pretty; }
.projektkarte fieldset { min-width:0;margin:0;padding:0;border:0; }
.projektauswahl.options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 14px; }
.projektauswahl .wahlfeld { display:block;position:relative;margin:0;padding:0;border:0;background:none; }
.wahlfeld>span { display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;height:100%;min-height:66px;border:1px solid var(--border);background:#f8faf9;border-radius:7px;padding:.55rem .28rem;cursor:pointer;font-size:clamp(.77rem,1.15vw,.93rem);line-height:1.2;text-align:center;overflow-wrap:anywhere; }
.wahlfeld svg { width:21px;height:21px;color:var(--quiet); }
.wahlfeld input:checked+span { border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action);background:var(--soft); }
.wahlfeld input:focus-visible+span { outline:3px solid #23799a;outline-offset:2px; }
.projektkarte .plzfeld {display:grid;gap:5px;font-size:.91rem;font-weight:650;margin:0 0 14px;}
.projektkarte input:not([type=radio]),.projektkarte textarea { border:1px solid #9ebabd;border-radius:6px;padding:9px 11px;min-height:44px; }
.projektkarte [data-next] { display:flex;text-align:left;width:100%;justify-content:space-between; }
.projektkarte .fine {margin:9px 0 0;line-height:1.4;color:var(--quiet);font-size:.78rem;}
.formalternativen {margin-top:17px;padding-top:13px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.formalternativen a {font-size:.8rem;font-weight:630;}
.preisbereich { padding-block:clamp(24px,4vw,56px) 6px; }
.preiskarte { max-width:850px;border:1px solid var(--border);border-radius:16px;overflow:hidden; }
.preiskopf {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:clamp(15px,2.4vw,27px);background:var(--soft);border-bottom:1px solid var(--border);}
.preiskopf h2 {font-size:clamp(1.55rem,3vw,2.5rem);overflow-wrap:break-word;}
.preiskopf p { color:var(--quiet);margin:.4rem 0 0;font-size:.91rem; }
.preiskopf img {width:clamp(78px,13vw,138px);aspect-ratio:1.42;height:auto;object-fit:cover;border-radius:8px;}
.preisinhalt {padding:0 clamp(13px,2.35vw,26px) 16px;}
.preiszeile {margin:0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:#fff;}
.preiszeile summary {display:grid;grid-template-columns:minmax(0,1fr) auto 20px;gap:clamp(5px,1.25vw,14px);align-items:center;min-height:64px;padding:10px 0;cursor:pointer;list-style:none;color:var(--ink);font-size:clamp(.9rem,1.35vw,1.07rem);font-weight:650;line-height:1.35;}
.preiszeile summary::-webkit-details-marker {display:none;}.preiszeile summary::marker {content:"";}
.preiszahl {text-align:right;white-space:nowrap;}.preiszahl strong {display:block;font-size:clamp(.99rem,1.8vw,1.38rem);}
.preiszahl small {display:block;font-weight:500;color:var(--quiet);font-size:.76rem;}
.preiszeile i {display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--border);border-radius:50%;}
.preiszeile i::after {content:"";width:6px;height:6px;border-right:1.6px solid;border-bottom:1.6px solid;transform:translateY(-1px) rotate(45deg);}
.preiszeile[open] i::after {transform:translateY(1px) rotate(225deg);}
.preiszeile p {margin:0 0 12px;font-size:.94rem;color:var(--quiet);max-width:65ch;}
.preisanfrage {display:flex;gap:8px;align-items:center;justify-content:center;margin:16px 0 10px;min-height:46px;border-radius:7px;background:var(--tinte);color:white;text-decoration:none;font-weight:700;}
.preisanfrage span {color:var(--akzent);}
.preislinks {display:flex;justify-content:space-evenly;gap:8px;}.preislinks a {font-size:.89rem;font-weight:650;color:var(--ink);padding:4px;}
.bewertungsbereich {max-width:1040px;}.review-score,.review-card a {color:var(--ink);}.review-card figcaption img,.review-source img { width:17px;height:17px; }
.prozessbilder {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.3vw,16px);padding:0;margin:18px 0 24px;list-style:none;}
.prozessbilder li {overflow:hidden;background:#f5f7f6;border:1px solid var(--border);border-radius:10px;}
.prozessbilder li>img {display:block;width:100%;aspect-ratio:1.62;height:auto;object-fit:cover;}
.prozessbilder li>div {padding:clamp(11px,1.5vw,20px);}
.prozessbilder small {display:block;margin-bottom:7px;font-size:.75rem;font-weight:710;color:var(--link);}
.prozessbilder h3 {font-size:clamp(1rem,1.65vw,1.42rem);margin:0 0 6px;line-height:1.14;overflow-wrap:anywhere;}
.prozessbilder p {font-size:clamp(.82rem,1.2vw,1rem);line-height:1.46;}
.fachgalerie {border-block:1px solid var(--border);padding:8px 0;}
.fachgalerie summary {font-weight:680;cursor:pointer;padding:8px 0;}
.fachgalerie>div {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:15px;margin:12px 0;}
.fachgalerie img {width:100%;aspect-ratio:1.52;object-fit:cover;height:auto;border-radius:8px;}
.ortsfoto figcaption,.fachgalerie figcaption {font-size:.8rem;color:var(--quiet);line-height:1.45;margin:.5rem 0 0;}
.ortsfoto img {width:100%;height:auto;aspect-ratio:5/3;}
.cookie {z-index:42;}
@media(max-width:800px) {
 .baustart {grid-template-columns:1fr;gap:12px;}
 .bau-einstieg {padding:10px 0;}
 .titelkarte .heroimage {aspect-ratio:2.3;}
 .projektkarte.askbox {max-width:none;}
 .prozessbilder {grid-template-columns:repeat(2,minmax(0,1fr));}
 .headtel {width:43px;height:43px;border:0;border-radius:7px;margin:0;padding:0;justify-content:center;background:var(--action);color:white;}
 .headtel span {display:none;}.headrow .btn{display:none;}
 .headrow {gap:7px;}.headrow .hamb{min-height:43px;}
 .preisbereich {padding-top:16px;}
}
@media(max-width:430px) {
 .bau-einstieg .wrap,.preiskarte,.bewertungsbereich {width:calc(100% - 24px);}
 .titeltext {padding:20px 16px;}.titeltext h1 {font-size:clamp(1.9rem,8.15vw,2.24rem);}
 .titeltext .leadintro {font-size:.97rem;}.titelaktionen {gap:14px;}
 .projektkarte.askbox {padding:16px;}.prozessbilder h3{font-size:1rem;}
 .preiszeile summary{grid-template-columns:minmax(0,1fr) auto 17px;}.preiszeile i{width:17px;height:17px;}
}


.reviews {
  background: #f3f5f6;
  padding: clamp(26px, 3.5vw, 52px) clamp(14px, 3vw, 40px) 16px;
  margin: 24px 0 32px;
  border-radius: 16px;
}
.review-heading {text-align:center; margin:0 auto clamp(20px,2vw,30px)}
.review-source, .review-score {display:inline-flex;align-items:center;justify-content:center;gap:8px}
.review-source {color:#445661;font-size:.81rem;font-weight:660}
.review-source img,.review-card figcaption img {width:18px;height:18px}
.review-heading h2 {font-size:clamp(1.55rem,3vw,2.65rem);margin:9px 0 12px;line-height:1.12}
.review-heading h2 span {color:var(--accent)}
.review-score {flex-wrap:wrap;gap:4px 9px;text-decoration:none;font-size:.84rem}
.review-score span:last-child {text-decoration:underline;text-underline-offset:.23em;color:#455765}
.review-stars {color:#ad6403;letter-spacing:.09em;font-size:1rem;line-height:1}
.review-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.3vw,20px)}
.review-card {display:flex;flex-direction:column;align-items:flex-start;margin:0;min-width:0;background:white;border:1px solid #dce2e5;border-radius:12px;padding:clamp(16px,1.8vw,26px);box-shadow:0 3px 9px #16303d08}
.review-card blockquote {font-size:clamp(1rem,1.25vw,1.2rem);font-weight:520;line-height:1.45;letter-spacing:-.015em;margin:16px 0 22px}
.review-card figcaption {margin-top:auto;display:flex;align-items:center;gap:9px;width:100%;font-size:.85rem;font-weight:650}
.review-card figcaption a {text-decoration:none}
.review-card figcaption a:hover {text-decoration:underline}
.review-card figcaption img {margin-left:auto}
.review-initials {display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#e4edf1;color:#2b5367;font-size:.68rem;letter-spacing:.015em}
.review-card:nth-child(2) .review-initials {background:#eee7df;color:#744c27}
.review-card:nth-child(3) .review-initials {background:#e8e5ef;color:#594779}
.review-date {display:block;text-align:right;margin-top:9px;color:#586975;font-size:.69rem}
@media (max-width:700px) {
  .reviews {margin:16px 0 22px}
  .review-cards {display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#8c9ba2 transparent;gap:10px;padding:2px 2px 9px}
  .review-card {flex:0 0 min(86%,370px);scroll-snap-align:start}
  .review-score {font-size:.76rem}
  .review-card:focus-within {outline:2px solid #116bba;outline-offset:-2px}
}
.betriebsnachweise{list-style:none;padding:20px 0 0;margin:20px 0 0;border-top:1px solid #d6dfdd;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.betriebsnachweise li{display:flex;gap:14px;align-items:center;justify-content:center;padding:12px;background:#fff;border:1px solid #dbe3e0;border-radius:8px;color:#223941;text-align:left;font-size:.85rem;font-weight:660;line-height:1.2}.markenlogo{display:flex;align-items:center;justify-content:center;flex:0 0 72px;height:38px}.markenlogo svg{width:100%;height:100%}@media(max-width:700px){.betriebsnachweise{grid-template-columns:1fr;gap:6px}.betriebsnachweise li{justify-content:flex-start;padding:8px 14px;gap:18px}.markenlogo{height:30px}}
a.maps-mini{display:inline-flex;align-items:center;gap:.48rem;color:inherit;text-decoration:none;font-size:.81rem;font-weight:600;line-height:1.25;min-height:32px;max-width:100%;width:fit-content;margin:.28rem 0 0;border:0}
a.maps-mini img{width:17px;height:17px;flex:0 0 17px;border-radius:3px;padding:2px;background:white;object-fit:contain}
a.maps-mini span,a.maps-mini i{color:inherit}a.maps-mini i{font-style:normal}
a.maps-mini:focus-visible,a.maps-mini:hover{text-decoration:underline;text-underline-offset:.23em}
a.maps-mini .maps-sterne{color:transparent;background:linear-gradient(to right,#ffbf46 0 var(--anteil),#808481 var(--anteil) 100%);background-clip:text;-webkit-background-clip:text;letter-spacing:.04em;font-size:.88rem}
