:root{
  /* aus dem Salonfoto gemessen: Wandweiß, Estrich, Stuhlleder, Chrom, helle Esche */
  --paper:#F8F8F6;
  --floor:#E5E4E0;
  --line:#CFCEC9;
  --ink:#171717;
  --chrome:#9EA2A5;
  --oak:#D8C4A0;

  --p--1:.8rem;
  --p-0:clamp(1rem,.97rem + .13vw,1.06rem);
  --p-1:clamp(1.08rem,1.02rem + .28vw,1.24rem);
  --p-2:clamp(1.35rem,1.1rem + 1.1vw,2rem);
  --p-3:clamp(1.9rem,1.3rem + 2.6vw,3.4rem);
  --p-4:clamp(2.6rem,1.5rem + 5.4vw,6.5rem);
  --space:clamp(1.5rem,1.2rem + 1.5vw,2.75rem);
  --edge:clamp(1.25rem,.75rem + 2.5vw,3.5rem);
}
*,*::before,*::after{box-sizing:border-box;}
body,h1,h2,h3,p,ul,ol,li,figure,dl,dt,dd{margin:0;padding:0;}
body{
  /* eine Schriftfamilie, streng gefuehrt — das ist die minimale Entscheidung */
  font-family:'Space Grotesk',system-ui,sans-serif;
  font-size:var(--p-0);line-height:1.7;font-weight:400;
  color:var(--ink);background:var(--paper);
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
ul,ol{list-style:none;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--ink);outline-offset:4px;}
[id]{scroll-margin-top:4.5rem;}

.f-wrap{width:min(64rem,100%);margin-inline:auto;padding-inline:var(--edge);}
.f-tag{font-size:var(--p--1);letter-spacing:.24em;text-transform:uppercase;color:var(--chrome);font-weight:500;}
.f-tight{letter-spacing:-.03em;font-weight:500;line-height:1.05;}

/* ---------- Präsenzo-Leiste ---------- */
.pz{border-bottom:1px solid var(--line);font-size:var(--p--1);}
.pz__in{
  width:min(64rem,100%);margin-inline:auto;padding:.65rem var(--edge);
  display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;justify-content:center;text-align:center;
  color:var(--chrome);
}
.pz__cta{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}

/* ---------- Kopf ---------- */
.head{border-bottom:1px solid var(--line);}
.head__in{
  width:min(64rem,100%);margin-inline:auto;padding:1.1rem var(--edge);
  display:flex;align-items:baseline;gap:var(--space);flex-wrap:wrap;
}
.logo{font-size:var(--p-1);letter-spacing:.3em;text-transform:uppercase;font-weight:700;text-decoration:none;}
.menu{margin-inline-start:auto;display:flex;gap:1.6rem;flex-wrap:wrap;font-size:var(--p--1);letter-spacing:.14em;text-transform:uppercase;font-weight:500;}
.menu a{text-decoration:none;color:var(--chrome);padding-bottom:.2rem;border-bottom:1px solid transparent;}
.menu a:hover,.menu a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink);}

/* ---------- Hero ---------- */
.open{padding-block:clamp(3.5rem,2.5rem + 6vw,8rem) clamp(2rem,1.5rem + 3vw,3.5rem);}
.open h1{font-size:var(--p-3);max-width:20ch;}
.open__lede{margin-top:1.6rem;max-width:40ch;color:#5A5A57;font-size:var(--p-1);line-height:1.55;}
.open__row{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:.75rem;}
.open__figure img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;}
.open__cap{margin-top:.75rem;font-size:var(--p--1);color:var(--chrome);letter-spacing:.14em;text-transform:uppercase;}

.b-solid{
  display:inline-block;text-decoration:none;font-size:var(--p--1);font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:.85rem 1.7rem;
}
.b-solid:hover{background:#3A3A38;}
.b-out{
  display:inline-block;text-decoration:none;font-size:var(--p--1);font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--ink);padding:.85rem 1.7rem;
}
.b-out:hover{background:var(--ink);color:var(--paper);}

/* ---------- Abschnitte ---------- */
.zone{padding-block:clamp(3rem,2.25rem + 4vw,5.5rem);border-top:1px solid var(--line);}
.zone--floor{background:var(--floor);}
.zone__head h2{font-size:var(--p-2);margin-top:.7rem;max-width:24ch;}
.zone__head p{margin-top:.9rem;max-width:50ch;color:#5A5A57;}

/* ---------- Signatur: das eine Angebot, allein im weißen Feld ---------- */
.single{
  padding-block:clamp(4rem,3rem + 7vw,9rem);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  text-align:center;
}
.single__line{
  font-size:var(--p-4);letter-spacing:-.04em;font-weight:500;line-height:1;
  display:flex;flex-wrap:wrap;gap:.2em .55em;justify-content:center;align-items:baseline;
}
.single__sep{color:var(--line);font-weight:300;}
.single__note{
  margin-top:clamp(1.75rem,1.25rem + 2vw,3rem);font-size:var(--p--1);
  letter-spacing:.2em;text-transform:uppercase;color:var(--chrome);
}
.single__sub{margin-top:1.25rem;max-width:38ch;margin-inline:auto;color:#5A5A57;}

/* ---------- Ausschlussliste ---------- */
.absent{margin-top:clamp(2rem,1.5rem + 2vw,3rem);border-top:1px solid var(--ink);}
.absent__row{
  display:flex;flex-wrap:wrap;gap:.2rem 1.5rem;align-items:baseline;
  padding-block:1.1rem;border-bottom:1px solid var(--line);
}
.absent__what{font-size:var(--p-1);font-weight:500;min-width:9rem;}
.absent__why{flex:1 1 20rem;font-size:var(--p--1);color:#5A5A57;}

/* ---------- Ablauf in Zeilen ---------- */
.seq{margin-top:clamp(2rem,1.5rem + 2vw,3rem);border-top:1px solid var(--ink);counter-reset:q;}
.seq__row{
  display:grid;grid-template-columns:auto 1fr;gap:.2rem 1.25rem;
  padding-block:1.25rem;border-bottom:1px solid var(--line);counter-increment:q;
}
.seq__row::before{
  content:counter(q,decimal-leading-zero);
  font-size:var(--p--1);letter-spacing:.14em;color:var(--chrome);font-weight:700;
  padding-top:.35rem;
}
.seq__row h3{font-size:var(--p-1);font-weight:500;}
.seq__row p{margin-top:.3rem;font-size:var(--p--1);color:#5A5A57;grid-column:2;}

/* ---------- Kontakt ---------- */
.two{display:grid;gap:var(--space);grid-template-columns:1fr;margin-top:clamp(2rem,1.5rem + 2vw,3rem);}
@media (min-width:44rem){.two{grid-template-columns:1fr 1fr;}}
.two__col h3{font-size:var(--p--1);letter-spacing:.2em;text-transform:uppercase;color:var(--chrome);margin-bottom:.9rem;}
.two__line{display:flex;justify-content:space-between;gap:1rem;padding-block:.45rem;border-bottom:1px solid var(--line);font-size:var(--p--1);}
.two__line span:last-child{font-weight:500;}

/* ---------- Unterseiten ---------- */
.pgtop{padding-block:clamp(2.5rem,2rem + 3vw,4.5rem) 0;}
.pgtop h1{font-size:var(--p-2);max-width:22ch;margin-top:.8rem;}
.pgtop p{margin-top:1rem;max-width:50ch;color:#5A5A57;font-size:var(--p-1);line-height:1.55;}

.foot{border-top:1px solid var(--line);padding-block:2.5rem;font-size:var(--p--1);color:var(--chrome);}
.foot a{color:var(--ink);}
.foot p + p{margin-top:.6rem;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

/* Das Angebot untereinander, sobald es nicht in eine Zeile passt */
@media (max-width:56rem){
  .single__line{flex-direction:column;gap:.1em;}
  .single__sep{display:none;}
}

/* Pflichtangabe nach PAngV: Endpreise fuer Verbraucher */
.tax-note{margin-top:1.1rem;font-size:var(--p--1);color:var(--chrome);opacity:1;}
