/* ═══════════════════════════════════════════════════════════
   MALERBETRIEB GETMANSKI
   Ruhige Handwerks-Optik: warme Flächen, klare Typografie,
   echte Fotos, eine einzige Type-Skala.
   Schriften liegen lokal — kein Google Fonts, keine DSGVO-Lücke.
   ═══════════════════════════════════════════════════════════ */

/* ── 1 Schriften (lokal) ─────────────────────────────────── */
@font-face{
  font-family:"Source Serif 4";
  src:url("fonts/sourceserif4-var-latin.woff2") format("woff2-variations"),
      url("fonts/sourceserif4-var-latin.woff2") format("woff2");
  font-weight:200 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Source Serif 4";
  src:url("fonts/sourceserif4-var-italic-latin.woff2") format("woff2-variations"),
      url("fonts/sourceserif4-var-italic-latin.woff2") format("woff2");
  font-weight:200 900;font-style:italic;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Inter";
  src:url("fonts/inter-var-latin.woff2") format("woff2-variations"),
      url("fonts/inter-var-latin.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ── 2 Material ──────────────────────────────────────────── */
:root{
  --paper:    #F4F1E9;
  --paper-2:  #EDE8DC;
  --paper-3:  #E4DECD;

  --ink:      #2B2621;
  --ink-80:   rgba(43,38,33,.80);
  --ink-62:   rgba(43,38,33,.62);
  --ink-45:   rgba(43,38,33,.45);
  --ink-30:   rgba(43,38,33,.30);

  --line:     rgba(43,38,33,.15);
  --line-2:   rgba(43,38,33,.08);

  --clay:     #A9583A;
  --clay-d:   #8B452C;
  --clay-lt:  #C6795A;
  --ochre:    #B2853F;
  --sage:     #7C8779;

  --ff-d: "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --ff-b: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --ease: cubic-bezier(.22,.61,.28,1);
  --soft: cubic-bezier(.33,1,.68,1);
  --draw: cubic-bezier(.65,.05,.36,1);

  --pad:  clamp(1.4rem, 5.6vw, 5.5rem);
  --maxw: 1280px;
  --r: 2px;
}

/* ── 3 Grund ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html:focus-within{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--ff-b);
  font-size:clamp(1rem,.99rem + .07vw,1.07rem);
  font-weight:400;
  line-height:1.74;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,p,figure,blockquote{margin:0}
::selection{background:rgba(169,88,58,.22);color:var(--ink)}
:focus-visible{outline:1.5px solid var(--clay);outline-offset:5px;border-radius:1px}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}

.skip{
  position:fixed;top:-100px;left:16px;z-index:200;
  padding:.9rem 1.5rem;
  background:var(--ink);color:var(--paper);
  font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
}
.skip:focus{top:16px}

.paper{
  position:fixed;inset:0;z-index:60;pointer-events:none;
  opacity:.28;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23p)' opacity='.32'/%3E%3C/svg%3E");
}

.progress{position:fixed;top:0;left:0;right:0;height:1px;z-index:120;background:var(--line-2)}
.progress__bar{display:block;height:100%;width:0;background:var(--clay);opacity:.75}

/* ── 4 Typografie — eine Skala, zwei Schnitte ────────────── */
.eyebrow{
  display:flex;align-items:center;gap:.85rem;
  margin:0 0 clamp(1.4rem,2.6vw,2rem);
  font-size:.68rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink-45);
}
.eyebrow__dot{width:5px;height:5px;flex:none;border-radius:50%;background:var(--clay);opacity:.85}

.shead{margin-bottom:clamp(2.4rem,5vw,4rem)}
.shead--center{text-align:center;display:flex;flex-direction:column;align-items:center}
.shead--center .eyebrow{justify-content:center}

.h2{
  font-family:var(--ff-d);
  font-weight:400;
  font-size:clamp(1.95rem,.95rem + 3.2vw,3.3rem);
  line-height:1.1;
  letter-spacing:-.006em;
  margin:0 0 clamp(1.2rem,2.2vw,1.8rem);
}
.h2--xl{font-size:clamp(2.2rem,1rem + 4vw,3.9rem)}
.h2 em{font-style:italic}
.accent{color:var(--clay)}

.lede{
  font-size:clamp(1.05rem,1rem + .28vw,1.2rem);
  line-height:1.7;color:var(--ink-80);
  max-width:54ch;
}
.lede--sm{max-width:60ch;font-size:clamp(1rem,.98rem + .2vw,1.1rem)}

.mask{display:block;overflow:hidden;padding-block:.08em;margin-block:-.08em}
.js .mask__i{
  display:block;
  transform:translateY(108%);
  opacity:0;filter:blur(4px);
  transition:transform 1.25s var(--soft) var(--d,0s),opacity .95s var(--ease) var(--d,0s),filter 1.1s var(--ease) var(--d,0s);
}
.in .mask__i{transform:none;opacity:1;filter:blur(0)}

.js [data-in]{
  opacity:0;transform:translateY(20px);
  transition:opacity 1.05s var(--ease) var(--d,0s),transform 1.15s var(--soft) var(--d,0s);
}
[data-in].in{opacity:1;transform:none}

/* ── 5 Schaltflächen ─────────────────────────────────────── */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:.7rem;
  padding:1.02rem 1.8rem;
  font-size:.73rem;font-weight:500;letter-spacing:.19em;text-transform:uppercase;
  border-radius:var(--r);border:1px solid transparent;
  transition:background-color .5s var(--ease),color .5s var(--ease),
             border-color .5s var(--ease),transform .5s var(--soft);
}
.btn .ico{width:1.05em;height:1.05em;fill:currentColor;flex:none}
.btn--solid{background:var(--ink);color:var(--paper)}
.btn--solid:hover{background:var(--clay);color:#F7F3EB}
.btn--quiet{border-color:var(--line);color:var(--ink-80)}
.btn--quiet:hover{border-color:var(--ink-30);background:rgba(43,38,33,.045);color:var(--ink)}
.btn--line{border-color:var(--clay);color:var(--clay)}
.btn--line:hover{background:var(--clay);color:#F7F3EB;border-color:var(--clay)}
.btn--lg{padding:1.22rem 2.1rem;font-size:.79rem}
.btn:active{transform:translateY(1px)}

.linkclay{
  display:inline-flex;align-items:center;gap:.5rem;
  color:var(--clay);font-size:.73rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  padding-bottom:.35rem;position:relative;
}
.linkclay svg{width:1.05em;height:1.05em;transition:transform .6s var(--soft)}
.linkclay::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:currentColor;transform:scaleX(.25);transform-origin:left;
  transition:transform .8s var(--draw);
}
.linkclay:hover svg{transform:translate(3px,-3px)}
.linkclay:hover::after{transform:scaleX(1)}

/* ── 6 Navigation ────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:110;
  padding-block:clamp(1.1rem,2.2vw,1.7rem);
  transition:padding .7s var(--ease),background-color .7s var(--ease),
             border-color .7s var(--ease),backdrop-filter .7s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  padding-block:.95rem;
  background:rgba(244,241,233,.88);
  backdrop-filter:blur(14px) saturate(120%);
  border-bottom-color:var(--line-2);
}
.nav__in{
  display:flex;align-items:center;justify-content:space-between;gap:1.6rem;
  max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);
}

.brand{display:inline-flex;align-items:baseline;gap:.7rem}
.brand__txt{display:flex;flex-direction:column;line-height:1.16}
.brand__txt b{
  font-family:var(--ff-d);font-size:1.4rem;font-weight:600;letter-spacing:.008em;
}
.brand__txt i{
  font-style:normal;font-size:.55rem;font-weight:500;
  letter-spacing:.36em;text-transform:uppercase;color:var(--ink-45);
}

.nav__links{display:flex;align-items:center;gap:clamp(1.1rem,2.2vw,2.2rem)}
.nav__links > a{
  position:relative;font-size:.73rem;font-weight:400;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-62);
  padding-block:.4rem;transition:color .5s var(--ease);
}
.nav__links > a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--clay);transform:scaleX(0);transform-origin:right;
  transition:transform .8s var(--draw);
}
.nav__links > a:hover{color:var(--ink)}
.nav__links > a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__links > a.is-active{color:var(--clay)}
.nav__links > a.is-active::after{transform:scaleX(1);transform-origin:left}

.nav__tel{position:relative;padding-block:.4rem}
.nav__telTxt{
  font-family:var(--ff-d);font-size:1.14rem;font-weight:500;
  letter-spacing:.02em;color:var(--ink);
}
.nav__telRule{
  position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--ink-30);transform-origin:left;
  transition:transform .8s var(--draw),background-color .6s var(--ease);
}
.nav__tel:hover .nav__telRule{transform:scaleX(.45);background:var(--clay)}

.burger{display:none;width:2.6rem;height:2.6rem;place-items:center;border:1px solid var(--line);border-radius:var(--r)}
.burger span{display:block;width:1.05rem;height:1px;background:var(--ink);transition:transform .55s var(--soft),opacity .4s}
.burger span+span{margin-top:.42rem}
.burger[aria-expanded="true"] span:first-child{transform:translateY(.42rem) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-.42rem) rotate(-45deg)}

@media(max-width:1040px){
  .nav__tel{display:none}
  .burger{display:grid;place-content:center}
  .nav__links{
    position:fixed;inset:0 0 auto;top:0;
    flex-direction:column;align-items:flex-start;justify-content:center;gap:1.7rem;
    padding:6.5rem var(--pad) 3.5rem;
    background:rgba(244,241,233,.98);backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line-2);
    transform:translateY(-102%);visibility:hidden;
    transition:transform .7s var(--soft),visibility 0s linear .7s;
  }
  .nav__links.is-open{transform:none;visibility:visible;transition:transform .7s var(--soft)}
  .nav__links > a{font-size:1.4rem;letter-spacing:.01em;font-family:var(--ff-d);text-transform:none;font-weight:500}
}

/* ── 7 Hero — Text links, echtes Foto rechts ─────────────── */
.hero{
  position:relative;z-index:2;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding-block:clamp(7.5rem,15vh,10rem) clamp(5rem,10vh,7.5rem);
  overflow:hidden;
}
.hero__light{
  position:absolute;inset:-10% -20% auto -20%;height:120%;
  background:
    radial-gradient(42% 40% at 78% 20%, rgba(255,252,244,.95), transparent 62%),
    radial-gradient(52% 44% at 8% 84%, rgba(178,133,63,.08), transparent 66%),
    radial-gradient(46% 40% at 96% 96%, rgba(169,88,58,.06), transparent 68%);
  pointer-events:none;
}

.hero__in{
  position:relative;
  display:grid;gap:clamp(1.8rem,3.4vw,2.8rem);
  align-items:center;
}
@media(min-width:900px){
  .hero__in{
    grid-template-columns:minmax(0,1.06fr) minmax(0,.9fr);
    column-gap:clamp(2.5rem,5vw,4.5rem);
    row-gap:clamp(1.6rem,2.6vw,2.2rem);
  }
  .hero__head{grid-column:1;grid-row:1}
  .hero__body{grid-column:1;grid-row:2}
  .hero__fig{grid-column:2;grid-row:1/3}
}

.hero__title{
  font-family:var(--ff-d);
  font-weight:400;
  font-size:clamp(2.45rem,1.1rem + 4.6vw,4.6rem);
  line-height:1.07;letter-spacing:-.008em;
  margin:0;
  max-width:20ch;
}
.hero__title em{font-style:italic;color:var(--clay)}

.hero__shot{
  position:relative;overflow:hidden;
  aspect-ratio:4/5;border-radius:var(--r);
  background:var(--paper-3);
  box-shadow:0 44px 84px -58px rgba(43,38,33,.5);
}
.hero__shot img{width:100%;height:100%;object-fit:cover}
.hero__fig{margin:0}
.hero__fig figcaption{
  margin-top:1rem;
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-45);
}

.cta{display:flex;flex-wrap:wrap;gap:.75rem}
.cta--row{justify-content:center}
.hero__body .cta{margin-top:clamp(1.6rem,2.8vw,2.2rem)}

.promises{
  display:flex;flex-wrap:wrap;gap:.6rem 2.4rem;
  margin-top:clamp(2.2rem,4.4vw,3.2rem);
  padding-top:clamp(1.3rem,2.4vw,1.8rem);
  border-top:1px solid var(--line-2);
  max-width:80ch;
}
.promises li{
  position:relative;padding-left:1.35rem;
  font-size:.79rem;letter-spacing:.04em;color:var(--ink-45);
}
.promises li::before{
  content:"";position:absolute;left:0;top:.66em;
  width:4px;height:4px;border-radius:50%;background:var(--clay);opacity:.75;
}

.scrollcue{
  position:absolute;left:var(--pad);bottom:clamp(1.6rem,4vh,2.8rem);
  display:block;width:1px;height:58px;overflow:hidden;
}
.scrollcue__line{position:absolute;inset:0;background:var(--line)}
.scrollcue::after{
  content:"";position:absolute;left:0;top:0;width:1px;height:40%;
  background:var(--clay);animation:cue 3.4s var(--soft) infinite;
}
@keyframes cue{0%{transform:translateY(-110%)}60%,100%{transform:translateY(280%)}}
@media(max-width:1040px){.scrollcue{display:none}}

/* ── 8 Leistungsleiste ───────────────────────────────────── */
.band{
  position:relative;z-index:2;
  padding-block:clamp(1.6rem,3vw,2.3rem);
  border-block:1px solid var(--line-2);
  background:linear-gradient(180deg,rgba(228,222,205,.32),transparent);
}
.band__list{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(.8rem,2vw,1.6rem);
  font-size:.7rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-45);
}
.band__sep{width:4px;height:4px;border-radius:50%;background:var(--clay);opacity:.55}

/* ── 9 Sektionen ─────────────────────────────────────────── */
.sec{position:relative;z-index:2;padding-block:clamp(4.5rem,10vw,9rem)}
.sec--svc{background:linear-gradient(180deg,var(--paper),var(--paper-2) 50%,var(--paper))}
.sec--ba{background:var(--paper-2)}
.sec--ref{background:linear-gradient(180deg,var(--paper-2),var(--paper) 55%,var(--paper))}
.sec--proc{background:var(--paper);border-block:1px solid var(--line-2)}
.sec--rev{background:linear-gradient(180deg,var(--paper),var(--paper-2) 60%,var(--paper-2))}
.sec--cta{
  background:
    radial-gradient(58% 48% at 50% 6%, rgba(255,252,244,.9), transparent 66%),
    var(--paper-2);
  border-top:1px solid var(--line-2);
}

/* ── 10 Leistungen als Textzeilen ────────────────────────── */
.rows{border-top:1px solid var(--line-2)}
.row{
  position:relative;
  display:grid;gap:clamp(.7rem,1.8vw,2.2rem);
  grid-template-columns:auto minmax(0,1fr);
  padding-block:clamp(1.9rem,3.6vw,2.8rem);
  border-bottom:1px solid var(--line-2);
  transition:background-color .7s var(--ease);
}
.row::before{
  content:"";position:absolute;left:0;right:0;top:0;bottom:0;
  background:linear-gradient(90deg,rgba(43,38,33,.028),transparent 60%);
  opacity:0;transition:opacity .7s var(--ease);pointer-events:none;
}
.row:hover::before{opacity:1}

.row__n{
  grid-row:1/3;
  font-family:var(--ff-d);font-size:1rem;font-weight:500;
  color:var(--clay);letter-spacing:.04em;
  padding-top:.55em;min-width:2.2ch;
}
.row__t{
  font-family:var(--ff-d);font-weight:500;
  font-size:clamp(1.45rem,1.2rem + 1vw,2rem);
  line-height:1.14;letter-spacing:-.004em;margin-bottom:.5rem;
}
.row__d{font-size:.97rem;color:var(--ink-62);max-width:52ch}

.row__l{
  grid-column:2;
  display:flex;flex-wrap:wrap;gap:.3rem 1.6rem;
  margin-top:.3rem;
}
.row__l li{
  position:relative;padding-left:1.25rem;
  font-size:.85rem;color:var(--ink-45);line-height:1.6;
}
.row__l li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:4px;height:1px;background:var(--clay);opacity:.7;
}

@media(min-width:900px){
  .row{grid-template-columns:3.4rem minmax(0,1fr) minmax(0,.92fr);align-items:baseline}
  .row__l{grid-column:3;flex-direction:column;gap:.5rem;margin-top:0}
}

/* ── 11 Vorher / Nachher ─────────────────────────────────── */
.ba{margin-top:clamp(1.4rem,3vw,2.4rem)}
.ba__stage{
  position:relative;overflow:hidden;
  width:100%;max-width:820px;margin-inline:auto;
  aspect-ratio:1/1;
  border-radius:var(--r);
  background:var(--paper-3);
  cursor:ew-resize;
  touch-action:pan-y;
  user-select:none;-webkit-user-select:none;
  box-shadow:0 34px 70px -50px rgba(43,38,33,.42);
}
.ba__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba__img.is-missing{opacity:0}
.ba__clip{position:absolute;top:0;left:0;bottom:0;width:50%;overflow:hidden;will-change:width}
.ba__clip .ba__img{width:var(--stage-w,100%);max-width:none;right:auto}
.ba__img--before{background:var(--paper-3)}

.ba__tag{
  position:absolute;top:clamp(1rem,2vw,1.5rem);
  padding:.42rem .95rem;border-radius:999px;
  font-size:.6rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;
  pointer-events:none;backdrop-filter:blur(6px);
}
.ba__tag--l{left:clamp(1rem,2vw,1.5rem);background:rgba(244,241,233,.82);color:var(--ink-62);border:1px solid var(--line-2)}
.ba__tag--r{right:clamp(1rem,2vw,1.5rem);background:var(--clay);color:#F7F3EB}

.ba__handle{position:absolute;inset:0;pointer-events:none}
.ba__line{
  position:absolute;top:0;bottom:0;left:50%;width:1px;
  background:rgba(247,243,235,.9);
  transform:translateX(-.5px);
}
.ba__knob{
  position:absolute;top:50%;left:50%;
  display:grid;place-items:center;
  width:clamp(3rem,5vw,3.8rem);height:clamp(3rem,5vw,3.8rem);
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:rgba(244,241,233,.9);
  border:1px solid rgba(43,38,33,.12);
  backdrop-filter:blur(6px);
  color:var(--clay);
  box-shadow:0 8px 22px -12px rgba(43,38,33,.5);
  transition:transform .7s var(--soft),box-shadow .7s var(--ease),background-color .6s var(--ease);
}
.ba__knob svg{width:1.3rem;height:1.3rem}
.ba__stage:hover .ba__knob,.ba__handle:focus-visible .ba__knob{
  transform:translate(-50%,-50%) scale(1.07);
  background:#FBF8F1;
  box-shadow:0 12px 28px -12px rgba(43,38,33,.55);
}
.ba__handle:focus-visible{outline:none}
.ba__handle:focus-visible .ba__knob{outline:1.5px solid var(--clay);outline-offset:4px}
.ba.is-dragging .ba__knob{transform:translate(-50%,-50%) scale(.96)}

.ba__hint{
  margin-top:1.3rem;text-align:center;
  font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-30);
}
.ba__fallback{
  position:absolute;inset:0;display:grid;place-items:center;padding:2rem;
  text-align:center;font-size:.92rem;color:var(--ink-45);
}

/* ── 12 Referenzen — echte Arbeit als Beweis ─────────────── */
.refs{
  display:grid;gap:clamp(1.3rem,2.4vw,2rem);
  grid-template-columns:repeat(2,1fr);
  max-width:900px;
}
@media(max-width:700px){.refs{grid-template-columns:1fr}}

.ref{margin:0}
.ref__shot{
  position:relative;overflow:hidden;
  aspect-ratio:4/5;border-radius:var(--r);
  background:var(--paper-3);
  box-shadow:0 30px 62px -50px rgba(43,38,33,.42);
}
.ref__shot img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--soft)}
.ref:hover .ref__shot img{transform:scale(1.03)}
.ref__ph{
  position:absolute;inset:0;display:grid;place-items:center;
  color:var(--ink-30);pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(43,38,33,.022) 0 12px,transparent 12px 24px);
}
.ref__ph svg{width:2.4rem;height:2.4rem}
.ref.is-filled .ref__ph{display:none}
.ref figcaption{
  display:flex;flex-direction:column;gap:.22rem;
  margin-top:.95rem;padding-top:.85rem;border-top:1px solid var(--line-2);
}
.ref figcaption b{font-family:var(--ff-d);font-size:1.16rem;font-weight:500}
.ref figcaption i{
  font-style:normal;font-size:.66rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-30);
}

/* ── 13 Arbeitsweise als Linie ───────────────────────────── */
.tl{
  position:relative;
  display:grid;gap:clamp(2.2rem,3.6vw,2.8rem);
  grid-template-columns:repeat(4,1fr);
  padding-top:2.4rem;
}
.tl::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.tl__i{position:relative;padding-right:clamp(.6rem,1.6vw,1.6rem)}
.tl__dot{
  position:absolute;left:0;top:-2.4rem;
  width:5px;height:5px;border-radius:50%;
  background:var(--paper);border:1px solid var(--clay);
}
.tl__n{
  display:block;margin-bottom:.85rem;
  font-family:var(--ff-d);font-style:italic;font-size:.92rem;font-weight:500;color:var(--clay);
  letter-spacing:.04em;
}
.tl__i h3{
  font-family:var(--ff-d);font-weight:500;
  font-size:clamp(1.3rem,1.1rem + .7vw,1.7rem);
  line-height:1.16;margin-bottom:.6rem;
}
.tl__i p{font-size:.9rem;color:var(--ink-45);line-height:1.7}

@media(max-width:1000px){.tl{grid-template-columns:1fr 1fr;gap:2.4rem 2rem}}
@media(max-width:600px){
  .tl{grid-template-columns:1fr;gap:2.2rem;padding-top:0;padding-left:1.5rem}
  .tl::before{left:0;top:0;bottom:0;right:auto;width:1px;height:auto}
  .tl__i{padding-right:0}
  .tl__dot{top:.6em;left:-1.5rem}
}

/* ── 14 Bewertungen ──────────────────────────────────────── */
.rate{
  display:inline-flex;align-items:center;gap:.85rem;
  margin-top:-.4rem;
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-45);
}
.stars{display:inline-flex;gap:.3rem;color:var(--clay)}
.stars i{
  width:.6rem;height:.6rem;background:currentColor;
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
}
.stars--sm{margin-bottom:1.2rem}
.stars--sm i{width:.5rem;height:.5rem}

/* Track: horizontales Scrollen mit Snap — Wischen bleibt nativ */
.revs{
  display:flex;
  gap:clamp(1rem,2.2vw,1.6rem);
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  /* Kein randloser Ueberhang: sonst passen die letzten Karten nicht mehr
     in den Scrollbereich und die Punkt-Zaehlung kommt auseinander. */
  padding-block:clamp(1.8rem,3.4vw,2.7rem);
}
.revs::-webkit-scrollbar{display:none}
.revs.is-dragging{scroll-behavior:auto;scroll-snap-type:none}

.rev{
  flex:0 0 clamp(280px,72%,460px);
  scroll-snap-align:start;
  display:flex;flex-direction:column;
  padding:clamp(1.5rem,2.6vw,2.1rem);
  border:1px solid var(--line-2);
  border-radius:var(--r);
  background:rgba(255,253,247,.6);
}
.rev blockquote{
  font-size:.98rem;line-height:1.7;color:var(--ink-80);
  margin-bottom:1.4rem;flex:1;
}
.rev figcaption{
  display:flex;flex-direction:column;gap:.22rem;
  padding-top:1rem;border-top:1px solid var(--line-2);
}
.rev figcaption b{font-size:.85rem;font-weight:500}
.rev figcaption i{
  font-style:normal;font-size:.66rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-30);
}

.rev--lead{
  flex-basis:clamp(300px,84%,600px);
  background:linear-gradient(180deg,rgba(255,253,247,.9),rgba(255,253,247,.5));
}
.rev--lead blockquote{
  font-family:var(--ff-d);font-weight:400;font-style:italic;
  font-size:clamp(1.25rem,1.1rem + .8vw,1.75rem);
  line-height:1.36;color:var(--ink);
}
.rev--lead figcaption b{font-size:.92rem}

.revnav{
  display:flex;align-items:center;justify-content:center;gap:1.1rem;
  margin-top:clamp(.8rem,1.8vw,1.2rem);
}
.revnav__b{
  flex:none;width:2.5rem;height:2.5rem;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:50%;color:var(--ink-62);
  transition:border-color .5s var(--ease),color .5s var(--ease),
             background-color .5s var(--ease),opacity .5s var(--ease);
}
.revnav__b svg{width:1.05rem;height:1.05rem}
.revnav__b:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:rgba(43,38,33,.04)}
.revnav__b:disabled{opacity:.28;cursor:default}

.revdots{display:flex;align-items:center;gap:.45rem}
.revdot{
  width:6px;height:6px;padding:0;border-radius:999px;
  background:var(--ink-30);
  transition:background-color .5s var(--ease),width .5s var(--soft);
}
.revdot:hover{background:var(--ink-45)}
.revdot.is-active{background:var(--clay);width:22px}

/* ── 15 Kontakt ──────────────────────────────────────────── */
.tel{
  margin-top:clamp(.2rem,1.4vw,.8rem);
  display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center;
}
.tel a{display:inline-block;position:relative;padding:.3rem 0}
.tel__num{
  display:block;
  font-family:var(--ff-d);font-weight:500;
  font-size:clamp(2.1rem,.9rem + 5.4vw,4.4rem);
  line-height:1;letter-spacing:.006em;
  color:var(--ink);
  transition:color .7s var(--ease),transform .7s var(--soft);
}
.tel a:hover .tel__num{color:var(--clay);transform:scale(1.012)}
.tel a::after{
  content:"";position:absolute;left:0;bottom:-.2rem;height:1px;width:100%;
  background:var(--clay);transform:scaleX(0);transform-origin:center;
  transition:transform 1s var(--draw);
}
.tel a:hover::after{transform:scaleX(1)}
.tel__sub{font-size:.86rem;color:var(--ink-45)}

.mapcard{
  display:flex;align-items:center;justify-content:space-between;gap:clamp(1.4rem,3vw,2.6rem);
  margin-top:clamp(2.6rem,6vw,4.6rem);
  padding:clamp(1.4rem,2.6vw,2rem);
  border:1px solid var(--line-2);
  border-radius:var(--r);
  background:rgba(255,253,247,.6);
  text-align:left;
}
.mapcard__body{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}
.mapcard__body b{font-family:var(--ff-d);font-size:clamp(1.25rem,1.1rem + .5vw,1.55rem);font-weight:500}
.mapcard__body > span{font-size:.85rem;color:var(--ink-45)}
.mapcard__body .linkclay{margin-top:.45rem}
.mapcard__mark{flex:none;width:clamp(3rem,6vw,4rem);color:var(--clay);opacity:.5;transition:opacity .8s var(--ease)}
.mapcard__mark svg{width:100%;height:auto;display:block}
.mapcard:hover .mapcard__mark{opacity:.9}
@media(max-width:560px){.mapcard{flex-direction:column;align-items:flex-start;gap:1.4rem}}

/* ── 16 Footer ───────────────────────────────────────────── */
.foot{
  position:relative;z-index:2;
  padding-top:clamp(2.6rem,5vw,3.8rem);
  background:var(--paper-2);
  border-top:1px solid var(--line-2);
}
.foot__in{
  display:flex;flex-wrap:wrap;gap:2rem;
  align-items:flex-start;justify-content:space-between;
  padding-bottom:clamp(2rem,3.6vw,2.8rem);
}
.brand--foot .brand__txt b{font-size:1.5rem}
.foot__nav{display:flex;flex-wrap:wrap;gap:.7rem 1.8rem}
.foot__nav a,.foot__ct a{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-45);transition:color .5s var(--ease);
}
.foot__nav a:hover,.foot__ct a:hover{color:var(--clay)}
.foot__ct{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}

.foot__legal{border-top:1px solid var(--line-2)}
.foot__legal details{border-bottom:1px solid var(--line-2)}
.foot__legal summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-block:1.15rem;
  font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-62);transition:color .5s var(--ease);
}
.foot__legal summary::-webkit-details-marker{display:none}
.foot__legal summary:hover{color:var(--ink)}
.foot__legal summary::after{
  content:"";flex:none;width:.6rem;height:.6rem;
  border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:rotate(45deg) translate(-.15rem,-.15rem);
  transition:transform .5s var(--soft);
}
.foot__legal details[open] summary::after{transform:rotate(225deg) translate(-.15rem,-.15rem)}

.legal{
  display:flex;flex-direction:column;gap:.9rem;
  padding-bottom:1.9rem;max-width:78ch;
  font-size:.85rem;line-height:1.72;color:var(--ink-62);
}
.legal b{
  display:block;margin-bottom:.15rem;
  font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);
}
.legal a{color:var(--clay);border-bottom:1px solid rgba(169,88,58,.35)}

.foot__bottom{
  display:flex;flex-wrap:wrap;gap:.5rem 1.8rem;justify-content:space-between;
  padding-block:1.6rem;
  font-size:.7rem;letter-spacing:.07em;color:var(--ink-30);
}

/* ── 17 Mobile Leiste ────────────────────────────────────── */
.mobbar{
  position:fixed;left:0;right:0;bottom:0;z-index:115;
  display:none;gap:.6rem;
  padding:.7rem .7rem calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(244,241,233,.94);backdrop-filter:blur(14px);
  border-top:1px solid var(--line-2);
}
.mobbar__b{
  flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:1rem .6rem;border-radius:var(--r);
  border:1px solid var(--line);
  font-size:.74rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);transition:background-color .5s var(--ease),color .5s var(--ease);
}
.mobbar__b svg{width:1rem;height:1rem;fill:currentColor}
.mobbar__b--tel{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.mobbar__b:not(.mobbar__b--tel):hover{background:rgba(43,38,33,.05)}
@media(max-width:700px){
  .mobbar{display:flex}
  body{padding-bottom:calc(4.4rem + env(safe-area-inset-bottom))}
}

/* ── 18 Reduced Motion ───────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js .mask__i,.js [data-in]{opacity:1 !important;transform:none !important;filter:none !important}
  .paper{display:none}
}

/* ── 19 Print ────────────────────────────────────────────── */
@media print{
  body{background:#fff;color:#111}
  .nav,.mobbar,.progress,.paper,.scrollcue,.band,.mapcard,.foot__legal summary::after{display:none !important}
  .sec,.hero{background:none !important;padding-block:1.5rem}
  .accent,.linkclay,.legal a{color:#8B452C}
  .btn{box-shadow:none;border:1px solid #111}
  .foot__legal details{display:block}
  /* Karussell im Druck ausrollen statt abschneiden */
  .revs{
    display:block;overflow:visible;margin-inline:0;padding:0;
    scroll-snap-type:none;scroll-behavior:auto;
  }
  .rev{break-inside:avoid;margin-bottom:.8rem;background:none;border-color:#ccc}
  .revnav{display:none !important}
}
