:root {
    --t-paper:#E3E8D9;--t-white:#FAFBF6;--t-ink:#1c271f;--t-green:#1d3a2b;
    --t-sage:#4c7d57;--t-muted:#4b5d4f;--t-line:#b4c1b0;
    --t-font:'Inter Tight',Arial,sans-serif;--t-display:'Gilda Display',Georgia,serif;
    --t-hero-font:'Instrument Serif',Georgia,serif;
    --t-hero-position:50% 64%;--t-hero-mobile-position:46% 50%;
    --gutter:24px;--content:1600px;
  }
@font-face{font-family:'Gilda Display';src:url("../media/font-gilda-display-400.woff2") format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url("../media/font-instrument-serif-400.woff2") format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Inter Tight';src:url("../media/font-inter-tight-var.woff2") format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

:root{--fs-h2:clamp(40px,4.4vw,68px);--fs-h3:clamp(24px,1.9vw,30px);--fs-body:18px;--fs-small:16px;--fs-meta:14px;--fs-label:13px}
@media(max-width:699px){:root{--fs-h2:min(40px,10.4vw);--fs-h3:24px;--fs-body:16px;--fs-small:15px;--fs-meta:13px;--fs-label:12px}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:32px;overflow-x:clip}
body{margin:0;background:var(--t-paper);color:var(--t-ink);font:400 var(--fs-body)/1.55 var(--t-font);-webkit-font-smoothing:antialiased}
body.dialog-open{overflow:hidden}
button,input,textarea{font:inherit;color:inherit}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;border:0;background:none}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto;object-fit:cover}
svg{display:block}
figure,p,h1,h2,h3{margin:0}
h1,h2,h3{font-family:var(--t-display);font-weight:400;letter-spacing:-.035em;line-height:1.05;text-wrap:balance}
h2{font-size:var(--fs-h2)}
p{max-width:62ch}
button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
input:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:4px}
[hidden]{display:none!important}
::selection{background:var(--t-green);color:var(--t-white)}
.wrap{width:min(100% - var(--gutter)*2,var(--content));margin-inline:auto}
.section{padding-block:112px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:56px;padding:16px 24px;border:1px solid currentColor;background:var(--t-green);color:var(--t-white);font-size:var(--fs-small);font-weight:500;line-height:1.4;transition:background .2s,color .2s}
.button svg{width:24px;height:24px;flex-shrink:0;transition:transform .3s cubic-bezier(.2,.65,.3,1)}
.button:hover svg{transform:translateX(4px)}
.button:hover{background:var(--t-white);color:var(--t-green)}
.button>span{font-size:24px;line-height:1}
.text-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:6px}
.skip-link{position:fixed;top:16px;left:24px;z-index:100;padding:16px;background:var(--t-white);color:var(--t-ink);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.example-note{position:absolute;right:12px;bottom:12px;padding:3px 7px;background:#19231ee6;color:#fff;border-radius:2px;font:400 10px/1.4 var(--t-font);pointer-events:none;z-index:2}
.hero{position:relative;height:100svh;min-height:700px;background:var(--t-paper)}
.hero-frame{position:absolute;inset:0;overflow:clip;display:flex;flex-direction:column;background:var(--t-green);color:var(--t-white)}
.hero-art,.hero-art img,.hero-shade{position:absolute;inset:0;width:100%;height:100%}
.hero-art img{object-position:var(--t-hero-position)}
.hero-shade{background:linear-gradient(90deg,#0b170ebb 0%,#0b170e60 37%,#0b170e0a 78%),linear-gradient(180deg,#0b170e38,transparent 35%,transparent 65%,#0b170ecc)}
.site-header{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:32px;z-index:2}
.brand{display:flex;align-items:center;gap:12px;max-width:55%;min-width:0}
.brand-mark{width:auto;height:40px;max-width:190px;object-fit:contain;flex-shrink:0}
.brand>span{font:400 clamp(22px,1.8vw,30px)/1.08 var(--t-display);letter-spacing:-.045em;overflow-wrap:anywhere}
.brand-mark:only-child{height:clamp(48px,9svh,84px);max-width:220px;filter:drop-shadow(0 1px 8px rgba(0,0,0,.45))}
.mobile-call{display:none}
.hero-copy{position:relative;z-index:1;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-block:12px max(24px,env(safe-area-inset-bottom));pointer-events:none}
.hero h1{font-family:var(--t-hero-font);font-size:min(clamp(52px,5.4vw,88px),11svh);line-height:1;max-width:17ch;letter-spacing:-.025em;text-wrap:pretty}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 40px;margin-top:28px}
.hero-inquiry{pointer-events:auto;margin:0;background:var(--t-white);color:var(--t-green);border-color:var(--t-white);min-width:224px}
.hero-inquiry:hover{background:var(--t-green);color:var(--t-white)}
.hero-example{right:max(var(--gutter),calc((100vw - var(--content))/2));bottom:24px}
.hero-scroll{position:relative;z-index:2;color:var(--t-white);pointer-events:none}
.section-heading{margin-bottom:48px}
.section-heading h2{max-width:18ch}
.projects .section-heading{margin-bottom:32px}
.project-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.project-pill{min-height:44px;padding:9px 20px;border:1px solid #74846f;border-radius:24px;background:transparent;color:var(--t-ink);font-size:var(--fs-small);font-weight:500;line-height:1.4;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
@media(hover:hover){.project-pill:hover{border-color:var(--t-green);color:var(--t-green)}}
.project-pill[aria-pressed="true"]{background:var(--t-green);border-color:var(--t-green);color:var(--t-white)}
.project-pill:focus-visible{outline:2px solid var(--t-green);outline-offset:3px}
.project-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.project{min-width:0}
/* Bis das Skript läuft, kein Abruf der Fotos hinter „Mehr anzeigen“; ohne Skript bleiben alle sichtbar. */
@media(scripting:enabled){.project[data-spaeter]{display:none}}
.project-more{display:block;margin-top:24px}
.project-open{display:block;position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--t-green)}
.project-open img{height:100%;transition:transform .55s cubic-bezier(.2,.65,.3,1)}
.project-caption{position:absolute;inset:auto 0 0;padding:42px 18px 18px;background:linear-gradient(transparent,#0b170ed9);color:white;font-size:var(--fs-small);line-height:1.3;opacity:0;transition:opacity .25s;pointer-events:none}
.project-open:focus-visible{outline-color:var(--t-green);outline-offset:4px}
.project-open:focus-visible .project-caption{opacity:1;transform:none}
.project-open:focus-visible .example-note{top:10px;bottom:auto}
@media(hover:hover){.project-open:hover img{transform:scale(1.045)}.project-open:hover .project-caption{opacity:1;transform:none}.project-open:hover .example-note{top:10px;bottom:auto}}
.project-top img{object-position:50% 12%}
.project-zoom{position:absolute;inset:0;display:block;overflow:hidden}
.project-hof img{width:133.4%;max-width:none;height:133.4%;object-position:50% 55%}
.project-hecke img{width:128%;max-width:none;height:128%;object-position:0 0}
.project-badge{position:absolute;left:12px;top:12px;z-index:2;padding:4px 10px;background:#19231ee6;color:var(--t-white);font:500 var(--fs-label)/1.3 var(--t-font);letter-spacing:.02em;pointer-events:none}
@media(max-width:699px){.project-badge{left:8px;top:8px;padding:3px 8px}}

.garden-ideas{--t-sage:#d3ddcb}
.garden-ideas,.garden-privacy-dialog{--t-white:#ffffff;--t-ink:#28382e;--t-muted:#59655b;--gutter:24px;--content:1408px;font:400 18px/1.55 var(--t-font);color:var(--t-ink)}

.garden-ideas h2,.garden-privacy-dialog h2,.garden-privacy-dialog h3{font-family:var(--t-display);font-weight:400;letter-spacing:-.035em;line-height:1.04}
.garden-ideas .garden-heading h2{font-weight:400;letter-spacing:-.035em}
.garden-ideas summary:focus-visible{outline:3px solid currentColor;outline-offset:6px}
.garden-ideas summary{-webkit-tap-highlight-color:transparent}
@media(min-width:1200px){.garden-ideas{--gutter:64px}}
@media(min-width:1700px){.garden-ideas{--gutter:96px}}
@media(max-width:370px){.garden-ideas{--gutter:16px}}
@media(max-width:700px){.garden-ideas,.garden-privacy-dialog{font-size:16px}.garden-ideas .garden-stage{padding-bottom:0}.garden-ideas .garden-editor-foot{width:100%;margin:0;padding:14px var(--gutter) 6px;background:var(--t-paper)}}
.about{padding-top:24px}
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}
.about-image{position:relative;min-width:0;overflow:hidden}
.about-image img{aspect-ratio:3/2;object-position:center}
.about-layout>*,.contact-layout>*{min-width:0}
.about-copy h2{max-width:12ch;margin-bottom:32px}
.about-copy p{max-width:40ch;color:var(--t-muted)}
.about-copy p+p{margin-top:20px}

.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:72px}
.service{display:grid;grid-template-columns:auto minmax(0,1fr);grid-row:span 2;grid-template-rows:subgrid;align-items:center;column-gap:14px;row-gap:14px;min-width:0}
.service>div{display:contents}
.service-icon{display:grid;place-items:center;color:var(--t-green);transition:color .3s}
.service-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.service:hover .service-icon{color:var(--t-sage)}
.service:hover .service-icon svg{transform:scale(1.12) rotate(-6deg)}
.services h3{font-size:var(--fs-h3);letter-spacing:-.025em;margin:0}
.services p{grid-column:1/-1;align-self:start;font-size:var(--fs-small);color:var(--t-muted)}
.reviews{margin-top:clamp(128px,15vw,224px)}

.jobs{background:var(--t-white)}
.jobs-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,100px);align-items:start}
.jobs-layout>*{min-width:0}
.jobs-kicker{margin:0 0 20px;font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--t-muted)}
.jobs-intro h2{max-width:11ch;margin:0}
.jobs-body{display:grid;gap:clamp(36px,4vw,56px);min-width:0}
.jobs-body h3{margin:0 0 16px;font-family:var(--t-font);font-size:var(--fs-label);font-weight:500;letter-spacing:.14em;line-height:1.4;text-transform:uppercase;color:var(--t-muted)}
.jobs-openings{list-style:none;margin:0;padding:0;border-top:1px solid var(--t-line)}
.jobs-openings li{padding:16px 0 18px;border-block-end:1px solid var(--t-line);font-family:var(--t-display);font-size:var(--fs-h3);line-height:1.15;letter-spacing:-.025em;overflow-wrap:break-word;hyphens:auto;transition:color .3s}
@media(hover:hover){.jobs-openings li:hover{color:var(--t-green)}}
.jobs-gender{white-space:nowrap}
.jobs-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.jobs-perks{list-style:none;display:grid;gap:14px;margin:0;padding:0;font-size:var(--fs-small)}
.jobs-perks li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:14px;align-items:start}
.jobs-perks svg{width:22px;height:22px;margin-top:1px;fill:none;stroke:var(--t-green);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.contact-reveal{background:var(--t-green)}
.contact{padding-top:96px;background:var(--t-green);color:var(--t-white);--t-muted:#ccd5c5;--t-line:#74846f}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px)}
.contact h2{max-width:12ch;margin-bottom:0}
.contact-details{display:grid;gap:30px;margin-top:48px;font-style:normal;font-size:var(--fs-body);line-height:1.45;overflow-wrap:anywhere}
.contact-details>div{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:18px;row-gap:2px;justify-items:start}
.contact-details>div>:not(.contact-label){grid-column:2}
.contact-label{grid-column:1;grid-row:1;display:flex;align-items:center;height:1.45em;color:var(--t-muted)}
.contact-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.contact-label-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.contact-details a{max-width:100%}
.contact-details a:hover{text-decoration:underline;text-underline-offset:5px}
.contact-details a[target="_blank"]{display:inline-block;padding-block:10px;margin-block:-10px}
.contact-details .contact-route{margin-top:6px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.contact-route span{display:inline-block;transition:transform .3s cubic-bezier(.2,.65,.3,1)}
.contact-route:hover span{transform:translateX(4px)}

.contact-hours-title{display:block;margin-bottom:6px;font-weight:500}
.contact-hours{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:28px;row-gap:4px;margin:0;font-variant-numeric:tabular-nums}
.contact-hours dt{color:var(--t-muted)}
.contact-hours dd{margin:0}
.contact-hours-note{margin-top:14px;padding:8px 12px;border-left:2px solid var(--t-muted);background:#ffffff14;color:var(--t-muted);font-size:var(--fs-meta);line-height:1.45}
.contact-signoff{display:flex;justify-content:space-between;gap:24px;margin-top:72px;padding-block:32px;color:var(--t-white);font-size:var(--fs-label)}

.contact>div[style]{color:var(--t-white)!important;font-family:var(--t-font)!important;font-size:var(--fs-label)!important}
.inquiry-form{min-width:0;padding-top:8px}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font-size:var(--fs-meta);margin-bottom:16px}
.interest-options{display:flex;flex-wrap:wrap;gap:8px}
.interest-options label{position:relative;cursor:pointer}
.interest-options input{position:absolute;top:50%;left:16px;width:1px;height:1px;opacity:0}
.interest-options span{display:block;border:1px solid #899c80;border-radius:24px;padding:11px 16px;font-size:var(--fs-label);line-height:1.4;transition:background .2s,color .2s,border-color .2s}
@media(hover:hover){.interest-options label:hover span{border-color:var(--t-white)}}
.interest-options input:checked+span{background:var(--t-paper);color:var(--t-green);border-color:var(--t-paper)}
.interest-options input:focus-visible+span{outline:2px solid var(--t-white);outline-offset:3px}
.interest-group{margin-bottom:32px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.field{margin-bottom:28px;min-width:0}
.field>label{display:block;font-size:var(--fs-meta);margin-bottom:6px}
.field>label span{font-size:var(--fs-label);color:var(--t-muted)}
.field input,.field textarea{display:block;width:100%;border:0;border-bottom:1px solid #94a58d;border-radius:0;padding:8px 0;min-height:48px;background:transparent;font-size:var(--fs-body);line-height:1.5;box-shadow:none;transition:border-color .25s}
.field input:focus,.field textarea:focus{border-color:var(--t-white)}
.field textarea{resize:vertical;min-height:100px}
.field textarea::placeholder{color:var(--t-muted);opacity:1}
.field input[aria-invalid=true]{border-color:#ffc5b5}
.field-error{font-size:var(--fs-label);color:#ffd3c7;margin-top:8px}
.einw{display:flex;align-items:start;gap:12px;font-size:var(--fs-label);line-height:1.5;cursor:pointer;max-width:54ch}
.einw input{accent-color:#e2e5d7;width:20px;height:20px;flex-shrink:0;margin:0;cursor:pointer}
.submit-button{width:100%;min-height:60px;margin-top:24px;background:var(--t-paper);color:var(--t-green);border-color:var(--t-paper)}
.submit-button:hover{background:var(--t-white);color:var(--t-green)}
.project-reference{display:flex;align-items:center;gap:14px;padding:14px 0;margin-bottom:24px;font-size:var(--fs-meta)}
.project-reference img{width:84px;height:64px;flex-shrink:0}
.project-reference>span{flex:1}
.project-reference button{width:44px;min-width:44px;min-height:44px;font-size:26px}
.form-success{padding:40px 0}
.form-success strong{display:block;font-size:var(--fs-h3);font-weight:450;line-height:1.15}
.form-success p{margin-top:16px}
.form-success .text-link{margin-top:24px;padding:0}
.is-complete>:not(.form-success){display:none!important}
.project-dialog{padding:0;border:0;width:min(1380px,calc(100% - 64px));max-width:none;max-height:calc(100svh - 48px);background:var(--t-paper);color:var(--t-ink);overscroll-behavior:contain}
.project-dialog::backdrop{background:#0b170ee8;backdrop-filter:blur(8px)}
.project-dialog[open]{display:flex;flex-direction:column;animation:dialog-in .28s ease-out}
.dialog-image{position:relative;flex:1;min-height:180px;background:#15251a;touch-action:pan-y}
.dialog-image img{width:100%;height:min(67svh,820px);object-fit:contain}
.icon-button{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;padding:12px}
.icon-button svg{width:24px;height:24px}
.dialog-close{position:absolute;z-index:4;top:16px;right:16px;border-radius:50%;background:var(--t-paper);color:var(--t-ink)}
.dialog-copy{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:32px;align-items:center;padding:26px 32px}
.dialog-copy h2{font-size:var(--fs-h3);letter-spacing:-.02em}
.dialog-copy .concept-note{font-size:var(--fs-label);margin-top:8px;color:var(--t-muted)}
.dialog-navigation{display:flex;align-items:center;gap:8px}
#dialog-counter{min-width:42px;font-size:var(--fs-label);text-align:center;font-variant-numeric:tabular-nums}
.dialog-copy .button{min-height:52px}
@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1100px){:root{--gutter:64px}}
@media(min-width:1800px){:root{--gutter:96px}}
@media(min-width:700px) and (max-width:1099px){
  .project-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .hero h1{font-size:min(72px,8.6vw,11svh);max-width:15ch}
  .about-layout,.contact-layout{gap:32px}
  .services{gap:28px}
  .jobs-layout{grid-template-columns:1fr;gap:40px}
  .dialog-copy{grid-template-columns:1fr auto;gap:18px}.dialog-copy .button{grid-column:1/3}
}
@media(max-width:699px){
  .section{padding-block:64px}
  .hero{height:100svh;min-height:min(740px,100svh)}
  .site-header{padding-block:24px;gap:16px}
  .brand{max-width:calc(100% - 64px);gap:9px}.brand-mark{height:30px;max-width:140px}.brand>span{font-size:clamp(19px,5.6vw,23px)}
  .brand-mark:only-child{height:58px;max-width:150px}
  .mobile-call{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff99;border-radius:50%;flex-shrink:0}.mobile-call svg{width:23px;height:23px}
  .hero-art img{object-position:var(--t-hero-mobile-position)}
  .hero-shade{background:linear-gradient(180deg,#0b170e80 0%,#0b170e5c 20%,#0b170e75 55%,#0b170ecc 100%)}
  .hero-copy{padding-block:8px max(24px,env(safe-area-inset-bottom))}
  .hero-actions{display:contents}
  .hero h1{margin-top:auto}
  .hero-scroll{margin-top:auto;padding-top:16px}
  .hero h1{font-size:min(clamp(44px,14.6vw,64px),11svh);max-width:14ch;line-height:1.02}
  .hero-inquiry{margin-top:24px;min-height:54px;min-width:210px;padding:14px 20px}
  .hero-example{bottom:20px;font-size:9px}
  .section-heading{margin-bottom:30px}.section-heading h2{max-width:13ch}
  .projects .section-heading{margin-bottom:24px}.project-filter{margin-bottom:16px}.project-pill{padding-inline:16px}
  .project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .project-more{margin-top:16px}
  .project-open .example-note{font-size:8px;right:6px;bottom:6px;padding:2px 5px}
  .project-caption{font-size:var(--fs-label)}
  .about{padding-top:0}.about-layout{grid-template-columns:1fr;gap:32px}
  .about-image img{aspect-ratio:3/2}
  .about-copy h2{max-width:13ch;margin-bottom:24px}
  .about-copy p{max-width:42ch}
  .services{grid-template-columns:1fr;gap:28px;margin-top:40px}.service{column-gap:12px;row-gap:8px}
  .reviews{margin-top:112px}
  .jobs-layout{grid-template-columns:1fr;gap:28px}.jobs-kicker{margin:0 0 10px}
  .jobs-intro h2{max-width:14ch;margin:0}
  .jobs-body{gap:32px}.jobs-openings li{padding:12px 0 14px}
  .jobs-columns{grid-template-columns:1fr;gap:32px}
  .service-icon svg{width:28px;height:28px}
  .contact{padding-top:64px}.contact-layout{grid-template-columns:1fr;gap:44px}
  .contact h2{max-width:12ch}
  .contact-details{gap:26px;margin-top:32px}.contact-hours{column-gap:20px}
  .form-row{gap:16px}.field{margin-bottom:24px}
  .contact-signoff{flex-wrap:wrap;gap:8px;margin-top:40px;padding-block:24px}
  .project-dialog{width:calc(100% - 24px);max-height:calc(100svh - 24px)}
  .dialog-image img{height:49svh;min-height:210px}
  .dialog-close{top:10px;right:10px;width:44px;height:44px;padding:10px}
  .dialog-copy{grid-template-columns:minmax(0,1fr) auto;padding:22px 18px;gap:18px}
  .dialog-navigation{display:none}
  .dialog-copy .button{grid-column:1/3;width:100%;justify-content:center}
}
@media(max-width:370px){:root{--gutter:16px}.hero{min-height:min(700px,100svh)}.hero h1{font-size:min(44px,13.2vw)}.form-row{grid-template-columns:1fr;gap:0}.interest-options span{padding:10px 12px}}
@media(max-height:699px){.hero{min-height:360px}.site-header{padding-block:16px}.hero-copy{padding-block:4px max(12px,env(safe-area-inset-bottom))}.hero-actions{margin-top:20px}.hero h1{font-size:min(50px,12.5vw,10svh);max-width:18ch}.dialog-image img{height:54svh}.dialog-copy{padding:18px 24px}}
@media(max-width:699px) and (max-height:699px){.hero-inquiry{margin-top:20px}.hero-scroll{padding-top:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-art img{transform:none!important}}


.hero-nudge{display:inline-flex;align-items:center;gap:14px;max-width:100%;min-height:58px;padding:8px 4px;color:inherit;text-align:left;pointer-events:auto;transition:opacity .18s}
.hero-nudge .nudge-icon{width:28px;height:32px;flex:none}
.nudge-copy{font:500 16px/1.35 var(--t-font)}
.nudge-copy small{display:block;font-size:13px;font-weight:400;margin-top:3px}
.hero-nudge .nudge-touch{display:none}
.hero-nudge:hover .nudge-copy>span{text-decoration:underline;text-underline-offset:4px}
.hero-nudge.is-away{opacity:0;visibility:hidden;pointer-events:none}
.hint-ready .nudge-mouse.nudge-icon{animation:hint-down 1.7s ease-in-out 2}
.hint-ready .nudge-touch.nudge-icon{animation:hint-swipe 1.7s ease-in-out 2}
.hero.hint-used .nudge-icon,.hero.is-guiding .nudge-icon{animation:none}
@keyframes hint-down{0%,15%,100%{transform:translateY(-4px)}55%,65%{transform:translateY(6px)}}
@keyframes hint-swipe{0%,15%{transform:translateY(7px);opacity:1}55%,65%{transform:translateY(-9px);opacity:1}78%{transform:translateY(-9px);opacity:0}79%{transform:translateY(7px);opacity:0}100%{transform:translateY(7px);opacity:1}}
@media(hover:none) and (pointer:coarse){.hero-nudge .nudge-mouse{display:none}.hero-nudge .nudge-touch{display:block}}
@media(max-width:699px){.hero-nudge{min-height:54px;padding-block:4px}.nudge-copy{font-size:15px}}
@media(prefers-reduced-motion:reduce){.hero .nudge-icon{animation:none!important}}
#projects-title:focus-visible{outline:2px solid var(--t-green);outline-offset:6px}

.wb-form{min-width:0;padding-top:8px;color:inherit}.wb-form>p{margin:0 0 24px;font-size:15px}.wb-form form{display:grid;gap:0}.wb-form label{margin:0 0 28px;font-size:15px;font-weight:500;line-height:1.4}.wb-form input:not([type=checkbox]),.wb-form textarea{margin-top:8px;padding:8px 0;min-height:48px;border:0;border-bottom:1px solid currentColor;border-radius:0;background:transparent;color:inherit;font-size:18px;line-height:1.5;box-shadow:none}.wb-form textarea{min-height:104px;resize:vertical}.wb-form input:focus-visible,.wb-form textarea:focus-visible{outline:2px solid currentColor;outline-offset:4px}.wb-form .wb-consent{display:block;position:relative;padding-left:32px;margin:0 0 8px;font-size:13px;font-weight:400;line-height:1.5;max-width:54ch;cursor:pointer}.wb-form .wb-consent input{position:absolute;left:0;top:1px;width:20px;height:20px;margin:0;cursor:pointer}.wb-form .wb-consent a{color:inherit;text-decoration:underline;text-underline-offset:3px}.wb-form button[type=submit]{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:60px;margin-top:24px;padding:16px 24px;border:1px solid currentColor;border-radius:2px;background:transparent;color:inherit;font-size:16px;font-weight:550}.wb-form [role=status]{margin:16px 0 0;font-size:15px}.contact-signoff .wb-legal{display:flex;flex-wrap:wrap;gap:0 24px;margin-left:auto}.contact-signoff .wb-legal a{display:inline-flex;align-items:center;min-height:44px;margin:0;color:inherit;text-decoration:underline;text-underline-offset:4px}
.website-draft{background:var(--t-surface,#f3f1ea);color:var(--t-ink);padding:14px 24px;text-align:center;font-size:15px;line-height:1.6}.website-draft strong{font-weight:600;margin-right:.6em}.website-draft p{display:inline;margin:0 .6em 0 0}

.tpl-anker{display:block;height:0;overflow:hidden}

/* wb-reviews:start v7 */
/* Google-Bewertungen (zentraler Baustein, KB.30), Toms Vorgaben vom 20. und 30.10.2026: Note und „Google Maps“
   in einer Zeile, Karten als Wischleiste, Kartenkopf mit Name links und Sternen rechts, lange Texte bis zu
   einer festen Höhe, darunter allein ein Chevron, Anzahl und Zeitraum unten beim Hinweis. Der Aufbau steht
   nur hier (Raster, order): Das HTML aus render() setzt der Host auch in ältere Fassungen ein, die ihr altes
   CSS behalten. Gewicht einer Klasse: schlägt Grundregeln wie p{margin:0}, jede Seitenregel mit Abschnitt
   davor (#stimmen .wb-review, .wb-reviews .wb-review) schlägt den Baustein. Stellschrauben: --wb-review-bg
   (Kartenhintergrund), --wb-mehr-zeilen (Höhe in Zeilen). */
.wb-reviews{--wb-mehr-zeilen:7;display:flex;flex-wrap:wrap;align-items:center;column-gap:.45em}
/* Ohne Zitate (FB22 #319): Baustein und Seitenabschnitt um ihn weg, auch gegen eigenes display der
   Seite. Den Abschnitt markiert die Montage (website_reviews.inject) mit hidden und data-wb-leer. */
.wb-reviews[hidden],[data-wb-leer]{display:none!important}
.wb-reviews>*{flex:0 0 100%;min-width:0;margin:0}
.wb-reviews-rating,.wb-reviews-source{flex:0 0 auto}
.wb-reviews-rating+.wb-reviews-source::before{content:"·";margin-right:.45em}
/* Anzahl und Zeitraum zur Note (BGH I ZR 143/23, Tom 21.10.2026) stehen seit 30.10.2026 unten beim Hinweis, gleich
   groß und in dessen Zeile, solange beide hineinpassen; sonst darunter. Im HTML bleiben sie direkt hinter der Note.
   max-width hart: Seitenregeln wie p{max-width:62ch} (Morina) oder #stimmen p{…} brächen den Hinweis sonst um,
   Toms Vorgabe für alle Seiten ist ab Tablet eine Zeile (#685). Wird die Spalte zu schmal, meldet es der Befund. */
.wb-reviews-notice,.wb-reviews-basis{flex:0 1 auto;align-self:flex-end;max-width:none!important;font-size:.75rem;line-height:1.5;opacity:.7}
.wb-reviews-notice{order:1;margin-top:16px;text-wrap:balance}
.wb-reviews-basis{order:2}
.wb-reviews a{color:inherit;overflow-wrap:anywhere}
.wb-reviews-source a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.wb-reviews cite{font-style:normal}
/* Nur waagrecht scrollbar (FB24 #462): baut eine Seite die Karte um und ragt etwa die 44-px-Tippfläche des
   Chevrons unter die Karte, wurde die Leiste sonst senkrecht scrollbar und wackelte am Handy. Der Puffer
   unten (16 px, Rand −12 px) hält den Überstand sichtbar; die Lage bleibt wie vorher (4 px). */
.wb-reviews-quotes{display:flex;gap:16px;margin-top:20px;padding-bottom:16px;margin-bottom:-12px;overflow-x:auto;
  overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.wb-reviews-quotes::-webkit-scrollbar{display:none}
/* Kopf eine Zeile (Tom 30.10.2026): Name links, Sterne rechts; ein langer Name bricht um und lässt den Sternen
   ihren Platz. Die mittlere Reihe nimmt die Höhe auf, darum steht der Chevron gleich hoher Karten auf einer Linie. */
.wb-review{flex:0 0 86%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto 1fr auto;grid-template-areas:"name sterne" "text text" "mehr mehr";column-gap:12px;
  scroll-snap-align:start;padding:22px 22px 20px;border-radius:4px;
  background:var(--wb-review-bg,color-mix(in srgb,currentColor 5%,transparent))}
.wb-review:only-child{flex-basis:100%}
.wb-review-author{grid-area:name;align-self:baseline;min-width:0;margin:0;font-size:.875em;opacity:.75;overflow-wrap:anywhere}
.wb-review-author a{text-decoration:none}
.wb-review-author a:hover{text-decoration:underline}
.wb-review-stars{grid-area:sterne;align-self:baseline;justify-self:end;margin:0 -.14em 0 0;letter-spacing:.14em;line-height:1;white-space:nowrap}
.wb-review blockquote{grid-area:text;align-self:start;min-width:0;margin:12px 0 0;max-width:none}
.wb-reviews-links{order:3;margin-top:8px;font-size:.875em}
.wb-review-mehr{grid-area:mehr;justify-self:center;display:grid;place-items:center;width:44px;height:44px;margin:-8px 0 -18px;
  padding:0;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer}
.wb-review-mehr svg{display:block;transition:transform .3s cubic-bezier(.3,.7,.2,1)}
.wb-review-mehr[aria-expanded="true"] svg{transform:rotate(180deg)}
.wb-reviews-nav{display:none;flex:0 0 auto;gap:8px;margin-left:auto}
.wb-reviews-nav button{display:grid;place-items:center;width:44px;height:44px;padding:0;
  border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:50%;background:none;color:inherit;cursor:pointer}
/* Note und „Google Maps“ in einer Zeile auch am Handy (Tom 20.10.2026; mit der Anzahl brach die Kopfzeile bei
   390 px um, seit 21.10. steht sie in der eigenen Zeile darunter): die Kopfzeile dort etwas kleiner. */
@media (max-width:479px){.wb-reviews-rating,.wb-reviews-source{font-size:.8125em}.wb-reviews{column-gap:.35em}}
@media (min-width:700px){
  .wb-reviews-quotes{gap:20px}
  .wb-review{flex-basis:340px}
  .wb-reviews-nav:not([hidden]){display:flex}
}

/* Zustände aus website_reviews_runtime.js */
.wb-reviews-quotes.wb-mehr-an{align-items:flex-start}
.wb-review-text.is-lang{max-height:var(--wb-mehr-hoehe);overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 3em),transparent);
  mask-image:linear-gradient(to bottom,#000 calc(100% - 3em),transparent)}
.wb-review-text.is-lang.is-offen{max-height:none;-webkit-mask-image:none;mask-image:none}
.wb-review-text.is-fahrt{transition:max-height .45s cubic-bezier(.3,.7,.2,1)}
.wb-review-mehr[hidden],.wb-reviews-nav[hidden]{display:none}
.wb-review-mehr:focus-visible,.wb-reviews-nav button:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.wb-reviews-notice.is-einzeilig{white-space:nowrap}
/* Leiste bis an den Fensterrand: die Ränder misst das Skript (Scrollleiste, beliebiger Seitenrand). */
.wb-reviews-quotes.wb-leiste{box-sizing:border-box;flex-basis:calc(100% + var(--wb-rand-l,0px) + var(--wb-rand-r,0px));
  margin-inline:calc(var(--wb-rand-l,0px) * -1) calc(var(--wb-rand-r,0px) * -1);
  padding-inline:var(--wb-rand-l,0px) var(--wb-rand-r,0px);scroll-padding-inline:var(--wb-rand-l,0px) var(--wb-rand-r,0px)}
.wb-reviews-quotes.wb-schleife{cursor:grab}
.wb-reviews-quotes.wb-zieht{cursor:grabbing;scroll-snap-type:none;user-select:none}
.wb-reviews-quotes.wb-schleife:focus-visible{outline:2px solid currentColor;outline-offset:-2px}
@media (prefers-reduced-motion:reduce){.wb-review-text.is-fahrt,.wb-review-mehr svg{transition:none}}
/* wb-reviews:end */
