/* Startseite: Hero, Wortwechsel, Leistungsliste, Ablauf-Bühne. Farben und Kopf kommen aus dunkel.css. Nur auf / geladen. */
.s-wrap{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.s-kicker{font:500 12px/1 var(--head);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:22px}
.s-pill{display:inline-flex;align-items:center;height:50px;padding:0 30px;border-radius:999px;background:#fff;color:#050d14;font:500 13px/1 var(--head);letter-spacing:.1em;text-transform:uppercase;transition:background .25s}
.s-pill:hover{background:var(--hi)}
.s-link{display:inline-flex;align-items:center;gap:10px;font:500 13px/1 var(--head);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.s-link span{transition:transform .25s}
.s-link:hover span{transform:translateX(4px)}
.s-pill:focus-visible,.s-link:focus-visible,.s-tab:focus-visible,.s-card:focus-visible,.s-more:focus-visible{outline:2px solid var(--hi);outline-offset:3px}

/* Hero */
.s-hero{padding:0}
.s-hero-in{--p:0;position:relative;overflow:hidden;min-height:min(100vh,900px);display:flex;flex-direction:column;color:#fff;background:var(--blau)}
.s-dots{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.s-hero-copy{position:relative;z-index:2;width:100%;margin-block:auto;padding-top:130px;padding-bottom:60px}
.s-hero h1{font:400 clamp(52px,8.2vw,124px)/.98 var(--head);letter-spacing:-.045em;color:#fff}
.s-mbr{display:none}
/* Wortwechsel: Breite folgt dem Wort, Wechsel mit Unschärfe und Versatz */
.s-swap{display:inline-block;white-space:nowrap;vertical-align:bottom;transition:width .24s var(--e)}
.s-swap>span{display:inline-block;transition:opacity .18s ease-in-out,transform .18s ease-in-out,filter .18s ease-in-out}
.s-swap>span.out{opacity:0;transform:translateY(.25em);filter:blur(6px)}
.s-lead{font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:rgba(255,255,255,.82);max-width:600px;margin-top:32px}
.s-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;margin-top:34px}
.s-hero .s-link{color:#fff}
/* Blau läuft von unten in Schwarz aus */
.s-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0) calc(62% - var(--p)*70%),#000 calc(100% - var(--p)*40%))}
.s-trust{position:relative;z-index:2;list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 28px;padding:22px clamp(16px,4vw,40px);border-top:1px solid rgba(255,255,255,.14);font:500 12px/1.3 var(--head);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.78)}

/* Abschnitte */
.s-sec{padding:clamp(56px,8vw,112px) 12px}
.s-panel{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:28px;padding:clamp(26px,5vw,64px)}
.s-head h2{font:400 clamp(30px,3.6vw,46px)/1.08 var(--head);letter-spacing:-.025em;color:var(--ink)}
.s-head h2 span{color:var(--hi)}
.s-head p{color:var(--muted);font-size:17px;line-height:1.55;margin-top:18px;max-width:560px}
.s-center{text-align:center}
.s-center p{margin-inline:auto}

/* Vorher / nachher */
.s-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:36px 0 26px}
.s-tab{font:500 12px/1 var(--head);letter-spacing:.1em;text-transform:uppercase;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:color .2s,background .2s}
.s-tab:hover{color:var(--ink)}
.s-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.s-cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.s-cmp[hidden]{display:none}
.s-col{background:var(--paper-3);border-radius:18px;padding:clamp(22px,3vw,32px)}
.s-label{font:500 11.5px/1 var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.s-label.s-on{color:var(--hi)}
.s-big{font:400 clamp(20px,2.1vw,27px)/1.28 var(--head);letter-spacing:-.015em;color:var(--ink)}
.s-big.s-dim{color:var(--muted)}
.s-cmp-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;font-size:15px;color:var(--muted)}

/* Karten */
.s-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}
.s-grid.s-3{grid-template-columns:repeat(3,1fr)}
.s-card{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line-soft);border-radius:22px;padding:22px;transition:border-color .3s,transform .4s var(--ease)}
.s-card:hover{border-color:var(--line);transform:translateY(-3px)}
.s-card h3{font:400 22px/1.2 var(--head);letter-spacing:-.01em;color:var(--ink);margin-bottom:10px}
.s-card p{color:var(--muted);font-size:15px;line-height:1.55;flex:1}
.s-more{display:inline-grid;place-items:center;width:40px;height:40px;margin-top:22px;border-radius:50%;border:1px solid var(--line);color:var(--ink);transition:background .25s,color .25s}
.s-card:hover .s-more{background:var(--ink);color:var(--paper)}
.s-ind h3{font-size:20px}

/* Leistungen: Überschrift klebt links, Einträge laufen rechts durch; der mittlere leuchtet auf */
.s-split{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(24px,6vw,96px)}
.s-stick{position:sticky;top:120px;align-self:start}
.s-list{list-style:none;border-top:1px solid var(--line)}
.s-li{display:grid;grid-template-columns:56px 1fr;padding:clamp(34px,6vh,64px) 0;border-bottom:1px solid var(--line);opacity:.32;transition:opacity .5s var(--e)}
.s-li.on{opacity:1}
.s-num{font:500 12px/2.6 var(--head);letter-spacing:.12em;color:var(--hi)}
.s-li h3{font:400 clamp(30px,3.4vw,46px)/1.05 var(--head);letter-spacing:-.03em;color:var(--ink)}
.s-li p,.s-li .s-link{grid-column:2}
.s-li p{color:var(--ink-soft);font-size:17px;line-height:1.6;max-width:460px;margin:16px 0 22px}

/* Bildband: Foto öffnet sich beim Hereinscrollen zur vollen Breite (--r 0…1) */
.s-band{--r:0;padding:clamp(40px,6vw,80px) 12px}
.s-band-img{position:relative;margin:0 auto;height:min(86vh,760px);overflow:hidden;background:var(--img) var(--pos,center)/cover;
  clip-path:inset(0 calc((1 - var(--r))*12%) round calc(28px + (1 - var(--r))*12px));display:flex;align-items:flex-end}
.s-band-img::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 55%)}
.s-band figcaption{position:relative;padding:clamp(24px,5vw,64px);font:400 clamp(26px,3.4vw,48px)/1.1 var(--head);letter-spacing:-.025em;color:#fff;max-width:17em}
.s-ai{position:absolute;z-index:1;top:20px;right:22px;font:500 10px/1 var(--head);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.s-band .s-ai{right:calc((1 - var(--r))*12% + 22px)}

/* Ablauf: Sticky-Bühne, Punkte wechseln je Schritt die Form */
.s-stage{height:400vh;padding:0 12px}
.s-stage-pin{position:sticky;top:0;height:100vh;height:100svh;padding:76px 0 12px}
.s-stage-box{position:relative;height:100%;max-width:1400px;margin:0 auto;border-radius:28px;overflow:hidden;background:radial-gradient(80% 70% at 50% 60%,#0f1630,var(--paper-2) 70%);border:1px solid var(--line-soft)}
.s-stage-box canvas{position:absolute;inset:0;width:100%;height:100%}
.s-stage-head{position:relative;padding:clamp(28px,5vh,56px) 20px 0}
.s-stage-card{position:absolute;left:clamp(14px,3vw,36px);bottom:clamp(14px,3vw,36px);width:min(380px,calc(100% - 28px));padding:24px 26px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid var(--line);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3)}
.s-stage-n{font:500 12px/1 var(--head);letter-spacing:.12em;color:var(--hi);margin-bottom:16px}
.s-stage-steps{list-style:none;display:grid}
.s-step{grid-area:1/1;opacity:0;transform:translateY(10px);filter:blur(4px);transition:opacity .4s var(--e),transform .5s var(--e),filter .4s}
.s-step.on{opacity:1;transform:none;filter:none}
.s-step h3{font:400 26px/1.15 var(--head);color:var(--ink);margin-bottom:10px}
.s-step p{color:var(--ink-soft);font-size:15.5px;line-height:1.55}

.s-note{margin-top:28px;color:var(--muted);font-size:15px}
.s-note a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* Abschluss */
.s-final{position:relative;overflow:hidden;border-radius:28px;min-height:min(80vh,680px);display:flex;align-items:flex-end;color:#fff;background:#0b1a3a url(/assets/img/start-hafen.jpg) center/cover}
.s-final-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-final::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(20deg,rgba(0,0,0,.82) 10%,rgba(10,25,80,.35) 60%,rgba(10,25,80,.1))}
.s-final-in{position:relative;z-index:2;padding:clamp(28px,6vw,72px)}
.s-final h2{font:400 clamp(38px,5.4vw,70px)/1.02 var(--head);letter-spacing:-.035em;color:#fff}
.s-final h2 span{color:rgba(255,255,255,.55)}
.s-final p{color:rgba(255,255,255,.8);font-size:17px;max-width:520px;margin:22px 0 32px}
.s-final .s-small{font-size:14px;margin:22px 0 0;color:rgba(255,255,255,.6)}

@media(max-width:1000px){.s-grid,.s-grid.s-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  .s-hero-copy{padding-top:120px}
  .s-mbr{display:inline}
  .s-split{grid-template-columns:1fr}
  .s-stick{position:static}
  .s-li{opacity:1;grid-template-columns:40px 1fr;padding:30px 0}
  .s-band-img{height:62vh;clip-path:inset(0 calc((1 - var(--r))*5%) round 22px)}
  .s-band .s-ai{right:calc((1 - var(--r))*5% + 18px)}
  .s-stage{height:340vh}
  .s-stage-pin{padding-top:70px}
  .s-stage-card{padding:18px 20px}
  .s-step h3{font-size:22px}
  .s-cmp{grid-template-columns:1fr}
  .s-trust{justify-content:flex-start}
}
@media(max-width:600px){.s-grid,.s-grid.s-3{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.s-swap{transition:none}.s-card,.s-card:hover{transform:none}}
