/* HOTI BAU / Atelier edition. Built on the component structure supplied in v10. */
:root {
  --bg:#0b1210; --bg-2:#101b16; --pine:#172b21; --green:#a6c981;
  --green-bright:#c2df9b; --green-deep:#60894d; --cream:#f1f0e7;
  --cream-dim:#b8c0b5; --cream-faint:#95a191; --line-faint:rgba(224,237,212,.15);
  --line-green:rgba(194,223,155,.35); --green-glow:rgba(144,179,103,.18);
  --maxw:1440px; --ease:cubic-bezier(.22,1,.36,1);
}
html {scroll-padding-top:110px; scrollbar-color:#526b43 var(--bg);}
body {font-weight:400; font-size:16px; line-height:1.75;}
body.modal-open,body.menu-open {overflow:hidden;}
button,input,select,textarea {font:inherit;}
button,a,input,select,textarea,summary {-webkit-tap-highlight-color:transparent;}
button {touch-action:manipulation;}
[hidden] {display:none!important;}
a {text-underline-offset:4px;}
:focus-visible {outline:2px solid var(--green-bright); outline-offset:5px;}
.wrap {padding-inline:clamp(22px,5vw,80px);}
.scene {min-height:0; padding:116px 0; overflow:clip;}
.scene:not(.hero) {border-bottom:1px solid rgba(224,237,212,.07);}
.scene__bg {inset:0; background:var(--bg); will-change:auto;}
.scene__bg::after {background:linear-gradient(90deg,rgba(11,18,16,.91),rgba(11,18,16,.66)),linear-gradient(0deg,var(--bg),transparent 50%,var(--bg));}
.scene__bg video {width:100%; height:100%; min-width:0; min-height:0; object-fit:cover;}
.scene__bg.is-playing video {opacity:var(--scene-video-opacity,.3);}
.display,.display em,.service h3,.stat__num,.step__num,.fleet-list li b,.benefit h3 {text-shadow:none;}
.display {letter-spacing:-.01em; line-height:1.04;}
.display em {color:var(--green-bright);}
.scene h2.display {font-size:clamp(2.8rem,5.5vw,5.25rem);}
.kicker {font-size:.75rem; letter-spacing:.2em; gap:12px; margin-bottom:26px; color:var(--green-bright);}
.kicker::before {width:25px; box-shadow:none;}
.lede {font-size:1rem; line-height:1.85; font-weight:400;}
.section-heading {display:flex; align-items:flex-end; gap:72px; justify-content:space-between;}
.section-aside {max-width:350px; color:var(--cream-dim); font-size:.93rem; margin:0 0 7px;}
.section-aside p {margin:0 0 25px;}
.btn-solid {display:inline-flex; align-items:center; justify-content:center; gap:26px; padding:19px 26px; background:var(--green-bright); color:#182313; border:1px solid var(--green-bright); font-size:.79rem; letter-spacing:0; text-transform:none; font-weight:700; border-radius:3px; box-shadow:none; line-height:1.5;}
.btn-solid span {font-size:1.25rem; line-height:1; transition:transform .3s;}
.btn-solid:hover {background:#d4ebb8; box-shadow:0 6px 30px #0003; transform:translateY(-3px);}
.btn-solid:hover span {transform:translate(2px,-2px);}
.btn-line {font-size:.77rem; font-weight:700; letter-spacing:0; text-transform:none; padding:13px 0; line-height:1.6; border-color:var(--line-green);}
.btn-line:hover {text-shadow:none;}
.scroll-progress {height:2px; box-shadow:none;}
.cursor-glow {width:420px; height:420px; opacity:0!important; z-index:1; background:radial-gradient(circle,rgba(165,204,126,.055),transparent 68%); mix-blend-mode:normal;}
.cursor-glow.is-on {opacity:1!important;}
.glow-orb {opacity:.3;}

/* Precise, persistent navigation. */
.site-header {padding:17px clamp(22px,4vw,64px); border-bottom:1px solid #ffffff0e; gap:24px; background:linear-gradient(#0b1210cc,#0b121030); transition:background .4s,padding .4s,box-shadow .4s;}
.site-header.is-scrolled {padding-top:10px; padding-bottom:10px; background:rgba(11,18,16,.95); backdrop-filter:blur(18px); box-shadow:0 5px 35px #0002;}
.brand {display:inline-flex; align-items:center; gap:16px; text-decoration:none; flex-shrink:0;}
.brand .logo-plate {padding:3px 7px; border-radius:3px; box-shadow:none;}
.brand .logo-plate img {width:69px; height:auto;}
.brand-text {font-size:.75rem; line-height:1.55; font-weight:700; letter-spacing:.15em; color:#dce0d6;}
.desktop-nav {display:flex; gap:30px; align-items:center;}
.desktop-nav a {font-size:.75rem; color:#dce0d6; text-decoration:none; position:relative; padding-block:12px;}
.desktop-nav a::after {content:""; position:absolute; height:1px; bottom:5px; inset-inline:0; transform:scaleX(0); transform-origin:left; background:var(--green-bright); transition:transform .3s;}
.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after {transform:scaleX(1);}
.desktop-nav a[aria-current] {color:var(--green-bright);}
.header-right {gap:12px;}
.header-contact {display:flex; align-items:center; gap:24px; padding:11px 17px; color:var(--cream); font-size:.75rem; font-weight:700; text-decoration:none; border:1px solid #bacba73d; border-radius:3px; transition:background .3s;}
.header-contact:hover {background:var(--pine);}
.header-contact span {color:var(--green-bright); font-size:1.2rem;}
.motion-toggle {width:38px; height:38px; border:1px solid var(--line-faint); border-radius:50%; background:transparent; color:var(--cream); cursor:pointer; font-size:.8rem;}
.motion-toggle:hover {border-color:var(--green-bright);}
.burger {display:none; width:42px; height:42px; border-color:var(--line-faint);}
.menu-overlay {align-items:flex-start; padding:120px 8vw 50px; overflow-y:auto; justify-content:flex-start; gap:0; background:var(--bg);}
.menu-overlay a {font-size:clamp(1.5rem,4.4vh,3.3rem); padding:7px 0;}

/* A layered image composition in real CSS perspective. */
.hero {min-height:100svh; padding:0; isolation:isolate;}
.hero .scene__bg {background-size:cover; background-position:center; opacity:1;}
/* The poster is a loading fallback only, never a still layer under the playing video. */
.hero .scene__bg.is-playing {background-image:none!important;}
.hero .scene__bg.is-playing video {opacity:1;}
.hero .scene__bg::after {background:linear-gradient(90deg,rgba(11,18,16,.93),rgba(11,18,16,.80) 36%,rgba(11,18,16,.28) 68%,rgba(11,18,16,.08)),linear-gradient(0deg,var(--bg),transparent 35%);}
.hero-gridlines {position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent calc(50% - .5px),#e3edd709 50%,transparent calc(50% + .5px)); z-index:1;}
.hero .hero-layout {display:grid; grid-template-columns:1fr .96fr; column-gap:7%; align-items:center; padding-top:160px; padding-bottom:32px;}
.hero-copy {min-width:0; position:relative; z-index:4;}
.hero .kicker {margin-bottom:25px; font-size:.75rem;}
.hero h1.display {font-size:clamp(4.5rem,7.5vw,7.05rem); line-height:1.015; letter-spacing:-.015em;}
.hero h1 .reveal-line {padding-bottom:6px; margin-bottom:-6px;}
.hero-signature {margin:25px 0 0; color:var(--cream); font-size:clamp(.94rem,1.3vw,1.15rem); letter-spacing:-.015em;}
.hero__lede {font-size:.89rem; max-width:400px; margin:15px 0 29px; line-height:1.9;}
.hero__cta {gap:23px; flex-wrap:nowrap;}
.hero-project-link {display:inline-flex; align-items:center; gap:12px; color:var(--cream); font-size:.75rem; line-height:1.5; text-decoration:none; max-width:145px;}
.round-arrow {width:42px; height:42px; flex:none; border:1px solid #c2df9b50; border-radius:50%; display:grid; place-items:center; font-size:1rem; transition:transform .4s,background .4s;}
.hero-project-link:hover .round-arrow {transform:translateY(4px); background:#c2df9b15;}
.hero-google {display:inline-flex; align-items:center; gap:14px; margin-top:30px; padding-top:18px; border-top:1px solid var(--line-faint); text-decoration:none; color:var(--cream);}
.hero-google-score {font-size:1.35rem; font-weight:700;}
.hero-google>span:nth-child(2) {display:grid; font-size:.75rem; gap:1px; color:var(--cream-dim);}
.hero-google .google-text {font-size:12px;}
.hero-google>span:last-child {margin-left:15px; color:var(--green-bright);}
.depth-showcase {position:relative; min-width:0; perspective:1300px; margin-top:18px;}
.depth-stage {height:clamp(400px,40vw,545px); position:relative; transform-style:preserve-3d; transform:rotateX(var(--rx,3deg)) rotateY(var(--ry,-9deg)); transition:transform .8s var(--ease); will-change:transform;}
.depth-showcase.is-interacting .depth-stage {transition:transform .14s linear;}
.depth-outline {position:absolute; inset:2% 1% 4% 14%; border:1px solid #a6c9814a; transform:translate3d(30px,-22px,-50px);}
.depth-main {position:absolute; inset:2% 0 4% 9%; margin:0; border:1px solid #dce8d035; border-radius:4px; transform:translateZ(35px); background:#15201a; box-shadow:-25px 30px 70px #0007,2px 0 0 #33482c,5px 1px 0 #1a281c;}
.depth-main>img {width:100%; height:100%; object-fit:cover; object-position:42% center; border-radius:3px; transition:opacity .3s;}
.depth-main>img.is-changing {opacity:0;}
.depth-main::after {content:""; position:absolute; inset:0; border-radius:3px; background:linear-gradient(180deg,transparent 38%,#08120bc9 100%); pointer-events:none;}
.depth-main figcaption {position:absolute; z-index:2; bottom:26px; left:25px; right:50px; display:flex; flex-direction:column; text-shadow:0 1px 8px #0006;}
.stage-eyebrow {font-size:.75rem; text-transform:uppercase; letter-spacing:.16em; color:#d6e5c7;}
.depth-main strong {font-family:var(--display); font-weight:400; text-transform:uppercase; font-size:clamp(1.55rem,2.6vw,2.6rem); letter-spacing:0; line-height:1.15; margin:10px 0;}
.stage-source {font-size:.75rem; color:#e2e8dc; line-height:1.5;}
.stage-source a {color:inherit;}
.stage-source .google-text {font-size:12px; color:#fff;}
.stage-view {position:absolute; top:19px; right:19px; z-index:3; width:42px; height:42px; border:1px solid #fff7; border-radius:50%; color:white; background:#08120b38; backdrop-filter:blur(8px); display:grid; place-items:center; text-decoration:none; font-size:1.15rem; transition:background .3s;}
.stage-view:hover {background:var(--pine);}
/* Keep the foreground photo in the upper image area, clear of the title below. */
.depth-small {position:absolute; left:-7%; top:9%; width:40%; height:28%; margin:0; transform:translateZ(105px) rotate(-8deg); background:var(--bg); border:5px solid #e9eadd; border-radius:2px; box-shadow:0 18px 35px #0007; pointer-events:none;}
.depth-small img {width:100%; height:100%; object-fit:cover;}
.depth-small figcaption {position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,#08120bdd); padding:25px 8px 10px; font-size:.75rem; letter-spacing:.06em; color:#fff;}
.depth-seal {position:absolute; right:-7%; top:-5%; width:123px; height:123px; border:1px solid #c6ddb478; border-radius:50%; background:#17291fed; box-shadow:0 15px 30px #0003; transform:translateZ(90px) rotate(10deg); display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center;}
.depth-seal strong {font-family:var(--display); font-weight:400; font-size:2.5rem; line-height:1; color:var(--green-bright); display:flex; align-items:baseline; gap:4px;}
.depth-seal strong span {font-family:var(--body); text-transform:uppercase; font-size:.75rem; letter-spacing:.06em;}
.depth-seal>span {font-size:.75rem; line-height:1.6; color:var(--cream-dim); margin-top:8px;}
.depth-orbit {position:absolute; width:120%; aspect-ratio:1; border:1px solid #aac7841c; border-radius:50%; left:-6%; top:-6%; transform:rotateX(50deg) rotate(-32deg); pointer-events:none;}
.depth-orbit::before {content:""; position:absolute; inset:-17px; border:1px solid #aac7840b; border-radius:50%;}
.stage-toolbar {display:flex; justify-content:space-between; align-items:center; position:relative; margin:18px 0 0 11%; font-size:.75rem; color:var(--cream-faint); gap:12px;}
.stage-toolbar>span {display:flex; align-items:center; gap:8px;}
.stage-dot {width:4px; height:4px; border-radius:50%; background:var(--green-bright);}
.stage-controls {display:flex; gap:3px;}
.stage-controls button {padding:12px 9px; border:0; background:transparent; border-bottom:1px solid #a6c98135; color:var(--cream-faint); cursor:pointer; font-size:.75rem;}
.stage-controls button.is-active {color:var(--green-bright); border-color:var(--green-bright);}
.hero-bottom {grid-column:1/-1; display:flex; justify-content:space-between; gap:24px; margin-top:72px; padding-top:24px; border-top:1px solid var(--line-faint); font-size:.75rem; color:var(--cream-faint); letter-spacing:.02em;}
.hero-bottom a {color:var(--cream); text-decoration:none; letter-spacing:.07em;}
.hero-bottom a span {margin-left:12px; color:var(--green-bright);}

/* A restrained moving typography band links the first impression to the work. */
.craft-band {overflow:hidden; background:var(--green-bright); color:#183019; padding:21px 0; border-block:1px solid #c2df9b;}
.craft-track {display:flex; gap:42px; align-items:center; width:max-content; animation:craftLoop 45s linear infinite; font-size:.81rem; letter-spacing:.06em; text-transform:uppercase; font-weight:700;}
.craft-track i {font-size:1.55rem; line-height:1; font-style:normal; font-weight:400;}
@keyframes craftLoop {to {transform:translateX(-50%);}}

/* Real project imagery leads the story. */
.projects-scene {display:block; background:#101b16;}
.gallery-topline {display:flex; justify-content:space-between; align-items:center; margin-top:48px;}
.google-text {font-family:var(--body); font-size:14px; color:#fff; font-weight:400; font-style:normal; text-transform:none; letter-spacing:normal; white-space:nowrap;}
.gallery-controls {display:flex; align-items:center; gap:10px;}
.gallery-controls>span {font-size:.75rem; color:var(--cream-dim); margin-right:12px;}
.circle-control {width:44px; height:44px; border:1px solid var(--line-faint); border-radius:50%; background:transparent; color:var(--cream); cursor:pointer; transition:background .3s,border-color .3s;}
.circle-control:hover:enabled {background:#c2df9b1a; border-color:var(--green-bright);}
.circle-control:disabled {opacity:.25; cursor:default;}
.gallery-strip {gap:26px; padding:30px max(22px,calc((100vw - 1440px)/2 + 80px)) 12px; scroll-padding-inline:max(22px,5vw); scroll-snap-type:x mandatory; min-height:0;}
.gallery-strip:empty {display:none;}
.gallery-card {width:clamp(290px,38vw,520px); border-radius:3px; border:1px solid #cfdfbe2b; background:#0b1210; cursor:zoom-in;}
.gallery-card:nth-child(even) {width:clamp(275px,30vw,410px);}
.gallery-card img {height:430px; transform:none; filter:none; transition:transform .8s var(--ease);}
.gallery-card:hover img {transform:scale(1.045); filter:none;}
.gallery-card figcaption {font-family:var(--body); font-size:.75rem; text-transform:none; letter-spacing:0; text-shadow:none; padding:70px 23px 22px; background:linear-gradient(transparent,#071009e8); display:flex; flex-direction:column; gap:4px; pointer-events:none;}
.gallery-card figcaption strong {font-size:.85rem; font-weight:500;}
.gallery-card figcaption .photo-count {font-size:.75rem; color:#d9e9cc; letter-spacing:.12em; text-transform:uppercase;}
.gallery-card .gallery-expand {position:absolute; right:16px; top:16px; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; border:1px solid #fff7; background:#0b121066; color:white; pointer-events:none;}
.gallery-note {font-size:.75rem; text-transform:none; letter-spacing:0; margin:18px 0 0; padding:0;}
.google-state {margin:30px 0 0; border:1px solid var(--line-faint); padding:35px; border-radius:3px; color:var(--cream-dim); font-size:.85rem; background:#142119;}
.google-state p {margin:10px 0 0;}
.google-state .btn-line {background:transparent; border:0; border-bottom:1px solid var(--line-green); cursor:pointer; margin-top:8px;}
.loading-line {display:block; width:90px; height:2px; background:#ffffff14; overflow:hidden;}
.loading-line::after {content:""; display:block; height:2px; background:var(--green-bright); animation:loadSweep 1.4s ease infinite; transform-origin:left;}
@keyframes loadSweep {0% {transform:translateX(-100%)} 100% {transform:translateX(100%)}}
.google-state.is-error .loading-line {display:none;}

/* Services keep their scope and gain an editorial, tactile treatment. */
#leistungen .lede {max-width:560px;}
.service-grid {gap:22px; border:0; background:none; margin-top:54px;}
.service {position:relative; padding:0; border:1px solid var(--line-faint); border-radius:3px; gap:0; background:#142119; backdrop-filter:none; overflow:hidden; transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .45s var(--ease),border-color .35s,box-shadow .35s;}
.service:hover {background:#142119; border-color:var(--line-green); box-shadow:0 16px 40px #0004;}
.service::after {content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(500px circle at var(--light-x,50%) var(--light-y,0%),#d8ecc90b,transparent 60%);}
.service-media {height:205px; overflow:hidden; position:relative; background:#1c2b1f;}
.service-media img {width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); filter:saturate(.85);}
.service:hover .service-media img {transform:scale(1.06);}
.service-media>span {position:absolute; bottom:9px; left:12px; font-size:.75rem; color:#fff; background:#07100994; padding:3px 7px; border-radius:2px;}
.service-body {padding:30px; display:flex; flex-direction:column; gap:17px; flex:1; position:relative;}
.service-index {position:absolute; top:29px; right:24px; color:#c2df9b70; font-size:.75rem;}
.service h3 {font-family:var(--body); text-transform:none; font-size:1.04rem; line-height:1.4; letter-spacing:-.02em; font-weight:700; padding-right:15px;}
.service p {font-size:.8rem; line-height:1.85;}
.service svg {width:30px; height:30px; filter:none; margin-bottom:4px;}
.service-featured svg {display:none;}
.service-featured h3 {padding-right:20px;}
.service__tags {gap:6px;}
.service__tags li {font-size:.75rem; text-transform:none; letter-spacing:0; padding:3px 9px; font-weight:400; border-radius:3px;}
.service-link {font-size:.75rem; font-weight:700; color:var(--cream); padding-top:23px; margin-top:auto; text-decoration:none; display:flex; justify-content:space-between; align-items:center;}
.service-link span {font-size:1.15rem; color:var(--green-bright);}
.service-compact {background:#101a15;}
.az-block {margin-top:38px; border-block:1px solid var(--line-faint);}
.az-title {margin:0; padding:23px 0; font-size:.75rem; letter-spacing:.13em;}
summary.az-title {cursor:pointer; display:flex; justify-content:space-between; list-style:none;}
summary.az-title::-webkit-details-marker {display:none;}
summary.az-title::after {display:none;}
summary.az-title span {font-size:1.15rem; transition:transform .3s;}
.az-block[open] summary.az-title span {transform:rotate(45deg);}
.az-content {padding:4px 0 28px;}
.az-list {grid-template-columns:repeat(3,1fr);}
.az-list li {font-size:.78rem; padding-block:8px;}
.az-list li::before {width:3px; height:3px; box-shadow:none;}

/* Changes of pace: full bleed photography and a clear process. */
.image-break {height:430px; background:url('hero-poster.jpg') center 56% / cover; isolation:isolate;}
.image-break::before {inset:0; width:auto; height:auto; transform:none; border:0; border-radius:0; background:#06140bab; box-shadow:none;}
.image-break::after {display:none;}
.image-break__caption .display {font-size:clamp(2.3rem,5.3vw,5rem); max-width:850px; line-height:1.12;}
#vorher-nachher .ba {border-radius:4px; margin-top:45px; box-shadow:0 30px 80px #0005; max-width:1100px;}
.ba__label {letter-spacing:.12em; font-size:.75rem;}
.ba-note {font-size:.75rem; letter-spacing:.04em; text-transform:none;}
.ba:focus-within {outline:2px solid var(--green-bright); outline-offset:5px;}
.steps-grid {background:none; border:0; gap:0; margin-top:54px;}
.step {background:none; border-top:1px solid var(--line-green); border-right:1px solid var(--line-faint); padding:32px 28px 0; backdrop-filter:none;}
.step:first-child {padding-left:0;}
.step:last-child {border-right:0;}
.step:hover {background:none; box-shadow:none;}
.step__num {color:var(--green-bright); font-size:3.4rem; margin-bottom:38px;}
.step h3 {font-family:var(--body); text-transform:none; font-size:.95rem; letter-spacing:0; font-weight:700;}
.step p {font-size:.8rem; line-height:1.85;}
#ueber-uns {background:#15231a;}
#ueber-uns .scene__bg {background:#15231a;}
.about-grid {gap:80px;}
.about-grid .lede {font-size:.93rem;}
.fleet-list {margin-top:15px;}
.fleet-list li {font-size:.77rem; gap:24px;}
.fleet-list li span {max-width:215px;}
.fleet-list li b {font-family:var(--body); font-size:.84rem; text-transform:none; letter-spacing:0; font-weight:700;}
.stats-row {margin-top:62px; border-block:1px solid var(--line-faint); padding-block:38px; gap:0; text-align:left;}
.stat {padding-left:32px; border-left:1px solid var(--line-faint);}
.stat:first-child {padding-left:0; border:0;}
.stat__num {font-size:clamp(3.5rem,5.5vw,5rem);}
.stat__label {font-size:.75rem; letter-spacing:.05em; text-transform:none; max-width:170px;}
.benefit-row {border:0; background:none; gap:48px; margin-top:48px;}
.benefit {padding:0; background:none;}
.benefit h3 {font-family:var(--body); font-weight:700; font-size:.9rem; text-transform:none; letter-spacing:0;}
.benefit p {font-size:.8rem;}
.env-grid {gap:70px;}
.area-chips {gap:7px; margin-top:28px;}
.area-chips li {font-size:.75rem; letter-spacing:0; text-transform:none; padding:8px 13px; font-weight:400;}
.map-shield {min-height:350px; padding:35px; border-radius:4px; background:radial-gradient(ellipse at 50% 0%,#28452a,#112016 75%);}
.map-shield h3 {font-family:var(--body); font-weight:700; text-transform:none; font-size:1.15rem;}
.map-shield p {color:var(--cream-dim); font-size:.79rem;}
#gebiet iframe {filter:none; height:350px;}

/* Visible provenance and readable, expandable customer reviews. */
.reviews-scene {background:#101b16; display:block;}
.reviews-layout {display:grid; grid-template-columns:300px minmax(0,1fr); gap:60px; align-items:start; margin-top:60px;}
.rating-hero {text-align:left; margin:0; max-width:none; position:sticky; top:120px; border:1px solid var(--line-faint); padding:28px; background:#17291d; border-radius:4px;}
.rating-hero .score {font-size:5.6rem; color:var(--cream); text-shadow:none; margin-top:28px;}
.rating-hero .score small {font-family:var(--body); font-size:.17em; letter-spacing:0;}
.gstars {font-size:1.2rem; text-shadow:none; letter-spacing:.12em; color:var(--green-bright); margin-top:12px;}
.rating-src {margin-top:14px; font-size:.75rem; letter-spacing:0; text-transform:none; color:var(--cream-dim);}
.reviews-note {font-size:.75rem; text-align:left; margin-top:16px; text-transform:none; letter-spacing:0; line-height:1.8;}
.rating-hero .btn-line {margin-top:18px;}
.review-write {display:block; font-size:.75rem; color:var(--cream-dim); margin-top:16px; text-decoration:none;}
.reviews-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:0; max-width:none;}
.review-card {background:#16231b; padding:26px; border-radius:4px; box-shadow:none; backdrop-filter:none;}
.review-card:first-child {grid-column:1/-1;}
.review-card:first-child .review-card__text {font-size:1.05rem; line-height:1.9; color:var(--cream);}
.review-card:hover {box-shadow:none; transform:translateY(-3px);}
.review-card__avatar {width:38px; height:38px; border:0;}
.review-card__name {font-size:.79rem;}
.review-card__date {font-size:.75rem; letter-spacing:0; text-transform:none;}
.review-card__stars {text-shadow:none; font-size:.76rem; letter-spacing:.1em; margin-bottom:15px;}
.review-card__text {font-size:.81rem; line-height:1.9; white-space:pre-line; -webkit-line-clamp:4;}
.review-card.is-expanded .review-card__text {-webkit-line-clamp:unset; display:block;}
.review-card__links {display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:17px;}
.review-card__links a,.review-card__links button {font-size:.75rem; background:none; padding:0; border:0; cursor:pointer; color:var(--cream-dim); text-decoration:underline; text-underline-offset:3px;}
.review-translation {font-size:.75rem; color:var(--cream-faint); margin:10px 0 0;}
.reviews-layout .google-state {margin:0;}

/* Contact stays practical: one form, a clear handoff to email. */
.faq-wrap {max-width:920px; margin-top:40px;}
.faq-wrap details {border:0; border-bottom:1px solid var(--line-faint); border-radius:0; background:none; margin:0;}
.faq-wrap summary {font-family:var(--body); text-transform:none; font-size:.91rem; font-weight:500; letter-spacing:0; padding:24px 0;}
.faq-wrap details[open] summary {color:var(--cream);}
.faq-body {padding:0 35px 26px 0; font-size:.84rem; max-width:770px;}
#anfrage {padding-block:125px;}
.booking-grid {grid-template-columns:1fr 1fr; gap:90px;}
.booking-grid h2.display {font-size:clamp(3.6rem,6.3vw,6.1rem);}
.booking-grid .lede {font-size:.87rem;}
.contact-list {gap:0; margin-top:33px;}
.contact-list a {border:0; border-bottom:1px solid var(--line-faint); border-radius:0; padding:22px 0; background:none; font-size:.85rem; letter-spacing:0; text-transform:none;}
.contact-list a:hover {box-shadow:none; background:none;}
.contact-list a small {font-size:.75rem; letter-spacing:0; margin-top:6px;}
.form-panel {background:#f0f0e4; color:#223321; border:1px solid #fff3; padding:38px; border-radius:4px; box-shadow:0 22px 65px #0003; backdrop-filter:none;}
.form-eyebrow {font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 10px; color:#536347; font-weight:700;}
.form-panel h3 {font-size:1.5rem; font-weight:700; line-height:1.35; letter-spacing:-.04em; margin:0 0 10px;}
.form-intro {font-size:.76rem; color:#5b6654; margin:0 0 28px;}
.form-grid {gap:18px;}
.form-field {gap:6px;}
.form-field label {color:#49583f; font-size:.75rem; letter-spacing:0; text-transform:none; font-weight:700;}
.form-field input,.form-field textarea,.form-field select {background:#fff7; color:#223321; border:1px solid #82967466; border-radius:3px; padding:12px 13px; font-size:.82rem; font-weight:400;}
.form-field input::placeholder,.form-field textarea::placeholder {color:#6c7863;}
.form-field select option {background:#f0f0e4; color:#223321;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus {box-shadow:0 0 0 2px #60894d33; border-color:#60894d;}
.form-panel .btn-solid {background:#213d27; border-color:#213d27; color:#f2f1e8; padding:17px 19px; gap:12px; margin-top:22px; font-size:.76rem;}
.form-panel .btn-solid:hover {background:#2e5035;}
.form-note,.form-note a {color:#57644f; font-size:.75rem; line-height:1.85;}
.form-panel :focus-visible {outline-color:#3e6a38;}
.form-feedback {font-size:.77rem; padding:12px; border-left:2px solid #60894d; background:#d8e4cb; color:#223321;}
.footer-scene {padding:80px 0 28px; background:#080f0c;}
.footer-scene .scene__bg {background:#080f0c;}
.footer-logo {width:130px; padding:10px; border-radius:3px; box-shadow:none; margin-bottom:30px;}
.footer-links {flex-direction:row; justify-content:center; gap:35px; flex-wrap:wrap; margin-top:35px;}
.footer-links a {font-family:var(--body); font-size:.83rem; text-transform:none; letter-spacing:0;}
.footer-links a::after {display:none;}
.footer-meta {font-size:.75rem; letter-spacing:0; margin-top:30px;}
.legal-wrap {max-width:none; margin-top:50px; display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:20px;}
.legal-wrap details {border:1px solid var(--line-faint); background:none;}
.legal-wrap summary {font-family:var(--body); font-size:.75rem; text-transform:none; letter-spacing:0;}
.legal-body {font-size:.75rem;}
.legal-body h3 {font-size:.83rem;}
.footer-wordmark {font-family:var(--display); font-size:clamp(5rem,20.8vw,20rem); line-height:1.08; letter-spacing:-.025em; color:#233a28; text-align:center; margin:35px 0 0; white-space:nowrap; overflow:hidden;}
.footer-wordmark span {color:#bbd49a;}
.footer-small {margin-top:15px; padding-top:24px; font-size:.75rem; letter-spacing:0;}
.sticky-cta {border-radius:4px; background:var(--green-bright); font-size:.76rem; text-transform:none; letter-spacing:0; padding:16px; bottom:calc(12px + env(safe-area-inset-bottom)); box-shadow:0 7px 30px #0008;}
body.menu-open .sticky-cta,body.modal-open .sticky-cta {visibility:hidden;}

/* Native modal contains full image, author links and the original source. */
.lightbox {inset:0; width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; background:#071009f5; padding:70px 85px 75px; color:var(--cream); visibility:visible; opacity:1; overflow:auto;}
.lightbox:not([open]) {display:none;}
.lightbox[open] {display:flex; align-items:center; justify-content:center;}
.lightbox::backdrop {background:#071009ed; backdrop-filter:blur(12px);}
.lightbox figure {width:100%; display:flex; align-items:center; flex-direction:column;}
.lightbox img {max-height:72dvh; max-width:100%; object-fit:contain; box-shadow:none; border:0; border-radius:2px;}
.lightbox figcaption {position:static; font-size:.75rem; letter-spacing:0; text-transform:none; margin-top:17px;}
.lb-attribution {display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 18px; font-size:.75rem; color:var(--cream-dim); padding-top:6px;}
.lb-attribution a {color:var(--cream-dim);}
.lb-attribution img {height:25px; width:25px; border-radius:50%;}
.lb-btn {width:44px; height:44px; background:#102016;}

/* Progressive motion: content is present even if scripts are unavailable. */
.reveal {opacity:1; transform:none;}
.reveal-line>span {transform:none;}
.motion-ready .reveal:not(.is-visible) {opacity:0; transform:translateY(32px);}
.motion-ready .reveal-line:not(.is-visible)>span {transform:translateY(115%);}
.motion-ready .reveal {transition:opacity .85s var(--ease),transform .85s var(--ease);}
.motion-ready .reveal-line>span {transition:transform 1.1s var(--ease);}
.motion-ready .d1 {transition-delay:.1s;}.motion-ready .d2 {transition-delay:.18s;}.motion-ready .d3 {transition-delay:.25s;}.motion-ready .d4 {transition-delay:.32s;}
.motion-paused *, .motion-paused *::before,.motion-paused *::after {animation-play-state:paused!important; scroll-behavior:auto!important;}
.motion-paused .reveal,.motion-paused .reveal-line>span {opacity:1!important; transform:none!important; transition:none!important;}
.motion-paused .depth-stage {transform:rotateX(3deg) rotateY(-9deg)!important;}
.motion-paused .service {transform:none!important;}
.motion-paused .cursor-glow {display:none;}

@media (min-width:1600px) {.hero .hero-layout {padding-top:180px;} .hero-bottom {margin-top:80px;} .depth-stage {height:565px;}}
@media (max-width:1200px) {
  .desktop-nav {gap:19px;}.brand-text {display:none;}.hero .hero-layout {column-gap:6%;}
  .hero h1.display {font-size:7.8vw;}.hero__cta {gap:16px;}.hero-project-link {font-size:.75rem;max-width:120px;}
  .depth-seal {width:106px;height:106px;right:-2%;}.depth-seal strong {font-size:2rem;}
  .service-body {padding:24px;}.service-index {right:18px;top:25px;}.service h3 {font-size:.95rem;}
  .reviews-layout {grid-template-columns:265px minmax(0,1fr);gap:30px;}.booking-grid {gap:50px;}
}
@media (max-width:1020px) {
  .scene {padding-block:90px;}.desktop-nav {display:none;}.burger {display:flex;}.brand-text {display:block;}
  .hero .hero-layout {padding-top:135px;}.hero h1.display {font-size:8vw;}.hero__cta {flex-wrap:wrap;gap:18px;}
  .hero-project-link {max-width:none;}.hero__lede {font-size:.8rem;}.hero-signature {font-size:.9rem;}
  .depth-stage {height:410px;}.depth-small {left:-3%;width:40%;}.depth-main {left:8%;}.depth-seal {top:-4%;}
  .stage-toolbar>span {font-size:.75rem;}.hero-bottom {margin-top:52px;}.hero-bottom-location {display:none;}
  .section-heading {gap:35px;}.section-aside {max-width:290px;font-size:.8rem;}
  .service-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}.service-media {height:165px;}
  .service-body {padding:22px 18px;}.service p {font-size:.75rem;}.service h3 {font-size:.88rem;}.service-index {top:8px;right:10px;font-size:.75rem;}
  .service__tags li {font-size:.75rem;}.about-grid {grid-template-columns:1fr 1fr;gap:40px;}.benefit-row {grid-template-columns:repeat(3,1fr);gap:25px;}
  .stats-row {grid-template-columns:repeat(4,1fr);gap:0;}.stat {padding-left:20px;}.stat__num {font-size:3.5rem;}
  .steps-grid {grid-template-columns:repeat(4,1fr);}.step {padding-inline:20px;}.step p {font-size:.75rem;}
  .reviews-grid {grid-template-columns:1fr;}.review-card:first-child {grid-column:auto;}.review-card:first-child .review-card__text {font-size:.86rem;}
  .env-grid {grid-template-columns:1fr 1fr;gap:35px;}.booking-grid {grid-template-columns:1fr 1fr;gap:35px;}.form-panel {padding:28px;}.form-grid {grid-template-columns:1fr;}
  .gallery-card img {height:360px;}
}
@media (max-width:760px) {
  html {scroll-padding-top:90px;}.wrap {padding-inline:24px;}.site-header {padding:12px 20px;gap:10px;}
  .hero .scene__bg::after {background:linear-gradient(90deg,rgba(11,18,16,.88),rgba(11,18,16,.60)),linear-gradient(0deg,var(--bg),transparent 45%);}
  .brand {gap:10px;}.brand .logo-plate img {width:54px;}.brand-text {font-size:.75rem;}.header-right {gap:8px;}.header-contact {display:none;}
  .motion-toggle {width:36px;height:36px;}.burger {width:38px;height:38px;}
  .scene {padding-block:74px;}.scene h2.display {font-size:clamp(2.6rem,9.6vw,4.2rem);}.kicker {font-size:.75rem;margin-bottom:22px;letter-spacing:.14em;}
  .hero .hero-layout {grid-template-columns:1fr; padding-top:125px; padding-bottom:26px;}
  .hero h1.display {font-size:clamp(4.2rem,16.5vw,7.4rem); line-height:1.01;}
  .hero-copy {max-width:570px;}.hero .kicker {font-size:.75rem;}.hero-signature {font-size:1rem;margin-top:25px;}
  .hero__lede {max-width:360px;font-size:.85rem;margin-top:15px;margin-bottom:24px;}
  .hero__cta {gap:23px;flex-wrap:nowrap;}.hero-project-link {font-size:.75rem;max-width:145px;}.hero .btn-solid {padding:17px 20px;font-size:.75rem;gap:18px;}
  .hero-google {margin-top:22px;padding-top:16px;}.depth-showcase {margin:55px auto 0;width:100%;max-width:480px;padding:0 14px 0 8px;}
  .depth-stage {height:470px;}.depth-main {inset:0 0 5% 10%;}.depth-small {left:-2%;top:8%;width:42%;height:28%;}
  .depth-seal {width:106px;height:106px;right:-3%;top:-4%;}.depth-main strong {font-size:2.1rem;}
  .depth-main figcaption {left:23px;bottom:25px;}.stage-toolbar {margin-top:8px;}.stage-toolbar>span {font-size:.75rem;}
  .hero-bottom {margin-top:35px;font-size:.75rem;gap:15px;}.hero-bottom>a {white-space:nowrap;}
  .craft-band {padding-block:16px;}.craft-track {gap:28px;font-size:.75rem;}.craft-track i {font-size:1.2rem;}
  .section-heading {display:block;}.section-aside {max-width:440px;margin-top:26px;font-size:.85rem;}.section-aside p {margin-bottom:13px;}
  .gallery-topline {margin-top:30px;}.gallery-strip {padding:24px 24px 10px;gap:16px;}
  .gallery-card,.gallery-card:nth-child(even) {width:79vw;}.gallery-card img {height:400px;}
  .google-state {padding:26px;font-size:.8rem;}.service-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:38px;}
  .service-body {padding:26px 22px;}.service h3 {font-size:.95rem;}.service p {font-size:.77rem;}
  .service-featured:nth-child(3) {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;}.service-featured:nth-child(3) .service-media {height:100%;min-height:250px;}
  .service-compact:last-child {grid-column:1/-1;}.service-compact:last-child .service-body {display:grid;grid-template-columns:1fr 1fr;}.service-compact:last-child .service-body svg {grid-column:1/-1;}
  .service-compact:last-child .service-body p {grid-row:2/4;grid-column:2;}.service-compact:last-child .service-link {grid-column:1/-1;}
  .az-list {grid-template-columns:repeat(2,1fr);gap:7px 20px;}.az-list li {font-size:.75rem;}.az-title {font-size:.75rem;}
  .image-break {height:330px;}.image-break__caption .display {font-size:clamp(2.2rem,7.8vw,3.6rem);}
  .steps-grid {grid-template-columns:1fr 1fr;gap:36px 0;margin-top:40px;}.step {padding:24px 23px 0;}.step:nth-child(2n) {border-right:0;}.step:nth-child(3) {padding-left:0;}
  .step__num {font-size:3rem;margin-bottom:24px;}.step p {font-size:.78rem;}
  .about-grid {grid-template-columns:1fr;gap:30px;}.about-grid .lede {font-size:.88rem;}.fleet-list li span {max-width:260px;}
  .stats-row {grid-template-columns:1fr 1fr;gap:32px 0;padding-block:32px;margin-top:42px;}.stat {padding-left:25px;}.stat:nth-child(3) {border:0;padding-left:0;}
  .stat__num {font-size:3.7rem;}.stat__label {font-size:.75rem;}.benefit-row {grid-template-columns:1fr;gap:26px;}.benefit h3 {font-size:.92rem;}.benefit p {font-size:.82rem;}
  .env-grid {grid-template-columns:1fr;gap:32px;}.map-shield {min-height:300px;}.area-chips li {font-size:.75rem;}
  .reviews-layout {grid-template-columns:1fr;gap:24px;margin-top:38px;}.rating-hero {position:static;padding:26px;}.rating-hero .score {font-size:5rem;margin-top:17px;}
  .reviews-grid {grid-template-columns:1fr;}.review-card {padding:25px;}.review-card__name {font-size:.84rem;}.review-card__text {font-size:.86rem;}
  .reviews-note {max-width:370px;}.review-card__links a,.review-card__links button {font-size:.75rem;padding-block:6px;}
  .booking-grid {grid-template-columns:1fr;gap:38px;}#anfrage {padding-block:80px;}.booking-grid h2.display {font-size:4rem;}.contact-list a {font-size:.93rem;}
  .form-panel {padding:30px 24px;}.form-field input,.form-field select,.form-field textarea {font-size:16px;}.form-field label {font-size:.75rem;}.form-intro {font-size:.79rem;}.form-note {font-size:.75rem;}
  .legal-wrap {grid-template-columns:1fr;gap:0;}.footer-links {gap:18px 26px;}.footer-meta {font-size:.75rem;}.footer-small {justify-content:center;text-align:center;line-height:1.9;}
  .footer-scene {padding-bottom:105px;}.footer-wordmark {font-size:21vw;margin-top:25px;}.sticky-cta {display:block;}
  .lightbox {padding:75px 22px 90px;}.lightbox img {max-height:66dvh;}.lb-prev,.lb-next {top:auto;bottom:20px;transform:none;}.lb-prev {left:calc(50% - 54px);}.lb-next {right:calc(50% - 54px);}
  .lb-close {top:18px;right:18px;}.lightbox figcaption {font-size:.75rem;}.lb-attribution {font-size:.75rem;gap:8px 12px;}
}
@media (max-width:420px) {
  .wrap {padding-inline:22px;}.brand-text {font-size:.75rem;}.hero h1.display {font-size:18vw;}.hero__cta {gap:16px;}.hero-project-link {font-size:.75rem;gap:9px;}.round-arrow {width:36px;height:36px;}
  .hero .btn-solid {padding:16px 17px;gap:13px;font-size:.75rem;}.depth-stage {height:390px;}.depth-main strong {font-size:1.8rem;}.depth-seal {width:90px;height:90px;}.depth-seal strong {font-size:1.75rem;}.depth-seal>span {font-size:.75rem;}
  .stage-toolbar>span {font-size:.75rem;}.stage-controls button {padding-inline:8px;}.hero-bottom {flex-wrap:wrap;gap:10px;}.service-grid {grid-template-columns:1fr;}
  .service-featured:nth-child(3) {display:flex;grid-column:auto;}.service-featured:nth-child(3) .service-media {height:205px;min-height:0;}.service-media {height:205px;}
  .service-compact:last-child .service-body {display:flex;}.service-body {padding:26px;}.service p {font-size:.82rem;}.service h3 {font-size:1.04rem;}
  .gallery-card img {height:350px;}.az-list {grid-template-columns:1fr 1fr;gap:5px 12px;}.az-list li {font-size:.75rem;gap:8px;}.hero-google-score {font-size:1.2rem;}
}
@media (prefers-reduced-motion:reduce) {
  .craft-track,.glow-orb {animation:none;}.depth-stage {transform:rotateY(-5deg);transition:none;}.service {transform:none!important;}.cursor-glow {display:none;}
  .reveal,.reveal-line>span {opacity:1!important;transform:none!important;}.scene__bg {transform:none!important;}.scene__bg video {display:none;}
}

/* Legible type at every breakpoint: 16px copy, 14px controls, 12px metadata. */
.lede,.hero__lede,.service p,.step p,.about-grid .lede,.benefit p,.section-aside,.booking-grid .lede,.faq-body,.review-card__text,.review-card:first-child .review-card__text,.google-state {font-size:1rem;}
.desktop-nav a,.header-contact,.btn-solid,.btn-line,.hero-project-link,.service-link,.form-field label,.form-intro,.review-card__name,.review-card__links a,.review-card__links button,.review-write,.rating-src,.area-chips li,.az-list li,.fleet-list li,.contact-list a small,.faq-wrap summary,.footer-links a {font-size:.875rem;}
.form-panel .btn-solid,.hero .btn-solid {font-size:.875rem;}
.service h3,.step h3,.benefit h3 {font-size:1.0625rem;}
.form-field input,.form-field textarea,.form-field select {font-size:1rem;}
.form-note,.form-note a,.legal-body,.legal-wrap summary,.footer-meta,.footer-small,.form-eyebrow,.stat__label,.service__tags li,.stage-eyebrow,.stage-source,.stage-toolbar,.stage-toolbar>span,.stage-controls button,.stage-seal span {font-size:.75rem;}
.stage-source {max-width:100%;}.stage-source a {overflow-wrap:anywhere;}
.stage-toolbar {margin-left:5%;}.stage-toolbar>span {max-width:205px;line-height:1.5;}
.hero-project-link {max-width:185px;}.hero__cta {flex-wrap:wrap;}
.desktop-nav {gap:24px;}.brand-text {font-size:.75rem;letter-spacing:.045em;}
.contact-list a {overflow-wrap:anywhere;}.service-body,.booking-grid>* {min-width:0;}
.footer-small {line-height:1.8;}.motion-toggle:disabled {opacity:.5;cursor:default;}
@media (max-width:1200px) {.desktop-nav {gap:18px;}.brand-text {display:none;}}
@media (max-width:1020px) {
  .brand-text {display:block;}.hero__cta {gap:18px;}.hero-project-link {font-size:.8125rem;}
  .service-grid {grid-template-columns:repeat(2,minmax(0,1fr));}.service-media {height:210px;}
  .service-featured:nth-child(3) {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;}.service-featured:nth-child(3) .service-media {height:100%;min-height:260px;}
  .service-compact:last-child {grid-column:1/-1;}.service-compact:last-child .service-body {max-width:650px;}
}
@media (max-width:760px) {
  .hero h1.display {font-size:clamp(4.2rem,16.5vw,7.4rem);}.hero-project-link {font-size:.8125rem;}.hero__cta {gap:18px;}
  .stage-toolbar {flex-wrap:wrap;gap:6px;}.stage-toolbar>span {max-width:190px;}
  .depth-main strong {font-size:1.75rem;}.depth-main figcaption {left:20px;right:20px;bottom:20px;}
  .stage-source {font-size:.75rem;}.depth-small figcaption {font-size:.75rem;line-height:1.4;}
  .review-card__date,.reviews-note,.gallery-note {font-size:.75rem;}.footer-wordmark {margin-top:25px;}
}
@media (max-width:640px) {
  .service-grid {grid-template-columns:1fr;}.service-featured:nth-child(3) {display:flex;grid-column:auto;}.service-featured:nth-child(3) .service-media {height:220px;min-height:0;}
  .service-compact:last-child .service-body {display:flex;}.service-media {height:220px;}.service-body {padding:28px;}
  .az-list {grid-template-columns:1fr;}.steps-grid {grid-template-columns:1fr;gap:35px;}.step,.step:nth-child(n) {border-right:0;padding:25px 0 0;}
  .step__num {margin-bottom:18px;}.hero__lede {max-width:430px;}.hero-bottom {flex-wrap:wrap;}
}
@media (max-width:420px) {.brand-text {display:none;}.depth-showcase {padding-right:10px;}.stage-toolbar>span {max-width:165px;font-size:.75rem;}.depth-small {top:6%;}.depth-main strong {font-size:1.6rem;}}
