@font-face{font-family:"Open Sans";src:url(/assets/fonts/opensans.woff2) format("woff2");font-weight:300 800;font-display:swap}
@font-face{font-family:Mulish;src:url(/assets/fonts/mulish.woff2) format("woff2");font-weight:200 1000;font-display:swap}
:root{--brown:#512900;--brown-2:#664a2e;--taupe:#ab8f72;--beige:#f2e6da;--bg:#f5f7fa;--ink:#232323;--radius:6px;--shadow:0 8px 30px rgba(40,20,0,.12);--head:"Open Sans",system-ui,sans-serif;--body:Mulish,"Open Sans",system-ui,sans-serif;--hh:80px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:130px;-webkit-text-size-adjust:100%}
body{margin:0;font:400 1.0625rem/1.6 var(--body);color:var(--ink);background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:var(--brown);text-underline-offset:3px}
a:hover{color:var(--brown-2)}
:focus-visible{outline:3px solid var(--taupe);outline-offset:3px;border-radius:4px}
.container{width:min(1160px,100% - 2rem);margin-inline:auto}
.narrow{width:min(900px,100% - 2rem)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:0;background:var(--brown);color:#fff;padding:.6rem 1rem;z-index:100}
.skip-link:focus{left:0}
h1,h2,h3{font-family:var(--head);color:var(--brown);margin:0 0 .6em;line-height:1.2;text-wrap:balance;hyphens:manual;overflow-wrap:break-word}
h2{font-weight:700;font-size:clamp(1.8rem,3.8vw,2.7rem);text-transform:uppercase;letter-spacing:.045em}
h3{font-weight:400;font-size:1.6rem}
p{margin:0 0 1em}
.section-title{text-align:center;margin-bottom:2.6rem;color:var(--brown)}
.section-title::after,.job-title::after,.contact h2::after,.page-head h1::after{content:"";display:block;width:64px;height:4px;margin:1rem auto 0;border-radius:4px;background:linear-gradient(90deg,var(--taupe),var(--brown));transform-origin:center;transition:transform .8s cubic-bezier(.2,.7,.2,1) .25s}
.job-title::after,.contact h2::after,.page-head h1::after{margin-left:0;transform-origin:left}
.js .section-title:not(.is-in)::after,.js .job-title:not(.is-in)::after,.js .contact h2:not(.is-in)::after{transform:scaleX(0)}
.btn{display:inline-block;background:var(--brown);color:#fff;border:0;padding:.85rem 1.7rem;border-radius:999px;font:600 .95rem/1.2 var(--head);text-decoration:none;cursor:pointer;box-shadow:0 4px 14px rgba(81,41,0,.25);transition:background .2s,transform .2s}
.btn:hover{background:var(--brown-2);color:#fff;transform:translateY(-1px)}
.btn-taupe{background:#86694b}
.btn-taupe:hover{background:#6f563c}
/* Topbar + Kopf */
.site-top{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 0 0 rgba(0,0,0,0);transition:box-shadow .2s}
.site-top.is-scrolled{box-shadow:0 4px 18px rgba(40,20,0,.14)}
.topbar{background:var(--beige);color:var(--brown);font:400 .88rem var(--head);display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s ease}
.topbar-in{display:flex;flex-wrap:wrap;gap:.2rem 2.4rem;align-items:center;justify-content:flex-end;padding:.5rem 0;overflow:hidden;min-height:0}
.site-top.top-hidden .topbar{grid-template-rows:0fr}
.site-top.top-hidden .topbar-in{padding:0}
.topbar a{color:var(--brown);text-decoration:none}
.topbar a:hover{text-decoration:underline}
.topbar svg{vertical-align:-4px;margin-right:.5rem}
.site-header{background:#fff}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:104px;gap:1rem;transition:min-height .25s}
.site-top.is-scrolled .bar{min-height:92px}
.brand img{width:84px;height:84px}
.nav{display:flex;align-items:center;gap:2rem}
.nav a{text-decoration:none;color:#000;font:400 .9rem var(--head);text-transform:uppercase}
.nav a:hover{color:var(--brown-2)}
.nav .nav-tel{display:inline-flex;align-items:center;gap:.55rem;background:var(--brown);color:#fff;text-transform:none;font:600 .95rem var(--head);padding:.7rem 1.3rem;border-radius:999px;box-shadow:0 4px 12px rgba(81,41,0,.25)}
.nav .nav-tel:hover{background:var(--brown-2);color:#fff}
.nav .nav-fb{display:grid;place-items:center;width:34px;height:34px;color:#8a8a8a;border-radius:50%;margin-left:-.6rem;transition:color .2s,background .2s}
.nav .nav-fb:hover{color:#3b5998;background:#eef1f7}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.nav-toggle i,.nav-toggle i::before,.nav-toggle i::after{position:absolute;left:10px;width:24px;height:2px;background:var(--brown);content:"";transition:.2s}
.nav-toggle i{top:21px}.nav-toggle i::before{top:-7px;left:0}.nav-toggle i::after{top:7px;left:0}
@media(max-width:1100px){.nav{gap:1.2rem}}
@media(max-width:1000px){
 .nav-toggle{display:block}
 .bar{min-height:88px}.site-top.is-scrolled .bar{min-height:76px}
 .brand img{width:68px;height:68px}
 .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:.5rem 1rem 1.2rem;box-shadow:0 12px 20px rgba(40,20,0,.12);display:none}
 .nav.is-open{display:flex}
 .nav a{padding:.8rem .2rem;font-size:1rem}
 .nav .nav-tel{justify-content:center;margin-top:.6rem}
 .nav .nav-fb{margin:.4rem auto 0}
 .topbar-in{justify-content:flex-start;gap:.2rem 1.4rem;font-size:.8rem}
}
/* Hero (Holz = CI) */
.hero{position:relative;background:#1b1109 url(/assets/img/hero-2000.webp) 38% 42%/cover;color:#fff;text-align:center;padding:clamp(3rem,7vw,6.5rem) 0}
.hero::before{content:"";position:absolute;inset:0;background:rgba(10,6,2,.52)}
.hero-in{position:relative}
.hero h1{margin:0}
.hero-logo img{width:min(430px,70vw);height:auto;margin-inline:auto}
@media(max-width:700px){.hero{background-image:url(/assets/img/hero-1000.webp)}}
/* Karten */
.section{padding:clamp(3rem,7vw,5.5rem) 0}
.section-cards{background:var(--bg)}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.card{position:relative;background:#fff;border-radius:18px;padding:2.6rem 2rem 2.4rem;text-align:center;box-shadow:0 1px 2px rgba(40,20,0,.05),0 12px 32px rgba(40,20,0,.08);overflow:hidden;transition:transform .25s,box-shadow .25s}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--taupe),var(--brown-2),var(--brown))}
.card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(40,20,0,.06),0 20px 44px rgba(40,20,0,.14)}
.card-ico{display:grid;place-items:center;width:92px;height:92px;margin:0 auto 1.5rem;border-radius:50%;background:linear-gradient(145deg,var(--brown-2),var(--brown));color:#fff;box-shadow:0 8px 20px rgba(81,41,0,.3)}
.card h2{font:700 1.3rem var(--head);text-transform:none;color:var(--brown);margin-bottom:.7rem;letter-spacing:.01em}
.card p{margin:0;color:#4a3a2c;line-height:1.65}
@media(max-width:860px){.cards3{grid-template-columns:1fr}}
/* Zitatband (Holz) */
.quote-band{position:relative;padding:clamp(3.5rem,8vw,6rem) 0;color:#fff;text-align:center;background:linear-gradient(120deg,rgba(35,15,0,.5),rgba(10,5,0,.72)),#2a1708 url(/assets/img/holz-2400.webp) center/cover fixed}
.quote-in{display:flex;flex-direction:column;align-items:center;gap:1.6rem}
.quote-ico{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);color:#e8d3b9;backdrop-filter:blur(4px)}
.quote-band blockquote{margin:0}
.quote-band p{font:300 clamp(1.5rem,3.4vw,2.5rem)/1.35 var(--head);margin:0;text-wrap:balance;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.quote-line{display:block;width:72px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--taupe),#e8d3b9)}
@media(max-width:900px),(hover:none){.quote-band{background-attachment:scroll}}
@media(max-width:700px){.quote-band{background-image:linear-gradient(120deg,rgba(35,15,0,.5),rgba(10,5,0,.72)),url(/assets/img/holz-1200.webp)}}
/* Team */
.section-team{background:linear-gradient(rgba(245,247,250,.93),rgba(245,247,250,.93)),url(/assets/img/steinwand-1600.webp) center/cover}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;align-items:stretch}
.person{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 1px 2px rgba(40,20,0,.05),0 12px 32px rgba(40,20,0,.09);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.person:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(40,20,0,.06),0 20px 44px rgba(40,20,0,.15)}
.portrait{position:relative;aspect-ratio:1;overflow:hidden;background:var(--beige)}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.portrait::after{content:"";position:absolute;left:0;right:0;bottom:0;height:35%;background:linear-gradient(to top,rgba(81,41,0,.55),transparent)}
.person-body{padding:0 1.6rem 1.8rem;margin-top:-3.2rem;position:relative;z-index:1;display:flex;flex-direction:column;flex:1}
.person h3{font:600 1.55rem var(--head);color:#fff;margin:0 0 .15rem;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.role{display:inline-block;align-self:flex-start;font:600 .8rem var(--head);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--brown);padding:.3rem .8rem;border-radius:999px;margin:0 0 1.2rem}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.chips li{font:400 .82rem/1.3 var(--head);color:var(--brown);background:var(--beige);border-radius:999px;padding:.35rem .8rem}
@media(max-width:900px){.team{grid-template-columns:1fr;max-width:480px;margin-inline:auto}}
/* Termin */
.section-tight{padding:clamp(1.5rem,3vw,2.5rem) 0}
.duo{display:grid;grid-template-columns:1fr 1.3fr;gap:1.6rem;align-items:stretch}
.call-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#7a5733,#5b3f24);color:#fff;border-radius:18px;padding:2.4rem;box-shadow:0 14px 36px rgba(60,30,0,.28);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.call-card::after{content:"";position:absolute;right:-70px;bottom:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%);transition:transform .6s}
.call-card:hover{box-shadow:0 22px 48px rgba(60,30,0,.34)}
.call-card:hover::after{transform:scale(1.35)}
.call-ring{position:relative;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.14);margin-bottom:1.4rem}
.call-ring::before,.call-ring::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);animation:ring 2.8s ease-out infinite}
.call-ring::after{animation-delay:1.4s}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
.call-card .kicker{font:400 .95rem var(--head);letter-spacing:.14em;margin:0 0 .3rem;text-transform:none;opacity:.9}
.call-card .phone{display:inline-block;font:400 clamp(1.7rem,3.5vw,2.3rem)/1.1 var(--head);color:#fff;text-decoration:none;margin-bottom:1.4rem;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .4s ease,letter-spacing .4s}
.call-card .phone:hover{background-size:100% 2px;letter-spacing:.01em}
.call-card p:last-child{margin:0;color:#f4e9dc;position:relative;z-index:1}
.hours-card{background:#fff;border-radius:18px;padding:2.4rem;box-shadow:0 1px 2px rgba(40,20,0,.05),0 14px 36px rgba(40,20,0,.09)}
.hours-card h2{font:700 1.6rem var(--head);text-transform:none;letter-spacing:.01em;color:var(--brown);margin-bottom:1.3rem}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
.hours{display:grid;gap:.8rem}
.hours div{position:relative;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.4rem;border:1.5px solid #eadfd2;border-radius:14px;font-size:clamp(1rem,1.6vw,1.2rem);background:#fff;transition:background .3s,transform .3s,border-color .3s}
.hours div:hover{background:var(--bg);transform:translateX(4px);border-color:#d8c8b4}
.hours dt{color:var(--brown);font-weight:700}.hours dd{margin:0;color:#3d2e22;font-weight:500;white-space:nowrap}
.hours div.is-today{border:2px solid transparent;background:linear-gradient(var(--beige),var(--beige)) padding-box,conic-gradient(from var(--a),rgba(171,143,114,.15) 0 55%,var(--taupe) 78%,var(--brown) 92%,rgba(171,143,114,.15) 100%) border-box;animation:spin 5s linear infinite}
@keyframes spin{to{--a:360deg}}
.hours div.is-today dt::after{content:"Heute";margin-left:.8rem;vertical-align:.12em;font:700 .72rem var(--head);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--brown);padding:.25rem .65rem;border-radius:999px;animation:pop .6s .9s both cubic-bezier(.3,1.6,.5,1)}
@keyframes pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hours div.is-today{animation:none}}
@media(max-width:860px){.duo{grid-template-columns:1fr}}
/* Einblend-Animation beim Scrollen */
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),box-shadow .35s}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .card[data-reveal].is-in:hover,.js .person[data-reveal].is-in:hover{transform:translateY(-4px);transition-delay:0s}
@media(prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none}.call-ring::before,.call-ring::after{animation:none}}
/* Stellenangebot */
.section-job{background:#fff}
.job{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.job-title{color:var(--brown);margin-bottom:1rem}
.job-sub{font:400 clamp(1.3rem,2.4vw,1.7rem)/1.3 var(--head);color:var(--brown-2);margin:1.4rem 0 1.4rem}
.job .prose{font:400 1rem/1.5 var(--head)}
.job-img img{border-radius:10px;box-shadow:0 14px 40px rgba(40,20,0,.28);max-width:420px;margin-inline:auto}
.prose a{word-break:break-word}
@media(max-width:860px){.job{grid-template-columns:1fr}}
/* Leistungen */
.services{padding-top:0}
.services>.section-title{margin:0;padding:clamp(3.2rem,7vw,5.2rem) 1rem clamp(2.6rem,5vw,3.6rem);max-width:none;width:100%;background:radial-gradient(ellipse at 50% 0%,#fffaf4 0%,transparent 70%),linear-gradient(180deg,#f8f0e6,#f2e6da)}
.service{position:relative;overflow:hidden;padding:clamp(2.6rem,6vw,5rem) 0;isolation:isolate}
.service::before{content:"";position:absolute;z-index:-1;width:clamp(300px,38vw,560px);aspect-ratio:244/258;background:center/contain no-repeat;pointer-events:none;animation:drift 18s ease-in-out infinite alternate}
.service-in{position:relative}
.service-dark{background:radial-gradient(ellipse at 15% 20%,#7b5a38 0%,transparent 55%),radial-gradient(ellipse at 90% 90%,#523720 0%,transparent 60%),var(--brown-2);color:#fff}
.service-dark::before{background-image:url(/assets/img/figur-hell.svg);opacity:.09;left:2%;top:50%;margin-top:calc(clamp(300px,38vw,560px) * .528 / -1)}
.service-light::before{background-image:url(/assets/img/figur-braun.svg);opacity:.06;right:3%;top:50%;margin-top:calc(clamp(300px,38vw,560px) * .528 / -1)}
@keyframes drift{from{transform:translate(0,-14px)}to{transform:translate(0,14px)}}
@media(prefers-reduced-motion:reduce){.service::before{animation:none}}
.service-dark h3{color:#fff}
.service-light{background:radial-gradient(ellipse at 85% 10%,#fbf3ea 0%,transparent 55%),var(--beige);color:var(--brown)}
.service-in{display:grid;grid-template-columns:1fr 480px;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.service.flip .service-in{grid-template-columns:480px 1fr}.service.flip .service-body{order:2}
.service-img img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.service-body h3{font-size:clamp(1.8rem,3.2vw,2.4rem);margin-bottom:1.2rem}
.ticks{list-style:none;margin:0;padding:0;font-size:1.15rem;line-height:1.5}
.ticks strong{font-weight:700}
.card p strong,.quote-band strong,.call-card strong{font-weight:700}
.ticks li{position:relative;padding-left:1.7rem;margin:.7rem 0}
.ticks li::before{content:"✓";position:absolute;left:0;font-size:.95rem;top:.12em;font-weight:700}
.ticks.cols{columns:2;column-gap:2rem}
.ticks.cols li{break-inside:avoid}
@media(max-width:900px){.service-in,.service.flip .service-in{grid-template-columns:1fr}.service.flip .service-body{order:0}.ticks.cols{columns:1}}
/* Galerie (volle Breite) */
.section-wide{padding-bottom:0}
#praxis{background:#fff}
.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:.5rem}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;transition:transform .35s,filter .35s;display:block}
.gallery img:hover{filter:brightness(1.08);transform:scale(1.015);position:relative;z-index:1}
@media(max-width:1000px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery img:first-child{grid-column:span 2;aspect-ratio:16/10}}
/* Consent (Karte/Video) */
.consent{position:relative;overflow:hidden;background:#2a1708 url(/assets/img/holz-1200.webp) center/cover;min-height:320px;display:grid}
.consent>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.consent-box{position:relative;align-self:center;justify-self:center;max-width:560px;background:#fff;margin:1.5rem;padding:1.6rem;border-radius:var(--radius);text-align:center}
.consent iframe{border:0;width:100%;height:100%;min-height:420px;grid-area:1/1}
.consent.video iframe{aspect-ratio:16/9;min-height:0;height:auto}
.route{text-align:center;margin:1rem 0 0}
/* Bewertung */
.rating-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.2rem;margin:-1rem auto 1.8rem}
.btn-write{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.6rem}
.rating{display:flex;align-items:center;justify-content:center;gap:1.1rem;width:max-content;max-width:100%;margin:0;padding:.85rem 1.6rem;background:#fff;border-radius:999px;text-decoration:none;color:var(--ink);box-shadow:0 1px 2px rgba(40,20,0,.05),0 10px 26px rgba(40,20,0,.1);transition:transform .3s,box-shadow .3s}
.rating:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(40,20,0,.06),0 16px 34px rgba(40,20,0,.15)}
.stars{position:relative;display:inline-block;font-size:1.7rem;line-height:1;letter-spacing:.08em;color:#e4d6c5;white-space:nowrap}
.stars i{font-style:normal;position:absolute;left:0;top:0;width:var(--p);overflow:hidden;white-space:nowrap;color:#e0a21b}
.rating-text{display:flex;flex-direction:column;line-height:1.25;font:400 .98rem var(--head)}
.rating-text strong{font-weight:700;color:var(--brown)}
.rating-text small{font:400 .82rem var(--head);color:var(--brown-2)}
@media(max-width:560px){.rating{flex-direction:column;gap:.4rem;border-radius:20px;text-align:center}.rating-text{align-items:center}}
/* Stimmen (Swiper mit Vorschau) */
.section-voices{position:relative;overflow:hidden;background:linear-gradient(180deg,#fbf6f0,#f2e6da)}
.vswiper{--cw:min(440px,78vw);position:relative}
.vtrack{opacity:0;transition:opacity .4s;list-style:none;margin:-1rem 0 -1.4rem;padding:2.4rem calc(50% - var(--cw) / 2) 4.4rem;display:flex;gap:1.4rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;outline-offset:-6px}
.vtrack::-webkit-scrollbar{display:none}
.vtrack.is-ready{opacity:1}
html:not(.js) .vtrack{opacity:1}
.vtrack.is-drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.vtrack.is-drag *{user-select:none;pointer-events:none}
.vcard{flex:0 0 var(--cw);scroll-snap-align:center;position:relative;background:#fff;border-radius:20px;padding:2.4rem 2rem 1.8rem;box-shadow:0 1px 3px rgba(40,20,0,.04),0 12px 26px -10px rgba(40,20,0,.1);display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem;opacity:.5;transform:scale(.93);transition:opacity .5s,transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.vcard.is-active{opacity:1;transform:none;box-shadow:0 2px 6px rgba(40,20,0,.05),0 18px 36px -10px rgba(40,20,0,.16)}
.vq{position:absolute;right:1.4rem;top:1.2rem;width:54px;color:var(--taupe);opacity:.35}
.vcard blockquote{margin:0}
.vcard p{font:400 1.2rem/1.55 var(--head);color:var(--brown);margin:0;padding-top:1.4rem}
.vwho{display:flex;align-items:center;gap:.9rem}
.avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:linear-gradient(145deg,var(--brown-2),var(--brown));color:#fff;font:600 1rem var(--head);box-shadow:0 6px 16px rgba(81,41,0,.3)}
.who{display:flex;flex-direction:column;line-height:1.25}
.who strong{font:600 1.05rem var(--head);color:var(--ink)}
.who small{font:400 .85rem var(--head);color:var(--brown-2)}
.vcontrols{display:flex;align-items:center;justify-content:center;gap:1.4rem;margin-top:.4rem}
.vcontrols[hidden]{display:none}
.vbtn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid rgba(81,41,0,.25);background:#fff;color:var(--brown);cursor:pointer;transition:background .25s,color .25s,transform .25s}
.vbtn:hover{background:var(--brown);color:#fff;transform:scale(1.06)}
.vdots{display:flex;gap:.6rem}
.vdots button{width:10px;height:10px;padding:0;border-radius:999px;border:0;background:rgba(81,41,0,.25);cursor:pointer;transition:width .35s,background .35s}
.vdots button.is-active{width:34px;background:var(--brown)}
@media(prefers-reduced-motion:reduce){.vcard{transition:none}}
/* Kontakt */
.section-contact{background:linear-gradient(180deg,#fff,#f5f7fa)}
.contact-card2{display:grid;grid-template-columns:1.45fr 1fr;border-radius:24px;overflow:hidden;box-shadow:0 2px 4px rgba(40,20,0,.05),0 28px 60px rgba(40,20,0,.14);background:#fff}
.cform{padding:clamp(1.8rem,4vw,3rem)}
.cform-intro{margin:0 0 1.8rem;color:#5a4a3a}
.frow2{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}
.field{position:relative;margin-bottom:1.3rem}
.field input,.field textarea{width:100%;padding:1.45rem 1rem .55rem;font:400 1rem var(--body);color:var(--ink);background:#faf7f3;border:1.5px solid #e6dccf;border-radius:12px;transition:border-color .25s,background .25s,box-shadow .25s;resize:vertical}
.field textarea{min-height:150px;padding-top:1.7rem}
.field label{position:absolute;left:1rem;top:1.05rem;font:400 1rem var(--head);color:#8a7a6a;pointer-events:none;transform-origin:left top;transition:transform .2s ease,color .2s}
.field input:focus,.field textarea:focus{outline:none;background:#fff;border-color:var(--brown-2);box-shadow:0 0 0 4px rgba(171,143,114,.25)}
.field input:focus + label,.field textarea:focus + label,.field input:not(:placeholder-shown) + label,.field textarea:not(:placeholder-shown) + label{transform:translateY(-.62rem) scale(.78);color:var(--brown-2);font-weight:600}
.field input:user-invalid,.field textarea:user-invalid{border-color:#c0392b;background:#fff7f6}
.hp{position:absolute;left:-9999px}
.health-note{display:flex;gap:.8rem;align-items:flex-start;margin:.2rem 0 1rem;padding:.9rem 1.1rem;border-radius:12px;background:#fff6e6;border:1px solid #ecd3a3;color:#5a3d0a}
.health-note svg{flex:none;margin-top:.15rem;color:#b36b00}
.health-note p{margin:0;font-size:.93rem;line-height:1.5}
.privacy-note{margin:0 0 1.5rem;font-size:.88rem;line-height:1.5;color:#5a4a3a}
.check{display:flex;gap:.8rem;align-items:flex-start;margin:.2rem 0 1.6rem;font-size:.93rem;line-height:1.5;color:#4a3a2c;cursor:pointer}
.check input{position:absolute;opacity:0;width:1px;height:1px}
.check .box{flex:none;display:grid;place-items:center;width:24px;height:24px;margin-top:.1rem;border:1.5px solid #cdbfae;border-radius:7px;background:#fff;color:#fff;transition:background .25s,border-color .25s,transform .25s}
.check .box svg{opacity:0;transform:scale(.4);transition:opacity .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}
.check input:checked + .box{background:var(--brown);border-color:var(--brown)}
.check input:checked + .box svg{opacity:1;transform:none}
.check input:focus-visible + .box{outline:3px solid var(--taupe);outline-offset:2px}
.btn-send{display:inline-flex;align-items:center;gap:.8rem;padding:1rem 1.9rem;font-size:1rem}
.btn-send svg{transition:transform .3s}
.btn-send:hover svg{transform:translateX(5px)}
.btn-send.is-sending{pointer-events:none;opacity:.85}
.btn-send.is-sending svg{animation:fly .9s ease-in-out infinite}
@keyframes fly{50%{transform:translateX(8px)}}
.alert{padding:1rem 1.2rem;border-radius:12px;font-weight:600;margin-bottom:1.4rem}
.alert-error{background:#f8e1de;color:#7a1f14}
.sent{text-align:center;padding:2rem 0}
.sent-ico{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 1.2rem;border-radius:50%;background:#e4f0e1;color:#2e7d32;animation:pop .6s both cubic-bezier(.3,1.6,.5,1)}
.sent h3{margin-bottom:.4rem}
.cinfo{position:relative;overflow:hidden;color:#fff;padding:clamp(1.8rem,4vw,3rem);background:linear-gradient(160deg,rgba(40,18,0,.55),rgba(12,6,1,.8)),#2a1708 url(/assets/img/holz-1200.webp) center/cover}
.cinfo::after{content:"";position:absolute;right:-60px;bottom:-40px;width:300px;aspect-ratio:244/258;background:url(/assets/img/figur-hell.svg) center/contain no-repeat;opacity:.07;pointer-events:none}
.cinfo h3{color:#fff;font:600 1.4rem var(--head);margin-bottom:1.6rem}
.cinfo-list{list-style:none;margin:0 0 1.8rem;padding:0;display:grid;gap:1.2rem;position:relative;z-index:1}
.cinfo-list li{display:flex;gap:1rem;align-items:flex-start;line-height:1.45}
.cinfo-list small{display:block;font:600 .72rem var(--head);letter-spacing:.12em;text-transform:uppercase;color:#e0cdb4;margin-bottom:.15rem}
.cinfo a{color:#fff}
.cinfo .big{font:600 1.35rem var(--head);text-decoration:none}
.ci{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22)}
.btn-light{position:relative;z-index:1;background:#fff;color:var(--brown);box-shadow:0 6px 18px rgba(0,0,0,.25)}
.cinfo .btn-light,.cinfo .btn-light:hover{color:var(--brown)}
.btn-light:hover{background:var(--beige)}
@media(max-width:900px){.contact-card2{grid-template-columns:1fr}.frow2{grid-template-columns:1fr}}
#anfahrt{background:var(--bg)}
/* Rechtstexte */
.page-head{padding:clamp(2rem,5vw,4rem) 0 0}
.page-head h1{font:700 clamp(1.8rem,4vw,2.6rem) var(--head);letter-spacing:.045em;text-transform:uppercase;margin:0}
.page-head + .section{padding-top:1rem}
.prose h2{margin-top:2rem;font:400 1.5rem var(--head);text-transform:none;color:var(--brown)}
.prose ul{padding-left:1.2rem}
/* Fuß (Glas-Karte über abgedunkeltem Holz) */
.site-footer{position:relative;isolation:isolate;overflow:hidden;padding:clamp(3rem,6vw,5rem) 0 1.6rem;color:#eadccb;font-size:.97rem;background:#150b03 url(/assets/img/holz-2400.webp) center/cover}
.site-footer::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#150b03 0%,rgba(14,7,2,.55) 35%,rgba(14,7,2,.78) 100%)}
.site-footer a{color:#f4e9dc;text-decoration:none}
.foot-card{position:relative;overflow:hidden;border-radius:28px;padding:clamp(1.8rem,4vw,3.4rem) clamp(1.4rem,4vw,3.4rem) 1.6rem;background:linear-gradient(180deg,rgba(45,24,8,.78),rgba(26,13,4,.88));backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);border:1px solid rgba(255,235,210,.12);box-shadow:0 40px 80px -40px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,235,210,.08)}
.foot-card::before{content:"";position:absolute;top:-170px;left:-110px;width:480px;height:360px;border-radius:50%;background:radial-gradient(closest-side,rgba(171,143,114,.2),transparent);pointer-events:none}
.foot-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr 1.2fr .9fr .8fr;gap:2rem;align-items:start}
.foot-brand img{width:clamp(84px,9vw,120px);height:auto;filter:drop-shadow(0 12px 26px rgba(0,0,0,.5))}
.foot-col h2{font:600 .78rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:#bfa88c;margin:0 0 1rem}
.foot-h2-sp{margin-top:1.6rem!important}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot-col address{font-style:normal}
.foot-col a{display:inline-flex;align-items:flex-start;gap:.5rem;line-height:1.5;transition:color .2s}
.foot-col a:hover{color:var(--taupe)}
.f-arrow{font-style:normal;font-size:.8rem;line-height:1.9;color:#bfa88c;transition:transform .25s,color .2s}
.foot-col a:hover .f-arrow{color:var(--taupe);transform:translate(2px,-2px)}
.foot-social svg{margin-top:.35rem;color:#d8c6af}
.foot-hours{margin:0;display:grid;gap:.4rem;font-size:.9rem}
.foot-hours{gap:.7rem}
.foot-hours div{display:flex;flex-direction:column;gap:.05rem}
.foot-hours dt{color:#bfa88c}.foot-hours dd{margin:0}
.foot-mark{margin-top:clamp(1.8rem,3.5vw,2.8rem);border-bottom:1px solid rgba(255,235,210,.16)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem 1.6rem;padding-top:1.3rem;font-size:.85rem;color:#bfa88c}
.foot-bottom span:last-child{display:flex;gap:1.4rem}
.foot-bottom a{color:#d8c6af}.foot-bottom a:hover{color:var(--taupe)}
@media(max-width:1100px) and (min-width:861px){.foot-grid{grid-template-columns:repeat(3,1fr)}.foot-brand{grid-row:span 2}}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}.site-footer{background-image:url(/assets/img/holz-1200.webp)}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
/* Lightbox */
.lb{position:fixed;inset:0;background:rgba(30,15,0,.92);display:none;align-items:center;justify-content:center;z-index:200;padding:2rem}
.lb.is-open{display:flex}
.lb img{max-width:100%;max-height:100%}
.lb button{position:absolute;background:rgba(255,255,255,.15);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:1.8rem;cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.3)}
.lb-close{top:1rem;right:1rem}.lb-prev{left:1rem}.lb-next{right:1rem}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Sprung zu den Öffnungszeiten: Karte leuchtet kurz auf */
#termin:target .hours-card{animation:flash 1.6s ease .3s both}
@keyframes flash{0%,100%{box-shadow:0 1px 2px rgba(40,20,0,.05),0 14px 36px rgba(40,20,0,.09)}35%{box-shadow:0 0 0 4px rgba(171,143,114,.55),0 18px 44px rgba(81,41,0,.22)}}
@media(prefers-reduced-motion:reduce){#termin:target .hours-card{animation:none}}

/* Eingebettete Inhalte: nach dem Laden Widerruf-Button */
.consent.is-loaded{display:block;min-height:0;background:none;overflow:visible}
.consent.is-loaded iframe{display:block;border-radius:var(--radius)}
.consent-revoke{margin-top:.9rem;display:inline-flex;align-items:center;gap:.5rem;font:600 .88rem var(--head);color:var(--brown);background:#fff;border:1.5px solid #d8c8b4;border-radius:999px;padding:.55rem 1.1rem;cursor:pointer;transition:background .25s,border-color .25s}
.consent-revoke:hover{background:var(--beige);border-color:var(--taupe)}
.consent-note{margin:.5rem 0 0;font-size:.82rem;color:#6b5b4d}
