/* LiRo home redesign, derived from approved preview Fassung 3. Scope: home only. */
body.home{
  --blau:#0c2c5c; --blau-tief:#071b3b; --blau-hauch:#dde3ee;
  --leinen:#f2eadf; --sand:#e0d3c1; --taupe:#6b5f53; --tinte:#16202e; --nacht:#0e1a2b;
  --messing:#96680f; --messing-hell:#e3a529; --hell:#fbf7f1;
  --rand:clamp(20px,5vw,72px);
  --text:"Jost",Futura,"Century Gothic","Segoe UI",sans-serif;
  --titel:"Young Serif",Georgia,serif; --titel-gewicht:400; --titel-sperrung:-.012em;
}
body.home *{box-sizing:border-box}
html{scroll-behavior:smooth}
body.home{margin:0;font-family:var(--text);font-size:18px;line-height:1.55;color:var(--tinte);-webkit-font-smoothing:antialiased;
  background-color:var(--leinen);
  background-image:repeating-linear-gradient(0deg,rgba(126,100,66,.04) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(126,100,66,.03) 0 1px,transparent 1px 3px)}
body.home img{display:block;max-width:100%}
body.home a{color:inherit}
body.home h1, body.home h2, body.home h3{font-family:var(--titel);font-weight:var(--titel-gewicht);letter-spacing:var(--titel-sperrung);line-height:1.05;margin:0}
body.home h2{font-size:clamp(2.2rem,4.2vw,3.9rem)}
body.home p{margin:0}
body.home button, body.home select, body.home input{font:inherit;color:inherit}
body.home :focus-visible{outline:3px solid var(--messing-hell);outline-offset:3px}
body.home .knopf{display:inline-block;border:0;border-radius:4px;background:var(--messing-hell);color:#1a1405;padding:.8em 1.4em;font-weight:500;text-decoration:none;cursor:pointer}
body.home .knopf:hover{background:#f0b63c}
body.home .knopf.still{background:transparent;color:var(--blau);box-shadow:inset 0 0 0 1.5px var(--blau)}
body.home .knopf.still:hover{background:var(--blau-hauch)}
body.home .oben{position:relative}
body.home .buehne{position:relative;z-index:2;min-height:min(820px,calc(100vh - 104px));display:flex;background:var(--blau-tief)}
body.home .bildband{position:absolute;inset:0 0 0 30%;overflow:hidden}
body.home .bildband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}
body.home .bildband img.an{opacity:1}
body.home .bildband::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,16,30,.5),rgba(8,16,30,0) 24%,rgba(8,16,30,0) 60%,rgba(8,16,30,.5))}
body.home .bildwahl{position:absolute;z-index:2;right:var(--rand);bottom:64px;display:flex;align-items:center;gap:1rem;color:#fff}
body.home .bildwahl p{font-size:1.05rem;font-weight:500;text-shadow:0 1px 12px rgba(0,0,0,.6)}
body.home .bildwahl .striche{display:flex;gap:6px}
body.home .bildwahl .striche button{width:26px;height:22px;padding:0;border:0;background:none;cursor:pointer;position:relative}
body.home .bildwahl .striche button::before{content:"";position:absolute;left:0;right:0;top:9px;height:3px;border-radius:2px;background:rgba(255,255,255,.45)}
body.home .bildwahl .striche button[aria-pressed="true"]::before{background:var(--messing-hell)}
body.home .bildwahl .halt{border:1px solid rgba(255,255,255,.6);background:rgba(8,16,30,.35);color:#fff;border-radius:2em;padding:.15em .9em;font-size:.88rem;cursor:pointer}
body.home .schild{position:relative;z-index:3;width:min(620px,45vw);background:var(--blau);color:#fff;padding:30px clamp(26px,3vw,48px) 96px var(--rand);display:flex;flex-direction:column;box-shadow:18px 0 50px rgba(6,16,36,.32)}
body.home .marke{font-family:var(--titel);font-weight:var(--titel-gewicht);letter-spacing:var(--titel-sperrung);font-size:3.7rem;line-height:.95}
body.home .marke small{display:block;font-family:var(--text);font-weight:400;letter-spacing:.01em;font-size:1.35rem;margin-top:.4em;opacity:.92}
body.home .schild h1{margin-top:auto;padding-top:2rem;font-size:clamp(2.5rem,4.1vw,3.9rem);text-wrap:balance}
body.home .schild .unter{margin-top:1.3rem;font-size:1.15rem;max-width:30ch;opacity:.93}
body.home .suche{position:absolute;z-index:4;left:var(--rand);bottom:-38px;width:min(1080px,calc(100% - 2*var(--rand)));display:grid;grid-template-columns:1.5fr 1fr 1fr .9fr auto;background:var(--hell);color:var(--tinte);border-radius:6px;box-shadow:0 22px 50px -12px rgba(6,16,36,.5);overflow:hidden}
body.home .suche label{display:flex;flex-direction:column;gap:1px;padding:13px 18px 11px;border-right:1px solid var(--sand);font-size:.86rem;color:var(--taupe);min-width:0}
body.home .suche select, body.home .suche input{border:0;background:transparent;padding:0;font-size:1.08rem;font-weight:500;color:var(--tinte);min-height:30px;width:100%}
body.home .suche :focus-visible{outline-offset:-3px}
body.home .suche .knopf{border-radius:0;padding:0 1.7em;font-size:1.05rem;min-height:76px}
body.home .haeuser{padding:clamp(110px,11vw,170px) var(--rand) clamp(60px,8vw,120px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4vw,56px) clamp(28px,5vw,80px);align-items:start}
body.home .haeuser header{grid-column:1/-1}
body.home .haeuser header p{color:var(--taupe);max-width:60ch;font-size:1.1rem;margin-top:1rem}
body.home .liste{list-style:none;margin:0;padding:0;border-top:1px solid rgba(22,32,46,.16)}
body.home .liste li{border-bottom:1px solid rgba(22,32,46,.16)}
body.home .zeile{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.1rem 1rem;width:100%;text-align:left;background:none;border:0;padding:.85rem .2rem .9rem 0;cursor:pointer;position:relative;transition:padding-left .2s ease}
body.home .zeile .stadt{font-family:var(--titel);font-weight:var(--titel-gewicht);letter-spacing:var(--titel-sperrung);font-size:clamp(1.7rem,2.7vw,2.5rem);line-height:1.1}
body.home .zeile .haus{grid-column:1;font-size:.98rem;color:var(--taupe)}
body.home .zeile .bald{grid-row:1;grid-column:2;font-size:.85rem;font-weight:500;color:var(--messing);border:1.5px solid currentColor;border-radius:2em;padding:.12em .85em;white-space:nowrap}
body.home .zeile[aria-current="true"]{padding-left:1.3rem;color:var(--blau)}
body.home .zeile[aria-current="true"]::before{content:"";position:absolute;left:0;top:.8rem;bottom:.8rem;width:5px;background:var(--blau)}
body.home .zeile img{display:none}
body.home .schau{position:sticky;top:72px}
body.home .schau figure{margin:0;position:relative}
body.home .schau .gross{aspect-ratio:3/2;width:100%;object-fit:cover;box-shadow:0 34px 60px -34px rgba(22,32,46,.6)}
body.home .schau .klein{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
body.home .schau .klein img{aspect-ratio:3/2;object-fit:cover;width:100%}
body.home .schau h3{font-size:2rem;margin-top:1.5rem}
body.home .schau .adresse{color:var(--taupe);margin-top:.25rem}
body.home .schau .text{margin-top:.8rem;max-width:52ch}
body.home .schau .tasten{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.3rem}
body.home .ankommen{background:var(--nacht);color:#e9e1d4;padding:clamp(60px,8vw,120px) var(--rand);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,6vw,96px);align-items:center}
body.home .ankommen img{aspect-ratio:4/5;object-fit:cover;width:100%;max-height:700px}
body.home .ankommen h2{color:#fff}
body.home .ankommen .vorweg{margin-top:1.1rem;font-size:1.15rem;max-width:40ch;color:#c9c0b2}
body.home .schritte{list-style:none;counter-reset:s;margin:2.4rem 0 0;padding:0;display:grid;gap:1.7rem}
body.home .schritte li{counter-increment:s;display:grid;grid-template-columns:3.4rem 1fr;gap:0 1rem}
body.home .schritte li::before{content:counter(s);font-family:var(--titel);font-weight:var(--titel-gewicht);font-size:2.7rem;line-height:1;color:var(--messing-hell)}
body.home .schritte h3{font-family:var(--text);font-size:1.35rem;font-weight:500;letter-spacing:0;line-height:1.25;color:#fff}
body.home .schritte p{grid-column:2;color:#b9b0a2;margin-top:.25rem;max-width:44ch}
body.home .schritte p.code{display:inline-flex;gap:.5rem;margin-top:.8rem}
body.home .code span{width:2.4rem;height:3rem;display:grid;place-items:center;background:#17263c;color:#5d6a7e;border:1px solid #2a3b56;font-size:1.4rem;font-weight:500;border-radius:4px;font-variant-numeric:tabular-nums;transition:background .4s ease,color .4s ease,box-shadow .4s ease,border-color .4s ease}
body.home .code.an span{background:var(--messing-hell);border-color:var(--messing-hell);color:#1a1405;box-shadow:0 0 26px rgba(227,165,41,.5)}
body.home .code.an span:nth-child(2){transition-delay:.35s}
body.home .code.an span:nth-child(3){transition-delay:.7s}
body.home .code.an span:nth-child(4){transition-delay:1.05s}
body.home .wohnen{padding:clamp(60px,8vw,120px) var(--rand)}
body.home .wohnen header{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,80px);align-items:end;margin-bottom:2.4rem}
body.home .wohnen header p{color:var(--taupe);max-width:44ch;font-size:1.1rem;padding-bottom:.4rem}
body.home .mosaik{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
body.home .mosaik figure{margin:0;position:relative;grid-column:span 5;background:var(--sand)}
body.home .mosaik figure.weit{grid-column:span 7}
body.home .mosaik img{width:100%;height:clamp(260px,30vw,520px);object-fit:cover}
body.home .mosaik figcaption{position:absolute;left:0;bottom:0;background:var(--hell);padding:.35em .9em;font-size:.9rem;font-weight:500}
body.home .direkt{background:var(--blau);color:#fff;padding:clamp(52px,7vw,104px) var(--rand);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:start}
body.home .direkt ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
body.home .direkt li{border-top:2px solid var(--messing-hell);padding-top:1rem}
body.home .direkt li strong{display:block;font-weight:500;font-size:1.2rem;margin-bottom:.3rem}
body.home .direkt li span{opacity:.9;font-size:1rem}
body.home .direkt .knopf{margin-top:1.8rem}
body.home dialog{border:0;padding:0;width:min(1180px,96vw);max-height:92vh;background:var(--hell);color:var(--tinte)}
body.home dialog::backdrop{background:rgba(8,16,30,.78)}
body.home .blatt{padding:clamp(20px,3vw,44px)}
body.home .blatt .oben{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1.4rem}
body.home .blatt h2{font-size:clamp(1.9rem,3.2vw,2.9rem)}
body.home .blatt .adresse{color:var(--taupe);margin-top:.3rem}
body.home .blatt .beispiel{margin-top:.5rem;color:var(--messing);font-weight:500}
body.home .zu{background:none;border:0;font-size:1rem;cursor:pointer;text-decoration:underline;text-underline-offset:.25em;padding:.4em}
body.home .blatt figure{margin:0;min-width:0}
body.home .blatt figure img{width:100%;object-fit:cover;background:var(--sand)}
body.home .blatt .leitbild img{aspect-ratio:16/9}
body.home .blatt .reihe{display:flex;gap:12px;margin-top:12px}
body.home .blatt figcaption{font-size:.9rem;padding:.4em 0 .1em;display:flex;justify-content:space-between;gap:.8rem}
body.home .blatt figcaption em{font-style:normal;color:var(--messing)}
@media (max-width:1100px) {
body.home .suche{grid-template-columns:1fr 1fr 1fr;bottom:-70px}
body.home .suche label.haus{grid-column:1/-1;border-bottom:1px solid var(--sand)}
body.home .suche .knopf{grid-column:1/-1;min-height:54px}
body.home .haeuser{padding-top:150px}
}
@media (max-width:900px) {
body.home{font-size:17px}
body.home .buehne{flex-direction:column;min-height:0;background:var(--blau)}
body.home .bildband{position:relative;inset:auto;height:46vh;min-height:260px}
body.home .bildwahl{right:16px;left:16px;bottom:14px;gap:.7rem;justify-content:flex-end}
body.home .bildwahl{flex-wrap:wrap;row-gap:.3rem}
body.home .bildwahl p{flex-basis:100%;font-size:.98rem}
body.home .bildwahl .striche button{width:20px}
body.home .schild{margin:0;width:100%;box-shadow:none;padding:26px var(--rand) 24px}
body.home .schild .marke{display:none}
body.home .schild h1{margin-top:0;padding-top:0;font-size:clamp(2.3rem,10vw,3.2rem)}
body.home .suche{position:static;width:auto;margin:0 var(--rand) 30px;grid-template-columns:1fr 1fr;box-shadow:none}
body.home .suche label.haus, body.home .suche label.gast{grid-column:1/-1;border-right:0}
body.home .suche label{border-bottom:1px solid var(--sand)}
body.home .suche label.ab{border-right:0}
body.home .haeuser{padding-top:56px}
body.home .haeuser, body.home .ankommen, body.home .direkt, body.home .wohnen header{grid-template-columns:1fr}
body.home .schau{display:none}
body.home .zeile{padding:.35rem 0;gap:0 .5rem}
body.home .zeile .stadt{font-size:1.35rem}
body.home .zeile .haus{font-size:.82rem;line-height:1.2}
body.home .zeile img{display:block;grid-column:1/-1;width:calc(100% - 32px);height:auto;aspect-ratio:16/9;object-fit:cover;margin:0 auto .25rem}
body.home .zeile .bald{position:absolute;right:.3rem;top:1rem;background:#f3ebdd;z-index:1}
body.home .mosaik figure, body.home .mosaik figure.weit{grid-column:1/-1}
body.home .mosaik figure.weit img{aspect-ratio:3/2}
body.home .direkt ul{grid-template-columns:1fr}
body.home .blatt .reihe{flex-direction:column}
body.home .blatt .reihe .fueller{display:none}
}
@media (prefers-reduced-motion:reduce) {
html{scroll-behavior:auto}
body.home .zeile, body.home .bildband img, body.home .code span{transition:none}
body.home .code.an span:nth-child(n){transition-delay:0s}
}
body.home .karte{padding:clamp(100px,10vw,150px) var(--rand) clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start}
body.home .karte header p{color:var(--taupe);max-width:46ch;font-size:1.1rem;margin-top:1rem}
body.home .orte{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.6rem}
body.home .liro-v3-map-copy,body.home .liro-v3-distance-panel{min-width:0;width:100%}
body.home .orte button{border:1.5px solid rgba(22,32,46,.22);background:var(--hell);border-radius:2em;padding:.35em 1em;cursor:pointer;font-size:.98rem}
body.home .orte button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
body.home .orte button[aria-pressed="true"]{background:var(--blau);border-color:var(--blau);color:#fff}
body.home .weite{margin-top:1.6rem}
body.home .weite h3{font-family:var(--text);font-weight:500;letter-spacing:0;font-size:1.2rem}
body.home .weite table{width:100%;border-collapse:collapse;margin-top:.6rem;font-size:1rem}
body.home .weite table{table-layout:fixed}
body.home .weite td{padding:.5rem .2rem;border-bottom:1px solid rgba(22,32,46,.12);vertical-align:baseline}
body.home .weite td:first-child{overflow-wrap:anywhere}
body.home .weite td.km{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:500}
body.home .weite td.weg{text-align:right;white-space:nowrap}
body.home .weite td.weg a{font-size:.9rem;color:var(--blau)}
body.home .weite .ziel td:first-child{color:var(--taupe)}
body.home .weite .klein{font-size:.85rem;color:var(--taupe);margin-top:.6rem}
body.home #landkarte{width:100%;aspect-ratio:4/3;min-height:360px;background:var(--sand);box-shadow:0 34px 60px -34px rgba(22,32,46,.6)}
body.home .leaflet-container img{max-width:none}
body.home .karte + .haeuser{padding-top:clamp(48px,6vw,90px)}
body.home .lpunkt{display:block;width:18px;height:18px;border-radius:50%;background:var(--blau);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.4)}
body.home .lpunkt.bald{background:var(--messing-hell)}
body.home .lpunkt.an{transform:scale(1.35);background:var(--messing-hell)}
body.home .umgebung{list-style:none;padding:0;margin:.9rem 0 0;display:grid;gap:.3rem;font-size:.98rem}
body.home .umgebung li::before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--messing-hell);margin-right:.6em;vertical-align:.08em}
body.home .anfragen{padding:clamp(52px,7vw,96px) var(--rand);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:start}
body.home .anfragen ul{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
body.home .anfragen li{border:1.5px solid var(--blau);color:var(--blau);border-radius:2em;padding:.3em 1em;font-weight:500}
body.home .anfragen p{max-width:52ch;font-size:1.1rem}
body.home .anfragen .knopf{margin-top:1.4rem}
body.home .blatt .rechts{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
body.home .zu.gross{font-size:1.05rem;text-decoration:none;border:1.5px solid var(--tinte);border-radius:4px;padding:.65em 1.3em}
body.home .zu.gross:hover{background:var(--leinen)}
body.home .bestpreis{font-size:1.05rem}
@media (max-width:900px) {
body.home .karte, body.home .anfragen{grid-template-columns:1fr}
body.home .karte{padding-top:56px}
body.home .marke{font-size:3rem}
body.home .blatt .oben{flex-direction:column}
body.home .blatt .rechts{justify-content:flex-start}
}
body.home h2{text-wrap:balance}
