/* =========================================================================
   Linnemeier · Landingpage „Terrasse fliesen und Balkon sanieren“
   Liegt NACH styles.css und ergänzt nur.
   Neu: Schichtmodell „Was unter der Platte liegt“ (SVG), Saison-Leiste,
   Bildband, Ablauf ohne Bilder, Foto-Referenzen mit Fallbeispielen,
   Gefälle-Pfeil an den Kickern. Keine Bibliothek.
   ========================================================================= */

.lp-hp{display:none}

/* --- Gefälle-Pfeil vor jedem Kicker (wiederkehrendes Motiv, 2 % vom Haus weg) --- */
.lp .kicker{display:flex;align-items:center;gap:.55rem}
.lp .kopf--mitte .kicker{justify-content:center}
.lp .kicker::before{content:"";flex:none;width:30px;height:10px;opacity:.9;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 10' fill='none' stroke='%235C7318' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 2.6 27 6.4'/%3E%3Cpath d='M23.6 3.2 27.4 6.4 23 8.4'/%3E%3C/svg%3E") center / contain no-repeat}
.lp .s-dark .kicker::before,.lp .kontakt .kicker::before,.lp .hero .kicker::before,.lp .aufbau .kicker::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 10' fill='none' stroke='%23C3DD5C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 2.6 27 6.4'/%3E%3Cpath d='M23.6 3.2 27.4 6.4 23 8.4'/%3E%3C/svg%3E")}

/* --- Symbolbild-Marke (Zeichnungen) ----------------------------------- */
.sb-mark{position:absolute;left:.6rem;bottom:.6rem;z-index:4;display:inline-block;padding:.28rem .55rem;border-radius:var(--r-pille);
  background:rgba(28,28,27,.78);color:#fff;font:600 .7rem/1 var(--f-b);letter-spacing:.02em;pointer-events:none}
.lz__p .sb-mark{left:auto;right:.9rem;top:.9rem;bottom:auto}
.msg--foto{position:relative}
.msg--foto .sb-mark{left:.45rem;bottom:1.6rem;font-size:.62rem}

/* =========================================================================
   Hero; Handy: Foto oben, weicher Auslauf
   ========================================================================= */
.hero--lp .hero__ansage{font-size:clamp(2.1rem,3.6vw,3.3rem)}
.hero--lp .hero__ansage .a{text-wrap:balance}
.hero--lp .hero__txt + .hero__txt{margin-top:.7rem}
@media (max-width:980px){
  .kopfleiste--lp{background:rgba(255,255,255,.97);border-bottom-color:var(--line);box-shadow:0 8px 28px rgba(28,28,27,.07);padding:.5rem 0}
  .kopfleiste--lp .marke__hell{display:none}
  .kopfleiste--lp .marke__dunkel{display:block}
  .kopfleiste--lp .marke img{height:42px}
  .hero--lp{--kopf:58px;--bildh:min(100vw,560px);background:var(--ink);padding-top:calc(var(--kopf) + var(--bildh) - 4.5rem)}
  .hero--lp .hero__bg{inset:auto;top:var(--kopf);left:0;right:0;height:var(--bildh)}
  .hero--lp .hero__bg img{height:100%;object-position:50% 50%}
  .hero--lp .hero__bg::after{background:linear-gradient(180deg,rgba(28,28,27,0) 48%,rgba(28,28,27,.62) 74%,var(--ink) 97%)}
}
@media (max-width:520px){
  .hero--lp{--kopf:54px}
  .kopfleiste--lp .marke img{height:38px}
}

/* Fünf Kacheln in Schritt 1 und 2: drei Spalten, letzte Reihe mittig */
.picks--fuenf{grid-template-columns:repeat(6,minmax(0,1fr))}
.picks--fuenf .pick{grid-column:span 2}
.picks--fuenf .pick:nth-child(4){grid-column:2/span 2}
@media (max-width:520px){
  .picks--fuenf{grid-template-columns:repeat(4,minmax(0,1fr))}
  .picks--fuenf .pick:nth-child(4){grid-column:auto/span 2}
  .picks--fuenf .pick:nth-child(5){grid-column:2/span 2}
}
.feld__hinweis{margin:.2rem 0 .6rem;font-size:.82rem;line-height:1.45;color:var(--txt-2)}
.feld__hinweis a{color:var(--acc-2);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.formstate .btn{margin-top:1rem}
.formstate p + p{margin-top:.45rem}

/* =========================================================================
   Schichtmodell „Was unter der Platte liegt“ (Display-Trick A32)
   ========================================================================= */
.aufbau{background:var(--ink-2);color:var(--on-dark);border-block:1px solid var(--dark-line)}
.aufbau .lead{color:var(--on-dark-2)}
.aufbau h2,.aufbau h2 .z{color:var(--on-dark)}
.aufbau h2 .a{color:var(--acc)}
.aufbau .kicker{color:var(--acc-3)}
.aufbau__raster{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);gap:clamp(1.8rem,4vw,3.6rem);align-items:center}
.schnitt{position:relative;margin:0;border-radius:var(--r-gross);background:var(--ink);border:1px solid var(--dark-line);padding:clamp(.8rem,2vw,1.4rem) clamp(.6rem,1.6vw,1.2rem) .9rem}
.schnitt svg{display:block;width:100%;height:auto}
.schnitt figcaption{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.6rem;padding:0 .3rem;font-size:.8rem;color:var(--on-dark-2)}
.schnitt__knopf{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;border-radius:var(--r-pille);border:1px solid rgba(195,221,92,.55);
  background:transparent;color:var(--acc-3);font:600 .85rem/1 var(--f-b);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}
.schnitt__knopf:hover,.schnitt__knopf[aria-pressed="true"]{background:var(--acc);color:var(--acc-auf);border-color:var(--acc)}
.schnitt__knopf:focus-visible,.schicht-k:focus-visible{outline:3px solid var(--acc-3);outline-offset:3px}
.schnitt__knopf svg{width:16px;height:16px}

.schicht{transition:transform .9s var(--e-calm),opacity .35s var(--ease);transform-box:view-box}
.schnitt.is-auf .schicht--2{transform:translateY(-28px)}
.schnitt.is-auf .schicht--3{transform:translateY(-56px)}
.schnitt.is-auf .schicht--4{transform:translateY(-84px)}
.schnitt.is-auf .schicht--5{transform:translateY(-112px)}
.schnitt.is-auf .schicht--2{transition-delay:.05s}
.schnitt.is-auf .schicht--3{transition-delay:.1s}
.schnitt.is-auf .schicht--4{transition-delay:.15s}
.schnitt.is-auf .schicht--5{transition-delay:.2s}
.schnitt.hat-hl .schicht{opacity:.32}
.schnitt.hat-hl .schicht.is-hl{opacity:1}
.schnitt__pfeil{stroke-dasharray:520;stroke-dashoffset:520;transition:stroke-dashoffset 1.2s var(--e-calm) .25s}
.schnitt.is-da .schnitt__pfeil{stroke-dashoffset:0}
.schnitt__nr text{font:700 12px/1 var(--f-b);fill:var(--acc-auf)}
.schnitt__label{font:600 13px/1 var(--f-b);fill:var(--acc-3)}

.schichten{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:.5rem}
.schichten li{border-radius:var(--r-klein);border:1px solid var(--dark-line);background:rgba(255,255,255,.03);transition:border-color .2s var(--ease),background .2s var(--ease)}
.schichten li.is-hl{border-color:rgba(195,221,92,.6);background:rgba(162,192,53,.08)}
.schicht-k{display:grid;grid-template-columns:30px minmax(0,1fr);gap:.75rem;align-items:start;width:100%;padding:.8rem .95rem;border:0;background:none;text-align:left;color:inherit;cursor:pointer;border-radius:var(--r-klein)}
.schicht-k__nr{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--acc);color:var(--acc-auf);font:700 .95rem/1 var(--f-d);padding-top:.06em}
.schicht-k__t{font-size:.9rem;line-height:1.5;color:var(--on-dark-2)}
.schicht-k__t b{color:#fff;font-weight:600}
.aufbau__cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
.aufbau .btn--geist{color:#fff;border-color:rgba(255,255,255,.3)}

/* =========================================================================
   Saison — Text und Jahresleiste
   ========================================================================= */
.saison__raster{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,4.5vw,4.4rem);align-items:center}
.saison__text p + p{margin-top:1rem}
.saison__cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.6rem}
.jahr{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-gross);padding:1.5rem 1.3rem 1.3rem}
.jahr__t{font:700 1.15rem/1 var(--f-d);text-transform:uppercase;letter-spacing:.006em;padding-top:.06em}
.jahr__monate{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;margin-top:1rem}
.jahr__monate span{display:grid;place-items:end center;height:74px;padding-bottom:.4rem;border-radius:8px;background:var(--paper);border:1px solid var(--line);
  font:600 .72rem/1 var(--f-b);color:var(--txt-2)}
.jahr__monate .ist-plan{background:var(--ink);border-color:var(--ink);color:#fff}
.jahr__monate .ist-bau{background:var(--acc);border-color:var(--acc);color:var(--acc-auf)}
.jahr__legende{display:flex;gap:1rem 1.4rem;flex-wrap:wrap;margin-top:1rem;font-size:.84rem;color:var(--txt-2)}
.jahr__legende span{display:inline-flex;align-items:center;gap:.45rem}
.jahr__legende i{width:14px;height:14px;border-radius:4px;background:var(--ink)}
.jahr__legende i.ist-bau{background:var(--acc)}
.jahr__hinweis{margin-top:.8rem;font-size:.8rem;line-height:1.5;color:var(--txt-2)}

/* --- Bildband über die volle Breite ---------------------------------- */
.bildband{position:relative;height:clamp(200px,26vw,360px);overflow:hidden;background:var(--ink)}
.bildband img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.bildband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,28,27,.0) 55%,rgba(28,28,27,.35))}

/* =========================================================================
   Bewertungen als Liste — links die Note (klebt), rechts die Stimmen
   ========================================================================= */
.stimmen__raster{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.stimmen__note{position:sticky;top:104px}
.stimmen__score{display:inline-grid;gap:.55rem;margin-top:1.6rem;justify-items:start;padding:1.2rem 1.4rem;border-radius:var(--r);
  background:var(--paper-2);border:1px solid var(--line);transition:border-color .2s var(--ease),transform .2s var(--spring)}
.stimmen__score:hover{border-color:var(--acc);transform:translateY(-2px)}
.stimmen__score > b{font:700 clamp(4.2rem,7vw,5.8rem)/.85 var(--f-d);color:var(--txt);padding-top:.06em}
.stimmen__score .sterne svg{width:22px;height:22px}
.stimmen__g{display:inline-flex;align-items:center;gap:.5rem;font:600 .9rem/1.2 var(--f-b);color:var(--txt-2)}
.stimmen__cta{margin-top:1.5rem}
.stimme{margin:0;padding:1.45rem 0;border-top:1px solid var(--line)}
.stimme:last-child{border-bottom:1px solid var(--line)}
.stimme .sterne svg{width:15px;height:15px}
.stimme p{margin-top:.6rem;font-size:1.06rem;line-height:1.6;color:var(--txt)}
.stimme footer{margin-top:.7rem;font-size:.84rem;color:var(--txt-2)}
.stimme footer b{color:var(--txt);font-weight:600;margin-right:.55rem}
.stimme footer span{display:inline-block}

/* --- Vergleich: graue Kreuze (Fehlerliste) ---------------------------- */
.lp .vgl__and li svg{color:var(--txt-3)}
.vgl__satz{max-width:44rem;margin:1.6rem auto 0;text-align:center;font-size:.98rem;line-height:1.6;color:var(--txt-2)}

/* =========================================================================
   Ablauf — vier Kästen ohne Bild, Nummernkreis am Rand
   ========================================================================= */
.ablauf--ohne .schrittk__k{border-top:1px solid var(--line);border-radius:var(--r);padding-top:2.3rem;background:var(--paper)}
.ablauf--ohne{margin-top:1.4rem}
.ablauf--ohne .schrittk__nr{left:1.2rem;right:auto}
.ablauf--ohne .schrittk h3{padding-right:0}
.ablauf__cta{margin-top:2.2rem;text-align:center;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* =========================================================================
   Referenzen — zwei echte Fotos, darunter zwei Ausgangslagen ohne Bild
   ========================================================================= */
.fotos{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1.2rem;align-items:start}
.foto{margin:0}
.foto img{width:100%;height:auto;border-radius:var(--r);display:block;background:var(--paper-3)}
.foto--hoch img{aspect-ratio:4/5;object-fit:cover}
.foto--breit img{aspect-ratio:3/2;object-fit:cover}
.foto figcaption{margin-top:.6rem;font-size:.88rem;line-height:1.5;color:var(--txt-2)}
.faelle__kopf{margin:clamp(2.6rem,5vw,3.6rem) 0 1.2rem;font:700 clamp(1.3rem,1.1rem + .8vw,1.7rem)/1.1 var(--f-d);text-transform:uppercase;letter-spacing:.006em}
.faelle{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.fall{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.4rem 1.3rem}
.fall__t{display:block;font:600 .8rem/1.3 var(--f-b);color:var(--acc-2);margin-bottom:.35rem}
.fall h4{font:700 1.25rem/1.05 var(--f-d);text-transform:uppercase;letter-spacing:.006em;padding-top:.06em}
.fall dl{margin:.9rem 0 0;display:grid;gap:.6rem}
.fall dt{font-weight:600;font-size:.9rem;color:var(--txt)}
.fall dd{margin:.1rem 0 0;font-size:.92rem;line-height:1.55;color:var(--txt-2)}
.faelle__zeile{margin-top:.9rem;font-size:.84rem;color:var(--txt-2)}
.ref__cta{margin-top:2rem;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* =========================================================================
   Kosten — Text links, sechs Kostenfaktoren rechts
   ========================================================================= */
.kosten__raster{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,4.6vw,4.4rem);align-items:start}
.kosten__schluss{margin-top:1rem;font-size:.98rem;line-height:1.6;color:var(--txt-2)}
.treiber{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.treiber__k{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:.85rem;row-gap:.2rem;align-items:start;
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.05rem;
  transition:border-color .22s var(--ease),transform .22s var(--spring),box-shadow .22s var(--ease)}
.treiber__k:hover{border-color:var(--acc);transform:translateY(-2px);box-shadow:var(--sh)}
.treiber__k svg{grid-row:span 2;width:40px;height:40px;padding:8px;border-radius:11px;background:var(--paper);border:1px solid var(--line);color:var(--acc-2)}
.treiber__k b{font:600 .95rem/1.3 var(--f-b);color:var(--txt)}
.treiber__k p{font-size:.84rem;line-height:1.5;color:var(--txt-2)}
.kosten__cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.7rem}

/* --- Final-CTA -------------------------------------------------------- */
.final{text-align:center}
.final .lead{margin-inline:auto}
.final__links{margin-top:1rem;font-size:.92rem;line-height:1.6;color:var(--txt-2)}
.final__links a{color:var(--acc-2);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.final__btns{margin-top:1.6rem;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* Kleine Hilfstexte mindestens 4,5 : 1 (Startseiten-Token txt-3 liegt bei 4,2) */
.lp .form__kopf p,.lp .fortschritt__z,.lp .google-zeile{color:var(--txt-2)}
.lp .chat__head b + span{color:#1A7A43}
.lp .chat__status > span > span,.lp .chat__tag{color:var(--txt-2)}

/* Liste direkt nach dem Einleitungsabsatz braucht Luft */
.lead + .haken{margin-top:1.3rem}

/* Einzugsgebiet auf weißem Grund: Rand-Verlauf angleichen */
#gebiet .gebiet__karte::before{background:linear-gradient(to bottom,var(--paper),transparent)}
#gebiet .gebiet__karte::after{background:linear-gradient(to top,var(--paper),transparent)}

/* Endlosschleifen laufen nur, solange sie im Bild sind */
html.js [data-loop]:not(.loop-an) .marken__spur{animation-play-state:paused}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width:980px){
  .aufbau__raster,.saison__raster,.stimmen__raster,.kosten__raster{grid-template-columns:minmax(0,1fr)}
  .stimmen__note{position:static}
}
@media (max-width:760px){
  .fotos,.faelle{grid-template-columns:1fr}
  .foto--hoch img{aspect-ratio:1/1}
  .treiber{grid-template-columns:1fr}
  .kosten__cta .btn,.saison__cta .btn,.aufbau__cta .btn{width:100%}
  .jahr__monate span{height:56px;font-size:.62rem}
  .schnitt figcaption{justify-content:center;text-align:center}
}
@media (max-width:420px){
  .lp .btn--lg{padding-inline:1rem;font-size:clamp(.88rem,4.2vw,1rem)}
  .jahr{padding:1.2rem .9rem 1rem}
  .jahr__monate{gap:2px}
}

/* =========================================================================
   Weniger Bewegung: Endzustand sofort (Schichten auseinander), keine Schleifen
   ========================================================================= */
@media (prefers-reduced-motion:reduce){
  .schicht,.schnitt__pfeil,.treiber__k,.stimmen__score,.schichten li,.schnitt__knopf{transition:none !important}
  .schnitt__pfeil{stroke-dasharray:none;stroke-dashoffset:0}
}

/* =========================================================================
   Vergleich als echte Tabelle
   ========================================================================= */
.vh{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.vgt-wrap{max-width:880px;margin:2rem auto 0;background:var(--paper,#fff);border-radius:var(--r,14px);box-shadow:var(--sh);overflow:hidden}
.vgt{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.4}
.vgt th,.vgt td{padding:.85rem 1rem;border-bottom:1px solid rgba(28,28,27,.08);vertical-align:middle}
.vgt tbody tr:last-child th,.vgt tbody tr:last-child td{border-bottom:0}
.vgt thead th{font-size:.8rem;font-weight:700;letter-spacing:.02em;text-transform:none;color:var(--txt-2);background:rgba(28,28,27,.03)}
.vgt tbody th{text-align:left;font-weight:600;color:var(--txt)}
.vgt__w,.vgt__a{text-align:center;width:24%}
.vgt thead .vgt__w img{height:34px;width:auto;margin-inline:auto;display:block}
.vgt td.vgt__w{background:rgba(162,192,53,.08)}
.vgt td svg{width:22px;height:22px;display:inline-block;vertical-align:middle}
.vgt td.vgt__w svg{color:var(--acc-2)}
.vgt td.vgt__a svg{color:var(--txt-3)}
.vgt__t{display:block;font-size:.74rem;color:var(--txt-3);margin-top:.15rem}
.vgl__cta{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1.6rem}
@media (max-width:600px){
  .vgt{font-size:.84rem}
  .vgt th,.vgt td{padding:.7rem .55rem}
  .vgt__w,.vgt__a{width:26%}
  .vgt thead .vgt__w img{height:24px}
  .vgl__cta .btn{width:100%}
}

/* =========================================================================
   Messlauf R1: lange Überschriften (Wortlaut 06 bleibt), Handy-Überlauf, Ziele
   ========================================================================= */
.lp main h2{font-size:clamp(1.5rem,2.45vw,2.15rem);line-height:1.02}
.hero--lp .hero__ansage{font-size:clamp(1.8rem,2.75vw,2.6rem)}
@media (max-width:980px){
  .lp .hero__in,.lp .wa,.lp .vor,.lp .ueber,.lp .gebiet,.lp .kontakt__in,.lp .vgl,.lp .wg,.lp .li,.lp .dp,.lp .ag{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:520px){
  .lp main h2{font-size:1.42rem}
  .hero--lp .hero__ansage{font-size:1.72rem}
}
.lp main h2,.hero--lp .hero__ansage{overflow-wrap:break-word}
.schnitt__knopf{min-height:44px}
.vgt__t{color:var(--txt-2)}
@media (max-width:1000px){
  .lp .lz__p::after{background:linear-gradient(180deg,rgba(20,20,19,.6) 0%,rgba(20,20,19,.66) 30%,rgba(20,20,19,.86) 66%,rgba(20,20,19,.95) 100%)}
}
@media (max-width:400px){
  .lp main h2{font-size:1.3rem}
  .hero--lp .hero__ansage{font-size:1.55rem}
}
/* Messlauf R2 */
@media (min-width:521px){.lp main h2{font-size:clamp(1.45rem,2.2vw,2rem)}}
@media (max-width:440px){#vergleich h2,#referenzen h2{font-size:1.2rem}}
.lp .lz__p.is-on::after{background:linear-gradient(180deg,rgba(20,20,19,.66) 0%,rgba(20,20,19,.5) 30%,rgba(20,20,19,.84) 66%,rgba(20,20,19,.95) 100%)}
