/* ============================================================
   Mach!BAR Oberkirch – Design-System
   Schwarz-Weiß (Logo) + warme Holztöne · Mobile-First
   ============================================================ */
:root{
  --ink:#161310;
  --ink-soft:#2b2620;
  --paper:#f8f5ef;
  --cream:#efe8db;
  --cream-deep:#e4d9c6;
  --wood:#9a7250;
  --wood-deep:#5f4732;
  --forest:#2f4f3a;
  --line:#d9d0bf;
  --white:#ffffff;
  --star:#e8a33d;
  --radius:18px;
  --shadow:0 20px 60px -24px rgba(22,19,16,.35);
  --font-display:"Bricolage Grotesque",system-ui,sans-serif;
  --font-text:"Inter",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-text);color:var(--ink);background:var(--paper);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--wood);color:#fff}

h1,h2,h3,h4{font-family:var(--font-display);line-height:1.06;letter-spacing:-.015em;font-weight:800}
.display-1{font-size:clamp(2.6rem,7.2vw,5.2rem)}
.display-2{font-size:clamp(2rem,4.6vw,3.4rem)}
.display-3{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.kicker{font-family:var(--font-text);font-size:.78rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--wood-deep);display:flex;align-items:center;gap:.9rem;margin-bottom:1.1rem}
.kicker::before{content:"";width:34px;height:2px;background:var(--wood);display:inline-block}
.on-dark .kicker{color:var(--cream-deep)}
.on-dark .kicker::before{background:var(--cream-deep)}
.lead{font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--ink-soft);max-width:46ch}
.measure{max-width:62ch}

.container{width:min(1200px,92vw);margin-inline:auto}
.container-wide{width:min(1400px,94vw);margin-inline:auto}
section{padding:clamp(4rem,9vw,7.5rem) 0;position:relative}
.section-tight{padding:clamp(2.6rem,5vw,4rem) 0}
.bg-cream{background:var(--cream)}
.bg-dark{background:var(--ink);color:var(--paper)}
.bg-dark .lead{color:#cfc6b8}
.bg-wood{background:linear-gradient(135deg,var(--wood-deep),var(--wood));color:var(--paper)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:1rem 1.9rem;border-radius:999px;font-weight:700;font-size:1rem;background:var(--ink);color:#fff;border:2px solid var(--ink);transition:.28s cubic-bezier(.4,0,.2,1);cursor:pointer;font-family:var(--font-text)}
.btn:hover{background:var(--wood-deep);border-color:var(--wood-deep);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(95,71,50,.55)}
.btn .arr{transition:transform .28s}
.btn:hover .arr{transform:translateX(4px)}
.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-light:hover{background:var(--cream-deep);border-color:var(--cream-deep);color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.on-dark .btn-ghost,.bg-dark .btn-ghost{color:#fff;border-color:#fff}
.on-dark .btn-ghost:hover,.bg-dark .btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}

/* ---------- Header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:1000;transition:.35s;padding:1.1rem 0}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.site-header.scrolled{background:rgba(248,245,239,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line);padding:.55rem 0}
.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--font-display);font-weight:800;font-size:1.25rem;letter-spacing:-.02em}
.brand img{height:44px;width:auto;transition:.3s}
.site-header.scrolled .brand img{height:36px}
.brand .claim-mini{display:none;font-family:var(--font-text);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--wood-deep)}
@media(min-width:1360px){.brand .claim-mini{display:block}}
.nav-desktop{display:none;align-items:center;gap:1.25rem}
.nav-desktop a{font-weight:600;font-size:.93rem;position:relative;padding:.3rem 0;white-space:nowrap}
.nav-desktop a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--wood);transition:.25s}
.nav-desktop a:hover::after,.nav-desktop a.active::after{width:100%}
.nav-desktop .btn{padding:.7rem 1.4rem;font-size:.92rem}
@media(min-width:1080px){.nav-desktop{display:flex}.nav-burger{display:none}}
.header-on-hero:not(.scrolled){color:#fff}
.header-on-hero:not(.scrolled) .brand .claim-mini{color:var(--cream-deep)}

.nav-burger{background:none;border:0;cursor:pointer;width:44px;height:44px;display:grid;place-items:center;z-index:1002}
.nav-burger span{display:block;width:26px;height:2.5px;background:currentColor;position:relative;transition:.3s}
.nav-burger span::before,.nav-burger span::after{content:"";position:absolute;left:0;width:26px;height:2.5px;background:currentColor;transition:.3s}
.nav-burger span::before{top:-8px}.nav-burger span::after{top:8px}
body.nav-open .nav-burger span{background:transparent}
body.nav-open .nav-burger span::before{top:0;transform:rotate(45deg);background:#fff}
body.nav-open .nav-burger span::after{top:0;transform:rotate(-45deg);background:#fff}
.nav-mobile{position:fixed;inset:0;background:var(--ink);color:var(--paper);z-index:1001;display:flex;flex-direction:column;justify-content:center;padding:6rem 8vw 3rem;transform:translateY(-102%);transition:transform .5s cubic-bezier(.7,0,.2,1)}
body.nav-open .nav-mobile{transform:translateY(0)}
body.nav-open{overflow:hidden}
.nav-mobile a{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,6vw,2.6rem);padding:.35rem 0;opacity:.9}
.nav-mobile a:hover{color:var(--cream-deep)}
.nav-mobile .nav-contact{margin-top:2rem;font-size:.95rem;font-family:var(--font-text);font-weight:400;opacity:.7}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;animation:heroZoom 18s ease-out forwards}
@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,19,16,.42) 0%,rgba(22,19,16,.18) 40%,rgba(22,19,16,.82) 100%)}
.hero-inner{position:relative;z-index:2;width:min(1200px,92vw);margin-inline:auto;padding:9rem 0 5.5rem}
.hero .display-1{max-width:14ch;text-wrap:balance;text-shadow:0 4px 40px rgba(0,0,0,.35)}
.hero-sub{margin:1.4rem 0 2.2rem;font-size:clamp(1.05rem,1.8vw,1.35rem);max-width:52ch;color:#f1ece2}
.badge-google{display:inline-flex;align-items:center;gap:.55rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(8px);padding:.5rem 1.1rem;border-radius:999px;font-size:.9rem;font-weight:600;margin-bottom:1.6rem}
.badge-google .stars{color:var(--star);letter-spacing:.1em}
.scroll-hint{position:absolute;right:4vw;bottom:2.2rem;z-index:3;writing-mode:vertical-rl;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:.8rem}
.scroll-hint::after{content:"";width:1px;height:52px;background:rgba(255,255,255,.6);animation:drop 1.8s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-sub .rotator{display:inline-block;font-weight:700;color:#fff;border-bottom:2px solid var(--wood)}

/* Page hero (Unterseiten) */
.page-hero{position:relative;min-height:62vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.page-hero .hero-inner{padding:8rem 0 3.5rem}
.page-hero .hero-media::after{background:linear-gradient(180deg,rgba(22,19,16,.5),rgba(22,19,16,.25) 45%,rgba(22,19,16,.85))}
.breadcrumb{font-size:.85rem;font-weight:600;letter-spacing:.06em;opacity:.85;margin-bottom:1rem;display:flex;gap:.5rem;flex-wrap:wrap}
.breadcrumb a:hover{text-decoration:underline}

/* ---------- Trust ---------- */
.trust-bar{border-block:1px solid var(--line);background:var(--paper)}
.trust-bar .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;padding:1.6rem 0}
@media(min-width:820px){.trust-bar .grid{grid-template-columns:repeat(4,1fr)}}
.trust-item{display:flex;align-items:center;gap:.9rem;font-weight:600;font-size:.95rem;line-height:1.35}
.trust-item svg{flex:none;width:30px;height:30px;stroke:var(--wood-deep)}
.stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem 1.5rem}
@media(min-width:820px){.stat-row{grid-template-columns:repeat(4,1fr)}}
.stat .num{font-family:var(--font-display);font-weight:800;font-size:clamp(2.6rem,5vw,4rem);line-height:1;display:flex;align-items:baseline}
.stat .num .suffix{font-size:.5em;margin-left:.1em;color:var(--wood)}
.stat .label{margin-top:.5rem;font-size:.92rem;color:var(--ink-soft);max-width:22ch}
.bg-dark .stat .label{color:#bdb3a4}

/* Marquee Firmen */
.marquee{overflow:hidden;white-space:nowrap;position:relative;padding:1.3rem 0;border-block:1px solid rgba(255,255,255,.16)}
.marquee-track{display:inline-flex;gap:3.2rem;animation:marquee 42s linear infinite;align-items:center}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.marquee .name{font-family:var(--font-display);font-weight:700;font-size:1.25rem;opacity:.85}
.marquee .dot{width:6px;height:6px;border-radius:50%;background:var(--wood);flex:none}

/* ---------- Cards ---------- */
.grid-2{display:grid;gap:2rem}
.grid-3{display:grid;gap:2rem}
@media(min-width:760px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 24px -14px rgba(22,19,16,.25);display:flex;flex-direction:column;transition:.35s;position:relative}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
/* Karten auf dunklem Grund: Text muss dunkel bleiben */
.bg-dark .card:not([style*="background:var(--ink"]),.on-dark .card:not([style*="background:var(--ink"]){color:var(--ink)}
.bg-dark .card:not([style*="background:var(--ink"]) p,.on-dark .card:not([style*="background:var(--ink"]) p{color:var(--ink-soft)}
.bg-dark .card:not([style*="background:var(--ink"]) h3,.on-dark .card:not([style*="background:var(--ink"]) h3{color:var(--ink)}
.card .thumb{aspect-ratio:4/3;overflow:hidden;position:relative}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.6,.2,1)}
.card:hover .thumb img{transform:scale(1.06)}
.card .body{padding:1.5rem 1.6rem 1.7rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.card h3{font-size:1.3rem}
.card .meta{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--wood-deep)}
.card .more{margin-top:auto;font-weight:700;display:inline-flex;gap:.4rem;align-items:center;color:var(--wood-deep)}
.card:hover .more{gap:.7rem}
.card .more{transition:gap .3s}
.tag{position:absolute;top:1rem;left:1rem;z-index:2;background:var(--ink);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.4rem .9rem;border-radius:999px}
.tag.tag-wood{background:var(--wood-deep)}
.price-pill{display:inline-block;background:var(--cream);border:1px solid var(--line);padding:.3rem .9rem;border-radius:999px;font-weight:700;font-size:.88rem}

/* Feature (Headprogramm) */
.feature-card{grid-column:1/-1;display:grid;background:var(--ink);color:var(--paper);border-radius:calc(var(--radius) + 6px);overflow:hidden;box-shadow:var(--shadow)}
@media(min-width:900px){.feature-card{grid-template-columns:1.15fr 1fr}}
.feature-card .thumb{aspect-ratio:auto;min-height:320px}
.feature-card .thumb img{width:100%;height:100%;object-fit:cover}
.feature-card .body{padding:clamp(1.8rem,4vw,3.2rem);display:flex;flex-direction:column;gap:1rem;justify-content:center}
.feature-card .body p{color:#d8cfc0}

/* ---------- Split / Media-Text ---------- */
.split{display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}.split.rev>.split-media{order:2}}
.split-media{position:relative}
.split-media img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;object-fit:cover}
.split-media .accent-frame::after{content:"";position:absolute;inset:auto -14px -14px auto;width:60%;height:60%;border:3px solid var(--wood);border-radius:var(--radius);z-index:-1;transform:translate(0,0)}
.img-stack{position:relative}
.img-stack .im-b{position:absolute;width:52%;right:-4%;bottom:-12%;border:6px solid var(--paper);border-radius:var(--radius);box-shadow:var(--shadow)}

/* ---------- Pillars / Icons ---------- */
.pillars{display:grid;gap:1.4rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.pillars{grid-template-columns:repeat(5,1fr)}}
.pillar{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.3rem;transition:.3s}
.pillar:hover{border-color:var(--wood);transform:translateY(-4px)}
.pillar .ico{width:46px;height:46px;border-radius:12px;background:var(--cream);display:grid;place-items:center;margin-bottom:1rem}
.pillar .ico svg{width:24px;height:24px;stroke:var(--wood-deep)}
.pillar h3{font-size:1.02rem;margin-bottom:.4rem}
.pillar p{font-size:.88rem;color:var(--ink-soft)}

/* ---------- Steps ---------- */
.steps{display:grid;gap:2rem;counter-reset:step}
@media(min-width:820px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{position:relative;padding-top:1rem}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--font-display);font-weight:800;font-size:4.2rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--wood);display:block;margin-bottom:.8rem;opacity:.85}
.step h3{margin-bottom:.5rem;font-size:1.25rem}

/* ---------- Timeline (Beispielabläufe) ---------- */
.timeline{position:relative;padding-left:2rem;display:grid;gap:1.8rem}
.timeline::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-item{position:relative}
.tl-item::before{content:"";position:absolute;left:-2rem;top:.45rem;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--wood);margin-left:2px}
.tl-item .time{font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:var(--wood-deep)}
.tl-item h4{font-size:1.1rem;margin:.15rem 0 .3rem}
.tl-item p{font-size:.95rem;color:var(--ink-soft)}

/* ---------- Quotes ---------- */
.quote-slider{position:relative;min-height:230px}
.quote{position:absolute;inset:0;opacity:0;transition:opacity .8s;display:flex;flex-direction:column;gap:1.2rem;justify-content:center}
.quote.active{opacity:1}
.quote blockquote{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,2.6vw,1.9rem);line-height:1.35;max-width:28ch}
.quote .who{font-size:.92rem;font-weight:600;color:var(--wood-deep)}
.bg-dark .quote .who{color:var(--cream-deep)}
.quote .stars{color:var(--star);font-size:1.05rem;letter-spacing:.15em}
.quote-dots{display:flex;gap:.6rem;margin-top:1.5rem}
.quote-dots button{width:10px;height:10px;border-radius:50%;border:0;background:var(--line);cursor:pointer;transition:.3s}
.quote-dots button.active{background:var(--wood);transform:scale(1.3)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding:1.2rem 0}
.faq summary{cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:1.12rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.6rem;font-weight:400;color:var(--wood);transition:.3s;flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding-top:.8rem;color:var(--ink-soft);max-width:70ch}

/* ---------- Gallery ---------- */
.gallery{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:820px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery a{border-radius:14px;overflow:hidden;position:relative;display:block;aspect-ratio:1/1}
.gallery a img{width:100%;height:100%;object-fit:cover;transition:.5s}
.gallery a:hover img{transform:scale(1.07)}
.gallery a.wide{grid-column:span 2;aspect-ratio:2/1}
.lightbox{position:fixed;inset:0;background:rgba(15,13,11,.94);z-index:2000;display:none;place-items:center;padding:4vh 4vw}
.lightbox.open{display:grid}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:10px;object-fit:contain}
.lightbox .close{position:absolute;top:1.2rem;right:1.6rem;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}

/* ---------- Konfigurator ---------- */
.wizard{background:var(--white);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow);overflow:hidden}
.wizard-head{background:var(--ink);color:var(--paper);padding:1.6rem clamp(1.4rem,3.5vw,2.6rem);display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;align-items:center;justify-content:space-between}
.wizard-progress{display:flex;gap:.45rem}
.wizard-progress i{width:34px;height:5px;border-radius:3px;background:rgba(255,255,255,.22);transition:.3s}
.wizard-progress i.done{background:var(--wood)}
.wizard-body{padding:clamp(1.6rem,4vw,2.8rem)}
.wstep{display:none;animation:fadeUp .45s}
.wstep.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.wstep h3{font-size:clamp(1.3rem,2.4vw,1.8rem);margin-bottom:.4rem}
.wstep .hint{color:var(--ink-soft);font-size:.95rem;margin-bottom:1.6rem}
.opt-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.opt{border:2px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;cursor:pointer;transition:.22s;background:var(--paper);position:relative;display:block}
.opt:hover{border-color:var(--wood)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt .t{font-weight:700;display:block;margin-bottom:.15rem}
.opt .s{font-size:.85rem;color:var(--ink-soft);display:block}
.opt .p{font-size:.8rem;font-weight:700;color:var(--wood-deep);display:block;margin-top:.4rem}
.opt.selected{border-color:var(--ink);background:var(--cream)}
.opt.selected::after{content:"✓";position:absolute;top:.6rem;right:.8rem;font-weight:800;color:var(--wood-deep)}
.field{margin-bottom:1.2rem}
.field label{display:block;font-weight:600;font-size:.92rem;margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;padding:.85rem 1rem;border:2px solid var(--line);border-radius:12px;font:inherit;background:var(--paper);transition:.2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--wood)}
.field-row{display:grid;gap:1rem}
@media(min-width:680px){.field-row{grid-template-columns:1fr 1fr}}
.wizard-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;flex-wrap:wrap}
.summary-box{background:var(--cream);border-radius:14px;padding:1.4rem 1.6rem;margin-bottom:1.4rem}
.summary-box dt{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--wood-deep);margin-top:.8rem}
.summary-box dd{font-weight:600}
.form-note{font-size:.82rem;color:var(--ink-soft)}

/* ---------- Termine ---------- */
.event-card{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;background:var(--white);border-radius:var(--radius);padding:1.4rem;box-shadow:0 6px 24px -16px rgba(22,19,16,.28);align-items:center;transition:.3s}
.event-card:hover{transform:translateX(6px)}
.date-block{background:var(--ink);color:var(--paper);border-radius:14px;padding:.9rem 1.1rem;text-align:center;min-width:86px}
.date-block .d{display:block;font-family:var(--font-display);font-weight:800;font-size:1.9rem;line-height:1}
.date-block .m{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-deep)}
.event-card h3{font-size:1.25rem;margin-bottom:.2rem}
.event-card .meta{font-size:.86rem;color:var(--ink-soft)}
.event-card .cta-mini{margin-top:.6rem;display:inline-flex;font-weight:700;color:var(--wood-deep);gap:.4rem}

/* ---------- Case Studies ---------- */
.case-filters{display:flex;gap:.7rem;flex-wrap:wrap;margin-bottom:2.2rem}
.case-filters button{border:2px solid var(--line);background:var(--white);padding:.5rem 1.2rem;border-radius:999px;font-weight:600;font-size:.88rem;cursor:pointer;transition:.2s}
.case-filters button:hover{border-color:var(--wood)}
.case-filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.case-block{display:grid;gap:.4rem;background:var(--white);border-radius:var(--radius);padding:1.6rem 1.7rem;box-shadow:0 6px 24px -16px rgba(22,19,16,.25)}
.case-block .firm{font-family:var(--font-display);font-weight:800;font-size:1.15rem}
.case-block .facts{font-size:.85rem;color:var(--ink-soft)}

/* ---------- 360 ---------- */
.tour-frame{position:relative;border-radius:calc(var(--radius) + 6px);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/9;background:var(--ink)}
.tour-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tour-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--paper);text-align:center;padding:2rem;background:radial-gradient(ellipse at center,rgba(154,114,80,.25),transparent 70%)}
.tour-placeholder .ring{width:86px;height:86px;border-radius:50%;border:2px solid var(--cream-deep);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:1.05rem;animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- CTA banner ---------- */
.cta-banner{position:relative;overflow:hidden;border-radius:0}
.cta-banner .hero-media::after{background:linear-gradient(180deg,rgba(22,19,16,.66),rgba(22,19,16,.78))}
.cta-banner .inner{position:relative;z-index:2;text-align:center;padding:clamp(5rem,10vw,8rem) 1rem;color:#fff;display:flex;flex-direction:column;align-items:center;gap:1.6rem}
.cta-banner h2{max-width:18ch;text-wrap:balance}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:#cfc6b8;padding:4.5rem 0 2rem;font-size:.95rem}
footer h4{color:#fff;font-size:1rem;margin-bottom:1rem;letter-spacing:.04em}
.footer-grid{display:grid;gap:2.5rem;grid-template-columns:1fr}
@media(min-width:820px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr 1.1fr}}
footer a:hover{color:#fff}
footer .flogo{height:52px;width:auto;margin-bottom:1rem}
footer .mbf{display:flex;align-items:center;gap:.8rem;margin-top:1.4rem;font-size:.85rem}
footer .mbf img{height:40px;width:auto}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:3rem;padding-top:1.6rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.84rem;color:#9b9184}
.footer-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.07);padding:.45rem 1rem;border-radius:999px;font-weight:600;color:#fff;font-size:.85rem}
.footer-badge .stars{color:var(--star)}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1)}
.reveal.visible{opacity:1;transform:none}
.reveal-d1{transition-delay:.12s}.reveal-d2{transition-delay:.24s}.reveal-d3{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero-media img{animation:none}.marquee-track{animation-duration:120s}}

/* Sticky mobile CTA */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--ink);padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));display:flex;gap:.7rem;justify-content:center;transform:translateY(110%);transition:.4s}
.sticky-cta.show{transform:none}
.sticky-cta .btn{padding:.75rem 1.5rem;font-size:.95rem;background:var(--wood);border-color:var(--wood);flex:1;max-width:420px;justify-content:center}
@media(min-width:1080px){.sticky-cta{display:none}}

.section-head{margin-bottom:clamp(2rem,4.5vw,3.5rem);display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-end;justify-content:space-between}
.notice{background:var(--cream);border-left:4px solid var(--wood);padding:1rem 1.3rem;border-radius:0 12px 12px 0;font-size:.92rem;color:var(--ink-soft)}
.checklist li{display:flex;gap:.8rem;padding:.45rem 0;align-items:flex-start}
.checklist li::before{content:"✓";font-weight:800;color:var(--forest);flex:none;background:var(--cream);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.85rem}
.facts-table{width:100%;border-collapse:collapse;font-size:.98rem}
.facts-table th,.facts-table td{text-align:left;padding:.85rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
.facts-table th{font-weight:700;white-space:nowrap;color:var(--wood-deep);width:38%}

/* Honeypot fuer den Spamschutz: fuer Menschen unsichtbar, aber nicht
   display:none, damit Bots das Feld trotzdem ausfuellen. */
.hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
