/* Google-Bewertungen, volle Breite (Startseite unten) */
.rv { --ink: #26261f; --mut: #6c685d; --red: #9d343a; background: #f2f0e8; color: var(--ink); font-family: 'DM Sans', sans-serif; padding: clamp(64px, 8vw, 120px) 0; overflow: hidden; scroll-margin-top: 80px; }
.rv-wrap { max-width: 1400px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 64px); }
.rv-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 18px clamp(24px, 5vw, 80px); align-items: end; margin-bottom: clamp(28px, 4vw, 52px); }
.rv-eyebrow { grid-column: 1/-1; margin: 0; font-size: 10.5px; font-weight: 700; letter-spacing: .18em; color: var(--red); }
.rv h2 { margin: 0; font: 500 clamp(36px, 5vw, 76px)/.98 'Manrope', sans-serif; letter-spacing: -.055em; }
.rv h2 em { font-style: normal; color: var(--red); }
.rv-sum { display: flex; flex-direction: column; gap: 16px; }
.rv-badge { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.rv-g { width: 26px; height: 26px; flex: none; }
.rv-score { font: 700 44px/1 'Manrope', sans-serif; letter-spacing: -.04em; }
.rv-badge small { width: 100%; font-size: 13.5px; color: var(--mut); }
.rv-stars { display: inline-flex; gap: 2px; }
.rv-stars i { display: grid; width: 18px; height: 18px; }
.rv-stars svg { width: 100%; height: 100%; fill: rgba(38,38,31,.15); }
.rv-stars i.on svg { fill: #f5b301; }
.rv-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.rv-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 13.5px; font-weight: 700; text-decoration: none; transition: transform .2s; }
.rv-btn:active { transform: scale(.96); }
.rv-btn.ghost { background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(38,38,31,.14); }

.rv-card { display: flex; flex-direction: column; gap: 12px; padding: 22px 22px 18px; border-radius: 22px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 1px 0 rgba(38,38,31,.05), 0 24px 50px -34px rgba(40,34,24,.45); transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s; }
@media (hover: hover) { .rv-card:hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(38,38,31,.05), 0 34px 60px -30px rgba(40,34,24,.5); } }
.rv-card:active { transform: scale(.98); }
.rv-top { display: grid; grid-template-columns: 40px 1fr 22px; gap: 12px; align-items: center; }
.rv-top .rv-g { width: 22px; height: 22px; }
.rv-av { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--red); color: #fff; font-weight: 700; font-size: 15px; }
.rv-top b { display: block; font-size: 14.5px; }
.rv-top small { font-size: 12px; color: #8d887c; }
.rv-card .rv-stars i { width: 15px; height: 15px; }
.rv-card blockquote { margin: 0; font: 500 15.5px/1.55 'Manrope', sans-serif; letter-spacing: -.01em; color: #2b2a24; display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.rv-more { margin-top: auto; font-size: 12.5px; font-weight: 700; color: var(--red); }

.rv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 14px; }
.rv-marquee { display: grid; gap: 14px; margin: 0 calc(-1 * clamp(16px, 4vw, 64px)); -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.rv-row { overflow: hidden; }
.rv-track { display: flex; gap: 14px; width: max-content; animation: rvRun var(--d, 60s) linear infinite; }
.rv-row.rev .rv-track { animation-direction: reverse; }
.rv-marquee:hover .rv-track, .rv-marquee:focus-within .rv-track { animation-play-state: paused; }
.rv-track .rv-card { width: 340px; flex: none; }
@keyframes rvRun { to { transform: translateX(calc(-50% - 7px)); } }
.rv-note { margin: 18px 0 0; font-size: 11.5px; color: #8a867b; }
@media (max-width: 760px) {
  .rv-head { grid-template-columns: 1fr; }
  .rv-grid { grid-auto-flow: column; grid-auto-columns: 84vw; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(-1 * clamp(16px, 4vw, 64px)); padding: 0 clamp(16px, 4vw, 64px) 8px; scroll-padding: 0 clamp(16px, 4vw, 64px); }
  .rv-grid::-webkit-scrollbar { display: none; }
  .rv-grid .rv-card { scroll-snap-align: start; }
  .rv-track .rv-card { width: 280px; }
}

/* Insel rechts: Prozess-Timeline mit Icons, synchron zu den Frames links */
.flw { --fp: 0; position: relative; list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; }
.flw-rail { position: absolute; left: 25px; top: 28px; bottom: 28px; width: 2px; border-radius: 2px; background: rgba(38,38,31,.1); }
.flw-rail s { position: absolute; inset: 0; border-radius: 2px; background: linear-gradient(#9d343a, #c9585e); transform-origin: top; transform: scaleY(var(--fp)); transition: transform .25s linear; text-decoration: none; }
.flw li { position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 16px; align-items: start; }
.flw-node { position: relative; z-index: 1; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: #f7f5ef; color: #8d887c; box-shadow: inset 0 0 0 1px rgba(38,38,31,.12); transition: background .45s, color .45s, box-shadow .45s, transform .45s cubic-bezier(.2,1.4,.4,1); }
.flw-ic { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.flw-ok { position: absolute; right: -5px; top: -5px; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #26261f; color: #fff; box-shadow: 0 0 0 3px #eeece6; transform: scale(0); transition: transform .4s cubic-bezier(.2,1.6,.4,1); }
.flw-ok svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.flw li.done .flw-node { background: #fff; color: #26261f; box-shadow: inset 0 0 0 1px rgba(38,38,31,.16); }
.flw li.done .flw-ok { transform: scale(1); }
.flw li.on .flw-node { background: #9d343a; color: #fff; box-shadow: 0 12px 26px -10px rgba(157,52,58,.7), 0 0 0 6px rgba(157,52,58,.1); transform: scale(1.06); }
.flw li.on .flw-node::after { content: ""; position: absolute; inset: -6px; border-radius: 22px; border: 1.5px solid rgba(157,52,58,.35); animation: flwPulse 2.4s cubic-bezier(.2,.8,.2,1) infinite; }
@keyframes flwPulse { 0% { opacity: 1; transform: scale(.94); } 100% { opacity: 0; transform: scale(1.22); } }
.flw-card { min-height: 52px; padding: 7px 0 0; border-radius: 20px; transition: background .45s, box-shadow .45s, padding .45s; }
.flw-card small { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #a29d90; transition: color .45s; }
.flw-card b { display: block; margin-top: 3px; font: 600 19px/1.15 'Manrope', sans-serif; letter-spacing: -.03em; color: #8d887c; transition: color .45s, font-size .45s; }
.flw li.done .flw-card b { color: #26261f; }
.flw-more { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .55s cubic-bezier(.2,.8,.2,1), opacity .35s; }
.flw-more > div { overflow: hidden; }
.flw-more p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.55; color: #5f5b51; }
.flw-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.flw-tags em { padding: 5px 10px; border-radius: 99px; background: #f5ece9; color: #9d343a; font-style: normal; font-size: 11.5px; font-weight: 700; }
.flw li.on .flw-card { padding: 14px 18px 16px; background: #fff; box-shadow: 0 1px 0 rgba(38,38,31,.04), 0 24px 50px -30px rgba(40,34,24,.45); }
.flw li.on .flw-card small { color: #9d343a; }
.flw li.on .flw-card b { color: #26261f; font-size: 22px; }
.flw li.on .flw-more { grid-template-rows: 1fr; opacity: 1; }
.isl-flow .isl-actions { margin-top: 20px; }
@media (max-width: 900px) {
  .flw { gap: 4px; }
  .flw li { grid-template-columns: 42px 1fr; gap: 12px; }
  .flw-node { width: 42px; height: 42px; border-radius: 13px; }
  .flw-ic { width: 20px; height: 20px; }
  .flw-rail { left: 20px; top: 22px; bottom: 22px; }
  .flw-card { min-height: 42px; padding-top: 3px; }
  .flw-card b { font-size: 16.5px; }
  .flw li.on .flw-card { padding: 10px 14px 12px; }
  .flw li.on .flw-card b { font-size: 18px; }
  .flw-more p { font-size: 13.5px; margin-top: 6px; }
  .flw-tags { margin-top: 8px; }
}

/* Insel links: Werkstatt-Film statt Scroll-Frames – Abschnitt in normaler Höhe */
.island-story.is-film { height: auto !important; margin-bottom: 0 !important; }
.island-story.is-film .island-sticky { position: relative !important; height: auto !important; min-height: min(100svh, 920px); }
#island-video { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: contain; background: #eeece6; }
@media (max-width: 760px) { .island-story.is-film .island-sticky { min-height: 0 !important; padding-bottom: 72px !important; } }

/* Dock (Desktop, Startseite): nach dem Intro immer unten fixiert */
@media (min-width: 1141px) {
  html.il-open body[data-page="home"] nav.dock { display: flex !important; position: fixed !important; left: 50% !important; right: auto !important; top: auto !important; bottom: 24px !important; transform: translateX(-50%) !important; translate: 0 0 !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; z-index: 60 !important; }
  html.bk-lock body[data-page="home"] nav.dock, html.ma-lock body[data-page="home"] nav.dock, html.wk-open body[data-page="home"] nav.dock, html.tour-open body[data-page="home"] nav.dock, html.sn-open body[data-page="home"] nav.dock { opacity: 0 !important; pointer-events: none !important; }
}

/* 3er-Slider, alle 5 s (16.10.) */
.rv-slider{overflow:hidden}.rv-strack{display:flex;gap:16px;will-change:transform}.rv-strack>.rv-card{flex:0 0 calc((100% - 32px)/3);min-width:0}@media(max-width:900px){.rv-strack>.rv-card{flex-basis:calc((100% - 16px)/2)}}@media(max-width:600px){.rv-strack>.rv-card{flex-basis:100%}}
