:root{
  --ink:#25272A;
  --ink-2:#303337;
  --brass:#C99A45;
  --brass-d:#7F5B1A;
  --paper:#F2EBDD;
  --paper-2:#E8DFCB;
  --bon:#FCF9F2;
  --line:#CBBFA6;
  --text:#25272A;
  --muted:#5F5A4E;
  --on-dark:#F2EBDD;
  --on-dark-muted:#BDB5A3;
  --wa:#16824A;
  --r:10px;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua","Noto Serif",Georgia,serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono","Courier New",monospace;
  --grain-light:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  --grain-dark:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .07 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  --hatch:repeating-linear-gradient(135deg,rgba(242,235,221,.035) 0 1px,transparent 1px 8px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--serif);color:var(--text);line-height:1.6;font-size:17px;
  background:var(--paper) var(--grain-dark);
  padding-bottom:100px;
}
svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
.wrap{width:100%;max-width:960px;margin:0 auto;padding:0 18px}
.ico{width:1.25em;height:1.25em;fill:currentColor;flex:none}

/* Header */
.top{background:var(--ink);color:var(--on-dark);padding:11px 0;border-bottom:3px solid var(--brass)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:700;font-size:1.02rem;line-height:1.2;letter-spacing:.01em}
/* Logo-Platz: hier später <img src="logo.svg"> statt .brand-mark einsetzen */
.brand-mark{
  width:38px;height:38px;border-radius:8px;background:var(--brass);color:var(--ink);
  display:grid;place-items:center;font-weight:700;font-size:1.35rem;flex:none
}
.top-call{
  display:inline-flex;align-items:center;gap:8px;background:var(--brass);color:var(--ink);text-decoration:none;
  font-weight:700;padding:10px 15px;border-radius:var(--r);font-size:.98rem;white-space:nowrap
}

/* Hero */
.hero{
  position:relative;overflow:hidden;color:var(--on-dark);
  background:var(--ink) var(--grain-light);
  padding:34px 0 0;
}
.hero::before{content:"";position:absolute;inset:0;background:var(--hatch);pointer-events:none}
.hero .wrap{position:relative}
.hero h1{
  font-size:clamp(2.05rem,9.2vw,3.3rem);line-height:1.08;font-weight:700;letter-spacing:-.015em;
  max-width:15em
}
.hero .lead{font-size:1.1rem;color:var(--on-dark-muted);margin:14px 0 20px;max-width:30em}
.facts{list-style:none;display:grid;gap:8px;margin-bottom:24px}
.facts li{display:flex;align-items:center;gap:10px;font-weight:700}
.facts .ico{color:var(--brass)}
.hero-key{position:relative;margin:10px -18px 0;height:165px;overflow:hidden}
.hero-key svg{
  position:absolute;right:-24px;top:12px;width:400px;max-width:none;height:auto;
  transform:rotate(-11deg);transform-origin:50% 50%;
  filter:drop-shadow(0 8px 0 rgba(0,0,0,.28))
}

/* Buttons */
.btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:58px;padding:14px 18px;border-radius:var(--r);text-decoration:none;
  font-family:var(--serif);font-weight:700;font-size:1.12rem;text-align:center;border:0;cursor:pointer
}
.btn-call{background:var(--brass);color:var(--ink)}
.btn-call:active{background:#B3873A}
.btn-wa{background:var(--wa);color:#fff}
.btn-stack{display:grid;gap:12px}
.sub{font-size:.9rem;color:var(--on-dark-muted);margin-top:12px}

/* Sections */
.sec{padding:42px 0}
.sec h2{font-size:1.7rem;line-height:1.15;margin-bottom:8px;font-weight:700;letter-spacing:-.01em}
.sec .intro{color:var(--muted);margin-bottom:22px;max-width:34em}
.sec-alt{background:var(--paper-2) var(--grain-dark);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-dark{background:var(--ink) var(--grain-light);color:var(--on-dark);position:relative;overflow:hidden}
.sec-dark::before{content:"";position:absolute;inset:0;background:var(--hatch);pointer-events:none}
.sec-dark .wrap{position:relative}
.sec-dark .intro{color:var(--on-dark-muted)}

/* Checkliste Ablauf */
.checks{list-style:none;display:grid;gap:16px;max-width:34em}
.checks li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}
.checks .ico{width:30px;height:30px;color:var(--brass-d)}
.checks strong{display:block;font-size:1.08rem;line-height:1.3}
.checks span{color:var(--muted);font-size:.98rem}

/* Leistungen */
.svc{list-style:none;display:grid;gap:0;max-width:40em}
.svc li{display:grid;grid-template-columns:54px 1fr;gap:14px;padding:18px 0;border-bottom:2px dashed var(--line)}
.svc li:last-child{border-bottom:0}
.svc .badge{
  width:54px;height:54px;border-radius:var(--r);background:var(--ink);color:var(--brass);
  display:grid;place-items:center
}
.svc .badge .ico{width:28px;height:28px}
.svc h3{font-size:1.15rem;line-height:1.25;margin-bottom:2px}
.svc p{color:var(--muted);font-size:.98rem}
.svc .ab{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:.88rem;font-weight:700;color:var(--brass-d)}

/* Kassenbon */
.sec.bon-wrap{padding-bottom:44px}
.bon{
  position:relative;background:var(--bon);color:#2A2A2A;max-width:460px;margin:0 auto;
  padding:26px 20px 24px;font-family:var(--mono);font-size:.95rem;line-height:1.5;
  box-shadow:0 14px 0 -8px rgba(0,0,0,.25);
  transform:rotate(-.6deg)
}
.bon::after{
  content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;
  background:
    linear-gradient(135deg,var(--bon) 6px,transparent 0) 0 0/16px 12px,
    linear-gradient(225deg,var(--bon) 6px,transparent 0) 0 0/16px 12px
}
.bon-head{text-align:center;font-weight:700;letter-spacing:.04em;line-height:1.35;padding-bottom:12px;border-bottom:2px dashed #9b9484}
.bon-head small{display:block;font-weight:400;letter-spacing:0;font-size:.82rem;margin-top:2px}
.bon h3{font-size:.88rem;font-weight:700;margin:16px 0 6px;letter-spacing:.06em}
.bon ul{list-style:none}
.bon li{display:flex;align-items:baseline;gap:8px;padding:3px 0}
.bon li i{flex:1;border-bottom:2px dotted #8d8677;transform:translateY(-4px);min-width:12px}
.bon li b{white-space:nowrap}
.bon-foot{margin-top:18px;padding-top:12px;border-top:2px dashed #9b9484;font-size:.86rem;text-align:center}
.bon-foot strong{display:block;font-size:.95rem;margin-bottom:4px}

/* Über mich */
.about{max-width:34em}
.about p{font-size:1.15rem;margin-bottom:10px}
.sign{font-style:italic;color:var(--brass-d);font-weight:700}

/* Gebiet */
.areas{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-top:6px}
.areas li{background:var(--bon);border:1px solid var(--line);padding:8px 14px;border-radius:var(--r);font-weight:700;font-size:.97rem}
.note{font-size:.9rem;color:var(--muted);margin-top:12px}

/* Bewertungen */
.review-btn{
  display:flex;align-items:center;justify-content:center;min-height:54px;border-radius:var(--r);
  border:2px solid var(--ink);color:var(--ink);font-weight:700;text-decoration:none;padding:12px 16px;text-align:center;max-width:460px
}

/* Footer */
footer{background:var(--ink);color:var(--on-dark-muted);padding:28px 0 36px;font-size:.93rem;border-top:3px solid var(--brass)}
footer a{color:var(--on-dark)}
footer .links{display:flex;gap:18px;margin-top:10px}

/* Sticky bar */
.bar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--ink);
  border-top:3px solid var(--brass);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  display:grid;grid-template-columns:1.25fr 1fr;gap:10px
}
.bar .btn{min-height:56px;font-size:1.1rem;padding:10px 12px}

/* Einblenden */
.js .reveal{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
}

/* Rechtstexte */
.legal{padding:28px 0 40px}
.legal h1{font-size:1.8rem;margin-bottom:16px}
.legal h2{font-size:1.15rem;margin:22px 0 6px}
.legal p,.legal li{color:#33322E;margin-bottom:8px;font-size:1rem;max-width:42em}
.legal ul{padding-left:20px}
.back{display:inline-block;margin-bottom:14px;font-weight:700;color:var(--brass-d)}

@media (min-width:760px){
  body{font-size:18px;padding-bottom:0}
  .bar{display:none}
  .hero{padding:56px 0 0}
  .hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center}
  .hero-key{margin:0;height:440px;grid-column:2;grid-row:1 / span 2;overflow:visible}
  .hero-key svg{right:-34px;top:130px;width:470px;transform:rotate(-24deg)}
  .hero-text{padding-bottom:56px}
  .btn-stack{grid-template-columns:1fr 1fr}
  .sec{padding:60px 0}
  .sec h2{font-size:2.1rem}
  .bon{padding:30px 28px 28px}
}

/* PNG-Logo im Header */
.brand-logo{height:42px;width:auto;display:block;flex:none}

/* Mobil: nur die feste Leiste zeigt Anrufen und WhatsApp */
@media (max-width:759px){.desk-only{display:none!important}}
